diff --git a/Apache.dsw b/Apache.dsw index eeb51c49df2..9c939cd2d56 100644 --- a/Apache.dsw +++ b/Apache.dsw @@ -42,6 +42,36 @@ Package=<4> ############################################################################### +Project: "BuildAll"=.\BuildAll.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name BuildBin + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_bucketeer + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_case_filter + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_case_filter_in + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_echo + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_example + End Project Dependency +}}} + +############################################################################### + Project: "BuildBin"=.\BuildBin.dsp - Package Owner=<4> Package=<5> @@ -57,12 +87,18 @@ Package=<4> Project_Dep_Name ApacheMonitor End Project Dependency Begin Project Dependency - Project_Dep_Name libapriconv_ccs_modules + Project_Dep_Name apr_ldap End Project Dependency Begin Project Dependency Project_Dep_Name libapriconv_ces_modules End Project Dependency Begin Project Dependency + Project_Dep_Name libapriconv_ccs_modules + End Project Dependency + Begin Project Dependency + Project_Dep_Name apr_ldap + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_actions End Project Dependency Begin Project Dependency @@ -78,9 +114,15 @@ Package=<4> Project_Dep_Name mod_auth_digest End Project Dependency Begin Project Dependency + Project_Dep_Name mod_authn_alias + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_authn_anon End Project Dependency Begin Project Dependency + Project_Dep_Name mod_authn_dbd + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_authn_dbm End Project Dependency Begin Project Dependency @@ -105,13 +147,13 @@ Package=<4> Project_Dep_Name mod_authz_host End Project Dependency Begin Project Dependency - Project_Dep_Name mod_authz_user + Project_Dep_Name mod_authz_owner End Project Dependency Begin Project Dependency - Project_Dep_Name mod_autoindex + Project_Dep_Name mod_authz_user End Project Dependency Begin Project Dependency - Project_Dep_Name mod_bucketeer + Project_Dep_Name mod_autoindex End Project Dependency Begin Project Dependency Project_Dep_Name mod_cern_meta @@ -126,6 +168,9 @@ Package=<4> Project_Dep_Name mod_dav_fs End Project Dependency Begin Project Dependency + Project_Dep_Name mod_dav_lock + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_dir End Project Dependency Begin Project Dependency @@ -147,6 +192,9 @@ Package=<4> Project_Dep_Name mod_file_cache End Project Dependency Begin Project Dependency + Project_Dep_Name mod_filter + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_headers End Project Dependency Begin Project Dependency @@ -165,15 +213,15 @@ Package=<4> Project_Dep_Name mod_isapi End Project Dependency Begin Project Dependency - Project_Dep_Name mod_logio - End Project Dependency - Begin Project Dependency Project_Dep_Name mod_log_config End Project Dependency Begin Project Dependency Project_Dep_Name mod_log_forensic End Project Dependency Begin Project Dependency + Project_Dep_Name mod_logio + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_mem_cache End Project Dependency Begin Project Dependency @@ -186,6 +234,27 @@ Package=<4> Project_Dep_Name mod_negotiation End Project Dependency Begin Project Dependency + Project_Dep_Name mod_proxy_ajp + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_proxy_balancer + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_proxy_connect + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_proxy_ftp + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_proxy_http + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_proxy_scgi + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_reqtimeout + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_rewrite End Project Dependency Begin Project Dependency @@ -198,6 +267,9 @@ Package=<4> Project_Dep_Name mod_status End Project Dependency Begin Project Dependency + Project_Dep_Name mod_substitute + End Project Dependency + Begin Project Dependency Project_Dep_Name mod_unique_id End Project Dependency Begin Project Dependency @@ -213,16 +285,10 @@ Package=<4> Project_Dep_Name mod_vhost_alias End Project Dependency Begin Project Dependency - Project_Dep_Name mod_proxy_connect - End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_proxy_ftp - End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_proxy_http + Project_Dep_Name ab End Project Dependency Begin Project Dependency - Project_Dep_Name ab + Project_Dep_Name htcacheclean End Project Dependency Begin Project Dependency Project_Dep_Name htdbm @@ -234,6 +300,9 @@ Package=<4> Project_Dep_Name htpasswd End Project Dependency Begin Project Dependency + Project_Dep_Name httxt2dbm + End Project Dependency + Begin Project Dependency Project_Dep_Name logresolve End Project Dependency Begin Project Dependency @@ -242,12 +311,6 @@ Package=<4> Begin Project Dependency Project_Dep_Name wintty End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_proxy_ajp - End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_proxy_balancer - End Project Dependency }}} ############################################################################### @@ -339,10 +402,187 @@ Package=<4> Project_Dep_Name apriconv End Project Dependency Begin Project Dependency - Project_Dep_Name gen_uri_delims + Project_Dep_Name xml End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbd_freetds"=".\srclib\apr-util\dbd\apr_dbd_freetds.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ Begin Project Dependency - Project_Dep_Name xml + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbd_odbc"=".\srclib\apr-util\dbd\apr_dbd_odbc.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbd_mysql"=".\srclib\apr-util\dbd\apr_dbd_mysql.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbd_oracle"=".\srclib\apr-util\dbd\apr_dbd_oracle.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbd_pgsql"=".\srclib\apr-util\dbd\apr_dbd_pgsql.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbd_sqlite2"=".\srclib\apr-util\dbd\apr_dbd_sqlite2.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbd_sqlite3"=".\srclib\apr-util\dbd\apr_dbd_sqlite3.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbm_db"=".\srclib\apr-util\dbm\apr_dbm_db.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_dbm_gdbm"=".\srclib\apr-util\dbm\apr_dbm_gdbm.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency +}}} + +############################################################################### + +Project: "apr_ldap"=".\srclib\apr-util\ldap\apr_ldap.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil End Project Dependency }}} @@ -375,7 +615,25 @@ Package=<4> ############################################################################### -Project: "gen_uri_delims"=".\srclib\apr-util\uri\gen_uri_delims.dsp" - Package Owner=<4> +Project: "htcacheclean"=.\support\htcacheclean.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name apr + End Project Dependency + Begin Project Dependency + Project_Dep_Name aprutil + End Project Dependency +}}} + +############################################################################### + +Project: "htdbm"=.\support\htdbm.dsp - Package Owner=<4> Package=<5> {{{ @@ -383,11 +641,185 @@ Package=<5> Package=<4> {{{ + Begin Project Dependency + Project_Dep_Name apr + End Project Dependency + Begin Project Dependency + Project_Dep_Name aprutil + End Project Dependency +}}} + +############################################################################### + +Project: "htdigest"=.\support\htdigest.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name apr + End Project Dependency + Begin Project Dependency + Project_Dep_Name aprutil + End Project Dependency +}}} + +############################################################################### + +Project: "htpasswd"=.\support\htpasswd.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name apr + End Project Dependency + Begin Project Dependency + Project_Dep_Name aprutil + End Project Dependency +}}} + +############################################################################### + +Project: "httxt2dbm"=.\support\httxt2dbm.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name apr + End Project Dependency + Begin Project Dependency + Project_Dep_Name aprutil + End Project Dependency +}}} + +############################################################################### + +Project: "libapr"=.\srclib\apr\libapr.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "libapriconv"=".\srclib\apr-iconv\libapriconv.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency +}}} + +############################################################################### + +Project: "libapriconv_ccs_modules"=".\srclib\apr-iconv\ccs\libapriconv_ccs_modules.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libapriconv + End Project Dependency + Begin Project Dependency + Project_Dep_Name libapriconv_ces_modules + End Project Dependency +}}} + +############################################################################### + +Project: "libapriconv_ces_modules"=".\srclib\apr-iconv\ces\libapriconv_ces_modules.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libapriconv + End Project Dependency +}}} + +############################################################################### + +Project: "libaprutil"=".\srclib\apr-util\libaprutil.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libapriconv + End Project Dependency + Begin Project Dependency + Project_Dep_Name xml + End Project Dependency +}}} + +############################################################################### + +Project: "libhttpd"=.\libhttpd.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libapriconv + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name gen_test_char + End Project Dependency + Begin Project Dependency + Project_Dep_Name pcre + End Project Dependency }}} ############################################################################### -Project: "htdbm"=.\support\htdbm.dsp - Package Owner=<4> +Project: "logresolve"=.\support\logresolve.dsp - Package Owner=<4> Package=<5> {{{ @@ -405,7 +837,7 @@ Package=<4> ############################################################################### -Project: "htdigest"=.\support\htdigest.dsp - Package Owner=<4> +Project: "mod_actions"=.\modules\mappers\mod_actions.dsp - Package Owner=<4> Package=<5> {{{ @@ -414,16 +846,19 @@ Package=<5> Package=<4> {{{ Begin Project Dependency - Project_Dep_Name apr + Project_Dep_Name libapr End Project Dependency Begin Project Dependency - Project_Dep_Name aprutil + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd End Project Dependency }}} ############################################################################### -Project: "htpasswd"=.\support\htpasswd.dsp - Package Owner=<4> +Project: "mod_alias"=.\modules\mappers\mod_alias.dsp - Package Owner=<4> Package=<5> {{{ @@ -432,16 +867,19 @@ Package=<5> Package=<4> {{{ Begin Project Dependency - Project_Dep_Name apr + Project_Dep_Name libapr End Project Dependency Begin Project Dependency - Project_Dep_Name aprutil + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd End Project Dependency }}} ############################################################################### -Project: "libapr"=.\srclib\apr\libapr.dsp - Package Owner=<4> +Project: "mod_asis"=.\modules\generators\mod_asis.dsp - Package Owner=<4> Package=<5> {{{ @@ -449,11 +887,20 @@ Package=<5> Package=<4> {{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd + End Project Dependency }}} ############################################################################### -Project: "libapriconv"=".\srclib\apr-iconv\libapriconv.dsp" - Package Owner=<4> +Project: "mod_auth_basic"=.\modules\aaa\mod_auth_basic.dsp - Package Owner=<4> Package=<5> {{{ @@ -464,11 +911,17 @@ Package=<4> Begin Project Dependency Project_Dep_Name libapr End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd + End Project Dependency }}} ############################################################################### -Project: "libapriconv_ccs_modules"=".\srclib\apr-iconv\ccs\libapriconv_ccs_modules.dsp" - Package Owner=<4> +Project: "mod_auth_digest"=.\modules\aaa\mod_auth_digest.dsp - Package Owner=<4> Package=<5> {{{ @@ -480,13 +933,16 @@ Package=<4> Project_Dep_Name libapr End Project Dependency Begin Project Dependency - Project_Dep_Name libapriconv + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd End Project Dependency }}} ############################################################################### -Project: "libapriconv_ces_modules"=".\srclib\apr-iconv\ces\libapriconv_ces_modules.dsp" - Package Owner=<4> +Project: "mod_authn_alias"=.\modules\aaa\mod_authn_alias.dsp - Package Owner=<4> Package=<5> {{{ @@ -498,13 +954,19 @@ Package=<4> Project_Dep_Name libapr End Project Dependency Begin Project Dependency - Project_Dep_Name libapriconv + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_auth_basic End Project Dependency }}} ############################################################################### -Project: "libaprutil"=".\srclib\apr-util\libaprutil.dsp" - Package Owner=<4> +Project: "mod_authn_anon"=.\modules\aaa\mod_authn_anon.dsp - Package Owner=<4> Package=<5> {{{ @@ -516,19 +978,19 @@ Package=<4> Project_Dep_Name libapr End Project Dependency Begin Project Dependency - Project_Dep_Name libapriconv + Project_Dep_Name libaprutil End Project Dependency Begin Project Dependency - Project_Dep_Name gen_uri_delims + Project_Dep_Name libhttpd End Project Dependency Begin Project Dependency - Project_Dep_Name xml + Project_Dep_Name mod_auth_basic End Project Dependency }}} ############################################################################### -Project: "libhttpd"=.\libhttpd.dsp - Package Owner=<4> +Project: "mod_authn_dbd"=.\modules\aaa\mod_authn_dbd.dsp - Package Owner=<4> Package=<5> {{{ @@ -540,22 +1002,22 @@ Package=<4> Project_Dep_Name libapr End Project Dependency Begin Project Dependency - Project_Dep_Name libapriconv + Project_Dep_Name libaprutil End Project Dependency Begin Project Dependency - Project_Dep_Name libaprutil + Project_Dep_Name libhttpd End Project Dependency Begin Project Dependency - Project_Dep_Name gen_test_char + Project_Dep_Name mod_auth_basic End Project Dependency Begin Project Dependency - Project_Dep_Name pcre + Project_Dep_Name mod_dbd End Project Dependency }}} ############################################################################### -Project: "logresolve"=.\support\logresolve.dsp - Package Owner=<4> +Project: "mod_authn_dbm"=.\modules\aaa\mod_authn_dbm.dsp - Package Owner=<4> Package=<5> {{{ @@ -564,16 +1026,22 @@ Package=<5> Package=<4> {{{ Begin Project Dependency - Project_Dep_Name apr + Project_Dep_Name libapr End Project Dependency Begin Project Dependency - Project_Dep_Name aprutil + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_auth_basic End Project Dependency }}} ############################################################################### -Project: "mod_actions"=.\modules\mappers\mod_actions.dsp - Package Owner=<4> +Project: "mod_authn_default"=.\modules\aaa\mod_authn_default.dsp - Package Owner=<4> Package=<5> {{{ @@ -590,11 +1058,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_auth_basic + End Project Dependency }}} ############################################################################### -Project: "mod_alias"=.\modules\mappers\mod_alias.dsp - Package Owner=<4> +Project: "mod_authn_file"=.\modules\aaa\mod_authn_file.dsp - Package Owner=<4> Package=<5> {{{ @@ -611,11 +1082,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_auth_basic + End Project Dependency }}} ############################################################################### -Project: "mod_asis"=.\modules\generators\mod_asis.dsp - Package Owner=<4> +Project: "mod_authnz_ldap"=.\modules\aaa\mod_authnz_ldap.dsp - Package Owner=<4> Package=<5> {{{ @@ -632,11 +1106,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_ldap + End Project Dependency }}} ############################################################################### -Project: "mod_auth_basic"=.\modules\aaa\mod_auth_basic.dsp - Package Owner=<4> +Project: "mod_authz_dbm"=.\modules\aaa\mod_authz_dbm.dsp - Package Owner=<4> Package=<5> {{{ @@ -653,11 +1130,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_auth_basic + End Project Dependency }}} ############################################################################### -Project: "mod_auth_digest"=.\modules\aaa\mod_auth_digest.dsp - Package Owner=<4> +Project: "mod_authz_default"=.\modules\aaa\mod_authz_default.dsp - Package Owner=<4> Package=<5> {{{ @@ -674,11 +1154,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_auth_basic + End Project Dependency }}} ############################################################################### -Project: "mod_authnz_ldap"=.\modules\aaa\mod_authnz_ldap.dsp - Package Owner=<4> +Project: "mod_authz_groupfile"=.\modules\aaa\mod_authz_groupfile.dsp - Package Owner=<4> Package=<5> {{{ @@ -696,13 +1179,13 @@ Package=<4> Project_Dep_Name libhttpd End Project Dependency Begin Project Dependency - Project_Dep_Name mod_ldap + Project_Dep_Name mod_auth_basic End Project Dependency }}} ############################################################################### -Project: "mod_authn_anon"=.\modules\aaa\mod_authn_anon.dsp - Package Owner=<4> +Project: "mod_authz_host"=.\modules\aaa\mod_authz_host.dsp - Package Owner=<4> Package=<5> {{{ @@ -726,7 +1209,7 @@ Package=<4> ############################################################################### -Project: "mod_authn_dbm"=.\modules\aaa\mod_authn_dbm.dsp - Package Owner=<4> +Project: "mod_authz_owner"=.\modules\aaa\mod_authz_owner.dsp - Package Owner=<4> Package=<5> {{{ @@ -750,7 +1233,7 @@ Package=<4> ############################################################################### -Project: "mod_authn_default"=.\modules\aaa\mod_authn_default.dsp - Package Owner=<4> +Project: "mod_authz_user"=.\modules\aaa\mod_authz_user.dsp - Package Owner=<4> Package=<5> {{{ @@ -774,7 +1257,7 @@ Package=<4> ############################################################################### -Project: "mod_authn_file"=.\modules\aaa\mod_authn_file.dsp - Package Owner=<4> +Project: "mod_autoindex"=.\modules\generators\mod_autoindex.dsp - Package Owner=<4> Package=<5> {{{ @@ -791,14 +1274,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_auth_basic - End Project Dependency }}} ############################################################################### -Project: "mod_authz_dbm"=.\modules\aaa\mod_authz_dbm.dsp - Package Owner=<4> +Project: "mod_bucketeer"=.\modules\debug\mod_bucketeer.dsp - Package Owner=<4> Package=<5> {{{ @@ -815,14 +1295,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_auth_basic - End Project Dependency }}} ############################################################################### -Project: "mod_authz_default"=.\modules\aaa\mod_authz_default.dsp - Package Owner=<4> +Project: "mod_cache"=.\modules\cache\mod_cache.dsp - Package Owner=<4> Package=<5> {{{ @@ -839,14 +1316,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_auth_basic - End Project Dependency }}} ############################################################################### -Project: "mod_authz_groupfile"=.\modules\aaa\mod_authz_groupfile.dsp - Package Owner=<4> +Project: "mod_case_filter"=.\modules\experimental\mod_case_filter.dsp - Package Owner=<4> Package=<5> {{{ @@ -863,14 +1337,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_auth_basic - End Project Dependency }}} ############################################################################### -Project: "mod_authz_host"=.\modules\aaa\mod_authz_host.dsp - Package Owner=<4> +Project: "mod_case_filter_in"=.\modules\experimental\mod_case_filter_in.dsp - Package Owner=<4> Package=<5> {{{ @@ -887,14 +1358,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_auth_basic - End Project Dependency }}} ############################################################################### -Project: "mod_authz_user"=.\modules\aaa\mod_authz_user.dsp - Package Owner=<4> +Project: "mod_cern_meta"=.\modules\metadata\mod_cern_meta.dsp - Package Owner=<4> Package=<5> {{{ @@ -911,14 +1379,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_auth_basic - End Project Dependency }}} ############################################################################### -Project: "mod_autoindex"=.\modules\generators\mod_autoindex.dsp - Package Owner=<4> +Project: "mod_cgi"=.\modules\generators\mod_cgi.dsp - Package Owner=<4> Package=<5> {{{ @@ -939,7 +1404,7 @@ Package=<4> ############################################################################### -Project: "mod_bucketeer"=.\modules\debug\mod_bucketeer.dsp - Package Owner=<4> +Project: "mod_charset_lite"=.\modules\filters\mod_charset_lite.dsp - Package Owner=<4> Package=<5> {{{ @@ -960,7 +1425,7 @@ Package=<4> ############################################################################### -Project: "mod_cache"=.\modules\cache\mod_cache.dsp - Package Owner=<4> +Project: "mod_dav"=.\modules\dav\main\mod_dav.dsp - Package Owner=<4> Package=<5> {{{ @@ -981,7 +1446,7 @@ Package=<4> ############################################################################### -Project: "mod_cern_meta"=.\modules\metadata\mod_cern_meta.dsp - Package Owner=<4> +Project: "mod_dav_fs"=.\modules\dav\fs\mod_dav_fs.dsp - Package Owner=<4> Package=<5> {{{ @@ -998,11 +1463,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_dav + End Project Dependency }}} ############################################################################### -Project: "mod_cgi"=.\modules\generators\mod_cgi.dsp - Package Owner=<4> +Project: "mod_dav_lock"=.\modules\dav\lock\mod_dav_lock.dsp - Package Owner=<4> Package=<5> {{{ @@ -1019,11 +1487,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_dav + End Project Dependency }}} ############################################################################### -Project: "mod_charset_lite"=.\modules\experimental\mod_charset_lite.dsp - Package Owner=<4> +Project: "mod_dbd"=.\modules\database\mod_dbd.dsp - Package Owner=<4> Package=<5> {{{ @@ -1044,7 +1515,7 @@ Package=<4> ############################################################################### -Project: "mod_dav"=.\modules\dav\main\mod_dav.dsp - Package Owner=<4> +Project: "mod_deflate"=.\modules\filters\mod_deflate.dsp - Package Owner=<4> Package=<5> {{{ @@ -1065,7 +1536,7 @@ Package=<4> ############################################################################### -Project: "mod_dav_fs"=.\modules\dav\fs\mod_dav_fs.dsp - Package Owner=<4> +Project: "mod_dir"=.\modules\mappers\mod_dir.dsp - Package Owner=<4> Package=<5> {{{ @@ -1082,14 +1553,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_dav - End Project Dependency }}} ############################################################################### -Project: "mod_deflate"=.\modules\filters\mod_deflate.dsp - Package Owner=<4> +Project: "mod_disk_cache"=.\modules\cache\mod_disk_cache.dsp - Package Owner=<4> Package=<5> {{{ @@ -1106,11 +1574,14 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_cache + End Project Dependency }}} ############################################################################### -Project: "mod_dir"=.\modules\mappers\mod_dir.dsp - Package Owner=<4> +Project: "mod_dumpio"=.\modules\debug\mod_dumpio.dsp - Package Owner=<4> Package=<5> {{{ @@ -1131,7 +1602,7 @@ Package=<4> ############################################################################### -Project: "mod_disk_cache"=.\modules\cache\mod_disk_cache.dsp - Package Owner=<4> +Project: "mod_echo"=.\modules\echo\mod_echo.dsp - Package Owner=<4> Package=<5> {{{ @@ -1148,14 +1619,11 @@ Package=<4> Begin Project Dependency Project_Dep_Name libhttpd End Project Dependency - Begin Project Dependency - Project_Dep_Name mod_cache - End Project Dependency }}} ############################################################################### -Project: "mod_dumpio"=.\modules\debug\mod_dumpio.dsp - Package Owner=<4> +Project: "mod_env"=.\modules\metadata\mod_env.dsp - Package Owner=<4> Package=<5> {{{ @@ -1176,7 +1644,7 @@ Package=<4> ############################################################################### -Project: "mod_echo"=.\modules\echo\mod_echo.dsp - Package Owner=<4> +Project: "mod_example"=.\modules\experimental\mod_example.dsp - Package Owner=<4> Package=<5> {{{ @@ -1197,7 +1665,7 @@ Package=<4> ############################################################################### -Project: "mod_env"=.\modules\metadata\mod_env.dsp - Package Owner=<4> +Project: "mod_expires"=.\modules\metadata\mod_expires.dsp - Package Owner=<4> Package=<5> {{{ @@ -1218,7 +1686,7 @@ Package=<4> ############################################################################### -Project: "mod_expires"=.\modules\metadata\mod_expires.dsp - Package Owner=<4> +Project: "mod_ext_filter"=.\modules\filters\mod_ext_filter.dsp - Package Owner=<4> Package=<5> {{{ @@ -1239,7 +1707,7 @@ Package=<4> ############################################################################### -Project: "mod_ext_filter"=.\modules\filters\mod_ext_filter.dsp - Package Owner=<4> +Project: "mod_file_cache"=.\modules\cache\mod_file_cache.dsp - Package Owner=<4> Package=<5> {{{ @@ -1260,7 +1728,7 @@ Package=<4> ############################################################################### -Project: "mod_file_cache"=.\modules\cache\mod_file_cache.dsp - Package Owner=<4> +Project: "mod_filter"=.\modules\filters\mod_filter.dsp - Package Owner=<4> Package=<5> {{{ @@ -1719,6 +2187,51 @@ Package=<4> ############################################################################### +Project: "mod_proxy_scgi"=.\modules\proxy\mod_proxy_scgi.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd + End Project Dependency + Begin Project Dependency + Project_Dep_Name mod_proxy + End Project Dependency +}}} + +############################################################################### + +Project: "mod_reqtimeout"=.\modules\filters\mod_reqtimeout.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd + End Project Dependency +}}} + +############################################################################### + Project: "mod_rewrite"=.\modules\mappers\mod_rewrite.dsp - Package Owner=<4> Package=<5> @@ -1824,6 +2337,27 @@ Package=<4> ############################################################################### +Project: "mod_substitute"=.\modules\filters\mod_substitute.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libapr + End Project Dependency + Begin Project Dependency + Project_Dep_Name libaprutil + End Project Dependency + Begin Project Dependency + Project_Dep_Name libhttpd + End Project Dependency +}}} + +############################################################################### + Project: "mod_unique_id"=.\modules\metadata\mod_unique_id.dsp - Package Owner=<4> Package=<5> diff --git a/BuildAll.dsp b/BuildAll.dsp new file mode 100644 index 00000000000..1917165559e --- /dev/null +++ b/BuildAll.dsp @@ -0,0 +1,97 @@ +# Microsoft Developer Studio Project File - Name="BuildAll" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=BuildAll - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "BuildAll.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "BuildAll.mak" CFG="BuildAll - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "BuildAll - Win32 Release" (based on "Win32 (x86) External Target") +!MESSAGE "BuildAll - Win32 Debug" (based on "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "BuildAll - Win32 Release" + +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "" +# PROP BASE Intermediate_Dir "" +# PROP BASE Cmd_Line "NMAKE /f makefile.win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "\Apache2\bin\httpd.exe" +# PROP BASE Bsc_Name ".\Browse\BuildAll.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "" +# PROP Intermediate_Dir "" +# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Release _dummy" +# PROP Rebuild_Opt "" +# PROP Target_File "\Apache2\bin\httpd.exe" +# PROP Bsc_Name ".\Browse\httpd.bsc" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "BuildAll - Win32 Debug" + +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "" +# PROP BASE Intermediate_Dir "" +# PROP BASE Cmd_Line "NMAKE /f makefile.win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "\Apache2\bin\httpd.exe" +# PROP BASE Bsc_Name ".\Browse\BuildAll.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "" +# PROP Intermediate_Dir "" +# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Debug _dummy" +# PROP Rebuild_Opt "" +# PROP Target_File "\Apache2\bin\httpd.exe" +# PROP Bsc_Name ".\Browse\httpd.bsc" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "BuildAll - Win32 Release" +# Name "BuildAll - Win32 Debug" + +!IF "$(CFG)" == "BuildAll - Win32 Release" + +!ELSEIF "$(CFG)" == "BuildAll - Win32 Debug" + +!ENDIF + +# Begin Source File + +SOURCE=.\os\win32\BaseAddr.ref +# End Source File +# Begin Source File + +SOURCE=.\CHANGES +# End Source File +# Begin Source File + +SOURCE=.\Makefile.win +# End Source File +# Begin Source File + +SOURCE=.\STATUS +# End Source File +# End Target +# End Project diff --git a/BuildBin.dsp b/BuildBin.dsp index 9e3c15235ec..6b38f143ea7 100644 --- a/BuildBin.dsp +++ b/BuildBin.dsp @@ -33,15 +33,15 @@ CFG=BuildBin - Win32 Debug # PROP BASE Intermediate_Dir "" # PROP BASE Cmd_Line "NMAKE /f makefile.win" # PROP BASE Rebuild_Opt "/a" -# PROP BASE Target_File "\Apache21\bin\httpd.exe" +# PROP BASE Target_File "\Apache2\bin\httpd.exe" # PROP BASE Bsc_Name ".\Browse\BuildBin.bsc" # PROP BASE Target_Dir "" # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "" -# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache21" LONG=Release _tryssl _tryzlib _dummy" +# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Release _trydb _tryssl _tryzlib _dummy" # PROP Rebuild_Opt "" -# PROP Target_File "\Apache21\bin\httpd.exe" +# PROP Target_File "\Apache2\bin\httpd.exe" # PROP Bsc_Name ".\Browse\httpd.bsc" # PROP Target_Dir "" @@ -52,15 +52,15 @@ CFG=BuildBin - Win32 Debug # PROP BASE Intermediate_Dir "" # PROP BASE Cmd_Line "NMAKE /f makefile.win" # PROP BASE Rebuild_Opt "/a" -# PROP BASE Target_File "\Apache21\bin\httpd.exe" +# PROP BASE Target_File "\Apache2\bin\httpd.exe" # PROP BASE Bsc_Name ".\Browse\BuildBin.bsc" # PROP BASE Target_Dir "" # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "" -# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache21" LONG=Debug _tryssl _tryzlib _dummy" +# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache2" LONG=Debug _trydb _tryssl _tryzlib _dummy" # PROP Rebuild_Opt "" -# PROP Target_File "\Apache21\bin\httpd.exe" +# PROP Target_File "\Apache2\bin\httpd.exe" # PROP Bsc_Name ".\Browse\httpd.bsc" # PROP Target_Dir "" diff --git a/CHANGES b/CHANGES index 81d92e1ce13..e6183f423d0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,14802 +1,3470 @@ - -*- coding: utf-8 -*- -Changes with Apache 2.3.0 + -*- coding: utf-8 -*- +Changes with Apache 2.2.34 (final) - *) SECURITY: CAN-2005-2491 (cve.mitre.org): - Fix integer overflows in PCRE in quantifier parsing which could - be triggered by a local user through use of a carefully-crafted - regex in an .htaccess file. [Philip Hazel] - - *) mod_proxy/mod_proxy_balancer: Provide a simple, functional - interface to add additional balancer lb selection methods - without requiring code changes to mod_proxy/mod_proxy_balancer; - these can be implemented via sub-modules now. [Jim Jagielski] - - *) mod_cache: Fix incorrectly served 304 responses when expired cache - entity is valid, but cache is unwritable and headers cannot be - updated. [Colm MacCarthaigh ] - - *) mod_cache: Remove entities from the cache when re-validation - receives a 404 or other content-no-longer-present error. - [Rüdiger Plüm ruediger.pluem vodafone.com] - - *) mod_disk_cache: Properly remove files from cache when needed. - [Rüdiger Plüm ruediger.pluem vodafone.com] - - *) mod_disk_cache: Support htcacheclean removing directories. - [Andreas Steinmetz] - - *) htcacheclean: Add -t option to remove empty directories. - [Colm MacCarthaigh ] - - *) Remove the base href tag from mod_proxy_ftp, as it breaks relative - links for clients not using an Authorization header. [Graham Leggett, - Jon Snow ] - - *) Teach mod_ssl to use arbitraty OIDs in an SSLRequire directive, - allowing string-valued client certificate attributes to be used for - access control, as in: SSLRequire "value" in OID("1.3.6.1.4.1.18060.1") - [Martin Kraemer, David Reid] - -Changes with Apache 2.1.7 - [Remove entries to the current 2.0 section below, when backported] - - *) mod_cache: Restore the HTTP status of cached responses. - [Hansjoerg Pehofer ] - - *) mod_cache: Store varied contents all in the same prefix for a varied URI. - [Paul Querna] - - *) mod_cache: Run the CACHE_SAVE and CACHE_OUT Filters after other content - filters. [Paul Querna] - - *) mod_negotiation: Correctly report 404 instead of 403 for missing files. - [Paul Querna] - - *) new hook (request_status) that gets ran in proxy_handler just before - the final return. This gives modules an opportunity to do something - based on the proxy status. (minor MMN bump) - [Brian Akins , Ian Holsman] - - *) SECURITY: CAN-2005-2088 - proxy: Correctly handle the Transfer-Encoding and Content-Length - headers. Discard the request Content-Length whenever T-E: chunked - is used, always passing one of either C-L or T-E: chunked whenever - the request includes a request body. Resolves an entire class of - proxy HTTP Request Splitting/Spoofing attacks. [William Rowe] - - *) Added TraceEnable [on|off|extended] per-server directive to alter - the behavior of the TRACE method. This addresses a flaw in proxy - conformance to RFC 2616 - previously the proxy server would accept - a TRACE request body although the RFC prohibited it. The default - remains 'TraceEnable on'. [William Rowe] - - *) Add additional SSLSessionCache option, 'nonenotnull', which is - similar to 'none' (disabling any external shared cache) but forces - OpenSSL to provide a non-null session ID. [Jim Jagielski] - - *) Add httxt2dbm to support/ for creating RewriteMap DBM Files. - [Paul Querna] - - *) Add SSL_COMPRESS_METHOD variable (included in +StdEnvVars) to note - the negotiated compression. [Georg v. Zezschwitz ] - - *) Fixed complaints about unpackaged files within the RPM build - after changes to the config files. [Graham Leggett] - - *) Fix shutdown for the Worker MPM when an Accept Filter is used. Instead of - just closing the socket, a HTTP request is made, to make sure the child is - always awakened. [Paul Querna] - -Changes with Apache 2.1.6 - - *) Fix htdbm password validation for records which included comments. - [Eric Covener ] - - *) mod_cgid: Fix buffer overflow processing ScriptSock directive. - [Steve Kemp ] - -Changes with Apache 2.1.5 - - *) mod_ssl: Setting the Protocol to 'https' can replace the use of the - 'SSLEngine on' command. [Paul Querna] - - *) core: Refactor the mapping of Accept Filters to Sockets. Add the - AcceptFilter and Protocol directives to aid in mapping filter types. - Extend the Listen directive to optionally take a protocol name. - [Paul Querna] - - *) mod_disk_cache: Support storing multiple variations of one URL. PR 35211. - [Paul Querna] - - *) mod_disk_cache: Atomically create the header data file. [Paul Querna] - - *) mod_cache: Fix 'Vary: *' behavior to be RFC compliant. PR 16125. - [Paul Querna] - - *) mod_cache: Rename 'generate_name' to 'ap_cache_generate_name'. - [Paul Querna] - - *) proxy FTP: Fix confusion about globbing characters which could lead - to getting a directory listing when a file was requested. PR 34512. - [Sean ] - - *) mod_mime_magic: Handle CRLF-format magic files so that it works with - the default installation on Windows. [Jeff Trawick] - - *) core: Allow multiple modules to register interest in a single - configuration command. [Paul Querna] - - *) EBCDIC: Handle chunked input from client or, with proxy, origin - server. [Jeff Trawick] - - *) authn_provider_alias: Adds the configuration block tag - - Authentication directives contained within this block can be - referenced as a new authProvider using the AuthBasicProvider or - AuthDigestProvider directive. These directives will be merged in to - the per_dir configuration just before the base provider is called. - [Brad Nicholes] - - *) ap_getword_conf: Fix backslashes at the end of configuration directives. - PR 34834. [Timo Viipuri ] - - *) mod_dbd: New additions: mod_dbd.c, mod_dbd.h, mod_dbd.xml - Provide module hooks for apr_dbd; optimise for httpd - threaded and non-threaded arch [Nick Kew] - - *) ab: SSL support rewritten, improved, and enabled if SSL is enabled - during the build; -f and -Z arguments added to specify SSL protocol - options. [Masaoki Kobayashi ] - - *) Support the suppress-error-charset setting, as with Apache 1.3.x. - PR 31274. [Jeff Trawick] - - *) Prevent hangs of child processes when writing to piped loggers at - the time of graceful restart. PR 26467. [Jeff Trawick] - - *) mod_info: Show the Quick Handler [Paul Querna] - - *) mod_ldap: Add the directive LDAPVerifyServerCert to specify - whether to force verification of the server certificate when - establishing an SSL connection to the LDAP server. - [Brad Nicholes] - - *) mod_proxy: Run mod_rewrite before mod_proxy in the translate_name - hook. [Paul Querna] - - *) Add AP_INIT_TAKE_ARGV for configuration commands. (minor MMN bump) - [Paul Querna] - - *) ap_get_local_host() rewritten for APR. [Jim Jagielski] - - *) Add the ap_vhost_iterate_given_conn function to expose the information - used in Name Based Virtual Hosting. (minor MMN bump) - [Paul Querna] - - *) Remove the never working ap_method_list_do and ap_method_list_vdo. - [Paul Querna] - - *) Added makefile and doc for building mod_ssl on the NetWare - platform. [Guenter Knauf, Brad Nicholes] - - *) mod_deflate: Merge the Vary header, isntead of Setting it. Fixes - applications that send the Vary Header themselves, and also apply - mod_deflate as an output filter. [Paul Querna] - - *) Change the default (when not present in the config file) setting - for UseCanonicalName to Off. - [Joshua Slive] - - *) mod_userdir: The module no longer does any remapping unless the - UserDir directive is present in the config file. - [Joshua Slive] - - *) Massively simplify the distributed httpd.conf by removing - many features and many directives that are at their default - setting. Add a selection of example config excerpts for adding - extra features in the conf/extra/ directory. Install the - distributed config and the extra config examples in the - conf/original/ directory during make install. - [Joshua Slive, Justin Erenkrantz] - - *) NetWare: Reposition mod_asis, mod_actions, mod_cgi, mod_imagemap, - mod_userdir and mod_autoindex as shared modules rather than - built-in modules within the NetWare build. - [Brad Nicholes] - - *) Rename mod_imap to mod_imagemap. - [Paul Querna] - - *) util_ldap: Eliminate the load ordering of mod_ldap and mod_authnz_ldap - by changing the mod_ldap exported functions to optional functions. - [Brad Nicholes] - -Changes with Apache 2.1.4 - - *) Don't let a subrequest inherit headers describing the original request's - body. [Greg Ames] - - *) Fix Windows CompContext buff size miscalculation - [Allan Edwards] - - *) Add ReceiveBufferSize directive to control the TCP receive buffer. - [Eric Covener ] - - *) mod_proxy: Add proxy-sendextracrlf option to send an extra CRLF at the - end of the request body to work with really old HTTP servers. - [Justin Erenkrantz] - - *) util_ldap: Keep track of the number of attributes retrieved from - LDAP so that all the values can be properly cached even if the - value is NULL. PR 33901 [Brad Nicholes] - - *) mod_cache: Fix error where incoming Cache-Control would be ignored. - [Justin Erenkrantz] - - *) mod_cache: Correctly handle originally conditional requests. - [Sander Striker] - - *) mod_disk_cache: Correctly update cached headers on revalidated responses. - [Sander Striker, Justin Erenkrantz] - - *) worker MPM/mod_status: Support per-worker tracking of pid and - generation in the scoreboard so that mod_status can accurately - represent workers in processes which are gracefully terminating. - (major MMN bump) - [Jeff Trawick] - - *) Correctly export all mod_dav public functions. - [Branko Čibej ] - -Changes with Apache 2.1.3 - - *) mod_ssl: Add ssl_ext_lookup optional function for accessing - certificate extensions. [David Reid, Joe Orton] - - *) Add support for use of an external PCRE library; pass the - --with-pcre flag to configure. PR 27550. [Joe Orton, - Andres Salomon ] - - *) Renamed regex interfaces to be namespace-safe, and moved from - pcreposix.h header to ap_regex.h: regex_t->ap_regex_t, - regmatch_t->ap_regmatch_t; REG_*->AP_REG_*; functions - reg*->ap_reg*. PR 27550. [Andres Salomon , - Joe Orton] - - *) Only recompile buildmark.c when we have to relink httpd. - [Justin Erenkrantz] - - *) mod_cache: Fix up handling of revalidated responses. - [Justin Erenkrantz] - - *) mod_disk_cache: Properly load cached ETag from on-disk structures. - [Justin Erenkrantz] - - *) mod_authnz_ldap: Added an optional second parameter to AuthLDAPURL - to allow it to override the connection type set in mod_ldap. This - parameter can be set to NONE, SSL or TLS | STARTTLS. - [Brad Nicholes] - - *) Fix --with-apr=/usr and/or --with-apr-util=/usr. PR 29740. - [Max Bowsher ] - - *) mod_proxy: Fix ProxyRemoteMatch directive. PR 33170. - [Rici Lake ] - - *) mod_proxy: Fix incorrect decoding/unescaping for reverse proxies. - PR 32459, 15207. [Jim Jagielski] - - *) mod_cache: Add CacheStorePrivate and CacheStoreNoStore directive. - [Justin Erenkrantz] - - *) Add --enable-pie flag to configure, to build httpd as a Position - Independent Executable where supported (GCC/binutils). - [Joe Orton] - - *) proxy_balancer: Add in load-balancing via weighted traffic - byte count. [Jim Jagielski] - - *) mod_disk_cache: Cache r->err_headers_out headers. This allows CGI - scripts to be properly cached. [Justin Erenkrantz, Sander Striker] - - *) mod_ldap: Updated to use the new apr-util v1.1 apr_ldap_*_option() - API for the setting of server and client SSL certificates. Replaced - LDAPTrustedCA directive with LDAPTrustedGlobalCert and - LDAPTrustedClientCert directives to correctly support global certs - (CA certs / Netware client certs) and per connection client certs - as supported by Netware, OpenLDAP and Netscape/Mozilla. - [Graham Leggett] - - *) mod_cache: Remove unimplemented CacheForceCompletion directive. - [Justin Erenkrantz] - - *) support/check_forensic: Fix temp file usage - [Javier Fernandez-Sanguino Pen~a ] - - *) mod_ssl: Add SSLCADNRequestFile and SSLCADNRequestPath directives - which can be used to configure a specific list of CA names to send - in a client certificate request. PR 32848. - [Tim Taylor ] - - *) --with-module can now take more than one module to be statically - linked: --with-module=:,:,... - If the -subdirectory doesn't exist it will be created and - populated with a standard Makefile.in. [Erik Abele] - - *) Remove some compiler warnings within the LDAP modules [Graham Leggett] - - *) Add a build script to create a solaris package. [Graham Leggett] - - *) ap_http_scheme() replaced with ap_http_method() - this function - returns the scheme (http v.s. https). - [William Rowe] - - *) mod_proxy: Fix a request corruption problem and a buffering problem - which sometimes prevented proxy-sendchunks from working. - [Jeff Trawick] - - *) Fix the RPM spec file so that an RPM build now works. An RPM - build now requires system installations of APR and APR-util. - [Graham Leggett] - - *) Significantly simplify the load balancer scheduling algorithm - for the proxy BalancerMember weighting. loadfactors (lbfactors) - are now normalized with respect to each other. [Jim Jagielski] - - *) mod_dumpio: Added to the available module suite; it is an - I/O logging/dumping module. Placed in the (new) debug module - subdirectory. mod_bucketeer moved to that directory as well. - [Jim Jagielski] - - *) core: Add support for APR_TCP_DEFER_ACCEPT to defer accepting - of a connection until data is available. - [Paul Querna] - -Changes with Apache 2.1.2 - - *) mod_proxy: Respect errors reported by pre_connection hooks. - [Jeff Trawick] - - *) core: Error out on sections that are missing an argument instead of - silently consuming the section. PR 25460. - [Geoffrey Young, Paul Querna] - - *) mod_cache/mod_mem_cache/mod_disk_cache: Move out of experimental. - - *) Upgraded PCRE to version 5.0. [Brian Pane] - - *) mod_cgid: Catch configuration problem where two web server instances - share same ServerRoot but admin forgot to use ScriptSock. - [Jeff Trawick] - - *) mod_cgi: Ensure that all stderr is logged for a script which returns - a Location header to generate a non-local redirect. PR 20111. - [Joe Orton] - - *) Added the Event MPM to more efficiently handle clients during a - Keep Alive request. - [Paul Querna, Greg Ames] - -Changes with Apache 2.1.1 - - *) mod_proxy_http: Stream content better - always flush buffered data to - the client before blocking waiting for new data. PR 19954. - [Joe Orton] - - *) mod_ssl: Add support for command-line option "-t -DDUMP_CERTS" which - will dump the filenames of all configured SSL certificates to stdout. - [Joe Orton] - - *) mod_disk_cache: Remove a bunch of non-implemented garbage collection - and cache size directives that are now available through htcacheclean. - [Justin Erenkrantz] - - *) Add htcacheclean to support/ for assistance with mod_disk_cache. - [Andreas Steinmetz] - - *) mod_authnz_ldap: Added the directive "Requires ldap-filter" that - allows the module to authorize a user based on a complex LDAP - search filter. [Brad Nicholes] - - *) mod_usertrack: Run the fixups hook before other modules. - PR 29755. [Paul Querna] - - *) Allow mod_authnz_ldap authorization functionality to be used - without requiring the user to also be authenticated through - mod_authnz_ldap. This allows other authentication modules to - take advantage of LDAP authorization only [PR 28253] - [Jari Ahonen jah progress.com, Brad Nicholes] - - *) Log the client IP address when an error occurs disabling nagle on a - connection, but log at a severity of debug since this error - generally means that the connection was dropped before data was - sent. Log the client IP address when reporting errors in the core - output filter. [Jeff Trawick] - - *) Add ap_log_cerror() for logging messages associated with particular - client connections. [Jeff Trawick] - - *) core: Add a warning message if the request line read fails. - [Paul Querna] - - *) mod_rewrite: Removed the MaxRedirects option in favor of the - core LimitInternalRecursion directive. [André Malo] - - *) mod_info: Added listing of the Request Hooks and added more build - information like 'httpd -V' contains. Changed output to XHTML. - [Paul Querna] - - *) mod_info: Rewrote config tree walk using a recursive function. - Added ?config option. Added printout of config filename and line numbers. - [Rici Lake , Paul Querna] - - *) mod_proxy: Fix type error that prevents proxy-sendchunks from working. - [Justin Erenkrantz] - - *) mod_proxy: Fix data corruption by properly setting aside buckets. - [Justin Erenkrantz] - - *) mod_proxy: If a request has a blank body and has a 0 Content-Length - headers, pass that to the proxy. [Justin Erenkrantz] - - *) Recognize QSA flag in mod_rewrite again. - [Jan Kratochvil ] - - *) Restructured mod_auth_ldap to fit the new authentication model. - The module is now called authnz_ldap and has been moved out of - the modules/experimental area and into modules/aaa with the other - auth modules. Both the authn_ldap provider and the authz_ldap - handler are contained within the authnz_ldap module. The - authz_ldap handler introduces 3 new "requires" values for handling - authorization. These handlers are ldap-user, ldap-group and - ldap-dn. [Brad Nicholes] - - *) Fix some compiler warnings in proxy - [Geoffrey Young ] - - *) mod_ssl: Add SSL_CLIENT_V_REMAIN variable, representing the - number of days until the client cert expires. [Joe Orton] - - *) Add test_config hook, run only if httpd is invoked using -t. - [Joe Orton] - - *) Improve error handling for corrupted pid files. [Jeff Trawick] - - *) mod_proxy.c and proxy_util.c: Enable compiling on 2.0-HEAD - (for backwards compatibility): - Avoids mod_ssl.h (not included in 2.0-HEAD) and - use apr_socket_create_ex for 0.9.x - [Mladen Turk] - - *) Added proxy_ajp.c module for proxy support to ajp:// backends. - [Jean Frederic Clere] - - *) Fixes the build of proxy on Windows. Since the proxy_module is declared - as extern using AP_MODULE_DECLARE_DATA that expands to dllexport, there - is a LNK2001 error when building proxy_http. [Mladen Turk] - - *) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap. - [Graham Leggett] - - *) Remove deprecated/removed APR_STATUS_IS_SUCCESS(). [Justin Erenkrantz] - - *) perchild MPM: Fix thread safety problem in the use of longjmp(). - [Tsuyoshi SASAMOTO ] - - *) Add load balancer support to the scoreboard in preparation for - load balancing support in mod_proxy. [Mladen Turk] - - *) mod_nw_ssl: Added the directive NWSSLUpgradeable to mod_nw_ssl to - allow a non-secure connection to be upgraded to secure connections - [Brad Nicholes] - - *) core: Add Options= syntax to AllowOverride to specify which options - may be overridden in .htaccess files. PR 29310. - [Tom Alsberg , Paul Querna] - - *) ab: Handle long URLs with an error instead of an buffer overflow. - PR 28204. [Erik Weide , Paul Querna] - - *) mod_so, core: Add new command line options to print all loaded - modules. '-t -D DUMP_MODULES' and '-M' will show all static - and shared modules as loaded from the configuration file. - [Paul Querna] - - *) mod_autoindex: Add ShowForbidden to IndexOptions to list files - that are not shown because the subrequest returned 401 or 403. - PR 10575. [Paul Querna] - - *) mod_headers: implement "Early" processing option in post_read_request - to enable Header and RequestHeader directives to be used to set up - testcases for pre-fixups request phases [Nick Kew] - - *) mod_proxy: multiple bugfixes, principally support cookies in - ProxyPassReverse, and don't canonicalise URL passed to backend. - Documentation correspondingly updated. [Nick Kew ] - - *) mod_deflate: support gzip flags in inflate_out_filter - [Nick Kew ] - - *) Drop the ErrorHeader directive which turned out to be a misnomer. - Instead there's a new optional flag for the Header directive - ('always'), which keeps the former ErrorHeader functionality. - [André Malo] - - *) mod_deflate: Don't deflate responses with zero length - e.g. proxied 304's [Allan Edwards] - - *) now recognizes the module identifier in addition to the - file name. PR 29003. [Edward Rudd , André Malo] - - *) mod_ssl: Add "SSLHonorCipherOrder" directive to enable the - OpenSSL 0.9.7 flag which uses the server's cipher order rather - than the client's. PR 28665. - [Jim Schneider ] - - *) mod_ssl: Drop support for the CompatEnvVars argument to - SSLOptions, which was never actually implemented in 2.0. - [Joe Orton] - - *) Fix bug in mod_deflate that unconditionally sent deflate'd output - even when Accept-Encoding is not present. [Justin Erenkrantz] - - *) Pass environment variables through to piped loggers and start - them via the shell, resolving regressions since 1.3. PR 28815 - [Ken Coar, Jeff Trawick] - - *) External rewrite map responses are no longer limited to 2048 - bytes. [André Malo] - - *) Proxy server was deleting cookies that Apache had already - assigned if the origin server had set any cookies. PR 27023. - [Jim Jagielski] - - *) Removed old and unmaintained ap_add_named_module API and changed - the following APIs to return an error instead of hard exiting: - ap_add_module, ap_add_loaded_module, ap_setup_prelinked_modules, - and ap_process_resource_config. [André Malo] - - *) mod_headers: Allow %% in header values to represent a literal %. - [André Malo] - - *) mod_headers: Allow env clauses also for 'echo' and 'unset' actions. - [André Malo] - - *) mod_headers: Allow 'echo' also for ErrorHeaders. [André Malo] - - *) mod_deflate: New option for DEFLATE output file (force-gzip), - new output filter 'INFLATE' for uncompressing responses. - [Nick Kew , Ian Holsman] - - *) Added new module mod_version, which provides version dependent - configuration containers. [André Malo] - - *) mod_log_config now logs all Set-Cookie headers if the %{Set-Cookie}o - format is used. PR 27787. [André Malo] - - *) Allow Digest providers to return AUTH_DENIED to propagate a 401 - status and terminate the provider chain prior to checking the password. - [Geoffrey Young] - - *) mod_cgid: Don't allow Scriptsock to be specified inside VirtualHost; - Don't place script socket inside default server root instead of - actual server root. PR 27886. [Jeff Trawick] - - *) mod_proxy: Fix handling of non-200 success status codes when - "ProxyErrorOverride On" is configured. PR 20183. - [Marcus Janson , Joe Orton] - - *) Threaded MPMs for Unix and Win32: Add support for ThreadStackSize - directive (previously NetWare-only) to override default thread - stack size for threads which handle client connections. Required - for some third-party modules on platforms with small default - thread stack size. [Jeff Trawick] - - *) minor mod_auth_basic and mod_auth_digest sync. mod_auth_basic - now populates r->user with the (possibly unauthenticated) user, - and mod_auth_digest returns 500 when a provider returns - AUTH_GENERAL_ERROR. - [Geoffrey Young] - - *) The whole codebase was relicensed and is now available under - the Apache License, Version 2.0 (http://www.apache.org/licenses). - [Apache Software Foundation] - - *) Delete some make-generated files in the server directory during - "make clean" processing. PR 26552. [Jeff Trawick] - - *) Add core version query function (ap_get_server_revision) and - accompanying ap_version_t structure (minor MMN bump). - [André Malo] - - *) mod_rewrite: EOLs sent by external rewritemaps are now consumed - as whole. That way, on systems with more than one EOL character - rewritemap programs no longer need to switch stdout to binary - mode. PR 25635. [André Malo] - - *) mod_rewrite: Introduce the ability to force a content handler via - the [handler=...] flag. [André Malo] - - *) mod_rewrite: Introduce the RewriteCond -x check, which returns - true if the pattern is a file with execution permissions. - [André Malo] - - *) mod_rewrite: Allow proxying and RewriteRules in directory context - for subrequests. PR 14648, 15114. [André Malo] - - *) mod_rewrite: Allow setting of any valid HTTP response code. - PR 25917. [André Malo] - - *) mod_rewrite: Cookie creation now works locale independent. - [André Malo] - - *) mod_ssl: Add support for distributed session cache using 'distcache'. - [Geoff Thorpe ] - - *) mod_dav: Disallow requests with an unescaped hash character in - the Request-URI. PR 21779. [Amit Athavale ] - - *) mod_proxy with ProxyErrorOverride On in a reverse-proxy configuration - attaches a body to the 302 response and a wrong Content-Length header. - PR: 22951 [Ermanno Scaglione scaglione ..at.. starnetone.de] - - *) Bring ErrorHeader concept forward from 1.3, so that response - header fields can be set for return even on errors or external - redirects. [Ken Coar] - - *) Fix and parsing to require a closing '>' - in the initial container. PR 25414. - [Geoffrey Young ] - - *) Clean up httpd -V output: Instead of displaying the MPM source - directory, display the MPM name and some MPM properties. - [Geoffrey Young ] - - *) mod_ssl/mod_status: Re-enable support for output of SSL session - cache information in server-status page. [Joe Orton] - - *) mod_ssl: Remove the shmht session cache, shmcb should be used - instead. [Joe Orton] - - *) mod_logio: Account for some bytes handed to the network layer prior to - dropped connections. [Jeff Trawick] - - *) mod_autoindex: new directive IndexStyleSheet - [Tyler Riddle , Paul Querna ] - - *) Fix uninitialized gprof directory name in prefork MPM. PR 24450. - [Chris Knight ] - - *) Log an error when requests for URIs which fail to map to a valid - filesystem name are rejected with 403. [Jeff Trawick] - - *) Switch to APR 1.0 API. - - *) Major overhaul of mod_include's filter parser. The new parser code - is expected to be more robust and should catch all of the edge cases - that were not handled by the previous one. This includes a binary - incompatible change of mod_include's external API. [André Malo] - - *) mod_rewrite: Allow forced mimetypes [T=...] to get expanded. - PR 14223. [André Malo] - - *) mod_rewrite: Fix LA-U and LA-F lookups in directory context. Previously - the current rewrite state was just used as lookup path, which lead to - strange and often useless results. Related to PR 8493. [André Malo] - - *) Change Listen directive to bind to all addresses when a hostname is - not specified. [Justin Erenkrantz] - - *) Correct failure with Listen directives on machines with IPv6 enabled. - [Colm MacCárthaigh , Justin Erenkrantz] - - *) Fix a link failure in mod_ssl when the OpenSSL libraries contain - the ENGINE functions but the engine header files are missing. - [Cliff Woolley] - - *) mod_rewrite: RewriteRules in server context using the force - type feature [T=...] no longer disable MultiViews. [André Malo] - - *) mod_rewrite: Allow piped rewrite logs to be relative to ServerRoot. - [André Malo] - - *) mod_authz_groupfile: Strip trailing spaces of group names. This - hopefully saves some hours of searching for typos. PR 12863. - [André Malo] - - *) mod_actions: Propagate the handler name to the action script via - the REDIRECT_HANDLER environment variable. [André Malo] - - *) mod_actions: Introduce the "virtual" modifier to the Action directive, - which allows the use of handlers for virtual locations. PR 8431. - [André Malo] - - *) mod_speling: Recognize AcceptPathInfo setting for the particular - location. Default is to reject path information. PR 21059. - [André Malo] - - *) mod_ext_filter: Add the ability to filter request bodies. - [Philipp Reisner ] - - *) Fix some broken log messages in WinNT MPM. - [Juan Rivera ] - - *) prefork MPM: Use the right permissions for the directory created - for gprof support. [Jim Carlson ] - - *) Fix a compile failure with recent OpenSSL and picky compilers - (e.g., OpenSSL 0.9.7a and xlc_r on AIX). [Jeff Trawick] - - *) OpenSSL headers should be included as "openssl/ssl.h", and not rely on - the INCLUDE path to be defined properly. - PR 11310. [Geoff Thorpe ] - - *) Modify APACHE_CHECK_SSL_TOOLKIT to detect SSL-C. [Madhusudan Mathihalli] - - *) Replace the APACHE_CHECK_SSL_TOOLKIT method with a cleaner one, using - autoconf tools (AC_CHECK_HEADER, AC_CHECK_LIB etc). - [Geoff Thorpe ] - - *) change directive name from 'compressionlevel' to 'deflatecompressionlevel' - [Ian Holsman, André Malo] - - *) mod_negotiation: quality values are now parsed independent from - the current locale. level values are now really parsed as integers. - PR 17564. [André Malo] - - *) Extend mod_negotiation to evaluate the environment variables - no-gzip and gzip-only-text/html the same way as mod_deflate does. - [André Malo] - - *) mod_rewrite: Fix some problems reporting errors with mapping - programs (RewriteMap prg:/something). [Jeff Trawick] - - *) Return 413 if chunk-ext-header is too long rather than reading from - the truncated line. PR 15857. [Justin Erenkrantz] - - *) Allow restart of httpd to occur even with syntax errors in the config - file. PR 16813. [Justin Erenkrantz] - - *) Use APR_LAYOUT instead of APACHE_LAYOUT in configure. PR 15679. - [Justin Erenkrantz] - - *) Remove files on 'make distclean' that should be. PR 15592. - [Justin Erenkrantz] - - *) Allow apachectl to perform status with links and elinks as well. - [Justin Erenkrantz] - - *) mod_log_config change optional hook to return previous handler - [Ian Holsman] - - *) Forward port of mod_actions' ability to handle arbitrary methods - with the Script directive. [André Malo] - - *) Let suexec send a message to stderr, if it failed or its policy - was violated. This message appears in the error log and allows - for easier debugging. PR 5381, 7638, 8255, 10773. [André Malo] - - *) Modify buildconf to copy all required files into httpd's tree. - [Thom May ] - - *) Allow mod_dav to do weak entity comparison functions. - [Justin Erenkrantz] - - *) Move RFC 1413 ident requests from core to new module mod_ident. - [André Malo] - - *) Add mod_authz_owner - a forward port of "Require file-owner" - and "Require file-group", which was already present in version - 1.3.21. [André Malo] - - *) Add mod_dav_lock - a generic subset of the DAV locking implementation. - [Justin Erenkrantz] - - *) Replace some of the mutex locking in the worker MPM with - atomic operations for higher concurrency. [Brian Pane] - - *) Allow 'make depend' to work with non-GCC compilers. - [Justin Erenkrantz] - - *) If an httpd.conf has commented out AddModule directives, - apxs -i -a will add an un-commented AddModule directive for - the new module, which breaks the config. - PR: 11212 [Joe Orton] - - *) Fix mod_proxy handling of filtered input bodies. [Justin Erenkrantz] - - *) Move the check of the Expect request header field after the hook - for ap_post_read_request, since that is the only opportunity for - modules to handle Expect extensions. [Justin Erenkrantz] - - *) Rewrite of aaa modules to an authn/authz model. - [Dirk-Willem van Gulik, Justin Erenkrantz] - - - [Apache 2.1.0-dev includes those bug fixes and changes with the - Apache 2.0.xx tree as documented, and except as noted, below.] - -Changes with Apache 2.0.55 - - *) SECURITY: CAN-2005-2088 - core: If a request contains both Transfer-Encoding and Content-Length - headers, remove the Content-Length, mitigating some HTTP Request - Splitting/Spoofing attacks. [Paul Querna, Joe Orton] - - *) proxy HTTP: If a response contains both Transfer-Encoding and a - Content-Length, remove the Content-Length and don't reuse the - connection, mitigating some HTTP Response Splitting attacks. - [Jeff Trawick] - - *) SECURITY: CAN-2005-1268 (cve.mitre.org) - mod_ssl: Fix off-by-one overflow whilst printing CRL information - at "LogLevel debug" which could be triggered if configured - to use a "malicious" CRL. PR 35081. [Marc Stern ] - - *) mod_userdir: Fix possible memory corruption issue. PR 34588. - [David Leonard ] - - *) worker MPM: don't take down the whole server for a transient - thread creation failure. PR 34514. [Greg Ames] - - *) mod_rewrite: use buffered I/O to improve performance with large - RewriteMap txt: files. [Greg Ames] - - *) proxy HTTP: Rework the handling of request bodies to handle - chunked input and input filters which modify content length, and - avoid spooling arbitrary-sized request bodies in memory. - PR 15859. [Jeff Trawick] - -Changes with Apache 2.0.54 - - *) mod_cache: Add CacheIgnoreHeaders directive. PR 30399. - [Rüdiger Plüm ] - - *) mod_ldap: Added the directive LDAPConnectionTimeout to configure - the ldap socket connection timeout value. - [Brad Nicholes] - - *) worker MPM: Fix a problem which could cause httpd processes to - remain active after shutdown. [Jeff Trawick] - - *) Unix MPMs: Shut down the server more quickly when child processes are - slow to exit. [Joe Orton, Jeff Trawick] - - *) Remove formatting characters from ap_log_error() calls. These - were escaped as fallout from CAN-2003-0020. - [Eric Covener ] - - *) mod_ssl: If SSLUsername is used, set r->user earlier. PR 31418. - [David Reid] - - *) htdigest: Fix permissions of created files. PR 33765. [Joe Orton] - - *) core_input_filter: Move buckets to a persistent brigade instead of - creating a new brigade. This stop a memory leak when proxying a - Streaming Media Server. PR 33382. [Paul Querna] - - *) mod_win32: Ignore both PATH_INFO as well as PATH_TRANSLATED to avoid - hiccups from additional path information passed in non-utf-8 format. - [Richard Donkin ] - - *) mod_proxy: Fix ProxyRemoteMatch directive. PR 33170. - [Rici Lake ] - - *) mod_proxy: Respect errors reported by pre_connection hooks. - [Jeff Trawick] - - *) --with-module can now take more than one module to be statically - linked: --with-module=:,:,... - If the -subdirectory doesn't exist it will be created and - populated with a standard Makefile.in. [Erik Abele] - - *) Fix the RPM spec file so that an RPM build now works. An RPM - build now requires system installations of APR and APR-util. - Remove some arbitrary moving around of binaries - the RPM now - maps to the ASF build of httpd. - [Graham Leggett] - - *) mod_dumpio, an I/O logging/dumping module, added to the - modules/expermimental subdirectory. [Jim Jagielski] - - *) mod_auth_ldap: Handle the inconsistent way in which the MS LDAP - library handles special characters. PR 24437. [Jess Holle] - - *) Win32 MPM: Correct typo in debugging output. [William Rowe] - - *) conf: Remove AddDefaultCharset from the default configuration because - setting a site-wide default does more harm than good. PR 23421. - [Roy Fielding] - - *) Add charset to example CGI scripts. [Roy Fielding] - - *) mod_ssl: fail quickly if SSL connection is aborted rather than - making many doomed ap_pass_brigade calls. PR 32699. [Joe Orton] - - *) Remove compiled-in upper limit on LimitRequestFieldSize. - [Bill Stoddard] - - *) Start keeping track of time-taken-to-process-request again for - mod_status if ExtendedStatus is enabled. [Jim Jagielski] - - *) mod_proxy: Handle client-aborted connections correctly. PR 32443. - [Janne Hietamäki, Joe Orton] - - *) Fix handling of files >2Gb on all platforms (or builds) where - apr_off_t is larger than apr_size_t. PR 28898. [Joe Orton] - - *) mod_include: Fix bug which could truncate variable expansions - of N*64 characters by one byte. PR 32985. [Joe Orton] - - *) Correct handling of certain bucket types in ap_save_brigade, fixing - possible segfaults in mod_cgi with #include virtual. PR 31247. - [Joe Orton] - - *) Allow for the use of --with-module=foo:bar where the ./modules/foo - directory is local only. Assumes, of course, that the required - files are in ./modules/foo, but makes it easier to statically - build/log "external" modules. [Jim Jagielski] - - *) Util_ldap: Implemented the util_ldap_cache_getuserdn() API so that - ldap authorization only modules have access to the util_ldap - user cache without having to require ldap authentication as well. - PR 31898. [Jari Ahonen jah progress.com, Brad Nicholes] - - *) mod_auth_ldap: Added the directive "Requires ldap-attribute" that - allows the module to only authorize a user if the attribute value - specified matches the value of the user object. PR 31913 - [Ryan Morgan ] - - *) SECURITY: CAN-2004-0942 (cve.mitre.org) - Fix for memory consumption DoS in handling of MIME folded request - headers. [Joe Orton] - - *) SECURITY: CAN-2004-0885 (cve.mitre.org) - mod_ssl: Fix a bug which allowed an SSLCipherSuite setting to be - bypassed during an SSL renegotiation. PR 31505. - [Hartmut Keil , Joe Orton] - - *) mod_ssl: Fail at startup rather than segfault at runtime if a - client cert is configured with an encrypted private key. - PR 24030. [Joe Orton] - - *) apxs: fix handling of -Wc/-Wl and "-o mod_foo.so". PR 31448 - [Joe Orton] - - *) mod_ldap: Fix format strings to use %APR_PID_T_FMT instead of %d. - [Jeff Trawick] - - *) mod_cache: CacheDisable will only disable the URLs it was meant to - disable, not all caching. PR 31128. - [Edward Rudd , Paul Querna] - - *) mod_cache: Try to correctly follow RFC 2616 13.3 on validating stale - cache responses. [Justin Erenkrantz] - - *) mod_rewrite: Handle per-location rules when r->filename is unset. - Previously this would segfault or simply not match as expected, - depending on the platform. [Jeff Trawick] - - *) mod_rewrite: Fix 0 bytes write into random memory position. - PR 31036. [André Malo] - - *) mod_disk_cache: Do not store aborted content. PR 21492. - [Rüdiger Plüm ] - - *) mod_disk_cache: Correctly store cached content type. PR 30278. - [Rüdiger Plüm ] - - *) mod_ldap: prevent the possiblity of an infinite loop in the LDAP - statistics display. PR 29216. [Graham Leggett] - - *) mod_ldap: fix a bogus error message to tell the user which file - is causing a potential problem with the LDAP shared memory cache. - PR 31431 [Graham Leggett] - - *) mod_disk_cache: Do not store hop-by-hop headers. [Justin Erenkrantz] - - *) Fix the re-linking issue when purging elements from the LDAP cache - PR 24801. [Jess Holle ] - - *) mod_disk_cache: Fix races in saving responses. [Justin Erenkrantz] - - *) Fix Expires handling in mod_cache. [Justin Erenkrantz] - - *) Alter mod_expires to run at a different filter priority to allow - proper Expires storage by mod_cache. [Justin Erenkrantz] - -Changes with Apache 2.0.52 - - *) Use HTML 2.0
for error pages. PR 30732 [André Malo] - - *) Fix the global mutex crash when the global mutex is never allocated - due to disabled/empty caches. [Jess Holle ] - - *) Fix a segfault in the LDAP cache when it is configured switched - off. [Jess Holle ] - - *) SECURITY: CAN-2004-0811 (cve.mitre.org) - Fix merging of the Satisfy directive, which was applied to - the surrounding context and could allow access despite configured - authentication. PR 31315. [Rici Lake ] - - *) Fix the handling of URIs containing %2F when AllowEncodedSlashes - is enabled. Previously, such urls would still be rejected. - [Jeff Trawick, Bill Stoddard] - - *) mod_mem_cache: Fixed race condition causing segfault because of memory being - freed twice, or reused after being freed. - [J. Clar, W. Stoddard, G. Ames] - - *) Add -l option to rotatelogs to let it use local time rather than - UTC. PR 24417. [Ken Coar, Uli Zappe ] - - *) mod_log_config: Fix a bug which prevented request completion time - from being logged for I_INSIST_ON_EXTRA_CYCLES_FOR_CLF_COMPLIANCE - processing. PR 29696. [Alois Treindl ] - -Changes with Apache 2.0.51 - - *) SECURITY: CAN-2004-0786 (cve.mitre.org) - Fix an input validation issue in apr-util which could be - triggered by malformed IPv6 literal addresses. [Joe Orton] - - *) SECURITY: CAN-2004-0747 (cve.mitre.org) - Fix buffer overflow in expansion of environment variables in - configuration file parsing. [André Malo] - - *) SECURITY: CAN-2004-0809 (cve.mitre.org) - mod_dav_fs: Fix a segfault in the handling of an indirect lock - refresh. PR 31183. [Joe Orton] - - *) mod_include no longer checks for recursion, because that's done - in the core. This allows for careful usage of recursive SSI. - [André Malo] - - *) Fix memory leak in the cache handling of mod_rewrite. PR 27862. - [chunyan sheng , André Malo] - - *) Include directives no longer refuse to process symlinks on - directories. Instead there's now a maximum nesting level - of included directories (128 as distributed). This is configurable - at compile time using the -DAP_MAX_INCLUDE_DIR_DEPTH switch. - PR 28492. [André Malo] - - *) Win32: apache -k start|restart|install|config can leave stranded - piped logger processes (eg, rotatelogs.exe) due to improper - server shutdown on these code paths. - [Bill Stoddard] - - *) SECURITY: CAN-2004-0751 (cve.mitre.org) - mod_ssl: Fix a segfault in the SSL input filter which could be - triggered if using "speculative" mode, for instance by a - proxy request to an SSL server. PR 30134. [Joe Orton] - - *) mod_rewrite: Add %{SSL:...} and %{HTTPS} variable lookups. - PR 30464. [Joe Orton, Madhusudan Mathihalli] - - *) mod_ssl: Add new 'ssl_is_https' optional function. [Joe Orton] - - *) Prevent CGI script output which includes a Content-Range header - from being passed through the byterange filter. [Joe Orton] - - *) Satisfy directives now can be influenced by a surrounding - container. PR 14726. [André Malo] - - *) mod_rewrite now officially supports RewriteRules in sections. - PR 27985. [André Malo] - - *) mod_disk_cache: Implement binary format for on-disk header files. - [Brian Akins , Justin Erenkrantz] - - *) mod_disk_cache: Optimize network performance of disk cache subsystem by - allowing zero-copy (sendfile) writes and other miscellaneous fixes. - [Justin Erenkrantz] - - *) mod_cache, mod_disk_cache, mod_mem_cache: Refactor cache modules, and - switch to the provider API instead of hooks. [Justin Erenkrantz] - - *) mod_autoindex: Don't truncate the directory listing if a stat() - call fails (for instance on a >2Gb file). PR 17357. - [Joe Orton] - - *) Makefile fix: httpd is linked against LIBS given to the - 'make' invocation. PR 7882. [Joe Orton] - - *) WinNT MPM: Fix a broken log message at termination. PR 28063. - [Eider Oliveira ] - - *) Prevent Win32 pool corruption at startup [Allan Edwards] - - *) mod_ssl: Add "SSLUserName" directive to set r->user based on a - chosen SSL environment variable. PR 20957. - [Martin v. Loewis ] - - *) suexec: Pass the SERVER_SIGNATURE envvar through to CGIs. - [Zvi Har'El ] - - *) apachectl: Fix a problem finding envvars if sbindir != bindir. - PR 30723. [Friedrich Haubensak ] - - *) mod_ssl: Build on RHEL 3. PR 18989. [Justin Erenkrantz] - - *) SECURITY: CAN-2004-0748 (cve.mitre.org) - mod_ssl: Fix a potential infinite loop. PR 29964. [Joe Orton] - - *) mod_ssl: Avoid startup failure after unclean shutdown if using shmcb. - PR 18989. [Joe Orton] - - *) mod_userdir: Ensure that the userdir identity is used for - suexec userdir access in a virtual host which has suexec configured. - PR 18156. [Joshua Slive] - - *) mod_rewrite no longer confuses the RewriteMap caches if - different maps defined in different virtual hosts use the - same map name. PR 26462. [André Malo] - - *) mod_setenvif: Remove "support" for Remote_User variable which - never worked at all. PR 25725. [André Malo] - - *) Backport from 2.1 / Regression from 1.3: mod_headers now knows - again the functionality of the ErrorHeader directive. But instead - using this misnomer additional flags to the Header directive were - introduced ("always" and "onsuccess", defaulting to the latter). - PR 28657. [André Malo] - - *) Use the higher performing 'httpready' Accept Filter on all platforms - except FreeBSD < 4.1.1. [Paul Querna] - - *) mod_usertrack: Escape the cookie name before pasting into the - regexp. [André Malo] - - *) Extend the SetEnvIf directive to capture subexpressions of the - matched value. [André Malo] - - *) Recursive Include directives no longer crash. The server stops - including configuration files after a certain nesting level (128 - as distributed). This is configurable at compile time using the - -DAP_MAX_INCLUDE_DEPTH switch. PR 28370. [André Malo] - - *) mod_dir: the trailing-slash behaviour is now configurable using the - DirectorySlash directive. [André Malo] - - *) Allow proxying of resources that are invoked via DirectoryIndex. - PR 14648, 15112, 29961. [André Malo] - - *) util_ldap: Switched the lock types on the shared memory cache - from thread reader/writer locks to global mutexes in order to - provide cross process cache protection. [Brad Nicholes] - - *) util_ldap: Reworked the cache locking scheme to eliminate duplicate - cache entries in the credentials cache due to race conditions. - [Brad Nicholes] - - *) util_ldap: Enhanced the util_ldap cache-info display to show more - detail about the contents and current state of the cache. - [Brad Nicholes] - - *) Enable the option to support anonymous shared memory in mod_ldap. - This makes the cache work on Linux again. [Graham Leggett] - - *) Enable special ErrorDocument value 'default' which restores the - canned server response for the scope of the directive. - [Geoffrey Young, André Malo] - - *) work around MSIE Digest auth bug - if AuthDigestEnableQueryStringHack - is set in r->subprocess_env allow mismatched query strings to pass. - PR 27758. [Paul Querna, Geoffrey Young] - - *) Accept URLs for the ServerAdmin directive. If the supplied - argument is not recognized as an URL, assume it's a mail address. - PR 28174. [André Malo, Paul Querna] - - *) initialize server arrays prior to calling ap_setup_prelinked_modules - so that static modules can push Defines values when registering - hooks just like DSO modules can ["Philippe M. Chiasson" ] - - *) Small fix to allow reverse proxying to an ftp server. Previously - an attempt to do this would try and connect to 0.0.0.0, regardless - of the server specified. PR 24922 - [Pascal Terjan ] - - *) Add the NOTICE file to the rpm spec file in compliance with the - Apache v2.0 license. [Graham Leggett] - - *) RPM spec file changes: changed default dependancy to link to db4 - instead of db3. Fixed complaints about unpackaged files. - [Graham Leggett] - -Changes with Apache 2.0.50 - - *) SECURITY: CAN-2004-0493 (cve.mitre.org) - Close a denial of service vulnerability identified by Georgi - Guninski which could lead to memory exhaustion with certain - input data. [Jeff Trawick] - - *) mod_cgi: Handle output on stderr during script execution on Unix - platforms; preventing deadlock when stderr output fills pipe buffer. - Also fixes case where stderr from nph- scripts could be lost. - PR 22030, 18348. [Joe Orton, Jeff Trawick] - - *) mod_alias now emits a warning if it detects overlapping *Alias* - directives. [André Malo] - - *) mod_rewrite no longer turns forward proxy requests into reverse proxy - requests. PR 28125 [ast domdv.de, André Malo] - - *) ap_set_sub_req_protocol and ap_finalize_sub_req_protocol are now - exported on Win32 and Netware as well (minor MMN bump). PR 28523. - [Edward Rudd , André Malo] - - *) Restore the ability to disable the use of AcceptEx on Win9x systems - automatically (broken in 2.0.49). PR 28529. [André Malo] - - *) now applies to all IP addresses for myhost - instead of just the first one reported by the resolver. This - corrects a regression since 1.3. [Jeff Trawick] - - *) util_ldap: allow relative paths for LDAPTrustedCA to be resolved - against ServerRoot PR#26602 [Brad Nicholes] - - *) SECURITY: CAN-2004-0488 (cve.mitre.org) - mod_ssl: Fix a buffer overflow in the FakeBasicAuth code for a - (trusted) client certificate subject DN which exceeds 6K in length. - [Joe Orton] - - *) mod_dav_fs: Fix MKCOL response for missing parent collections, which - caused issues for the Eclipse WebDAV extension. - PR 29034. [Joe Orton] - - *) mod_deflate: Fix memory consumption (which was proportional to the - response size). PR 29318. [Joe Orton] - - *) mod_ssl: Log the errors returned on failure to load or initialize - a crypto accelerator engine. [Joe Orton] - - *) Allow RequestHeader directives to be conditional. PR 27951. - [Vincent Deffontaines , André Malo] - - *) Allow LimitRequestBody to be reset to unlimited. PR 29106 - [André Malo] - - *) Fix a bunch of cases where the return code of the regex compiler - was not checked properly. This affects: mod_setenvif, mod_usertrack, - mod_proxy, mod_proxy_ftp and core. PR 28218. [André Malo] - - *) mod_ssl: Fix a potential segfault in the 'shmcb' session cache for - small cache sizes. PR 27751. [Geoff Thorpe ] - - *) Remove 2Gb log file size restriction on some 32-bit platforms. - PR 13511. [Joe Orton] - - *) mod_logio no longer removes the EOS bucket. PR 27928. - [Bojan Smojver ] - - *) htpasswd no longer refuses to process files that contain empty - lines. [André Malo] - - *) Regression from 1.3: At startup, suexec now will be checked for - availability, the setuid bit and user root. The works only if - httpd is compiled with the shipped APR version (0.9.5). - PR 28287. [André Malo] - - *) Unix MPMs: Stop dropping connections when the file descriptor - is at least FD_SETSIZE. [Jeff Trawick] - - *) Fix handling of IPv6 numeric strings in mod_proxy. [Jeff Trawick] - - *) mod_isapi: send_response_header() failed to copy status string's - last character. PR 20619. [Jesse Pelton ] - - *) Fix a segfault when requests for shared memory fails and returns - NULL. Fix a segfault caused by a lack of bounds checking on the - cache. PR 24801. [Graham Leggett] - - *) Throw an error message if an attempt is made to use the LDAPTrustedCA - or LDAPTrustedCAType directives in a VirtualHost. PR 26390 - [Brad Nicholes] - - *) Fix a potential segfault if the bind password in the LDAP cache - is NULL. PR 28250. [Jari Ahonen ] - - *) Quotes cannot be used around require group and require dn - directives, update the documentation to reflect this. Also add - quotes around the dn and group within debug messages, to make it - more obvious why authentication is failing if quotes are used in - error. PR 19304. [Graham Leggett] - - *) The Microsoft LDAP SDK escapes filters for us, stop util_ldap - from escaping filters twice when the backslash character is used. - PR 24437. [Jess Holle ] - - *) Overhaul handling of LDAP error conditions, so that the util_ldap_* - functions leave the connections in a sane state after errors have - occurred. PR 27748, 17274, 17599, 18661, 21787, 24595, 24683, 27134, - 27271 [Graham Leggett] - - *) mod_ldap calls ldap_simple_bind_s() to validate the user - credentials. If the bind fails, the connection is left - in an unbound state. Make sure that the ldap connection - record is updated to show that the connection is no longer - bound. [Brad Nicholes] - - *) Ensure that lines in the request which are too long are - properly terminated before logging. - [Tsurutani Naoki ] - - *) Update the bind credentials for the cached LDAP connection to - reflect the last bind. This prevents util_ldap from creating - unnecessary connections rather than reusing cached connections. - [Brad Nicholes] - - *) mod_isapi: GetServerVariable returned improperly terminated header - fields given "ALL_HTTP" or "ALL_RAW". PR 20656. - [Jesse Pelton ] - - *) mod_isapi: GetServerVariable("ALL_RAW") returned the wrong buffer - size. PR 20617. [Jesse Pelton ] - - *) mod_dav: Fix a problem that could cause crashes when manipulating - locks on some platforms. [Jeff Trawick] - - *) mod_headers no longer crashes if an empty header value should - be added. [André Malo] - - *) Fix segfault in mod_expires, which occured under certain - circumstances. PR 28047. [André Malo] - - *) htpasswd: use apr_temp_dir_get() and general cleanup - [Guenter Knauf , Thom May] - - *) mod_ssl: Fix memory leak in session cache handling. PR 26562 - [Madhusudan Mathihalli] - - *) mod_ssl: Fix potential segfaults when performing SSL shutdown from - a pool cleanup. PR 27945. [Joe Orton] - - *) Add forensic logging module (mod_log_forensic). - [Ben Laurie] - - *) logresolve: Allow size of log line buffer to be overridden at - build time (MAXLINE). PR 27793. [Jeff Trawick] - - *) Fix the comment delimiter in htdbm so that it correctly parses the - username comment. Also add a terminate function to allow NetWare - to pause the output before the screen is destroyed. - [Guenter Knauf , Brad Nicholes] - - *) Fix crash when Apache was started with no Listen directives. - [Michael Corcoran ] - - *) core_output_filter: Fix bug that could result in sending - garbage over the network when module handlers construct - bucket brigades containing multiple file buckets all referencing - the same open file descriptor. [Bojan Smojver] - - *) Fix memory corruption problem with ap_custom_response() function. - The core per-dir config would later point to request pool data - that would be reused for different purposes on different requests. - [Jeff Trawick, based on an old 1.3 patch submitted by Will Lowe] - - *) Win32: Tweak worker thread accounting routines to eliminate - server hang when number of Listen directives in httpd.conf - is greater than or equal to the setting of ThreadsPerChild. - [Bill Stoddard] - -Changes with Apache 2.0.49 - - *) SECURITY: CAN-2004-0174 (cve.mitre.org) - Fix starvation issue on listening sockets where a short-lived - connection on a rarely-accessed listening socket will cause a - child to hold the accept mutex and block out new connections until - another connection arrives on that rarely-accessed listening socket. - With Apache 2.x there is no performance concern about enabling the - logic for platforms which don't need it, so it is enabled everywhere - except for Win32. [Jeff Trawick] - - *) mod_cgid: Fix storage corruption caused by use of incorrect pool. - [Jeff Trawick] - - *) Win32: find_read_listeners was not correctly handling multiple - listeners on the Win32DisableAcceptEx path. [Bill Stoddard] - - *) Fix bug in mod_usertrack when no CookieName is set. PR 24483. - [Manni Wood ] - - *) Fix some piped log problems: bogus "piped log program '(null)' - failed" messages during restart and problem with the logger - respawning again after Apache is stopped. PR 21648, PR 24805. - [Jeff Trawick] - - *) Fixed file extensions for real media files and removed rpm extension - from mime.types. PR 26079. [Allan Sandfeld ] - - *) Remove compile-time length limit on request strings. Length is - now enforced solely with the LimitRequestLine config directive. - [Paul J. Reder] - - *) mod_ssl: Send the Close Alert message to the peer before closing - the SSL session. PR 27428. [Madhusudan Mathihalli, Joe Orton] - - *) SECURITY: CVE-2004-0113 (cve.mitre.org) - mod_ssl: Fix a memory leak in plain-HTTP-on-SSL-port handling. - PR 27106. [Joe Orton] - - *) mod_ssl: Fix bug in passphrase handling which could cause spurious - failures in SSL functions later. PR 21160. [Joe Orton] - - *) mod_log_config: Fix corruption of buffered logs with threaded - MPMs. PR 25520. [Jeff Trawick] - - *) Fix mod_include's expression parser to recognize strings correctly - even if they start with an escaped token. [André Malo] - - *) Add fatal exception hook for use by diagnostic modules. The hook - is only available if the --enable-exception-hook configure parm - is used and the EnableExceptionHook directive has been set to - "on". [Jeff Trawick] - - *) Allow mod_auth_digest to work with sub-requests with different - methods than the original request. PR 25040. - [Josh Dady ] - - *) fix "Expected > but saw " errors in nested, - argumentless containers. - ["Philippe M. Chiasson" ] - - *) mod_auth_ldap: Fix some segfaults in the cache logic. PR 18756. - [Matthieu Estrade , Brad Nicholes] - - *) mod_cgid: Restart the cgid daemon if it crashes. PR 19849 - [Glenn Nielsen ] - - *) The whole codebase was relicensed and is now available under - the Apache License, Version 2.0 (http://www.apache.org/licenses). - [Apache Software Foundation] - - *) Fixed cache-removal order in mod_mem_cache. - [Jean-Jacques Clar, Cliff Woolley] - - *) mod_setenvif: Fix the regex optimizer, which under circumstances - treated the supplied regex as literal string. PR 24219. - [André Malo] - - *) ap_mpm.h: Fix include guard of ap_mpm.h to reference mpm - instead of mmn. [André Malo] - - *) mod_rewrite: Catch an edge case, where strange subsequent RewriteRules - could lead to a 400 (Bad Request) response. [André Malo] - - *) Keep focus of ITERATE and ITERATE2 on the current module when - the module chooses to return DECLINE_CMD for the directive. - PR 22299. [Geoffrey Young ] - - *) Add support for IMT minor-type wildcards (e.g., text/*) to - ExpiresByType. PR#7991 [Ken Coar] - - *) Fix segfault in mod_mem_cache cache_insert() due to cache size - becoming negative. PR: 21285, 21287 - [Bill Stoddard, Massimo Torquati, Jean-Jacques Clar] - - *) core.c: If large file support is enabled, allow any file that is - greater than AP_MAX_SENDFILE to be split into multiple buckets. - This allows Apache to send files that are greater than 2gig. - Otherwise we run into 32/64 bit type mismatches in the file size. - [Brad Nicholes] - - *) proxy_http fix: mod_proxy hangs when both KeepAlive and - ProxyErrorOverride are enabled, and a non-200 response without a - body is generated by the backend server. (e.g.: a client makes a - request containing the "If-Modified-Since" and "If-None-Match" - headers, to which the backend server respond with status 304.) - [Graham Wiseman , Richard Reiner] - - *) mod_dav: Reject requests which include an unescaped fragment in the - Request-URI. PR 21779. [Amit Athavale ] - - *) Build array of allowed methods with proper dimensions, fixing - possible memory corruption. [Jeff Trawick] - - *) mod_ssl: Fix potential segfault on lookup of SSL_SESSION_ID. - PR 15057. [Otmar Lendl ] - - *) mod_ssl: Fix streaming output from an nph- CGI script. PR 21944 - [Joe Orton] - - *) mod_usertrack no longer inspects the Cookie2 header for - the cookie name. PR 11475. [Chris Darrochi ] - - *) mod_usertrack no longer overwrites other cookies. - PR 26002. [Scott Moore ] - - *) worker MPM: fix stack overlay bug that could cause the parent - process to crash. [Jeff Trawick] - - *) Win32: Add Win32DisableAcceptEx directive. This Windows - NT/2000/CP directive is useful to work around bugs in some - third party layered service providers like virus scanners, - VPN and firewall products, that do not properly handle - WinSock 2 APIs. Use this directive if your server is issuing - AcceptEx failed messages. - [Allan Edwards, Bill Rowe, Bill Stoddard, Jeff Trawick] - - *) Make REMOTE_PORT variable available in mod_rewrite. - PR 25772. [André Malo] - - *) Fix a long delay with CGI requests and keepalive connections on - AIX. [Jeff Trawick] - - *) mod_autoindex: Add 'XHTML' option in order to allow switching between - HTML 3.2 and XHTML 1.0 output. PR 23747. [André Malo] - - *) Add XHTML Document Type Definitions to httpd.h (minor MMN bump). - [André Malo] - - *) mod_ssl: Advertise SSL library version as determined at run-time rather - than at compile-time. PR 23956. [Eric Seidel ] - - *) mod_ssl: Fix segfault on a non-SSL request if the 'c' log - format code is used. PR 22741. [Gary E. Miller ] - - *) Fix build with parallel make. PR 24643. [Joe Orton] - - *) mod_rewrite: In external rewrite maps lookup keys containing - a newline now cause a lookup failure. PR 14453. - [Cedric Gavage , André Malo] - - *) Backport major overhaul of mod_include's filter parser from 2.1. - The new parser code is expected to be more robust and should - catch all of the edge cases that were not handled by the previous one. - The 2.1 external API changes were hidden by a wrapper which is - expected to keep the API backwards compatible. [André Malo] - - *) Add a hook (insert_error_filter) to allow filters to re-insert - themselves during processing of error responses. Enable mod_expires - to use the new hook to include Expires headers in valid error - responses. This addresses an RFC violation. It fixes PRs 19794, - 24884, and 25123. [Paul J. Reder] - - *) Add Polish translation of error messages. PR 25101. - [Tomasz Kepczynski ] - - *) Add AP_MPMQ_MPM_STATE function code for ap_mpm_query. (Not yet - supported for BeOS or OS/2 MPMs.) [Jeff Trawick, Brad Nicholes, - Bill Stoddard] - - *) Add mod_status hook to allow modules to add to the mod_status - report. [Joe Orton] - - *) Fix htdbm to generate comment fields in DBM files correctly. - [Justin Erenkrantz] - - *) mod_dav: Use bucket brigades when reading PUT data. This avoids - problems if the data stream is modified by an input filter. PR 22104. - [Tim Robbins , André Malo] - - *) Fix RewriteBase directive to not add double slashes. [André Malo] - - *) Improve 'configure --help' output for some modules. [Astrid Keßler] - - *) Correct UseCanonicalName Off to properly check incoming port number. - [Jim Jagielski] - - *) Fix slow graceful restarts with prefork MPM. [Joe Orton] - - *) Fix a problem with namespace mappings being dropped in mod_dav_fs; - if any property values were set which defined namespaces these - came out mangled in the PROPFIND response. PR 11637. - [Amit Athavale ] - - *) mod_dav: Return a WWW-auth header for MOVE/COPY requests where - the destination resource gives a 401. PR 15571. [Joe Orton] - - *) SECURITY: CVE-2003-0020 (cve.mitre.org) - Escape arbitrary data before writing into the errorlog. Unescaped - errorlogs are still possible using the compile time switch - "-DAP_UNSAFE_ERROR_LOG_UNESCAPED". [Geoffrey Young, André Malo] - - *) mod_autoindex / core: Don't fail to show filenames containing - special characters like '%'. PR 13598. [André Malo] - - *) mod_status: Report total CPU time accurately when using a threaded - MPM. PR 23795. [Jeff Trawick] - - *) Fix memory leak in handling of request bodies during reverse - proxy operations. PR 24991. [Larry Toppi ] - - *) Win32 MPM: Implement MaxMemFree to enable setting an upper - limit on the amount of storage used by the bucket brigades - in each server thread. [Bill Stoddard] - - *) Modified the cache code to be header-location agnostic. Also - fixed a number of other cache code bugs related to PR 15852. - Includes a patch submitted by Sushma Rai . - This fixes mod_mem_cache but not mod_disk_cache yet so I'm not - closing the PR since that is what they are using. [Paul J. Reder] - - *) complain via error_log when mod_include's INCLUDES filter is - enabled, but the relevant Options flag allowing the filter to run - for the specific resource wasn't set, so that the filter won't - silently get skipped. next remove itself, so the warning will be - logged only once [Stas Bekman, Jeff Trawick, Bill Rowe] - - *) mod_info: HTML escape configuration information so it displays - correctly. PR 24232. [Thom May] - - *) Restore the ability to add a description for directories that - don't contain an index file. (Broken in 2.0.48) [André Malo] - - *) Fix a problem with the display of empty variables ("SetEnv foo") in - mod_include. PR 24734 [Markus Julen ] - - *) mod_log_config: Log the minutes component of the timezone correctly. - PR 23642. [Hong-Gunn Chew ] - - *) mod_proxy: Fix cases where an invalid status-line could be sent - to the client. PR 23998. [Joe Orton] - - *) mod_ssl: Fix segfaults at startup if other modules which use OpenSSL - are also loaded. [Joe Orton] - - *) mod_ssl: Use human-readable OpenSSL error strings in logs; use - thread-safe interface for retrieving error strings. [Joe Orton] - - *) mod_expires: Initialize ExpiresDefault to NULL instead of "" to - avoid reporting an Internal Server error if it is used without - having been set in the httpd.conf file. PR: 23748, 24459 - [André Malo, Liam Quinn ] - - *) mod_autoindex: Don't omit the start tag if the SuppressIcon - option is set. PR 21668. [Jesse Tie-Ten-Quee ] - - *) mod_include no longer allows an ETag header on 304 responses. - PR 19355. [Geoffrey Young , André Malo] - - *) EBCDIC: Convert header fields to ASCII before sending (broken - since 2.0.44). [Martin Kraemer] - - *) Fix the inability to log errors like exec failure in - mod_ext_filter/mod_cgi script children. This was broken after - such children stopped inheriting the error log handle. - [Jeff Trawick] - - *) Fix mod_info to use the real config file name, not the default - config file name. [Aryeh Katz ] - - *) Set the scoreboard state to indicate logging prior to running - logging hooks so that server-status will show 'L' for hung loggers - instead of 'W'. [Jeff Trawick] - -Changes with Apache 2.0.48 - - *) SECURITY: CAN-2003-0789 (cve.mitre.org) - mod_cgid: Resolve some mishandling of the AF_UNIX socket used to - communicate with the cgid daemon and the CGI script. - [Jeff Trawick] - - *) SECURITY: CAN-2003-0542 (cve.mitre.org) - Fix buffer overflows in mod_alias and mod_rewrite which occurred - if one configured a regular expression with more than 9 captures. - [André Malo] - - *) mod_include: fix segfault which occured if the filename was not - set, for example, when processing some error conditions. - PR 23836. [Brian Akins , André Malo] - - *) fix the config parser to support .. containers (no - arguments in the opening tag) supported by httpd 1.3. Without - this change mod_perl 2.0's sections are broken. - ["Philippe M. Chiasson" ] - - *) mod_cgid: fix a hash table corruption problem which could - result in the wrong script being cleaned up at the end of a - request. [Jeff Trawick] - - *) Update httpd-*.conf to be clearer in describing the connection - between AddType and AddEncoding for defining the meaning of - compressed file extensions. [Roy Fielding] - - *) mod_rewrite: Don't die silently when failing to open RewriteLogs. - PR 23416. [André Malo] - - *) mod_rewrite: Fix mod_rewrite's support of the [P] option to send - rewritten request using "proxy:". The code was adding multiple "proxy:" - fields in the rewritten URI. PR: 13946. - [Eider Oliveira ] - - *) cache_util: Fix ap_check_cache_freshness to check max_age, smax_age, and - expires as directed in RFC 2616. [Thomas Castelle ] - - *) Ensure that ssl-std.conf is generated at configure time, and switch - to using the expanded config variables to work the same as - httpd-std.conf PR: 19611 - [Thom May] - - *) mod_ssl: Fix segfaults after renegotiation failure. PR 21370 - [Hartmut Keil ] - - *) mod_autoindex: If a directory contains a file listed in the - DirectoryIndex directive, the folder icon is no longer replaced - by the icon of that file. PR 9587. - [David Shane Holden ] - - *) Fixed mod_usertrack to not get false positive matches on the - user-tracking cookie's name. PR 16661. - [Manni Wood ] - - *) mod_cache: Fix the cache code so that responses can be cached - if they have an Expires header but no Etag or Last-Modified - headers. PR 23130. - [] - - *) mod_log_config: Fix %b log format to write really "-" when 0 bytes - were sent (e.g. with 304 or 204 response codes). [Astrid Keßler] - - *) Modify ap_get_client_block() to note if it has seen EOS. - [Justin Erenkrantz] - - *) Fix a bug, where mod_deflate sometimes unconditionally compressed the - content if the Accept-Encoding header contained only other tokens than - "gzip" (such as "deflate"). PR 21523. [Joe Orton, André Malo] - - *) Avoid an infinite recursion, which occured if the name of an included - config file or directory contained a wildcard character. PR 22194. - [André Malo] - - *) mod_ssl: Fix a problem setting variables that represent the - client certificate chain. PR 21371 [Jeff Trawick] - - *) Unix: Handle permissions settings for flock-based mutexes in - unixd_set_global|proc_mutex_perms(). Allow the functions to be - called for any type of mutex. PR 20312 [Jeff Trawick] - - *) ab: Work over non-loopback on Unix again. PR 21495. [Jeff Trawick] - - *) Fix a misleading message from the some of the threaded MPMs when - MaxClients has to be lowered due to the setting of ServerLimit. - [Jeff Trawick] - - *) Lower the severity of the "listener thread didn't exit" message - to debug, as it is of interest only to developers. PR 9011 - [Jeff Trawick] - - *) MPMs: The bucket brigades subsystem now honors the MaxMemFree setting. - [Cliff Woolley, Jean-Jacques Clar] - - *) Install config.nice into the build/ directory to make - minor version upgrades easier. [Joshua Slive] - - *) Fix mod_deflate so that it does not call deflate() without checking - first whether it has something to deflate. (Currently this causes - deflate to generate a fatal error according to the zlib spec.) - PR 22259. [Stas Bekman] - - *) mod_ssl: Fix FakeBasicAuth for subrequest. Log an error when an - identity spoof is encountered. - [Sander Striker] - - *) mod_rewrite: Ignore RewriteRules in .htaccess files if the directory - containing the .htaccess file is requested without a trailing slash. - PR 20195. [André Malo] - - *) ab: Overlong credentials given via command line no longer clobber - the buffer. [André Malo] - - *) mod_deflate: Don't attempt to hold all of the response until we're - done. [Justin Erenkrantz] - - *) Assure that we block properly when reading input bodies with SSL. - PR 19242. [David Deaves , William Rowe] - - *) Update mime.types to include latest IANA and W3C types. [Roy Fielding] - - *) mod_ext_filter: Set additional environment variables for use by - the external filter. PR 20944. [Andrew Ho, Jeff Trawick] - - *) Fix buildconf errors when libtool version changes. [Jeff Trawick] - - *) Remember an authenticated user during internal redirects if the - redirection target is not access protected and pass it - to scripts using the REDIRECT_REMOTE_USER environment variable. - PR 10678, 11602. [André Malo] - - *) mod_include: Fix a trio of bugs that would cause various unusual - sequences of parsed bytes to omit portions of the output stream. - PR 21095. [Ron Park , André Malo, Cliff Woolley] - - *) Update the header token parsing code to allow LWS between the - token word and the ':' seperator. [PR 16520] - [Kris Verbeeck , Nicel KM ] - - *) Eliminate creation of a temporary table in ap_get_mime_headers_core() - [Joe Schaefer ] - - *) Added FreeBSD directory layout. PR 21100. - [Sander Holthaus , André Malo] - - *) Fix NULL-pointer issue in ab when parsing an incomplete or non-HTTP - response. PR 21085. [Glenn Nielsen , André Malo] - - *) mod_rewrite: Perform child initialization on the rewrite log lock. - This fixes a log corruption issue when flock-based serialization - is used (e.g., FreeBSD). [Jeff Trawick] - - *) Don't respect the Server header field as set by modules and CGIs. - As with 1.3, for proxy requests any such field is from the origin - server; otherwise it will have our server info as controlled by - the ServerTokens directive. [Jeff Trawick] - -Changes with Apache 2.0.47 - - *) SECURITY: CAN-2003-0192 (cve.mitre.org) - Fixed a bug whereby certain sequences of per-directory - renegotiations and the SSLCipherSuite directive being used to - upgrade from a weak ciphersuite to a strong one could result in - the weak ciphersuite being used in place of the strong one. - [Ben Laurie] - - *) SECURITY: CAN-2003-0253 (cve.mitre.org) - Fixed a bug in prefork MPM causing temporary denial of service - when accept() on a rarely accessed port returns certain errors. - Reported by Saheed Akhtar . [Jeff Trawick] - - *) SECURITY: CAN-2003-0254 (cve.mitre.org) - Fixed a bug in ftp proxy causing denial of service when target - host is IPv6 but proxy server can't create IPv6 socket. Fixed by - the reporter. [Yoshioka Tsuneo ] - - *) SECURITY [VU#379828] Prevent the server from crashing when entering - infinite loops. The new LimitInternalRecursion directive configures - limits of subsequent internal redirects and nested subrequests, after - which the request will be aborted. PR 19753 (and probably others). - [William Rowe, Jeff Trawick, André Malo] - - *) core_output_filter: don't split the brigade after a FLUSH bucket if - it's the last bucket. This prevents creating unneccessary empty - brigades which may not be destroyed until the end of a keepalive - connection. - [Juan Rivera ] - - *) Add support for "streamy" PROPFIND responses. - [Ben Collins-Sussman ] - - *) mod_cgid: Eliminate a double-close of a socket. This resolves - various operational problems in a threaded MPM, since on the - second attempt to close the socket, the same descriptor was - often already in use by another thread for another purpose. - [Jeff Trawick] - - *) mod_negotiation: Introduce "prefer-language" environment variable, - which allows to influence the negotiation process on request basis - to prefer a certain language. [André Malo] - - *) Make mod_expires' ExpiresByType work properly, including for - dynamically-generated documents. [Ken Coar, Bill Stoddard] - -Changes with Apache 2.0.46 - - *) SECURITY: CAN-2003-0245 (cve.mitre.org) - Fixed a bug causing apr_pvsprintf() to crash by sending an overly - long string. This can be triggered remotely through mod_dav, - mod_ssl, and other mechanisms. - Reported by David Endler . [Joe Orton] - - *) SECURITY: CAN-2003-0189 (cve.mitre.org) - Fixed a denial-of-service vulnerability affecting basic - authentication on Unix platforms related to thread-safety in - apr_password_validate(). - Reported by John Hughes . - - *) Fix for mod_dav. Call the 'can_be_activity' callback, if provided, - when a MKACTIVITY request comes in. - [Ben Collins-Sussman ] - - *) Perform run-time query in apxs for apr and apr-util's includes. - [Justin Erenkrantz] - - *) run libtool from the apr install directory (in case that is different - from the apache install directory) [Jeff Trawick] - - *) configure.in: Play nice with libtool-1.5. [Wilfredo Sanchez] - - *) If mod_mime_magic does not know the content-type, do not attempt to - guess. PR 16908. [Andrew Gapon ] - - *) ssl session caching(shmht) : Fix a SEGV problem with SHMHT session - caching. PR 17864. - [Andreas Leimbacher , Madhusudan Mathihalli] - - *) Add a delete flag to htpasswd. - [Thom May] - - *) Fix mod_rewrite's handling of absolute URIs. The escaping routines - now work scheme dependent and the query string will only be - appended if supported by the particular scheme. [André Malo] - - *) Add another check for already compressed content in mod_deflate. - PR 19913. [Tsuyoshi SASAMOTO ] - - *) Fixes for VPATH builds; copying special.mk and any future .mk files - from the source tree as well as the build tree (now creates a usable - configuration for apxs), and eliminated redundant -I'nclude paths. - [William Rowe] - - *) Code fixes, constness corrections and ssl_toolkit_compat.h updates - for SSLC and OpenSSL toolkit compatibility. Still work remains to - be done to cripple features based on the limitations of RSA's binary - distribution of their SSL-C toolkit. - [William Rowe, Madhusudan Mathihalli, Jeff Trawick] - - *) Linux 2.4+: If Apache is started as root and you code - CoreDumpDirectory, coredumps are enabled via the prctl() syscall. - [Greg Ames] - - *) ap_get_mime_headers_core: allocate space for the trailing null - when folding is in effect. - PR 18170 [Peter Mayne ] - - *) Fix --enable-mods-shared=most and other variants. [Aaron Bannert] - - *) mod_log_config: Add the ability to log the id of the thread - processing the request via new %P formats. [Jeff Trawick] - - *) Use appropriate language codes for Czech (cs) and Traditional Chinese - (zh-tw) in default config files. PR 9427. [André Malo] - - *) mod_auth_ldap: Use generic whitespace character class when parsing - "require" directives, instead of literal spaces only. PR 17135. - [André Malo] - - *) Hook mod_rewrite's type checker before mod_mime's one. That way the - RewriteRule [T=...] Flag should work as expected now. PR 19626. - [André Malo] - - *) htpasswd: Check the processed file on validity. If a line is not empty - and not a comment, it must contain at least one colon. Otherwise exit - with error code 7. [Kris Verbeeck , Thom May] - - *) Fix a problem that caused httpd to be linked with incorrect flags - on some platforms when mod_so was enabled by default, breaking - DSOs on AIX. PR 19012 [Jeff Trawick] - - *) By default, use the same CC and CPP with which APR was built. - The user can override with CC and CPP environment variables. - [Jeff Trawick] - - *) Fix ap_construct_url() so that it surrounds IPv6 literal address - strings with []. This fixes certain types of redirection. - PR 19207. [Jeff Trawick] - - *) forward port of buffer overflow fixes for htdigest. [Thom May] - - *) Added AllowEncodedSlashes directive to permit control of whether - the server will accept encoded slashes ('%2f') in the URI path. - Default condition is off (the historical behaviour). This permits - environments in which the path-info needs to contain encoded - slashes. PR 543, 2389, 3581, 3589, 5687, 7066, 7865, 14639. [Ken Coar] - - *) When using Redirect in directory context, append requested query - string if there's no one supplied by configuration. PR 10961. - [André Malo] - - *) Unescape the supplied wildcard pattern in mod_autoindex. Otherwise - the pattern will not always match as desired. PR 12596. - [André Malo] - - *) mod_autoindex now emits and accepts modern query string parameter - delimiters (;). Thus column headers no longer contain unescaped - ampersands. PR 10880 [André Malo] - - *) Enable ap_sock_disable_nagle for Windows. This along with the - addition of APR_TCP_NODELAY_INHERITED to apr.hw will cause Nagle - to be disabled for Windows. [Allan Edwards] - - *) Correct a mis-correlation between mpm_common.c and mpm_common.h; - This patch reverts us to pre-2.0.46 behavior, using the - ap_sock_disable_nagle noop macro, because ap_sock_disable_nagle - was never compiled on Win32. [Allan Edwards, William Rowe] - - *) Fix a build problem with passing unsupported --enable-layout - args to apr and apr-util. This broke binbuild.sh as well as - user-specified layout parameters. PR 18649 [Justin Erenkrantz, - Jeff Trawick] - - *) If a Date response header was already set in the headers array, - this value was ignored in favour of the current time. This meant - that Date headers on proxied requests where rewritten when they - should not have been. PR: 14376 [Graham Leggett] - - *) Add code to buildconf that produces an httpd.spec file from - httpd.spec.in, using build/get-version.sh from APR. - [Graham Leggett] - - *) Fixed a segfault when multiple ProxyBlock directives were used. - PR: 19023 [Sami Tikka ] - - *) SECURITY: CAN-2003-0134 (cve.mitre.org) - OS2: Fix a Denial of Service vulnerability identified and - reported by Robert Howard that where device - names faulted the running OS2 worker process. The fix is - actually in APR 0.9.4. [Brian Havard] - - *) Forward port: Escape special characters (especially control - characters) in mod_log_config to make a clear distinction between - client-supplied strings (with special characters) and server-side - strings. This was already introduced in version 1.3.25. - [André Malo] - - *) mod_deflate: Check also err_headers_out for an already set - Content-Encoding: gzip header. This prevents gzip compressed content - from a CGI script from being compressed once more. PR 17797. - [André Malo] - -Changes with Apache 2.0.45 - - *) Fix possible segfaults under obscure error conditions within the - cgid daemon. [Jeff Trawick, William Rowe] - - *) SECURITY: CAN-2003-0132 (cve.mitre.org) - Close a Denial of Service vulnerability identified by David - Endler on all platforms. An unlimited - stream of newlines were acceptable between requests where each - would allocate an 80 byte buffer, leading very quickly to - memory exahustion. [Brian Pane] - - *) Added an rpm build script. - [Graham Leggett, Joe Orton ] - - *) Simpler, faster code path for request header scanning [Brian Pane] - - *) SECURITY: Eliminated leaks of several file descriptors to child - processes, such as CGI scripts. This fix depends on the APR library - release 0.9.2 or later (0.9.3 was distributed with the httpd - source tarball for Apache 2.0.45.) PR 17206 - [Christian Kratzer , Bjoern A. Zeeb ] - - *) Fix path handling of mod_rewrite, especially on non-unix systems. - There was some confusion between local paths and URL paths. - PR 12902. [André Malo] - - *) Prevent endless loops of internal redirects in mod_rewrite by - aborting after exceeding a limit of internal redirects. The - limit defaults to 10 and can be changed using the RewriteOptions - directive. PR 17462. [André Malo] - - *) Win32: Avoid busy wait (consuming all the CPU idle cycles) when - all worker threads are busy. - [Igor Nazarenko ] - - *) Keep the subrequest filter in place when a subrequest is - redirected. PR 15423. [Jeff Trawick] - - *) you can now specify the compression level for mod_deflate. - [Ian Holsman, Stephen Pierzchala , - Michael Schroepl ] - - *) mod_deflate: Extend the DeflateFilterNote directive to - allow accurate logging of the filter's in- and outstream. - [André Malo] - - *) Allow SSLMutex to select/use the full range of APR locking - mechanisms available to it. Also, fix the bug that SSLMutex uses - APR_LOCK_DEFAULT no matter what. PR 8122 [Jim Jagielski, - Martin Kutschker ] - - *) Restore the ability of htdigest.exe to create files that contain - more than one user. PR 12910. [André Malo] - - *) Improve binary compatibility of the core between debug (aka - maintainer-mode) and a non-debug compile. - [Sander Striker] - - *) mod_usertrack: don't set the cookie in subrequests. This works - around the problem that cookies were set twice during fast internal - redirects. PR 13211. [André Malo] - - *) mod_autoindex no longer forgets output format and enabled version - sort in linked column headers. [André Malo] - - *) Use .sv instead of .se as extension for Swedish documents in the - default configuration. PR 12877. [André Malo] - - *) Updated mod_ldap and mod_auth_ldap to support the Novell LDAP SDK SSL - and standardized the LDAP SSL support across the various LDAP SDKs. - Isolated the SSL functionality to mod_ldap rather than speading it - across mod_auth_ldap and mod_ldap. Also added LDAPTrustedCA - and LDAPTrustedCAType directives to mod_ldap to allow for a more - common method of specifying the SSL certificate. - [Dave Ward, Brad Nicholes] - - *) Fixed mod_ssl's SSLCertificateChain initialization to no longer - skip the first cert of the chain by default. This misbehavior - was introduced in 2.0.34. PR 14560 [Madhusudan Mathihalli] - - *) mod_cgi, mod_cgid, mod_ext_filter: Log errors when scripts cannot - be started on Unix because of such problems as bad permissions, - bad shebang line, etc. [Jeff Trawick] - - *) Fix 64-bit problem in mod_ssl input logic. - [Madhusudan Mathihalli ] - - *) Fix potential memory leaks in mod_deflate on malformed data. PR 16046. - [Justin Erenkrantz] - - *) Rewrite ap_xml_parse_input to use bucket brigades. PR 16134. - [Justin Erenkrantz] - - *) Fix segfault which occurred when a section in an included - configuration file was not closed. PR 17093. [André Malo] - - *) Enhance the behavior of mod_isapi's WriteClient() callback to - provide better emulation for isapi modules that presume that the - first WriteClient() call may send status and headers. An example - of WriteClient() abuse is the foxisapi module, which relies on - that assumpion and now works. [William Rowe, Milan Kosina] - - *) Check the return value of ap_run_pre_connection(). So if the - pre_connection phase fails (without setting c->aborted) - ap_run_process_connection is not executed. [Stas Bekman] - - *) Fixed a problem with mod_ldap which caused it to fault when caching - was disabled. Needed to make sure that the code did not - attempt to use the cache if it didn't exist. Also fixed some memory - leaks which were due to not releasing LDAP resources on error - conditions. [Brad Nicholes] - - *) Hook mod_proxy's fixup before mod_rewrite's fixup, so that by - mod_rewrite proxied URLs will not be escaped accidentally by - mod_proxy's fixup. PR 16368 [André Malo] - - *) While processing filters on internal redirects, remember seen EOS - buckets also in the request structure of the redirect issuer(s). This - prevents filters (such as mod_deflate) from adding garbage to the - response. PR 14451. [André Malo] - - *) suexec: Be more pedantic when cleaning environment. Clean it - immediately after startup. PR 2790, 10449. - [Jeff Stewart , André Malo] - - *) Fix apxs to insert LoadModule directives only outside of sections. - PR 8712, 9012. [André Malo] - - *) Fix suexec compile error under SUNOS4, where strerror() doesn't - exist. PR 5913, 9977. - [Jonathan W Miner ] - - *) Fix If header parsing when a non-mod_dav lock token is passed to it. - PR 16452. [Justin Erenkrantz] - - *) mod_auth_digest no longer tries to guess AuthDigestDomain, if it's - not specified. Now it assumes "/" as already documented. PR 16937. - [André Malo] - - *) Try to log an error if a piped log program fails. Try to - restart a piped log program in more failure situations. Fix an - existing problem with error handling in piped_log_spawn(). Use - new APR apr_proc_create() features to prevent Apache from starting - on Unix* in most cases where a piped log program can be started, - and add log messages for the other situations. *Other platforms - already failed Apache initialization if a piped log program - couldn't be started. PR 15761 [Jeff Trawick] - - *) Fix mod_cern_meta to not create empty metafiles when the - metafile searched for does not exist. PR 12353 - [Owen Rees ] - - *) Introduce debugging symbols for Win32 release builds, both .pdb - and .dbg files (older debuggers and Dr. Watson-type utilities - on WinNT or Win9x don't support the newer .pdb flavor.) - [Allen Edwards, William Rowe] - - *) Fix bug where 'Satisfy Any' without an AuthType lost all MIME - information (and more). Related to PR 9076. [André Malo] - - *) mod_file_cache: fix segfault serving mmaped cached files. - [Bill Stoddard] - - *) mod_file_cache: fixed a segfault when multiple MMapFile directives - were used. PR 16313. [Cliff Woolley] - - *) Fix a nasty segfault in mmap_bucket_setaside() caused by passing - an incompatible pointer type to mmap_bucket_destroy(void*). - [Gerard Eviston ] - - *) Enable the -n name parameter on NetWare to allow the - administrator to rename the Apache console screen - [Brad Nicholes] - - *) Fixed piped access logs on Win32 by disabling OTHER_CHILD - support by default in APR. More development is required - to deploy OTHER_CHILD on Win32. [William Rowe] - - *) Use saner default config values for suexec. PR 15713. - [Thom May ] - - *) mod_rewrite: Allow "RewriteEngine Off" even if no "Options FollowSymlinks" - (or SymlinksIfOwnermatch) is set. PR 12395. [André Malo] - - *) apxs: Include any special APR ld flags when linking the DSO. - This resolves problems on AIX when building a DSO with apxs+gcc. - [Jeff Trawick] - - *) Added character set support to mod_auth_LDAP to allow it to - convert extended characters used in the user ID to UTF-8 - before authenticating against the LDAP directory. The new - directive AuthLDAPCharsetConfig is used to specify the config - file that contains the character set conversion table. - [Brad Nicholes] - - *) Don't remove the Content-Length from responses in mod_proxy - PR: 8677 [Brian Pane] - - *) Ensure LDAP version is set to v3 on every bind. PR 14235. - [Sergey A. Lipnevich ] - - *) Fix mod_ldap to open an existing shared memory file should one - already exist. PR 12757. [Scooter Morris , - Graham Leggett] - - *) Fix the ulimit command used by apachectl on Tru64. PR 13609. - [Joseph Senulis , Jeff Trawick] - - *) Change the ulimit command used by apachectl on AIX so that it - works in all locales. [Jeff Trawick] - - *) mod_ext_filter: Fix a problem building argument lists which - occasionally caused exec to fail. PR 15491. [Jeff Trawick] - -Changes with Apache 2.0.44 - - *) mod_autoindex: Bring forward the IndexOptions IgnoreCase option - from Apache 1.3. PR 14276 - [David Shane Holden , William Rowe] - - *) mod_mime: Workaround to prevent a segfault if r->filename=NULL - [Brian Pane] - - *) Reorder the definitions for mod_ldap and mod_auth_ldap within - config.m4 to make sure the parent mod_ldap is defined first. - This ensures that mod_ldap comes before mod_auth_ldap in the - httpd.conf file, which is necessary for mod_auth_ldap to load. - PR 14256 [Graham Leggett] - - *) Fix the building of cgi command lines when the query string - contains '='. PR 13914 [Ville Skyttä , - Jeff Trawick] - - *) Rename CacheMaxStreamingBuffer to MCacheMaxStreamingBuffer. Move - implementation of MCacheMaxStreamingBuffer from mod_cache to - mod_mem_cache. MCacheMaxStreamingBuffer now defaults to the - lesser of 100,000 bytes or MCacheMaxCacheObjectSize. This should - eliminate the need for explicitly coding MCacheMaxStreamingBuffer - in most configurations. [Bill Stoddard] - - *) mod_cache: Fix PR 15113, a core dump in cache_in_filter when - a redirect occurs. The code was passing a format string and - integer to apr_pstrcat. Changed to apr_psprintf. - [Paul J. Reder] - - *) Replace APU_HAS_LDAPSSL_CLIENT_INIT with APU_HAS_LDAP_NETSCAPE_SSL - as set by apr-util in util_ldap.c. This should allow mod_ldap - to work with the Netscape/Mozilla LDAP library. [Øyvin Sømme - , Graham Leggett] - - *) Fix critical bug in new --enable-v4-mapped configure option - implementation which broke IPv4 listening sockets on some - systems. [hiroyuki hanai ] - - *) mod_setenvif: Fix BrowserMatchNoCase support for non-regex - patterns [André Malo ] - - *) Add version string to provider API. [Justin Erenkrantz] - - *) build: './configure && make' now works without an in-tree - apr and apr-util. [Wilfredo Sanchez] - - *) mod_negotiation: Set the appropriate mime response headers - (Content-Type, charset, Content-Language and Content-Encoding) - for negotated type-map "Body:" responses (such as the error - pages.) [André Malo ] - - *) mod_log_config: Allow '%%' escaping in CustomLog format - strings to insert a literal, single '%'. - [André Malo ] - - *) mod_autoindex: AddDescription directives for directories - now work as in Apache 1.3, where no trailing '/' is - specified on the directory name. Previously, the trailing - '/' *had* to be specified, which was incompatible with - Apache 1.3. PR 7990 [Jeff Trawick] - - *) Fix for PR 14556. The expiry calculations in mod_cache were - trying to perform "now + ((date - lastmod) * factor)" where - date == lastmod resulting in "now + 0". The code now follows - the else path (using the default expiration) if date is - equal to lastmod. [Sergey , Paul J. Reder] - - *) Use AP_DECLARE in the debug versions of ap_strXXX in case the - default calling convention is not the same as the one used by - AP_DECLARE. [Juan Rivera ] - - *) mod_cache: Don't cache response header fields designated - as hop-by-hop headers in HTTP/1.1 (RFC 2616 Section 13.5.1). - [Estrade Matthieu , Brian Pane] - - *) mod_cgid: Handle environment variables containing newlines. - PR 14550 [Piotr Czejkowski , Jeff - Trawick] - - *) Move mod_ext_filter out of experimental and into filters. - [Jeff Trawick] - - *) Fixed a memory leak in mod_deflate with dynamic content. - PR 14321 [Ken Franken ] - - *) Add --[enable|disable]-v4-mapped configure option to control - whether or not Apache expects to handle IPv4 connections - on IPv6 listening sockets. Either setting will work on - systems with the IPV6_V6ONLY socket option. --enable-v4-mapped - must be used on systems that always allow IPv4 connections on - IPv6 listening sockets. PR 14037 (Bugzilla), PR 7492 (Gnats) - [Jeff Trawick] - - *) This fixes a problem where the underlying cache code - indicated that there was one more element on the cache - than there actually was. This happened since element 0 - exists but is not used. This code allocates the correct - number of useable elements and reports the number of - actually used elements. The previous code only allowed - MCacheMaxObjectCount-1 objects to be stored in the - cache. [Paul J. Reder] - - *) mod_setenvif: Add SERVER_ADDR special keyword to allow - envariable setting according to the server IP address - which received the request. [Ken Coar] - - *) mod_cgid: Terminate CGI scripts when the client connection - drops. PR 8388 [Jeff Trawick] - - *) Rearrange OpenSSL engine initialization to support RAND - redirection on crypto accelerator. - [Frederic DONNAT ] - - *) Always emit Vary header if mod_deflate is involved in the - request. [André Malo ] - - *) mod_isapi: Stop unsetting the 'empty' query string result with - a NULL argument in ecb->lpszQueryString, eliminating segfaults - for some ISAPI modules. PR 14399 - [Detlev Vendt ] - - *) mod_isapi: Fix an issue where the HSE_REQ_DONE_WITH_SESSION - notification is received before the HttpExtensionProc() returns - HSE_STATUS_PENDING. This only affected isapi .dll's configured - with the ISAPIFakeAsync on directive. PR 11918 - [John DeSetto , William Rowe] - - *) mod_isapi: Fix the issue where all results from mod_isapi would - run through the core die handler resulting in invalid responses - or access log entries. PR 10216 [William Rowe] - - *) Improves the user friendliness of the CacheRoot processing - over my last pass. This version avoids the pool allocations - but doesn't avoid all of the runtime checks. It no longer - terminates during post-config processing. An error is logged - once per worker, indicating that the CacheRoot needs to be set. - [Paul J. Reder] - - *) Fix a bug where we keep files open until the end of a - keepalive connection, which can result in: - (24)Too many open files: file permissions deny server access - especially on threaded servers. [Greg Ames, Jeff Trawick] - - *) Fix a bug in which mod_proxy sent an invalid Content-Length - when a proxied URL was invoked as a server-side include within - a page generated in response to a form POST. [Brian Pane] - - *) Added code to process min and max file size directives and to - init the expirychk flag in mod_disk_cache. Added a clarifying - comment to cache_util. [Paul J. Reder] - - *) The value emitted by ServerSignature now mimics the Server HTTP - header as controlled by ServerTokens. [Francis Daly ] - - *) Gracefully handly retry situations in the SSL input filter, - by following the SSL libraries' retry semantics. - [William Rowe] - - *) Terminate CGI scripts when the client connection drops. This - fix only applies to some normal paths in mod_cgi. mod_cgid - is still busted. PR 8388 [Jeff Trawick] - - *) Fix a bug where 416 "Range not satisfiable" was being - returned for content that should have been redirected. - [Greg Ames] - - *) Fix memory leak in mod_ssl from internal SSL library allocations - within SSL_get_peer_certificate and X509_get_pubkey. - [Zvi Har'El - Madhusudan Mathihalli ]. - - *) mod_ssl uses free() inappropriately in several places, to free - memory which has been previously allocated inside OpenSSL. - Such memory should be freed with OPENSSL_free(), not with free(). - [Nadav Har'El , - Madhusudan Mathihalli ]. - - *) Emit a message to the error log when we return 404 because - the URI contained '%2f'. (This was previously nastily silent - and difficult to debug.) [Ken Coar] - - *) Fix streaming output from an nph- CGI script. CGI:IRC now - works. PR 8482 [Jeff Trawick] - - *) More accurate logging of bytes sent in mod_logio when - the client terminates the connection before the response - is completely sent [Bojan Smojver ] - - *) Fix some problems in the perchild MPM. - [Jonas Eriksson ] - - *) Change the CacheRoot processing to check for a required - value at config time. This saves a lot of wasted processing - if the mod_disk_cache module is loaded but no CacheRoot - was provided. This fix also adds code to log an error - and avoid useless pallocs and procesing when the computed - cache file name cannot be opened. This also updates the - docs accordingly. [Paul J. Reder] - - *) Introduce the EnableSendfile directive, allowing users of NFS - shares to disable sendfile mechanics when they either fail - outright or provide intermitantly corrupted data. PR - [William Rowe] - - *) Resolve the error "An operation was attempted on something - that is not a socket. : winnt_accept: AcceptEx failed. - Attempting to recover." for users of various firewall and - anti-virus software on Windows. PR 8325 [William Rowe] - - *) Add the ProxyBadHeader directive, which gives the admin some - control on how mod_proxy should handle bogus HTTP headers from - proxied servers. This allows 2.0 to "emulate" 1.3's behavior if - desired. [Jim Jagielski] - - *) Change the LDAP modules to export their symbols correctly - during a Windows build. Add dsp files for Windows. Update - README.ldap file for Windows build instructions. - [Andre Schild ] - - *) Performance improvements for the code that generates HTTP - response headers [Brian Pane] - - *) Add -S as a synonym for -t -DDUMP_VHOSTS. - [Thom May ] - - *) Fix a bug with dbm rewrite maps which caused the wrong value to - be used when the key was not found in the dbm. PR 13204 - [Jeff Trawick] - - *) Fix a problem with streaming script output and mod_cgid. - [Jeff Trawick] - - *) Add ap_register_provider/ap_lookup_provider API. - [John K. Sterling , Justin Erenkrantz] - -Changes with Apache 2.0.43 - - *) SECURITY: CVE-2002-0840 (cve.mitre.org) - HTML-escape the address produced by ap_server_signature() against - this cross-site scripting vulnerability exposed by the directive - 'UseCanonicalName Off'. Also HTML-escape the SERVER_NAME - environment variable for CGI and SSI requests. It's safe to - escape as only the '<', '>', and '&' characters are affected, - which won't appear in a valid hostname. Reported by Matthew - Murphy . [Brian Pane] - - *) Fix a core dump in mod_cache when it attemtped to store uncopyable - buckets. This happened, for instance, when a file to be cached - contained SSI tags to execute a CGI script (passed as a pipe - bucket). [Paul J. Reder] - - *) Ensure that output already available is flushed to the network - when the content-length filter realizes that no new output will - be available for a while. This helps some streaming CGIs as - well as some other dynamically-generated content. [Jeff Trawick] - - *) Fix a mutex problem in mod_ssl session cache support which - could lead to an infinite loop. PR 12705 - [Amund Elstad , Jeff Trawick] - - *) SECURITY: CVE-2002-1156 (cve.mitre.org) - Fix the exposure of CGI source when a POST request is sent to - a location where both DAV and CGI are enabled. [Ryan Bloom] - - *) Allow the UserDir directive to accept a list of directories. - This matches what Apache 1.3 does. Also add documentation for - this feature. [Jay Ball ] - - *) New Module: mod_logio. adds the ability to log bytes sent and - received. [Bojan Smojver ] - - *) SuExec needs to use the same default directory as the rest of - server, namely /usr/local/apache2. - [SangBeom han ] - - *) Get mod_auth_ldap to retry connections on LDAP_SERVER_DOWN. - [Thomas Bennett , Graham Leggett] - - *) Make sure the contents of the WWW-Authenticate header is - passed on a 4xx error by proxy. Previously all headers - were dropped, resulting in the browser being unable to - authenticate. [Dr Richard Reiner , - Richard Danielli , Graham Wiseman - , David Henderson - ] - - *) Make mod_cache's CacheMaxStreamingBuffer directive work - properly for virtual hosts that override server-wide mod_cache - setttings. [Matthieu Estrade ] - - *) Add -p option to apxs to allow programs to be compiled with apxs. - [Justin Erenkrantz] - -Changes with Apache 2.0.42 - - *) SECURITY: CAN-2002-1593 (cve.mitre.org) [CERT VU#406121] - mod_dav: Check for versioning hooks before using them. - [Greg Stein] - -Changes with Apache 2.0.41 - - *) The protocol version (eg: HTTP/1.1) in the request line parsing - is now case insensitive. [Jim Jagielski] - - *) Allow AddOutputFilterByType to add multiple filters per directive. - [Justin Erenkrantz] - - *) Remove warnings with Sun's Forte compiler. [Justin Erenkrantz] - - *) Fixed mod_disk_cache's generation of 304s - [Kris Verbeeck ] - - *) Add support for using fnmatch patterns in the final path - segment of an Include statement (eg.. include /foo/bar/*.conf). - and remove the noise on stderr during config dir processing. - [Joe Orton ] - - *) mod_cache: cache_storage.c. Add the hostname and any request - args to the key generated for caching. This provides a unique - key for each virtual host and for each request with unique - args. [Paul J. Reder, args code provided by Kris Verbeeck] - - *) mod_cache: Do not cache responses to GET requests with query - URLs if the origin server does not explicitly provide an - Expires header on the response (RFC 2616 Section 13.9) - [Kris Verbeeck ] - - *) Fix memory leak in core_output_filter. [Justin Erenkrantz] - - *) Update OpenSSL detection to work on Darwin. - [Sander Temme ] - - *) Update the xslt and css to give the documentation a more - modern style. - [André Malo , Gernot Winkler ] - - *) Fix some bucket memory leaks in the chunking code - [Joe Schaefer ] - - *) Add ModMimeUsePathInfo directive. [Justin Erenkrantz] - - *) mod_cache: added support for caching streamed responses (proxy, - CGI, etc) with optional CacheMaxStreamingBuffer setting [Brian Pane] - - *) Add image/x-icon to httpd.conf PR 10993. - [Ian Holsman, Peter Bieringer ] - - *) Fix FileETags none operation. PR 12207. - [Justin Erenkrantz, Andrew Ho ] - - *) Restored the experimental leader/followers MPM to working - condition and converted its thread synchronization from - mutexes to atomic CAS. [Brian Pane] - - *) Fix Logic on non-html file removal in mod_deflate - [Kris Verbeeck ] - - *) Fix "ab -g"'s truncated year: the last digit was cut off. - [Leon Brocard ] - - *) mod_rewrite can now sets cookies in err_headers, uses the correct - expiry date, and can now set the path as well - PR 12132,12181,12172. - [Ian Holsman / Rob Cromwell ] - - *) The content-length filter no longer tries to buffer up - the entire output of a long-running request before sending - anything to the client. [Brian Pane] - - *) Win32: Lower the default stack size from 1MB to 256K. This will - allow around 8000 threads to be started per child process. - 'EDITBIN /STACK:size apache.exe' can be used to change this - value directly in the apache.exe executable. - [Bill Stoddard] - - *) Win32: Implement ThreadLimit directive in the Windows MPM. - [Bill Stoddard] - - *) Remove CacheOn config directive since it is set but never checked. - No sense wasting cycles on unused code. Besides, the only truly - bug free code is deleted code. :) [Paul J. Reder] - - *) BufferLogs are now run-time enabled, and the log_config now has 2 new - callbacks to allow a 3rd party module to actually do the writing of the - log file [Ian Holsman] - - *) Correct ISAPIReadAheadBuffer to default to 49152, per mod_isapi docs. - [André Malo, Astrid Keßler ] - - *) Fix Segfault in mod_cache. [Kris Verbeeck ] - - *) Fix a null pointer dereference in the merge_env_dir_configs - function of the mod_env module. PR 11791 - [Paul J. Reder] - - *) New option to ServerTokens 'maj[or]'. Only show the major version - Also Surfaced this directive in the standard config (default FULL) - [Ian Holsman] - - *) Change mod_rewrite to use apr-util's dbm support for dbm rewrite - maps. The dbm type (e.g., ndbm, gdbm) can be specified on the - RewriteMap directive. PR 10644 [Jeff Trawick] - - *) Fixed mod_rewrite's RewriteMap prg: support so that request/response - pairs will no longer get out of sync with each other. PR 9534 - [Cliff Woolley] - - *) Fixes required to get quoted and escaped command args working in - mod_ext_filter. PR 11793 [Paul J. Reder] - - *) mod-proxy: handle proxied responses with no status lines - [JD Silvester , Brett Huttley ] - - *) Fix bug where environment or command line arguments containing - non-ASCII-7 characters would cause the Win32 child process creation - to fail. PR 11854 [William Rowe] - - *) Bug #11213.. make module loading error messages more informative - [Ian Darwin ] - - *) thread safety & proxy-ftp [Alexey Panchenko , Ian Holsman] - - *) mod_disk_cache works much better. This module should still - be considered experimental. [Eric Prud'hommeaux] - - *) Performance improvement for keepalive requests: when setting - aside a small file for potential concatenation with the next - response on the connection, set aside the file descriptor rather - than copying the file into the heap. [Brian Pane] - - *) Modified version check on openssl so that it finds the executable - first and then performs a check of the version, only warning the - user if they chose, or we selected, an old version of OpenSSL. - This change also allows the code to work for non-openssl libraries - selected via the --with-ssl=dir option, which can override the - automated library check in any case. [Roy Fielding] - -Changes with Apache 2.0.40 - - *) SECURITY: CAN-2002-0661 (cve.mitre.org) - Close a very significant security hole that - applies only to the Win32, OS2 and Netware platforms. Unix was not - affected, Cygwin may be affected. Certain URIs will bypass security - and allow users to invoke or access any file depending on the system - configuration. Without upgrading, a single .conf change will close - the vulnerability. Add the following directive in the global server - httpd.conf context before any other Alias or Redirect directives; - RedirectMatch 400 "\\\.\." - Reported by Auriemma Luigi . - [Brad Nicholes] - - *) SECURITY: CAN-2002-0654 (cve.mitre.org) - Close a path-revealing exposure in multiview type - map negotiation (such as the default error documents) where the - module would report the full path of the typemapped .var file when - multiple documents or no documents could be served based on the mime - negotiation. Reported by Auriemma Luigi . - [William Rowe] - - *) SECURITY: CAN-2002-0654 (cve.mitre.org) - Close a path-revealing exposure in cgi/cgid when we - fail to invoke a script. The modules would report "couldn't create - child process /path-to-script/script.pl" revealing the full path - of the script. Reported by Jim Race . - [Bill Stoddard] - - *) Set aside the apr-iconv and apr_xlate() features for the Win32 - build of 2.0.40 so development can be completed. A patch, from - - will be available for those that wish to work with apr-iconv. - [William Rowe] - - *) Fix proxy so that it is possible to access ftp: URLs via a proxy - chain. [Peter Van Biesen ] - - *) mod-deflate now checks to make sure that 'gzip-only-text/html' is - set to 1, so we can exclude things from the general case with - browsermatch. [Ian Holsman, Andre Schild ] - - *) Accept multiple leading /'s for requests within the DocumentRoot. - PR 10946 [William Rowe, David Shane Holden ] - - *) Solved the reports of .pdf byterange failures on Win32 alone. - APR's sendfile for the win32 platform collapses header and trailer - buffers into a single buffer. However, we destroyed the pointers - to the header buffer if a trailer buffer was present. PR 10781 - [William Rowe] - - *) mod_ext_filter: Add the ability to enable or disable a filter via - an environment variable. Add the ability to register a filter of - type other than AP_FTYPE_RESOURCE. [Jeff Trawick] - - *) Restore the ability to specify host names on Listen directives. - PR 11030. [Jeff Trawick, David Shane Holden ] - - *) When deciding on the default address family for listening sockets, - make sure we can actually bind to an AF_INET6 socket before - deciding that we should default to AF_INET6. This fixes a startup - problem on certain levels of OpenUNIX. PR 10235. [Jeff Trawick] - - *) Replace usage of atol() to parse strings when we might want a - larger-than-long value with apr_atoll(), which returns long long. - This allows HTTPD to deal with larger files correctly. - [Shantonu Sen ] - - *) mod_ext_filter: Ignore any content-type parameters when checking if - the response should be filtered. Previously, "intype=text/html" - wouldn't match something like "text/html;charset=8859_1". - [Jeff Trawick] - - *) mod_ext_filter: Set up environment variables for external programs. - [Craig Sebenik ] - - *) Modified the HTTP_IN filter to immediately append the EOS (end of - stream) bucket for C-L POST bodies, saving a roundtrip and allowing - the caller to determine that no content remains without prefetching - additional POST body. [William Rowe] - - *) Get proxy ftp to work over IPv6. [Shoichi Sakane ] - - *) Look for OpenSSL libraries in /usr/lib64. [Peter Poeml ] - - *) Update SuSE layout. [Peter Poeml ] - - *) Changes to the internationalized error documents: - Comment them out in the default config file to make the default - install as simple as possible; Correct the english 500 error to - be more understandable; Add a Swedish translation. - [Thomas Sjogren , - Erik Abele , Rich Bowen, Joshua Slive] - - *) Increase the limit on file descriptors per process in apachectl. - [Brian Pane] - - *) Fix a dependency error when building ApacheMonitor, so that Win32 - and MSVC now trust that the project is current (when it is). - [James Cox ] - - *) mod_ext_filter: don't segfault if content-type is not set. PR 10617. - [Arthur P. Smith , Jeff Trawick] - - *) APR-Util Renames pending have been completed [Thom May] - - *) Performance improvements for the code that reads request - headers (ap_rgetline_core() and related functions) [Brian Pane] - - *) Add a new directive: MaxMemFree. MaxMemFree makes it possible - to configure the maximum amount of memory the allocators will - hold on to for reuse. Anything over the MaxMemFree threshold - will be free()d. This directive is useful when uncommon large - peaks occur in memory usage. It should _not_ be used to mask - defective modules' memory use. [Sander Striker] - - *) Fixed the Content-Length filter so that HTTP/1.0 requests to CGI - scripts would not result in a truncated response. - [Ryan Bloom, Justin Erenkrantz, Cliff Woolley] - - *) Add a filter_init parameter to the filter registration functions - so that a filter can execute arbitrary code before the handlers - are invoked. This resolves a problem where mod_include requests - would incorrectly return a 304. [Justin Erenkrantz] - - *) Fix a long-standing bug in 2.0, CGI scripts were being called - with relative paths instead of absolute paths. Apache 1.3 used - absolute paths for everything except for SuExec, this brings back - that standard. [Ryan Bloom] - - *) Fix infinite loop due to two HTTP_IN filters being present for - internally redirected requests. PR 10146. [Justin Erenkrantz] - - *) Switch conn_rec->keepalive to an enumeration rather than a bitfield. - [Justin Erenkrantz] - - *) Fix mod_ext_filter to look in the main server for filter definitions - when running in a vhost if the filter definition is not found in - the vhost. PR 10147 [Jeff Trawick] - - *) Support WinNT CGI invocation through ScriptInterpreterSource - 'registry' for script interpreter paths and names with non-ascii - characters in the executable filepath. [William Rowe] - - *) Support the -w flag on to keep the Win32 console open on error. - [William Rowe] - - *) Normalize the hostname value in the request_rec to all-lowercase - [Perry Harrington ] - - *) Fix WinNT cgi 500 errors when QUERY_ARGS or other strings include - extended characters (non US-ASCII) in non-utf8 format. This brings - Win32 back into CGI/1.1 compliance, and leaves charset decoding up - to the cgi application itself. [William Rowe] - - *) Major overhaul of mod_dav, mod_dav_fs and the experimental/cache - modules to bring them up to the current apr/apr-util APIs. - [William Rowe] - - *) Fix segfault in mod_mem_cache most frequently observed when - serving the same file to multiple clients on an MP machine. - [Bill Stoddard] - - *) mod_rewrite can now set cookies (RewriteRule (.*) - [CO=name:$1:.domain]) - [Brian Degenhardt , Ian Holsman] - - *) Fix perchild to work with apachectl by adding -k support to perchild. - PR 10074 [Jeff Trawick] - - *) Fix a silly htpasswd.c logic error that incorrectly reported that - both -c and -n had been used. PR 9989 [Cliff Woolley] - - *) Fixed a mod_include error case in which no HTTP response was sent - to the client if an shtml document contained an unterminated SSI - directive [Brian Pane] - - *) Improve ap_get_client_block implementation by using APR-util brigade - helper functions and relying on current filter assumptions. - [Justin Erenkrantz] - -Changes with Apache 2.0.39 - - *) Fixed a build problem in htpasswd.c on Win32. - [Guenter Knauf , Cliff Woolley] - -Changes with Apache 2.0.38 - - *) Rewrite htpasswd to use APR. The removes the annoying warning about - tmpnam being unsafe. [Ryan Bloom] - - *) We must set the MIME-type for .shtml files to text/html if we want them - to be parsed for SSI tags. Add the config for that to the default - config file so that it is easier to enable .shtml parsing. - [Dave Dyer ] - - *) Fixed a problem with 'make install' on ReliantUnix. - [Jean-frederic Clere ] - - *) Make the default_handler catch all requests that aren't served by - another handler. This also gets us to return a 404 if a directory - is requested, there is no DirectoryIndex, and mod_autoindex isn't - loaded. [Justin Erenkrantz] - - *) Fixed the handling of nested if-statements in shtml files. - PR 9866 [Brian Pane] - - *) Allow 'make install DESTDIR=/path'. This allows packagers to install - into a directory different from the one that was configured. This - also mirrors the root= feature from 1.3. We cannot use prefix=, - because both APR and APR-util resolve their installation paths at - configuration time. This means that there is no variable prefix - to replace. [Andreas Hasenack ] - - *) AIX 4.3.2 and above: Define SINGLE_LISTEN_UNSERIALIZED_ACCEPT. - These levels of AIX don't have a thundering herd problem with - accept(). [Jeff Trawick] - - *) prefork MPM: Ignore mutex errors during graceful restart. For - certain types of mutexes (particularly SysV semaphores), we - should expect to occasionally fail to obtain or release the - mutex during restart processing. [Jeff Trawick] - - *) Fix install-bindist.sh so that it finds any perl instead of just - early perl 5.x versions. This is consistent with a build/install - from source, and it allows the perl scripts installed by a bindist - to work on systems with perl 5.6. [Jeff Trawick] - - *) Fix apxs so that the makefile created by "apxs -g" works on AIX and - Tru64 (and probably some other platforms). [Jeff Trawick] - - *) Allow CGI scripts to return their Content-Length. This also fixes a - hang on HEAD requests seen on certain platforms (such as FreeBSD). - [Justin Erenkrantz] - - *) Added log rotation based on file size to the RotateLog support - utility. [Brad Nicholes] - - *) Fix some casting in mod_rewrite which broke random maps. - PR 9770 [Allan Edwards, Greg Ames, Jeff Trawick] - -Changes with Apache 2.0.37 - - *) allow POST method over SSL when per-directory client cert - authentication is used with 'SSLOptions +OptRenegotiate' enabled - and a client cert was found in the ssl session cache. - - *) 'SSLOptions +OptRengotiate' will use client cert in from the ssl - session cache when there is no cert chain in the cache. prior to - the fix this situation would result in a FORBIDDEN response and - error message "Cannot find peer certificate chain" - [Doug MacEachern] - - *) ap_finalize_sub_req_protocol() shouldn't send an EOS bucket if - one was already sent. PR 9644 [Jeff Trawick] - - *) Fix the display of the default name for the mime types config - file. PR 9729 [Matthew Brecknell ] - - *) Fix the working directory *for WinNT/2K/XP services only* to - change to the Apache directory (one level above the location - of Apache.exe, in the case that Apache.exe resides in bin/.) - Solves the case of ServerRoot /foo paths where /foo was not - on the same drive as /winnt/system32. [William Rowe] - - *) Make 2.0's "AcceptMutex" startup message now "completely" - match how 1.3 does it. [Jim Jagielski] - - *) Implement a fixed size memory cache using a priority queue - [Ian Holsman] - - *) Fix apxs to allow "apxs -q installbuilddir" and to allow - querying certain other variables from config_vars.mk. PR 9316 - [Jeff Trawick] - - *) Added the "detached" attribute to the cgi_exec_info_t internals - so that Win32 and Netware won't create a new window or console - for each CGI invoked. PR 8387 - [Brad Nicholes, William Rowe] - - *) Consolidated the command line parameters and attributes that are - manipulated by the optional function ap_cgi_build_command() in - mod_cgi into a single structure. - [Brad Nicholes] - - *) Get rid of uninitialized value errors with "apxs -q" on certain - variables. [Stas Bekman ] - - *) Fix apxs to allow it to work when the build directory is somewhere - besides server-root/build. PR 8453 - [Jeff Trawick and a host of others] - - *) Allow ap_discard_request_body to be called multiple times in the - same request. Essentially, ap_http_filter keeps track of whether - it has sent an EOS bucket up the stack, if so, it will only ever - send an EOS bucket for this request. - [Ryan Bloom, Justin Erenkrantz, Greg Stein] - - *) Remove all special mod_ssl URIs. This also fixes the bug where - redirecting (.*) will allow an SSL protected page to be viewed - without SSL. [Ryan Bloom] - - *) Fix the binary build install script so that the build logic - created by "apxs -g" will work when the user has a binary - build. [Jeff Trawick] - - *) Allow instdso.sh to work with full paths to the shared module. - [Justin Erenkrantz] - - *) NetWare: Enabled CGI functionality and added mod_cgi as a built - in module for NetWare [Brad Nicholes] - - *) Changed cgi and piped log behavior to accept 65536 characters - on Win32 (matching Linux) before deadlocking between outputing - client stdin, slurping the output from stdout and then the stderr - stream. PR 8179 [William Rowe] - - *) Fixed Win32 wintty.exe support to assure the window title is valid. - Elimiates possible gpfault or garbage title without the -t option. - [William Rowe] - - *) Rewrite mod_cgi, mod_cgid, and mod_proxy input handling to use - brigades and input filters. [Justin Erenkrantz] - - *) Allow ap_http_filter (HTTP_IN) to return EOS when there is no request - body. [Justin Erenkrantz] - - *) NetWare: Piping log entries through RotateLogs using the - CustomLogs directive is finally supported now that we have - the pipes and spawning functionality working. - [Brad Nicholes] - - *) SECURITY: CVE-2002-0392 (cve.mitre.org) [CERT VU#944335] - Detect overflow when reading the hex bytes forming a chunk line. - [Aaron Bannert] - - *) Allow RewriteMap prg:'s to take command-line arguments. PR 8464. - [James Tait ] - - *) Correctly return 413 when an invalid chunk size is given on - input. Also modify ap_discard_request_body to not do anything - on sub-requests or when the connection will be dropped. - [Justin Erenkrantz] - - *) Fix the TIME_* SSL var lookups to be threadsafe. PR 9469. - [Cliff Woolley] - - *) Ensure that apr_brigade_write() flushes in all of the cases that - it should to avoid conditions in some modules that could cause - large amounts of data to be buffered. [Cliff Woolley] - - *) Fix problem where mod_cache/mod_disk_cache was incorrectly - stripping the content_type from cached responses. - [Bill Stoddard] - - *) apachectl passes through any httpd options. Note: apachectl - should be used in preference to httpd since it ensures that any - appropriate environment variables have been set up. - [Jeff Trawick] - - *) Fix the combination of mod_cgid, mod_setuexec, and mod_userdir. - PR 7810 [Colm MacCarthaigh ] - - *) Fix suexec execution of CGI scripts from mod_include. - PR 7791, 8291 [Colm MacCarthaigh ] - - *) Fix segfaults at startup on some platforms when mod_auth_digest, - mod_suexec, or mod_ssl were used as DSO's due to the way they - were tracking the current init phase since DSO's get completely - unloaded and reloaded between phases. PR 9413. - [Tsuyoshi Sasamoto , Brad Nicholes] - - *) Fix mod_include's handling of regular expressions in - " and directives [Brian Pane] - - *) Fix some mod_include segfaults [Cliff Woolley, Brian Pane, Brad Nicholes] - - *) Update the "RedHat" Layout to match Red Hat Linux version 7. PR BZ-7422 - [Joe Orton] - - *) add compat layer to support RSA SSLC 1.x and 2.x in mod_ssl - [Jon Travis, John Barbee, William Rowe, Ryan Bloom, Doug MacEachern] - - *) Add a new parameter to the quick_handler hook to instruct - quick handlers to optionally do a lookup rather than actually - serve content. This is the first of several changes required fix - several problems with how quick handlers work with subrequests. - [Bill Stoddard] - - *) worker MPM: Get MaxRequestsPerChild to work again. [Jeff Trawick] - - *) [APR-related] The ordering of the default accept mutex method has - been changed to better match what's done in Apache 1.3. The ordering - is now (highest to lowest): pthread -> sysvsem -> fcntl -> flock. - [Jim Jagielski] - - *) Ensure that the build/ directory is created when using VPATH. - [Justin Erenkrantz] - - *) Add some popular types to the mime magic file. PR 7730. - [Linus Walleij , Justin Erenkrantz] - - *) Remove the single-byte socket reads for CGI headers [Brian Pane] - - *) When a proxied site was being served, Apache was replacing - the original site Server header with it's own, which is not - allowed by RFC2616. Fixed. [Graham Leggett] - - *) Fix a mod_cgid problem that left daemon processes stranded - in some server restart scenarios. [Jeff Trawick] - - *) Added exp_foo and rel_foo variables to config_vars.mk for - all Apache and Autoconf path variables (like --sysconfdir, - --sbindir, etc). exp_foo is the "expanded" version, which means - that all internal variable references have been interpolated. - rel_foo is the same as $exp_foo, only relative to $prefix if they - share a common path. [Aaron Bannert] - - *) Fix some restart/terminate problems in the worker MPM. Don't - drop connections during graceful restart. [Jeff Trawick] - - *) Change the header merging behaviour in proxy, as some headers - (like Set-Cookie) cannot be unmerged due to stray commas in - dates. [Graham Leggett] - - *) Be more vocal about what AcceptMutex values we allow, to make - us closer to how 1.3 does it. [Jim Jagielski] - - *) Get nph- CGI scripts working again. PRs 8902, 8907, 9983 - [Jeff Trawick] - - *) Upgraded PCRE library to latest version 3.9 [Brian Pane] - - *) Add accessor function to set r->content_type. From now on, - ap_rset_content_type() should be used to set r->content_type. - This change is required to properly implement the - AddOutputFilterByType configuration directive. - [Bill Stoddard, Sander Striker, Ryan Bloom] - - *) Add new M_FOO symbols for the WebDAV/DeltaV methods specified by - RFC 3253. Improved the method name/number mapping functions. - [Greg Stein] - - *) remove sock_enable_linger from connection.c [Ian Holsman] - - *) Fix for virtual host processing where the requested hostname - has a '.' at the end (PR 9187) [Ryan Cruse ] - - *) mod_dav's APIs for REPORT response handling was changed so that - providers can generate the content directly into the output filter - stack, rather than buffering the response into memory. [Greg Stein] - - *) Fix a hang condition with graceful restart and prefork MPM - in the situation where MaxClients is very high but - much fewer servers are actually started at the time of the - restart. [Jeff Trawick] - - *) Small performance fixes for mod_include [Brian Pane] - - *) Performance improvement for the error logger [Brian Pane] - - *) Change configure so that Solaris 8 and above have - SINGLE_LISTEN_UNSERIALIZED_ACCEPT defined by default. - according to sun people solaris 8+ doesn't have a thundering - herd problem [Ian Holsman] - - *) Allow URIs specifying CGI scripts to include '/' at the end - (e.g., /cgi-bin/printenv/) on AIX and Solaris (and other OSs - which ignore '/' at the end of the names of non-directories). - PR 10138 [Jeff Trawick] - - *) implement SSLSessionCache shmht and shmcb based on apr_rmm and - apr_shm. [Madhusudan Mathihalli ] - - *) Fix apxs -g handling. Move config_vars.mk from the top build - directory to the build directory. PR 10163 [Jeff Trawick] - - *) Fix some mod_include problems which broke evaluation of some - expressions. PR 10108 [Jeff Trawick] - - *) Fix the calculation of request time in mod_status. [Stas Bekman] - - *) Fix the calculation of thread_num in the worker score structure. - [Stas Bekman] - - *) Use apr_atomic operations in managing the mod_mem_cache - cache_objects for SMP scalability. (see USE_ATOMICS - preprocessor directive in mod_file_cache) - [Bill Stoddard] - - *) Add filehandle caching to mod_mem_cache. (see CACHE_FD - preprocessor directive in mod_file_cache) - [Bill Stoddard] - - *) Implement prototype mod_disk_cache for use with mod_cache. - [Bill Stoddard] - - *) Add a missing manualdir entry in the Debian config.layout. - [Thom May ] - - *) Stop installing libtool for APR and tell APR where it should place - its copy of libtool (via our installbuildpath layout variable). - [Justin Erenkrantz] - - *) New directive ProxyIOBufferSize. Sets the size of the buffer used - when reading from a remote HTTP server in proxy. [Graham Leggett] - - *) Modify receive/send loop in proxy_http and proxy_ftp so that - should it be necessary, the remote server socket is closed before - transmitting the last buffer (set by ProxyIOBufferSize) to the - client. This prevents the backend server from being forced to hang - around while the last few bytes are transmitted to a slow client. - Fix the case where no error checking was performed on the final - brigade in the loop. [Graham Leggett] - - *) Scrap CacheMaxExpireMin and CacheDefaultExpireMin. Change - CacheMaxExpire and CacheDefaultExpire to use seconds rather than - hours. [Graham Leggett, Bill Stoddard] - - *) New Directive SSIUndefinedEcho. to change the '(none)' echoed - for a undefined variable. [Ian Holsman] - - *) Proxy HTTP and CONNECT: Keep trying other addresses from the DNS - when we can't get a socket in the specified address family. We may - have gotten back an IPv6 address first and yet our system is not - configured to allow IPv6 sockets. [Jeff Trawick] - - *) Be more careful about recursively removing CVS directories. Make - sure that we aren't cd'ing to their home directory first. PR: 9993 - [Aaron Bannert, James LewisMoss ] - - *) Add a missing errordir entry in the Debian config.layout. PR: 10067 - [Dirk-Jan Faber , Aaron Bannert, - Thom May ] - - *) Rename the filter ordering priorities. The recent filtering fixes - have showcased problems with their usage. Therefore, we need to - rename them to increase the clarity. (CONTENT->RESOURCE, - HTTP_HEADER->CONTENT_SET/PROTOCOL) [Justin Erenkrantz] - -Changes with Apache 2.0.33 - - *) Fix a problem in the new --enable-layout functionality where - it wouldn't allow overrides from variables like --prefix, - --bindir, etc. [Thom May ] - - *) Fix a bug in the core input filter for AP_MODE_EXHAUSTIVE. It - no longer hangs around waiting for the socket to close before - returning exhaustive data. [Aaron Bannert] - - *) rename apr_exploded_time_t to apr_time_exp_t (as per renames pending) - [Thom May ] - - *) Change mod_ssl to always do a full startup/teardown on restarts. - this allows mod_ssl to be added to a server that is already - running and makes it possible to add/change certs/keys after the - server has been started. [Doug MacEachern] - - *) Introduce PassPhraseDialog "|/path/to/pipe" mechanism to mod_ssl. - This pipe must be a bidirectional 'console' style relay, which - mod_ssl prints all prompts to the pipe's stdin, and reads the - passphrases from the pipe's stdout. [William Rowe] - - *) Fix bug where --sysconfdir and --localstatedir were being - ignored. [Thom May , Aaron Bannert] - PR 9888 - - *) Fix --enable-layout to work again. Caution: When specifying - --enable-layout, common arguments like --prefix, --exec-prefix, - etc. will be ignored and the settings from the layout will be - used instead. [Thom May , Aaron Bannert] - PR 9124, 9873, 9885 - - *) New Directive for mod_proxy: ProxyRemoteMatch. This provides - regex pattern matching for the determination of which requests - to use the remote proxy for. [Jim Jagielski] - - *) Fix CustomLog bytes-sent with HTTP 0.9. [Justin Erenkrantz] - - *) Prevent Apache from ignoring SIGHUP due to some lingering 1.3 - cruft in piped logs and rewritemap child processes. - [William Rowe] - - *) All instances of apr_lock_t have been removed and converted - to one of the following new lock APIs: apr_thread_mutex.h, - apr_proc_mutex.h, or apr_global_mutex.h. No new code should - use the apr_lock.h API, as the old API will soon be deprecated. - [Aaron Bannert] - - *) Merged in changes to mod_ssl up through 2.8.7-1.3.23. - [Ralf S. Engelschall, Cliff Woolley] - - *) mod-include: make it handle flush'es and fix the 'false-alarm' - [Justin Erenkrantz, Brian Pane, Ian Holsman] - - *) ap_get_*_filter_handle() functions to allow 3rd party modules - to lookup filter handles so they can bypass the filter name - lookup when adding filters to a request (via ap_add_*_filter_handle()) - [Ryan Morgan ] - - *) Fix for multiple file buckets on Win32, where the first file - bucket would cause the immediate closure of the socket on any - non-keepalive requests. [Ryan Morgan ] - - *) Correct Win32 failure of mmap of a segment beyond start of the - file; fixes large SSL and similar transfers. [William Rowe] - PR 9898 - - *) Implement apr_proc_detach changes and allow -DNO_DETACH in the - multi-process mode to not "daemonize" while detaching from the - controlling terminal. This is necessary for Apache to work with - process-management tools like AIX's "System Resource Controller" - as well as Dan Bernstein's "daemontools". - [Jos Backus , Aaron Bannert] - - *) Convert mod_auth_digest to use the new apr_global_mutex_t - type. [Aaron Bannert] - - *) fix bug in mod-include where it wouldn't send a unmatched - part if it was at the end of a bucket [Ian Holsman] - - *) worker MPM: Improve logging of errors with the interface between - the listener thread and worker threads. [Jeff Trawick] - - *) Some browsers ignore cookies that have been merged into a - single Set-Cookie header. Set-Cookie and Set-Cookie2 headers - are now unmerged in the http proxy before being sent to the - client. [Graham Leggett] - - *) Fix a problem with proxy where each entry of a duplicated - header such as Set-Cookie would overwrite and obliterate the - previous value of the header, resulting in multiple header - values (like cookies) going missing. - [Graham Leggett, Joshua Slive] - - *) Add the server-limit and thread-limit values to the scoreboard - for the sake of third-party applications. - [Adam Sussman ] - - *) Fix segfault when proxy recieves an invalid HTTP response [Ian Holsman] - - *) OS/390: Get make install to properly copy DSO modules. - [Jeff Trawick] - - *) Win32: Fix bug in mod_status with displaying "Restart Time" - and "Server uptime". - [Bill Stoddard] - - *) Fix IPv6 name-based virtual hosts. [Jeff Trawick] - - *) Introduce AddOutputFilterByType directive. [Justin Erenkrantz] - - *) Fix DEBUG_CGI support in mod_cgi. PR 9670, 9671. - [David MacKenzie ] - - *) Fix incorrect check for script_in in mod_cgi. PR 9669. - [David MacKenzie ] - - *) Fix segfault and display error when SSLMutex file can not be - created. [Adam Sussman ] - - *) Add reference counting to mod_mem_cache cache objects to - better manage removing objects from the cache. - [Bill Stoddard] - - *) Change the verbage on the ScoreBoardFile in our default configs. - Also change the default to be commented out (unspecified) so we - get anonymous shared memory by default. [Aaron Bannert] - - *) Implement new ScoreBoardFile directive logic. This affects how - we create the scoreboard's shared memory segment. If the directive - is present, a name-based segment is created. If the directive is - not present, first an anonymous segment is created, and if that - fails, a name-based segment is created from a file of the name - DEFAULT_SCOREBOARD. This gives third-party applications the - ability to access our scoreboard. [Aaron Bannert] - - *) Allow mod_deflate to work with non-GET requests and properly send - Content-Lengths. [Sander Striker ] - - *) Fix ap_directory_merge() to correctly merge configs when there is - no block. [Justin Erenkrantz, William Rowe] - - *) Remove spurious debug messsages that are normal under HTTP - keep-alive logic. [Jeff Trawick, Justin Erenkrantz] - - *) Fix a bug in mod_cgid that would prevent proper shutdown death - of the cgid process. [Aaron Bannert] - - *) Add signal handling back in to the worker MPM for the one_process - (-X, -DDEBUG, -DONE_PROCESS) case. [Aaron Bannert] - - *) Performance: Reuse per-connection transaction pools in the - worker MPM, rather than destroying and recreating them. [Brian Pane] - - *) Remove all signals from the worker MPM's child process. Instead, - the parent uses the Pipe of Death for all communication with the - child processes. [Ryan Bloom] - -Changes with Apache 2.0.32 - - *) mod_negotiation: ForceLanguagePriority now uses 'Prefer' as the - default if the directive is not specified. This mirrors older - behavior without changes to the httpd.conf. [William Rowe] - - *) Win32: solve the win32 service problems in 2.0.31-alpha, by fixing - the service, mpm and logging code, and bugs in apr_file_open_stderr - and apr_file_dup2 functions. Win2K/XP services have no handles - associated for stdin/out/err, which caused unpredictable behavior - in the prior release. [William Rowe, Bill Stoddard] - - *) Win32: simplify the Application Event Log messages, since there isn't - likely to be 'more information in the error log' before an error log - has been opened. [William Rowe] - - *) Win32: substantial cleanup to the mpm_winnt code for legibility and - to follow the program flow of other MPMs. [Ryan Bloom, William Rowe] - - *) Win32: apache -k shutdown now behaves like apache -k stop. - [Bill Stoddard] - - *) Fix prefork to not kill the parent if a child hits a resource shortage - on accept(). [Greg Ames] - - *) Fix seg faults that occur when what should be the httpd request line - starts with \r\n followed by garbage. [Greg Ames] - - *) Allow statically linked support binaries with the new - --enable-static-support flag, and enable this behavior in - the binbuild script. Also add a new --enable-static-htdbm - flag. [Aaron Bannert] - - *) Allow mod_autoindex to serve symlinks if permitted and attempt to - do only one stat() call when generating the directory listings. - [Justin Erenkrantz] - - *) Fix resolve_symlink to save the original symlink name if known. - [Justin Erenkrantz] - - *) Be a bit more sane with regard to CanonicalNames. If the user has - specified they want to use the CanonicalName, but they have not - configured a port with the ServerName, then use the same port that - the original request used. [Ryan Bloom and Ken Coar] - - *) In core_input_filter, check for an empty brigade after - APR_BRIGADE_NORMALIZE(). Otherwise, we can get segfaults if a - client says it will post some data but we get FIN before any - data arrives. [Jeff Trawick] - - *) Not being able to bind to the socket is a fatal error. We should - print an error to the console, and return a non-zero status code. - With these changes, all of the Unix MPMs do that correctly. - [Ryan Bloom] - - *) suexec: Allow HTTPS and SSL_* environment variables to be passed - through to CGI scripts. PR 9163 - [Brian Reid , - Zvi Har'El ] - - *) binbuild.sh: Make sure that we use the expat from our source - tree so that there aren't any surprises on the target machine. - [Jeff Trawick] - - *) mod_cgid: Add retry logic for when the daemon can't fork fast - enough to keep up with new requests. Start using - HTTP_SERVER_UNAVAILABLE instead of HTTP_INTERNAL_SERVER_ERROR - when we can't talk to the daemon. [Jeff Trawick] - - *) apxs: LTFLAGS envvar can override default libtool options. Try - "LTFLAGS=' ' apxs -c mod_foo.c" to see what libtool does under - the covers. [Jeff Trawick] - - *) The Location: response header field, used for external - redirect, *must* be an absoluteURI. The Redirect directive - tested for that, but RedirectMatch didn't -- it would allow - almost anything through. Now it will try to turn an abs_path - into an absoluteURI, but it will correctly varf like Redirect - if the final redirection target isn't an absoluteURI. [Ken Coar] - -Changes with Apache 2.0.31 - - *) Create the scoreboard (in the parent) in a global pool context, - so it survives graceful restarts. This fixes a SEGV during - graceful restarts. [Aaron Bannert] - - *) Add a timeout option to the proxy code 'ProxyTimeout' - [Ian Holsman] - - *) FTP directory listings are now always retrieved in ASCII mode. - The FTP proxy properly escapes URI's and HTML in the generated - listing, and escapes the path components when talking to the FTP - server. It is now possible to browse the root directory by using - a url like: ftp://user@host/%2f/ (ported from apache_1.3.24) - Also, the last path component may contain wildcard characters - '*' and '?', and if they do, a directory listing is created instead - of a file retrieval. Example: ftp://user@host/httpd/server/*.c - [Martin Kraemer] - - *) Added single-listener unserialized accept support to the - worker MPM [Brian Pane] - - *) New Directive for mod_proxy: 'ProxyPreserveHost'. This passes - the incoming host header through to the proxied server - [Geoff ] - - *) New Directive Option for ProxyPass. It now can block a location - from being proxied [Jukka Pihl ] - - *) Don't let the default handler try to serve a raw directory. At - best you get gibberish. Much worse things can happen depending - on the OS. [Jeff Trawick] - - *) Change the pre_config hook to return a value. Modules can now emit - an error message and then cause the server to quit gracefully during - startup. This required a bump to the MMN. [Aaron Bannert] - - *) Fix some unix socket descriptor leaks in the handler side of - mod_cgid (the part that runs in the server process). Whack a - silly "close(-1)" in the handler too. [Jeff Trawick] - - *) Change the pre_mpm hook to return a value, so that scoreboard - init errors percolate up to code that knows how to exit - cleanly. This required a bump to the MMN. [Jeff Trawick] - - *) Add the socket back to the conn_rec and remove the create_connection - hook. The create_connection hook had a design flaw that did not - allow creating connections based on vhost info. [Bill Stoddard] - - *) Fixed PATH_INFO and QUERY_STRING from mod_negotiation results. - Resolves the common case of using negotation to resolve the request - /script/foo for /script.cgi/foo. [William Rowe] - - *) Added new functions ap_add_(input|output)_filter_handle to - allow modules to bypass the usual filter name lookup when - adding hard-coded filters to a request [Brian Pane] - - *) caching should now work on subrequests (still very experimental) - [Ian Holsman] - - *) The Win32 mpm_winnt now has a shared scoreboard. [William Rowe] - - *) Change ap_get_brigade prototype to use apr_off_t instead of apr_off_t*. - [Justin Erenkrantz] - - *) Refactor ap_rgetline so that it does not use an internal brigade. - Change ap_rgetline's prototype to return errors. [Justin Erenkrantz] - - *) Remove mod_auth_db. [Justin Erenkrantz] - - *) Do not install unnecessary pcre headers like config.h and internal.h. - [Joe Orton ] - - *) Change in quick_hanlder behavior for subrequests. it now passes DONE - (as it does for a normal request). quick_handled sub-requests now work - in mod-include [Ian Holsman] - - *) Change SUBREQ_CORE so that it is a 'HTTP_HEADER' filter instead of - 'CONTENT' one, as it needs to run AFTER all content headers - - *) Rename BeOS MPM directive RequestsPerThread to MaxRequestsPerThread. - [Lars Eilebrecht] - - *) Split out blocking from the mode in the input filters. - [Justin Erenkrantz] - - *) Fix a segfault in mod_include. [Justin Erenkrantz, Jeff Trawick] - - *) Cause Win32 to capture all child-worker process errors in - Apache to the main server error log, until the child can - open its own error logs. [William Rowe] - - *) HPUX 11.*: Do not kill the child process when accept() - returns ENOBUFS on HPUX 11.*. (ported from th 1.3 patch) - [Madhusudan Mathihalli , Bill Stoddard] - - *) Fix a problem in the parsing of the directive. - [Jeff Trawick] - - *) rewrite of mod_ssl input filter for better performance and less - memory usage [Doug MacEachern] - - *) allow quick_handler to be run on subrequests. [Ian Holsman] - - *) mod_dav now asks its provider to place content directly into the - filter stack when handling a GET request. The mod_dav/provider - API has changed, so providers need to be updated. [Greg Stein] - - *) Clear the output socket descriptor in unixd_accept() to make sure - we don't supply a bogus socket to the caller if the accept fails. - This caused problems with the worker MPM, which tried to process - the returned socket if it was non-NULL. [Brian Pane] - - *) Move a check for an empty brigade to the start of core input filter - to avoid segfaults. [Justin Erenkrantz, Jeff Trawick] - - *) Add FileETag directive to allow configurable control of what - data are used to form ETag values for file-based URIs. MMN - bumped to 20020111 because of fields added to the end of - the core_dir_config structure. [Ken Coar] - - *) Fix a segfault in mod_rewrite's logging code caused by passing the - wrong config to ap_get_remote_host(). [Jeff Trawick] - - *) Allow mod_cgid to work from a binary distribution install by - using 755 for the permissions on the log directory instead of - 750. [Jeff Trawick] - - *) Fixed a segfault that happened during graceful shutdown (or when - the httpd ran out of file descriptors) with the worker MPM [Brian Pane] - - *) Split all Win32 modules [excluding the core components mod_core, - mod_so, mod_win32 and the winnt mpm] into individual loadable - modules, so the administrator may individually disable the former - compiled-in modules by simply commenting out their LoadModule - directives. [William Rowe] - - *) Saved Win32 module authors and porters many future headaches, by - duplicating the appropriate .h files such as os.h into the include - directory, including in the build tree. [William Rowe] - - *) mod_ssl adjustments to help with using toolkits other than OpenSSL: - Use SSL functions/macros instead of directly dereferencing SSL - structures wherever possible. - Add type-casts for the cases where functions return a generic pointer. - Add $SSL/include to configure search path. - [Madhusudan Mathihalli ] - - *) Moved several pointers out of the shared Scoreboard so it is - more portable, and will present the vhost name across server - generation restarts. [William Rowe] - - *) Fix SSLPassPhraseDialog exec: and SSLRandomSeed exec: - [Doug MacEachern] - -Changes with Apache 2.0.30 - - *) Fix the main bug for FreeBSD and threaded MPM's. There are - still issues (see STATUS) but at least the server will now - run without crashing the machine. - [David Reid, Aaron Bannert, Justin Erenkrantz] - - *) Fix a typo in mod_deflate's m4 config section. - [albert chin ] - - *) Fix a couple of mod_proxy problems forwarding HTTP connections - and handling CONNECT: - (1) PR #9190 Proxy failed to connect to IPv6 hosts. - (2) Proxy failed to connect when the first IP address returned by - the resolver was unreachable but a secondary IP address was. - [Jeff Trawick] - - *) Fix the module identifer as shown in the docs for various core - modules (e.g., the identifer for mod_log_config was previously - listed as config_log_module). PR #9338 - [James Watson ] - - *) Fix LimitRequestBody directive by placing it in the HTTP - filter. [Justin Erenkrantz] - - *) Fix mod_proxy seg fault when the proxied server returns - an HTTP/0.9 response or a bogus status line. - [Adam Sussman] - - *) Prevent mod_proxy from truncating one character off the - end of the status line returned from the proxied server. - [Adam Sussman, Bill Stoddard] - - *) Eliminate loop in ap_proxy_string_read(). - [Adam Sussman, Bill Stoddard] - - *) Provide $0..$9 results from mod_include regex parsing. - [William Rowe] - - *) Allow mod-include to look for alternate start & end tags [Ian Holsman] - - *) Introduced the ForceLanguagePriority directive, to prevent - returning MULTIPLE_CHOICES or NONE_ACCEPTABLE in some cases, - when using Multiviews. [William Rowe] - - *) Fix a problem which prevented mod_cgid and suexec from working - together reliably [Greg Ames] - - *) Remove the call to exit() from within mod_auth_digest's post_config - phase. [Aaron Bannert] - - *) Fix a problem in mod_auth_digest that could potentially cause - problems with initialized static data on a system that uses DSOs. - [Aaron Bannert] - - *) Fix a segfault in the worker MPM that could happen during - child process exits. [Brian Pane, Aaron Bannert] - - *) Allow mod_auth_dbm to handle multiple DBM types [Ian Holsman] - - *) Fix matching of vhosts by ip address so we find IPv4 - vhost address when target address is v4-mapped form of - that address. [Jeff Trawick] - - *) More performance tweaks to the BNDM string-search algorithm - used to find "" is the last byte in a file [Brian Pane] - - *) Add back in the "suEXEC mechanism enabled (wrapper: /path/to/suexec)" - message that we had back in apache-1.3 and still have scattered - throughout our docs. [Aaron Bannert] - - *) Prevent the Win32 port from continuing after encountering an - error in the command line args to apache. [William Rowe] - - *) On a error in the proxy, make it write a line to the error log - [Ian Holsman] - - *) Various mod_ssl performance improvements [Doug MacEachern] - -Changes with Apache 2.0.29 - - *) Add buffering in core_output_filter to ensure that long - lists of small buckets don't cause small packet writes. - [Brian Pane, Ryan Bloom] - - *) Fix the installation target to make sure that the manual is - installed in the correct location. - [Yoshifumi Hiramatsu and - Gomez Henri ] - - *) Fix the cmd command for mod_include. When we are processing - a cmd command, we do not want to use the r->filename to set - the command name. The command comes from the SSI tag. To do this, - I added a variable to the function that builds the command line - in mod_cgi. This allows the include_cmd function to specify - the command line itself. [Ryan Bloom] - - *) Change open_logs hook to return a value, allowing you - to flag a error while opening logs - [Ian Holsman, Doug MacEachern] - - *) Change post_config hook to return a value, allowing you - to flag a error post config - [Ian Holsman, Jeff Trawick] - - *) Allow SUEXEC_BIN (the path to the suexec binary that is - hard-coded into the server) to be specified to the configure - script by the --with-suexec-bin parameter. [Aaron Bannert] - - *) Fix segv in worker MPM following accept on pipe-of-death - [Brian Pane] - - *) Add mod_deflate to experimental. - [Ian Holsman, Justin Erenkrantz] - - *) Bail out at configure time if an invalid MPM was specified. - [jean-frederic clere ] - - *) Prevent segv in ap_note_basic_auth_failure() when no AuthName is - configured [John Sterling ] - - *) Fix apxs to use sbindir. [Henri Gomez ] - - *) Fix a problem with IPv6 vhosts. PR #8118 [Jeff Trawick] - - *) Optimization for the BNDM string-search function in - mod_include. [Brian Pane] - - *) Fixed the behavior of the XBitHack directive. - [Taketo Kabe , Cliff Woolley] PR#8804 - - *) The threaded MPM for Unix has been removed. Use the worker - MPM instead. [various] - - *) APR-ize the resolver logic in mod_unique_id. This fixes a bug - in logging the error from a failed DNS lookup. [Jeff Trawick] - - *) Added the missing macros AP_INIT_TAKE13 and AP_INIT_TAKE123. - [Cliff Woolley] - - *) Get mod_cgid killed when a MPM exits due to a fatal error. - [Jeff Trawick] - - *) Fix a file descriptor leak in mod_include. When we include a - file, we use a sub-request, but we didn't destroy the sub-request - immediately, instead we waited until the original request was - done. This patch closes the sub-request as soon as the data is - done being generated. [Brian Pane ] - - *) Allow modules that add sockets to the ap_listeners list to - define the function that should be used to accept on that - socket. Each MPM can define their own function to use for - the accept function with the MPM_ACCEPT_FUNC macro. This - also abstracts out all of the Unix accept error handling - logic, which has become out of synch across Unix MPMs. - [Ryan Bloom] - - *) Fix a bug which would cause the response headers to be omitted - when sending a negotiated ErrorDocument because the required - filters were attached to the wrong request_rec. - [John Sterling ] - - *) Remove commas from the end of the macros that define - directives that are used by MPMs. Prior to this patch, - you would use these macros without commas, which was unlike - the macros for any other directives. Now, the caller provides - the comma rather than the macro providing it. This makes - the macros look more like the rest of the directives. - [Ryan Bloom and Cliff Woolley] - - *) Add 'redirect-carefully' environment option to disable sending - redirects under special circumstances. This is helpful for - Microsoft's WebFolders when accessing a directory resource via - DAV methods. [Justin Erenkrantz] - - *) Begin to abstract out the underlying transport layer. - The first step is to remove the socket from the conn_rec, - the server now lives in a context that is passed to the - core's input and output filters. This forces us to be very - careful when adding calls that use the socket directly, - because the socket isn't available in most locations. - [Ryan Bloom] - - *) Really reset the MaxClients value in worker and threaded - when the configured value is not a multiple of the number - of threads per child. We said we did previously but we - forgot to. [Jeff Trawick] - - *) Add Debian layout. [Daniel Stone ] - - *) If shared modules are requested and mod_so is not available, - produce a fatal config-time error. [Justin Erenkrantz] - - *) Improve http2env's performance by cutting the work it has to - do. [Brian Pane ] - - *) use new 'apr_hash_merge' function in mod_mime (performance fix) - [Brian Pane ] - -Changes with Apache 2.0.28 - - *) Fix infinite loop in mod_cgid.c. - [Dale Ghent , Brian Pane ] - - *) When no port is given in a "ServerName host" directive, the - server_rec->port is now set to zero, not 80. That allows for - run-time deduction of the correct server port (depending on - SSL/plain, and depending also on the current setting of - UseCanonicalName). This change makes redirections - work, even with https:// connections. As in Apache-1.3, the - connection's actual port number is never used, only the ServerName - setting or the client's Host: setting. Documentation updated - to reflect the change. [Martin Kraemer] - - *) Add a '%{note-name}e' argument to mod-headers, which works in - the same way as mod_log_confg. [Ian Holsman] - - *) Fix the spelling of the AP_MPMQ_MIN_SPARE_DAEMONS and - AP_MPMQ_MAX_REQUESTS_DAEMON macros in ap_mpm.h and all standard - MPMs. [Cliff Woolley] - - *) Introduce htdbm, a user management utility for db/dbm authorization - databases. [Mladen Turk ] - - *) Optimize usage of strlen and strcat in ap_directory_walk. - [Brian Pane ] - -Changes with Apache 2.0.27 - - *) Introduce an Apache mod_ssl initial configuration template - (ssl.conf, generated from ssl-std.conf). [Ralf S. Engelschall] - - *) Fixed a memory leak in the getline parsing code that could - be triggered by arbitrarily large header lines. Requests - from the core input filter for single lines are now limited - to HUGE_STRING_LEN (8192 bytes). [Aaron Bannert] - - *) Fix a truncation bug in how we print the port on the Via: header. - The routine that prints the Via: header now takes a length for - the port string. [Zvi Har'El ] - - *) Some syntax errors in mod_mime_magic's magic file can result - in a 500 error, which previously was unlogged. Now we log the - error. [Jeff Trawick] - - *) Add the support/checkgid helper app, which checks the run-time - validity of group identifiers usable in the Group directive. - [Ken Coar] - - *) Various --enable-so options have been fixed: --enable-so is - treated as "static"; explicit --enable-so=shared issues an error; - and explicit --enable-so fails with error on systems without - APR_HAS_DSO. [Aaron Bannert] - - *) Fix a segfault in the core input filter when the client socket - gets disconnected unexpectedly. [Cliff Woolley] - - *) Fix the reporting for child processes that die. This removes - all of the non-portable W* macros from Apache. - [Jeff Trawick and Ryan Bloom] - - *) Win32: Track and display "Parent Server Generation:" in - mod_status output. The generation will be bumped at - server graceful restart, when the child process exits - by hitting MaxRequestsPerChild or if the child - process exits abnormally. [Bill Stoddard] - - *) Win32: Fix problem where MaxRequestsPerChild directive was - not being picked up in favor of the default. Enable - the parent to start up a new child process immediately upon - the old child starting shutdown. - [Bill Stoddard] - - *) Fix some bungling of the remote port in rfc1413.c so that - IdentityCheck retrieves the proper user id instead of failing - and thus always returning "nobody." - [Dick Streefland ] - - *) Introduced thread saftey for mod_rewrite's internal cache. - [Brian Pane ] - - *) Simplified mod_env's directives to behave as most directives are - expected, in that UnsetEnv will not unset a SetEnv and PassEnv - directive following that UnsetEnv within the same container. - Also provides a runtime startup warning if a PassEnv configured - environment value is undefined. [William Rowe] - - *) The worker MPM is now completely ported to APR's new lock API. It - uses native APR types for thread mutexes, cross-process mutexes, - and condition variables. [Aaron Bannert] - - *) Sync up documentation to remove all references to the now deprecated - Port directive. [Justin Erenkrantz] - - *) Moved all ldap modules from the core to httpd-ldap sub-project - [Ryan Bloom] - - *) Exit when we can't listen on any of the configured ports. This - is the same behavior as 1.3, and it avoids having the MPMs to - deal with bogus ap_listen_rec structures. [Jeff Trawick] - - *) Cleanup the proxy code that creates a request to the origin - server. This change adds an optional hook, which allows modules - to gain control while the request is created if the proxy module - is loaded. The purpose of this hook is to allow modules to add - input and/or output filters to the request to the origin. While - I was at it, I made the core use this hook, so that proxy request - creation uses some of the code from the core. This can still be - greatly improved, but this is a good start. [Ryan Bloom] - -Changes with Apache 2.0.26 - - *) Port the MaxClients changes from the worker MPM to the threaded - MPM. [Ryan Bloom] - - *) Fix mod_proxy so that it handles chunked transfer-encoding and works - with the new input filtering system. [Justin Erenkrantz] - - *) Introduce the MultiviewsMatch directive, to allow the operator - to be flexible in recognizing Handlers and Filters filename - extensions as part of the Multiviews matching logic, strict with - MultiviewsMatch NegotiatedOnly to accept only filename extentions - that designate negotiated parameters, (content type, charset, etc.) - or MultiviewsAll for the 1.3 behavior of matching any files, even - if they have unregistered extensions. [William Rowe] - - *) Fixed the configure script to add a LoadModule directive to - the default httpd.conf for any module that was compiled - as a DSO. [Aaron Bannert ] - - *) rewrite mod_ssl input filtering to work with the new input filtering - system. [Justin Erenkrantz] - - *) prefork: Don't segfault when we are able to listen on some but - not all of the configured ports. [Jeff Trawick] - - *) Build mod_so even if no core modules are built shared. - [Aaron Bannert ] - - *) Introduce ap_directory_walk rewrite (with further optimizations - required) to adapt to the ap_process_request_internal() changes. - Optimized so subrequests and redirects now reuse previous section - merges, until we mismatch with the original directory_walk, and - precomputed r->finfo results will cause directory_walk to skip - the most expensive phases of the function. [William Rowe] - - *) Allow ApacheMonitor to connect to and control Apache on other - WinNT/2K machines. [Mladen Turk ] - - *) Remove the Port directive. In it's place, the Listen directive - is now a required directive, which tells Apache what port to - listen on. The ServerName directive has also been extended - to accept an optional port. If the port is specified to the - ServerName, the server will report that port whenever it - reports the port that it is listening on. This change was - made to ease configuration errors that stem from having a Port - directive, and a Listen directive. In that situation, the server - would only listen to the port specified by the Listen command, - which caused a lot of confusion to users. [Ryan Bloom] - - *) Added mod_mime_magic, mod_unique_id and mod_vhost_alias to the Win32 - build, as loadable modules. [William Rowe] - - *) Fix --enable-mods-shared processing. If most is specified, - then all modules that can be compiled as shared modules are. - [Aaron Bannert ] - - *) Update the mime.types file to map video/vnd.mpegurl to mxu - and add commonly used audio/x-mpegurl for m3u extensions. - [Heiko Recktenwald , Lars Eilebrecht] - - *) Eliminate the depreciated r->content_language, in favor of the array - r->content_languages introduced many years ago. Module authors must - substantially overhaul their modules, so this needs to be upgraded - if the module still relied on backwards-brokeness. [William Rowe] - - *) Allow configure help strings to work with autoconf 2.50+ and 2.13. - [Justin Erenkrantz] - - *) Rewrite the input filtering mechanisms to consolidate and reorganize - code. In short, core_input_filter does something now and - ap_http_filter is now only concerned with HTTP. [Justin Erenkrantz] - - *) Update the Win32 build to re-absorb mod_proxy and family. - [William Rowe] - - *) Resolved the build failure on Win32 using MSVC 5.0 (without the - current SDK.) [William Rowe] - - *) Some style changes to the code that does ProxyErrorOverride. Fixed - config merge behaviour. [Graham Leggett] - - *) Allow support programs to be compiled against a static version - of libapr. This allows the smaller support programs to be - relocated. [Aaron Bannert ] - - *) Update the mime.types file to the registered media types as - of 2001-09-25, and add mapping for xsl extension [Mark Cox] - - *) Fix MaxClients in the Worker MPM, so that it specifies the maximum - number of clients that can connect at the same time, instead of - specifying the maximum number of child processes. - [Aaron Bannert ] - - *) Switch proc_pthread AcceptMutex configuration directive to pthread to - be consistent with 1.3. [Justin Erenkrantz] - - *) Cache apr_explode_localtime() value for 15 seconds. - [Brian Pane ] - - *) Fix mod_include to not return ETag or Last-Modified headers. - [Ian Holsman ] - - *) Fix worker MPM's scoreboard logic. [Aaron Bannert ] - - *) Eliminate the wasteful run-time conversion of method names from strings - to numbers in places where the methods are known at compile time. - [Brian Pane ] - - *) Turn the worker MPM's queue into a LIFO. This may - improve cache-hit performance under some conditions. - [Aaron Bannert ] - - *) Switch back to SIGUSR1 for graceful restarts on all platforms that - support it. [Justin Erenkrantz] - - *) Cleanup the worker MPM. We no longer re-use transaction - pools. This incurs less overhead than shuffling the pools - around so that they can be re-used. Remove one of the - queue's condition variables. We just redefined the API to - state that you can't try to add more stuff than you allocated - segments for. [Aaron Bannert ] - - *) Fix SSL VPATH builds [Cody Sherr ] - - *) Fixed persistent connections when a request contains a body. - [Greg Stein] - - *) mod_dav uses a new API to speak to the backend provider for dead - property management. [Greg Stein] - - *) Remove the Win32 script-processing exception from mod_cgi, and - roll build_command_line/build_argv_list into a unified, overrideable - ap_cgi_build_command optional function. [William Rowe] - - *) Rewrite find_start_sequence to use a better search algorithm - to find the start tag. [Justin Erenkrantz] - - *) Fix a seg fault in mod_include. When we are generating an - internal redirect, we must set r->uri to "", not a bogus - string, and not NULL. [Ryan Bloom] - - *) Optimized location_walk, so subrequests, redirects and second passes - now reuse previous section merges on a by - basis, until we mismatch with the original location_walk. - [William Rowe] - - *) Back out the 1.45 change to util_script.c. This change made - us set the environment variable REQUEST_URI to the redirected - URI, instead of the originally requested URI. - [Taketo Kabe ] - - *) Make mod_include do lazy evaluation of potentially expensive to - compute variables. [Brian Pane ] - - *) Fix logging of bytes sent for HEAD requests. %b and %B should - log either - or 0, before this patch, they were both logging - the file size. [Taketo Kabe ] - - *) Make mod_include check for BYTE_CHECK_THRESHOLD per bucket rather - than per character. [Brian Pane ] - - *) Normalize the primary request, redirects and sub-requests to - run the same ap_process_request_internal for consistency in - robustness, behavior and security. [William Rowe] - - *) Fix a segfault with mod_include when r->path_info is not set - (which is the case with mod_proxy). [Ian Holsman ] - - *) Add -X functionality back. This indicates to all MPMs and any other - part of Apache that it should run in "debug" mode. [Justin Erenkrantz] - - *) Some initial support for the cygwin platform [prefork only]. - This is not to be confused with support for the WinNT/Win32 - platform, which is the recommended configuration for native - Win32 users. The cygwin platform support is recommended for - cygwin platform users. [Stipe Tolj ] - - *) Changed syntax of Set{Input|Output}Filter. The list of filters - must be semicolon delimited (if more than one filter is given.) - The Set{Input|Output}Filter directive now overrides a parent - container's directive (e.g. SetInputFilter in - will override any SetInputFilter directive in .) - This new syntax is more consistent with Add{Input|Output}Filter - directives defined in mod_mime. Also cures a bug in prior releases - where the Set{Input|Output}Filter directive would corrupt the - global configuration if the multiple directives were nested. - [William Rowe] - - *) Cured what's ailed mime for quite some time. If an AddSomething - was given in the configuration (Language, Charset, Handler or - Encoding) Apache would set the content type as given by AddType, - but refused to check the mime.types file if AddType wasn't given - for that specific extension. Setting the AddHandler for .html - without setting the AddType text/html html would cause Apache to - use the default content type. [William Rowe] - - *) Added some bulletproofing to memory allocation in the LDAP cache - code. [Graham Leggett] - -Changes with Apache 2.0.25 - - *) Move the installed /manual directory out of the /htdocs/ tree, so - that it can be kept more independently from the remaining document - root. The "Alias /manual ..." already allowed for easy projection - into existing private document trees. [Martin Kraemer] - - *) Add specified user attributes to the environment when using - mod_auth_ldap. This allows you to use mod_include to embed specified - user attributes in a page like so: - Hello , how are you? - [Graham Leggett] - - *) Fix a performance problem with the worker MPM. We now create - transaction pools once, and re-use them for each connection. - [Aaron Bannert ] - - *) Modfied mod_mime to prevent mod_negotation from serving a multiview - of a 'handler' or 'filter', so that any filename extension that does - not contribute to the negotiated metadata can't be served without - an explicit request. E.g., if the .Z extension is associated with - an unzip filter, the user request somefile.Z.html, mod_negotiation - won't serve it. It can serve somefile.Z.html when somefile.Z is - requested, since the .Z extension is explictly requested, if the - .html extension is associated with ContentType text/html. - [William Rowe] - - *) Introduce the AddInputFilter filter[;filter...] ext [ext...] - and corresponding AddOutputFilter syntax, to insert one or more - filters by mod_mime filename extension processing. - [William Rowe] - - *) Fix a growing connection pool in core_output_filter() for - keepalive requests. [Jeff Trawick] - - *) Moved split_and_pass_pretag_buckets back to being a - macro at Ryans's request. Removed the return from it - by setting and returning a return code instead. Updated - the code to check the return code from the macro and - do the right thing. [Paul J. Reder] - - *) Fix a segfault when a numeric value was received for Host:. - [Jeff Trawick] - - *) Add a function ap_remove_input_filter. This is to match - up with ap_remove_output_filter. [Ryan Bloom] - - *) Clean up location_walk, so that this step performs a minimum - amount of redundant effort (it must be run twice, but it will no - longer reparse all blocks when the request uri - hadn't changed.) [William Rowe] - - *) Eliminate proxy: (and all other 'special') processing from the - ap_directory_walk() phase. Modules that want to use special - walk logic should refer to the mod_proxy map_to_location example, - with it's proxy_walk and proxysection implementation. This makes - either directory_walk flavor much more legible, since that phase - only runs against real blocks. - [William Rowe] - - *) SECURITY: Fix a security problem in mod_include which would allow - an SSI document to be passed to the client unparsed. - [Cliff Woolley, Brian Pane] - - *) Introduce the map_to_storage hook, which allows modules to bypass - the directory_walk and file_walk for non-file requests. TRACE - shortcut moved to http_protocol.c as APR_HOOK_MIDDLE, and the - directory_walk/file_walk happen as APR_HOOK_VERY_LAST in core.c. - [William Rowe] - - *) Add the ability for mod_include to add the INCLUDES filter - if the file is configured for the server-parsed handler. - This makes the configuration for .shtml files much easier - to understand, and allows mod_include to honor Apache 1.3 - config files. Based on Doug MacEachern's patch to PHP - to do the same thing. [Ryan Bloom] - - *) force OpenSSL to ignore process local-caching and to always - get/set/delete sessions using mod_ssl's callbacks - [Madhusudan Mathihalli , - Geoff Thorpe ] - - *) Make the worker MPM shutdown and restart cleanly. This also - cleans up some race conditions, and gets the worker using - pools more cleanly. [Aaron Bannert ] - - *) Implement CRYPTO_set_locking_callback() in terms of apr_lock - for mod_ssl - [Madhusudan Mathihalli ] - - *) Fix for mod_include. Ryan's patch to check error - codes put a return in the wrong place. Also, the - include handler return code wasn't being checked. - I don't like macros with returns, so I converted - SPLIT_AND_PASS_PRETAG_BUCKETS into a function. - [Paul J. Reder ] - - *) fix segv in mod_mime if no AddTypes are configured - [John Sterling ] - - *) Enable ssl client authentication at SSL_accept time - [Madhusudan Mathihalli ] - - *) Fix a segfault in mod_include when the original request has no - associated filename (e.g., we're filtering the error document for - a bad URI). [Jeff Trawick] - - *) Fix a storage leak (a strdup() call) in mod_mime_magic. [Jeff Trawick] - - *) The prefork and OS/2 MPMs are overwriting the pid file when a second copy - of httpd is started and shuts down due to socket conflict. Moving the - call to ap_log_pid solves the problem. - - *) Changed the late-1.3 log_config substitution %c to %X, to log the - status of the closed connection, as it conflicts with the far more - common, historical ssl logging directive %...{var}c. [William Rowe] - - *) Added the common error/ tree to the build/install targets - (similar to the common icons/ tree) for the multi-language error - messages that Lars committed earlier. [William Rowe] - - *) Added a multi process, multi threaded OS/2 MPM mpmt_os2. [Brian Havard] - - *) Added a default commented-out mod_ldap and mod_auth_ldap - configuration to httpd-std.conf and httpd-win.conf - [Graham Leggett] - - *) Added documentation for mod_ldap and mod_auth_ldap. - [Graham Leggett] - - *) Enabled negative caching on attribute comparisons in the LDAP cache. - Fixed a problem where the default cache TTL was set in milliseconds - not microseconds causing the cache to time out almost immediately. - [Graham Leggett] - - *) Fixed all the #if APR_HAS_SHARED_MEMORY checks within the LDAP - module code to follow APR. [Graham Leggett] - - *) Fixed LDAP cleanup on graceful restarts. LDAP connections are now - cleaned up when the connection pool pool is cleaned up. - [Graham Leggett] - - *) Fix a minor issue with Jeff Trawick's mod_include - patch. Without this patch, the code will just allocate - more bytes in get_combined_directive than are needed. - [Paul Reder] - - *) Added the LDAP authentication module mod_auth_ldap. - [Dave Carrigan , Graham Leggett] - - *) Added the LDAP cache and connection pooling module mod_ldap. - [Dave Carrigan , Graham Leggett] - - *) Fix --enable-modules=all breakage with mod_auth_db and mod_auth_digest - by allowing a module to disable itself if its prerequisites are not - met. [Justin Erenkrantz] - -Changes with Apache 2.0.24 - - *) Fix a couple of issues in mod_include when the tag appeared at - offsets near 8192 in the file being parsed. [Jeff Trawick] - - *) Fix an assertion failure in mod_ssl when the keepalive timeout is - reached. [Jeff Trawick] - - *) Numerous improvements to the Win32 build system. Introduced command line - builds without requiring .mak files for MSVC 6.0 and later versions. - Improved .dsp file compatibility for both Visual Studio 5.0 and 6.0 users. - [William Rowe] - - *) Assorted corrections and improvements to the winnt_mpm startup code. Better - reporting of uninstalled services and other error conditions, and changed the - default service name to Apache2. [William Rowe] - - *) Numerous improvements to the Win32 ApacheMonitor utility, including winnt_mpm - compatibility with existing Apache 1.3 Win32 Apache management utilites. - [Mladen Turk , William Rowe] - - *) Fixed the segfaults in mod_mime introduced by hash tables in 2.0.20. - [William Rowe, Greg Ames] - - *) Rounded out the mod_mime Add/Remove pairs by adding RemoveLanguage - and RemoveCharset directives. [William Rowe] - - *) The Unix MPMs other than perchild now allow child server - processes to use the accept mutex when starting as root and - using SysV sems for the accept mutex. Previously, this - combination would lead to fatal errors in the child server - processes. perchild can't use SysV sems because of security - issues. [Jeff Trawick, Greg Ames] - - *) Added Win32 revision stamp resources to all http binaries - (including modules/ and support/ tools.) PR7322 [William Rowe] - - *) Fix ap_rvprintf to support more than 4K of data at one time. - [Cody Sherr ] - - *) We have always used the obsolete/deprecated Netscape syntax - for our tracking cookies; now the CookieStyle directive - allows the Webmaster to choose the Netscape, RFC2109, or - RFC2965 format. The new CookieDomain directive allows the - setting of the cookie's Domain= attribute, too. PR #s 5006, - 5023, 5920, 6140 [Ken Coar] - - *) Tweak server/Makefile so that the rules for generating exports.c - are compatible with make utilities which don't expand wildcards - in a dependency list (e.g., OS/390 make, certain levels of GNU - make). [Jeff Trawick] - - *) Install the SSL headers. [John Sterling ] - - *) Begin to sanitize the MPM configuration directives. Now, all - MPMs use the same functions for all common MPM directives. This - should make it easier to catch all bugs in these directives once. - [Cody Sherr ] - - *) Close a major resource leak. Every time we had issued a - graceful restart, we leaked a socket descriptor. - [Ryan Bloom] - - *) Fix a problem with the new method code. We need to cast - the 1 to an apr_int64_t or it will be treated as a 32-bit - integer, and it will wrap after being shifted 32 times. - [Cody Sherr and Ryan Morgan ] - - *) Fix a bug in mod_expires. Previous to this patch, if you - told mod_expires to add 604800 seconds to the last-modified - time, it actually added 604800 usec's to the last-modified time, - so that when looking at the response it looked like nothing - had been done. The root of the problem was that we always compute - time in usec's, but we ask users to input sec's. This means we - need to convert to usec's before using those values. - [Ryan Bloom] - - *) The worker MPM now handles shutdown and restart requests. It - definitely isn't perfect, but we do stop the servers correctly. - The biggest problem right now is that SIGHUP causes the server to - just die. [Ryan Bloom] - -Changes with Apache 2.0.23 - - *) Use the prefork MPM by default on Unix. [various] - - *) Added a systray icon monitor application for Win32. - [Mladen Turk ] - - *) mod_rewrite: Fix the line ending on some non-Unix systems for - messages written to the rewrite log. - [Richard Labennett ] - - *) All mod_autoindex query parsing is now quietly quashed with the - IndexOption IgnoreClient. The IndexOption SuppressColumnSorting - still drops the column sort 's for the column headers, but - IgnoreClient is required to ignore these Query options entirely. - [William Rowe] - - *) Introduced new mod_autoindex query argument parsing for F=[0|1|2] - to allow the client to select plain, FancyIndexing or HTMLTable - formatting, V=[0|1] to inhibit or enable version sorting, and - P=pattern to return only specific files. The old Query Arguments - were reorganized as C=f for sorting column 'f' (same N, D, S, or M - as before), and O=A|D for ordering ascending or descending. - [William Rowe] - - *) Fixed an error in mod_include's directive parsing routines which - caused #if, #elif, and #else expressions containing backslashes - to be improperly evaluated. [Cliff Woolley] - - *) Introduced new mod_autoindex IndexOptions flags: SuppressIcon to - drop the icon column, SuppressRules to drop the
elements, - and HTMLTable to create rudimentary HTML table listings (implies - FancyIndexing). [William Rowe] - - *) Re-introduced the mod_autoindex IndexOptions flag TrackModified - from Apache 1.3.15. This is needed for two reasons, first, given - multiple machines within a server farm, ETags and Last-Modified - stamps won't correspond from machine to machine, and second, many - Unixes don't capture changes to the date or time stamp of existing - files, since these don't modify the dirent itself. [William Rowe] - - *) Re-introduced the mod_autoindex IndexOptions flag FoldersFirst - and DirectoryWidth options from Apache 1.3.10. - [William Rowe, Ken Coar] - - *) Eliminated FancyIndexing directive, deprecated early in Apache - 1.3 by the IndexOptions FancyIndexing syntax. [William Rowe] - - *) mod_autoindex now excludes any file names that would result in - an error, other than a success or redirect. Also optimized - the parent directory, always included except in the URI '/'. - [William Rowe] - - *) Refactored mod_negotiation and mod_mime to help mod_dir accept - negotiated index pages, and prevent the server from defaulting - to an autoindex of the directory. mod_negotiation will now die - with a 500 Internal Error if it could match some filenames - (e.g. for mod_dir) but none can be served. mod_negotation now - refuses to serve any file with an extention that mod_mime doesn't - recognize, and wasn't part of the request. [William Rowe] - - *) Eliminate mod_cgi's handling of .exe files without the .exe file - extension. This is already handled by multiviews, if the admin - wishes to AddHandler .exe or define a content type handler and - associate .exe files with that content type. Multiviews must be - enabled to allow these to be served. [William Rowe] - - *) Speed up the server's response to a spike in incoming workload - or restarts by assigning empty scoreboard slots to new processes - when they are available. [Greg Ames] - - *) Add a handler to mod_includes.c. This handler is designed to - implement the XbitHack directive. This can't be done with a - fixup, because we need to check the content-type, which is - only available in the handler phase. [Ryan Bloom] - - *) Make the includes filter check return codes from filters lower in - the filter chain. If a lower level filter returns an error, then - the request needs to stop immediately. This allows mod_include to - stop parsing data once a lower filter recognizes an error. - [Ryan Bloom] - - *) Add the ability to extend the methods that Apache understands - and have those methods able in the httpd.conf. It uses - the same bit mask/shifted offset as the original HTTP methods - such as M_GET or M_POST, but expands the total bits from an int to - an ap_int64_t to handle more bits for new request methods than - an int provides. [Cody Sherr ] - - *) Fix broken mod_mime behavior in merging its arguments. Possible - cause of unexplicable crashes introduced in 2.0.20. [William Rowe] - - *) Solve many mod_ssl porting issues (too many to detail) with - help from the whole team, but most notably [Ralf S. Engelschall, - Madhusudan Mathihalli , - Doug MacEachern, William Rowe, Cliff Woolley] - - *) More stall fixes for the threaded & worker mpm's. - Make mod_status output more accurate. Don't - count workers in processes which aren't actively - serving requests. [Greg Ames] - - *) Win32: Get SSI exec cgi tag working. [Bill Stoddard] - - *) Add a single listener/multiple worker MPM. This MPM is - definately not fully correct, but it allows us to solve many - of the problems that exist in the threaded MPM. This is a - modified version of the threaded MPM. [Ryan Bloom] - - *) Improve content generation throughout Apache, providing closer - compliance with HTML 3.2, HTML 4.01 Transitional and XHTML 1.0 - Transitional specifications. [William Rowe] - -Changes with Apache 2.0.22 - - *) Fix a problem where the threaded MPM stalls after restarts or - segfaults. Also prevent multiple active processes from using - the same scoreboard slot. [Greg Ames] - - *) Apache/Win32 now fills in the service description with Apache's - server version string, including loaded and advertised modules. - [William Rowe] - - *) Improved support for the Win32 build, to recover gracefully from - missing apr or apr-util directories or the awk interpreter, - create the proper cgi-bin examples, including a test-cgi.bat, and - fix the perl shebang line for printenv.pl, when installing from - the build environment. [William Rowe] - - *) Fix a segfault in threaded.c caused by passing uninitialized - apr_thread_t * to apr_thread_join(). [Jeff Trawick] - - *) Use new APR number conversion functions to reduce CPU consumption - when setting the content length, and in mod_log_config. - [Brian Pane] - - *) Fix problem reported by Taketo Kabe - where HEAD response headers were being repeated twice for - files greater than 32K bytes (4*AP_MIN_BYTES_TO_WRITE). This - problem in the http_header filter was exposed by the recent rewrite - of the content_length filter. [Taketo Kabe, Bill Stoddard] - - *) Fix seg faults in mod_status with ExtendedStatus enabled, after - restarts. A garbage pointer to a vhost's server_rec from the - previous generation was being left around under certain - conditions. [Greg Ames] - - *) Fix a cosmetic problem with mod_include. Non-existant SSI vars - used to appear as '(none', without the closing paren. - [Günter Knauf ] - - *) Improve the exports generating awk script. In the past, we had - work around problems in the awk script by avoiding some #if and - #ifdefs. This has bitten us many times in generating the exports.c - file. This improvement allows corrects the header file parsing. - [Sander Striker ] - -Changes with Apache 2.0.21 - - *) Resolve the Win32 htpasswd bug, where a file that existed would be - overwritten, regardless of the -c flag. - [William Rowe, Mladen Turk ] - - *) Introduce connection sub-pools into ab. Truncating the lifetime - of these allocations means that ab no longer perpetually grows - its working set, running out of memory on large request attempts. - [William Rowe] - - *) Make scoreboard creation a hook. This allows management - modules to have access to the scoreboard at the time that it is - created, and at every restart request. - [Cody Sherr ] - - *) Changed AP_MPMQ_MAX_DAEMONS to refer to MaxClients and - added an AP_MPMQ_MAX_DAEMON_USED to refer to the highest - daemon index actually used in the scoreboard. I also - updated the pertinent calls. [Paul J. Reder] - - *) Win32: Prevent listening sockets from being inherited by - the Apache child process, CGI scripts, rotatelog process - etc. If the Apache child process segfaults, any processes - that the child started are not reaped. Prior to this fix, - these processes inherited the listening sockets which sometimes - prevented the restarted Apache child process from accepting - connections (ie, the server would hang). - [Bill Stoddard] - - *) Provide vhost and request strings when ExtendedStatus is on. - [Greg Ames] - - *) Fix some issues with the pod and prefork: check the pod *after* - processing a connection so that a server processing a time- - consuming request bails out as soon as practical; when the - parent process wakes up a server process via connect(), use an - APR timeout on the connect() so that we don't hang for a long - time if there aren't server processes around to do accept(). - [Jeff Trawick, Greg Ames] - - *) Performance improvement to mod_mime.c. find_ct() in mod_mime, - spends a lot of time in apr_table_get calls. Using the default - httpd.conf, the tables for languages and charsets are somewhat - large, so the time spent scanning them on each request is - significant. Replacing the tables with hash tables provides - a nice speedup. [Brian Pane ] - - *) Add two functions to allow modules to access random parts of the - scoreboard. This allows modules compiled for one MPM to access the - scoreboard, even if it the server was compiled for another MPM. - [Harrie Hazewinkel ] - -Changes with Apache 2.0.20 - - *) Fix problem in content-length filter where the filter would - buffer all the output from a CGI before sending any bytes - down the filter stack to the network. This problem would cause - significant memory consumption if the CGIs generated - lots of bytes. [Bill Stoddard] - - *) Get non-blocking CGI pipe reads working with the bucket brigades. - [Bill Stoddard] - - *) Fix seg fault on Windows when serving files cached with mod_file_cache. - [Bill Stoddard] - - *) Fix a bug in the threaded MPM that would cause it to kill off all - workers immediately after starting if the number of workers started - was above a certain threshold. [Ryan Bloom, Bill Stoddard] - -Changes with Apache 2.0.19 - - *) Fix problem with threaded MPM. The problem was that if each child - process was busy serving a single long-lived request and the server - was sent a graceful restart signal, the server would stop serving - requests. This would happen because each child process would wait to - die until the last thread was done, and the parent wouldn't spawn any - new children until a process died. Now, the parent looks at the fact - that the children are dying gracefully, and starts new children. - Those new children only start enough threads to compliment the number - of threads in the other child process that shares the same spot in - the scoreboard. In this way, we make sure to never go over - MaxClients. [Ryan Bloom] - - *) modified mod_negotiation and mod_autoindex to speed up by almost a - factor of two on apr_dir_read()-enhanced platforms, such as Win32 - and OS2, by calling ap_sub_request_lookup_dirent() with the results - already provided by apr_dir_read(). [William Rowe] - - *) mod_file_cache is now more robust to filtering and serves requests - slightly more efficiently. [Cliff Woolley] - - *) Fix problem handling FLUSH bucket in the chunked encoding filter. - Module was calling ap_rwrite() followed by ap_rflush() but the - served content was not being displayed in the browser. Inspection - of the output stream revealed that the first data chunk was - missing the trailing CRLF required by the RFC. [Bill Stoddard] - - *) apxs no longer generates ap_send_http_header() in the example handler - - *) Fix an ab problem which could cause a divide-by-zero exception - with certain invocations (e.g., ab -k -c 6 -n 100 localhost/). - [Ian Holsman ] - - *) Solve case-insensitive platforms' confusion about negotiated - filenames, allowing files of differnt case to match in choosing - the document to serve. [William Rowe] - - *) Fix brokenness when ThreadsPerChild is higher than the built-in - limit. We left ap_threads_per_child at the higher value which - led to segfaults when doing certain scoreboard operations. - [Jeff Trawick] - - *) Fix seg faults and/or missing output from mod_include. The - default_handler was using the subrequest pool for files and - MMAPs, even though the associated APR structures typically - live longer than the subrequest. [Greg Ames] - - *) Extend mod_setenvif to support specifying regular expressions - on the SetEnvIf (and SetEnvIfNoCase) directive attribute field. - Example: SetEnvIf ^TS* [a-z].* HAVE_TS - will cause HAVE_TS to be set if any of the request headers begins - with "TS" and has a value that begins with any character in the - set [a-z]. [Bill Stoddard] - - *) httpd children now re-bind themselves to a random CPU on - multiprocessor systems on AIX via bindprocessor() in 2.0. - [Victor J. Orlikowski] - - *) Fix htdigest. It would go into a loop in getline when adding - a second user. [Bill Stoddard] - - *) Win32 platforms now fully support mod_userdir options. [Will Rowe] - - *) Automatically generate httpd.exp for AIX. - DSOs now work again on AIX in 2.0 - [Victor J. Orlikowski] - - *) Add a new request hook, error_log. This phase allows modules - to act on the error log string _after_ it has been written - to the error log. The goal for this hook is to allow monitoring - modules to send the error string to the monitoring agent. - [Ryan Bloom] - - *) Modify mod_echo to make it use filters for input and output. - [Ryan Morgan ] - - *) Extend mod_headers to support conditional driven Header - add, append and set. Use SetEnvIf to set an envar and conditionally - add/append/set headers based on this envar thusly: - - SetEnvIf TSMyHeader value HAVE_TSMyHeader - Header add MyHeader "%t %D" env=HAVE_TSMyHeader - - If the request contains header "TSMyHeader: value" then header - MyHeader: "t=xxxxxxxxxx D=yyyy" will be sent on the response. - [Bill Stoddard] - - *) Extend mod_headers to support using format specifiers on Header - add, append and set header values. Two format specifiers are supported: - - %t - reports, in UTC microseconds since the epoch, when the - request was received. - - %D - reports the time, in microseconds, between when the request was - received and the response sent. - - Examples: - Header add MyHeader "This request served in %D microseconds. %t" - - results in a header being added to the response that looks like this: - - MyHeader: This request served in D=5438 microseconds. t=991424704447256 - - [Bill Stoddard] - - *) Fix reset_filter(). We need to be careful how we remove filters. - If we set r->output_filters to NULL, we also have to reset the - connection's filters. [John Sterling] - - *) Optimise reset_filter() in http_protocol.c. [Greg Stein] - - *) Add a check to ap_die() to make sure the filter stack is sane and - contains the correct basic filters when an error occurs. This fixes - a problem where headers are not being sent on error. [John Sterling] - - *) New Header directive 'echo' option. "Header echo regex" will - cause any headers received on the request that match regex to be - echoed to (included in) the response headers. - [Bill Stoddard] - - *) include/ap_compat.h tested and set APR_COMPAT_H instead of AP_COMPAT_H. - This prevented the inclusion of apr_compat.h. PR #7773 - [Oleg Broytmann ] - - *) Moved util_uri to the apr-util library. This required a bunch of - apr_name changes for the uri utility functions. [Justin Erenkrantz] - - *) Move the addition of default AP_HTTP_HTTP_HEADER filters to the - insert_filter phase so that other filters are not bypassed by default. - [Graham Leggett] - - *) Reimplement mod_headers as an output filter. mod_headers can now - add custom headers to inbound requests using the RequestHeader directive - and to responses using the same old Header directive. [Graham Leggett] - -Changes with Apache 2.0.18 - - *) Fix command-line processing so that if a bad argument is specified - Apache will exit. [Jeff Trawick] - - *) Change the make targets and rules to be consistent in all of the - Apache-owned source trees. [Roy Fielding] - - *) Fix processing of the TRACE method. Previously we passed bogus - parms to form_header_field() and it overlaid some vhost structures, - resulting in a segfault in check_hostalias(). - [Greg Ames, Jeff Trawick] - - *) Win32: Add support for reliable piped logs. If the logging process - goes down, Apache will automatically restart it. This function has - been part of Apache on Unix/Linux/BSD since the early v1.3 releases. - [Bill Stoddard] - - *) Do not start piped log processes during the config file - preflight. This change also circumvents a problem on - Windows where the rotatelog processes created during preflight - was not getting cleaned up properly. - [Bill Stoddard] - - *) add "Request Phase Participation" info to mod_info - [Doug MacEachern] - - *) Make first phase changes to the scoreboard data structures in - preparation for the rewriting of the scoreboard per my posted - design notes. [Paul J. Reder] - - *) Fix httpd's definition of LTFLAGS to be consistent with that of apr - and apr-util, allow it to be overridden by the configure command-line - (default="--silent") and introduce LT_LDFLAGS to replace what we were - formerly abusing as LTFLAGS. [Roy Fielding] - - *) Clean up the reporting of incorrect closing container tags. - [Barrie Slaymaker ] - - *) Simplify the configure process by moving all libtool stuff to APR - and moving hints.m4 inline. [Roy Fielding] - - *) Add the AP_DECLARE()/AP_CORE_DECLARE macros on the return types - of functions used by mod_proxy for export in the DLL - [Ian Holsman ] - - *) Prevent a hang when a cgi handled by mod_cgid tries to read a - request body from its stdin but no reqest body is being written to - the cgi. [Jeff Trawick] - - *) mod_log_config: %c connection status incorrectly logged - as "-" (non-keepalive) when MaxKeepAliveRequests is set to 0. - [Bill Stoddard] - - *) Get mod_cern_meta working under Windows - [Bill Stoddard] - - *) Create Files, and thus MMAPs, out of the request pool, not the - connection pool. This solves a small resource leak that had us - not closing files until a connection was closed. In order to do - this, at the end of the core_output_filter, we loop through the - brigade and convert any data we have into a single HEAP bucket - that we know will survive clearing the request_rec. - [Ryan Bloom, Justin Erenkrantz , - Cliff Woolley] - - *) Completely revamp configure so that it preserves the standard make - variables CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS and LIBS by moving - the configure additions to EXTRA_* variables. Also, allow the user - to specify NOTEST_* values for all of the above, which eliminates the - need for THREAD_CPPFLAGS, THREAD_CFLAGS, and OPTIM. Fix the setting - of INCLUDES and EXTRA_INCLUDES. Check flags as they are added to - avoid pointless duplications. Fix the order in which flags are given - on the compile and link lines. Remove obsolete macros APR_DOEXTRA, - AC_ADD_LIBRARY, AC_CHECK_DEFINE, APACHE_PASSTHRU, and APACHE_ONCE. - Added APR_SAVE_THE_ENVIRONMENT and APR_RESTORE_THE_ENVIRONMENT macros. - Renamed AC_TYPE_RLIM_T macro to APACHE_TYPE_RLIM_T. [Roy Fielding] - - *) Get mod_tls to compile/work better on Windows. PR #7612 - [Bernhard Schrenk ] - - *) Fix shutdown/restart hangs in the threaded MPM. - [Jeff Trawick, Greg Ames, Ryan Bloom] - - *) Removed the keptalive boolean from conn_rec because it is now only - used by a single routine and can be replaced by a local variable. - [Greg Stein, Ryan Bloom, Roy Fielding] - - *) Patch prefork to put enough of the signal processing back in so that - signals are all handled properly now. The previous patch fixed the - deadlock race condition, but broke the user directed signal handling. - This fixes it to work the way it did before my previous prefork patch - (primarily, SIGTERM is now working). - - *) Change how input filters decide how much data is returned to the - higher filter. We used to use a field in the conn_rec, with this - change, we use an argument to ap_get_brigade to determine how much - data is retrieved. [Ryan Bloom] - - *) Fix seg fault at start-up introduced by Ryan's change to enable - modules to specify their own logging tags. mod_log_config - registers an optional function, ap_register_log_handler(). - ap_register_log_handler() was being called by http_core before - the directive hash table was created. This patch creates the - directive hash table before ap_register_log_handler() is - registered as an optional function. - [jean-frederic clere ] - - *) Add ap_set_int_slot() function - [John K. Sterling ] - - *) Under certain circumstances, Apache did not supply the - right response headers when requiring authentication. - [Gertjan van Wingerde ] PR#7114 - (This is a port of the change that went into Apache 1.3.19.) - - *) Allow modules to specify their own logging tags. This basically - allows a module to tell mod_log_config that when %x is encountered - a specific function should be called. Currently, x can be any single - character. It may be more useful to make this a string at some point. - [Ryan Bloom] - -Changes with Apache 2.0.17 - - *) If a higher-level filter handles the byterange aspects of a - request, then the byterange filter should not try to redo the - work. The most common case of this happening, is a byterange - request going through the proxy, and the origin server handles - the byterange request. The proxy should ignore it. - [Graham Leggett ] - - *) Changed the threaded mpm to have child_main join to each of the - worker threads to make sure the kids are all gone before child_main - exits after a signal (cleanup from perform_idle_server_maintenance). - This is an extension of Ryans recent commit to make the child_main - the signal thread. - - *) Add more options to the ap_mpm_query function. This also allows MPMs to - report if their threads are dynamic or static. Finally, this also - implements a new API, ap_show_mpm, which returns the MPM that was - required into the core. [Harrie Hazewinkel ] - - *) Do not install the binaries from the support directory twice. - [jun-ichiro hagino ] - - *) The ap_f* functions should flush data to the filter that is passed - in, not the filter after the one passed in. - [Ryan Morgan ] - - *) Make ab work again by changing its native types to apr types and formats. - [Justin Erenkrantz ] - - *) Move the byterange filter and all of the supporting functions back - to the HTTP module. The byterange filter turned out to be very - HTTP specific, and it belongs in the HTTP module. [Greg Stein] - - *) Make clean, distclean, and extraclean consistently according to the - Gnu makefile guidelines. [Justin Erenkrantz ] - - *) Fix errors in the renaming of the apr_threadattr_detach_xxx functions. - This may have been causing problems stopping processes in the threaded - mpm's. [Greg Ames] - - *) Fix content-length in mod_negotiation to a long int representation. - [William Rowe] - - *) Remove BindAddress from the default config file. - [] - - *) Allow module authors to add a module to their Apache build using - --with-module, without re-running buildconf. The syntax is: - --with-module=module_type:/path/to/module.c - The configure script will copy the module.c file to - modules/module_type, and it will be added to the relevant Makefiles. - currently, this only works for static modules. [Ryan Bloom] - - *) Changes required to make prefork clean up idle children properly. - There was a window during which a starting worker deadlocks when - an idle cleanup arrives before it completes init. Apache then keeps - trying to cleanup the same deadlocked worker forever (until higher - pids come along, but it still will never reduce below the deadlocked - pid). Thus the number of children would not reduce to the correct - idle level. [Paul J. Reder] - -Changes with Apache 2.0.16 - - *) Change the default installation directory to /usr/local/apache2, - as now defined by the "Apache" layout in config.layout. [Marc Slemko] - - *) OS/2: Added support for building loadable modules as OS/2 DLLs. - [Brian Havard] - - *) Get MaxRequestsPerChild working with the Windows MPM. - [Bill Stoddard] - - *) Make generic hooks to work, with mod_generic_hook_import/export - experimental modules. [Ben Laurie, Will Rowe] - - *) Fix segfaults for configuration file syntax errors such as - "" followed by "" followed by "". [Jeff Trawick] - - *) Cleanup the --enable-layout option of configure. This makes - us use a consistent location for the config.layout file, and it - makes configure more portable. - [jun-ichiro hagino ] - - *) Changes to 'ab'; fixed int overrun's, added statistics, output in - csv/gnuplot format, rudimentary ssl support and various other tweaks - to make results more true to what is measured. The upshot of this it - turns out that 'ab' has often underreported the true performance of - apache. Often by a order of magnitude :-) See talk/paper of Sander - Temme at April ApacheCon 2001 for details. - [Dirk-Willem van Gulik] - - *) Clean up mod_cgid's temporary request pool. Besides fixing a - storage leak this ensures that some unnecessary pipes are closed. - [Jeff Trawick] - - *) Performance: Add quick_handler hook. This hook is called at the - very beginning of the request processing before location_walk, - translate_name, etc. This hook is useful for URI keyed content - caches like Mike Abbott's Quick Shortcut Cache. - [Bill Stoddard] - - *) top_module global variable renamed to ap_top_module [Perl] - - *) Move ap_set_last_modified to the core. This is a potentially - controversial change, because this is kind of HTTP specific. However - many protocols should be able to take advantage of this kind of - information. I expect that headers will need one more layer of - indirection for multi-protocol work, but this is a small step in - the right direction. [Ryan Bloom] - - *) Enable mod_status by default. This matches what Apache 1.3 does. - [Ed Korthof] - - *) Add a ScriptSock directive to the default config file. This is - only enabled when mod_cgid is used. - [Taketo Kabe ] - -Changes with Apache 2.0.15 - - *) Untangled the buildconf script and eliminated the need for build's - aclocal.m4, generated_lists, build.mk, build2.mk, and a host of other - libtool muck that is now under srclib/apr/build. [Roy Fielding] - - *) Win32: Don't accept more connections than we have worker threads - to handle. - [Bill Stoddard] - - *) Fix bug in the Unix threaded.c MPM that allowed child processes - to fork() new child processes. - [Bill Stoddard] - - *) SECURITY: Fix a major security problem with double-reverse lookup - checking. Previously, a client connecting over IPv4 would not be - matched properly when the server had an IPv6 listening socket. - PR #7407 [Taketo Kabe ] - - *) Change the way the beos MPM handles polling to allow it to stop and - restart. Problem was the sockets being polled were being reset by - the select call, so once it had accepted a connection it was no - longer listening on the UDP socket we use for shutdown instructions. - APR needs to be altered, patch on it's way. [David Reid] - - *) Empty out the brigade shared by ap_getline()/ap_get_client_block() - on error exit from ap_getline(). Some other code got upset because - the wrong data was in the brigade. [Greg Ames, Jeff Trawick] - - *) Handle ap_discard_request_body() being called more than once. - [Greg Ames, Jeff Trawick] - - *) Get rid of an inadvertent close of file descriptor 2 in - mod_mime_magic. [Greg Ames, Jeff Trawick] - - *) Add a hook, create_request. This hook allows modules to modify - a request while it is being created. This hook is called for all - request_rec's, main request, sub request, and internal redirect. - When this hook is called, the r->main, r->prev, r->next - pointers have been set, so modules can determine what kind of - request this is. [Ryan Bloom] - - *) Cleanup the build process a bit more. The Apache configure - script no longer creates its own helper scripts, it just - uses APR's. - [jean-frederic clere ] - - *) Stop the forced downgrade of the connection to HTTP/1.0 for - proxy requests. [Graham Leggett] - - *) Avoid using sscanf to determine the HTTP protocol number in - the common case because sscanf is a performance hog. From - Mike Abbot's Accelerating Apache patch number 6. - [Mike Abbot , Bill Stoddard] - - *) SECURITY: Fix a security exposure in mod_access. Previously when - IPv6 listening sockets were used, allow/deny-from-IPv4-address rules - were not evaluated properly (PR #7407). Also, add the ability to - specify IPv6 address strings with optional prefix length on Allow - and Deny. [Jeff Trawick] - - *) Enhance rotatelogs so that a UTC offset can be specified, and - the logfile name can be formatted using strftime(3). (Brought - forward from 1.3.) [Ken Coar] - - *) Reimplement the Windows MPM (mpm_winnt.c) to eliminate calling - DuplicateHandle on an IOCompletionPort (a practice which - MS "discourages"). The new model does not rely on associating - the completion port with the listening sockets, thus the - completion port can be completely managed within the child - process. A dedicated thread accepts connections off the network, - then calls PostQueuedCompletionStatus() to wake up worker - threads blocked on the completion port. - [Bill Stoddard] - - *) Bring forward the --suexec-umask option which allows the - builder to preset the umask for suexec processes. [Ken Coar] - - *) Add a -V flag to suexec, which causes it to display the - compile-time settings with which it was built. (Only - usable by root or the AP_HTTPD_USER username.) [Ken Coar] - - *) Mod_include should always unset the content-length if the file is - going to be passed through send_parsed_content. There is no to - determine if the content will change before actually scanning the - entire content. It is far safer to just remove the C-L as long - as we are scanning it. [Ryan Bloom] - - *) Make sure Apache sends WWW-Authenticate during a reverse proxy - request and not Proxy-Authenticate. - [Graham Leggett ] - -Changes with Apache 2.0.14 - - *) Fix content-length computation. We ONLY compute a content-length if - We are not in a 1.1 request and we cannot chunk, and this is a keepalive - or we already have all the data. [Ryan Bloom] - - *) Report unbounded containers in the config file. Previously, a typo - in the directive could result in the rest of the config - file being silently ignored, with undesired defaults used. - [Jeff Trawick] - - *) Make the old_write filter use the ap_f* functions for the buffering. - [Ryan Bloom] - - *) Move more code from the http module into the core server. This - is core code, basically the default handler, the default input - and output filters, and all of the core configuration directives. - All of this code is required in order for the server to work, with or - without HTTP. The server is closer to working without the HTTP - module, although there is still more to do. [Ryan Bloom] - - *) Fix a number of SGI compile warnings throughout the server. Fix some - bad parameters to apr_bucket_read(). Fix a bad statement in - ap_method_in_list(). For the mod_rewrite cache use apr_time_t - consistently; we were mixing apr_time_t and time_t in invalid ways - before. In load_file(), call apr_dso_error() instead of - apr_strerror() so that we get a more specific string on some platforms. - PR #6980 [Jeff Trawick] - - *) Allow modules to query the MPM about it's execution profile. This - query API can and should be extended in the future, but for now, - max_daemons, and threading or forking is a very good start. - [Jon Travis ] - - *) Modify mod_include to send blocks of data no larger than 9k. - Without this, mod_include will wait until the whole file is parsed, - or the first tag is found to send any data to the client. - [Paul J. Reder ] - - *) Fix mod_info, so that and directives are - not displayed twice when displaying the current configuration. - [Ryan Morgan ] - - *) Add config directives to override DEFAULT_ERROR_MSG and - DEFAULT_TIME_FORMAT. This was sent in as PR 6193. - [Dan Rench ] - - *) Get mod_info building and loading on Win32. [William Rowe] - - *) Begin to move protocol independant functions out of mod_http. The goal - is to have only functions that are HTTP specific in the http directory. - [Ryan Bloom] - -Changes with Apache 2.0.13 - - *) Don't assume that there will always be multiple calls to the byterange - filter. It is possible that we will need to do byteranges with only - one call to the filter. [Ryan Morgan ] - - *) Move the error_bucket definition from the http module to the - core server. Every protocol will need this ability, not just - HTTP. [Ryan Bloom] - -Changes with Apache 2.0.12 - - *) Modify mod_file_cache to save pre-formatted strings for - content-length and last-modified headers for performance. - [Mike Abbot ] - - *) Namespace protect IOBUFSIZ since it is exposed in the API. - [Jon Travis ] - - *) Use "Basic" authentication instead of "basic" in ab, as the spec - says we should. [Andre Breiler ] - - *) Fix a seg fault in mod_userdir.c. We used to use the pw structure - without ever filling it out. This fixes PR 7271. - [Taketo Kabe and - Cliff Woolley ] - - *) Add a couple of GCC attribute tags to printf style functions. - [Jon Travis ] - - *) Add the correct language tag for interoperation with the Taiwanese - versions of MSIE and Netscape. [Clive Lin ] PR#7142 - - *) Migrate the perchild MPM to use the new apr signal child, and - APR thread functions. [Ryan Bloom] - - *) Close one copy of the CGI's stdout before creating the new process. - The CGI will still have stdout, because we have already dup'ed it. - This keeps Apache from waiting forever to send the results of a CGI - process that has forked a long-lived child process. - [Taketo Kabe ] - - *) Remove the rest of the pthreads functions from the threaded MPM. - This requires the APR support for a signal thread that was just - added. [Ryan Bloom] - - *) Make mod_dir use a fixup for sending a redirect to the browser. - Before this, we were using a handler, which doesn't make much - sense, because the handler wasn't generating any data, it would - either return a redirect error code, or DECLINED. This fits the - current hooks better. [Ryan Morgan ] - - *) Make the threaded MPM use APR threads instead of pthreads. - [Ryan Bloom] - - *) Get mod_tls to the point where it actually appears to work in all cases. - [Ben Laurie] - - *) implement --enable-modules and --enable-mods-shared for "all" and - "most". [Greg Stein] - - *) Move the threaded MPM to use APR locks instead of pthread locks. - [Ryan Bloom] - - *) Rename mpmt_pthread to threaded. This is more in line with the - fact that mpmt_pthread shouldn't be using pthreads directly, and - it is a smaller name that doesn't tie into anything. - [Ryan Bloom] - - *) Rename the module structures so that the exported symbol matches - the file name, and it is easier to automate the installation - process (generating LoadModule directives from the module filenames). - [Martin Kraemer] - - *) Remove the coalesce filter. With the ap_f* functions, this filter - is no longer needed. [Ryan Bloom] - -Changes with Apache 2.0.11 - - *) Remove the dexter MPM. Perchild is the same basic idea, but it has the - added feature of allowing a uid/gid per child process. If no - uid/gid is specified, then Perchild behaves exactly like dexter. - [Ryan Bloom] - - *) Get perchild building again. [Ryan Bloom] - - *) Don't disable threads just because we are using the prefork MPM. - If somebody wants to compile without threads, they must now add - --disable-threads to the configure command line. [Ryan Bloom] - - *) Begin to move the calls to update_child_status into common code, so - that each individual MPM does not need to update the scoreboard itself. - [Ryan Bloom] - - *) Allow mod_tls to compile under Unix boxes where openssl has been - installed to the system include files. - [Gomez Henri ] - - *) Cleanup the mod_tls configure process. This should remove any need - to hand-edit any files. We require OpenSSL 0.9.6 or later, but - configure doesn't check that yet. [Ryan Bloom] - - *) Add a very early prototype of SSL support (in mod_tls.c). It is - vital that you read modules/tls/README before attempting to build - it. [Ben Laurie] - - *) Fix a potential seg fault on all platforms. David Reid fixed this - on BEOS, but the problem could happen anywhere, so we don't want - to #ifdef it. [Cliff Woolley ] - - *) Add new LogFormat directive, %D, to log time it takes to serve a - request in microseconds. [Bill Stoddard] - - *) Change AddInputFilter and AddOutputFilter to SetInputFilter and - SetOutputFilter. This corresponds nicely with the other Set - directives, which operate on containers while the Add* directives - tend to work directly on extensions. [Ryan Bloom] - - *) Cleanup the header handling a bit. This uses the apr_brigade_* - functions for the buffering so that we don't need to compute - the length of the headers before we actually create the header - buffer. [Ryan Bloom] - - *) Allow filters to buffer data using the ap_f* functions. These have - become macros that resolve directly to apr_brigade_*. - [Ryan Bloom] - - *) Get the Unix MPM's to do a graceful restart again. If we are going - to register a cleanup with ap_cleanup_scoreboard, then we have to - kill the cleanup with the same function, and that function can't be - static. [Ryan Bloom] - - *) Install all required header files. Without these, it was not - possible to compile some modules outside of the server. - [Ryan Bloom] - - *) Fix the AliasMatch directive in Apache 2.0. When we brought a patch - forward from 1.3 to 2.0, we missed a single line, which broke regex - aliases. [Ryan Bloom] - - *) We have a poor abstraction in the protocol. This is a temporary - hack to fix the bug, but it will need to be fixed for real. If - we find an error while sending out a custom error response, we back - up to the first non-OK request and send the data. Then, when we send - the EOS from finalize_request_protocol, we go to the last request, - to ensure that we aren't sending an EOS to a request that has already - received one. Because the data is sent on a different request than - the EOS, the error text never gets sent down the filter stack. This - fixes the problem by finding the last request, and sending the data - with that request. [Ryan Bloom] - - *) Make the server status page show the correct restart time, and - thus the proper uptime. [Ryan Bloom] - - *) Move the CGI creation logic from mod_include to mod_cgi(d). This - should reduce the amount of duplicate code that is required to - create CGI processes. - [Paul J. Reder ] - - *) ap_new_connection() closes the socket and returns NULL if a socket - call fails. Usually this is due to a connection which has been - reset. [Jeff Trawick] - - *) Move the Apache version information out of httpd.h and into release.h. - This is in preparation for the first tag with the new tag and release - system. [Ryan Bloom] - - *) Begin restructuring scoreboard code to enable adding back in - the ability to use IPC other than shared memory. - Get mod_status working on Windows again. [Bill Stoddard] - - *) Make mod_status work with 2.0. This will work for prefork, - mpmt_pthread, and dexter. [Ryan Bloom] - - *) Correct a typo in httpd.conf. - [Kunihiro Tanaka ] PR#7154 - - *) Really fix mod_rewrite map lookups this time. [Tony Finch] - - *) Get the correct IP address if ServerName isn't set and we can't - find a fully-qualified domain name at startup. - PR#7170 [Danek Duvall ] - - *) Make mod_cgid work with SuExec. [Ryan Bloom] - - *) Adopt apr user/group name features for mod_rewrite. Eliminates some - 'extra' stat's for user/group since they should never occur, and now - resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS - volumes. [William Rowe] - - *) Adopt apr features to simplify mod_includes. This changes the - behavior of the USER_NAME variable, unknown uid's are now reported - as USER_NAME="" rather than the old user#000 result. - WinNT now resolves USER_NAME on NTFS volumes. [William Rowe] - - *) Adopt apr features for simplifing mod_userdir, and accept the new - Win32/OS2 exceptions without hiccuping. [William Rowe] - - *) Replace configure --with-optim option by using and saving the - environment variable OPTIM instead. This is needed because configure - options do not support multiple flags separated by spaces. - [Roy Fielding] - - *) Fix some byterange handling. If we get a byte range that looks like - "-999999" where that is past the end of the file, we should return - a PARTIAL CONTENT status code, and return the whole file as one big - byterange. This matches the 1.3 handling now. [Ryan Bloom] - - *) Make the error bucket a real meta-data bucket. This means that the - bucket length is 0, and a read returns NULL data. If one of these - buckets is passed down after the headers are sent, this data will - just be ignored. [Greg Stein] - - *) The prefork MPM wasn't killing child processes correctly if a restart - signal was received while the process was serving a request. The child - process would become the equivalent of a second parent process. If - we break out of the accept loop, then we need to do die after cleaning - up after ourselves. [Ryan Bloom] - - *) Change the Prefork MPM to use SIGWINCH instead of SIGUSR1 for graceful - restarts. [Ryan Bloom] - - *) Modify the apr_stat/lstat/getfileinfo calls within apache to use - the most optimal APR_FINFO_wanted bits. This spares Win32 from - performing very expensive owner, group and permission lookups - and allows the server to function until these apr_finfo_t fields - are implemented under Win32. [William Rowe] - - *) Support for typedsafe optional functions - that is functions exported by - optional modules, which, therefore, may or may not be present, depending - on configuration. See the experimental modules mod_optional_fn_{ex,im}port - for sample code. [Ben Laurie] - - *) filters can now report an HTTP error to the server. This is done - by sending a brigade where the first bucket is an error_bucket. - This bucket is a simple bucket that stores an HTTP error and - a string. Currently the string is not used, but it may be needed - to output an error log. The http_header_filter will find this - bucket, and output the error text, and then return - AP_FILTER_ERROR, which informs the server that the error web page - has already been sent. [Ryan Bloom] - - *) If we get an error, then we should remove all filters except for - those critical to serving a web page. This fixes a bug, where - error pages were going through the byterange filter, even though - that made no sense. [Ryan Bloom] - - *) Relax the syntax checking of Host: headers in order to support - iDNS. PR#6635 [Tony Finch] - - *) Cleanup the byterange filter to use the apr_brigade_partition - and apr_bucket_copy functions. This removes a lot of very messy - code, and hopefully makes this filter more stable. - [Ryan Bloom] - - *) Remove AddModule and ClearModuleList directives. Both of these - directives were used to ensure that modules could be enabled - in the correct order. That requirement is now gone, because - we use hooks to ensure that modules are in the correct order. - [Ryan Bloom] - - *) When SuExec is specified, we need to add it to the list of - targets to be built. If we don't, then any changes to the - configuration won't affect SuExec, unless 'make suexec' is - specifically run. [Ryan Bloom] - - *) Cleaned out open_file from mod_file_cache, as apr now accepts - the APR_XTHREAD argument to open a file for consumption by - parallel threads on win32. [William Rowe] - - *) Correct a bug in determining when we follow symlinks. The code - expected a stat -1 result, not an apr_status_t positive error. - Also check if the APR_FINFO_USER fields are valid before we - follow the link. [William Rowe] - - *) Move initgroupgs, ap_uname2id and ap_gname2id from util.c to - mpm_common.c. These functions are only valid on some platforms, - so they should not be in the main-line code. [Ryan Bloom] - - *) Remove ap_chdir_file(). This function is not thread-safe, - and nobody is currently using it. [Ryan Bloom] - - *) Do not try to run make depend if there are no .c files in the - current directory, doing so makes `make depend` fail. - [Ryan Bloom] - - *) Update highperformance.conf to work with either prefork or - pthreads mpms. [Greg Ames] - - *) Stop checking to see if this is a pipelined request if we know - for a fact that it isn't. Basically, if r->connection->keepalive == 0. - This keeps us from making an extra read call when serving a 1.0 - request. [Ryan Bloom and Greg Stein] - - *) Fix the handling of variable expansion look-ahead in mod_rewrite, - i.e. syntax like %{LA-U:REMOTE_USER}, and also fix the parsing of - more complicated nested RewriteMap lookups. PR#7087 [Tony Finch] - - *) Fix the RFC number mentioned when complaining about a missing - Host: header. PR#7079 [Alexey Toptygin ] - - *) Fix an endless loop in ab which occurred when ab was posting - and the server dropped the connection unexpectedly. - [Jeff Trawick] - - *) Fix a segfault while handling request bodies in ap_http_filter(). - This problem has been seen with mod_dav usage as well as with - requests where the body was just being discarded. [Jeff Trawick] - - *) Some adjustment on the handling and automatic setting (via - hints.m4) of various compilation flags (eg: CFLAGS). Also, - add the capability to specify flags (NOTEST_CFLAGS and - NOTEST_LDFLAGS) which are used to compile Apache, but - not used during the configuration process. Useful for - flags like "-Werror". [Jim Jagielski] - - *) Stop using environment variables to force debug mode or - no detach. We now use the -D command line argument to - specify the correct mode. -DONE_PROCESS and -DNO_DETACH. - [Greg Stein, Ryan Bloom] - - *) Change handlers to use hooks. [Ben Laurie] - - *) Stop returning copies of filenames from both apr_file_t and - apr_dir_t. We pstrdup the filenames that we store in the - actual structures, so we don't need to pstrdup the strings again. - [Ryan Bloom] - - *) mod_cgi: Fix some problems where the wrong error value was being - traced. [Jeff Trawick] - - *) EBCDIC: Fix some missing ASCII conversion on some protocol data. - [Jeff Trawick] - - *) Add generic hooks. [Ben Laurie] - - *) Use a real pool to dup the error log descriptor. [Ryan Bloom] - - *) Fix a segfault caused by mod_ext_filter when the external filter - program does not exist. [Jeff Trawick] - - *) Fix an output truncation error when on an HTTP >= 1.0 request an - object of size between DEFAULT_BUCKET_SIZE and AP_MIN_BYTES_TO_WRITE - was served through mod_charset_lite (or anything else that would - create a transient bucket in this size range). ap_bucket_make_heap() - silently failed (fixed), transient_setaside() discovered it, but - ap_save_brigade() ignored it (fixed). [Jeff Trawick] - - *) Ignore \r\n or \n when using PEEK mode for input filters. The problem - is that some browsers send extra lines at the end of POST requests, and - we don't want to delay sending data back to the user just because the - browser isn't well behaved. [Ryan Bloom] - - *) Get SuEXEC working again. We can't send absolute paths to suExec - because it refuses to execute those programs. SuEXEC also wasn't - always recognizing configuration changes made using the autoconf - setup. [Ryan Bloom] - - *) Allow the buildconf process to find the config.m4 files in the correct - order. Basically, we can now name config.m4 files as config\d\d.m4, - and we will sort them correctly when inserting them into the build - process. [Ryan Bloom] - - *) Get mod_cgid to use apr calls for creating the actual CGI process. - This also allows mod_cgid to use ap_os_create_priviledged_process, - thus allowing for SuExec execution from mod_cgid. Currently, we do - not support everything that standard SuExec supports, but at least - it works minimally now. [Ryan Bloom] - - *) Allow SuExec to be configured from the ./configure command line. - [Ryan Bloom] - - *) Update some of the docs in README and INSTALL to reflect some of - the changes in Apache 2.0 [Cliff Woolley ] - - *) If we get EAGAIN returned from the call to apr_sendfile, then we - need to call sendfile again. This gets us serving large files - such as apache_2.0a9.tar.gz on FreeBSD again. [Ryan Bloom] - - *) Get the support programs building cleanly again. - [Cliff Woolley ] - - *) The Apache/Win32 Apache.exe and dll's now live in bin. The - current directory logic now backs up over bin/ to determine the - server root from the Apache.exe path. - - *) Apache/Win32 now follows the standard conventions of mod_foo.so - loadable modules, dynamic libs are all named libfoo.dll, and the - makefile.win populates the include, lib and libexec directories. - - *) Apache is now IPv6-capable. On systems where APR supports IPv6, - Apache gets IPv6 listening sockets by default. Additionally, the - Listen, NameVirtualHost, and directives support IPv6 - numeric address strings (e.g., "Listen [fe80::1]:8080"). - [Jeff Trawick] - - *) Modify the install directory layout. Modules are now installed in - modules/. Shared libraries should be installed in libraries/, but - we don't have any of those on Unix yet. All install directories - are modifyable at configure time. [Ryan Bloom] - - *) Install all header files in the same directory on Unix. [Ryan Bloom] - - *) Get the functions in server/linked into the server, regardless of - which modules linked into the server. This uses the same hack - for Apache that we use for APR and apr-util to ensure all of the - necessary functions are linked. As a part of thise, the CHARSET_EBCDIC - was renamed to AP_CHARSET_EBCDIC for namespace protection, and to make - the scripts a bit easier. - [Ryan Bloom] - - *) Rework the RFC1413 handling to make it thread-safe, use a timeout - on the query, and remove IPv4 dependencies. [Jeff Trawick] - - *) Get all of the auth modules to the point that they will install and - be loadable into the server. Our new build/install mechanism expects - that all modules will have a common name format. The auth modules - didn't use that format, so we didn't install them properly. - [Ryan Bloom] - - *) API routines ap_pgethostbyname() and ap_pduphostent() are no longer - available. Use apr_getaddrinfo() instead. [Jeff Trawick] - - *) Get "NameVirtualHost *" working in 2.0. [Ryan Bloom] - - *) Return HTTP_RANGE_NOT_SATISFIABLE if the every range requested starts - after the end of the response. [Ryan Bloom] - - *) Get byterange requests working with responses that do not have a - content-length. Because of the way byterange requests work, we have to - have all of the data before we can actually do the byterange, so we - can compute the content-length in the byterange filter. - [Ryan Bloom] - - *) Get exe CGI's working again on Windows. - [Allan Edwards] - - *) Get mod_cgid and mod_rewrite to work as DSOs by changing the way - they keep track of whether or not their post config hook has been - called before. Instead of a static variable (which is replaced when - the DSO is loaded a second time), use userdata in the process pool. - [Jeff Trawick] - -Changes with Apache 2.0a9 - - *) Win32 now requires perl to complete the final install step for users - to build + install on Win32. Makefile.win now rewrites @@ServerRoot@ - and installs the conf, htdocs and htdocs/manual directories. - [William Rowe] - - *) Make mod_include use a hash table to associate directive tags with - functions. This allows modules to implement their own SSI tags easily. - The idea is simple enough, a module can insert it's own tag and function - combination into a hash table provided by mod_include. While mod_include - parses an SSI file, when it encounters a tag in the file, it does a - hash lookup to find the function that implements that tag, and passes - all of the relevant data to the function. That function is then - responsible for processing the tag and handing the remaining data back - to mod_include for further processing. - [Paul J. Reder ] - - *) Get rid of ap_new_apr_connection(). ap_new_connection() now has - fewer parameters: the local and remote socket addresses were removed - from the parameter list because all required information is available - via the APR socket. [Jeff Trawick] - - *) Distribution directory structure reorganized to reflect a - normal source distribution with external install targets. - [Roy Fielding] - - *) The MPMs that need multiple segments of shared memory now create - two apr_shmem_t variables, one for each shared memory allocation. - the problem is that we can't determine how much memory will be required - for shared memory allocations once we try to allocate more than one - variable. The MM code automatically aligns the shared memory allocations, - so we end up needing to pad the amount of shared memory we want based - on how many variables will be allocated out of the shared memory segment. - It is just easier to create a second apr_shmem_t variable, and two - shmem memory blocks. - [Ryan Bloom] - - *) Cleanup the export list a bit. This creates a single unified list of - functions exported by APR. The export list is generated at configure - time, and that list is then used to generate the exports.c file. - Because of the way the export list is generated, we only export those - functions that are valid on the platform we are building on. - [Ryan Bloom] - - *) Enable logging the cookie with mod_log_config - [Sander van Zoest ] - - *) Fix a segfault in mod_info when it reaches the end of the configuration. - [Jeff Trawick] - - *) Added lib/aputil/ as a placeholder for utility functions which are not - specific to the Apache HTTP Server (but do not make sense with APR). - The first utility is "apu_dbm": a set of functions to work with DBM - files. This first version can be compiled for SDBM or GDBM databases. - [Greg Stein] - - *) Complete re-write of mod_include. This makes mod_include a filter that - uses buckets directly. This has now served the FAQ correctly. - [Paul Reder ] - - *) Allow modules to specify the first filter in a sub_request when - making the sub_request. This keeps modules from having to change the - output_filter immediately after creating the sub-request, and therefore - skip the sub_req_output_filter. [Ryan Bloom] - - *) Update ab to accept URLs with IPv6 literal address strings (in the - format described in RFC 2732), and to build Host header fields in - the same format. This allows IPv6 literal address strings to be - used with ab. This support has been tested against Apache 1.3 with - the KAME patch, but Apache 2.0 does not yet work with this format - of the Host header field. [Jeff Trawick] - - *) Accomodate an out-of-space condition in the piped logs and the - rotatelogs.c code, and no longer churn log processes for this - condition. [Victor J. Orlikowski] - - *) Add support for partial writes with apr_sendfile() to core_output_filter. - [Greg Ames] - -Changes with Apache 2.0a8 - - *) Add a directive to mod_mime so that filters can be associated with - a given mime-type. - [Ryan Bloom] - - *) Get multi-views working again. We were setting the path_info - field incorrectly if we couldn't find the specified file. - [Ryan Bloom] - - *) Fix 304 processing. The core should never try to send the headers - down the filter stack. Always, just setup the table in the request - record, and let the header filter convert it to data that is ready - for the network. - [Ryan Bloom] - - *) More fixes for the proxy. There are still bugs in the proxy code, - but this has now proxied www.yahoo.com and www.ntrnet.net (my ISP) - successfully. - [Ryan Bloom] - - *) Fix params for apr_getaddrinfo() call in connect proxy handler. - [Chuck Murcko] - - *) APR: Add new apr_getopt_long function to handle long options. - [B. W. Fitzpatrick ] - - *) APR: Change apr_connect() to take apr_sockaddr_t instead of hostname. - Add generic apr_create_socket(). Add apr_getaddrinfo() for doing - hostname resolution/address string parsing and building - apr_sockaddr_t. Add apr_get_sockaddr() for getting the address - of one of the apr_sockaddr_t structures for a socket. Change - apr_bind() to take apr_sockaddr_t. [David Reid and Jeff Trawick] - - *) Remove the BUFF from the HTTP proxy. This is still a bit ugly, but - I have proxied pages with it, cleanup will commence soon. - [Ryan Bloom] - - *) Make the proxy work with filters. This isn't perfect, because we - aren't dealing with the headers properly. [Ryan Bloom] - - *) Do not send a content-length iff the C-L is 0 and this is a head - request. [Ryan Bloom] - - *) Make cgi-bin work as a regular directory when using mod_vhost_alias - with no VirtualScriptAlias directives. PR#6829 [Tony Finch] - - *) Remove BUFF from the PROXY connect handling. [Ryan Bloom] - - *) Get the default_handler to stop trying to deal with HEAD requests. - The idea is to let the content-length filter compute the C-L before - we try to send the data. If we can get the C-L correctly, then we - should send it in the HEAD response. - [Ryan Bloom] - - *) The Header filter can now determine if a body should be sent based - on r->header_only. The general idea of this is that if we delay - deciding to send the body, then we might be able to compute the - content-length correctly, which will help caching proxies to cache - our data better. Any handler that doesn't want to try to compute - the content-length can just send an EOS bucket without data and - everything will just work. - [Ryan Bloom] - - *) Add the referer to the error log if one is available. - [Markus Gyger ] - - *) Mod_info.c has now been ported to Apache 2.0. As a part of this - change, the root of the configuration tree has been exposed to modules - as ap_conftree. - [Ryan Morgan ] - - *) Get the core_output_filter to use the bucket interface directly. - This keeps us from calling the content-length filter multiple times - for a simple static request. - [Ryan Bloom] - - *) We are sending the content-type correctly now. - [Ryan Bloom and Will Rowe] - - *) APR on FreeBSD: Fix a bug in apr_sendfile() which caused us to report - a bogus bytes-sent value when the only thing being sent was trailers - and writev() returned an error (or EAGAIN). [Jeff Trawick] - - *) Get SINGLE_LISTEN_UNSERIALIZED_ACCEPT working again. This uses the - hints file to determine which platforms define - SINGLE_LISTEN_UNSERIALIZED_ACCEPT. - [Ryan Bloom] - - *) APR: add apr_get_home_directory() [Jeff Trawick] - - *) Initial import of 1.3-current mod_proxy. [Chuck Murcko] - - *) Not all platforms have INADDR_NONE defined by default. Apache - used to make this check and define INADDR_NONE if appropriate, - but APR needs the check too, and I suspect other applications will - as well. APR now defines APR_INADDR_NONE, which is always a valid - value on all platforms. - [Branko Čibej ] - - *) Destroy the pthread mutex in lock_intra_cleanup() for PR#6824. - [Shuichi Kitaguchi ] - - *) Relax the syntax checking of Host: headers in order to support - iDNS. PR#6635 [Tony Finch] - - *) When reading from file buckets we convert to an MMAP if it makes - sense. This also simplifies the default handler because the - default handler no longer needs to try to create MMAPs. - [Ryan Bloom] - - *) BUFF has been removed from the main server. The BUFF code will remain - in the code until it has been purged from the proxy module as well. - [Ryan Bloom] - - *) Byteranges have been completely re-written to be a filter. This - has been tested, and I believe it is working correctly, but it could - doesn't work for the Adobe Acrobat plug-in. The output almost matches - the output from 1.3, the only difference being that 1.3 includes - a content-length in the response, and this does not. - [Ryan Bloom] - - *) APR read/write functions and bucket read functions now operate - on unsigned integers, instead of signed ones. It doesn't make - any sense to use signed ints, because we return the error codes, - so if we have an error we should report 0 bytes read or written. - [Ryan Bloom] - - *) Always compute the content length, whether it is sent or not. - The reason for this, is that it allows us to correctly report - the bytes_sent when logging the request. This also simplifies - content-length filter a bit, and fixes the actual byte-reporing - code in mod_log_config.c - [Ryan Bloom] - - *) Remove AP_END_OF_BRIGADE definition. This does not signify what - it says, because it was only used by EOS and FLUSH buckets. Since - neither of those are required at the end of a brigade, this was - really signifying FLUSH_THE_DATA, but that can be determined better - by checking AP_BUCKET_IS_EOS() or AP_BUCKET_IS_FLUSH. EOS and FLUSH - buckets now return a length of 0, which is actually the amount of data - read, so they make more sense. - [Ryan Bloom] - - *) Allow the core_output_filter to save some data past the end of a - request. If we get an EOS bucket, we only send the data if it - makes sense to send it. This allows us to pipeline request - responses. As a part of this, we also need to allocate mmap - buckets out of the connection pool, not the request pool. This - allows the mmap to outlive the request. - [Ryan Bloom] - - *) Make blocking and non-blocking bucket reads work correctly for - sockets and pipes. These are the only bucket types that should - have non-blocking reads, because the other bucket types should - ALWAYS be able to return something immediately. - [Ryan Bloom] - - *) In the Apache/Win32 console window, accept Ctrl+C to stop the - server, but use Ctrl+Break to initiate a graceful restart - instead of duplicating behavior. [John Sterling] - - *) Patch mod_autoindex to set the Last-Modified header based on - the directory's mtime, and add the ETag header. [William Rowe] - - *) Merge the 1.3 patch to add support for logging query string in - such a way that "%m %U%q %H" is the same as "%r". - [Bill Stoddard] - - *) Port three log methods from mod_log_config 1.3 to 2.0: - CLF compliant '-' byte count, method and protocol. - [Bill Stoddard] - - *) Add a new LogFormat directive, %c, that will log connection - status at the end of the response as follows: - 'X' - connection aborted before the response completed. - '+' - connection may be kept-alive by the server. - '-' - connection will be closed by the server. - [Bill Stoddard] - - *) Expand APR for WinNT to fully accept and return utf-8 encoded - Unicode file names and paths for Win32, and tag the Content-Type - from mod_autoindex to reflect that charset if the feature - macro APR_HAS_UNICODE_FS is true. [William Rowe] - - *) Compute the content length (and add appropriate header field) for - the response when no content length is available and we can't use - chunked encoding. [Jeff Trawick] - - *) Changed ap_discard_request_body() to use REQUEST_CHUNKED_DECHUNK, - so that content input filters get dechunked data when using - the default handler. Also removed REQUEST_CHUNKED_PASS. - [Sascha Schumann] - - *) Add mod_ext_filter as an experimental module. This module allows - the administrator to use external programs as filters. Currently, - only filtering of output is supported. [Jeff Trawick] - - *) Most Apache functions work on EBCDIC machines again, as protocol - data is now translated (again). [Jeff Trawick] - - *) Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of - the EBCDIC support. They are noops on ASCII machines, so this - type of translation doesn't have to be surrounded by #ifdef - CHARSET_EBCDIC. [Jeff Trawick] - - *) Fix mod_include. tag commands work again, and the server will - send the FAQ again. This also allows mod_include to set aside - buckets that include partial buckets. - [Ryan Bloom and David Reid] - - *) Add suexec support back. [Manoj Kasichainula] - - *) Lingering close now uses the socket directly instead of using - BUFF. This has been tested, but since all we can tell is that it - doesn't fail, this needs to be really hacked on. - [Ryan Bloom] - - *) Allow filters to modify headers and have those headers be sent to - the client. The idea is that we have an http_header filter that - actually sends the headers to the network. This removes the need - for the BUFF to send headers. - [Ryan Bloom] - - *) Charset translation: mod_charset_lite handles translation of - request bodies. Get rid of the xlate version of ap_md5_digest() - since we don't compute digests of filtered (e.g., translated) - response bodies this way anymore. (Note that we don't do it at - all at the present; somebody needs to write a filter to do so.) - [Jeff Trawick] - - *) Input filters and ap_get_brigade() now have a input mode parameter - (blocking, non-blocking, peek) instead of a length parameter. - [hackathon] - - *) Update the mime.types file to the registered media types as - of 2000-10-19. PR#6613 [Carsten Klapp , - Tony Finch] - - *) Namespace protect some macros declared in ap_config.h - [Ryan Bloom] - - *) Support HTTP header line folding with input filtering. - [Greg Ames] - - *) Mod_include works again. This should still be re-written, but at - least now we can serve an SHTML page again. - [Ryan Bloom] - - *) Begin to remove BUFF from the core. Currently, we keep a pointer - to both the BUFF and the socket in the conn_rec. Functions that - want to use the BUFF can, functions that want to use the socket, - can. They point to the same place. - [Ryan Bloom] - - *) apr_psprintf doesn't understand %lld as a format. Make it %ld. - [Tomas Ögren ] - - *) APR pipes on Unix and Win32 are now cleaned up automatically when the - associated pool goes away. (APR pipes on OS/2 were already had this - logic.) This resolvs a fatal file descriptor leak with CGIs. - [Jeff Trawick] - - *) The final line of the config file was not being read if there was - no \n at the end of it. This was caused by apr_fgets returning - APR_EOF even though we had read valid data. This is solved by - making cfg_getline check the buff that was returned from apr_fgets. - If apr_fgets return APR_EOF, but there was data in the buf, then we - return the buf, otherwise we return NULL. - [Ryan Bloom] - - *) Piped logs work again in the 2.0 series. - [Ryan Bloom] - - *) Restore functionality broken by the mod_rewrite security fix: - rewrite map lookup keys and default values are now expanded - so that the lookup can depend on the requested URI etc. - PR #6671 [Tony Finch] - - *) SECURITY: Tighten up the syntax checking of Host: headers to fix a - security bug in some mass virtual hosting configurations - that can allow a remote attacker to retrieve some files - on the system that should be inaccessible. [Tony Finch] - - *) Add a pool bucket type. This bucket is used for data allocated out - of a pool. If the pool is cleaned before the bucket is destroyed, then - the data is converted to a heap bucket, allowing it to survive the - death of the pool. - [Ryan Bloom] - - *) Add a flush bucket. This allows modules to signal that the filters - should all flush whatever data they currently have. There is no way - to actually force them to do this, so if a filter ignores this bucket, - that's life, but at least we can try with this. - [Ryan Bloom] - - *) Add an output filter for sub-requests. This filter just strips the - EOS bucket so that we don't confuse the main request's core output - filter by sending multiple EOS buckets. This change also makes sub - requests start to send EOS buckets when they are finished. - [Ryan Bloom] - - *) Make ap_bucket_(read|destroy|split|setaside) into macros. Also - makes ap_bucket_destroy a return void, which is okay because it - used to always return APR_SUCCESS, and nobody ever checked its - return value anyway. - [Cliff Woolley ] - - *) Remove the index into the bucket-type table from the buckets - structure. This has now been replaced with a pointer to the - bucket_type. Also add some macros to test the bucket-type. - [Ryan Bloom] - - *) Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols - for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper) - and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE. - All _VAR_ flavors changes to _DATA to be absolutely clear. - [William Rowe] - - *) Add support for /, //, //servername and //server/sharename - parsing of blocks under Win32 and OS2. - [Tim Costello, William Rowe, Brian Harvard] - - *) Remove the function pointers from the ap_bucket type. They have been - replaced with a global table. Modules are allowed to register bucket - types and use then use those buckets. - [Ryan Bloom] - - *) mod_cgid: In the handler, shut down the Unix socket (only for write) - once we finish writing the request body to the cgi child process; - otherwise, the client doesn't hit EOF on stdin. Small request bodies - worked without this change (for reasons I don't understand), but large - ones didn't. [Jeff Trawick] - - *) Remove file bucket specific information from the ap_bucket type. - This has been moved to a file_bucket specific type that hangs off - the data pointer in the ap_bucket type. - [Ryan Bloom] - - *) Input filtering now has a third argument. This is the amount of data - to read from lower filters. This argument can be -1, 0, or a positive - number. -1 means give me all the data you have, I'll deal with it and - let you know if I need more. 0 means give me one line and one line - only. A positive number means I want no more than this much data. - - Currently, only 0 and a positive number are implemented. This allows - us to remove the remaining field from the conn_rec structure, which - has also been done. - [Ryan Bloom] - - *) Big cleanup of the input filtering. The goal is that http_filter - understands two conditions, headers and body. It knows where it is - based on c->remaining. If c->remaining is 0, then we are in headers, - and http_filter returns a line at a time. If it is not 0, then we are - in body, and http_filter returns raw data, but only up to c->remaining - bytes. It can return less, but never more. - [Greg Ames, Ryan Bloom, Jeff Trawick] - - *) mod_cgi: Write all of the request body to the child, not just what - the kernel would accept on the first write. [Jeff Trawick] - - *) Back out the change that moved the brigade from the core_output_filters - ctx to the conn_rec. Since all requests over a given connection - go through the same core_output_filter, the ctx pointer has the - correct lifetime. - [Ryan Bloom] - - *) Fix another bug in the send_the_file() read/write loop. A partial - send by apr_send would cause unsent data in the read buffer to - get clobbered. Complete making send_the_file handle partial - writes to the network. - [Bill Stoddard] - - *) Fix a couple of type fixes to allow compilation on AIX again - [Victor J. Orlikowski ] - - *) Fix bug in send_the_file() which causes offset to be ignored - if there are no headers to send. - [Bill Stoddard] - - *) Handle APR_ENOTIMPL returned from apr_sendfile in the core - filter. Useful for supporting Windows 9* with a binary - compiled on Windows NT. - [Bill Stoddard] - -Changes with Apache 2.0a7 - - *) Reimplement core_output_filter to buffer/save bucket brigades - across multiple calls to the core_filter. The brigade will be - sent when either MIN_BYTES_TO_SEND or MAX_IOVEC_TO_WRITE - thresholds are hit or the EOS bucket is received. - [Bill Stoddard] - - *) Create experimental filter (buffer_filter) that coalesces bytes - into one large buffer before invoking the next filter in the - chain. This filter is particularly useful with the current - implementation of mod_autoindex when it inserted above the - chunk_filter. mod_autoindex generates a lot of brigades that - containing buckets holding just a few bytes each. The - buffer_filter coalesces these buckets into a single large bucket. - [Bill Stoddard] - - *) Add apr_sendfile() support into the core_output_filter. - [Bill Stoddard] - - *) Add apr_sendv() support into the core_output_filter. - [Bill Stoddard] - - *) Fix mod_log_config so that it compiles cleanly with BUFFERED_LOGS - [Mike Abbott ] - - *) Remove ap_send_fb. This is no longer used in Apache, and it doesn't - make much sense, because Apache uses buckets instead of BUFFs now. - [Ryan Bloom] - - *) send_the_file now falls back to a read/write loop on platforms that - do not have sendfile. - [Ryan Bloom and Brian Havard] - - *) Install apachectl correctly, and substitute the proper values so - that it works again. [Ryan Bloom] - - *) Better(??) handle platforms that lack sendfile(). - [Jim Jagielski] - - *) APR now has UUID generation/formatting/parsing support. - [Greg Stein] - - *) Begin the http_filter. This is an input filter that understands - the absolute basic amount required to parse an HTTP Request. The - goal is to be able to split headers from request body before passing - the data back to the other filters. - [Ryan Bloom] - - *) Bring forward from 1.3.13 the config directory implementation - [Jim Jagielski] - - *) install apxs if it is created - [Ryan Bloom] - - *) Added APR_IS_STATUS_condition test macros to eliminate canonical error - conversions. [William Rowe] - - *) Now that we have ap_add_input_filter(), rename ap_add_filter() to - ap_add_output_filter(). [Jeff Trawick] - - *) Multiple build and configuration fixes - Build process: - - -add datadir and localstatedir substitutions - -fix layout name - -fix logfilename misspelling - -fix evaluation of installation dir variables and - -replace $foobar by $(foobar) to be usefull in the makefile - - Cross compile: - - -add rules for cross-compiling in rules.mk. Okay, rule to check for - $CC_FOR_BUILD is still missing - -use CHECK_TOOL instead of CHECK_PROG for ranlib - -add missing "AR=@AR@" to severaly Makefile.in's - -cache result for "struct rlimit" - -compile all helper programs with native and cross compiler - and use the native version to generate header file - [Rüdiger Kuhlmann ] - - *) Prepare our autoconf setup for autoconf 2.14a and for cross- - compiling. - [Rüdiger Kuhlmann ] - - *) Fix a bug where a client which only sends \n to delimit header - lines (netcat) gets a strange looking HTTP_NOT_IMPLEMENTED - message. Start working on ebcdic co-existance with input - filtering. - [William Rowe, Greg Ames] - - *) If mod_so is enabled in the server always create libexec, even - if there are no modules installed in this directory. This is a - requirement for APXS to work correctly. - [Ryan Bloom] - - *) Connection oriented output filters are now stored in the - conn_rec instead of the request_rec. This allows us to add the - output filter in the pre-connection phase instead of the - post_read_request phase, which keeps us from trying to write an - error page before we have a filter to write to the network. - [Ryan Bloom, Jeff Trawick, and Greg Ames] - - *) Cleaning up an mmap bucket no longer deletes the mmap. An - mmap can be used across multiple buckets (default_handler with - byte ranges, mod_file_cache, mod_mmap_static), so cleanup of - the mmap itself can't be associated with the bucket. - [Jeff Trawick] - - *) Add .dll caching directive ISAPICacheFile to mod_isapi. - [William Rowe] - - *) Radical surgery to improve mod_isapi support under Win32. - Includes a number of newer ServerSupportFunction calls, support - for ReadClient (in order to retrieve POSTs greater than 48KB), - and general bug fixes to more reliably load ISAPI .dll's and - prevent leaking handle resources. Note: There are still - discrepancies between IIS's and Apache's ServerVariables, and - async calls are still not supported. Additional warnings are - logged to facilitate debugging of unsupported ISAPI calls. - [William Rowe] - - *) Add input filtering to Apache. The basic idea for the input - filters is the same as the ideas for output filters. The biggest - difference is that instead of calling ap_pass_brigade, ap_get_brigade - should be called, and the order of execution for the filter itself is - different. When writing an output filter, a brigade is passed in, - and filters operate directly on that brigade, when done, they call - ap_pass_brigade. Input filters are the exact opposite. Because input - is not a push operation, filters first call ap_get_brigade. When this - function returns, the input filter will be left with a valid brigade. - The input filter should then operate on the brigade, and return. - [Ryan Bloom] - - *) Fix building on BSD/OS using its native make. The build system - falls back to the BSD .include directive on that host platform. - [Sascha Schumann] - - *) Expand dbmmanage to allow -d -m -s -p options for Crypt, MD5, - SHA1 and plaintext password encodings. Make feature tests a - bit more flexible. [William Rowe] - - *) Charset translation: mod_charset_lite handles output content - translation in a filter. mod_charset_lite no longer ignores - subrequests. A bunch of cruft related to BUFF's support for - translating request and response bodies was removed. - [Jeff Trawick] - - *) Move the addition of the CORE filter to the post_read_request - hook in http_core.c. This removes the need to add the filter in - multiple places and allows for an SSL module to be added much - simpler. [Ryan Bloom] - - *) SECURITY: CVE-2000-0913 (cve.mitre.org) - Fix a security problem that affects certain configurations of - mod_rewrite. If the result of a RewriteRule is a filename that - contains expansion specifiers, especially regexp backreferences - $0..$9 and %0..%9, then it may be possible for an attacker to - access any file on the web server. [Tony Finch] - - *) Fix a bug where errors that are detected during early request parsing - don't produce visible HTTP error messages at the browser, because - the core_filter wasn't present. [Greg Ames] - - *) Provide apr_socklen_t as a portability aid. - [Victor J. Orlikowski] - - *) Overhaul of dbmmanage to allow a groups arg (as in Apache 1.2) - as well as a comment arg to the add, adduser and update cmds. - update allows the user to clear or preserve pw/groups/comment. - Fixed a bug in dbmmanage that prevented the check option from - parsing a password followed by :group... text. Corrected the - seed calcualation for Win32 systems, and added -lsdbm support. - [William Rowe] - - *) Configured mod_auth_dbm to compile with sdbmlib under Win32. - [William Rowe] - - *) Avoid a segfault when parsing .htaccess files. An - uninitialized tree pointer was passed to ap_build_config(). - [Jeff Trawick] - - *) Change the way that inet_addr & inet_network are checked for - in APR's configure process to allow BeOS BONE to correctly - find them. With this change BeOS BONE now builds from source - with no problems. [David Reid] - - *) Fix a bug in apr_create_process() for Unix. The NULL signifying - the end of the parameters to execve() was stored in the wrong - location, overlaying the storage beyond the newargs[] array and - also passing uninitialized storage to execve(), which would - sometimes fail with EFAULT. [Jeff Trawick] - - *) Fix a bug parsing configuration file containers. With a sequence - like this in the config file - - - any stuff - - - (blank line) - any stuff - - - the second container would be terminated at the blank line due to - sediment in the buffer from reading the prior
and an - error message would be generated for the real for the - second container. Also due to this problem, any two characters - could be used for "] - - *) Fix chunking problem with CGI scripts. The general problem was that - the CGI modules were adding an EOS bucket and then the core added an - EOS bucket. The chunking filter finalizes the chunked response when it - encounters an EOS bucket. Because two EOS buckets were sent, we - finalized the response twice. The fix is to make sure we only send one - EOS, by utilizing a flag in the request_rec. - [Ryan Bloom] - - *) apr_put_os_file() now sets up the unget byte appropriately on Unix - and Win32. Previously, the first read from an apr_file_t set up via - apr_put_os_file() would return a '\0'. [Jeff Trawick] - - *) Mod_cgid now creates a single element bucket brigade, with a pipe - bucket, instead of using BUFF's and ap_r*. - [Ryan Bloom] - - *) APRVARS.in no longer overwrites the EXTRA_LIBS variable. - [Mike Abbott ] - - *) Remove ap_bopenf from buff code. This required modifying the file_cache - code to use APR file's directly instead of going through BUFFs. - [Ryan Bloom] - - *) Fix compile break on some platforms for mod_mime_magic.c - [John K. Sterling ] - - *) Fix merging of AddDefaultCharset directive. - PR #5872 (1.3) [Jun Kuriyama ] - - *) Minor revamp of the rlimit sections of code. We now test - explicitly for setrlimit and getrlimit. Also, unixd_set_rlimit() - is now "available" even if the platform doesn't support - the rlimit family (it's just a noop though). [Jim Jagielski] - - *) Migrate the pre-selection of which MPM to use for specific - platforms to hints.m4, which contains (or should contain) - all platform specific "hints". [Jim Jagielski] - - *) Remove IOLs from Apache. With filtering, IOLs are no longer necessary - [Ryan Bloom] - - *) Add tables with non-string/binary values to APR. - [Ken Coar] - - *) Fix some bad calls to ap_log_rerror() in mod_rewrite. - [Jeff Trawick] - - *) Update PCRE to version 3.2. [Ryan Bloom] - - *) Change the way buckets' destroy functions are called so that - they can be more directly used when changing the type of a - bucket in place. [Tony Finch] - - *) Add generic support for reference-counting the resources used by - buckets, and alter the HEAP and MMAP buckets to use it. Change - the way buckets are initialised to support changing the type of - buckets in place, and use it when setting aside TRANSIENT buckets. - Change the implementation of TRANSIENT buckets so that it can be - mostly shared with IMMORTAL buckets, which are now implemented. - [Tony Finch] - -Changes with Apache 2.0a6 - - *) Add support to Apache and APR for dsos on OS/390. [Greg Ames] - - *) Add a chunking filter to Apache. This brings us one step closer - to removing BUFF. [Ryan Bloom] - - *) ap_add_filter now adds filters in a LIFO fashion. The first filter - added to the stack is the last filter to be called. [Ryan Bloom] - - *) Apache 2.0 has been completely documented using Scandoc. The - docs can be generated by running 'make docs'. [Ryan Bloom] - - *) Add filtered I/O to Apache. This is based on bucket brigades, - Currently the buckets still use BUFF under the covers, but that - should change quickly. The only currently written filter is the - core filter which just calls ap_bwrite. [The Apache Group] - - *) APR locks on Unix: Let APR_LOCKALL locks work when APR isn't - built with thread support. [Jeff Trawick] - - *) Abort configuration if --with-layout was specified and there's - no layout definition file. [Ken Coar] - - *) Add support for '--with-port=n' option to configure. [Ken Coar] - - *) Add support for extension methods for the Allow response header - field, and an API routine for accessing r->allowed and the - list of extension methods in a unified manner. [Ken Coar] - - *) mod_cern_meta: fix broken file reading loop in scan_meta_file(). - [Rob Simonson ] - - *) Get xlate builds working again. The apr renaming in 2.0a5 broke - APACHE_XLATE builds. [Jeff Trawick] - - *) A configuration file parsing problem was fixed. When the - configuration file started with an IfModule/IfDefine container, - only the last statement in the container would be retained. - [Jeff Trawick] - -Changes with Apache 2.0a5 - - *) Perchild is serving pages after passing them to different child - processes. There are still a lot of bugs, but this does work. I - have made requests against the same installation of Apache, and had - different servers use different user IDs to serve the responses. - This change moves to using socketpair instead of an AF_UNIX socket. - [Ryan Bloom] - - *) Perchild MPM still doesn't work perfectly, but it is serving pages. - It can't seem to pass between child processes yet, but I think we - are closer now than before. This moves us back to using Unix - Domain Sockets. [Ryan Bloom] - - *) libapr functions and types renamed with apr_ prefix. - #include "apr_compat.h" for 1.3.x backwards compat - [Perl] - - *) Fix problems with APR sockaddr handling on Win32. It didn't always - return the right information on the local socket address. - [Gregory Nicholls ] - - *) ap_recv() on Win32: Set bytes-read to 0 on error. - [Gregory Nicholls ] - - *) Add an option to not detach from the controlling terminal without - going into single process mode. This allows for much easier - debugging of the process startup code. [Ryan Bloom] - - *) ab: don't use perror() to report the failure of an APR function. - [Jeff Trawick] - - *) Make dexter, mpmt_pthread, and perchild MPMs not destroy the - scoreboard on graceful restarts. - [Ryan Bloom] - - *) Fix segfault/SIGSEGV when running gzip from mod_mime_magic.c. - An invalid ap_proc_t was passed to ap_create_process(). - [Jeff Trawick] - - *) Allow modules to register filters. Those filters are still - never called, but this is a step in the right direction. - [Ryan Bloom and Greg Stein] - - *) Register the mod_cgid daemon process for cleanup so that it is - killed at termination if it does not die when the parent gets - SIGTERM. This change is to fix occasional problems where the - process stays around. Bugs in similar logic in mod_rewrite and - mod_include were also fixed. [Jeff Trawick] - - *) Fix a bug in the time handling. Basically, we were imploding a time - in ap_parseHTTPdate, but it had bogus data in the exploded time format. - Namely, tm_usec and tm_gmtoff were not filled out. ap_implode_time - uses those two fields to adjust the time value. Because of the HTTP - spec, both of those values can be zero'ed out safely. This fixes - the bug correctly. [Ryan Bloom] - - *) Fix a couple of place in the Windows code where the wrong error - code was being returned. [Gregory Nicholls ] - - *) Fix POOL_DEBUG (at least for prefork mpm). [Dean Gaudet] - - *) Added the APR_EOL_STR macro for platform dependent differences in - logfiles and other raw text (such as all APR files). Fixes logfiles - not terminated with cr/lf sequences in Win32. [William Rowe] - - *) Move all strings functions in APR to src/lib/apr/strings and create - apr_strings.h for the prototypes. [Ryan Bloom] - - *) APR lock fixes: when using SysV sems, flock(), or fcntl(), be sure - to repeat the syscall until we stop getting EINTR. I noticed a - related problem at termination (SIGTERM) on FreeBSD when using - fcntl(). Apache 1.3 had these new loops too. Also, make the flock() - implementation work properly with child init. Previously, ap_lock() - was essentially a no-op because all children were using different - locks and thus nobody ever blocked. [Jeff Trawick] - - *) The htdocs/ tree has been moved out of the CVS source tree into - a separate area for easier development. This has NO EFFECT on - end-users or Apache installations. [Ken Coar] - - *) Integrate the mod_dav module for WebDAV protocol handling. This - adds the dav and dav_fs modules, the SDBM library, and additional - XML handling utilities. [Greg Stein] - - *) Clean out obsolete names (from httpd.h) for the HTTP Status Codes - [Greg Stein] - - *) Update the lib/expat-lite/ library (bring forward changes from - the Apache 1.3 repository). [Greg Stein] - - *) If sizeof(long long) == sizeof(long), then prefer long in APR - configure.in. [Dave Hill ] - - *) Add ap_sendfile for Tru64 Unix. Also, add an error message for - machines where sendfile is detected, but nobody has written ap_sendfile. - [Dave Hill ] - - *) Compile fixes in mod_mmap_static. [Victor J. Orlikowski] - - *) ab would start up more connections than needed, then quit when the - desired number were finished. Also fixed a logic error involving - ab keepalives. [Victor J. Orlikowski] - - *) WinNT: Implement non-blocking pipes with timeouts to communicate - with CGIs. Apache 2.0a4 had non-blocking pipes but without - timeouts (i.e, if a timeout was specified, the pipe reverted to - a full blocking pipe). Now the behaviour is more in line with - Unix non-blocking pipes. - [Bill Stoddard] - - *) WinNT: Implement accept socket reuse. Using mod_file_cache to - cache open file handles along with accept socket reuse enables - Apache 2.0 to serve non-keepalive requests for static files at - 3x the rate of Apache 1.3.(e.g, Apache 1.3 will serve 400 rps - and Apache 2.0 will serve almost 1200 rps on my system). - [Bill Stoddard] - - *) Merge mod_mmap_static function into mod_file_cache. mod_file_cache - supports two config directives, mmapfile (same behavious as - mod_mmap_static) and cachefile. Use the cachefile directive - to cache open file handles. This directive only works on systems - that have implemented the ap_sendfile API. cachefile works today - on Windows NT, but has not been tested on any flavors of Unix. - [Bill Stoddard] - - *) Cleanup the configuration. With the last few changes the - configuration process automatically: - inherits information about how to build from APR. Allowing - APR to inform Apache that it should or should not use -ldl - - Detects which mod_cgi should be used mod_cgi or mod_cgid, - based on the threading model - - Apache calls APR's configure process before finishing it's - configuration processing, allowing for more information flow - between the two. - [Ryan Bloom] - - - *) Change Unix and Win32 ap_setsockopt() so that APR_SO_NONBLOCK - with non-zero argument makes the socket non-blocking. BeOS and - OS/2 already worked this way. [Jeff Trawick] - - *) ap_close() now calls ap_flush() for buffered files, so write - operations work a whole lot better on buffered files. - [Jeff Trawick] - - *) Fix error messages issued from MPMs which explain where to change - compiled-in limits (e.g., ThreadsPerChild, MaxClients, StartTreads). - [Greg Ames] - - *) ap_create_pipe() now leaves pipes in blocking state. (This helps - reduce the number of syscalls on Unix.) ap_set_pipe_timeout() is - now the way that the blocking state of a pipe is manipulated. - ap_block_pipe() is gone. [Jeff Trawick] - - *) Correct the problem where the only local host name that the IP stack - can discover are 'undotted' private names. If no fully qualified - domain name can be identified, the default ServerName will be set to - the machine's IP address string. A warning is always provided if the - ServerName not specified, but assumed. Solves PR6215 [William Rowe] - - *) Repair problems with config file processing which caused segfault - at init when virtual hosts were defined and which caused ServerName to - be ignored when there was no valid DNS setup. [Jeff Trawick] - - *) Removed pointless ap_is_aborted macro function. [Roy Fielding] - - *) Add ap_sendfile implementation for AIX - [Victor J. Orlikowski] - - *) Repair C++ compatibility in ap_config.h, apr_file_io.h, - apr_network_io.h, and apr_thread_proc.h. - [Tyler J. Brooks , Jeff Trawick] - - *) Bring the allocation and pool debugging code back into a working - state. This will need to be tested as so far it's only been used on - BeOS. [David Reid] - - *) Change configuration command setup to be properly typesafe when in - maintainer mode. Note that this requires a compiler that can initialise - unions. [Ben Laurie] - - *) Turn on buffering for config file reads. Part of this was to - repair buffered I/O support in Unix and implement buffered - ap_fgets() for all platforms. [Brian Havard, Jeff Trawick] - - *) Win32: Fix problem where UTC offset was not being set correctly - in the access log. Problem reported on news group by Jerry Baker. - [Bill Stoddard] - - *) Fix segfault when reporting this type of syntax error: - " without matching section", where - container is VirtualHost or Directory or whatever. - [Jeff Trawick] - - *) SECURITY: CAN-2000-1204 (cve.mitre.org) - Prevent the source code for CGIs from being revealed when - using mod_vhost_alias and the CGI directory is under the document root - and a user makes a request like http://www.example.com//cgi-bin/cgi - as reported in - [Tony Finch] - - *) Add support for the new Beos NetwOrking Environment (BONE) - [David Reid] - - *) xlate: ap_xlate_conv_buffer() now tells the caller when the - final input char is incomplete; ap_bwrite_xlate() now handles - incomplete final input chars. [Jeff Trawick] - - *) Yet another update to saferead/halfduplex stuff -- need to ensure - that a bhalfduplex call occurs before logging or else DNS and - such can delay the last packet of the response. [Dean Gaudet] - - *) Some syscall reduction in APR on unix -- don't seek when setting - up an mmap; and don't fcntl() more than once per socket. - [Dean Gaudet] - - *) When mod_cgid is started as root, the cgi daemon now switches - to the configured User/Group (like other httpd processes) - instead of continuing as root. [Jeff Trawick] - - *) The prefork MPM now uses an APR lock for the accept() mutex. - It has not been getting a lock at all recently. httpd -V now - displays APR's selection of the lock mechanism instead of the - symbols previously respected by prefork. [Jeff Trawick] - - *) Change the mmap() feature test to check only for existence. - The previous check required features not used by Apache. - [Greg Ames] - - *) Fix a couple of bugs in mod_cgid: The cgi arguments were - sometimes mangled. The len parm to accept() was not - initialized, leading sometimes to an endless loop of failed - accept() calls on OS/390 and anywhere else that failed the call - if the len was negative. Use for struct sockaddr_un - instead of declaring it ourselves to fix a compilation problem - on Solaris. [Jeff Trawick] - - *) Add Resource limiting code back into Apache 2.0. [Ryan Bloom] - - *) Fix zombie process problem with mod_cgi. [Jeff Trawick] - - *) Port mod_mmap_static to 2.0. Make it go faster. [Greg Ames] - - *) Fix storage overlay when loading dsos. Symptom: Apache dies at - initialization if ALLOC_DEBUG is defined; no known symptom - otherwise. [Jeff Trawick] - - *) Fix typo in configure script when checking for mod_so. bash - doesn't seem to have a problem but /bin/sh on Solaris does. - Symptom: "./configure: test: unknown operator ==" - [Jeff Trawick] - - *) Rebind the Win32 NT and 9x services control into the MPM. - All console, WinNT SCM and Win9x pseudo-service control code is - now wrapped within the WinNT MPM. - [William Rowe] - - *) Make a copy of getenv("PATH") before storing for later use. Some - getenv() implementations use the same storage for successive calls. - CGIs on OS/390 had a bad PATH due to this. [Jeff Trawick] - - *) Server Tokens work in 2.0 again. This also propogates the change - to allow just the product name in the server string using - PRODUCT_ONLY. - [Ryan Bloom] - -Changes with Apache 2.0a4 - - *) EBCDIC: Rearrange calls to ap_checkconv() so that most handlers - won't need to call it. [Greg Ames, Jeff Trawick] - - *) Move pre_config hook call to between configuration read and config - tree walk. This allows all modules to implement pre_config hooks - and know that they will be called at an appropriate time. - [Ryan Bloom] - - *) mod_cgi, mod_cgid: Make ScriptLog directive work again. - [Jeff Trawick] - - *) Add pre-config hooks back to all modules. - [Ryan Bloom] - - *) Fix a SIGSEGV in ap_md5digest(), which is used when you have - ContentDigest enabled and we can't/don't mmap the file. - [Jeff Trawick] - - *) We now report the correct line number for syntax errors in config - files. [Ryan Bloom, Greg Stein, Jeff Trawick] - - *) Brought mod_auth_digest up to synch with 1.3, fixed ap_time_t- - related bugs, and changed shmem/locking to use apr API. Shared-mem - is currently disabled, however, because of problems with graceful - restarts. [Ronald Tschalär] - - *) Fix corruption of IFS variable in --with-module= handling. - Depending on the user's shell or customization thereof, there - would be errors generating ap_config_auto.h later in the configure - procedure. [Jeff Trawick] - - *) mod_cgi: Restore logging of stderr from child process when ScriptLog - isn't used (as in 1.3), except that on Unix it is now logged via - ap_log_rerror() instead of by the child having STDERR_FILENO refer - to the error log. [Greg Ames, Jeff Trawick] - - *) Add '-D' argument processing for run time configuration defines. - [William Rowe] - - *) Organize http_main.c as independent code, such that no code or - global data is exported from it. WIN32 will dynamically link it - to the server core, so this will prevent mutual dependency. - [William Rowe] - - *) Add separate dynamic linkage tags APR_EXPORT(), APR_EXPORT_NONSTD() - and APR_VAR_EXPORT to correctly resolve apr functions and globals. - [William Rowe] - - *) Add Win9x service execution and Ctrl+C/Ctrl+Break/Shutdown handlers. - [William Rowe, Jan Just Keijser ] - - *) Add mod_charset_lite for configuring character set translation. - [Jeff Trawick] - - *) Add '-n' option to htpasswd to make it print its user:pw record - on stdout rather than having to frob a text file. [Ken Coar] - - *) Fix saferead. Basically, we flush the output buffer if a read on the - input will block. - [Ryan Bloom] - - *) APR: Add ap_xlate_get_sb() so that an app can find out whether or not - a conversion is single-byte only. [Jeff Trawick] - - *) BEOS: ap_shutdown should return APR_SUCCESS or errno. Note that - the BeOS 5.0 documentation says that shutdown doesn't work yet. - [Roy Fielding] - - *) Fix some minor errors where pid was being manipulated as an int - instead of the portable pid_t. [Roy Fielding] - - *) Fix some error log prints that were printing the pointer to a - structure rather than the pid within the structure. - [Jeff Trawick, Roy Fielding] - - *) ab: Fix a command-line processing bug; track bad headers in - err_response; support reading headers up to 2K. - [Ask Bjoern Hansen ] - - *) Fix ap_resolve_env() so that it handles new function added in a prior - alpha (see "Added the capability to do ${ENVVAR} constructs in the - config file.") as well as the constructs used by mod_rewrite. - [Paul Reder ] - - *) Apache 2.0 builds and runs on OS/390. [Jeff Trawick, Greg Ames] - - *) Change the EBCDIC support in functions for MD5, SHA1, and base 64 to use - APR to perform translation, instead of accessing the hard-coded tables - in 1.3's ebcdic.c. [Jeff Trawick] - - *) Fix some bugs (mostly lost 1.3 code) in ab's command-line processing. - [Jeff Trawick] - - *) Add the ability to hook into the config file reading phase. Basically - if a directive is specified EXEC_ON_READ, then when that directive is - read from the config file, the assocaited function is executed. This - should only be used for those directives that must muck with HOW the - server INTERPRETS the config. This should not be used for directives - that re-order or replace items in the config tree. Those changes should - be made in the pre-config step. - [Ryan Bloom] - - *) Add mod_example to the build system. - [Tony Finch] - - *) APR: Add ap_xlate_conv_byte() to convert one char between single- - byte character sets. [Jeff Trawick] - - *) Pick up various EBCDIC fixes from 1.3 (from Martin - Kraemer and Oliver Reh originally according to the change log). - [Jeff Trawick] - - *) Fix a couple of problems in RFC1413 support (controlled by the - IdentityCheck directive). Apache did not build the request string - properly and more importantly Apache would loop forever if the - would-be ident server dropped the connection before sending a - properly terminated response. [Jeff Trawick] - - *) apxs works in 2.0. - [Ryan Bloom] - - *) Reliable piped logs work in 2.0. - [Ryan Bloom] - - *) Introduce a hash table implementation into APR to be used for - replacing tables and other random data structures in Apache. - [Tony Finch] - - *) Add some more error reporting to htpasswd in the case of problems - generating or accessing the temporary file. Also, pass in a - buffer if the implementation knows how to use it (i.e., if L_tmpnam - is defined). [Ken Coar] - - *) Configure creates config.nice now containing your configure - options. Syntax: ./config.nice [--more-options] - [Sascha Schumann] - - *) Fix various return code problems in APR on Win32. For most of - these, APR was returning APR_EEXIST instead of GetLastError()/ - WSAGetLastError(). [Jeff Trawick] - - *) Make piped logs work again in version 2.0 - [Ryan Bloom] - - *) Add VPATH support to UNIX build system of Apache and APR. - [Sascha Schumann] - - *) Fix ap_tokenize_to_argv to respect the const arguments that are - passed to it. - [Ryan Bloom] - - *) Fix mm's memcpy/memset macros, pointer arithmetic was broken. - Patch submitted to author. - [Sascha Schumann] - - *) Fix mm configuration on Solaris 8 x86 and OS/390. Don't require - /sbin in PATH on FreeBSD (all submitted to rse previously) - [Jeff Trawick] - - *) Fix building Pthread-based MPMs on OpenBSD - [Sascha Schumann] PR#26 - - *) Fix ap_readdir() problem on systems where d_name[] field in - struct dirent is declared with only one byte. (This problem only - affected multithreaded builds.) This caused a segfault during - pool cleanup with mod_autoindex on Solaris (Solaris 8 x86, at - least). [Jeff Trawick] - - *) Fix some make-portability problems on at least Tru64, Irix - and UnixWare. - [Sascha Schumann] PR#18, PR#39 - - *) Add ap_sigwait() to support old-style sigwait() on systems - like OS/390 and UnixWare. - [Sascha Schumann] - - *) Add POSIX-thread flags for more platforms. - [Sascha Schumann] - - *) Fix some minor bugs in ap_strerror(). Teach ap_strerror() - (on Unix, at least) to handle resolver errors. Fix a bug in - the definition of APR_ENOMEM so that ap_strerror() can spit - out the correct error message for it. - [Jeff Trawick] - -Changes with Apache 2.0a3 - - *) mod_so reports ap_os_dso_error() if ap_dso_load() fails - [Doug MacEachern] - - *) API: *HOOK* macros now have an AP_ prefix - [Doug MacEachern] - - *) Win32: Eliminate redundant calls to initialize winsock. - [Tim Costello ] - - *) Fix bugs initializing ungetchar for pipes. - [Chia-liang Kao ] - - *) The ab program in the src/support directory is now portable using - APR. - [Ryan Bloom] - - *) Support directory is being compiled when the server is built - [Ryan Bloom] - - *) The configure option --with-program-name has been added to allow - developers to rename the executable at configure time. This also - changes the name of the config files to match the executable's name. - [Ryan Bloom] - - *) mod_autoindex: Add `IndexOptions +VersionSort', to nicely sort filenames - containing version numbers. [Martin Pool] - - *) ap_open(..,APR_OS_DEFAULT,..) uses perms 0666 instead of 0777 on - Unix; access_log and error_log now created with these perms; non- - Unix is unaffected [Jeff Trawick] - - *) Finished move of ap_md5 routines to apr_md5. Removed ap_md5.h. - Replaced more magic numbers with MD5_DIGESTSIZE. - [William Rowe, Roy Fielding] - - *) Win32: Get mod_auth_digest compiling and added to the Windows - build environment. Not tested and I'd be suprised if it - actually works. [Bill Stoddard] - - *) Revamp the Win32 make environment. Makefiles have been removed and - Apache.dsw created to bring together all the pieces. Create new file - os/win32/BaseAddr.ref to define module base addresses (to prevent - dll relocation at start-up). - [William Rowe, Greg Marr, Tim Costello, Bill Stoddard] - - *) [EBCDIC] Port Paul Gilmartin's CRLF patch from 1.3. This replaces most - of the \015, \012, and \015\012 constants with macros. - [Greg Ames] - - *) Add ap_xlate_open() et al for translation of text between different - character sets. The initial implementation requires iconv(). - [Jeff Trawick] - - *) More FAQs and answers from comp.infosystems.www.servers.unix. - [Joshua Slive ] - - *) CGI output is being timed out now. - [Ryan Bloom] - - *) Fix the problem with dieing quietly. dupfile now takes a pool which - is used by the new apr file. There is no reason to create a new file - with the same lifetime as the original file. - [Ryan Bloom] - - *) Win32: Attempt to eliminate dll relocation at start-up by specifying - module base addresses. This will help shooting seg faults - in the field. [William Rowe ] - - *) Update Apache on Windows documentation. Add new document - describing how to compile Apache on Windows. - [William Rowe ] - - *) ap_set_pipe_timeout(), ap_poll(), and APR_SO_TIMEOUT now take - microseconds instead of seconds. Some storage leaks and other - minor bugs in related code were fixed. [Jeff Trawick] - - *) Win32: First cut at getting mod_isapi working under 2.0 - [William Rowe ] - - *) First stab at getting mod_auth_digest working under 2.0 - quick change summary: - - moved the random byte generation (ap_generate_random_bytes) into APR - - now uses ap_time_t - - compiles and runs on linux - - tested with amaya - [Brian Martin ] - - *) Win32: Move the space stripping of physical service names - fix up from Apache 1.3. #include'ing "ap_mpm.h" fixes up an - unresolved symbol. Add dependency checking to the - CreateService call to ensure TCPIP and AFP (winsock) is started - before Apache. - [William Rowe ] - - *) Win32: Add code to perform latebinding on functions that may - not exist on all levels of Windows where Apache runs. This - is needed to allow Apache to start-up on Win95/98. All calls - to non portable functions should be protected with - ap_oslevel checks to prevent runtime segfaults. - [William Rowe ] - - *) Fix fallback default values for SHM_R and SHM_W [Martin Kraemer] - - *) Get lingering_close() working again. [Dean Gaudet, Jeff Trawick] - - *) Win32: Get non-blocking CGI pipe reads working under Windows NT. - This addresses PR 1623. Still need to address timing out runaway - CGI scripts. [Bill Stoddard] - - *) Win32: Make ap_stat Windows 95/98 friendly - [William Rowe ] - - *) Win32: Fix a bug in ap_get_oslevel which causes GetVersionEx() to - always fail. Need to initialise the dwOSVersionInfoSize member of the - OSVERSIONINFO struct before calling GetVersionEx, so GetVersionEx - always fails. - - The patch also enhances ap_get_oslevel (and the associated enum) to - handle selected service packs for NT4, and adds recognition for - Windows 2000. This is useful, eg. if we can recognise NT4 SP2 then - we can use ReadFileScatter and WriteFileGather in readwrite.c. - [Tim Costello ] - - *) Get mod_rewrite building and running, and mod_status building for Win NT - [Allan Edwards ] - - *) Patch to port mod_auth_db to the 2.0 api and also to support - Berlekey DB 3.0. It works for me with both Berkeley DB 3.0.55 and - 2.7.7. It should work with version 1 as well but I haven't tested it. - [Brian Martin ] - - *) Get APR DSO code working under Windows. Includes cross platform - fixes to mod_so.c. - [] - - *) Fix some of the Windows APR time functions. - [William Rowe] - - *) FAQ changes related to tidying up historical documents on the web site. - [Joshua Slive ] - - *) Move Windows DSO code into APR. - [Bill Stoddard] - - *) Eliminate apr_win.h and apr_winconfig.h (and the ugly #ifdefs they cause). - Now, apr.h and apr_config.h are generated from apr.hw and apr_config.hw - at build time. At this point, the server will not compile on Windows because - of the recent DSO commits. Fixing those next. - [Bill Rowe & Bill Stoddard] - - *) Added error checking for file I/O APR routines. - [Jon Travis ] - - *) APR: Don't use the values of resolver error codes for the - corresponding APR error codes. On Unix and Win32, return the - proper APR error code after a resolver error. [Jeff Trawick] - -Changes with Apache 2.0a2 - - *) Renamed the executable back to httpd on all platforms other - than Win32 - [Ryan Bloom] - - *) Allow BeOS to survive restarts, log properly and a few - small things it had problems with due to the way it setup - users and groups. [David Reid] - - *) Get mod_rewrite working with APR locks - [Paul Reder ] - - *) Actually remove the sempahore when the lock cleanup routine - is called on BeOS. [David Reid] - - *) Clear hook registrations between reads of the config file. - When DSOs are unloaded and re-loaded the old hook pointers may - no longer be valid. This fix eliminates potential segfaults. - [Allan Edwards ] - - *) Fix a problem with Sigfunc not being defined or bypassed - if sigaction() wasn't found. [Jim Jagielski] - - *) Fix the locking mechanism on BSD variants. They now use fcntl - locks. This allows the server to start and serve pages. - [Ryan Bloom] - - *) First cut at getting the Win32 installer to work - [William Rowe ] - - *) Get htpasswd compiling under Windows - [William Rowe ] - - *) Change the log message for a bind() failure to show the - interface and port number. [Jeff Trawick] - - *) Import the documentation from 1.3.12 and bring parts of it - up-to-date with respect to the changes that have occurred - in 2.0. - [Tony Finch] - - *) BeOS MPM updated. CGI bug on BeOS fixed. IP addresses - now logged correctly on BeOS. - [David Reid] - - *) Create one makefile for all Win32 distributions (NT/2000/95/98). - Makefile.win includes the same user interface as the old - Makefile.nt - [William Rowe , Jeff Trawick ] - - *) Win32 exec now uses COMSPEC environment string for command - shell path resolution. - [William Rowe ] PR#3715 - - *) Win32: ap_connect() was not returning correct error condition - PR5866 - [Allen Prescott ] - - *) Win32: ap_open() was broken on Win9x because an NT-specific - flag was passed to CreateFile. ap_puts() added an unnecessary - '\n'. - [Jeff Trawick ] - - *) Put in Korean and Norwegian index.html pages (2.0 and 1.3) - which where donated by Lee Kuk Hyun and Lorant Czaran. 'Fixed' - confusing ee/et name and made all extensions language/dialect - rather than country reflecting. Changed example files to - explicit reflect the ISO charset and added a few common - ones to the example config [dirkx] - - *) Extend external module capability. To use this, you call - configure with --with-module=path/to/mod1,path/to/mod2,etc. - [Ryan Bloom] - - *) Backported the various "default charset" fixes from 1.3.12, - including the AddDefaultCharset directive. [Jim Jagielski] - - *) Added the capability to do ${ENVVAR} constructs in the - config file. E.g. 'ServerAdmin ${POSTMASTER}'. As commited - it does this on a line by line basis; i.e. if the envvar - expands to something with spaces you have to protect it - by adding quotes around it (Unless of course you expect it - to contains more than one argument. Alternatively you - can compile it on a per token basis; which is what people - usually expect by setting RESOLVE_ENV_PER_TOKEN. But this - hampers fancier hacks. - [Dirk-Willem van Gulik] - - *) Changed the 'ErrorDocument' syntax in that it NO longer - supports the asymetric - - ErrorDocument 301 "Some message - - Note the opening " quote, without a closing quote. It now - has either the following syntaxes - - ErrorDocument XXX /local/uri - ErrorDocument XXX http://valid/url - ErrorDocument XXX "Some Message" - - The recognition heuristic is: if it has a space it - is a message. If it has no spaces and starts with a / - or is a valid URL then treat it that way. Otherwise it - is assumed to be a message. - - This breaks backward compatibility but makes live a hell - of a lot easier for GUI's and config file parsers. - [Dirk-Willem van Gulik] - - *) Changed 'CacheNegotiatedDocs' from its present/not-present - syntax into a 'on' or 'off' syntax. As it currently is the - only non nesting token which uses NO_ARGS and thus is an - absolute pain for any config interface automation. This - breaks backward compatibility. [Dirk-Willem van Gulik] - - *) Add ability to add external modules to the build process. This is - done with --with-module=/path/to/module. Modules can only be added - as static modules at this point. - [Ryan Bloom] - -Changes with Apache 2.0a1 - - *) Fix FreeBSD 3.3 core dump. - Basically, ap_initialize() needs to get called before - create_process(), since create_process() passes op_on structure - to semop() to get a lock, but op_on isn't initialized until - ap_initialize() calls setup_lock(). Here is a slight - rearrangement to main() which calls ap_initialize() earlier... - [Jeff Trawick ] - - *) Enable Apache to use sendfile/TransmitFile API - [Bill Stoddard, David Reid, Paul Reder] - - *) Re-Implement Win32 APR network I/O APIs and most of the file I/O - APIs. - [Bill Stoddard] - - *) Make file I/O and network I/O writev/sendv APIs consistent. - Eliminate use of ap_iovec_t and use Posix struct iovec. - Use seperate variable on ap_writev to set the number of iovecs - passed in and number of bytes written. - [Bill Stoddard] - - *) Adapt file iol to use APR functions. Replaced ap_open_file() - with ap_create_file_iol(). ap_create_file_iol() requires that - the file be opened prior to the call using ap_open(). - [Bill Stoddard] - - *) Port mod_include and mod_cgi to 2.0 - [Paul Reder, Bill Stoddard] - - *) ap_send{,v}, ap_recv, ap_sendfile API clarification -- - bytes_read/bytes_written is always valid (never -1). Plus - some fixes to buff.c to correct problems introduced by the - errno => ap_status_t changes a while back. Plus a fix to - chunked encoding introduced right at the beginning of 2.0. - [Dean Gaudet] - - *) Revamped UNIX build system to use autoconf and libtool. - [Manoj Kasichainula, Sascha Schumann] - - *) port mod_rewrite to 2.0. [Paul J. Reder ] - - *) SECURITY: More rigorous checking of Host: headers to fix security - problems with mass name-based virtual hosting (whether using mod_rewrite - or mod_vhost_alias). - [Ben Hyde, Tony Finch] - - *) Add back support for UseCanonicalName in containers. - [Manoj Kasichainula] - - *) Added APLOG_STARTUP log type. This allows us to write an error - message without any of the date and time information. As a part - of this change, I also removed all of the calls to fprintf(stderr - and replaced them with calls to ap_log_error using APLOG_STARTUP - writing to stderr is no longer portable, because we don't direct - stderr to the error log on all platforms. - [Ryan Bloom] - - *) Convert error logging functions to take errno as an argument. - This makes our error logs more portable, because some Windows API's - don't set errno. This change allows us to still output a valid - message on all of our platforms. - [Ryan Bloom] - - *) mod_mime_magic runs in 2.0-dev now. - [Paul Reder ] - - *) sendfile has been added to APR. - [John Zedlewski ] - - *) buff.c has been converted to no longer use errno. - [Manoj Kasichainula] - - *) mod_speling runs in 2.0-dev now: a bug in readdir_r handling and - interface adaption to APR functions did it. [Martin Kraemer] - - *) Support DSOs properly on 32-bit HP-UX 11.0 - [Dilip Khandekar ] - - *) Updated MM in APR source tree from version 1.0.8 to 1.0.11 - [Ralf S. Engelschall] - - *) Cleaned APR build environment integration and bootstrap APR - automatically for developers from src/Configure. - [Ralf S. Engelschall] - - *) Fixed building of src/support/htpasswd.c - [Ralf S. Engelschall] - - *) When generating the Location: header, mod_speling forgot - to escape the spelling-fixed uri. (Forw-Port from 1.3) - [Martin Kraemer] - - *) Moved mod_auth_digest.c from experimental to standard. [Roy Fielding] - - *) Change all pools to APR contexts. This is the first step to - incorporating APR into Apache. [Ryan Bloom] - - *) Move "handler not found" warning message to below the check - for a wildcard handler. [Dirk , Roy Fielding] - PR#2584, PR#2751, PR#3349, PR#3436, PR#3548, PR#4384, PR#4795, PR#4807 - - *) Support line-continuation feature in config.option file and - allow the loading of multiple option sections at once via - ``--with-option=,,...'' - [Ralf S. Engelschall] - - *) Rebuilt CVS repository with Apache 1.3.9 as basis. [Roy Fielding] - -Changes with Apache MPM - - *) Use asynchronous AcceptEx() and a completion port to accept and - dispatch connections to threads in Windows NT/2000. - [Bill Stoddard] - - *) Implement WINNT Win32 MPM from original Win32 code in http_main.c - [Bill Stoddard] - - *) Implement the APACI --with-option facility - (per default used the config.option file). - [Ralf S. Engelschall] - - *) MPM BEOS port. [David Reid ] - - *) Start to implement module-defined hooks that are a) fast and b) typesafe. - Replace pre_connection module call with a register_hook call and - implement pre_connection as a hook. The intent is that these hooks will - be extended to allow Apache to be multi-protocol, and also to allow the - calling order to be specified on a per-hook/per-module basis. - [Ben Laurie] - - *) Implement mpm_* methods as "modules". Each method gets its own - subdir in src/modules (eg: src/modules/prefork). Selection - of method uses Rule MPM_METHOD. [Jim Jagielski] - - *) Port the hybrid server from the apache-apr repository as - mpm_mpmt_pthread. [Manoj Kasichainula] - - *) os/unix/unixd.[ch]: detach, setuid, setgid, stuff which will be common - amongst the unix MPMs. - - *) mpm_prefork: throw away all the alarm/timeout crud; and clean up the - signal handling for the new world order. [Dean Gaudet] - - *) Crude ap_thread_mutex abstraction so that we get the pthread stuff out - of alloc.c for now. [Dean Gaudet] - - *) Handle partial large writes correctly. [Ben Laurie] - - *) Eliminate conn_rec's pointer to server. All it knows is the base server - based on IP/port. [Ben Laurie] - - *) Port a bunch of modules to the new module structure. - ["Michael H. Voase" ] - - *) I/O layering and BUFF revamp. See docs/buff.txt. [Dean Gaudet] - - *) Basic restructuring to introduce the MPM concept; includes various - changes to the module API... better described by - docs/initial_blurb.txt. [Dean Gaudet] - -Changes with Apache pthreads - - *) New buff option added: BO_TIMEOUT. It describes the timeout for - buff operations (generally over a network). - [Dean Gaudet, Ryan Bloom, Manoj Kasichainula] - - *) Created http_accept abstraction. Added 4 new functions (not exported): - init_accept(), begin_accepting_requests(), get_request(), - stop_accepting_requests() [Bill Stoddard] - - *) Fix to ap_rprintf call that allows mod_info to work properly. - [James Morris ] - - *) user and ap_auth_type fields were moved from connection_rec to - request_rec. [Ryan Bloom] - - *) Removed the ap_block_alarms and ap_unblock_alarm calls. These aren't - needed in a threaded server. - - *) Initial pthread implementation from from Dean's apache-nspr code. - [Bill Stoddard, Ryan Bloom] - - -Changes with Apache 1.3.9 - - *) Remove bogus error message when a redirect doesn't set Location. - Instead, use an empty string to avoid coredump if the error message - was supposed to include a location. [Roy Fielding] - - *) Don't allow configure to include mod_auth_digest unless it is - explicitly requested, even if the user asked for all modules. - [Roy Fielding] - - *) Translate module names to dll names for OS/2 so that they are no more - than 8 characters long and have an extension of "dll" instead of "so". - [Brian Havard] - - *) Print out pointer to Rule DEV_RANDOM when truerand lib not found. - Fix test-compile check to check for randbyte instead of trand32. - Use ap_base64encode_binary/decode instead of copy in mod_auth_digest.c - and tweak to make Amaya happier. [Ronald Tschalär] - - *) Ensure that the installed expat include files are world readable, - just like the other header files. [Martin Kraemer] - - *) Fixed generated AddModule adjustments in APACI's `configure' script - in order to allow (new) modules like mod_vhost_alias to be handled - correctly (which was touched by the adjustments for mod_alias). - [Ralf S. Engelschall] - - *) For binary builds, add -R flag to apachectl to work around the lack of - an absolute path to the ./libexec directory where the libhttp.ep file - is needed for SHARED_CORE architectures. [Randy Terbush] - - *) WIN32: Create the CGI script process as DETACHED. This may solve the - problem observed by some Win95/98 users where they get CGI script - output sent to the console. [Bill Stoddard] - - *) Fix (re)naming in the uuencode/decode section. The ap/ap_ - routines are now called ap_base64* and are 'plain' (i.e., no - pool access or anything clever). Inside util.c the routines acting - like pstrdup are called ap_pbase64encode() and ap_pbase64decode(). - The oddly named ap_uuencode(), ap_uudecode() are kept around for - now but deprecated. [dirkx] - - *) Clean up the base64 and SHA1 additions and make sure they are - represented in the ApacheCore.def, ApacheCoreOS2.def, and httpd.exp - files. [Roy Fielding] - - *) WIN32: Migrate to InstallShield 5.5 and provide a bit more error - checking. Allow compiling on VS 6.0. [Randy Terbush] - - *) Fixed assumption of absolute paths in binbuild.sh. [Tony Finch] - - *) Use TestCompile to search for the truerand library (rather than blindly - assuming its existence). If it is not found, complain (but do not - exit - yet). [Martin Kraemer] - - *) We forgot to add the new exported function names to - src/support/httpd.exp. [Bill Stoddard, Randy Terbush] - - *) Add description of -T command-line option to usage(). - [Ralf S. Engelschall] - - *) For "some" platforms (notably, EBCDIC based ones), libos needs to be - searched only AFTER libap has been searched, because libap needs - some symbols from libos. [Martin Kraemer] - - *) Fix conflict with original mod_digest related to the symbol of the - module dispatch list (which has to be unique for DSO and follow the - usual conventions for the installation procedure). - [Ralf S. Engelschall] - - *) Add a dbm-library check for the "usual places" (-ldbm, -lndbm, -ldb) - for other platforms as well. [Martin Kraemer] - - *) Make ap_sha1.c compile for EBCDIC platforms: replace remaining LONG - types by AP_LONG and replace reference to renamed variable 'ubuf' - by 'buffer'. [Martin Kraemer] - -Changes with Apache 1.3.8 [not released] - - *) Flush the output buffer immediately after sending an error or redirect - response, since the result may be needed by the client to abort a - long data transfer or restart a series of pipelined requests. - [Tom Vaughan , Roy Fielding] - - *) PORT: Improved compilation and DSO support on Sequent DYNIX/ptx. - [Ian Turner ] PR#4735 - - *) Local struct mmap in http_core.c conflicted with system structure - name on DYNIX -- changed to mmap_rec. [Roy Fielding] PR#4735 - - *) Added updated mod_digest as modules/experimental/mod_auth_digest. - [Ronald Tschalär ] - - *) Fix a memory leak where the module counts were getting messed - up across restarts. [David Harris ] - - *) CIDR addresses such as a.b.c.d/24 where d != 0 weren't handled - properly in mod_access. - ["Paul J. Reder" ] PR#4770 - - *) RewriteLock/RewriteMap didn't work properly with virtual hosts. - [Dmitry Khrustalev ] PR#3874 - - *) PORT: Support for compaq/tandem/com. - [Michael Ottati , dirkx] - - *) Added SHA1 password encryption support to easy migration from - Netscape servers. See support/SHA1 for more information. - Caused the separation of ap_md5.c into md5, sha1 and a general - ap_checkpass.c with just a validate_passwd routine. Added a - couple of flags to support/htpasswd. Some reuse of the to64() - function; hence renamed to ap_to64(). - [Dirk-Willem van Gulik, Clinton Wong ] - - *) Change for EBCDIC platforms (TPF and BS2000) to correctly deal - with ASCII/EBCDIC conversions in "ident" query. - [David McCreedy ] - - *) Get rid of redefinition warning on MAC_OS_X_SERVER platform. - Change "Power Macintosh" to Power* so if uname prints "Power Book" - we're still happy on Rhapsody platforms. [Wilfredo Sanchez] - - *) Fix SIGSEGV on some systems because the Vary fix below included - a call to table_do with a variable argument list that was not - NULL terminated. Replaced with better implementation. [Roy Fielding] - -Changes with Apache 1.3.7 [not released] - - *) The "Vary" response header field is now sanitised right before - the header is sent back to the client. Multiple "Vary" fields - are combined, and duplicate tokens (e.g., "Vary: host, host" or - "Vary: host, negotiate, host, accept-language") are reduced to - single instances. This is a better solution than the force-no-vary - one (which is still valid for clients that can't cope with Vary - at all). PR#3118 [Dean Gaudet, Roy Fielding, Ken Coar] - - *) Portability changes for BeOS. [David Reid ] - - *) Link DSO's with "gcc -shared" instead of "ld -Bshareable" at - least on Linux and FreeBSD for now. - [Rasmus Lerdorf] - - *) Win32: More apache -k restart work. Restarts are now honored - immediately and connections in the listen queue are -not- lost. - This is made possible by the use of the WSADuplicateSocket() - call. The listeners are opened in the parent, duplicated, then - the duplicates are passed to the child. The original listen sockets - are not closed by the parent across a restart, thus the listen queue - is preserved. - [Bill Stoddard ] - - *) Fix handling of case when a client has sent "Expect: 100-continue" - and we are going to respond with an error, but get stuck waiting to - discard the body in the pointless hope of preserving the connection. - [Roy Fielding, Joe Orton ] PR#4499, PR#3806 - - *) Fix 'configure' to work correctly with SysV-based versions of - 'tr' (consistent with Configure's use as well). [Jim Jagielski] - - *) apxs: Add "-S var=val" option which allows for override of CFG_* - built-in values. Add "-e" option which works like -i but doesn't - install the DSO; useful for editing httpd.conf with apxs. Fix - editing code so that multiple invocations of apxs -a will not - create duplicate LoadModule/AddModule entries; apxs can now be - used to re- enable/disable a module. [Wilfredo Sanchez] - - *) Win32: Update the server to use Winsock 2. Specifically, link with - ws2_32.lib rather than wsock32.lib. This gives us access to - WSADuplcateSocket() in addition to some other enhanced comm APIs. - Win 95 users may need to update their TCP/IP stack to pick up - Winsock 2. (See http://www.microsoft.com/windows95/downloads/) - [Bill Stoddard ] - - *) Win32: Redirect CGI script stderr (script debug info) into the - error.log when CGI scripts fail. This makes Apache on Win32 - behave more like Unix. - [Bill Stoddard ] - - *) Fixed `httpd' usage display: -D was missing. - [Ralf S. Engelschall] PR#4614 - - *) Fix `make r' test procedure in src/regex/: ap_isprint was not found. - [Ralf S. Engelschall] PR#4561, PR#4562 - - *) OS/2: Fix problem with accept lock semaphores where server would die with - "OS2SEM: Error 105 getting accept lock. Exiting!" - [Brian Havard] PR#4505 - - *) Add DSO support for DGUX 4.x using gcc. Tested on x86 platforms. - [Randy Terbush ] - - *) Add the new mass-vhost module (mod_vhost_alias.c) developed and - used by Demon Internet, Ltd. [Tony Finch ] - - *) Better GCC detection for DSO flags under Solaris 2 where the `cc' - command potentially _is_ GCC. [Ralf S. Engelschall] - - *) Fix apxs build issues on AIX - [Rasmus Lerdorf ] - - *) DocumentRoot Checking: Under previous versions, when Apache - first started up, it used to do a stat of each DocumentRoot to - see if it existed and was a directory. If not, then an error - message was printed. THIS HAS BEEN DISABLED. If DocumentRoot - does not exist, you will get error messages in error_log. If - the '-t' command line option is used (to check the configuration) - the check of DocumentRoot IS performed. An additional command - line option, '-T', has been added if you want to avoid the - DocumentRoot check even when checking the configuration. - [Jim Jagielski] - - *) Win32: The query switch "apache -S" didn't exit after showing the - vhost settings. That was inconsistent with the other query functions. - [Bill Stoddard - Fixed by Martin on Unix in 1.3.4] - - *) Win32: Changed behaviour of apache -k restart. - Previously, the server would drain all connections in the stack's - listen queue before honoring the restart. On a busy server, this - could take hours. Now, a restart is honored almost immediately. - All connections in Apache's queues are handled but connections in - the stack's listen queue are discarded. Restart triggered by - MaxRequestPerChild is unchanged. - [Bill Stoddard ] - - *) Win32: Eliminated unnecessary call to wait_for_multiple_objects in - the accept loop. Good for a 5% performance boost. Cleaned up - parent/child process management code. - [Bill Stoddard ] - - *) Added ceiling on file size for memory mapped files. - [John Giannandrea ] PR#4122 - - *) Fix ndbm.h include problems with brain-dead glibc >= 2.1 which - has ndbm.h in a non-standard db1/ subdir. PR#4431, PR#4528 - [Henri Gomez , Ralf S. Engelschall] - - *) Determine AP_BYTE_ORDER for ap_config_auto.h and already - use this at least for Expat. [Ralf S. Engelschall] - - *) Allow .module files to specify libraries with Lib:. - [Ben Laurie] - - *) Allow SetEnvIf[NoCase] to test environment variables as well - as header fields and request attributes. [Ken Coar] - - *) Fix mod_autoindex's handling of ScanHTMLTitles when file - content-types are "text/html;parameters". PR#4524 [Ken Coar] - - *) Remove "mxb" support from mod_negotiation -- it was a draft feature - never accepted into any standard, and it opens up certain DoS - attacks. [Koen Holtman ] - - *) TestCompile updated. We can now run programs and output the - results during the Configure process. [ Jim Jagielski] - - *) The source is now quad (long long) aware as needed. Specifically, - the Configure process determines the correct size of off_t and - *void. When the OS/platform/compiler supports quads, ap_snprintf() - provides for the 'q' format qualifier (if quads are not available, - 'q' is silently "demoted" to long). [Jim Jagielski] - - *) When the username or password fed to htpasswd is too long, include the - size limit in the error message. Also report illegal characters - (currently only ':') in the username. Add the size restrictions - to the man page. [Ken Coar] - - *) Fixed the configure --without-support option so it doesn't result in - an infinite loop. [Marc Slemko] - - *) Piped error logs could cause a segfault if an error occured - during configuration after a restart. - [Aidan Cully ] PR#4456 - - *) If a "Location" field was stored in r->err_headers_out rather - than r->headers_out, redirect processing wouldn't find it and - the server would core dump on ap_escape_html(NULL). Check both - tables and raise HTTP_INTERNAL_SERVER_ERROR with a log message - if Location isn't set. [Doug MacEachern, Ken Coar] - - *) Add RULE_EXPAT, the src/lib/ directory structure, and a modified copy - of the Expat 1.0.2 distribution. [Greg Stein] - - *) Replace regexec() calls with calls to a new API stub function - ap_regexec(). This solves problems with DSO modules which use the regex - library. [Jens-Uwe Mager , Ralf S. Engelschall] - - *) Add 'Request_Protocol' special keyword to mod_setenvif so that - environment variables can be set according to the protocol version - (e.g., HTTP/0.9 or HTTP/1.1) of the request. [Ken Coar] - - *) Add DSO support for OpenStep (Mach 4.2) platform. - [Ralf S. Engelschall, Rex Dieter ] PR#3997 - - *) Fix sed regex for generating ap_config_auto.h in src/Configure. - [Jan Gallo ] PR#3690, PR#4373 - - *) Switch to /bin/sh5 in APACI on Ultrix and friends to avoid problems with - their brain-dead /bin/sh. [Ralf S. Engelschall] PR#4372 - - *) Better DSO flags recognition on NetBSD platforms using ELF. - [Todd Vierling ] PR#4310 - - *) Always log months in english format for %t in mod_log_config. - [Petr Lampa ] PR#4366, 679 - - *) Support for server-parsed and multiview-determined ReadmeName and - HeaderName files in mod_autoindex. Removed the restriction on - "/"s in ReadmeName and HeaderName directives since the *sub_req* - routines will deal with the access issues. (It's now possible to - have {site|group|project|customer|...} wide readmes and headers.) - [Raymond S Brand , Ken Coar] PR#1574, 3026, 3529, - 3569, 4256 - - *) When stat() fails, don't assume anything about the contents of - the struct stat. [Ed Korthof ] - - *) It's OK for a semop to return EINTR, just loop around and try - again. [Dean Gaudet] - - *) Fix configuration engine re-entrant hangups, which solve a - handful of problems seen with mod_perl configuration sections - [Salvador Ortiz Garcia ] - - *) Mac OS and Mac OS X Server now use the appropriate custom layout - by default when building with APACI; allow for platform-specific - variable defaults in configure. [Wilfredo Sanchez] - - *) Do setgid() before initgroups() in http_main; some platforms - zap the grouplist when setgid() is called. This was fixed in - suexec earlier, but the main httpd code missed the change. - [Rob Saccoccio ] PR#2579 - - *) Add recognition of .tgz as a gzipped tarchive. - [Bertrand de Singly ] PR#2364 - - *) mod_include's fsize/flastmod should allow only relative paths, just - like "include file". [Jaroslav Benkovsky ] - - *) OS/2: Add support for building loadable modules using DLLs. - [Brian Havard] - - *) Add iconsdir, htdocsdir, and cgidir to config.layout. - [Wilfredo Sanchez] - - *) Fix minor but annoying bug with the test for Configuration.tmpl - being newer than Configuration so that it is less likely to fail - when using APACI and shadow sources. [Wilfredo Sanchez] - - *) PORT: Add initial support for Mac OS (versions 10.0 and - greater). Use Mac OS X Server layout for now. Clean up dyld code - in unix/os.c, and don't install the dyld error handlers, which - are no longer needed in Mac OS. [Wilfredo Sanchez] - - *) Rename Rhapsody layout to "Mac OS X Server". Change install - locations to appropriate ones for user-built (as opposed to - system) installs. [Wilfredo Sanchez] - - *) Modify mod_autoindex's handling of AddDescription so that the - behaviour matches the documentation. [Ken Coar] PR#1898, 3072. - - *) Add functionality to the install-bindist.sh script created by - binbuild.sh to use tar when copying distribution files to the - serverroot. This allows upgrading an existing installation - without nesting the new distribution in the old. - - install-bindist.sh now detects the local perl5 path to install - apxs and dbmmanage with proper path to perl interpreter. - - Add an install-binsupport target which copies the source files - for apxs and dbmmanage to bindist to allow these scripts to - be properly installed relative to the destination serverroot. - [Randy Terbush, Covalent Technologies, ] - - *) Fix intermittent SEGV in ap_proxy_cache_error() in - src/modules/proxy_util.c where a NULL filepointer and - temporary filename were closed and unlinked. - [Graham Leggett , - Tim Costello ] PR#3178 - - *) Fix inconsistent error messages reported by mod_proxy. - [Graham Leggett ] - - *) OS/2: Fix terminating CGIs that aren't compiled by EMX GCC when a - connection is aborted. [Brian Havard] - - *) Force the LANG envariable to the known state of "C" so that we - have assurance about how string manipulators (e.g., tr) will - function. [Ken Coar] PR#1630 - - *) Add a directive to allow customising of the tracking cookie name. - [Ken Coar] PR#2921, 4303 - - *) Add "force-no-vary" envariable to allow servers to work around - clients that choke on "Vary" fields in the response header. - [Ken Coar, Dmitry Khrustalev ] PR#4118 - - *) Fixed a bug in mod_dir that causes a child process will infinitely - recurse when it attemps to handle a request for a directory wnd the - value of the DirectoryIndex directive is a single dot. Also likely - to happen for anyother values of DirectoryIndex that will map back - to the same directory. The handler now only considers regular files - as being index candidates. No PR#s found. - [Raymond S Brand ] - - *) Ease configuration debugging by making TestCompile fall back to - using "make" if the $MAKE variable is unset [Martin Kraemer] - - *) Fixed the ServerSignature directive to work as documented. - [Raymond S Brand ] PR#4248 - - *) Add "opt" (SysV-style) layout to config.layout. [Raymond S Brand - ] - - *) Add APACI --without-execstrip option which can be used to disable the - stripping of executables on installation. This is very important for DSO - and debugging situations. [Ralf S. Engelschall] - - *) Add support for OS/2 (case insenstive filesystem, .exe suffix, etc) - to APACI files and related scripts. - [Yitzchak Scott-Thoennes , Ralf S. Engelschall] PR#4269 - - *) Add support for standalone mode in TPF - [Joe Moenich ] - - *) Fix number of bytes copied by read_connection() in src/support/ab.c - [Jim Cox ] PR#4271 - - *) Fix special RewriteCond "-s" pattern matching. - [Bob Finch ] - - *) Fix value quoting in src/Configure script for ap_config_auto.h - [Paul Sutton ] - - *) Make sure RewriteLock can be used only in the global context, (i.e. - outside of any sections) because it's a global facility of - the rewrite engine. [Ralf S. Engelschall] - - *) Fix the ownership delegation for proxy directory under `make install'. - [Ralf S. Engelschall] - - *) APACI would not correctly build suexec. [Maria Verina - ] PR#4260 - - *) mod_mime_magic passed only the first 4k of a file to - uncompress/gzip, but those tools sometimes do not produce - any output unless a sufficient portion of the compressed - file is input. Change to pass the entire file -- but - only read 4k of output. - [Marcin Cieslak ] PR#4097 - - *) "IndexOptions None" generated extra spaces at the end of each - line. [] PR#3770 - - *) The "100 Continue" response wasn't being sent after internal - redirects. [Jose KAHAN ] PR#3910, 3806, 3575 - - *) When padding the name with spaces for display, mod_autoindex would - count &, <, and > in their escaped width, messing up the display. - [Dean Gaudet] PR#4075, 3758 - - *) PORT: fixed a compilation problem on NEXT. - [Jacques Distler ] PR#4130 - - *) r->request_time wasn't being set properly in certain error conditions. - [Dean Gaudet] PR#4156 - - *) PORT: deal with UTS compiler error in http_protocol.c - [Dave Dykstra ] PR#4189 - - *) Add ap_vrprintf() function. [John Tobey ] PR#4246 - - *) Fix the mod_mime hash table to work properly with locales other - than C. [Dean Gaudet] PR#3427 - - *) Fix a memory leak which is exacerbated by certain configurations. - [Dean Gaudet] PR#4225 - - *) Prevent clobbering saved IFS values in APACI. [Jim Jagielski] - - *) Fix buffer overflows in ap_uuencode and ap_uudecode pointed out - by "Peter 'Luna' Altberg " and PR#3422 - [Peter 'Luna' Altberg , Ronald Tschalär] - - *) Make {Set,Unset,Pass}Env per-directory instead of per-server. - [Ben Laurie] - - *) Correct an apparent typo: on the Windows and MPE platforms, the - htpasswd utility was limiting passwords to only 8 characters. - [Ken Coar] - - *) EBCDIC platforms: David submitted patches for two bugs in the - MD5 digest port for EBCDIC machines: - a) the htdigest utility overwrote the old contents of the digest file - b) the Content-MD5 header value (ContentDigest directive) was wrong - when the returned file was not converted from EBCDIC, but was a - binary (e.g., image file) in the first place. - [David McCreedy ] - - *) support/htpasswd now permits the password to be specified on the - command line with the '-b' switch. This is useful when passwords - need to be maintained by scripts -- particularly in the Win32 - environment. [Ken Coar] - - *) Win32: Win32 multiple services patch. Added capability to install and - run multiple copies of apache as individual services. - - Example 1: - apache -n apache1 -i -f c:/httpd.conf - Installs apache as service 'apache1' and associates c:/httpd.conf - with that service. - net start apache1 - Starts apache1 service. - net stop apache1 - Stops apache1 service - - Example 2: - apache -n apache2 -i - Installs apache as service 'apache2'. httpd.conf is located under - the default server root (/apache/conf/httpd.conf). - net start apache2 - Starts apache2 service. - - Example 3: - apache -n apache3 -i -d c:/program files/apache - Install apache as service 'apache3' and sets server root to - c:/program files/apache. - - Example 4: - apache -n apache2 -k restart - Restart apache2 service - - [Keith Wannamaker, Ken Parzygnat, Bill Stoddard] - - *) Correct the signed/unsigned character handling for the MD5 routines; - mismatches were causing compilation problems with gcc -pedantic and - in the TPF cross-compilation. [Ken Coar] - - *) OS/2: Rework CGI handling to use spawn*() instead of fork/exec, achieving - a roughly 5 fold speed up. [Brian Havard] - - *) proxy ftp: instead of using the hardwired string "text/plain" as - a fallback type for files served by the ftp proxy, use the - ap_default_type() function to determine the configured type. - This allows for special configurations like - - DefaultType gargle/blurb - - Additionally, add the Content-Encoding: header to FTP proxy replies - when the encoding is defined (by the AddEncoding directive). - Because it was missing, it was almost impossible to browse compressed - files using the FTP proxy (works now perfectly in Communicator). - The ftp proxy now also returns the Date: and Server: header lines (if not - much else... This code is "somewhat" broken) like normal requests do. - [Martin Kraemer] - - *) Be more smart in APACI's configure script when determining the UID/GID - for User/Group directives and use the determined UID/GID to initialize - the permissions on the proxycachedir. - [Dirk-Willem van Gulik, Ralf S. Engelschall] - - *) Changed the forking-prior-to-cleanup in the proxy module to first - check wether it actually needs to collect garbage. This reduces - the number of fork()s from one/request to just the odd one an hour. - [Dirk-Willem van Gulik] - - *) Added proxy, auth and header support to src/support/ab.c. Added a - README file to src/support/ - [Dirk-Willem van Gulik] - - *) Don't hard-code the path to AWK in --shadow bootstrapping Makefile. - [Ralf S. Engelschall] PR#4050 - - *) Add support for DSO module compilation on BSD/OS 3.x. - [Randy Terbush, Covalent Technologies] - - *) Fix sed-substitutions in `make install': path elements like `httpd/conf' - (for instance from an APACI configure --sysconfdir=/etc/httpd/conf - option) were substituted with $(TARGET).conf, etc. Same for other strings - with dots where the dot wasn't matched as plain text. - [Ralf S. Engelschall] - - *) PORT: Add support for FreeBSD 4.x [Ralf S. Engelschall] - - *) Fix verbose output of APACI configure (option -v) - [Martin Kraemer, Ralf S. Engelschall] - -Changes with Apache 1.3.6 - - *) Removed new PassAllEnv code due to DSO problems. [Lars Eilebrecht] - -Changes with Apache 1.3.5 [not released] - - *) M_INVALID needed a value within the scope of METHODS so that unknown - methods can be access controlled. [Roy Fielding] PR#3821 - - *) Added PassAllEnv; makes server's entire environment available - to CGIs and SSIs executed within directive's scope. [Ken Coar] - - *) ap_uuencode() always added two trailing '='s and encoding of - 8 bit characters on a machine with signed char may produced - incorrect results. Additionally ap_uuencode() should now - work correctly on EBCDIC platforms. - [Ronald Tschalär ] PR#3411 - - *) WIN32: Binary installer now runs the configuration DLL before - the reboot prompt (which is only given if MSVCRT.DLL system - DLL is new or updated). This should avoid the configuration - directory being empty after installation. [Paul Sutton] - PR#3767, 3800, 3827, 3850, 3900, 3953, 3988 - - *) WIN32: Binary installer now creates Start menu options to start - and stop Apache as a console application and to uninstall - the Apache service on NT. [Paul Sutton] PR#3741 - - *) WIN32: Apache.exe now contains an icon. [Paul Sutton] + *) SECURITY: CVE-2017-9788 (cve.mitre.org) + mod_auth_digest: Uninitialized memory reflection. The value placeholder + in [Proxy-]Authorization headers type 'Digest' was not initialized or + reset before or between successive key=value assignments. + [William Rowe] - *) PORT: Switch back to using fcntl() locking on Linux -- instabilities - have been reported with flock() locking (probably related to kernel - version). [Dean Gaudet] PR#2723, 3531 + *) Allow single-char field names inadvertantly disallowed in 2.2.32. + PR 61220. [Yann Ylavic] + +Changes with Apache 2.2.33 (not released) + + *) SECURITY: CVE-2017-7668 (cve.mitre.org) + The HTTP strict parsing changes added in 2.2.32 and 2.4.24 introduced a + bug in token list parsing, which allows ap_find_token() to search past + the end of its input string. By maliciously crafting a sequence of + request headers, an attacker may be able to cause a segmentation fault, + or to force ap_find_token() to return an incorrect value. + [Jacob Champion] + + *) SECURITY: CVE-2017-3169 (cve.mitre.org) + mod_ssl may dereference a NULL pointer when third-party modules call + ap_hook_process_connection() during an HTTP request to an HTTPS port. + [Yann Ylavic] + + *) SECURITY: CVE-2017-3167 (cve.mitre.org) + Use of the ap_get_basic_auth_pw() by third-party modules outside of the + authentication phase may lead to authentication requirements being + bypassed. + [Emmanuel Dreyfus , Jacob Champion, Eric Covener] + + *) SECURITY: CVE-2017-7679 (cve.mitre.org) + mod_mime can read one byte past the end of a buffer when sending a + malicious Content-Type response header. [Yann Ylavic] + + *) Fix HttpProtocolOptions to inherit from global to VirtualHost scope. + [Joe Orton] - *) Using APACI, the main config file (usually httpd.conf) was - not being adjusted as $(TARGET).conf. [Wilfredo Sanchez - ] +Changes with Apache 2.2.32 - *) PORT: AIX does not require the SHARED_CODE "hack" - [Ryan Bloom ] + *) SECURITY: CVE-2016-8743 (cve.mitre.org) + Enforce HTTP request grammar corresponding to RFC7230 for request lines + and request headers, to prevent response splitting and cache pollution by + malicious clients or downstream proxies. [William Rowe, Stefan Fritsch] - *) Set-Cookie headers were being doubled up for some CGIs by the O(n^2) - avoidance code added in 1.3.3. - [Dean Gaudet, Jeff Lewis ] PR#3872 + *) Validate HTTP response header grammar defined by RFC7230, resulting + in a 500 error in the event that invalid response header contents are + detected when serving the response, to avoid response splitting and cache + pollution by malicious clients, upstream servers or faulty modules. + [Stefan Fritsch, Eric Covener, Yann Ylavic] - *) ap_isxdigit was somehow neglected when adding the ap_isfoo() macros - for 8-bit safeness. [Dean Gaudet] + *) core: Mitigate [f]cgi CVE-2016-5387 "httpoxy" issues. + [Dominic Scheirlinck , Yann Ylavic] - *) PORT: Use -fPIC instead of -fpic on Solaris and SunOS for compiling DSOs - because SPARCs have a small machine-specific maximum size for the Global - Offset Table which is often exceeded when compiling one of the larger - third-party modules with Apache. [Peter Urban ] PR#3977 + *) core: Avoid a possible truncation of the faulty header included in the + HTML response when LimitRequestFieldSize is reached. [Yann Ylavic] - *) Move the directive `ExtendedStatus' in httpd.conf-dist-win _after_ the - DSO/DLL section because it's a directive from mod_status and isn't - available before the DLL of mod_status is loaded. - [Martin POESCHL ] PR#3936 + *) core: Enforce LimitRequestFieldSize after multiple headers with the same + name have been merged. [Stefan Fritsch] - *) SECURITY: Fix a bug in the calculation of the buffer size for the line - continuation facility in Apache's configuration files which could - lead to a buffer overflow situation. - [Thomas Devanneaux ] PR#3617 + *) core: Drop Content-Length header and message-body from HTTP 204 responses. + PR 51350 [Luca Toscano] - *) Make documentation and error messages of APACI's --activate-module=FILE - option more clear. [Jan Wolter ] PR#3995 + *) core: Permit unencoded ';' characters to appear in proxy requests and + Location: response headers. Corresponds to modern browser behavior. + [William Rowe] - *) Fix the gcc version check (for enabling the `inline' facility) to - really support all future gcc versions >= 2.7 until we know more. - [John Tobey ] PR#3983 + *) core: ap_rgetline_core now pulls from r->proto_input_filters. - *) Let APACI's configure script correctly complain for unknown --enable-XXX - and --disable-XXX options. [Ralf S. Engelschall] PR#3958 + *) core: Correctly parse an IPv6 literal host specification in an absolute + URL in the request line. [Stefan Fritsch] - *) Link the shared core bootstrap program (``Rule SHARED_CORE=yes'') also - against libap.a and use its ap_snprintf() instead of sprintf() to avoid - possible buffer overflows. [Ralf S. Engelschall] + *) core: New directive RegisterHttpMethod for registering non-standard + HTTP methods. [Stefan Fritsch] - *) Remove no longer used non-API function ap_single_module_init(). - [Ralf S. Engelschall] + *) core: Limit to ten the number of tolerated empty lines between request. + [Yann Ylavic] - *) Add Apple's Mac OS X Server Layout "Rhapsody" to config.layout. - [Wilfredo Sanchez] + *) core: reject NULLs in request line or request headers. + PR 43039 [Nick Kew] - *) Add cgidir, htdocsdir, iconsdir variables to Makefile.tmpl in order - to make platform installations easier. [Wilfredo Sanchez] + *) mod_proxy: Use the correct server name for SNI in case the backend + SSL connection itself is established via a proxy server. + PR 57139 [Szabolcs Gyurko ] - *) In configure, do not append the target name to the directory path if - the path already contains "apache". [Ralf S. Engelschall] + *) Fix potential rejection of valid MaxMemFree and ThreadStackSize + directives. [Mike Rumph ] - *) SIGPIPE is now ignored by the server core. The request write routines - (ap_rputc, ap_rputs, ap_rvputs, ap_rwrite, ap_rprintf, ap_rflush) now - correctly check for output errors and mark the connection as aborted. - Replaced many direct (unchecked) calls to ap_b* routines with the - analogous ap_r* calls. [Roy Fielding] + *) mod_ssl: Support compilation against libssl built with OPENSSL_NO_SSL3. + [Kaspar Brand] - *) Enhanced mod_rewrite's mapfile handling: The in-core cache for text and - DBM format mapfiles now uses a 4-way hash table with LRU functionality. - Furthermore map lookups for non-existent keys are now cached as well. - Additionally "txt" maps are now parsed with simple string functions - instead of using ap_pregcomp(). As a side effect a bug that prevented - the usage of keys containing the "," character was fixed. - The changes drastically improve the performance when large rewrite maps - are in use. - [Michael van Elst , Lars Eilebrecht] PR#3160 + *) mod_proxy: Correctly consider error response codes by the backend when + processing failonstatus. PR 59869 [Ruediger Pluem] - *) Added ap_sub_req_method_uri() for doing a subrequest with a method - other than GET, and const'd the definition of method in request_rec. - [Greg Stein] + *) mod_proxy: Play/restore the TLS-SNI on new backend connections which + had to be issued because the remote closed the previous/reusable one + during idle (keep-alive) time. [Yann Ylavic] - *) Use proper pid_t type for saving PIDs in alloc.c. [John Bley] + *) mod_ssl: Fix a possible memory leak on restart for custom [EC]DH params. + [Jan Kaluza, Yann Ylavic] - *) Replaced use of WIN32 define with HAVE_DRIVE_LETTERS to indicate - when the OS allows a DOS drive letter within pathnames. [Brian Havard] - - *) Add %V to mod_log_config, this logs the hostname according to the - UseCanonicalName setting (this is the pre-1.3.4 behaviour of - %v). Useful for mass vhosting. [Tony Finch ] + *) mod_proxy: Fix a regression with 2.2.31 that caused inherited workers to + use a different scoreboard slot then the original one. PR 58267. + [Ruediger Pluem] - *) Add support for \n and \t to mod_log_config, can be used to produce - more reliable logs with multiline entries. [Tony Finch ] + *) mod_proxy: Fix a race condition that caused a failed worker to be retried + before the retry period is over. [Ruediger Pluem] - *) Fixed a few compiler nits. [John Bley ] + *) mod_proxy: don't recyle backend announced "Connection: close" connections + to avoid reusing it should the close be effective after some new request + is ready to be sent. [Yann Ylavic] - *) Added informative error messages for failed munmap() and fseek() calls - in http_core.c. [John Bley, Roy Fielding] + *) mod_mem_cache: Fix concurrent removal of stale entries which could lead + to a crash. PR 43724. [Yann Ylavic] - *) Added some informative error messages for some failed malloc() - calls. [John Bley , Jim Jagielski] + *) mime.types: add common extension "m4a" for MPEG 4 Audio. + PR 57895 [Dylan Millikin ] - *) OS/2 ap_os_canonical_filename()'s behaviour is improved: ap_assert() - is removed. This allows directives to work and - prevents invalid requests from killing the process. - [Brian Havard ] + *) mod_substitute: Allow to configure the patterns merge order with the new + SubstituteInheritBefore on|off directive. PR 57641 + [Marc.Stern , Yann Ylavic, William Rowe] - *) Reorganised FAQ document. - [Joshua Slive ] PR#2497 - - *) src/support/: The ApacheBench benchmark program was overhauled by - David N. Welton: you can now have it generate an HTML TABLE, presumably - for integration into other HTML sources. David updated the ab man page - as well and added some missing descriptions. Thanks! - [David N. Welton ] - - *) Win32: The filename validity checker now allows filenames containing - characters in the range 0x80 to 0xff (for example accented characters). - [Paul Sutton] PR#3890 - - *) Added conditional logging based upon environment variables to - mod_log_config. mod_log_referer and mod_log_agent - are now deprecated. [Ken Coar] - - *) Allow apache acting as a proxy server to relay the real - reason of a failure to a client rather than the "internal - server error" it does currently. The general exposure mechanism - can be triggered by any module by setting the "verbose-error-to" - note to "*"; this allows more than just proxy errors to be exposed. - [Cliff Skolnick, Roy Fielding, Martin Kraemer] Related to PR#3455, 4086 + *) mod_mem_cache: Don't cache incomplete responses when the client + connection is aborted before the body is fully read. PR 45049. + [Nick Pace , Edward Lu, Yann Ylavic] - *) Moved man pages for ab and apachectrl to section 8. - [Wilfredo Sanchez, Roy Fielding] - - *) Added -S option to install.sh so that options can be passed to - strip on some platforms. [Ralf S. Engelschall, Wilfredo Sanchez] - - *) Tweak modules Makefile generated by Configure so that it handles - the test case of no modules being selected. [] - - *) Added a sectioning directive that allows - the user to assign authentication control to any HTTP method that - is *not* given in the argument list; i.e., the logical negation - of the directive. This is particularly useful for controlling - access on methods unknown to the Apache core, but perhaps known by - some module or CGI script. [Roy Fielding, Tony Finch] - - *) Prevent apachectl from complaining if the PIDFILE exists but - does not contain a process id, as might occur if the server is - being rapidly restarted. [Wilfredo Sanchez] - - *) Win32: Add global symbols missing from ApacheCore.def. [Carl Olsen] - - *) Entity tag comparisons for If-Match and If-None-Match were not being - performed correctly -- weak tags might cause false positives. Also, - strong comparison wasn't properly enforced in all cases. - [Roy Fielding, Ken Coar, Dean Gaudet] PR#2065, 3657 - - *) OS/2: Supply OS/2 error code instead of errno on semaphore errors. - [Brian Havard] - - *) Work around a bug in Lynx regarding its sending "Negotiate: trans" - even though it doesn't understand TCN. [Koen Holtman, Roy Fielding] - - *) Added ap_size_list_item(), ap_get_list_item(), and ap_find_list_item() - to util.c for parsing an HTTP header field value to extract the next - list item, taking into account the possible presence of nested comments, - quoted-pairs, and quoted-strings. ap_get_list_item() also removes - insignificant whitespace and lowercases non-quoted tokens. - [Roy Fielding] PR#2065 - - *) proxy: The various calls to ap_proxyerror() can return HTTP/1.1 status - code different from 500. This allows the proxy to, e.g., return - "403 Forbidden" for ProxyBlock'ed URL's. [Martin Kraemer] Related to PR#3455 + *) abs: Include OPENSSL_Applink when compiling on Windows, to resolve + failures under Visual Studio 2015 and other mismatched MSVCRT flavors. + PR59630 [Jan Ehrhardt ] - *) Fix ordering of language variants for the case where the traditional - negotiation algorithm is being used with multiple language variants - and no Accept-Language. [James Treacy ] PR#3299, 3688 + *) core: Support custom ErrorDocuments for HTTP 501 and 414 status codes. + PR 57167 [Edward Lu ] - *) Do not round the TCN quality calculation to 5 decimal places, - unlike RFC 2296, because the calculation might need 12 decimal places - to get the right result. [Roy Fielding] +Changes with Apache 2.2.31 - *) Remove unused code to disable transparent negotiation when - negotiating on encoding only, as we now handle encoding too - (though this is nonstandard for TCN), remove charset=ISO-8859-1 - fiddle from the fiddle-averse RVSA comparison, and fix bugs in - some debugging statements within mod_negotiation. [Koen Holtman] - - *) Fixed a rare memory corruption possibility in mod_dir if the index - file is negotiable and no acceptable variant can be found. - [Dean Gaudet, Roy Fielding, Martin Kraemer] - - *) Win32: Add new config directive, ScriptInterpreterSource, to enable - searching the Win32 registry for script interpreters. - [Bill Stoddard] - - *) Win32: The compiled-in default filename for the error log is now - error.log, which matches the default in the distributed httpd.conf. - [Paul Sutton] - - *) Win32: Any error messages from -i or -u command line options are now - displayed on the console output rather than sent to the error log. - Also the "Running Apache..." message is not output unless Apache is - going to serve requests. [Paul Sutton] - - *) Rework the MD5 authentication scheme to use FreeBSD's algorithm, - and use a private significator ('$apr1$') to mark passwords as - being smashed with our own algorithm. Also abstract the password - checking into a new ap_validate_password() routine. [Ken Coar] - - *) Win32: The filename validity checker now allows "COM" but refuses - access to "COM1" through "COM4". This allows filenames such - as "com.name" to be served. [Paul Sutton] PR#3769. - - *) BS2000: Adapt to the new ufork() system call interface which will - make subtasking easier on the OSD/POSIX mainframe environment. - [Martin Kraemer] + *) Correct win32 build issues for mod_proxy exports, OpenSSL 1.0.x headers. + [Yann Ylavic, Gregg Smith] - *) Add a compatibility define for escape_uri() -> ap_escape_uri() to - ap_compat.h. [David White ] PR#3725 +Changes with Apache 2.2.30 (not released) - *) Make NDBM file suffix determination for mod_rewrite more accurate, i.e. - use `.db' instead of `.pag' not only for FreeBSD, but also when - the NDBM library looks like Berkeley-DB based. - [Ralf S. Engelschall] PR#3773 + *) SECURITY: CVE-2015-3183 (cve.mitre.org) + core: Fix chunk header parsing defect. + Remove apr_brigade_flatten(), buffering and duplicated code from + the HTTP_IN filter, parse chunks in a single pass with zero copy. + Limit accepted chunk-size to 2^63-1 and be strict about chunk-ext + authorized characters. [Graham Leggett, Yann Ylavic] - *) Add ability to handle DES or MD5 authentication passwords. - [Ryan Bloom ] + *) http: Fix LimitRequestBody checks when there is no more bytes to read. + [Michael Kaufmann ] - *) Fix O(n^2) memory consumption in mod_speling. [Dean Gaudet] + *) core: Allow spaces after chunk-size for compatibility with implementations + using a pre-filled buffer. [Yann Ylavic, Jeff Trawick] - *) SECURITY: Avoid some buffer overflow problems when escaping - quoted strings. (This overflow was on the heap and we believe - impossible to exploit.) [Rick Perry ] + *) mod_ssl: bring SNI behavior into better conformance with RFC 6066: + no longer send warning-level unrecognized_name(112) alerts. PR 56241. + [Kaspar Brand] - *) Let src/Configure be aware of CFLAGS options starting with plus - signs as it's the case for the HP/UX compiler. - [Doug Yatcilla ] PR#3681 + *) http: Make ap_die() robust against any HTTP error code and not modify + response status (finally logged) when nothing is to be done. PR 56035. + [Yann Ylavic] - *) Remove the hard-wire of TAR=tar (we now check for gtar and gnutar first) - and check to see if the tar we wind up with supports '-h'. - [Jim Jagielski] PR#3671 + *) core, modules: Avoid error response/document handling by the core if some + handler or input filter already did it while reading the request (causing + a double response body). [Yann Ylavic] - *) A consistent and conservative style for all shell scripts has been - implemented. Basically, all shell string tests use the traditional - hack of 'if [ "x$var" != "x" ]' or 'if [ "x$var" = "xstring" ]' - to protect against bare null variable strings (ie: wrapping both - sides with double quotes and prepending 'x'). 'x' was chosen - because it's more universal and hopefully easier for old shell - prgrammers, as well as being easier to search for in 'vi' (/x\$) :) - [Jim Jagielski] + *) FreeBSD: Disable IPv4-mapped listening sockets by default for versions + 5+ instead of just for FreeBSD 5. PR 53824. [Jeff Trawick, + Olli Hauer ] - *) The status module now prints out both the main server generation as - well as the generation of each process. Also, the vhost info is - printed with '?notable'. [Jim Jagielski] + *) mod_proxy: use the original (non absolute) form of the request-line's URI + for requests embedded in CONNECT payloads used to connect SSL backends via + a ProxyRemote forward-proxy. PR 55892. [Hendrik Harms , William Rowe, Yann Ylavic] - *) Move src/main/md5c.c to src/ap/ap_md5c.c; it's httpd-neutral - and this makes its functions available to things in src/support. - [Ken Coar] + *) mpm_winnt: Accept utf-8 (Unicode) service names and descriptions for + internationalization. [William Rowe] -Changes with Apache 1.3.4 + *) mod_log_config: Implement logging for sub second timestamps and + request end time. [Rainer Jung] - *) Renamed macros status_drops_connection to ap_status_drops_connection - and vestigial scan_script_header to ap_scan_script_header_err, - mostly for aesthetic reasons. [Roy Fielding] + *) mod_log_config: Ensure that time data is consistent if multiple + duration patterns are used in combination, e.g. %D and %{ms}T. + [Rainer Jung] - *) The query switch "httpd -S" didn't exit after showing the - vhost settings. That was inconsistent with the other query functions. - [Martin Kraemer] + *) mod_log_config: Add "%{UNIT}T" format to output request duration in + seconds, milliseconds or microseconds depending on UNIT ("s", "ms", "us"). + [Ben Reser, Rainer Jung] - *) Moved the MODULE_MAGIC_COOKIE from before the versions and - filename to the end of the STANDARD_MODULE_STUFF. Its - presence at the beginning prevented reporting of the filename - for modules compiled before 1 January 1999. [Ken Coar] + *) In alignment with RFC 7525, the default recommended SSLCipherSuite + and SSLProxyCipherSuite now exclude RC4 as well as MD5. Also, the + default recommended SSLProtocol and SSLProxyProtocol directives now + exclude SSLv3. Existing configurations must be adjusted by the + administrator. [William Rowe] - *) SECURITY: ap_os_is_filename_valid() has been added to Win32 - to detect and prevent access to special DOS device file names. - [Paul Sutton, Ken Parzygnat] - - *) WIN32: Created new makefiles Makefile_win32.txt (normal build) - and Makefile_win32_debug.txt (debug build) that work on Win95. - Run each of the following from the src directory: - nmake /f Makefile_win32.txt # compiles normal build - nmake /f Makefile_win32.txt install # compiles and installs - nmake /f Makefile_win32.txt clean # removes compiled junk - nmake /f Makefile_win32_debug.txt # compiles debug build - nmake /f Makefile_win32_debug.txt install - nmake /f Makefile_win32_debug.txt clean - [Roy Fielding] - - *) Added binbuild.sh and findprg.sh helpers to make it easier for us - to build binary distributions. [Lars Eilebrecht] - - *) IndexOptions SuppressColumnSorting only turned off making - the column headers anchors; you could still change the display - order by manually adding a '?N=A' or similar query string to the - URL. Now SuppressColumnSorting locks in the sort order so - it can't be overridden this way. [Ken Coar] - - *) Added IndexOrderDefault directive to supply a default sort order - for FancyIndexed directory listings. [Ken Coar] PR#1699 - - *) Change the ap_assert macro to a variant that works on all platforms. - [Richard Prinz ] PR#2575 - - *) Make sure under ELF-based NetBSD (now) and OpenBSD (future) we don't - search for an underscore on dlsym() (as it's already the case - for FreeBSD 3.0). [Todd Vierling ] PR#2462 - - *) Small fix for mod_env.html: The module was documented as to be _not_ - compiled into Apache per default, although it _IS_ compiled into - Apache per default. [Sim Harbert ] PR#3572 - - *) Instead of fixing a bug in the generation procedure for config.status (a - backslash was missing) we remove the bug together with it's complete - context because the special cases of the past can now no longer occur - because of the recent magic for the --with-layout default. - [Ralf S. Engelschall] PR#3590 + *) core: Avoid potential use of uninitialized (NULL) request data in + request line error path. [Yann Ylavic] - *) Make top-level Makefile aware of a parallel build procedures (make -j) by - making sure the src/support/ tools are _forced_ to be build last (they - depend on other libraries). - [Markus Theissinger ] - - *) Fix installation procedure: Now that os-inline.c is actually used (a - recently fixed bug prevented this) we need to also install os-include.c - in addition to os.h into the PREFIX/include/ location or building of - module DSOs with APXS fails. [Ralf S. Engelschall] PR#3527 - - *) Added MODULE_MAGIC_COOKIE as the first field in a module structure to - allow us to distinguish between a garbled DSO (or even a file which isn't - an Apache module DSO at all) and a DSO which doesn't match the current - Apache API. [Ralf S. Engelschall] PR#3152 + *) mod_proxy_http: Use the "Connection: close" header for requests to + backends not recycling connections (disablereuse), including the default + reverse and forward proxies. [Yann Ylavic] + + *) mod_proxy: Add ap_connection_reusable() for checking if a connection + is reusable as of this point in processing. [Jeff Trawick] + + *) mod_proxy: Reuse proxy/balancer workers' parameters and scores across + graceful restarts, even if new workers are added, old ones removed, or + the order changes. [Jan Kaluza, Yann Ylavic] + + *) mod_ssl: 'SSLProtocol ALL' was being ignored in virtual host context. + PR 57100. [Michael Kaufmann , + Yann Ylavic] + + *) mod_ssl: Improve handling of ephemeral DH and ECDH keys by + allowing custom parameters to be configured via SSLCertificateFile, + and by adding standardized DH parameters for 1024/2048/3072/4096 bits. + Unless custom parameters are configured, the standardized parameters + are applied based on the certificate's RSA/DSA key size. [Kaspar Brand] - *) Two minor enhancements to mod_rewrite: First RewriteRule now also - supports the ``nocase|NC'' flag (as RewriteCond already does for ages) to - match case insensitive (this especially avoids nasty patterns like - `[tT][eE][sS][tT]'). Second two additional internal map functions - `escape' and `unescape' were added which can be used to escape/unescape - to/from hex-encodings in URLs parts (this is especially useful in - combination with map lookups). - [Magnus Bodin, Ian Kallen, Ralf S. Engelschall] - - *) Renamed the macro escape_uri() to ap_escape_uri() which was - forgotten (because it was a macro) in the symbol renaming process. - [Ralf S. Engelschall] - - *) Fix some inconsistencies related to the scopes of directives. The only - user visible change is that the directives `UseCanonicalName' and - `ContentDigest' now use the (more correct) `Options' scope instead of - (less correct) `AuthConfig' scope. [Ralf S. Engelschall] - - *) Using DSO, the Server token was being mangled. Specifically, the - module's token was being added first before the Apache token. This - has been fixed. [Jim Jagielski] - - *) Major overhaul of mod_negotiation.c, part 2. - - properly handle "identity" within Accept-Encoding. - - allow encoded variants in RVSA negotiation and let them appear in - the Alternates field using the non-standard "encoding" tag-list. - - fixed both negotiation algorithms so that an explicitly accepted - encoding is preferred over no encoding if "identity" is not - included within Accept-Encoding. - - added ap_array_pstrcat() to alloc.c for efficient concatenation - of large substring sequences. - - replaced O(n^2) memory hogs in mod_negotiation with ap_array_pstrcat. - [Roy Fielding] - - *) Major overhaul of mod_negotiation.c, part 1. - - cleanups to mod_negotiation comments and code structure - - made compliant with HTTP/1.1 proposed standard (rfc2068) and added - support for everything in the upcoming HTTP/1.1 - revision (draft-ietf-http-v11-spec-rev-06.txt). - - language tag matching also handles tags with more than 2 - levels like x-y-z - - empty Accept, Accept-Language, Accept-Charset headers are - processed correctly; previously an empty header would make all - values acceptable instead of unacceptable. - - allowed for q values in Accept-Encoding - - added support for transparent content negotiation (rfc2295 and - rfc2296) (though we do not implement all features in these drafts, - e.g. no feature negotiation). Removed old experimental version. - - implemented 'structured entity tags' for better cache correctness - (structured entity tags ensure that caches which can deal with Vary - will (eventually) be updated if the set of variants on the server - is changed) - - this involved adding a vlist_validator element to request_rec - - this involved adding the ap_make_etag() function to the global API - - modified guessing of charsets used by Apache negotiation algorithm - to guess 'no charset' if the variant is not a text/* type - - added code to sort multiviews variants into a canonical order so that - negotiation results are consistent across backup/restores and mirrors - - removed possibility of a type map file resolving to another type map - file as its best variant - [Koen Holtman, Roy Fielding, Lars Eilebrecht] PR#3451, 3299, 1987 - - *) RFC2396 allows the syntax http://host:/path (with no port number) - but the proxy disallowed it (ap_proxy_canon_netloc()). - [David Kristol ] PR#3530 - - *) When modules update/modify the file name in the configfile_t structure, - syntax errors will report the updated name, not the original one. - [Fabien Coelho ] PR#3573 - - *) Correct some filename case assumptions from WIN32 to - CASE_BLIND_FILESYSTEM. [Brian Havard ] - - *) For %v log ServerName regardless of the UseCanonicalName - setting (similarly for %p). [Dean Gaudet] - - *) Configure was initializing the variables $OSDIR, $INCDIR and $SHELL - rather late (too late for some invocations of TestCompile). - This improves the make environment available to TestCompile and - the *.module scripts. [Martin Kraemer] - - *) The hashbang emulation code in ap_execve.c would interpret - #!/hashbang/scripts correctly, but failed to fall back to a - standard shell for scripts which did NOT start with #! - Now SHELL_PATH is started in these cases. [Martin Kraemer] - - *) PORT: Added the Cyberguard V2 port [Richard Stagg ] - PR#3336 - - *) Update APXS manual page: some -q option arguments were missing - and another was incorrect. [Mark Anderson ] PR#3553 - - *) Cleanup the command line options: `-?' was documented to show - the usage list but does it with an error because `?' is not a valid - command. OTOH a lot of users expect `-h' to print such a usage list and - instead are annoyed for ages by our huge unreadable list of directives. - So we now changed the command line options this way: - 1. `-L' => `-R' - Intent: we need `-L' to be free, and `-R' for the DSO run-time path is - very similar to the popular linker option. - 2. `-h' => `-L' - Intent: while -l gives the small list of modules, -L now gives the - large list of directives implemented by these modules. This is also - consistent with -v (short version info) and -V (large version info). - 3. `-?' => `-h' - Intent: it's now the expected option ;-) - The manual page was adjusted accordingly. - [Ralf S. Engelschall] PR#2714 - - *) Fixed problem of fclose() on an unopened file in suexec if LOG_EXEC - wasn't defined. [Rick Franchuk ] - - *) Removed recently introduced bugs and disfigurements in APACI: - o fixed argument line processing: using $args was broken: It was not - initialized and using args="$args $apc_option" and even args="$args - \"$apc_option\"" fails in the second processing round for any arguments - containing whitespaces. The only correct way is to use the construct - "$@" (but not possible here) or iterate _both_ times over the implicit - argument line (no argument to for-loop) which is what we now use. - o make --with-layout=Apache the default without creating - redundancy (copying the --with-layout block in the argument parsing - loop). We achieve this by using the "$@" construct together with the - `set' command to prepend --with-layout=Apache to the command line in - case --with-layout is not used. - o fixed auto-suffix handling now that config.layout exists. - Paths which are auto-suffixed are marked with a trailing plus sign in - config.layout and every path now can be marked this way (not only the - four paths for which we do it currently). Additionally the suffix is - no longer a static one. Instead it's now `/' where is - the argument of the --target option or per default `httpd'. - o allow also tabs (and only spaces) where we match whitespaces - o various fixes and cleanups related to used shell coding style - o made Jim happy by replacing `Written by' with `Initially written by' ;-) - o trimmed output of --help to fit into 80 columns - [Ralf S. Engelschall] - - *) Added two new core API functions, ap_single_module_configure() and - ap_single_module_init(), which are now used by mod_so to configure a module - after loading. [Ralf S. Engelschall] - - *) PORT: Add defines for USE_FLOCK_SERIALIZED_ACCEPT and - SINGLE_LISTEN_UNSERIALIZED_ACCEPT to NetBSD/OpenBSD section - of ap_config.h to allow serialized accept for multiport listens. - [Roy Fielding, Curt Sampson] PR#3120 - - *) PORT: Fixed a misplaced #endif for NetBSD/OpenBSD section - of ap_config.h that would skip several defines if DEFAULT_GROUP - was overridden. [Roy Fielding] - - *) PORT: The I86 version of DGUX has support for strncasecmp and - strcasecmp, so allow it in ap_config.h. [Amiel Lee Yee] PR#3247 - - *) Fix ordering of definitions in ap_config.h so that ap_inline is - defined before it might be used. [Victor Khimenko] - - *) PORT: Add Dynamic Shared Object (DSO) support for BSDI (v4.0). - [Tom Serkowski ] PR#3453 - - *) Make generation of src/Configuration.apaci more robust: It failed to - differenciate between modules when one module name was a postfix of - another (e.g. cgi vs. fastcgi). We now check for mod_XXX, libXXX and even - just XXX (think about totally non-standard names like "apache_ssl", too). - [Ralf S. Engelschall] PR#3380 - - *) In src/Configure remove the SERVER_SUBVERSION support (already deprecated - since 1.3b7) and make whitespace handling more robust (it failed horrible - when whitespaces were present in the arguments of -D options). - [Ralf S. Engelschall] PR#3240 - - *) Add APACI --shadow=DIR variant (in addition to --shadow). This now first - creates an external package shadow tree in DIR before the local build - shadow tree is generated under DIR. This way one can have the extracted - Apache distribution tree read-only on NFS or CDROM and still build Apache - from these sources. An automatically triggered VPATH-like mechanism is - provided through the TOP variable, too. - [Ralf S. Engelschall, Wilfredo Sanchez ] - - *) Fix negotiation so that a Vary response header is correctly - generated when, for a particular dimension, variants only vary - in having or not having a value for that dimension. [Paul Sutton] - - *) Fix negotiation so that we prefer an encoded variant over an - unencoded variant if the user-agent explicitly says it can - accept that encoding. Previously we always preferred the unencoded - variant. - [Paul Ausbeck , Paul Sutton] PR#3447 + *) mod_ssl: drop support for export-grade ciphers with ephemeral RSA + keys, and unconditionally disable aNULL, eNULL and EXP ciphers + (not overridable via SSLCipherSuite). [Kaspar Brand] + + *) mod_ssl: Add support for configuring persistent TLS session ticket + encryption/decryption keys (useful for clustered environments). + [Paul Querna, Kaspar Brand] + + *) SSLProtocol and SSLCipherSuite recommendations in the example/default + conf/extra/httpd-ssl.conf file are now global in scope, affecting all + VirtualHosts (matching 2.4 default configuration). [William Rowe] + + *) mod_authn_dbd: Fix lifetime of DB lookup entries independently of the + selected DB engine. PR 46421. [Jan Kaluza]. + + *) Turn static function get_server_name_for_url() into public + ap_get_server_name_for_url() and use it where appropriate. This + fixes mod_rewrite generating invalid URLs for redirects to IPv6 + literal addresses. PR 52831 [Stefan Fritsch] + + *) dav_validate_request: avoid validating locks and ETags when there are + no If headers providing them on a resource we aren't modifying. + [Ben Reser] + + *) mod_ssl: New directive SSLSessionTickets (On|Off). + The directive controls the use of TLS session tickets (RFC 5077), + default value is "On" (unchanged behavior). + Session ticket creation uses a random key created during web + server startup and recreated during restarts. No other key + recreation mechanism is available currently. Therefore using session + tickets without restarting the web server with an appropriate frequency + (e.g. daily) compromises perfect forward secrecy. [Rainer Jung] + + *) mod_deflate: Define APR_INT32_MAX when it is missing so to be able to + compile against APR-1.2.x (minimum required version). [Yann Ylavic] + + *) mod_reqtimeout: Don't let pipelining checks interfere with the timeouts + computed for subsequent requests. PR 56729. [Eric Covener] + +Changes with Apache 2.2.29 + + *) Corrected docs/manual pages for new MergeTrailers directive and other + out of date documentation. [William Rowe] + +Changes with Apache 2.2.28 (not released) + + *) SECURITY: CVE-2014-0118 (cve.mitre.org) + mod_deflate: The DEFLATE input filter (inflates request bodies) now + limits the length and compression ratio of inflated request bodies to avoid + denial of service via highly compressed bodies. See directives + DeflateInflateLimitRequestBody, DeflateInflateRatioLimit, + and DeflateInflateRatioBurst. [Yann Ylavic, Eric Covener] + + *) SECURITY: CVE-2014-0231 (cve.mitre.org) + mod_cgid: Fix a denial of service against CGI scripts that do + not consume stdin that could lead to lingering HTTPD child processes + filling up the scoreboard and eventually hanging the server. By + default, the client I/O timeout (Timeout directive) now applies to + communication with scripts. The CGIDScriptTimeout directive can be + used to set a different timeout for communication with scripts. + [Rainer Jung, Eric Covener, Yann Ylavic] + + *) SECURITY: CVE-2014-0226 (cve.mitre.org) + Fix a race condition in scoreboard handling, which could lead to + a heap buffer overflow. [Joe Orton, Eric Covener, Jeff Trawick] - *) Fix APXS tool: query variables LIBS_SHLIB and TARGET were not recognized - and the usage page was inconsistent with the functionality and manpage. - [Ralf S. Engelschall] - - *) Allow special options -Wc,xxx and -Wl,xxx on APXS compile/link command. - They can occur multiple times and their arguments (`xxx') are passed AS - IS to the compiler/linker command. [Ralf S. Engelschall] - - *) Fixed possible (but harmless in practice) bug in the DBM lookup - procedure of mod_rewrite: very long keys were truncated. - [Ralf S. Engelschall] - - *) Added a generic --with-layout=[FILE:]ID option. ID here is a layout - identifier, currently "Apache" and "GNU" are pre-defined in the file - config.layout. Custom layouts are possible by using FILE:ID as the - argument where the layout ID is taken from FILE. - - The config.layout file consists of .. sections - where inside those sections "path_variable: path_value" pairs can be - specified. These lines are converted to path_variable='path_value'. - - *) Add a DefaultLanguage directive so that files missing a language - extension (e.g., .fr, .de) can be labelled as being some other - default language. DefaultLanguage can appear in and - containers as well as .htaccess files. [Paul Sutton] - PR#1180 - - *) Fix TARGET configuration when configuring and installing using - APACI configure. TARGET now defines the basename of the configuration - file, startup script, manual page, etc. log_error_core() now reports - the server binary name given by argv[0]. TARGET can now also be defined - with --target=TARGET parameter passed to APACI configure. - [Ralf Engelschall, Randy Terbush] - - *) mod_include.c:handle_perl() now properly tests for OPT_INCNOEXEC - rather than OPT_INCLUDES [Rainer Schoepf ] - - *) ap_md5_binary() was using sprintf() rather than a table lookup - to convert binary bytes to hex digits. - [Ronald Tschalär ] PR#3409 - - *) Fix SEGV in TCN negotiation if no variants are acceptable. - [Martin Plechsmid ] PR#1987 - - *) API: ap_exists_config_define() function is now "public" [Doug MacEachern] - - *) Fix documentation of `Action' directive: It can activate a CGI script - when either a handler or a MIME content type is triggered by the request. - [Andrew Pimlott ] PR#3340 - - *) Document the `add' command of `dbmmanage' in `dbmmanage.1' manpage. - [David MacKenzie ] PR#3394 - - *) Ignore a "ErrorDocument 401" directive with a full URL and write a - notice to the error log. It is not possible to send a 401 response - and a redirect at the same time. [Lars Eilebrecht] - - *) Fallback to native compilers for IRIX-32 platform. It seems that - a gcc 2.8.1 compiled apache is logging client addresses with all - bits set (255.255.255.255). This is the second such problem caused - by gcc 2.8.1 compiler. The first being broken semaphore locking. - [Randy Terbush] - - *) Updated mime.types to reflect current Internet media types - and include a URL to the registry. - [Manoj Kasichainula, Roy Fielding] PR#2380, 2286, 2246 - - *) SECURITY: Do a more complete check in mod_include to avoid - an infinite loop of recursive SSI includes. [Marc Slemko] PR#3323 - - *) Add APACI --suexec-docroot and --suexec-logfile options which can be - used to set the document root directory (DOC_ROOT) and the suexec - logfile (LOG_EXEC), respectively. Additionally the --layout option - was changed to show more information about the suEXEC setup. - [Lars Eilebrecht] PR#3316, 3357, 3361 - - *) Added the last two WebDAV status codes of 424 (Failed Dependency) - and 507 (Insufficient Storage) for use by third-party modules. - [Roy Fielding] - - *) Enabled all of the WebDAV method names for use by third-party - modules, Limit, and Script directives. That includes PATCH, - PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, and UNLOCK. - Improved mod_actions.c so that it can use any of the methods - defined in httpd.h. Added ap_method_number_of(method) for - getting the internal method number. [Roy Fielding] - - *) PORT: Add a port to the TPF OS. [Joe Moenich and - others at IBM] - - *) Fix problems with handling of UNC names (e.g., \\host\path) - on Win32. [Ken Parzygnat ] - - *) Rework os_canonical_*() on Win32 so it's simpler, more - robust, and works. [Ken Parzygnat ] - PR#2555, 2915, 3064, 3232 - - *) Work around incomplete implementation of strftime on Win32. - [Manoj Kasichainula, Ken Parzygnat ] - - *) Move a typedef to fix compile problems on Linux with 1.x kernels. - [Manoj Kasichainula] PR#3177 - - *) PORT: Add a port to the Concurrent PowerMAX OS. [Tom Horsley - ] - - *) WIN32: Log more explicit error messages if spawning an interpreted - script failed, including the command line used to attempt to execute - the interpreter and the Win32 error code returned. [Marc Slemko] - - *) Disable sending of error-notes on a 500 (Internal Server Error) response - since it often includes file path info. Enable sending of error-notes - on a 501 (Method Not Implemented). [Roy Fielding] PR#3173 - - *) http_config.c would respond with 501 (Method Not Implemented) if a - content type handler was specified but could not be found, which - should have been a 500 response. Likewise, mod_proxy.c would responsd - with a 501 if the URI scheme is unrecognized instead of the correct - response of 403 (Forbidden). [Roy Fielding] - - *) SECURITY: Eliminate DoS attack when a bad URI path contains what - looks like a printf format escape. [Marc Slemko, Studenten Net Twente] - - *) Fix in mod_autoindex: for files where the last modified time stamp was - unavailable, an empty string was printed which was 2 bytes short. - The size and description columns were therefore not aligned correctly. - [Martin Kraemer] (no PR#) - - *) Update BS2000 OS code to work with recent versions. Starting with - release A17, the child fork() must be replaced by a _rfork(). - (BS2000 only) [Martin Kraemer] - - *) Add the actual server_rec structure of the specific Vhost to the - scoreboard file and avoid a string copy (as well as allow some - further future enhancements). [Harrie Hazewinkel - ] - - *) Add APACI --permute-module=foo:bar option which can be used to - on-the-fly/batch permute the order of two modules (mod_foo and mod_bar) - in the Configuration[.apaci] file. Two special and important variants are - supported for the option argument: first BEGIN:foo which permutes module - mod_foo with the begin of the module list, i.e. it `moves' the module to - the begin of the list (gives it lowest priority). And second foo:END - which permutes mod_foo with the end of the module list, i.e. it `moves' - the module to the end of the list (gives it highest priority). - [Ralf S. Engelschall] - - *) Fix problem with 'apache -k shutdown' and startup event - synchronisation (Win32). [Ken Parzygnat ] - PR#3255 - - *) The config parser wasn't correctly noticing a missing '>' - on container start lines (e.g., it wouldn't spot - "] - PR#3279 - - *) Add a 'RemoveHandler' directive which will selectively remove - all handler associations for the specified file extensions. - [Ryan Bloom ] PR#1799. - - *) Properly handle & allow "nul" and ".*/null" in AccessConfig and - ResourceConfig directives on Win32. Also add a note to the effect - of 'useless User directive ignored on Win32' to the errorlog if - a User directive is encountered on Win32. - [Ken Parzygnat ] PR#2078, 2303. - - *) Fix multiple whitespace handling in imagemaps for mod_imap which was - broken since Apache 1.3.1 where we took out compressing of multiple - spaces in ap_cfg_getline(). - [Ivan Richwalski ] PR#3249 - - *) Fix Berkeley-DB/2.x support in mod_auth_db: The data structures were not - initialized correctly and the db_open() call used an invalid mode - parameter. [Ron Klatchko ] PR#3171 - - *) PORT: DSO support for UnixWare 7 - [Ralf S. Engelschall, Ron Record ] - - *) Merge the contents of the {srm,access}.conf-dist* files into the - httpd.conf-dist* files. The srm and access files now contain - only comments, and httpd.conf has all the combined contents in - a rational order. [Ken Coar] - - *) PORT: DSO/ELF support for FreeBSD 3.0. - [Ralf S. Engelschall, Dirk Froemberg ] - - *) Add a "default-handler" handler that calls the default_hander() - function which is normally called for static content. This allows - you to override a specific handler. [Marc Slemko] - - *) Further simplify checking for absolute paths by replacing an - hard-coded syntax check with a call to a routine we already created to - do this. [Ken Parzygnat ] PR#2976, 3074 - - *) Log an error if we encounter a malformed "require" directive - in mod_auth if we know that we know that no other module can - deal with it. [Marc Slemko] - - *) Remove ap_private_extern method of hiding conflicting symbols - on the NEXT platform because it is not correct for all versions, - and the versions for which it is correct are unknown. - [Wilfredo Sanchez ] - - *) Fix inheritance of IndexOptions NameWidth and remove unintended - restriction on +NameWidth, +IconHeight, and +IconWidth. [Ken Coar] - - *) Fix per-directory config merging for cases in which a 500 error - is encountered in an .htaccess file somewhere down the tree. - [Ken Coar] PR#2409 - - *) Minor performance improvement to ap_escape_html(). [Roy Fielding] - - *) Fixed a segmentation violation in mod_proxy when a response is - non-cachable. [Roy Fielding, traced by Doug Bloebaum]. PR#2950, 3056 + *) SECURITY: CVE-2013-5704 (cve.mitre.org) + core: HTTP trailers could be used to replace HTTP headers + late during request processing, potentially undoing or + otherwise confusing modules that examined or modified + request headers earlier. Adds "MergeTrailers" directive to restore + legacy behavior. [Edward Lu, Yann Ylavic, Joe Orton, Eric Covener] -Changes with Apache 1.3.3 + *) core: Detect incomplete request and response bodies, log an error and + forward it to the underlying filters. PR 55475. [Yann Ylavic] - *) Added a complete implementation of the Expect header field as - specified in rev-05 of HTTP/1.1. Disabled the 100 Continue - response when we already know the final status, which is mighty - useful for PUT responses that result in 302 or 401. [Roy Fielding] + *) mod_deflate: Handle Zlib header and validation bytes received in multiple + chunks. PR 46146. [Yann Ylavic] - *) Remove extra trailing whitespace from the getline results as part - of the protocol processing, which is extra nice because it works - between continuation lines, is almost no cost in the normal case - of no extra whitespace, and saves memory. [Roy Fielding] - - *) Added new HTTP status codes and default response bodies from the - revised HTTP/1.1 (307, 416, 417), WebDAV (102, 207, 422, 423), and - HTTP Extension Framework (510) specifications. Did not add the - WebDAV 424 and 425 codes because they are bogus. We don't use any - of these codes yet, but they are now available to 3rd-party modules. - [Roy Fielding] - - *) Fix a possible race condition between timed-out requests and the - ap_bhalfduplex select that might result in an infinite loop on - platforms that do not validate the descriptor. [Roy Fielding] - - *) WIN32: Add "-k shutdown" and "-k restart" options to signal a - running Apache server [Paul Sutton] - - *) Fix mod_autoindex bug where directories got a size of "0k" instead - of "-". [Martin Plechsmid , Marc Slemko] - PR#3130 - - *) PORT: DRS 6000 machine. [Paul Debleecker ] - - *) Add the server signature text (from the core ServerSignature directive) - to the list of envariables available to scripts, SSI, and the like. - [Ken Coar] - - *) PORT: Fix sys/resource.h handling for SCO 3.x platform. - [M. Laak ] PR#3108 + *) mod_proxy: Don't reuse a SSL backend connection whose requested SNI + differs. PR 55782. [Yann Ylavic] - *) Fallback from sysconf-based to plain HZ-based `ticks per second' - calculation in mod_status for all systems which don't have POSIX - sysconf() (like UTS 2.1) and not only for the NEXT platform. - [Dave Dykstra ] PR#3055 - - *) Fix `require ...' directive parsing in mod_auth, mod_auth_dbm and - mod_auth_db by using ap_getword_white() (which uses ap_isspace()) - instead of ap_getword(..., ' ') (which parses only according to spaces - but not tabs). [James Morris , - Ralf S. Engelschall] PR#3105 + *) mod_deflate: Fix inflation of files larger than 4GB. PR 56062. + [Lukas Bezdicka ] - *) Fix the SERVER_NAME variable under sub-request situations (where - `UseCanonicalName off' is used) like CGI's called from SSI pages or - RewriteCond variables by adopting r->hostname to sub-requests. - [James Grinter ] PR#3111 + *) mod_dav: Fix improper encoding in PROPFIND responses. PR 56480. + [Ben Reser] - *) Fix stderr redirection under syslog-based error logging situation. - [Youichirou Koga ] PR#3095 + *) mod_ssl: Extend the scope of SSLSessionCacheTimeout to sessions + resumed by TLS session resumption (RFC 5077). [Rainer Jung] - *) Document `ErrorLog syslog:facility' variant of error logging. - [Youichirou Koga ] PR#3096 + *) mod_proxy_ajp: Forward local IP address as a custom request attribute + like we already do for the remote port. [Rainer Jung] - *) Fix http://localhost/ hints in top-level INSTALL document. - [Rob Jenson , Ralf S. Engelschall] PR#3088 + *) mod_deflate: Don't fail when flushing inflated data to the user-agent + and that coincides with the end of stream ("Zlib error flushing inflate + buffer"). PR 56196. [Christoph Fausak ] - *) Quote paths in default configuration files. [Wilfredo Sanchez] - - *) PORT: Remove extra HAVE_SYS_RESOURCE_H define for RHAPSODY since - it is now taken care of properly by the header file tests. - [Wilfredo Sanchez ] - - *) Fix problem with scripts and filehandle inheritance on Win32. - [Ken Parzygnat ] PR#2884, 2910 - - *) Win32 name canonicalisation could end up using the server's - working directory to fill in some blanks. [Ken Parzygnat - ] PR#3001 - - *) Correct invalid assumption by ap_sub_req_lookup_file() that all - absolute paths begin with "/" -- because they don't on Win32. - [Ken Parzygnat ] PR#2976, 3074 - - *) Add [REDIRECT_]VARIANTS environment variable to mod_speling - so that ErrorDocument 300 processors can reformat the list - if desired. [Ken Coar] PR#2859 - - *) Add +/- incremental prefixes to IndexOptions keywords, and - enable merging of multiple IndexOptions directives. [Ken Coar] - - *) PORT: Allow GuessOS to recognize Unixware 7.0.1 [Steve Cameron - ] - - *) Reconstructed the loop through multiple htaccess file names so - that missing files are not confused with unreadable files. - [Roy Fielding] - - *) The ap_pfopen and ap_pfdopen routines were failing to protect the - errno on an error, which leads to one error being mistaken for - another when reading non-existent .htaccess files. - [Jim Jagielski] - - *) OS/2: The new header tests get things right, need to update - ap_config.h. [Brian Havard] - - *) The Perl %ENV hash will now be setup by default when using the - mod_include `perl' command [Doug MacEachern] - - *) PORT: Add Pyramid DC/OSx support to configuration mechanism. - [Earle Ake ] - - *) PORT: Fix sys/resource.h handling for Amdahl's UTS 2.1 - [Dave Dykstra ] PR#3054 - - *) Correct comment in mod_log_config.c about its internals. - [Elf Sternberg ] - - *) Avoid possible line overflow in Configure: Use an awkfile to - handle the creation of modules.c [Jim Jagielski] - -Changes with Apache 1.3.2 - - *) Fix bug in ap_remove_module(), which caused problems for dso's - who were the top_module. [Doug MacEachern] - - *) Add support for Berkeley-DB/2.x (in addition to Berkeley-DB/1.x) to - mod_auth_db to both be friendly to users who wants to use this version - and to avoid problems under platforms where only version 2.x is present. - [Dan Jacobowitz , Ralf S. Engelschall] - - *) When using ap_log_rerror(), make the error message available to the - *ERROR_NOTES envariables by default. [Ken Coar] - - *) BS2000 platform only: get rid of the nasty BS2000AuthFile. - You now must define a BS2000Account name for the server User. - This has fewer security implications than the old approach. - [Martin Kraemer] - - *) Fix SHARED_CORE feature for HPUX platform: We now use extension `.sl' - instead of `.so' and `SHLIB_PATH' instead of `LD_LIBRARY_PATH' on this - platform to make the braindead HPUX linker happy. Notice, for the module - DSOs we don't have to use this, because these are loaded manually (and - not via HPUX' dld). [Ralf S. Engelschall] PR#2905, PR#2968 - - *) Remove 64 thread limit on Win32. - [Bill Stoddard ] - - *) Remove redundant substitutions in top-level Makefile.tmpl. - [Ralf S. Engelschall] - - *) Fix APACI's `Group' configuration adjustment - especially for Linux - platforms where `nogroup' exists in /etc/group. [Ralf S. Engelschall] - - *) Make PrintPath work generically instead of having one version - strictly for OS/2. [Jim Jagielski, Brian Havard] - - *) Fix the recently introduced C header file checking: We now use the C - pre-processor pass only (and no longer the complete compiler pass) to - determine whether a C header file exists or not. Because only this way - we're safe against inter-header dependencies (which caused horrible - portability problems). The only drawback is that we now have a CPP - configuration variable which has to be determined first (we do a similar - approach as GNU Autoconf does here). When all fails the user still has - the possibility to override it manually via APACI or src/Configuration. - As a fallback for the header check itself we can directly check the - existance of the file under /usr/include, too. - [Ralf S. Engelschall] PR#2777 - - *) PORT: Added RHAPSODY (Mac OS X Server) support. MAP_TMPFILE defined - as an alternate mechanism for mmap'd shared memory for RHAPSODY. - ap_private_extern defined to hide symbols that conflict with loaded - dynamic libraries on the NEXT and RHAPSODY platforms. - [Wilfredo Sanchez ] - - *) Delete PID file on clean shutdowns. - [Charles Randall ] PR#2947 - - *) Fix mod_auth_*.html documents: NSCA -> NCSA - [Youichirou Koga ] PR#2991 - - *) Fix INSTALL document: www.gnu.ai.mit.edu -> www.gnu.org - [Karl Berry ] PR#2994 - - *) Fix dbmmanage.1 manual page. - [Youichirou Koga ] PR#2992 - - *) Fix possible buffer overflow situation in suexec.c. - [Jeff Stewart ] PR#2790 - - *) Add some more LIBS for the SCO5 platform which are needed for the already - used -lprot. It's actually a bug in SCO5, of course. - [Ronald Record ] PR#2533 - - *) Fix documentation of ProxyPass/ProxyPassReverse according to the - trailing slash problem. [Jon Drukman ] PR#2933 - - *) Remove `-msym' option from LDFLAGS_SHLIB for the Digital UNIX (OSF/1) - platform, because it's only supported under version 4.0 and higher. But - because our GuessOS is still unaware of Digital UNIX versions and the - -msym is just to optimize the DSO statup time a little bit it's safe and - best when we leave it out now. [Ralf S. Engelschall] PR#2969 - - *) Fix the ap_log_error_old(), ap_log_unixerr() and ap_log_printf() - functions: First all three functions no longer fail on strings containing - "%" chars and second ap_log_printf() no longer does a double-formatting - (instead it directly passes through the message to be formatted to the - real internal formatting function). [Ralf S. Engelschall] PR#2941 - - *) Allow "Include" directives anywhere in the server config - files (but not .htaccess files). [Ken Coar] PR#2727 - - *) The proxy was refusing to serve CONNECT requests except to - port 443 (https://) and 563 (snews://). The new AllowCONNECT - directive allows the configuration of the ports to which a - CONNECT is allowed. [Sameer Parekh, Martin Kraemer] - - *) mod_expires will now act on content that is not sent from a file - on disk. Previously it would never add an Expires: header to - any response that did not come from a file on disk; the only - case where it still doesn't (and can't) add one for that type of - content is if you are using a modification date based setting. - [Marc Slemko, Paul Phillips ] - - *) Problems encountered during .htaccess parsing or CGI execution - that lead to a "500 Server Error" condition now provide explanatory - text (in the *ERROR_NOTES envariable) to ErrorDocument 500 scripts. - [Ken Coar] PR#1291 - - *) Add NameWidth keyword to IndexOptions directive so that the - width of the filename column is customisable. [Ken Coar, Dean Gaudet] - PR#1949, 2324. - - *) Recognize lowercase _and_ uppercase `uname' results under - SCO OpenServer. [David Coelho ] - - *) As duplicate "HTTP/1.0 200 OK" lines within the header seem to be - a common problem of (mis-administrated?) IIS servers, make the apache - proxy immune to these errors (and ignore the duplicates, but log - the fact to error_log). [Martin Kraemer], after the proposal in PR#2914 - - *) The ] PR#2866 - - *) Replace the inlined information grabbing stuff for the configuration - adjustment feature (no --without-confadjust) with calls to a new helper - script `buildinfo.sh' which is both more flexible and already proofed to - be more robust against platform differences. This mainly fixes the - recently occured ``sed: command garbled: ...'' problems. - [Ralf S. Engelschall] PR#2776, PR#2848 - - *) Make ab.c again pass ``gcc -Wall -Wshadow -Wpointer-arith -Wcast-align - -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline'' - without complains after we recently added the POST feature. - [Ralf S. Engelschall] - - *) Renamed is_HTTP_xxx() macros to ap_is_HTTP_xxx() name. They are used inside - modules as API functions and we forgot them at the big symbol renaming. - [Ralf S. Engelschall] - - *) Remove bad reference to non-existing SERVER_VERSION in mod_rewrite.html - [Youichirou Koga ] PR#2895 - - *) Dynamically size the filename column of mod_autoindex output. - [Dean Gaudet] - - *) Add the ability to do POST requests to the ab benchmarking tool. - [Kurt Sussman ] PR#2871 - - *) Bump up MAX_ENV_FLAGS in mod_rewrite.h from the too conservatice limit of - 5 to 10 because there are some users out there who always have 5 to 8 - variables in one RewriteRule and had to patch mod_rewrite.h for every - release. So 15 should be now more than enough, even for them. (I never - needed more than 4 in my RewriteRules ;-) - [Ralf S. Engelschall] - - *) Make the proxy generate and understand Via: headers - [Martin Kraemer] + *) mod_cache: Don't remove stale cache entries that cannot be conditionally + revalidated. This prevents the thundering herd protection from serving + stale responses during a revalidation. PR 50317. + [Eric Covener, Jan Kaluza, Ruediger Pluem] - *) Change the proxy to use tables instead of array_headers for - the header lines. [Martin Kraemer] + *) core: Increase TCP_DEFER_ACCEPT socket option to from 1 to 30 seconds. + PR 41270. [Dean Gaudet ] - *) Make sure the config.status file is not overridden when just - ``configure --help'' is used. [Ralf S. Engelschall] PR#2844 +Changes with Apache 2.2.27 - *) Split MODULE_MAGIC_NUMBER into _MAJOR/_MINOR numbers. This should - provide a way to trace API changes that add functionality but do - not create a compatibility issue for precompiled modules, etc. - See include/ap_mmn.h for more details. [Randy Terbush] + *) SECURITY: CVE-2014-0098 (cve.mitre.org) + Clean up cookie logging with fewer redundant string parsing passes. + Log only cookies with a value assignment. Prevents segfaults when + logging truncated cookies. + [William Rowe, Ruediger Pluem, Jim Jagielski] - *) Fix suexec installation under `make install root=xxx' situation. - [Ralf S. Engelschall] + *) SECURITY: CVE-2013-6438 (cve.mitre.org) + mod_dav: Keep track of length of cdata properly when removing + leading spaces. Eliminates a potential denial of service from + specifically crafted DAV WRITE requests + [Amin Tora ] - *) Extend the output of the -V switch to include the paths of all - compiled-in configuration files, if they were overridden at - compile time, for least astonishment of the user. - [Martin Kraemer] + *) core: draft-ietf-httpbis-p1-messaging-23 corrections regarding + TE/CL conflicts. [Yann Ylavic , Jim Jagielski] - *) When READing a request in ExtendedStatus mode, the "old" - vhost, request and client information is not displayed. - [Jim Jagielski] + *) mod_proxy_http: Core dumped under high load. PR 50335. + [Jan Kaluza ] - *) STATUS is no longer available. Full status information now - run-time configurable using the ExtendedStatus directive. - [Jim Jagielski] + *) proxy_util: NULL terminate the right buffer in 'send_http_connect'. + [Christophe Jaillet] - *) SECURITY: CVE-1999-1199 (cve.mitre.org) - Eliminate O(n^2) space DoS attacks (and other O(n^2) - cpu time attacks) in header parsing. Add ap_overlap_tables(), - a function which can be used to perform bulk update operations - on tables in a more efficient manner. [Dean Gaudet] + *) mod_proxy: Remove (never documented) syntax which + is equivalent to . [Christophe Jaillet] - *) SECURITY: Added compile-time and configurable limits for - various aspects of reading a client request to avoid some simple - denial of service attacks, including limits on maximum request-line - size (LimitRequestLine), number of header fields (LimitRequestFields), - and size of any one header field (LimitRequestFieldsize). Also added - a configurable directive LimitRequestBody for limiting the size of the - request message body. [Roy Fielding] + *) mod_ldap: Fix a potential memory leak or corruption. PR 54936. + [Zhenbo Xu ] - *) Make status module aware of DNS and logging states, even if - STATUS not defined. [Jim Jagielski] + *) mod_ssl: Do not perform SNI / Host header comparison in case of a + forward proxy request. [Ruediger Pluem] - *) Fix a problem with the new OS/2 mutexes. [Brian Havard] + *) mod_rewrite: Add mod_rewrite.h to the headers installed on Windows. + PR46679 [Bob Ionescu] - *) Enhance mod_speling so that CheckSpelling can be used in - containers and .htaccess files. [Ken Coar] +Changes with Apache 2.2.26 - *) API: new ap_custom_response() function for hooking into the - ErrorDocument mechanism at runtime [Doug MacEachern] + *) mod_dav: dav_resource->uri treated as unencoded. This was an + unnecessary ABI changed introduced in 2.2.25 PR 55397. [Ben Reser] - *) API: new ap_uuencode() function [Doug MacEachern] + *) mod_dav: Do not validate locks against parent collection of COPY + source URI. PR 55304. [Ben Reser] - *) API: scan_script_header_err_core() now "public" and renamed - ap_scan_script_header_err_core() [Doug MacEachern] + *) mod_ssl: Check SNI hostname against Host header case-insensitively. + PR 49491. [Mayank Agrawal ] - *) The 'status' module will now show the process pid's and their - state even without full STATUS accounting. [Jim Jagielski] + *) mod_ssl: enable support for ECC keys and ECDH ciphers. Tested against + OpenSSL 1.0.0b3. [Vipul Gupta vipul.gupta sun.com, Sander Temme, + Stefan Fritsch] - *) Restore the client IP address to the error log messages, this - was lost during the transition from 1.2 to 1.3. Add a new - function ap_log_rerror() which takes a request_rec * and - formats it appropriately. [Dean Gaudet] PR#2661 + *) mod_ssl: Change default for SSLCompression to off, as compression + causes security issues in most setups. (The so called "CRIME" attack). + [Stefan Fritsch] - *) Cure ap_cfg_getline() of its nasty habit of compressing internal - whitespace in input lines -- including within quoted strings. - [Ken Coar] - but leading and trailing whitespace should continue to be - stripped [Martin Kraemer] + *) mod_ssl: Fix compilation error when OpenSSL does not contain + support for SSLv2. Problem was introduced in 2.2.25. PR 55194. + [Rainer Jung, Kaspar Brand] - *) Cleanup of the PrintPath/PrintPathOS2 helper functions. Avoid - the ugly use of an env. variable and use command-line args for - alternate $PATH. Make more like advanced 'type's as well. - [Jim Jagielski] + *) mod_dav: Fix double encoding of URIs in XML and Location header (caused + by unintential ABI change in 2.2.25). PR 55397. [Ben Reser] - *) The IRIXN32 Rule was being ignored. Configure now correctly adds - -n32 only if IRIXN32 says to. [Jim Jagielski, Alain St-Denis - ] PR#2736 +Changes with Apache 2.2.25 - *) Clean up a warning in mod_proxy. [Ralf S. Engelschall] + *) SECURITY: CVE-2013-1896 (cve.mitre.org) + mod_dav: Sending a MERGE request against a URI handled by mod_dav_svn with + the source href (sent as part of the request body as XML) pointing to a + URI that is not configured for DAV will trigger a segfault. [Ben Reser + ] - *) Renamed __EMX__ (internal define of the gcc port under OS/2) to OS2 - following the same idea as "MSVC vs WIN32". Additionally the src/os/emx/ - directory was renamed to src/os/os2/ for consistency. - [Brian Havard, Ralf S. Engelschall] + *) SECURITY: CVE-2013-1862 (cve.mitre.org) + mod_rewrite: Ensure that client data written to the RewriteLog is + escaped to prevent terminal escape sequences from entering the + log file. [Eric Covener, Jeff Trawick, Joe Orton] - *) Add new Rule SHARED_CHAIN which can be used to enable linking of DSO - files (here modules) against other DSO files (here shared libraries). - This is done by determining a subset of LIBS which can be safely used for - linking the DSOs, i.e. PIC libs and shared libs. Currently the rule is - disabled for all platforms to avoid problems with this (experimental) - rule. But we provide it now for those people how ran into problems and - want to came out by forcing linking against DSOs. - [Ralf S. Engelschall] PR#2587 + *) core: Limit ap_pregsub() to 64MB and add ap_pregsub_ex() for longer + strings. The default limit for ap_pregsub() can be adjusted at compile + time by defining AP_PREGSUB_MAXLEN. [Stefan Fritsch, Jeff Trawick] - *) Fix suEXEC start message: Has to be of `notice' level to really get - printed together with the standard startup message because the `notice' - level is handled special inside ap_log_error() for startup messages. - [Ralf S. Engelschall] PR#2761 PR#2761 PR#2765 + *) core: Support the SINGLE_LISTEN_UNSERIALIZED_ACCEPT optimization + on Linux kernel versions 3.x and above. PR 55121. [Bradley Heilbrun + ] - *) Add correct `model' MIME types from RFC2077 to mime.types file. - [Ralf S. Engelschall] PR#2732 + *) mod_setenvif: Log error on substitution overflow. + [Stefan Fritsch] - *) Fixed examples in mod_rewrite.html document. - [Youichirou Koga , Ralf S. Engelschall] PR#2756 + *) mod_ssl/proxy: enable the SNI extension for backend TLS connections + [Kaspar Brand] - *) Allow ap_read_request errors to propagate through the normal request - handling loop so that the connection can be properly closed with - lingering_close, thus avoiding a potential TCP reset that would - cause the client to miss the HTTP error response. [Roy Fielding] + *) mod_proxy: Use the the same hostname for SNI as for the HTTP request when + forwarding to SSL backends. PR 53134. + [Michael Weiser , Ruediger Pluem] - *) One more portability fix for APACI shadow tree support: Swap order of awk - and sed in top-level configure script to avoid sed fails on some - platforms (for instance SunOS 4.1.3 and NCR SysV) because of the - non-newline-termined output of Awk. [Ralf S. Engelschall] PR#2729 + *) mod_ssl: Quiet FIPS mode weak keys disabled and FIPS not selected emits + in the error log to debug level. [William Rowe] - *) PORT: NEC EWS4800 support. - [MATSUURA Takanori ] + *) mod_ssl: Catch missing, mismatched or encrypted client cert/key pairs + with SSLProxyMachineCertificateFile/Path directives. PR 52212, PR 54698. + [Keith Burdis , Joe Orton, Kaspar Brand] - *) Fix a segfault in the proxy on OS/2. [Brian Havard] + *) mod_proxy_balancer: Added balancer parameter failontimeout to allow server + admin to configure an IO timeout as an error in the balancer. + [Daniel Ruggeri] - *) Fix Win32 part of ap_spawn_child() by providing a reasonable child_info - structure instead of just NULL. This fixes at least the RewriteMap - programs under Win32. [Marco De Michele ] PR#2483 + *) mod_authnz_ldap: Allow using exec: calls to obtain LDAP bind + password. [Daniel Ruggeri] - *) Add workaround to top-level `configure' script for brain dead - `echo' commands which interpet escape sequences per default. - [Ralf S. Engelschall] PR#2654 + *) htdigest: Fix buffer overflow when reading digest password file + with very long lines. PR 54893. [Rainer Jung] - *) Make sure that the path to the Perl interpreter is correctly - adjusted under `make install' also for the printenv CGI script. - [Ralf S. Engelschall] PR#2595 - - *) Update the mod_rewrite.html document to correctly reflect the situation - of the `proxy' (`[P]') feature. [Ralf S. Engelschall] PR#2679 - - *) Fix `install-includes' sub-target of `install' target in top-level - Makefile.tmpl: The umask+cp approach didn't work as expected (especially - for users which extracted the distribution under 'umask 077'), so replace - it by an explicit cp+chmod approach. - [Richard Lloyd, Curt Sampson, Ralf S. Engelschall] PR#2656 PR#2626 - - *) Fix `distclean' and `clean' targets in src/Makefile.tmpl to have same - behavior and to cleanup correctly even under enabled SHARED_CORE rule. - [Ralf S. Engelschall] + *) mod_dav: Ensure URI is correctly uriencoded on return. PR 54611 + [Timothy Wood ] - *) Use a more straight forward and thus less problematic Sed command in - src/helper/mkdir.sh script. [Ralf S. Engelschall] + *) mod_dav: Make sure that when we prepare an If URL for Etag comparison, + we compare unencoded paths. PR 53910 [Timothy Wood ] - *) Make sure the `configure' scripts doesn't fail when trying to guess the - domainname of the machine and there are multiple `domainname' and - `search' entries in /etc/resolv.conf. - [Ralf S. Engelschall] PR#2710 + *) mod_dav: Sending an If or If-Match header with an invalid ETag doesn't + result in a 412 Precondition Failed for a COPY operation. PR54610 + [Timothy Wood ] - *) Add note about the SHARED_CORE requirement on some platforms also to the - INSTALL file because a lot of users don't read htdocs/manual/dso.html - first. [Ralf S. Engelschall] PR#2701 + *) mod_dav: When a PROPPATCH attempts to remove a non-existent dead + property on a resource for which there is no dead property in the same + namespace httpd segfaults. PR 52559 [Diego Santa Cruz + ] - *) Fix document "hyperlink" for dso.html in src/Configuration.tmpl - [Knut A.Syed ] PR#2674 + *) mod_dav: Do not fail PROPPATCH when prop namespace is not known. + PR 52559 [Diego Santa Cruz ] - *) Modify mod_rewrite to update the Vary response field if the URL rewriting - engine does any manipulations or decisions based upon request fields. - [Ken Coar] PR#1644 + *) mod_dav: Do not segfault on PROPFIND with a zero length DBM. + PR 52559 [Diego Santa Cruz ] - *) Document the special APACI behavior for installation paths where - ``/apache'' is appended to paths under some (well defined, of course) - situations to prevent pollution of system locations with Apache files. - [Ralf S. Engelschall] PR#2660 +Changes with Apache 2.2.24 - *) Fixed problem with buffered response message not being sent for - the read_request error conditions of URI-too-long (414) and - malformed header fields (400). [Roy Fielding] PR#2646 + *) SECURITY: CVE-2012-3499 (cve.mitre.org) + Various XSS flaws due to unescaped hostnames and URIs HTML output in + mod_info, mod_status, mod_imagemap, mod_ldap, and mod_proxy_ftp. + [Jim Jagielski, Stefan Fritsch, Niels Heinen ] - *) Add support for the Max-Forwards: header line required by RFC2068 for - the TRACE method. This allows apache to TRACE along a chain of proxies - up to a predetermined depth. [Martin Kraemer] + *) SECURITY: CVE-2012-4558 (cve.mitre.org) + XSS in mod_proxy_balancer manager interface. [Jim Jagielski, + Niels Heinen ] - *) Fix SHARED_CORE rule: The CFLAGS_SHLIB variable is no longer doubled - (compilers complained) and the .so.V.R.P filename extension was adjusted - to correctly reflect the 1.3.2 version. - [Ralf S. Engelschall] PR#2644 + *) mod_rewrite: Stop merging RewriteBase down to subdirectories + unless new option 'RewriteOptions MergeBase' is configured. + Merging RewriteBase was unconditionally turned on in 2.2.23. + PR 53963. [Eric Covener] - *) SECURITY: Plug "..." and other canonicalization holes under OS/2. - [Brian Havard] - - *) PORT: implement serialized accepts for OS/2. [Brian Havard] + *) mod_ssl: Send the error message for speaking http to an https port using + HTTP/1.0 instead of HTTP/0.9, and omit the link that may be wrong when + using SNI. PR 50823. [Stefan Fritsch] - *) mod_include had problems with the fsize and flastmod directives - under WIN32. Fix also avoids the minor security hole of using - ".." paths for fsize and flastmod. - [Manoj Kasichainula ] PR#2355 + *) mod_ssl: log revoked certificates at level INFO + instead of DEBUG. PR 52162. [Stefan Fritsch] - *) Fixed some Makefile dependency problems. [Dean Gaudet] + *) mod_proxy_ajp: Support unknown HTTP methods. PR 54416. + [Rainer Jung] -Changes with Apache 1.3.1 + *) mod_dir: Add support for the value 'disabled' in FallbackResource. + [Vincent Deffontaines] - *) Disable the incorrect entry for application/msword in the - mod_mime_magic "magic" file because it also matches other Office - documents. [Ralf S. Engelschall] PR#2608 + *) mod_ldap: Fix regression in handling "server unavailable" errors on + Windows. PR 54140. [Eric Covener] - *) Fix broken RANLIB handling in src/Configure (the entry from - src/Configuration.tmpl was ignored) and additionally force RANLIB to - /bin/true under HP/UX where ranlib exists but is deprecated. - [Ralf S. Engelschall] PR#2627 + *) mod_ssl: fix a regression with the string rendering of the "UID" RDN + introduced in 2.2.15. PR 54510. [Kaspar Brand] - *) 'apachectl status' failed on some systems. - [Steve VanDevender , Lars Eilebrecht] PR#2613 - - *) Add new flags for ap_unparse_uri_components() to make it generate - the scheme://sitepart string only, or to omit the query string. - [Martin Kraemer] - - *) WIN32: Canonicalize ServerRoot before checking to see if it - is a valid directory. The failure to do this caused certain - ServerRoot settings (eg. "ServerRoot /apache") to be improperly - rejected. [Marc Slemko] - - *) Global renaming of C header files to both get rid of conflicts with third - party packages and to again reach consistency: - 1. conf.h -> ap_config.h - 2. conf_auto.h -> ap_config_auto.h \ these are now merged - 3. ap_config.h -> ap_config_auto.h / in the config process - 4. compat.h -> ap_compat.h - 5. apctype.h -> ap_ctype.h - Backward compatibility files for conf.h and compat.h were created. - - *) mod_mmap_static will no longer take action on requests unless at - least one "mmapfile" directive is present in the configuration. - This experimental module has to do some black magic to operate - inside the current API and thus creates side-effects for other - modules under some circumstances. - [Ralf S. Engelschall] - - *) Add conservative ticks around more egrep arguments in top-level configure - to avoid problems under brain-dead platforms like Digital UNIX (OSF1). - [Ralf S. Engelschall] PR#2596 - - *) mod_rewrite created RewriteLock files under the UID of the parent - process, thus the child processes had no write access to the files. - Now a chown() is done on the file to the uid of the children, - if applicable. [Lars Eilebrecht, Ralf S. Engelschall] PR#2341 - - *) Autogenerate some HAVE_XXXXX_H defines in conf_auto.h (determined via - TestCompile) instead of defining them manually in conf.h based on less - accurate platform definitions. This way we no longer have to fiddle with - OS-type and/or OS-version identifiers to discover whether a system header - file exists or not. Instead we now directly check for the existence of - those esoteric ones. - [Ralf S. Engelschall] PR#2093, PR#2361, PR#2377, PR#2434, - PR#2524, PR#2525, PR#2533, PR#2569 - - *) mod_setenvif (BrowserMatch* and friends) will now match a missing - field with "^$". [Ken Coar] - - *) Set the RTLD_GLOBAL dlopen mode parameter to allow dynamically loaded - modules to load their own modules dynamically. This improves mod_perl - and mod_php3 when these modules are loaded dynamically into Apache. - [Rasmus Lerdorf] - - *) Cache a proxied request in the event that the client cancels the - transfer, provided that the configured percentage of the file has - already been transferred. It works for HTTP transfers only. The - new configuration directive is called CacheForceCompletion. - [Glen Parker ] PR#2277 - - *) Add the "] - - *) Fix yet another signal-based race condition involving nested timers. - Signals suck. [Dean Gaudet] - - *) suexec's error messages have been clarified a little bit. [Ken Coar] - - *) Clean up some, but perhaps not all, 8-bit character set problems - with config file parsing, and URL parsing. We now define - ap_isdigit(), ap_isupper(), ... which cast to an (unsigned char). - This should work on most modern unixes. - [Dean Gaudet] PR#800, 2282, 2553 (and others) - - *) The "handler not found" error was issued in cases where the handler - really did exist, but was just declining to serve the request. - [John Van Essen ] PR#2529 - - *) Add Dynamic Shared Object (DSO) support for SCO5 (OpenServer 5.0.x). - [Ronald Record ] PR#2533 - - *) The APACI libexecdir was not extended with an "apache/" subdir - if the installation prefix didn't already contain "apache", but - it should be because the DSO files are Apache-specific. Now - libexecdir is treated the same way sysconfdir, datadir, localstatedir - and includedir are already treated. - [Charles Levert ] PR#2551 - - *) The parsing routine was incorrectly treating methods as - case-insensitive. [Ken Coar] - - *) The ap_bprintf() code neglected to test if there was an error on - the connection. ap_bflush() misdiagnosed a failure as a success. - [Dean Gaudet] - - *) add support for #perl arg interpolation in mod_include - [Doug MacEachern] - - *) API: Name changes of table_elts to ap_table_elts, is_table_empty - to ap_is_table_empty and bgetflag to ap_bgetflag. [Ben Laurie] - - *) PORT: Add UnixWare 7 support - [Vadim Kostoglodoff ] PR#2463 - - *) Fix the Guess-DSO-flags-from-Perl stuff in src/Configure: "perl" was - used instead of "$PERL" which contains the correctly determined Perl - interpreter (important for instance on systems where "perl" and "perl5" - exists, like BSDI or FreeBSD, etc). - [Ralf S. Engelschall] PR#2505 - - *) Move the initial suEXEC-related startup message from plain - fprintf()/stderr to a delayed ap_log_error()-based one to avoid problems - when Apache is started from inetd (instead of standalone). Under this - situation startup messages on stderr lead to problems (the line is sent - to the client in front of the requested document). - [Ralf S. Engelschall] PR#871, PR#1318 - - *) Add a flag so ap_fnmatch() can be used for case-blind pattern matching. - [Ken Coar, Dean Gaudet] - - *) WIN32: Don't collapse multiple slashes in PATH_INFO. - [Ben Laurie, Bill Stoddard ] PR#2274 - - *) WIN32 SECURITY: Eliminate trailing "."s in path components. These are - ignored by the Windows filesystem, and so can be used to bypass security. - [Ben Laurie, Alexei Kosut]. - - *) We now attempt to dump core when we get SIGILL. [Jim Jagielski] - - *) PORT: remove broken test for MAP_FILE in http_main.c. - [Wilfredo Sanchez ] - - *) PORT: Change support/apachectl to use "kill -0 $pid" to test if the - httpd is running. This should be more portable than figuring out - which of three dozen different versions of "ps" are installed. - [a cast of dozens] - - *) WIN32: If we can't figure out how to execute a file in a script - directory, bail out of the request with an error message. [W G Stoddard] - - *) WIN32 SECURITY: Eliminate directories consisting of three or more dots; - these are treated by Win32 as if they are ".." but are not detected by - other machinery within Apache. This is something of a kludge but - eliminates a security hole. [Manoj Kasichainula, Ben Laurie] - - *) Move ap_escape_quotes() from src/ap to src/main/util.c; it uses - pools and thus pollutes libap (until the pool stuff is moved there). - [Ken Coar] - - *) IndexIgnore should be case-blind on Win32 (and any other case-aware - but case-insensitive platforms). New #define for this added to conf.h - (CASE_BLIND_FILESYSTEM). [Ken Coar] PR#2455 - - *) Enable DSO support for OpenBSD in general, not only for 2.x, because it - also works for OpenBSD 1.x. [Ralf S. Engelschall] - - *) PORT: Fix compilation problem on ARM Linux. - [Sam Kington ] PR#2443 - - *) Let APACI's configure script determine some configuration parameters - (Group, Port, ServerAdmin, ServerName) via some intelligent tests to - remove some of the classical hurdles for new users when setting up - Apache. This is done per default because it is useful for the average - user. Package authors can use the --without-confadjust option to disable - these configuration adjustments. - [Ralf S. Engelschall] - - *) Added an EXTRA_DEPS configuration parameter which can be used - to add an extra Makefile dependency for the httpd target, for instance - to external third-party libraries, etc. - [Ralf S. Engelschall] - - *) Add .. sections to the core module (with same spirit - as .. sections) which can be used to skip or process - contained commands dependend of ``-D PARAMETER'' options on the command - line. This can be used to achieve logical conditions like instead of physically ones (e.g. ) - and thus especially can be used for conditionally loading DSO-based - modules via LoadModule, etc. [Ralf S. Engelschall] - - *) PORT: clean up a warning in mod_status for OS/2. [Brian Havard] - - *) Make table elements const. This may prevent obscure errors. [Ben Laurie] - - *) Fix parsing of FTP `SIZE' responses in proxy module: The newline was not - truncated which forced following HTTP headers to be data in the HTTP - reponse. [Ralf S. Engelschall, Charles Fu ] - PR#2412, 2367 - - *) Portability fix for APACI shadow tree support: Swap order of awk and sed - in top-level configure script to avoid sed fails on some platforms (for - instance SunOS 4.1.3 and NCR SysV) because of the non-newline-termined - output of Awk. [Bill Houle ] PR#2435 - - *) Improve performance of directory listings (mod_autoindex) by comparing - integer keys (last-modified and size) as integers rather than converting - them to strings first. Also use a set of explicit byte tests rather - than strcmp() to check for parent directory-ness of an entry. Oh, and - make sure the parent directory (if displayed) is *always* listed first - regardless of the sort key. Overall performance winnage should be good - in CPU time, instruction cache, and memory usage, particularly for large - directories. [Ken Coar] - - *) Add a tiny but useful goody to APACI's configure script: The generation - of a config.status script (as GNU Autoconf does) which remembers the used - configure command and hence can be used to restore the configuration by - just re-running this script or for remembering the configuration between - releases. - [Ralf S. Engelschall] - - *) Add httpd -t (test) option for running configuration syntax tests only. - If something is broken it complains and exits with a return code - non-equal to 0. This can be used manually by the user to check the Apache - configuration after editing and is also automatically used by apachectl - on (graceful) restart command to make sure Apache doesn't die on restarts - because of a configuration which is now broken since the last (re)start. - This way `apachectl restart' can be used inside cronjobs without having - to expect Apache to be falling down. Additionally the httpd -t can be run - via `apachectl configtest'. - [Ralf S. Engelschall] PR#2393 - - *) Minor display fix for "install" target of top-level Makefile: - the displayed installation command was incorrect although the - executed command was correct. Now they are in sync. - [Ralf S. Engelschall] PR#2402 - - *) Correct initialization of variable `allowed_globals' in http_main.c - [Justin Bradford ] PR#2400 - - *) Apache would incorrectly downcase the entire Content-Type passed from - CGIs. This affected server-push scripts and such which use - multipart/x-mixed-replace;boundary=ThisRandomString. - [Dean Gaudet] PR#2394 - - *) PORT: QNX update to properly guess 32-bit systems. - [Sean Boudreau ] PR#2390 - - *) Make sure the DSO emulation code for HPUX finds the proprietary shl_xxx() - functions which are in libdld under HPUX 9/10. - [Ralf S. Engelschall] PR#2378 - - *) Make sure the "install" target of the top-level Makefile doesn't break - because of a return code of 1 from an "if" (for instance under braindead - Ultrix the result code of an "if" construct is 1 if the "then" clause - didn't match). [Ralf S. Engelschall] - - *) Add an additional "dummy" target to the "$(LIB)" target in generated - modules/xxx/Makefile's to avoid problems with SVR4 Make under "full-DSO" - situation (no libxxx.a built, only mod_xxx.so's) where LIB and OBJS are - empty. [Ralf S. Engelschall, Dean Gaudet, Martin Kraemer] - - *) Replace two bad sprintf() calls with ap_snprintf() variants in - mod_rewrite. [Ralf S. Engelschall] - - *) Fix missing usage description for MetaFiles directive. - [David MacKenzie ] PR#2384 - - *) mod_log_config wouldn't let vhosts use log formats defined in the - main server. [Christof Damian ] PR#2090 - - *) mod_usertrack was corrupting the client hostname. As part of the - fix, the cookie values were slightly extended to include the - fully qualified hostname of the client. - [Dean Gaudet] PR#2190, 2229, 2366 - - *) Fix a typo in pool debugging code. [Alvaro Martinez Echevarria] - - *) mod_unique_id did not work on alpha linux (in general on any - architecture that has 64-bit time_t). - [Alvaro Martinez Echevarria] - - *) PORT: Make SCO 5 (and probably 3) compile again. [Ben Laurie] - - *) PORT: NCR MPRAS systems have the same bug with SIGHUP restart that - Solaris systems experience. So define WORKAROUND_SOLARIS_BUG. - [Klaus Weber ] PR#1973 - - *) Change "Options None" to "Options FollowSymLinks" in the - section of the default access.conf-dist - (and -win even though it doesn't matter there). This has better - performance, and more intuitive semantics. [Dean Gaudet] - - *) PORT: Updated support for UTS 2.1.2. - [Dave Dykstra ] PR#2320 - - *) Fix symbol export list (src/support/httpd.exp) after recent - API changes in the child spawning area. - [Jens-Uwe Mager ] + *) ab: add TLS1.1/TLS1.2 options to -f switch, and adapt output + to more accurately report the negotiated protocol. PR 53916. + [Nicolás Pernas Maradei , Kaspar Brand] - *) Workaround for configure script and old `test' commands which do not - support the -x flag (for instance under platforms like Ultrix). This is - solved by another helper script findprg.sh which searches for Perl and - Awk like PrintPath but _via different names_. - [Ralf S. Engelschall] + *) mod_cache: Explicitly allow cache implementations to cache a 206 Partial + Response if they so choose to do so. Previously an attempt to cache a 206 + was arbitrarily allowed if the response contained an Expires or + Cache-Control header, and arbitrarily denied if both headers were missing. + Currently the disk and memory cache providers do not cache 206 Partial + Responses. [Graham Leggett] - *) Remove the system() call from htpasswd.c, which eliminates a system - dependancy. ["M.D.Parker" ] PR#2332 + *) core: Remove unintentional APR 1.3 dependency introduced with + Apache 2.2.22. [Eric Covener] - *) PORT: Fix compilation failures on NEXTSTEP. - [Rex Dieter ] PR#2293, 2316 + *) core: Use a TLS 1.0 close_notify alert for internal dummy connection if + the chosen listener is configured for https. [Joe Orton] - *) PORT: F_NDELAY is a typo, should have been FNDELAY. There's also - O_NDELAY on various systems. [Dave Dykstra ] PR#2313 + *) mod_ssl: Add new directive SSLCompression to disable TLS-level + compression. PR 53219. [Björn Jacke , Stefan Fritsch] - *) PORT: helpers/GuessOS updates for various versions for NCR SVR4. - [juerg schreiner , - Bill Houle ] PR#2310 +Changes with Apache 2.2.23 - *) Fix recently introduced Win32 child spawning code in mod_rewrite.c which - was broken because of invalid ap_pstrcat() -> strcat() transformation. - [Ralf S. Engelschall] + *) SECURITY: CVE-2012-0883 (cve.mitre.org) + envvars: Fix insecure handling of LD_LIBRARY_PATH that could lead to the + current working directory to be searched for DSOs. [Stefan Fritsch] - *) Proxy Cache Fixes: account for directory sizes, fork off garbage collection - to continue in background, use predefined types (off_t, size_t, time_t), - log the current cache usage percentage at LogLevel debug - [Martin Kraemer, based on discussion between Dean Gaudet & Dirk vanGulik] + *) SECURITY: CVE-2012-2687 (cve.mitre.org) + mod_negotiation: Escape filenames in variant list to prevent a + possible XSS for a site where untrusted users can upload files to + a location with MultiViews enabled. [Niels Heinen ] -Changes with Apache 1.3.0 + *) htdbm, htpasswd: Don't crash if crypt() fails (e.g. with FIPS enabled). + [Paul Wouters , Joe Orton] - *) Using a type map file as a custom error document was not possible. - [Lars Eilebrecht] PR#1031 + *) mod_ldap: Treat the "server unavailable" condition as a transient + error with all LDAP SDKs. [Filip Valder ] - *) Avoid problems with braindead Awks by additionally searching for gawk - and nawk in APACI's configure script. - [Dave Dykstra , Ralf S. Engelschall] PR#2319 + *) core: Add filesystem paths to access denied / access failed messages. + [Eric Covener] - *) Rename md5.h to ap_md5.h to avoid conflicts with native MD5 on - some systems. [Randy Terbush] + *) core: Fix error handling in ap_scan_script_header_err_brigade() if there + is no EOS bucket in the brigade. PR 48272. [Stefan Fritsch] - *) Change usage of perror()+fprintf(stderr,...) in mod_rewrite to - more proper ap_log_error() variants. - [Ralf S. Engelschall] + *) core: Prevent "httpd -k restart" from killing server in presence of + config error. [Joe Orton] - *) Make sure the argument for the --add-module option to APACI's configure - script is of type [path/to/]mod_xxx.c because all calculations inside - configure and src/Configure depend on this. - [Ralf S. Engelschall] PR#2307 + *) mod_ssl: when compiled against OpenSSL 1.0.1 or later, allow explicit + control of TLSv1.1 and TLSv1.2 through the SSLProtocol directive, + adding TLSv1.1 and TLSv1.2 support by default given 'SSLProtocol All'. + [Kaspar Brand, William Rowe] - *) Changes usage of perror/fprintf to stderr to more proper ap_log_error - in mod_mime, mod_log_referer, mod_log_agent, and mod_log_config. - [Brian Behlendorf] + *) mod_log_config: Fix %{abc}C truncating cookie values at first "=". + PR 53104. [Greg Ames] - *) Various OS/2 cleanups ["Brian Havard" ] + *) Unix MPMs: Fix small memory leak in parent process if connect() + failed when waking up children. [Joe Orton] - *) PORT: QNX needed a #include ; and now it uses flock - serialized accept to handle multiple sockets. - [Rob Saccoccio ] PR#2295, 2296 - - *) Have NT properly set the directory for CGI scripts - (& other spawned children) - [W G Stoddard ] - - *) Propagate environment to CGI scripts correctly in Win32. - [W G Stoddard ] PR#2294 - - *) Some symbol renaming: - ap_spawn_child_err became ap_spawn_child - ap_spawn_child_err_buff became ap_bspawn_child - spawn_child was obsoleted and moved to compat.h - [Brian Behlendorf] - - *) Upgrade the child spawning code in mod_rewrite for the RewriteMap - programs: ap_spawn_child_err() is used and the Win32 case now uses - CreateProcess() instead of a low-level execl() (which caused problems in - the past under Win32). - [Ralf S. Engelschall] - - *) A few cosmetics and trivial enhancements to APXS to make the - generated Makefile more user friendly. [Ralf S. Engelschall] - - *) Proxy Fix: The proxy special failure routine ap_proxyerror() - was updated to use the normal apache error processing, thereby allowing - proxy errors to be treated by ErrorDocument's as well. For this - purpose, a new module-to-core communication variable "error-notes" - was introduced; the proxy (and possibly other modules) communicates - its error text using this variable. Its content is copied to a new - cgi-env-var REDIRECT_ERROR_NOTES for use by ErrorDocuments. - The old proxy special error routine ap_proxy_log_uerror() - was replaced by regular ap_log_error() calls, many messages were made - more informative. - [Martin Kraemer] PR#494, 1259 - - *) SECURITY: A possible buffer overflow in the ftp proxy was fixed. - [Martin Kraemer] - - *) Transform the configure message "You need root privileges for suEXEC" - from a fatal error into a (more friendly) warning because the building - ("make") of Apache we can allow, of course. Root privileges are needed - only for the installation step ("make install"). So make sure the - user is aware of this fact but let him proceed as long as he can. - [Ralf S. Engelschall] PR#2288 - - *) Renamed three more functions to common ap_ prefix which we missed at the - Big Symbol Renaming because they're #defines and not real C functions: - is_default_port(), default_port(), http_method(). - [Ralf S. Engelschall] - - *) A zero-length name after a $ in an SSI document should cause - just the $ to be in the expansion. This was broken during the - security fixes in 1.2.5. [Dean Gaudet] PR#1921, 2249 - - *) Call ap_destroy_sub_req() in ap_add_cgi_vars() to reclaim some - memory. [Rob Saccoccio ] PR#2252 - - *) Fix src/support/httpd.exp (DSO export file which is currently only - used under AIX) because of recent changes to function names. - [Ralf S. Engelschall] - -Changes with Apache 1.3b7 - - *) Make sure a MIME-type can be forced via a RewriteRule even when no - substitution takes place, for instance via the following rule: - ``RewriteRule ^myscript$ - [T=application/x-httpd-cgi]'' This was often - requested by users in the past to force a single script without a .cgi - extension and outside any cgi-bin dirs to be executed as a CGI program. - [Ralf S. Engelschall] PR#2254 - - *) A fix for protocol issues surrounding 400, 408, and - 414 responses. [Ed Korthof] - - *) Ignore MaxRequestsPerChild on WIN32. [Brian Behlendorf] - - *) Fix discrepancy in proxy_ftp.c which was causing failures when - trying to connect to certain ftpd's, such as anonftpd. - [Rick Ohnemus ] - - *) Make mod_rewrite use ap_open_piped_log() for RewriteLog directive's - logfile instead of fiddling around itself with child spawning stuff. - [Ralf S. Engelschall] - - *) Made RefererIgnore case-insensitive. - - *) Mod_log_agent, mod_log_referer now use ap_open_piped_log for piped logs. - [Brian Behlendorf] - - *) Replace use of spawn_child with ap_spawn_child_err_buff, to make everything - "safe" under Win32. In: mod_include.c, mod_mime_magic.c - [Brian Behlendorf] + *) mod_proxy_ajp: Add support for 'ProxyErrorOverride on'. PR 50945. + [Peter Pramberger , Jim Jagielski] - *) Improve RFC1413 support. [Bob Beck ] + *) Added SSLProxyMachineCertificateChainFile directive so the proxy client + can select the proper client certificate when using a chain and the + remote server only lists the root CA as allowed. - *) Fix support script `dbmmanage': It was unable to handle some sort - of passwords, especially passwords with "0" chars. - [Ralf S. Engelschall] PR#2242 + *) mpm_event, mpm_worker: Remain active amidst prevalent child process + resource shortages. [Jeff Trawick] - *) WIN32: Clicking on "Last Modified" in a fancy index caused a crash. Fixed. - [Ben Laurie] PR#2238 + *) mod_rewrite: Add "AllowAnyURI" option. PR 52774. [Joe Orton] - *) WIN32: CGIs could cause a hang (because of a deadlock in the standard C - library), so CGI handling has been changed to use Win32 native handles - instead of C file descriptors. - [Ben Laurie and Bill Stoddard ] PR#1129, 1607 + *) mod_rewrite: Fix the RewriteEngine directive to work within a + location. Previously, once RewriteEngine was switched on globally, + it was impossible to switch off. [Graham Leggett] - *) The proxy cache would store an incorrect content-length in the cached - file copy after a cache update. That resulted in repeated fetching - of the original copy instead of using the cached copy. - [Ernst Kloppenburg ] PR#2094 + *) mod_proxy_balancer: Restore balancing after a failed worker has + recovered when using lbmethod_bybusyness. PR 48735. [Jeff Trawick] - *) The Makefiles assumed that DSO files are build via $(LD). This - is broken for two reasons: First we never defined at least LD=ld - somewhere to make sure this works (it was silently assumed that most Make - provide a built-in LD definition - ARGL!) and second using the generic LD - variable is not the truth. Instead a special variable named LD_SHLIB is - reasonable because although "ld" is usually the default, the command for - building DSO files can be "libtool" or even "cc" on some systems. - [Ralf S. Engelschall] + *) mod_dumpio: Properly handle errors from subsequent input filters. + PR 52914. [Stefan Fritsch] - *) Replace the AddVersionPlatform directive with ServerTokens which - provides for more control over the format of the Server: - header line. SERVER_SUBVERSION is no longer supported; - all module should use the ap_add_version_component() - API function instead. [Jim Jagielski] + *) mpm_worker: Fix cases where the spawn rate wasn't reduced after child + process resource shortages. [Jeff Trawick] - *) Support for the NCR MP/RAS 3.0 - [John Withers ] + *) mpm_prefork: Reduce spawn rate after a child process exits due to + unexpected poll or accept failure. [Jeff Trawick] - *) The LDFLAGS_SHLIB_EXPORT variable of src/Configuration[.tmpl] was - not retrieved in src/Configure and thus was not useable. - [Ralf S. Engelschall] - - *) Various Makefile consistency cleanups: - - make OSDIR also automatically be relative to src/ like INCDIR - - SUBDIRS is now generated in src/Makefile only and not in - Makefile.config because it is a local define for this location. - - remove BROKEN_BPRINTF_FLAGS because is it no longer used inside - any Makefile but make sure that at least the "-K inline" is kept in - CFLAGS for SCO 5. - - update the "depend" targets in Makefile.tmpl files to use $(OSDIR), too. - - updated the dependencies theirself - - removed not existing SHLIB variable from "clean" targets - - replaced SHLIB_OBJS/SHLIBS_OBJ consistently with OBJS_PIC because OBJS - already exists and OBJS_PIC are also just plain objects and have not - directly to do with "shared" things. The only difference is that they - contain PIC. So OBJS_PIC is the more canonical name. - - Updated the Makefile-dependency lines for OBJS_PIC - - Removed the Makefile-dependency line in Configure to avoid double - definitions - - replaced ugly xx-so.o/xx.so-o hack with a clean and consistent usage - of xxx.lo as GNU libtool does with its PIC objects - - reduce local complexity in modules Makefile.tmpl by moving the last - existing target "depend" to the generation section in Configure, too. - - removed the historical $(SPACER) which was used in the past together - with BROKEN_BPRINTF_FLAGS to avoid zig-zags in the build process. This - is no longer needed. - - force the build and run of the gen_xxx programs under main/ as the - first step before building the objects because it looks cleaner - [Ralf S. Engelschall] - - *) WIN32: Make Win32 work again after the /dev/null DoS fix. - [Ben Laurie] - - *) WIN32: Check for buffer overflows in ap_os_canonical_filename. - [Ben Laurie] - - *) WIN32: Don't force ISAPI headers to finish with \n. - [Jim Patterson , Ben Laurie] PR#2060 - - *) When opening "configuration" files (like httpd.conf, htaccess - and htpasswd), Apache will not allow them to be non-/dev/null - device files. This closes a DoS hole. At the same time, - we use ap_pfopen to open these files to handle timeouts. - [Jim Jagielski, Martin Kraemer] - - *) Apache will now log the reason its httpd children exit if they exit - due to an unexpected signal. (It requires a new porting define, - SYS_SIGLIST, which if defined should point to a list of text - descriptions of the signals available. See PORTING.) [Dean Gaudet] - - *) WIN32: chdir() doesn't make sense in a multithreaded environment - like WIN32. Before, Win32 CGI's could have had sporadic failures - if a chdir call from one thread was made between another chdir call - and a spawn in another thread. So, for now don't chdir for CGI scripts - in WIN32. The current CGI "spec" is unclear as to whether it's - necessary. Long-term fix is to either serialize the chdir/spawn combo - or use WIN32 native calls to spawn a process. This temp fix was - necessary to remove this as a showstopper for 1.3's release. - [Brian Behlendorf] - - *) Cleanup the suEXEC support in APACI and make it more safe: - 1. Add big fat hint in INSTALL about risks and to read the - htdocs/manual/suexec.html document before using the suexec-related - configure options. - 2. Make sure the user has at least provided one --suexec-xxxx option - (specifies suEXEC parameters) in addition to --enable-suexec option. - If only --enable-suexec is given APACI stops with a hint to INSTALL - and htdocs/manual/suexec.html documents. - 3. Provide two additional --suexec-xxxx options to make the suEXEC - configuration complete (especially for package maintainers who else - had to patch the source tree) by providing ways to configure minimal - UID/GID and safe PATH, too. - [Ralf S. Engelschall] - - *) Cleanup of the `configure --shadow' process: - - make sure the configure script creates its temporary files in the - shadow tree to avoid conflicts with parallel configure runs - - removed unnecessary option "-r" from "rm" call for Makefiles - - make sure the configure scripts creates the shadow-wrapper Makefile - only when no shadow trees already exists - - make sure "make distclean" removes the shadow-wrapper Makefile but only - when no more shadow trees exists - - overhauled mkshadow.sh script: now its more IFS-safe and approx. twice - as fast (in the past it needed 70sec, now it runs just 38sec) - - make sure CVS does not complain about the created files - Makefille. and directories src. - [Ralf S. Engelschall] - - *) Added the ap_add_version_component() API routine and the - AddVersionPlatform core directive. The first allows modules to - declare themselves in the Server response header field value, - augmenting the SERVER_SUBVERSION define in the Configuration file - with run-time settings (more useful in a loadable-module environment). - AddVersionPlatform inserts a comment such as "(UNIX)" or "(Win32)" - into the server version string. [Ken Coar] PR#2056 - - *) Minor stability tweaks to avoid core dumps in ap_snprintf. - [Martin Kraemer] - - *) Emit the "Accept-Range" header for the default handler. - [Brian Behlendorf] PR#1464 - - *) Add a note to httpd.conf-dist that apache will on some systems fail - to start when the Group # is set to a negative or large positive value. - [Martin Kraemer] - - *) Make sure the module execution order is correct even when some modules - are loaded under runtime (`LoadModule') via the DSO mechanism: - 1. The list of loaded modules is now a dynamically allocated one - and not the original statically list from modules.c - 2. The loaded modules are now correctly setup by LoadModule for - later use by the AddModule command. - 3. When the DSO mechanism for modules is used APACI's `install' - target now enables all created `LoadModule' lines per default because - this is both already expected by the user _and_ needed to avoid - confusion with the next point and reduces the Makefile.tmpl complexity - 4. When the DSO mechanism for modules is used, APACI's `install' - target now additionally makes sure the module list is reconstructed - via a complete `ClearModuleList+AddModule...' entry. - 5. The support tool `apxs' now also makes sure an AddModule command - is added in addition to the LoadModule command. - 6. The modules.c generation was extended to now contain two - comments to make sure no one is confused by the confusing terminology - of loading/linking (we use load=link+load & link=activate instead of - the obvious load=activate & link=link :-( ) - This way now there is no longer a difference under execution time between - statically and dynamically linked modules. - [Ralf S. Engelschall] - - *) Fix the generated mod_xxx.c from "apxs -g -f xxx" after the - Big Symbol Renaming. [Ralf S. Engelschall] - - *) Add a comment to mod_example.c showing the format of a FLAG command - handler. [Ken Coar] - - *) Standardized the time format in mod_status to match that of other - places in the code (e.g. DATE_GMT). PR#1551 - - *) Fix handling of %Z in timefmt strings for those platforms with no time - zone information in their tm struct. [Paul Eggert ] - PR#754 - - *) Makes mod_rewrite, mod_log_config, mod_status and the ServerSignature - feature compatible with 'UseCanonicalName off' by changing - r->server->server_hostname to ap_get_server_name(). And I changed some - functions which use r->server->port to use ap_get_server_port() instead, - because if there's no Port directive in the config r->server->port is 0. - [Lars Eilebrecht] - - *) get/set_module_config are trivial enough to be better off inline. Worth - 1.5% performance boost. [Dean Gaudet] + *) core: Adjust ap_scan_script_header_err*() to prevent mod_cgi and mod_cgid + from logging bogus data in case of errors. [Stefan Fritsch] - *) Fix off-by-one error in ap_proxy_date_canon() in proxy_util.c - when ensuring 'x' is at least 30-chars big. [Jim Jagielski, - Brian Behlendorf] + *) mod_disk_cache, mod_mem_cache: Decline the opportunity to cache if the + response is a 206 Partial Content. This stops a reverse proxied partial + response from becoming cached, and then being served in subsequent + responses. PR 49113. [Graham Leggett] - *) [BS2000 security] BS2000 needs an extra authentication to initialize - the task environment to the unprivileged User id. Otherwise CGI scripts - would have a way to gain super user access. [Martin Kraemer] + *) configure: Fix usage with external apr and apu in non-default paths + and recent gcc versions >= 4.6. [Jean-Frederic Clere] - *) Fix debug log messages for BS2000/OSD: instead of logging the whole - absolute path, only log base name of logging source as is done - in unix. [Martin Kraemer] + *) core: Fix building against PCRE 8.30 by switching from the obsolete + pcre_info() to pcre_fullinfo(). PR 52623 [Ruediger Pluem, Rainer Jung] - *) Ronald Tschalaer's Accept-Encoding patch - preserve the "x-" in - the encoding type from the Accept-Encoding header (if it's there) - and use it in the response, as that's probably what it'll be expecting. - [] + *) mod_proxy: Add the forcerecovery balancer parameter that determines if + recovery for balancer workers is enforced. [Ruediger Pluem] - *) Fix to mod_alias: translate_alias_redir is dealing with - a URI, not a filename, so the check for drive letters for win32 - and emx is not necessary. [Dean Gaudet] +Changes with Apache 2.2.22 - *) WIN32: Allow .cmd as an executable extension. - [Kari Likovuori ] PR#2146 + *) SECURITY: CVE-2011-3368 (cve.mitre.org) + Reject requests where the request-URI does not match the HTTP + specification, preventing unexpected expansion of target URLs in + some reverse proxy configurations. [Joe Orton] - *) Make Apache header files, and some variables, C++ friendly. - [Michael Anderson's ] + *) SECURITY: CVE-2011-3607 (cve.mitre.org) + Fix integer overflow in ap_pregsub() which, when the mod_setenvif module + is enabled, could allow local users to gain privileges via a .htaccess + file. [Stefan Fritsch, Greg Ames] - *) Child processes can now "signal" (by exiting with a status - of APEXIT_CHILDFATAL) the parent process to abort and - shutdown the server if the error in the child process was - fatal enough. [Jim Jagielski] - - *) mod_autoindex's find_itme() was sensitive to MIME type case. - [Jim Jagielski] PR#2112 + *) SECURITY: CVE-2011-4317 (cve.mitre.org) + Resolve additional cases of URL rewriting with ProxyPassMatch or + RewriteRule, where particular request-URIs could result in undesired + backend network exposure in some configurations. + [Joe Orton] - *) Make sure the referer_log and agent_log entries in the default httpd.conf - file are also adjusted for the actual relative installation paths. - [Ralf S. Engelschall] PR#2175 + *) SECURITY: CVE-2012-0021 (cve.mitre.org) + mod_log_config: Fix segfault (crash) when the '%{cookiename}C' log format + string is in use and a client sends a nameless, valueless cookie, causing + a denial of service. The issue existed since version 2.2.17. PR 52256. + [Rainer Canavan ] - *) WIN32: Extensive overhaul of the way UNCs are handled. [Ben Laurie] + *) SECURITY: CVE-2012-0031 (cve.mitre.org) + Fix scoreboard issue which could allow an unprivileged child process + to cause the parent to crash at shutdown rather than terminate + cleanly. [Joe Orton] - *) WIN32: Make roots of filesystems (e.g. c:/) work. [Ben Laurie] - PR#1558 + *) SECURITY: CVE-2012-0053 (cve.mitre.org) + Fix an issue in error responses that could expose "httpOnly" cookies + when no custom ErrorDocument is specified for status code 400. + [Eric Covener] - *) PORT: Various porting changes to support AIX 3.2, 4.1.5, 4.2 and 4.3. - Additionally the checks for finding the vendor DSO library were moved - from mod_so.c to Configure because first it needs $PLAT etc. and second - mod_so already uses an abstraction layer and does not fiddle with the - vendor functions itself. - [Jens-Uwe Mager, Ralf S. Engelschall] + *) SECURITY: CVE-2012-4557 (cve.mitre.org) + mod_proxy_ajp: Try to prevent a single long request from marking a worker + in error. [Jean-Frederic Clere] - *) PORT: Some optimization defines for NetBSD - [Jaromir Dolecek ] PR#2165 + *) config: Update the default mod_ssl configuration: Disable SSLv2, only + allow >= 128bit ciphers, add commented example for speed optimized cipher + list, limit MSIE workaround to MSIE <= 5. [Kaspar Brand] - *) PORT: Dynamic Shared Object (DSO) support for NetBSD. - [Jaromir Dolecek , Ralf S. Engelschall] PR#2158 + *) core: Fix segfault in ap_send_interim_response(). PR 52315. + [Stefan Fritsch] - *) Add Dynamic Shared Object (DSO) support for AIX (at least 4.2 but older - AIX variants should work fine, too. Even AIX 3.x should work). This is - accomplished by using the free DSO emulation code from Jens-Uwe Mager - which we put into a os/unix/os-dso-aix.c file. - [Ralf S. Engelschall] - - *) PORT: Fix compiler warnings under AIX >= 4.2 where the manual pages imply - that we should use NET_SIZE_T == int but the include files force size_t. - [Ralf S. Engelschall] - - *) Fix two bugs in select() handling in http_main.c. - [Roy Fielding] - - *) Suppress "error(0)" messages for ap_log_error() when the APLOG_NOERRNO - is unset (as it is in situations like timeouts) where it is unclear - whether errno is set or not. [Martin Kraemer] - - *) Just having APACI's localstatedir is too general and not enough for most - of the systems. 1.3b6 again required manual APACI patches by package - maintainers from Red Hat and FreeBSD because for their filesystem layout a - little bit more flexibility in configuring the paths is needed. Hence we - provide three additional configure options (--runtimedir, --logfiledir, - --proxycachedir) which now can be used for more granular adjustments if - --localstatedir is not enough to fit the particular needs. As a nice - side-effect this reduces some subdir fiddling in configure+Makefile.tmpl. - [Ralf S. Engelschall] - - *) Make the install root for "make install" in APACI's Makefile overrideable - by package authors. This way we are even more friendly to package - maintainers (especially Debian and Red Hat) who build for the real prefix - via "configure --prefix=/" but use a different local prefix via - "make root=/tmp/apache install" for rolling the package without bristling - the target location on their system. - [Ralf S. Engelschall] - - *) Workaround sed limitations in APACI's configure script by now - substituting in chunks of 50 commands (because for instance HPUX's vendor - sed has a limit of max. 98 commands) - [Ralf S. Engelschall] PR#2136 - - *) Adding SOCKS5 support and fixing existing SOCKS4 support. - [Ralf S. Engelschall] PR#2140 - - *) Manually fix some symbols which were not renamed to prefix ap_ in the BIG - RENAMING process because they are defined as pre-processor macros instead - of real functions: bputc, bgetc, piped_log_write_fd, piped_log_read_fd - [Ralf S. Engelschall] - - *) Workaround braindead AWK's when generating ap_config.h: The split() and - substr() functions cannot be nested under vendor AWK from Solaris 2.6. - [Ralf S. Engelschall] PR#2139 - - *) Various bugfixes and cleanups for the APACI configure script: - o fix IFS handling for _nested_ situation - o fix Perl interpreter search: take first one found instead of last one - o fix DSO consistency check - o print error messages to stderr instead of stdout - o add install-quiet for --shadow situation to Makefile stub - o reduce complexity by avoiding sed-hacks for rule and module list loops - [Ralf S. Engelschall] - - *) Fix DEBUG_CGI situation in mod_cgi.c [David MacKenzie] PR#2114 - - *) Make sure the input field separator (IFS) shell variable is explicitly - initialized correctly before _every_ `for' loop and also restored after - the loops. [Ralf S. Engelschall] - - *) Make sure that "make install" doesn't overwrite the `mime.types' and - `magic' files from an existing Apache installation. Because people often - customize these for own MIME and content types. - [Ralf S. Engelschall] - - *) PORT: Dynamic Shared Object (DSO) support for OpenBSD 2.x - [Peter Galbavy, Ralf S. Engelschall] PR#2109 - - *) Fix the path to the ScoreBoardFile in the install-config target, too. - [Ralf S. Engelschall] PR#2105 - - *) Let "configure" clear out the users parameters (provided as shell - variables) to avoid side-effects in "src/Configure" when the user - exported them (which is not needed, but some users do it). - [Ralf S. Engelschall] PR#2101 - - *) Provide backward compatibility from some old src/Configuration.tmpl - parameter names to the canonical Autoconf-style shell variable names. For - instance CFLAGS vs. EXTRA_CFLAGS. The EXTRA_xxx variants are accepted now - but a hint message is displayed. [Ralf S. Engelschall] - - *) Make sure that "make install" doesn't overwrite the DocumentRoot and - CGI scripts from an existing Apache installation. - [Ralf S. Engelschall, Jim Jagielski] PR#2084 - - *) Make `configure --compat' more "compatible" by first - let the libexecdir default to EPREFIX/libexec instead of EPREFIX/bin and - second by making sure the "avoid-bristling-suffix" /apache is not - appended to sysconfdir, datadir, localstatedir and includedir when - --compat is used. [Ralf S. Engelschall, Lars Eilebrecht] - - *) NeXT required strdup() in support/logresolve.c - [Francisco Tomei ] PR#2082 - - *) AIX required sys/select.h in support/ab.c - [Jens Schleusener ] PR#2081 - - *) Fix the path to the MimeMagicFile in the install-config target, too. - [Ralf S. Engelschall] PR#2089 - - *) PORT: Added HP-UX 11 patches [Jeff Earickson ] - - *) If you start apache with the -S command line option it will dump - out the parsed vhost settings. This is useful for folks trying - to figure out what is wrong with their vhost configuration. - (Other dumps may be added in the future.) [Dean Gaudet] - - *) Add %pA, %pI, and %pp codes to ap_vformatter (and hence ap_bprintf, - ap_snprintf, and ap_psprintf). See include/ap.h for docs. - [Dean Gaudet] - - *) Because /usr/local/apache is the default prefix the ``configure - --compat'' option no longer has to set prefix, again. This way the - --compat option honors a leading --prefix option. [Lars Eilebrecht] - - *) PORT: Cast the first argument of dlopen() in ap_os_dso_load() - to `char *' under OSF1 and FreeBSD 2.x where it is defined this way - to avoid "discard const" warnings. [Ralf S. Engelschall] - - *) If a specific handler is set for a file yet the request still - ends up being handled by the default handler, log an error - message before handling it. This catches things such as trying - to use SSIs without mod_include enabled. [Marc Slemko] - - *) Fix error logging for the startup case where ap_log_error() still uses - stderr as the target. Now the default log level is honored here, too. - [Ralf S. Engelschall] - - *) PORT: Make sure some AWK's don't fail in src/Configure with "string too - long" errors when generating the MODULES entry for src/Makefile - [Ben Hyde, Ralf S. Engelschall] - - *) Make sure src/Configure doesn't complain about the old directory - /usr/local/etc/httpd/ when APACI is used. [Lars Eilebrecht] - -Changes with Apache 1.3b6 - - *) PORT: Clean up warnings on Ultrix and HPUX. [Ben Hyde] - - *) Adding DSO support for the HP/UX platform by emulating the dlopen-style - interface via the similar but proprietary HP/UX shl_xxx-style system - calls. [Ralf S. Engelschall] - - *) PORT: Updated UnixWare 2.0.x and 2.1.x entries for DSO support and made - APACI Makefile.tmpl "install" target more robust for sensible UnixWare - Make. [Ralf S. Engelschall] - - *) ++++ THE BIG SYMBOL RENAMING ++++ - To avoid symbol clashes with third-party code compiled into the server, - we globally applied the prefix "ap_" to the following classes of - functions: - - Apache provided general functions (e.g., ap_cpystrn) - - Public API functions (e.g., palloc, bgets) - - Private functions which we can't make static (because of - cross-object usage) but should be (e.g., new_connection) - For backward source compatibility a new header file named compat.h was - created which provides defines for the old symbol names and can be used - by third-party module authors. - [The Apache Group] - - *) Added dynamic shared object (DSO) support for SVR4-derivates: The - problem under SVR4 is that there is no command flag to force the linker - to export the global symbols of the httpd executable therewith they are - available to the DSO's. Instead of problematic hacks like creating a - dummy.so file (containing dummy references to all global symbols) the - httpd binary is linked against, we use a clean trick stolen from Perl 5: - Placing the Apache core code itself into a DSO library named libhttpd.so. - This way the global symbols _HAVE_ to be exported and thus are available - to any manually loaded DSO's under runtime. To reduce the impact to the - user to null we go even further and create a stub httpd executable which - automatically keeps track of the DSO library loading itself and thus - hides the complete mechanism from the user. Although the generation of - this DSO library is automatically triggered for platforms which - essentially need it (mostly all SVR4-derivates) it can be also enabled - manually via the Rule SHARED_CORE. This can be interesting in the future - where we perhaps exploit this libhttpd.so mechanism for providing nifty - features like graceful upgrades, or whatever. - [Ralf S. Engelschall, Martin Kraemer] - - *) Build the libraries before building the rest of the tools. [Ben Hyde] - - *) Add "distclean" target to src/-Makefiles to provide "make distclean" also - inside the src subtree (i.e. for non-APACI users). Following GNU Makefile - conventions while "clean" removes only stuff created by "all" targets, - "distclean" additionally removes the stuff from the configuration - process. This way "make distclean" (hence the name) provides a fresh - source tree as it was for distribution. - [Ralf S. Engelschall] - - *) Allow top-level (APACI) Makefile to break on build errors - the same way the src/ subtree Makefiles breaks on them by replacing the - initial APACI sed-subdir-display-kludge with a more clean - variable-passing-solution: variable SDP can optionally hold the subdir - prefix which is consistently used for displaying the subdir movement. - This way even the top-level Makefile can stop correctly on errors as the - user expects. [Ralf S. Engelschall] - - *) Fixed ordering of argument checks for RewriteBase directive. - [Todd Eigenschink ] PR#2045 - - *) Change Win32 IS_MODULE to SHARED_MODULE to match Unix' method of - indicating that a module is being compiled for dynamic loading. Also - remove #define IS_MODULE from modules and add SHARED_MODULE define - to the mak/dsp files. [Alexei Kosut] - - *) Reduce logging level of "normal" warning messages to APLOG_INFO, - since we are now logging APLOG_WARNING by default. [Roy Fielding] - - *) PORT: OS/2 tweak to deal with multiple .exe targets. [Brian Havard] - - *) Add documentation file and src/Configuration.tmpl entry for the - experimental mod_mmap_static module. Because although it is and marked as - an experimental one it is distributed and thus should be documented and - prepared for configuration the same way as all others modules. - [Ralf S. Engelschall] - - *) Add query (-q) option to apxs support tool to be able to manually query - specific settings from apxs. This is needed for instance when you - manually want to access Apache's header files and you need to assemble - the -I option. Now you can do -I`apxs -q INCLUDEDIR`. - [Ralf S. Engelschall] - - *) Now src/Configure uses a fallback strategy for the shared object support - on platforms where no explicit information is available: If a Perl - installation exists we ask it about its shared object support and if it's - the dlopen-style one we shamelessly guess the compiler and linker flags - for creating shared objects from Perls knowledge. Of course, the user is - warning about what we are doing and informed that he should send us - the guessed flags when they work. [Ralf S. Engelschall] - - *) Provide APACI --without-support option to be able to disable the build - and installation of the support tools from the src/support/ area. - Although its useful to have these installed per default we should provide - a way to compile and install without them for backward-compatibility. - [Ralf S. Engelschall] - - *) Add of the new APache eXtenSion (apxs) support tool for building and - installing modules into an _already installed_ Apache package through the - dynamic shared object (DSO) mechanism [mod_so.c]. The trick here is that - this approach actually doesn't need the Apache source tree. The - (APACI-installed) server package is enough, because this now includes the - Apache C header files (PREFIX/include) and the new APXS tool - (SBINDIR/apxs). The intend is to provide a handy tool for third-party - module authors to build their Apache modules _OUTSIDE_ the Apache source - tree while avoiding them to fiddle around with the totally platform - dependend way of compiling DSO files. The tool supports all ranges of - modules, from trivial ones (single mod_foo.c) to complex ones (like PHP3 - which has a mod_php3.c plus a pre-built libmodphp3-so.a) and even can - on-the-fly generate a minimalistic Makefile and sample module for the - first step to provide both a quick success event and to demonstrate the - APXS mechanism to module authors. [Ralf S. Engelschall] - - *) Fix core dumps in use of CONNECT in proxy. - [] PR#1326, #1573, #1942 - - *) Modify the log directives in httpd.conf-dist files to use CustomLog - so that users have examples of how CustomLog can be used. - [Lars Eilebrecht] + *) mod_log_config: Prevent segfault. PR 50861. [Torsten F�rtsch + ] - *) Add the new Apache Autoconf-style Interface (APACI) for the top-level of - the Apache distribution tree. Until Apache 1.3 there was no real - out-of-the-box batch-capable build and installation procedure for the - complete Apache package. This is now provided by a top-level "configure" - script and a corresponding top-level "Makefile.tmpl" file. The goal is - to provide a GNU Autoconf-style frontend which is capable to both drive - the old src/Configure stuff in batch and additionally installs the - package with a GNU-conforming directory layout. Any options from the old - configuration scheme are available plus a lot of new options for flexibly - customizing Apache. [Ralf S. Engelschall] - - *) The floating point ap_snprintf code wasn't threadsafe. - Had to remove the HAVE_CVT macro in order to do threadsafe - calling of the ?cvt() floating point routines. [Dean Gaudet] - - *) PORT: Add the SCO_SV port. [Jim Jagielski] PR#1962 - - *) PORT: IRIX needs the -n32 flag iff using the 'cc' compiler - [Jim Jagielski] PR#1901 - - *) BUG: Configure was using TCC and CC inconsistently. Make sure - Configure knows which CC we are using. [Jim Jagielski] - - *) "Options +Includes" wasn't correctly merged if "+IncludesNoExec" - was defined in a parent directory. [Lars Eilebrecht] - - *) API: ap_snprintf() code mutated into ap_vformatter(), which is - a generic printf-style routine that can call arbitrary output - routines. Use this to replace http_bprintf.c. Add new routines - psprintf(), pvsprintf() which allocate the exact amount of memory - required for a string from a pool. Use psprintf() to clean up - various bits of code which used ap_snprintf()/pstrdup(). - [Dean Gaudet] - - *) PORT: HAVE_SNPRINTF doesn't do anything any longer. This is because - ap_snprintf() has different semantics and formatting codes than - snprintf(). [Dean Gaudet] - - *) SIGXCPU and SIGXFSZ are now reset to SIG_DFL at boot-time. This - is necessary on at least Solaris where the /etc/rc?.d scripts - are run with these signals ignored, and "SIG_IGN" settings are - maintained across exec(). - [Rein Tollevik ] PR#2009 - - *) Fix the check for symbolic links in ``RewriteCond ... -l'': stat() was - used instead of lstat() and thus this flag didn't work as expected. - [Rein Tollevik ] PR#2010 - - *) Fix the proxy pass-through feature of mod_rewrite for the case of - existing QUERY_STRING now that mod_proxy was recently changed because of - the new URL parsing stuff. [Ralf S. Engelschall] - - *) A few changes to scoreboard definitions which helps gcc generate - better code. [Dean Gaudet] - - *) ANSI C doesn't guarantee that "int foo : 2" in a structure will - be a signed bitfield. So mark a few bitfields as signed to - ensure correct code. [Dean Gaudet] - - *) The default for HostnameLookups was changed to Off, but there - was a problem and it wasn't taking effect. [Dean Gaudet] - - *) PORT: Clean up undefined signals on some platforms (SCO, BeOS). - [Dean Gaudet] - - *) After a SIGHUP the listening sockets in the parent weren't - properly marked for closure on fork(). - [Jürgen Keil ] PR#2000 - - *) Allow %2F in two situations: 1) it is in the query part of the URI, - therefore not exposed to %2F -> '/' translations and 2) the request - is a proxy request, so we're not dealing with a local resource anyway. - Without this, the proxy would fail to work for any URL's with - %2f in them (occurs quite often in - http://.../cgi-bin/...?http%3A%2F%2F... references) [Martin Kraemer] - - *) Protect against FD_SETSIZE mismatches. [Dean Gaudet] - - *) Make the shared object compilation command more portable by avoiding - the direct combination of `-c' & `-o' which is not honored by some - compilers like UnixWare's cc. [Ralf S. Engelschall] - - *) WIN32: the proxy was creating filenames missing the last four - characters. While this normally doesn't stop anything from - working, it can result in extra collisions. - [Tim Costello ] PR#1890 - - *) Now mod_proxy uses the response string (in addition to the response status - code) from the already used FTP SIZE command to setup the Content-Length - header if available. [Ralf S. Engelschall] PR#1183 - - *) Reanimated the (still undocumented) proxy receive buffer size directive: - Renamed from ReceiveBufferSize to ProxyReceiveBufferSize because the old - name was really too generic, added documentation for this directive to - the mod_proxy.html and corrected the hyperlink to it in the - new_features_1.3.html document. [Ralf S. Engelschall] PR#1348 - - *) Fix a bug in the src/helpers/fp2rp script and make it a little bit - faster [Martin Kraemer] - - *) Make Configure die when you give it an unknown command switch. - [Ben Hyde] - - *) Add five new and fresh manpages for the support programs: dbmmanage.1, - suexec.8, htdigest.1, rotatelogs.8 and logresolve.8. Now all up-to-date - and per default compiled support programs have manual pages - just to - document our stuff a little bit more and to be able to do really - Unix-like installations ;-) [Ralf S. Engelschall] - - *) Major cleanups to the Configure script to make it and its generated - Makefiles again readable and maintainable: add SRCDIR option, removed - INCLUDES_DEPTH[0-2] kludge, cleanup of TARGET option, cleanup of - generated sections, consequently added Makefile headers with inheritance - information, added subdir movement messages for easier following where - the build process currently stays (more verbose then standard Make, less - verbose than GNU make), same style to comments in the Configure script, - added Apache license header, fixed a few bugs, etc. [Ralf S. Engelschall] - - *) Add the new ApacheBench program "ab" to src/support/: This is derived - from the ZeusBench benchmarking program and can be used to determine the - response performance of an Apache installation. This version is - officially licensed with Zeus Technology, Ltd. See the license agreement - statements in <199803171224.NAA24547 en1.engelschall.com> in apache-core. - [Ralf S. Engelschall] - - *) API: Various core functions that are definately not part of the API - have been made static, and a few have been marked API_EXPORT. Still - more have been marked CORE_EXPORT and are not intended for general - use by modules. [Doug MacEachern, Dean Gaudet] - - *) mod_proxy was not clearing the Proxy-Connection header from - requests; now it does. This did not violate any spec, however - causes poor interactions when you are talking to remote proxies. - [Marc Slemko] PR#1741 - - *) Various cleanups to the command line interface and manual pages. - [Ralf S. Engelschall] - - *) cfg_getline() was not properly handling lines that did not end - with a line termination character. [Marc Slemko] PR#1869, 1909 - - *) Performance tweak to mod_log_config. [Dmitry Khrustalev] - - *) Clean up some undocumented behavior of mod_setenvif related to - "merging" two SetEnvIf directives when they match the same header - and regex. Document that mod_setenvif will perform comparisons in - the order they appear in the config file. Optimize mod_setenvif by - doing more work at config time rather than at runtime. - [Dean Gaudet] - - *) src/include/ap_config.h now wraps it's #define's with #ifndef/#endif's - to allow for modules to overrule them and to reduce redefinition - warnings [Jim Jagielski] - - *) [PORT] For A/UX change the OS-#define for -DAUX to -DAUX3. - [Jim Jagielski] + *) mod_win32: Invert logic for env var UTF-8 fixing. + Now we exclude a list of vars which we know for sure they dont hold UTF-8 + chars; all other vars will be fixed. This has the benefit that now also + all vars from 3rd-party modules will be fixed. PR 13029 / 34985. + [Guenter Knauf] - *) Making the hard-coded cross-module function call mime_find_ct() (from - mod_proxy to mod_mime) obsolete by making sure the API hook for MIME type - checking is really called even for proxy requests except for URLs with - HTTP schemes (because there we can optimize by not running the type - checking hooks due to the fact that the proxy gets the MIME Content-type - from the remote host later). This change cleans up mod_mime by removing - the ugly export kludge, makes the one-liner file mod_mime.h obsolete, and - especially unbundles mod_proxy and mod_mime. This way they both now can - be compiled as shared objects and are no longer tied together. - [Ralf S. Engelschall] - - *) util.c cleanup and speedup. [Dean Gaudet] - - *) API: Clarification, pstrndup() will always copy n bytes of the source - and NUL terminate at the (n+1)st byte. [Dean Gaudet] - - *) Mark module command_rec and handler_rec structures const so that they - end up in the read-only data section (and are friendlier to systems - that don't do optimistic memory allocation on fork()). [Dean Gaudet] - - *) Add check to the "Port" directive to make sure the specified - port is in the appropriate range. [Ben Hyde] - - *) Performance improvements to invoke_handler(). - [Dmitry Khrustalev ] - - *) Added support for building shared objects even for library-style modules - (which are built from more than one object file). This now provides the - ability to build mod_proxy as a shared object module. Additionally - modules like mod_example are now also supported for shared object - building because the generated Makefiles now no longer assume there is at - least one statically linked module. [Ralf S. Engelschall] - - *) API: Clarify usage of content_type, handler, content_encoding, - content_language and content_languages fields in request_rec. They - must always be lowercased; and the strings pointed to shouldn't - be modified (you must copy them to modify them). Fix a few bugs - related to this. [Dean Gaudet] - - *) API: Clarification: except for RAW_ARGS, all command handlers can - treat the char * parameters as permanent, and modifiable. There - is no need to pstrdup() them. Clean up some needless pstrdup(). - [Dean Gaudet] - - *) Now mod_so keeps track of which module shared objects with which names - are loaded and thus avoids multiple loading and unloading and irritating - error_log messages. [Ralf S. Engelschall] - - *) Prior to the existence of mod_setenv it was necessary to tweak the TZ - environment variable in the apache core. But that tweaking interferes - with mod_setenv. So don't tweak if the user has specified an explicit - TZ variable. [Jay Soffian ] PR#1888 - - *) rputs() did not calculate r->sent_bodyct properly. - [Siegmund Stirnweiss ] PR#1900 - - *) The CGI spec says that REMOTE_HOST should be set to the remote hosts's - name, or left unset if this value is unavailable. Apache was setting - it to the IP address when unavailable. - [Tony Finch ] PR#1925 - - *) Various improvements to the configuration and build support for compiling - modules as shared objects. Especially Solaris 2.x, SunOS 4.1, IRIX and - OSF1 support with GCC and vendor compilers was added. This way shared - object support is now provided out-of-the-box for FreeBSD, Linux, - Solaris, SunOS, IRIX and OSF1. In short: On all major platforms! - [Ralf S. Engelschall] - - *) Minor cleanup in http_main -- split QNX and OS2 specific "mmap" - scoreboard code into separate #defines -- USE_POSIX_SCOREBOARD - and USE_OS2_SCOREBOARD. [Dean Gaudet] - - *) Fix one more special locking problem for RewriteMap programs in - mod_rewrite: According to the documentation of flock(), "Locks are on - files, not file descriptors. That is, file descriptors duplicated - through dup(2) or fork(2) do not result in multiple instances of a lock, - but rather multiple references to a single lock. If a process holding a - lock on a file forks and the child explicitly unlocks the file, the - parent will lose its lock.". To overcome this we have to make sure the - RewriteLock file is opened _AFTER_ the childs were spawned which is now - the case by opening it in the child_init instead of the module_init API - hook. [Ralf S. Engelschall] PR#1029 - - *) Change to Location and LocationMatch semantics. LocationMatch no - longer lets a single slash match multiple adjacent slashes in the - URL. This change is for consistency with RewriteRule and - AliasMatch. Multiple slashes have meaning in URLs that they do - not have in (some) filesystems. Location on the other hand can - be considered a shorthand for a more complicated regex, and it - does match multiple slashes with a single slash -- which is - also consistent with the Alias directive. - [Dean Gaudet] related PR#1440 - - *) Fix bug with mod_mime_magic causing certain files, including files - of length 0, to result in no response from the server. - [Dean Gaudet] - - *) The Configure script now generates src/include/ap_config.h which - contains the set of defines used when Apache is compiled on a platform. - This file can then be included by external modules before including - any Apache header files in case they are being built separately from - Apache. Along with this change, a couple of minor changes were - made to make Apache's #defines coexist peacefully with any autoconf - defines an external module might have. [Rasmus Lerdorf] - - *) Fix mod_rewrite for the ugly API case where sections exist - but without any RewriteXXXXX directives. Here mod_rewrite is given no - chance by the API to initialize its per-server configuration and thus - receives the wrong one from the main server. This is now avoided by - remembering the server together with the config structure while - configuring and later assuming there is no config when we see a - difference between the remembered server and the one calling us. - [Ralf S. Engelschall] PR#1790 - - *) Fixed the DBM RewriteMap support for mod_rewrite: First the support now - is automatically disabled under configure time when the dbm_xxx functions - are not available. Second, two heavy source code errors in the DBM - support code were fixed. This makes DBM RewriteMap's usable again after - a long time of brokenness. [Ralf S. Engelschall] PR#1696 - - *) Now all configuration files support Unix-style line-continuation via - the trailing backslash ("\") character. This enables us to write down - complex or just very long directives in a more readable way. The - backslash character has to be really the last character before the - newline and it has not been prefixed by another (escaping) backslash. - [Ralf S. Engelschall] - - *) When using ProxyPass the ?querystring was not passed correctly. - [Joel Truher ] - - *) To deal with modules being compiled and [dynamically] linked - at a different time from the core, the SERVER_VERSION and - SERVER_BUILT symbols have been abstracted through the new - API routines apapi_get_server_version() and apapi_get_server_built(). - [Ken Coar] PR#1448 - - *) WIN32: Preserve trailing slash in canonical path (and hence - in PATH_INFO). [Paul Sutton, Ben Laurie] - - *) PORT: USE_PTHREAD_SERIALIZED_ACCEPT has proven unreliable - depending on the rev of Solaris and what mixture of modules - are in use. So it has been disabled, and Solaris is back to - using USE_FCNTL_SERIALIZED_ACCEPT. Users may experiment with - USE_PTHREAD_SERIALIZED_ACCEPT at their own risk, it may speed - up static content only servers. Or it may fail unpredictably. - [Dean Gaudet] PR#1779, 1854, 1904 - - *) mod_test_util_uri.c created which tests the logic in util_uri.c. - [Dean Gaudet] - - *) API: Rewrite of absoluteURI handling, and in particular how - absoluteURIs match vhosts. Unless a request is a proxy request, a - "http://host" url is treated as if a similar "Host:" header had been - supplied. This change was made to support future HTTP/1.x protocols - which may require clients to send absoluteURIs for all requests. - - In order to achieve this change subtle changes were made to the API. In a - request_rec, r->hostlen has been removed. r->unparsed_uri now exists so - that the unmodified uri can be retrieved easily. r->proxyreq is not set - by the core, modules must set it during the post_read_request or - translate_names phase. - - Plus changes to the virtualhost test suite for absoluteURI testing. - - This fixes several bugs with the proxy proxying requests to vhosts - managed by the same httpd. - [Dean Gaudet] - - *) API: Cleanup of code in http_vhost.c, and remove vhost matching - code from mod_rewrite. The vhost matching is now performed by a - globally available function matches_request_vhost(). [Dean Gaudet] - - *) Reduce memory usage, and speed up ServerAlias support. As a - side-effect users can list multiple ServerAlias directives - and they're all considered. - [Chia-liang Kao ] PR#1531 - - *) The "poly" directive in image maps did not include the borders of the - polygon, whereas the "rect" directive does. Fix this inconsistency. - [Konstantin Morshnev ] PR#1771 - - *) Make \\ behave as expected. [] - - *) Add the `%a' construct to LogFormat and CustomLog to log the client IP - address. [Todd Eigenschink ] PR#1885 - - *) API: A new source module main/util_uri.c; It contains a routine - parse_uri_components() and friends which breaks a URI into its component - parts. These parts are stored in a uri_components structure called - parsed_uri within each request_rec, and are available to all modules. - Additionally, an unparse routine is supplied which re-assembles the URI - components back to an URI, optionally hiding the username:password@ part - from ftp proxy requests, and other useful routines. Within the structure, - you find on a ready-for-use basis: - scheme; /* scheme ("http"/"ftp"/...) */ - hostinfo; /* combined [user[:password]@]host[:port] */ - user; /* user name, as in http://user:passwd@host:port/ */ - password; /* password, as in http://user:passwd@host:port/ */ - hostname; /* hostname from URI (or from Host: header) */ - port_str; /* port string (integer representation is in "port") */ - path; /* the request path (or "/" if only scheme://host was given) */ - query; /* Everything after a '?' in the path, if present */ - fragment; /* Trailing "#fragment" string, if present */ - This is meant to serve as the platform for *BIG* savings in - code complexity for the proxy module (and maybe the vhost logic). - [Martin Kraemer] + *) core: Fix hook sorting for Perl modules, a regression introduced in + 2.2.21. PR: 45076. [Torsten Foertsch ] - *) Make all possible meta-construct expansions ($N, %N, %{NAME} and - ${map:key}) available for all location where a string is created in - mod_rewrite rewriting rulesets: 1st arg of RewriteCond, 2nd arg of - RewriteRule and for the [E=NAME:STRING] flag of RewriteRule. This way the - possible expansions are consequently usable at all string creation - locations. [Ralf S. Engelschall] - - *) Fix initialization of RewriteLogLevel (default now is 0 as documented - and not 1) and the per-virtual-server merging of directives. Now all - directives except `RewriteEngine' and `RewriteOption' are either - completely overridden (default) or completely inherited (when - `RewriteOptions inherit') is used. [Ralf S. Engelschall] PR#1325 - - *) Fix `RewriteMap' program lookup in situations where such maps are - defined but disabled (`RewriteEngine off') in per-server context. - [Ralf S. Engelschall] PR#1431 - - *) Fix bug introduced in 1.3b4-dev, config with no Port setting would cause - server to bind to port 0 rather than 80. [Dean Gaudet] - - *) Fix long-standing problem with RewriteMap _programs_ under Unix derivates - (like SunOS and FreeBSD) which don't accept the locking of pipes - directly. A new directive RewriteLock is introduced which can be used to - setup a separate locking file which then is used for synchronization. - [Ralf S. Engelschall] PR#1029 - - *) WIN32: The server root is obtained from the registry key - HKLM\SOFTWARE\Apache Group\Apache\ (version is currently - "1.3 beta"), unless overridden by the -d command line flag. The - value is stored by running "apache -i -d serverroot". [Paul Sutton] - - *) Merged os/win32/mod_dll.c into modules/standard/mod_so.c to support - dynamic loading on Win32 and Unix via the same module. [Paul Sutton] - - *) Now mod_rewrite no longer makes problematic assumptions on the characters - a username can contain when trying to expand it via /etc/passwd. - [Ralf S. Engelschall] - - *) The mod_setenvif BrowserMatch backwards compatibility command did not - work properly with spaces in the regex. [Ronald Tschalaer] PR#1825 - - *) Add new RewriteMap types: First, `rnd' which is equivalent to the `txt' - type but with a special post-processing for the looked-up value: It - parses it into alternatives according to `|' chars and then only one - particular alternative is chosen randomly (this is an essential - functionality needed for balancing between backend-servers when using - Apache as a Reverse Proxy. The looked up value here is a list of - servers). Second, `int' with the built-in maps named `tolower' and - `toupper' which can be used to map URL parts to a fixed case (this is an - essential feature to fix the case of server names when doing mass - virtual-hosting with the help of mod_rewrite instead of using - sections). [Ralf S. Engelschall, parts based on code from - Jay Soffian ] PR#1631 - - *) Add a new directive to mod_proxy similar to ProxyPass: `ProxyPassReverse'. - This directive lets Apache adjust the URL in Location-headers on HTTP - redirect responses sent by the remote server. This way the virtually - mapped area is no longer left on redirects and thus by-passed which is - especially essential when running Apache as a reverse proxy. - [Ralf S. Engelschall] - - *) Hide Proxy-Authorization from CGI/SSI/etc just like Authorization is - hidden. [Alvaro Martinez Echevarria] - - *) Apache will, when started with the -X (single process) debugging flag, - honor the SIGINT or SIGQUIT signals again now. This capability got lost - a while ago during OS/2 signal handling changes. - - *) [PORT] Work around the fact that NeXT runs on more than the - m68k chips in mod_status [Scott Anguish and Timothy Luoma - ] - - *) [PORT] Recognize FreeBSD versions so we can use the OS regex as well - as handling unsigned-chars for FreeBSD v3 and v2 [Andrey Chernov - and Jim] PR#1450 - - *) Use SA_RESETHAND or SA_ONESHOT when installing the coredump handlers. - In particular the handlers could trigger themselves into an infinite - loop if RLimitMem was used with a small amount of memory -- too small - for the signal stack frame to be set up. [Dean Gaudet] - - *) Fix problems with absoluteURIs introduced during 1.3b4. [Dean Gaudet, - Alvaro Martinez Echevarria ] - - *) Fix multiple UserDir problem introduced during 1.3b4-dev. - [Dean Gaudet] PR#1850 - - *) ap_cpystrn() had an off-by-1 error. - [Charles Fu ] PR#1847 - - *) API: As Ken suggested the check_cmd_context() function and related - defines are non-static now so modules can use 'em. [Martin Kraemer] - - *) mod_info would occasionally produce an unpaired in its - output. Fixed. [Martin Kraemer] - - *) By default AIX binds a process (and it's children) to a single - processor. httpd children now unbind themselves from that cpu - and re-bind to one selected at random via bindprocessor() - [Doug MacEachern] - - *) Linux 2.0 and above implement RLIMIT_AS, RLIMIT_DATA has almost no - effect. Work around it by using RLIMIT_AS for the RLimitMEM - directive. [Enrik Berkhan ] PR#1816 - - *) mod_mime_magic error message should indicate the filename when - reads fail. ["M.D.Parker" ] PR#1827 - - *) Previously Apache would permit to end (and - similary for Location and Directory), now this is diagnosed as an - error. Improve error messages for mismatched sections (, - , , , ...). - [Dean Gaudet, Martin Kraemer] - - *) is not permitted within (because of the - semantic ordering). [Dean Gaudet] PR#379 - - *) with wildcards was broken by the change in wildcard - semantics (* does not match /). To fix this, now - apply only to the basename of the request filename. This - fixes some other inconsistencies in semantics - (such as not working). [Dean Gaudet] PR#1817 - - *) Removed bogus "dist.tar" target from Makefile.tmpl and make sure - backup files are removed on "clean" target [Ralf S. Engelschall] - - *) PORT: Add -lm to LIBS for HPUX. [Dean Gaudet] PR#1639 - - *) Various errors from select() and accept() in child_main() would - result in an infinite loop. It seems these two tickle kernel - or library bugs occasionally, and result in log spammage and - a generally bad scene. Now the child exits immediately, - which seems to be a good workaround. - [Dean Gaudet] PR#1747, 1107, 588, 1787, 987, 588 - - *) Cleaned up some race conditions in unix child_main during - initialization. [Dean Gaudet] - - *) SECURITY: "UserDir /abspath" without a * in the path would allow - remote users to access "/~.." and bypass access restrictions - (but note /~../.. was handled properly). - [Lauri Jesmin ] PR#1701 - - *) API: os_is_path_absolute() now takes a const char * instead of a char *. - [Dean Gaudet] - -Changes with Apache 1.3b5 - - *) Source file dependencies in Makefile.tmpl files throughout the - source tree were updated to accurately reflect reality. - [Dean Gaudet] - - *) Preserve the content encoding given by the AddEncoding directive - when the client doesn't otherwise specify an encoding. - [Ronald Tschalaer ] - - *) Sort out problems with canonical filename handling happening too late. - [Dean Gaudet, Ben Laurie] - -Changes with Apache 1.3b4 - - *) The module structure was modified to include a *dynamic_load_handle - in the STANDARD_MODULE_STUFF portion, and the MODULE_MAGIC_NUMBER - has been bumped accordingly. [Paul Sutton] - - *) All BrowserMatch directives mentioned in - htdocs/manual/known_client_problems.html are in the default - configuration files. [Lars Eilebrecht] - - *) MiNT port update. [Jan Paul Schmidt] - - *) HTTP/1.1 requires x-gzip and gzip encodings be treated - equivalent, similarly for x-compress and compress. Apache - now ignores a leading x- when comparing encodings. It also - preserves the encoding the client requests (for example if - it requests x-gzip, then Apache will respond with x-gzip - in the Content-Encoding header). - [Ronald Tschalaer ] PR#1772 - - *) Fix a memory leak on keep-alive connections. [Igor Tatarinov] - - *) Added mod_so module to support dynamic loading of modules on Unix - (like mod_dld for Win32). This replaces mod_dld.c. Use SharedModule - instead of AddModule in Configuration to build shared modules - [Sameer Parekh, Paul Sutton] - - *) Minor cleanups to r->finfo handling in some modules. - [Dean Gaudet] - - *) Abstract read()/write() to ap_read()/ap_write(). - Makes it easier to add other types of IO code such as SFIO. - [Randy Terbush] - - *) API: Generalize default_port manipulations to make support of - different protocols easier. [Ben Laurie, Randy Terbush] - - *) There are many cases where users do not want Apache to form - self-referential urls using the "canonical" ServerName and Port. - The new UseCanonicalName directive (default on), if set to off - will cause Apache to use the client-supplied hostname and port. - API: Part of this change required a change to the construct_url() - prototype; and the addition of get_server_name() and - get_server_port(). - [Michael Douglass , Dean Gaudet] - PR#315, 459, 485, 1433 - - *) Yet another rearrangement of the source tree.. now all the common - header files are in the src/include directory. The -Imain -Iap - references in Makefiles have been changed to the simpler -Iinclude - instead. In addition to simplifying the build a little bit, this - also makes it clear when a module is referencing something in a - other than kosher manner (e.g., the proxy including mod_mime.h). - Module-private header files (the proxy, mod_mime, the regex library, - and mod_rewrite) have not been moved to src/include; nor have - the OS-abstraction files. [Ken Coar] - - *) Fix a bug where r->hostname didn't have the :port stripped - from it. [Dean Gaudet] - - *) Tweaked the headers_out table size, and the subprocess_env - table size guess in rename_original_environment(). Added - MAKE_TABLE_PROFILE which can help discover make_table() - calls that use too small an initial guess, see alloc.c. - [Dean Gaudet] - - *) Options and AllowOverride weren't properly merging in the main - server setting inside vhosts (only an issue when you have no - or other section containing an Options that affects - a request). Options +foo or -foo in the main_server wouldn't - affect the main_server's lookup defaults. [Dean Gaudet] - - *) Variable 'cwd' was being used pointlessly before being set. - [Ken Coar] PR#1738 - - *) r->allowed handling cleaned up in the standard modules. - [Dean Gaudet] - - *) Some case-sensitivity issues cleaned up to be consistent with - RFC2068. [Dean Gaudet] - - *) SIGURG doesn't exist everywhere. - [Mark Andrew Heinrich ] - - *) mod_unique_id was erroneously generating a second unique id when - an internal redirect occured. Such redirects occur, for example, - when processing a DirectoryIndex match. [Dean Gaudet] - - *) API: table_add, table_merge, and table_set include implicit pstrdup() - of the key and value. But in many cases this is not required - because the key/value is a constant, or the value has been built - by pstrcat() or other similar means. New routines table_addn, - table_mergen, and table_setn have been added to the API, these - routines do not pstrdup() their arguments. The core code and - standard modules were changed to take advantage of these routines. - The resulting server is up to 20% faster in some situations. - - Note that it is easy to get code subtly wrong if you pass a key/value - which is in a pool other than the pool of the table. The only - safe thing to do is to pass key/values which are in the pool of - the table, or in one of the ancestors of the pool of the table. - i.e. if the table is part of a subrequest, a value from the main - request's pool is OK since the subrequest pool is a sub_pool of the - main request's pool (and therefore has a lifespan at most as long as - the main pool). There is debugging code which can detect improper - usage, enabled by defining POOL_DEBUG. See alloc.c for more details. - [Dmitry Khrustalev , Dean Gaudet] - - *) More mod_mime_magic cleanup: fewer syscalls; should handle "files" - which don't exist on disk more gracefully; handles vhosts properly. - Update documentation to reflect the code -- if there's no - MimeMagicFile directive then the module is not enabled. - [Dean Gaudet] - - *) PORT: Some older *nix dialects cannot automatically start scripts - which begin with a #! interpreter line (the shell starts the scripts - appropriately on these platforms). Apache now supports starting of - "hashbang-scripts" when the NEED_HASHBANG_EMUL define is set. - [Martin Kraemer, with code from Peter Wemm - taken from tcsh] - - *) API: "typedef array_header table" removed from alloc.h, folks should - have been writing to use table as if it were an opaque type, but even - some standard modules got this wrong. By changing the definition - to "typedef struct table table" module authors will receive compile - time warnings that they're doing the wrong thing. This change - facilitates future changes with more sophisticated table - structures. Specifically, module authors should be using table_elts() - to get access to an array_header * for the table. [Dean Gaudet] - - *) API: Renamed new_connection() to avoid namespace collision with LDAP - library routines. [Ken Coar, Rasmus Lerdorf] - - *) WIN32: mod_speling is now available on the Win32 platform. - [Marc Slemko] - - *) For clarity the following compile time definition was changed: - - SAFE_UNSERIALIZED_ACCEPT -> SINGLE_LISTEN_UNSERIALIZED_ACCEPT - - Also, for example, HAVE_MMAP would mean to use mmap() scoreboards - and not be a general notice that the OS has mmap(). Now the - HAVE_MMAP/SHMGET #defines strictly are informational that the - OS has that method of shared memory; the type to use for - the scoreboard is a seperate #define (USE_MMAP_SCOREBOARD - and USE_SHMGET_SCOREBOARD). This allows outside modules to - determine if shared memory is available and allows Apache - to determine the best method to use for the scoreboard. + *) Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20: + A range of '0-' will now return 206 instead of 200. PR 51878. [Jim Jagielski] - *) PORT: UnixWare 2.1.2 SMP appears to require USE_FCNTL_SERIALIZED_ACCEPT, - as do various earlier versions. It should be safe on all versions. - Unixware 1.x appears to have the same SIGHUP bug as solaris does with - the slack code. A few other cleanups for Unixware. - [Tom Hughes ] PR#1082, PR#1282, PR#1499, PR#1553 - - *) PORT: A/UX can handle single-listen accepts without mutex - locking, so we add SINGLE_LISTEN_UNSERIALIZED_ACCEPT. [Jim Jagielski] - - *) When die() happens we need to eat any request body if one exists. - Otherwise we can't continue with a keepalive session. This shows up - as a POST problem with MSIE 4.0, typically against pages which are - authenticated. [Roy Fielding] PR#1399 - - *) If you define SECURITY_HOLE_PASS_AUTHORIZATION then the Authorization - header will be passed to CGIs. This is generally a security hole, so - it's not a default. [Marc Slemko] PR#549 - - *) Fix Y2K problem with date printing in suexec log. - [Paul Eggert ] PR#1343 - - *) WIN32 deserves a pid file. [Ben Hyde] - - *) suexec errors now include the errno/description. [Marc Slemko] PR#1543 - - *) PORT: OSF/1 now uses USE_FLOCK_SERIALIZED_ACCEPT to solve PR#467. - The choice of flock vs. fcntl was made based on timings which showed that - even on non-NFS, non-exported filesystems fcntl() was an order of - magnitude slower. It also uses SINGLE_LISTEN_UNSERIALIZED_ACCEPT so - that single socket users will see no difference. [Dean Gaudet] PR#467 - - *) "File does not exist" error message was erroneously including the - errno. [Marc Slemko] - - *) Improve the warning message generated when a client drops the - connection (hits stop button, etc.) during a send. [Roy Fielding] - - *) Defining GPROF will disable profiling in the parent and enable it - in the children. If you're profiling under Linux this is pretty much - necessary because SIGPROF is lost across a fork(). [Dean Gaudet] - - *) htdigest and htpasswd needed slight tweaks to work on OS/2 and WIN32. - [Brian Havard] - - *) The NeXT cc (which is gcc hacked up) doesn't appear to support some - gcc functionality. Work around it. - [Keith Severson ] PR#1613 - - *) Some linkers complain when .o files contain no functions. - [Keith Severson ] PR#1614 - - *) Some const declarations in mod_imap.c that were added for debugging - purposes caused some compilers heartburn without adding any - significant value, so they've been removed. [Ken Coar] - - *) The src/main/*.h header files have had #ifndef wrappers added to - insulate them against duplicate calls if they get included through - multiple paths (e.g., in .c files as well as other .h files). - [Ken Coar] - - *) The libap routines now have a header file for their prototypes, - src/ap/ap.h, to ease their use in non-httpd applications. [Ken Coar] - - *) mod_autoindex with a plaintext header file would emit the

/* Info for logging */

char *the_request;
@@ -379,7 +384,6 @@ int method_number; /* M_GET, M_POST, etc. */

void *per_dir_config;   /* Options set in config files, etc. */
 void *request_config;   /* Notes on *this* request */

-
};

@@ -820,7 +824,7 @@ void *request_config; /* Notes on *this* request */

Other sorts of resources -- cleanup functions

-

More text goes here. Describe the the cleanup primitives in terms of +

More text goes here. Describe the cleanup primitives in terms of which the file stuff is implemented; also, spawn_process.

Pool cleanups live until clear_pool() is called: @@ -1216,7 +1220,28 @@ void *request_config; /* Notes on *this* request */

Available Languages:  en 

-
+
top

Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
\ No newline at end of file diff --git a/docs/manual/developer/API.xml b/docs/manual/developer/API.xml index de63ae1c1a5..f9c7bf6cd9c 100644 --- a/docs/manual/developer/API.xml +++ b/docs/manual/developer/API.xml @@ -4,12 +4,12 @@ - + API /developer/ .. diff --git a/docs/manual/developer/debugging.html b/docs/manual/developer/debugging.html index f7977f5ec60..6d94fa270e1 100644 --- a/docs/manual/developer/debugging.html +++ b/docs/manual/developer/debugging.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: debugging.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/developer/debugging.html.en b/docs/manual/developer/debugging.html.en index 7f5e70d4ad5..36eace0d4c0 100644 --- a/docs/manual/developer/debugging.html.en +++ b/docs/manual/developer/debugging.html.en @@ -1,197 +1,62 @@ - -Debugging Memory Allocation in APR - Apache HTTP Server +Debugging Memory Allocation in APR - Apache HTTP Server Version 2.2 - - -
top

Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
\ No newline at end of file diff --git a/docs/manual/developer/debugging.xml b/docs/manual/developer/debugging.xml index ab97ec07a7a..d261d81cd7e 100644 --- a/docs/manual/developer/debugging.xml +++ b/docs/manual/developer/debugging.xml @@ -4,12 +4,12 @@ - + debugging /developer/ .. diff --git a/docs/manual/developer/documenting.html b/docs/manual/developer/documenting.html index 0731e2d3590..d001174c6d2 100644 --- a/docs/manual/developer/documenting.html +++ b/docs/manual/developer/documenting.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: documenting.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: documenting.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/developer/documenting.html.en b/docs/manual/developer/documenting.html.en index cbb00617dff..f16930b0c93 100644 --- a/docs/manual/developer/documenting.html.en +++ b/docs/manual/developer/documenting.html.en @@ -1,28 +1,36 @@ - -Documenting Apache 2.0 - Apache HTTP Server +Documenting Apache 2.0 - Apache HTTP Server Version 2.2 - - + + + +
<-

Please note

+

This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

+

You may follow this link to go to the current version of this document.

Documenting Apache 2.0

-

Available Languages:  en 

+

Available Languages:  en  | + zh-cn 

Apache 2.0 uses Doxygen to - document the APIs and global variables in the the code. This will explain + document the APIs and global variables in the code. This will explain the basics of how to document using Doxygen.

top
@@ -77,8 +85,30 @@ the Doxygen site.

-

Available Languages:  en 

-
+

Available Languages:  en  | + zh-cn 

+
top

Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
\ No newline at end of file diff --git a/docs/manual/developer/documenting.html.zh-cn.utf8 b/docs/manual/developer/documenting.html.zh-cn.utf8 new file mode 100644 index 00000000000..3ad78722b9e --- /dev/null +++ b/docs/manual/developer/documenting.html.zh-cn.utf8 @@ -0,0 +1,110 @@ + + + + + +Apache 2.0 文档 - Apache HTTP 服务器 版本 2.2 + + + + + + + +
<-
+

Please note

+

This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

+

You may follow this link to go to the current version of this document.

Apache 2.0 文档

+
+

可用语言:  en  | + zh-cn 

+
+ +

Apache 2.0 使用 Doxygen 从代码中 + 生成 API 和全局变量的文档。下面是对使用 Doxygen 生成文档的简介。

+
+
top
+
+

简要说明

+

使用 /** 开始文档块
+ 使用 */ 结束文档块

+ +

在文档块中,我们可以使用多个标签:

+ +

+ Description of this functions purpose
+ @param parameter_name description
+ @return description
+ @deffunc signature of the function
+

+ +

一般不需要 deffunc 。DoxyGen 没有完整的解析器,所以任何 + 在返回类型声明中使用宏的原型,都是太复杂了。这些函数就需要使用 deffunc。 + 例如 (使用 &gt; 而不是 >):

+ +

+ /**
+  * return the final element of the pathname
+  * @param pathname The path to get the final element of
+  * @return the final element of the path
+  * @tip Examples:
+  * <pre>
+  * "/foo/bar/gum" -&gt; "gum"
+  * "/foo/bar/gum/" -&gt; ""
+  * "gum" -&gt; "gum"
+  * "wi\\n32\\stuff" -&gt; "stuff"
+  * </pre>
+  * @deffunc const char * ap_filename_of_pathname(const char *pathname)
+  */ +

+ +

总是在头文件开始包含:

+

+ /**
+  * @package Name of library header
+  */ +

+ +

Doxygen 为每个包生成一个新的 HTML 文件,名字是 + {Name_of_library_header}.html,所以请简化名称。

+ +

更深入的讨论,请参见 + Doxygen 站点。

+
+
+

可用语言:  en  | + zh-cn 

+
top

评论

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
+ \ No newline at end of file diff --git a/docs/manual/developer/documenting.xml b/docs/manual/developer/documenting.xml index d615583c3f5..0540e741af9 100644 --- a/docs/manual/developer/documenting.xml +++ b/docs/manual/developer/documenting.xml @@ -4,12 +4,12 @@ - + documenting /developer/ .. en + zh-cn diff --git a/docs/manual/developer/documenting.xml.zh-cn b/docs/manual/developer/documenting.xml.zh-cn new file mode 100644 index 00000000000..0ffac21cf17 --- /dev/null +++ b/docs/manual/developer/documenting.xml.zh-cn @@ -0,0 +1,79 @@ + + + + + + + + +开发者文档 + +Apache 2.0 文档 + + +

Apache 2.0 使用 Doxygen 从代码中 + 生成 API 和全局变量的文档。下面是对使用 Doxygen 生成文档的简介。

+
+ +
简要说明 +

使用 /** 开始文档块
+ 使用 */ 结束文档块

+ +

在文档块中,我们可以使用多个标签:

+ + + Description of this functions purpose
+ @param parameter_name description
+ @return description
+ @deffunc signature of the function
+
+ +

一般不需要 deffunc 。DoxyGen 没有完整的解析器,所以任何 + 在返回类型声明中使用宏的原型,都是太复杂了。这些函数就需要使用 deffunc。 + 例如 (使用 &gt; 而不是 >):

+ + + /**
+  * return the final element of the pathname
+  * @param pathname The path to get the final element of
+  * @return the final element of the path
+  * @tip Examples:
+  * <pre>
+  * "/foo/bar/gum" -&gt; "gum"
+  * "/foo/bar/gum/" -&gt; ""
+  * "gum" -&gt; "gum"
+  * "wi\\n32\\stuff" -&gt; "stuff"
+  * </pre>
+  * @deffunc const char * ap_filename_of_pathname(const char *pathname)
+  */ +
+ +

总是在头文件开始包含:

+ + /**
+  * @package Name of library header
+  */ +
+ +

Doxygen 为每个包生成一个新的 HTML 文件,名字是 + {Name_of_library_header}.html,所以请简化名称。

+ +

更深入的讨论,请参见 + Doxygen 站点。

+
+
diff --git a/docs/manual/developer/filters.html b/docs/manual/developer/filters.html index c65dc946acb..6caade3581f 100644 --- a/docs/manual/developer/filters.html +++ b/docs/manual/developer/filters.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: filters.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/developer/filters.html.en b/docs/manual/developer/filters.html.en index fc865cd7000..ad2d8aca0f6 100644 --- a/docs/manual/developer/filters.html.en +++ b/docs/manual/developer/filters.html.en @@ -1,22 +1,29 @@ - -How filters work in Apache 2.0 - Apache HTTP Server +How filters work in Apache 2.0 - Apache HTTP Server Version 2.2 - - + + + +
<-

How filters work in Apache 2.0

+Apache > HTTP Server > Documentation > Version 2.2 > Developer Documentation

Please note

+

This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

+

You may follow this link to go to the current version of this document.

How filters work in Apache 2.0

Available Languages:  en 

@@ -32,7 +39,7 @@
  • How are filters inserted?
  • Asis
  • Explanations
  • -
    +
    top

    Filter Types

    @@ -130,19 +137,15 @@ same set of filters as the main request. A graphical representation might help:

    -
    -Default_handler --> includes_filter --> byterange --> ...
    -
    +
    Default_handler --> includes_filter --> byterange --> ...

    If the includes filter creates a sub request, then we don't want the data from that sub-request to go through the includes filter, because it might not be SSI data. So, the subrequest adds the following:

    -
        
    -Default_handler --> includes_filter -/-> byterange --> ...
    +
    Default_handler --> includes_filter -/-> byterange --> ...
                                         /
    -Default_handler --> sub_request_core
    -
    +Default_handler --> sub_request_core

    What happens if the subrequest is SSI data? Well, that's easy, the includes_filter is a resource filter, so it will be added to @@ -204,7 +207,28 @@ Default_handler --> sub_request_core

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/developer/filters.xml b/docs/manual/developer/filters.xml index 5b4115b3149..ff953a0a76f 100644 --- a/docs/manual/developer/filters.xml +++ b/docs/manual/developer/filters.xml @@ -4,12 +4,12 @@ - + filters /developer/ .. diff --git a/docs/manual/developer/hooks.html b/docs/manual/developer/hooks.html index 49fe68e8dd4..a4077c72195 100644 --- a/docs/manual/developer/hooks.html +++ b/docs/manual/developer/hooks.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: hooks.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/developer/hooks.html.en b/docs/manual/developer/hooks.html.en index da26c308d2d..3a312724b16 100644 --- a/docs/manual/developer/hooks.html.en +++ b/docs/manual/developer/hooks.html.en @@ -1,22 +1,29 @@ - -Apache 2.0 Hook Functions - Apache HTTP Server +Apache 2.0 Hook Functions - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.0 Hook Functions

    Available Languages:  en 

    @@ -33,7 +40,7 @@
    +
    top

    Creating a hook function

    @@ -109,8 +116,8 @@

    The first hook that does not return DECLINED stops the loop and its return value is returned from the hook - caller. Note that DECLINED is the tradition Apache - hook return meaning "I didn't do anything", but it can be + caller. Note that DECLINED is the traditional + hook return value meaning "I didn't do anything", but it can be whatever suits you.

    Alternatively, all hooks can be run until an error occurs. @@ -162,7 +169,7 @@

    Add a hook registering function

    -

    During initialisation, Apache will call each modules hook +

    During initialisation, the server will call each modules hook registering function, which is included in the module structure:

    @@ -197,9 +204,9 @@ order relative to each other, but, of course, all modules using APR_HOOK_FIRST will be run before APR_HOOK_MIDDLE which are before APR_HOOK_LAST. Modules that don't care - when they are run should use APR_HOOK_MIDDLE. (I spaced - these out so people could do stuff like APR_HOOK_FIRST-2 - to get in slightly earlier, but is this wise? - Ben)

    + when they are run should use APR_HOOK_MIDDLE. These + values are spaced out, so that positions like APR_HOOK_FIRST-2 + are possible to hook slightly earlier than other functions.

    Note that there are two more values, APR_HOOK_REALLY_FIRST and APR_HOOK_REALLY_LAST. These @@ -233,7 +240,28 @@

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/developer/hooks.xml b/docs/manual/developer/hooks.xml index 2d262de9b27..4e5c00b9d33 100644 --- a/docs/manual/developer/hooks.xml +++ b/docs/manual/developer/hooks.xml @@ -4,12 +4,12 @@ - + hooks /developer/ .. diff --git a/docs/manual/developer/index.html b/docs/manual/developer/index.html index 5f97bff8c6d..aaa13b29cf7 100644 --- a/docs/manual/developer/index.html +++ b/docs/manual/developer/index.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: index.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/developer/index.html.en b/docs/manual/developer/index.html.en index e2f53545492..af98156f312 100644 --- a/docs/manual/developer/index.html.en +++ b/docs/manual/developer/index.html.en @@ -1,32 +1,41 @@ - -Developer Documentation for Apache 2.0 - Apache HTTP Server +Developer Documentation for Apache 2.x - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Developer Documentation for Apache 2.0

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Developer Documentation for Apache 2.x

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + zh-cn 

    -

    Many of the documents on these Developer pages are lifted - from Apache 1.3's documentation. While they are all being - updated to Apache 2.0, they are in different stages of - progress. Please be patient, and point out any discrepancies or +

    Warning

    +

    Many of the documents listed here are in need of update. + They are in different stages of progress. + Please be patient, and point out any discrepancies or errors on the developer/ pages directly to the dev@httpd.apache.org mailing list.

    +
    top

    External Resources

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/developer/index.html.zh-cn.utf8 b/docs/manual/developer/index.html.zh-cn.utf8 new file mode 100644 index 00000000000..41775b0828c --- /dev/null +++ b/docs/manual/developer/index.html.zh-cn.utf8 @@ -0,0 +1,88 @@ + + + + + +Apache 2.0 开发者文档 - Apache HTTP 服务器 版本 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.0 开发者文档

    +
    +

    可用语言:  en  | + zh-cn 

    +
    +
    此翻译可能过期。要了解最近的更改,请阅读英文版。
    + +

    开发者页面的许多文档都来自于 Apache 1.3。当更新到 Apache 2.0 + 时,它们可能位于不同的阶段。请耐心等待,或者直接向 + dev@httpd.apache.org 邮件列表报告开发者页面的差异或错误。

    +
    + +
    top
    +
    top
    +
    +
    +

    可用语言:  en  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/developer/index.xml b/docs/manual/developer/index.xml index dbebdf75ad1..e3bfdb8c604 100644 --- a/docs/manual/developer/index.xml +++ b/docs/manual/developer/index.xml @@ -4,12 +4,12 @@ - + index /developer/ .. en + zh-cn diff --git a/docs/manual/developer/index.xml.zh-cn b/docs/manual/developer/index.xml.zh-cn new file mode 100644 index 00000000000..e94492f14ce --- /dev/null +++ b/docs/manual/developer/index.xml.zh-cn @@ -0,0 +1,82 @@ + + + + + + + + + + +Apache 2.0 开发者文档 + + +

    开发者页面的许多文档都来自于 Apache 1.3。当更新到 Apache 2.0 + 时,它们可能位于不同的阶段。请耐心等待,或者直接向 + dev@httpd.apache.org 邮件列表报告开发者页面的差异或错误。

    +
    + +
    主题 + +
    + +
    外部资源 + +
    +
    diff --git a/docs/manual/developer/modules.html b/docs/manual/developer/modules.html index cb7b1dbfafc..33cfd0f4488 100644 --- a/docs/manual/developer/modules.html +++ b/docs/manual/developer/modules.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: modules.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: modules.html.ja.euc-jp +URI: modules.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/developer/modules.html.en b/docs/manual/developer/modules.html.en index 2f91ee9a482..01d87883c61 100644 --- a/docs/manual/developer/modules.html.en +++ b/docs/manual/developer/modules.html.en @@ -1,22 +1,29 @@ - -Converting Modules from Apache 1.3 to Apache 2.0 - Apache HTTP Server +Converting Modules from Apache 1.3 to Apache 2.0 - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Converting Modules from Apache 1.3 to Apache 2.0

    +Apache > HTTP Server > Documentation > Version 2.2 > Developer Documentation

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Converting Modules from Apache 1.3 to Apache 2.0

    Available Languages:  en  |  ja 

    @@ -29,7 +36,7 @@
    +
    top

    The easier changes ...

    @@ -83,8 +90,7 @@ will be called in.

    This is the code that was added to mod_mmap_static:

    -
    -static void register_hooks(void)
    +      
    static void register_hooks(void)
     {
         static const char * const aszPre[]={ "http_core.c",NULL };
         ap_hook_post_config(mmap_post_config,NULL,NULL,HOOK_MIDDLE);
    @@ -118,7 +124,7 @@ static void register_hooks(void)
     
           

    In the mod_mmap_static case I didn't care about the post_config stage, but the mmap_static_xlat - must be called after the core module had done it's name + must be called after the core module had done its name translation, hence the use of the aszPre to define a modifier to the position HOOK_LAST.

    @@ -128,8 +134,7 @@ static void register_hooks(void) creating your module definition. The old defintion looked like

    -
    -module MODULE_VAR_EXPORT module_name_module =
    +      
    module MODULE_VAR_EXPORT module_name_module =
     {
         STANDARD_MODULE_STUFF,
         /* initializer */
    @@ -153,8 +158,7 @@ module MODULE_VAR_EXPORT module_name_module =
     };

    The new structure is a great deal simpler...

    -
    -module MODULE_VAR_EXPORT module_name_module =
    +      
    module MODULE_VAR_EXPORT module_name_module =
     {
         STANDARD20_MODULE_STUFF,
         /* create per-directory config structures */
    @@ -267,7 +271,28 @@ module MODULE_VAR_EXPORT module_name_module =
     

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/developer/modules.html.ja.euc-jp b/docs/manual/developer/modules.html.ja.euc-jp deleted file mode 100644 index 6860644e02c..00000000000 --- a/docs/manual/developer/modules.html.ja.euc-jp +++ /dev/null @@ -1,274 +0,0 @@ - - - -¥⥸¥塼¥ë¤Î Apache 1.3 ¤«¤é Apache 2.0 ¤ؤΰܿ¢ - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥⥸¥塼¥ë¤Î Apache 1.3 ¤«¤é Apache 2.0 ¤ؤΰܿ¢

    -
    -

    Available Languages:  en  | - ja 

    -
    - -

    ¤³¤Îʸ½ñ¤Ï mod_mmap_static ¥⥸¥塼¥ë¤ò Apache 2.0 ÍѤ˰ܿ¢¤·¤¿»þ¤Ë - ³ؤó¤À·и³¤ò¤â¤Ȥ˽񤤤¿¡¢ºǽé¤μê°ú¤­½ñ¤Ǥ¹¡£¤ޤÀ¤ޤÀ´°Á´¤¸¤ã¤ʤ¤¤·¡¢ - ¤Ҥç¤äȤ¹¤ë¤ȴְã¤äƤ¤¤ëÉôʬ¤⤢¤뤫¤⤷¤ì¤ޤ»¤󤬡¢ - ¼è¤óݤê¤ˤϤʤë¤Ǥ·¤礦¡£

    -
    - -
    top
    -
    -

    ´Êñ¤ÊÊѹ¹ÅÀ

    - -

    ¥¯¥꡼¥ó¥ʥå× ¥롼¥Á¥ó

    -

    ¥¯¥꡼¥ó¥ʥåץ롼¥Á¥ó¤Ï apr_status_t ·¿¤Ǥ¢¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤½¤·¤ơ¢apr_status_t ·¿¤ÎÃͤòÊ֤µ¤ʤ¯¤ƤϤʤê¤ޤ»¤ó¡£ - ¥¯¥꡼¥ó¥ʥå×Ãæ¤Υ¨¥顼¤òÄÌÃΤ¹¤ëɬÍפ¬¤ʤ±¤ì¤С¢Ê֤êÃͤÏÉáÄ̡¢ - ARP_SUCCESS ¤Ǥ¹¡£¤¿¤Ȥ¨¥¨¥顼¤òÄÌÃΤ·¤¿¤Ȥ·¤Ƥ⡢ - ¤¹¤٤ƤΥ³¡¼¥ɤ¬¤½¤ÎÄÌÃΤò¥Á¥§¥å¯¤·¤¿¤ꡢ - ¥¨¥顼¤˱þ¤¸¤¿ưºî¤򤹤ë¤櫓¤ǤϤʤ¤¤³¤Ȥ˵¤¤ò¤Ĥ±¤Ƥ¯¤À¤µ¤¤¡£

    - - - -

    ½é´ü²½¥롼¥Á¥ó

    - -

    ½é´ü²½¥롼¥Á¥ó¤ϽèÍýÁ´ÂΤ«¤鸫¤Ƥ·¤ä¯¤꤯¤ë¤褦¤ʰỌ̃¤òɽ¤¹¤褦¤ˡ¢ - ̾Á°¤¬Êѹ¹¤µ¤ì¤ޤ·¤¿¡£¤Ǥ¹¤«¤顢mmap_init ¤«¤é mmap_post_config - ¤Τ褦¤ˤÁ¤ç¤äÈÊѹ¹¤µ¤ì¤ޤ·¤¿¡£ - ÅϤµ¤ì¤ë°ú¿ô¤ÏÂçÉý¤ËÊѹ¹¤µ¤졢¼¡¤Τ褦¤ˤʤê¤ޤ·¤¿¡£

    - -
      -
    • apr_pool_t *p
    • -
    • apr_pool_t *plog
    • -
    • apr_pool_t *ptemp
    • -
    • server_rec *s
    • -
    - - -

    ¥ǡ¼¥¿·¿

    -

    ¥ǡ¼¥¿·¿¤ΤۤȤó¤ɤÏ APR ¤˰ܤµ¤ì¤ޤ·¤¿¡£¤Ĥޤꡢ - ¤¤¤¯¤Ĥ«¤Î̾Á°¤¬Á°½ҤΤ褦¤ËÊѹ¹¤µ¤ì¤Ƥ¤¤ޤ¹¡£ - »ܤ¹¤٤­Êѹ¹ÅÀ¤δÊñ¤ʰìÍ÷¤ò°ʲ¼¤˼¨¤·¤ޤ¹¡£

    - -
      -
    • pool becomes apr_pool_t
    • -
    • table becomes apr_table_t
    • -
    - -
    top
    -
    -

    ¤â¤äÈÌñ²ð¤ÊÊѹ¹ÅÀ¡Ä

    - -

    ¥ե寤ÎÅÐϿ

    -

    ¿·¤·¤¤¥¢¡¼¥­¥ƥ¯¥Á¥ã¤ǤϺîÀ®¤·¤¿´ؿô¤ò¸ƤӽФ¹¤ΤË - °ìϢ¤Υե寤ò»ÈÍѤ·¤ޤ¹¡£¤³¤Υե寤ϡ¢¿·¤·¤¤´ؿô - static void register_hooks(void) ¤ò»ȤäÆÅÐϿ¤¹¤ë¤褦¡¢ - ¥⥸¥塼¥ë¤˽ñ¤­­¤µ¤ʤ¯¤ƤϤʤê¤ޤ»¤ó¡£ - ¤³¤δؿô¤ϡ¢¤ʤˤ򤹤٤­¤«°ìöÍý²򤷤Ƥ·¤ޤ¨¤С¢ - ½½ʬ¤ˤ狼¤ê¤䤹¤¤¤â¤ΤǤ¹¡£ - ¥ꥯ¥¨¥¹¥ȤνèÍý¤Τ¢¤륹¥ơ¼¥¸¤ǸƤӽФµ¤ʤ¯¤ƤϤʤé¤ʤ¤ - ´ؿô¤ÏÅÐϿ¤¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£¥ϥó¥ɥé¤ÏÅÐϿ¤¹¤ëɬÍפϤ¢¤ê¤ޤ»¤ó¡£ - ´ؿô¤òÅÐϿ¤Ǥ­¤ë¥ե§¡¼¥º¤Ϥ¿¤¯¤µ¤󤢤ê¤ޤ¹¡£ - ¤½¤줾¤ì¤Υե§¡¼¥º¤ǡ¢´ؿô¤ò¸ƤӽФ¹ÁêÂÐŪ¤ʽçÈ֤ϡ¢ - ¤«¤ʤê¤ÎÄøÅÙÀ©¸æ¤Ǥ­¤ޤ¹¡£

    - -

    °ʲ¼¤ϡ¢mod_mmap_static ¤ËÄɲä·¤¿¥³¡¼¥ɤǤ¹:

    - -
    -static void register_hooks(void)
    -{
    -    static const char * const aszPre[]={ "http_core.c",NULL };
    -    ap_hook_post_config(mmap_post_config,NULL,NULL,HOOK_MIDDLE);
    -    ap_hook_translate_name(mmap_static_xlat,aszPre,NULL,HOOK_LAST);
    -};
    - -

    ¤³¤³¤ǤϸƤӤÀ¤¹¤٤­Æó¤Ĥδؿô¤òÅÐϿ¤·¤Ƥ¤¤ޤ¹¡£°ì¤ĤÏ - post_config ¥¹¥ơ¼¥¸ÍÑ (¤ۤȤó¤ɤ¹¤٤ƤΥ⥸¥塼¥ë - ¤Ϥ³¤줬ɬÍפǤ¹) ¤ǡ¢¤⤦°ì¤ĤÏ translate_name ¥ե§¡¼¥ºÍѤǤ¹¡£ - ¤½¤줾¤ì¤δؿô¤Ï̾Á°¤ϰ㤦¤±¤ì¤ɤâ·Á¼°¤ÏƱ¤¸¤Ǥ¢¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¤½¤ì¤Ǥϡ¢·Á¼°¤ϤɤΤ褦¤ˤʤäƤ¤¤ë¤Ǥ·¤礦¤«?

    - -

    - ap_hook_phase_name(function_name, - predecessors, successors, position); -

    - -

    »°¤ĤΰÌÃ֤¬ÄêµÁ¤µ¤ì¤Ƥ¤¤ޤ¹¡Ä

    - -
      -
    • HOOK_FIRST
    • -
    • HOOK_MIDDLE
    • -
    • HOOK_LAST
    • -
    - -

    °ÌÃ֤òÄêµÁ¤¹¤ë¤ˤϡ¢¾嵭¤ΡְÌÃ֡פò»ØÄꤷ¡¢ - ½¤¾þ»ҤǤ¢¤ë¡ÖÀè¹ԡפȡָå¹ԡפǼê¤ò²ä¨¤ޤ¹¡£ - ¡ÖÀè¹ԡסָå¹ԡפϡ¢¸ƤФì¤ë¤٤­´ؿô¤Υꥹ¥ȤǤ¹¡£ - ¡ÖÀè¹ԡפϴؿô¤μ¹ÔÁ°¤˸ƤФì¤ë¤â¤Τǡ¢ - ¡ָå¹ԡפϼ¹Ըå¤˸ƤФì¤ë¤â¤ΤǤ¹¡£

    - -

    mod_mmap_static ¤ξì¹硢post_config - ¥¹¥ơ¼¥¸¤ǤÏɬÍפ¢¤ê¤ޤ»¤󤬡¢ - mmap_static_xlat ¤¬ core ¥⥸¥塼¥뤬̾Á°¤ÎÊѴ¹¤ò¼¹Ԥ·¤¿¸å¤Ë - ¸ƤФì¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - ¤½¤³¤Ç aszPre ¤ò»ȤäÆ HOOK_LAST ¤ν¤¾þ»ҤòÄêµÁ¤·¤Ƥ¤¤ޤ¹¡£

    - - -

    ¥⥸¥塼¥ë¤ÎÄêµÁ

    -

    ¥⥸¥塼¥ë¤ÎÄêµÁ¤òºîÀ®¤¹¤ëºݤËÃí°դ·¤ʤ±¤ì¤Фʤé¤ʤ¤ - ¥¹¥ơ¼¥¸¤οô¤Ϸ㸺¤·¤Ƥ¤¤ޤ¹¡£¸Ť¤ÄêµÁ¤ϼ¡¤Τ褦¤ˤʤäƤ¤¤ޤ·¤¿¡£

    - -
    -module MODULE_VAR_EXPORT module_name_module =
    -{
    -    STANDARD_MODULE_STUFF,
    -    /* initializer */
    -    /* dir config creater */
    -    /* dir merger --- default is to override */
    -    /* server config */
    -    /* merge server config */
    -    /* command handlers */
    -    /* handlers */
    -    /* filename translation */
    -    /* check_user_id */
    -    /* check auth */
    -    /* check access */
    -    /* type_checker */
    -    /* fixups */
    -    /* logger */
    -    /* header parser */
    -    /* child_init */
    -    /* child_exit */
    -    /* post read-request */
    -};
    - -

    ¿·¤·¤¤¹½¤ÂΤϤȤäƤ⥷¥ó¥ץë¤Ǥ¹¡Ä

    -
    -module MODULE_VAR_EXPORT module_name_module =
    -{
    -    STANDARD20_MODULE_STUFF,
    -    /* create per-directory config structures */
    -    /* merge per-directory config structures  */
    -    /* create per-server config structures    */
    -    /* merge per-server config structures     */
    -    /* command handlers */
    -    /* handlers */
    -    /* register hooks */
    -};
    - -

    ¤³¤Τ¦¤Á¤Τ¤¤¯¤Ĥ«¤ϸŤ¤¤â¤Τ«¤鿷¤·¤¤¤â¤ΤËľÀÜÆɤßÂؤ¨¤é¤ì¤ë¤â¤Τǡ¢ - ¤¤¤¯¤Ĥ«¤Ϥ½¤¦¤ǤϤ¢¤ê¤ޤ»¤󡣤ɤ¦¤¹¤ì¤Ф¤¤¤¤Τ«¤òÍ×Ì󤷤Ƥߤޤ¹¡£

    - -

    ľÀÜÆɤßÂؤ¨¤é¤ì¤륹¥ơ¼¥¸:

    - -
    -
    /* ¥ǥ£¥쥯¥ȥêÀßÄêºîÀ®´ؿô */
    -
    /* ¥ǥ£¥쥯¥ȥêËèÀßÄ깽¤ÂκîÀ® */
    - -
    /* ¥µ¡¼¥ÐÀßÄêºîÀ®´ؿô */
    -
    /* ¥µ¡¼¥ÐËèÀßÄ깽¤ÂκîÀ® */
    - -
    /* ¥ǥ£¥쥯¥ȥêÀßÄê¥ޡ¼¥¸´ؿô */
    -
    /* ¥ǥ£¥쥯¥ȥêËèÀßÄ깽¤ÂΥޡ¼¥¸ */
    - -
    /* ¥µ¡¼¥ÐÀßÄê¥ޡ¼¥¸´ؿô */
    -
    /* ¥µ¡¼¥ÐËèÀßÄ깽¤ÂκîÀ®¥ޡ¼¥¸ */
    - -
    /* ¥³¥ޥó¥ɡ¦¥ơ¼¥֥ë */
    -
    /* ¥³¥ޥó¥É apr_table_t */
    - -
    /* ¥ϥó¥ɥé */
    -
    /* ¥ϥó¥ɥé */
    -
    - -

    ¸Ť¤´ؿô¤λĤê¤Τâ¤Τϥե寤Ȥ·¤ÆÅÐϿ¤µ¤ì¤ë¤٤­¤Ǥ¹¡£ - ¸½»þÅÀ¤Ǽ¡¤Τ褦¤ʥե寡¦¥¹¥ơ¼¥¸¤¬ÄêµÁ¤µ¤ì¤Ƥ¤¤ޤ¹¡Ä

    - -
    -
    ap_hook_post_config
    -
    (°ÊÁ°¤Î _init ¥롼¥Á¥ó¤¬ÅÐϿ¤µ¤ì¤ë¤٤­¾ì½ê¤Ǥ¹)
    - -
    ap_hook_http_method
    -
    (¥ꥯ¥¨¥¹¥Ȥ«¤é HTTP ¥᥽¥åɤò¼èÆÀ¤·¤ޤ¹ (¸ߴ¹ÍÑ))
    - -
    ap_hook_open_logs
    -
    (ÆÃÄê¤Υí¥°¤Υª¡¼¥ץó)
    - -
    ap_hook_auth_checker
    -
    (¥꥽¡¼¥¹¤¬¸¢¸¤òɬÍפȤ¹¤뤫¤ɤ¦¤«¤γÎǧ)
    - -
    ap_hook_access_checker
    -
    (¥⥸¥塼¥ë¸Çͭ¤ÎÀ©Ìó¤γÎǧ)
    - -
    ap_hook_check_user_id
    -
    (¥桼¥¶ ID ¤ȥѥ¹¥¥ɤγÎǧ)
    - -
    ap_hook_default_port
    -
    (¥µ¡¼¥ФΥǥե©¥ë¥ȡ¦¥ݡ¼¥ȤμèÆÀ)
    - -
    ap_hook_pre_connection
    -
    (½èÍý¤ÎľÁ°¤ËɬÍפʤ³¤Ȥò¼¹ԡ£¤¿¤À¤· accept ľ¸å¤˸ƤФì¤ë)
    - -
    ap_hook_process_connection
    -
    (¥ץí¥ȥ³¥ë¤νèÍý)
    - -
    ap_hook_child_init
    -
    (»ҥץí¥»¥뵯ưľ¸å)
    - -
    ap_hook_create_request
    -
    (??)
    - -
    ap_hook_fixups
    -
    (±þÅúÆâÍƤÎÀ¸À®¤òÊѹ¹¤¹¤ë¥饹¥ȡ¦¥Á¥ã¥ó¥¹)
    - -
    ap_hook_handler
    -
    (±þÅúÆâÍƤÎÀ¸À®)
    - -
    ap_hook_header_parser
    -
    (¥⥸¥塼¥ë¤˥إåÀ¤ξȲñ¤򤵤»¤롣¤ۤȤó¤ɤΥ⥸¥塼¥ë¤ǤϻȤï¤ì¤ޤ»¤ó¡£post_read_request ¤ò»Ȥ¤¤ޤ¹)
    - -
    ap_hook_insert_filter
    -
    (¥ե£¥륿¡¦¥Á¥§¥¤¥ó¤˥ե£¥륿¤òÁÞÆþ)
    - -
    ap_hook_log_transaction
    -
    (¥ꥯ¥¨¥¹¥ȤˤĤ¤¤ƤξðÊó¤òµ­Ͽ¤¹¤ë)
    - -
    ap_hook_optional_fn_retrieve
    -
    (¥ª¥ץ·¥ç¥ó¤Ȥ·¤ÆÅÐϿ¤µ¤줿´ؿô¤μèÆÀ)
    - -
    ap_hook_post_read_request
    -
    (¥ꥯ¥¨¥¹¥ȤòÆɤߤ³¤ó¤À¸塢¾¤Υե§¡¼¥º¤ÎÁ°¤˸ƤФì¤ë)
    - -
    ap_hook_quick_handler
    -
    ¥ꥯ¥¨¥¹¥ȤνèÍý¤¬»ϤޤëÁ°¤˸ƤФì¤롣¥­¥ã¥å·¥å¥⥸¥塼¥뤬 - »ÈÍѤ·¤Ƥ¤¤ë
    - -
    ap_hook_translate_name
    -
    (URI ¤ò¥ե¡¥¤¥ë̾¤ËÊѴ¹¤¹¤ë)
    - -
    ap_hook_type_checker
    -
    (ʸ½񷿤ηèÄê¤ÈÀßÄꡣ¤¢¤뤤¤Ϥ½¤ÎÊÒÊý)
    -
    - -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/developer/modules.html.ja.utf8 b/docs/manual/developer/modules.html.ja.utf8 new file mode 100644 index 00000000000..94129c32b99 --- /dev/null +++ b/docs/manual/developer/modules.html.ja.utf8 @@ -0,0 +1,303 @@ + + + + + +モジュールの Apache 1.3 から Apache 2.0 への移植 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    モジュールの Apache 1.3 から Apache 2.0 への移植

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    この文書は mod_mmap_static モジュールを Apache 2.0 用に移植した時に + 学んだ経験をもとに書いた、最初の手引き書です。まだまだ完全じゃないし、 + ひょっとすると間違っている部分もあるかもしれませんが、 + 取っ掛りにはなるでしょう。

    +
    + +
    top
    +
    +

    簡単な変更点

    + +

    クリーンナップ ルーチン

    +

    クリーンナップルーチンは apr_status_t 型である必要があります。 + そして、apr_status_t 型の値を返さなくてはなりません。 + クリーンナップ中のエラーを通知する必要がなければ、返り値は普通、 + ARP_SUCCESS です。たとえエラーを通知したとしても、 + すべてのコードがその通知をチェックしたり、 + エラーに応じた動作をするわけではないことに気をつけてください。

    + + + +

    初期化ルーチン

    + +

    初期化ルーチンは処理全体から見てしっくりくるような意味を表すように、 + 名前が変更されました。ですから、mmap_init から mmap_post_config + のようにちょっと変更されました。 + 渡される引数は大幅に変更され、次のようになりました。

    + +
      +
    • apr_pool_t *p
    • +
    • apr_pool_t *plog
    • +
    • apr_pool_t *ptemp
    • +
    • server_rec *s
    • +
    + + +

    データ型

    +

    データ型のほとんどは APR に移されました。つまり、 + いくつかの名前が前述のように変更されています。 + 施すべき変更点の簡単な一覧を以下に示します。

    + +
      +
    • pool becomes apr_pool_t
    • +
    • table becomes apr_table_t
    • +
    + +
    top
    +
    +

    もっと厄介な変更点…

    + +

    フックの登録

    +

    新しいアーキテクチャでは作成した関数を呼び出すのに + 一連のフックを使用します。このフックは、新しい関数 + static void register_hooks(void) を使って登録するよう、 + モジュールに書き足さなくてはなりません。 + この関数は、なにをすべきか一旦理解してしまえば、 + 十分にわかりやすいものです。 + リクエストの処理のあるステージで呼び出さなくてはならない + 関数は登録する必要があります。ハンドラは登録する必要はありません。 + 関数を登録できるフェーズはたくさんあります。 + それぞれのフェーズで、関数を呼び出す相対的な順番は、 + かなりの程度制御できます。

    + +

    以下は、mod_mmap_static に追加したコードです:

    + +
    static void register_hooks(void)
    +{
    +    static const char * const aszPre[]={ "http_core.c",NULL };
    +    ap_hook_post_config(mmap_post_config,NULL,NULL,HOOK_MIDDLE);
    +    ap_hook_translate_name(mmap_static_xlat,aszPre,NULL,HOOK_LAST);
    +};
    + +

    ここでは呼びだすべき二つの関数を登録しています。一つは + post_config ステージ用 (ほとんどすべてのモジュール + はこれが必要です) で、もう一つは translate_name フェーズ用です。 + それぞれの関数は名前は違うけれども形式は同じであることに注意してください。 + それでは、形式はどのようになっているでしょうか?

    + +

    + ap_hook_phase_name(function_name, + predecessors, successors, position); +

    + +

    三つの位置が定義されています…

    + +
      +
    • HOOK_FIRST
    • +
    • HOOK_MIDDLE
    • +
    • HOOK_LAST
    • +
    + +

    位置を定義するには、上記の「位置」を指定し、 + 修飾子である「先行」と「後行」で手を加えます。 + 「先行」「後行」は、呼ばれるべき関数のリストです。 + 「先行」は関数の実行前に呼ばれるもので、 + 「後行」は実行後に呼ばれるものです。

    + +

    mod_mmap_static の場合、post_config + ステージでは必要ありませんが、 + mmap_static_xlat が core モジュールが名前の変換を実行した後に + 呼ばれなければなりません。 + そこで aszPre を使って HOOK_LAST の修飾子を定義しています。

    + + +

    モジュールの定義

    +

    モジュールの定義を作成する際に注意しなければならない + ステージの数は激減しています。古い定義は次のようになっていました。

    + +
    module MODULE_VAR_EXPORT module_name_module =
    +{
    +    STANDARD_MODULE_STUFF,
    +    /* initializer */
    +    /* dir config creater */
    +    /* dir merger --- default is to override */
    +    /* server config */
    +    /* merge server config */
    +    /* command handlers */
    +    /* handlers */
    +    /* filename translation */
    +    /* check_user_id */
    +    /* check auth */
    +    /* check access */
    +    /* type_checker */
    +    /* fixups */
    +    /* logger */
    +    /* header parser */
    +    /* child_init */
    +    /* child_exit */
    +    /* post read-request */
    +};
    + +

    新しい構造体はとってもシンプルです…

    +
    module MODULE_VAR_EXPORT module_name_module =
    +{
    +    STANDARD20_MODULE_STUFF,
    +    /* create per-directory config structures */
    +    /* merge per-directory config structures  */
    +    /* create per-server config structures    */
    +    /* merge per-server config structures     */
    +    /* command handlers */
    +    /* handlers */
    +    /* register hooks */
    +};
    + +

    このうちのいくつかは古いものから新しいものに直接読み替えられるもので、 + いくつかはそうではありません。どうすればいいのかを要約してみます。

    + +

    直接読み替えられるステージ:

    + +
    +
    /* ディレクトリ設定作成関数 */
    +
    /* ディレクトリ毎設定構造体作成 */
    + +
    /* サーバ設定作成関数 */
    +
    /* サーバ毎設定構造体作成 */
    + +
    /* ディレクトリ設定マージ関数 */
    +
    /* ディレクトリ毎設定構造体マージ */
    + +
    /* サーバ設定マージ関数 */
    +
    /* サーバ毎設定構造体作成マージ */
    + +
    /* コマンド・テーブル */
    +
    /* コマンド apr_table_t */
    + +
    /* ハンドラ */
    +
    /* ハンドラ */
    +
    + +

    古い関数の残りのものはフックとして登録されるべきです。 + 現時点で次のようなフック・ステージが定義されています…

    + +
    +
    ap_hook_post_config
    +
    (以前の _init ルーチンが登録されるべき場所です)
    + +
    ap_hook_http_method
    +
    (リクエストから HTTP メソッドを取得します (互換用))
    + +
    ap_hook_open_logs
    +
    (特定のログのオープン)
    + +
    ap_hook_auth_checker
    +
    (リソースが権限を必要とするかどうかの確認)
    + +
    ap_hook_access_checker
    +
    (モジュール固有の制約の確認)
    + +
    ap_hook_check_user_id
    +
    (ユーザ ID とパスワードの確認)
    + +
    ap_hook_default_port
    +
    (サーバのデフォルト・ポートの取得)
    + +
    ap_hook_pre_connection
    +
    (処理の直前に必要なことを実行。ただし accept 直後に呼ばれる)
    + +
    ap_hook_process_connection
    +
    (プロトコルの処理)
    + +
    ap_hook_child_init
    +
    (子プロセス起動直後)
    + +
    ap_hook_create_request
    +
    (??)
    + +
    ap_hook_fixups
    +
    (応答内容の生成を変更するラスト・チャンス)
    + +
    ap_hook_handler
    +
    (応答内容の生成)
    + +
    ap_hook_header_parser
    +
    (モジュールにヘッダの照会をさせる。ほとんどのモジュールでは使われません。post_read_request を使います)
    + +
    ap_hook_insert_filter
    +
    (フィルタ・チェインにフィルタを挿入)
    + +
    ap_hook_log_transaction
    +
    (リクエストについての情報を記録する)
    + +
    ap_hook_optional_fn_retrieve
    +
    (オプションとして登録された関数の取得)
    + +
    ap_hook_post_read_request
    +
    (リクエストを読みこんだ後、他のフェーズの前に呼ばれる)
    + +
    ap_hook_quick_handler
    +
    リクエストの処理が始まる前に呼ばれる。キャッシュモジュールが + 使用している
    + +
    ap_hook_translate_name
    +
    (URI をファイル名に変換する)
    + +
    ap_hook_type_checker
    +
    (文書型の決定と設定。あるいはその片方)
    +
    + +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/developer/modules.xml b/docs/manual/developer/modules.xml index 4ddfbbedabf..5485c5301ac 100644 --- a/docs/manual/developer/modules.xml +++ b/docs/manual/developer/modules.xml @@ -4,12 +4,12 @@ + - + modules /developer/ .. en - ja + ja diff --git a/docs/manual/developer/request.html b/docs/manual/developer/request.html index 547707246a2..ed3694f67fb 100644 --- a/docs/manual/developer/request.html +++ b/docs/manual/developer/request.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: request.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/developer/request.html.en b/docs/manual/developer/request.html.en index f4a664d68c4..ef7503cc178 100644 --- a/docs/manual/developer/request.html.en +++ b/docs/manual/developer/request.html.en @@ -1,22 +1,29 @@ - -Request Processing in Apache 2.0 - Apache HTTP Server +Request Processing in the Apache HTTP Server 2.x - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Request Processing in Apache 2.0

    +Apache > HTTP Server > Documentation > Version 2.2 > Developer Documentation

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Request Processing in the Apache HTTP Server 2.x

    Available Languages:  en 

    @@ -26,15 +33,15 @@ revision!

    -

    Several changes in Apache 2.0 affect the internal request +

    Several changes in 2.0 and above affect the internal request processing mechanics. Module authors need to be aware of these changes so they may take advantage of the optimizations and security enhancements.

    The first major change is to the subrequest and redirect mechanisms. There were a number of different code paths in - Apache 1.3 to attempt to optimize subrequest or redirect - behavior. As patches were introduced to 2.0, these + the Apache HTTP Server 1.3 to attempt to optimize subrequest + or redirect behavior. As patches were introduced to 2.0, these optimizations (and the server behavior) were quickly broken due to this duplication of code. All duplicate code has been folded back into ap_process_request_internal() to prevent @@ -45,7 +52,7 @@ and correct implementation of the HTTP server RFC. Additional goals include security, scalability and optimization. New methods were sought to optimize the server (beyond the - performance of Apache 1.3) without introducing fragile or + performance of 1.3) without introducing fragile or insecure code.

    +
    top

    The Request Processing Cycle

    @@ -65,7 +72,7 @@

    To streamline requests, the module author can take advantage of the hooks offered to drop out of the request cycle early, or - to bypass core Apache hooks which are irrelevant (and costly in + to bypass core hooks which are irrelevant (and costly in terms of CPU.)

    top
    @@ -78,7 +85,7 @@ parsed_uri.path element is unset. The module has no further control of this one-time unescape operation, either failing to unescape or multiply unescaping the URL leads to security - reprecussions.

    + repercussions.

    Strips Parent and This Elements from the @@ -147,13 +154,12 @@

    The Security Phase

    Needs Documentation. Code is:

    -
    -switch (ap_satisfies(r)) {
    +    
    switch (ap_satisfies(r)) {
     case SATISFY_ALL:
     case SATISFY_NOSPEC:
    -    if ((access_status = ap_run_access_checker(r)) != 0) {
    -        return decl_die(access_status, "check access", r);
    -    }
    +        if ((access_status = ap_run_access_checker(r)) != 0) {
    +            return decl_die(access_status, "check access", r);
    +        }
     
         if (ap_some_auth_required(r)) {
             if (((access_status = ap_run_check_user_id(r)) != 0)
    @@ -254,7 +260,28 @@ case SATISFY_ANY:
     

    Available Languages:  en 

    -
    +

    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/developer/request.xml b/docs/manual/developer/request.xml index 72d5cf68b01..dc4f4c3246e 100644 --- a/docs/manual/developer/request.xml +++ b/docs/manual/developer/request.xml @@ -4,12 +4,12 @@ - + request /developer/ .. diff --git a/docs/manual/developer/thread_safety.html b/docs/manual/developer/thread_safety.html index 02f067e7c38..50f07bf3938 100644 --- a/docs/manual/developer/thread_safety.html +++ b/docs/manual/developer/thread_safety.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: thread_safety.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/developer/thread_safety.html.en b/docs/manual/developer/thread_safety.html.en index 457cc3fc4d9..6d2527685a3 100644 --- a/docs/manual/developer/thread_safety.html.en +++ b/docs/manual/developer/thread_safety.html.en @@ -1,22 +1,29 @@ - -Apache 2.0 Thread Safety Issues - Apache HTTP Server +Apache 2.0 Thread Safety Issues - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Apache 2.0 Thread Safety Issues

    +Apache > HTTP Server > Documentation > Version 2.2 > Developer Documentation

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.0 Thread Safety Issues

    Available Languages:  en 

    @@ -33,7 +40,7 @@
  • Common standard troublesome functions
  • Common 3rd Party Libraries
  • Library List
  • -
    +
    top

    Global and static variables

    @@ -174,103 +181,99 @@ across threads. If strtok() and gethostbyname() are thread-safe on your OS, c-client may be thread-safe. -cpdflib - - ? - -libcrypt +libcrypt ? -Expat +Expat Yes Need a separate parser instance per thread -FreeTDS +FreeTDS ? -FreeType +FreeType ? -GD 1.8.x +GD 1.8.x ? -GD 2.0.x +GD 2.0.x ? -gdbm +gdbm No Errors returned via a static gdbm_error variable -ImageMagick +ImageMagick 5.2.2 Yes - ImageMagick docs claim it is thread safe since version 5.2.2 (see Change log). + ImageMagick docs claim it is thread safe since version 5.2.2 (see Change log). -Imlib2 +Imlib2 ? -libjpeg +libjpeg v6b ? -libmysqlclient +libmysqlclient Yes Use mysqlclient_r library variant to ensure thread-safety. For - more information, please read http://www.mysql.com/doc/en/Threaded_clients.html. -Ming + more information, please read http://dev.mysql.com/doc/mysql/en/Threaded_clients.html. +Ming 0.2a ? -Net-SNMP +Net-SNMP 5.0.x ? -OpenLDAP +OpenLDAP 2.1.x Yes Use ldap_r library variant to ensure thread-safety. -OpenSSL +OpenSSL 0.9.6g Yes Requires proper usage of CRYPTO_num_locks, CRYPTO_set_locking_callback, CRYPTO_set_id_callback -liboci8 (Oracle 8+) +liboci8 (Oracle 8+) 8.x,9.x ? -pdflib +pdflib 5.0.x Yes PDFLib docs claim it is thread safe; changes.txt indicates it - has been partially thread-safe since V1.91: http://www.pdflib.com/products/pdflib/index.html. -libpng + has been partially thread-safe since V1.91: http://www.pdflib.com/products/pdflib-family/pdflib/. +libpng 1.0.x ? -libpng +libpng 1.2.x ? -libpq (PostgreSQL) - 7.x +libpq (PostgreSQL) + 8.x Yes Don't share connections across threads and watch out for crypt() calls -Sablotron +Sablotron 0.95 ? -zlib +zlib 1.1.4 Yes Relies upon thread-safe zalloc and zfree functions Default is to @@ -279,7 +282,28 @@

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/developer/thread_safety.xml b/docs/manual/developer/thread_safety.xml index db8ff09c8b8..e8db6e3b303 100644 --- a/docs/manual/developer/thread_safety.xml +++ b/docs/manual/developer/thread_safety.xml @@ -4,12 +4,12 @@ - + thread_safety /developer/ .. diff --git a/docs/manual/dns-caveats.html b/docs/manual/dns-caveats.html index 9996161f96f..7ce4c170bd4 100644 --- a/docs/manual/dns-caveats.html +++ b/docs/manual/dns-caveats.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: dns-caveats.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: dns-caveats.html.ja.euc-jp +URI: dns-caveats.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: dns-caveats.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: dns-caveats.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/dns-caveats.html.en b/docs/manual/dns-caveats.html.en index 55bdf28f153..c1fe7e9ca04 100644 --- a/docs/manual/dns-caveats.html.en +++ b/docs/manual/dns-caveats.html.en @@ -1,26 +1,34 @@ - -Issues Regarding DNS and Apache - Apache HTTP Server +Issues Regarding DNS and Apache - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Issues Regarding DNS and Apache

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Issues Regarding DNS and Apache

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    This page could be summarized with the statement: don't @@ -36,7 +44,7 @@

  • The "main server" Address
  • Tips to Avoid These Problems
  • Appendix: Future Directions
  • -
    +
    top

    A Simple Example

    @@ -61,11 +69,11 @@ to this virtual host (prior to Apache version 1.2 the server would not even boot).

    -

    Suppose that www.abc.dom has address 10.0.0.1. +

    Suppose that www.abc.dom has address 192.0.2.1. Then consider this configuration snippet:

    - <VirtualHost 10.0.0.1>
    + <VirtualHost 192.0.2.1>
    ServerAdmin webgirl@abc.dom
    DocumentRoot /www/abc
    </VirtualHost> @@ -84,7 +92,7 @@

    Here is a snippet that avoids both of these problems:

    - <VirtualHost 10.0.0.1>
    + <VirtualHost 192.0.2.1>
    ServerName www.abc.dom
    ServerAdmin webgirl@abc.dom
    DocumentRoot /www/abc
    @@ -109,32 +117,36 @@ configuration snippet:

    - <VirtualHost www.abc.dom>
    -   ServerAdmin webgirl@abc.dom
    -   DocumentRoot /www/abc
    - </VirtualHost>
    + <VirtualHost www.abc.dom>
    + + ServerAdmin webgirl@abc.dom
    + DocumentRoot /www/abc
    +
    + </VirtualHost>

    - <VirtualHost www.def.dom>
    -   ServerAdmin webguy@def.dom
    -   DocumentRoot /www/def
    + <VirtualHost www.def.dom>
    + + ServerAdmin webguy@def.dom
    + DocumentRoot /www/def
    +
    </VirtualHost>

    -

    Suppose that you've assigned 10.0.0.1 to - www.abc.dom and 10.0.0.2 to +

    Suppose that you've assigned 192.0.2.1 to + www.abc.dom and 192.0.2.2 to www.def.dom. Furthermore, suppose that - def.dom has control of their own DNS. With this - config you have put def.dom into a position where - they can steal all traffic destined to abc.dom. To - do so, all they have to do is set www.def.dom to - 10.0.0.1. Since they control their own DNS you can't stop them - from pointing the www.def.dom record wherever they + abc.dom has control of their own DNS. With this + config you have put abc.dom into a position where + they can steal all traffic destined to def.dom. To + do so, all they have to do is set www.abc.dom to + 192.0.2.2. Since they control their own DNS you can't stop them + from pointing the www.abc.dom record wherever they wish.

    -

    Requests coming in to 10.0.0.1 (including all those where +

    Requests coming in to 192.0.2.2 (including all those where users typed in URLs of the form - http://www.abc.dom/whatever) will all be served by - the def.dom virtual host. To better understand why + http://www.def.dom/whatever) will all be served by + the abc.dom virtual host. To better understand why this happens requires a more in-depth discussion of how Apache matches up incoming requests with the virtual host that will serve it. A rough document describing this is available.

    @@ -232,8 +244,30 @@

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/dns-caveats.html.ja.euc-jp b/docs/manual/dns-caveats.html.ja.euc-jp deleted file mode 100644 index f09647e1674..00000000000 --- a/docs/manual/dns-caveats.html.ja.euc-jp +++ /dev/null @@ -1,241 +0,0 @@ - - - -DNS ¤È Apache ¤ˤޤĤï¤ëÃí°ջö¹à - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    DNS ¤È Apache ¤ˤޤĤï¤ëÃí°ջö¹à

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    ËÜʸ½ñ¤ÎÆâÍƤϼ¡¤ΰì¸À¤˿Ԥ­¤ޤ¹¡£¡ÖApache ¤¬ÀßÄê¥ե¡¥¤¥ë¤òÆɤ߹þ¤à¤Ȥ­¤Ë - DNS ¤ò»ÈÍѤ¹¤ëɬÍפ¬¤ʤ¤¤褦¤ˤ·¤Ʋ¼¤µ¤¤¡ס£Apache ¤¬ÀßÄê¥ե¡¥¤¥ë¤ò - Æɤ߹þ¤à¤Ȥ­¤Ë DNS ¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¾ì¹硢¿®ÍêÀ­¤ÎÌäÂê - (µ¯ư¤·¤ʤ¤¤«¤⤷¤ì¤ޤ»¤ó) ¤䥵¡¼¥ӥ¹µñÈݤäÅðÍѥ¢¥¿¥å¯ - (¾¤Υ桼¥¶¤«¤é¥ҥåȤòÅð¤ळ¤Ȥò´ޤߤޤ¹) - ¤ÎÌäÂê¤ËľÌ̤¹¤뤫¤⤷¤ì¤ޤ»¤ó¡£

    -
    - -
    top
    -
    -

    ´Êñ¤ÊÎã

    - - -

    - <VirtualHost www.abc.dom>
    - ServerAdmin webgirl@abc.dom
    - DocumentRoot /www/abc
    - </VirtualHost> -

    - -

    Apache ¤¬Àµ¾ï¤˵¡ǽ¤¹¤ë¤ˤϡ¢¥С¼¥Á¥ã¥ë¥ۥ¹¥ÈËè¤Ëɬ¤ºÆó¤ĤÎ - ¾ðÊó¤¬ɬÍפˤʤê¤ޤ¹¡£¤½¤ì¤ϡ¢ - ServerName - ¤ȡ¢¤½¤Υµ¡¼¥Ф¬±þÅú¤¹¤뤿¤á¤Î IP (ºÇÄã°ì¤Ä) ¤Ǥ¹¡£ - ¾嵭Îã¤ǤÏ IP ¥¢¥ɥ쥹¤ò´ޤó¤Ǥ¤¤ޤ»¤ó¤Τǡ¢Apache ¤Ï DNS - ¤ò»ÈÍѤ·¤Æ www.abc.dom ¤򸫤Ĥ±¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - ²¿¤餫¤ÎÍýͳ¤ÇÀßÄê¥ե¡¥¤¥ë¤òÆɤ߹þ¤ó¤Ǥ¤¤ë¤Ȥ­¤Ë DNS - ¤¬ÍøÍѤǤ­¤ʤ«¤ä¿¾ì¹硢 - ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÏÀßÄꤵ¤ì¤ޤ»¤ó¡£ - ¤½¤·¤ơ¢¤½¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤËÂФ¹¤ë¥ҥåȤˤϱþÅú¤¬¤ʤµ¤ì¤ޤ»¤ó - (Apache 1.2 °ÊÁ°¤Ǥϵ¯ư¤¹¤餷¤ޤ»¤ó)¡£

    - -

    www.abc.dom ¤Υ¢¥ɥ쥹¤¬ 10.0.0.1 - ¤À¤Ȥ·¤ޤ¹¡£¤Ǥϡ¢¼¡¤ÎÀßÄê¤ˤĤ¤¤ƹͤ¨¤Ƥߤޤ·¤礦¡£

    - -

    - <VirtualHost 10.0.0.1>
    - ServerAdmin webgirl@abc.dom
    - DocumentRoot /www/abc
    - </VirtualHost> -

    - -

    ¸½ºߤΥê¥꡼¥¹¤ǤÏ Apache ¤Ï DNS µհú¤­¤ò»ÈÍѤ·¤Æ - ¤³¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÎ ServerName - ¤򸫤Ĥ±¤ޤ¹¡£ - ¤½¤εհú¤­¤¬¼ºÇԤ·¤¿¾ì¹ç¤ÏÉôʬŪ¤˥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥò̵¸ú¤ˤ·¤ޤ¹ - (Apache 1.2 ¤è¤êÁ°¤Ǥϵ¯ư¤¹¤餷¤ޤ»¤ó)¡£ - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬̾Á°¥١¼¥¹¤Ǥ¢¤ì¤д°Á´¤Ë̵¸ú¤ˤʤê¤ޤ¹¤¬¡¢ - IP ¥١¼¥¹¤Ǥ¢¤ì¤гµ¤Íưº¤ޤ¹¡£¤·¤«¤·¤ʤ¬¤顢¥µ¡¼¥Ð̾¤ò - ´ޤരÁ´¤Ê URL ¤òÀ¸À®¤·¤ʤ±¤ì¤Фʤé¤ʤ¤¾ì¹ç¤ϡ¢Àµ¤·¤¤ URL - ¤ÎÀ¸À®¤¬¤Ǥ­¤ޤ»¤ó¡£

    - -

    ¼¡¤ÎÎã¤Ͼ嵭¤ÎÌäÂê¤ò²ò·褷¤Ƥ¤¤ޤ¹¡£

    - -

    - <VirtualHost 10.0.0.1>
    - ServerName www.abc.dom
    - ServerAdmin webgirl@abc.dom
    - DocumentRoot /www/abc
    - </VirtualHost> -

    -
    top
    -
    -

    ¥µ¡¼¥ӥ¹µñÈÝ

    - - -

    ¥µ¡¼¥ӥ¹µñÈݤ¬µ¯¤³¤ë¾ì¹硢(¾¯¤ʤ¯¤Ȥâ) Æó¤ĤΥ±¡¼¥¹¤¬¤¢¤ê¤ޤ¹¡£ - Apache 1.2 ¤è¤êÁ°¤ò¼¹Ԥ·¤Ƥ¤¤ë¾ì¹硢¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤΤ¿¤á¤Î - ¾嵭¤ÎÆó¤ĤÎ DNS ¸¡º÷¤Τ¦¤Á°ì¤ļºÇԤ¹¤ì¤е¯ư¤¹¤餷¤ޤ»¤ó¡£ - ¤½¤·¤Ƥ³¤Î DNS ¸¡º÷¤¬¼«ʬ¤ÎÀ©¸沼¤ˤ¹¤é¤ʤ¤¾ì¹ç¤⤢¤ꤨ¤ޤ¹¡£ - Î㤨¤С¢abc.dom ¤¬¸ܵҤΥµ¡¼¥Фΰì¤Ĥǡ¢ - DNS ¤ϸܵҼ«¿ȤǴÉÍý¤·¤Ƥ¤¤ë¾ì¹硢ñ¤Ë - www.abc.dom ¥쥳¡¼¥ɤòºï½ü¤¹¤ë¤À¤±¤ǡ¢ - (1.2 ¤è¤êÁ°¤Î) ¥µ¡¼¥Фòµ¯ưÉÔǽ¤ˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤⤦°ì¤ĤΥ±¡¼¥¹¤ϡ¢¤è¤굤Éդ­¤ˤ¯¤¤¤â¤ΤǤ¹¡£ - ¼¡¤ÎÀßÄê¤ˤĤ¤¤ƹͤ¨¤Ƥߤޤ·¤礦¡£

    - -

    - <VirtualHost www.abc.dom>
    -   ServerAdmin webgirl@abc.dom
    -   DocumentRoot /www/abc
    - </VirtualHost>
    -
    - <VirtualHost www.def.dom>
    -   ServerAdmin webguy@def.dom
    -   DocumentRoot /www/def
    - </VirtualHost> -

    - -

    10.0.0.1 ¤ò www.abc.dom ¤ˡ¢ - 10.0.0.2 ¤ò www.def.dom ¤˳ä¤êÅö¤ƤƤ¤¤ë¤Ȥ·¤ޤ¹¡£ - ¤ޤ¿¡¢def.dom ¤ϸܵҼ«¿ȤÎ DNS - ¤ÎÀ©¸沼¤ˤ¢¤ë¤Ȥ·¤ޤ¹¡£¤³¤ÎÀßÄê¤ǡ¢abc.dom - ¤˸þ¤±¤é¤줿¥ȥé¥ե£¥å¯Á´¤Ƥò夦¤³¤Ȥ¬¤Ǥ­¤ë°ÌÃ֤Ë - def.dom ¤òÀßÃ֤Ǥ­¤Ƥ¤¤ޤ¹¡£¸å¤Ïñ¤Ë - www.def.dom ¤¬ 10.0.0.1 ¤򻲾Ȥ¹¤ë¤褦¤Ë - ÀßÄꤹ¤ë¤À¤±¤Ǥ¹¡£DNS ¤ϸܵÒ¦¤Î DNS ¤ǥ³¥ó¥ȥí¡¼¥뤵¤ì¤Ƥ¤¤ë¤Τǡ¢ - www.def.dom ¥쥳¡¼¥ɤ¬¹¥¤­¤ʾì½ê¤ò»ؤ¹¤褦¤Ë - ÀßÄê¤Ǥ­¤Ƥ·¤ޤ¦¤Τò»ߤᤵ¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ»¤ó¡£

    - -

    10.0.0.1 ¤ËÂФ¹¤ë¥ꥯ¥¨¥¹¥È - (http://www.abc.dom/whatever ·Á¼°¤Î URL - ¤òÆþÎϤ·¤¿¥桼¥¶¤«¤é¤Τâ¤ÎÁ´¤Ƥò´ޤߤޤ¹) - ¤ϡ¢def.dom ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤDZþÅú¤µ¤ì¤ޤ¹¡£ - ¤³¤Τ褦¤ʤ³¤Ȥ¬²¿¸ε¯¤³¤뤫¤â¤äÈÎɤ¯ÃΤ뤿¤á¤ˤϡ¢ - ±þÅú¤ÎɬÍפʥС¼¥Á¥ã¥ë¥ۥ¹¥ȤؤΥꥯ¥¨¥¹¥ȤËÂФ·¤ơ¢ - Apache ¤¬¤ɤΤ褦¤ËÀ°¹çÀ­¤ò³ÎÊݤ¹¤뤫¤ˤĤ¤¤ơ¢ - ¿¼¤¤µÄÏÀ¤¬ɬÍפˤʤê¤ޤ¹¡£¤ª¤ª¤¶¤äѤÊÀâÌÀ¤Ï¤³¤Á¤é¤˵­½Ҥµ¤ì¤Ƥ¤¤ޤ¹¡£

    -
    top
    -
    -

    ¡ּ祵¡¼¥Сץ¢¥ɥ쥹

    - - -

    Apache 1.1 ¤ǤÎ ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤΥµ¥ݡ¼¥È Äɲäκݤˡ¢ - Apache ¤Ï httpd ¤μ¹Ԥµ¤ì¤Ƥ¤¤ë¥ۥ¹¥ȤÎ IP - ¥¢¥ɥ쥹¤òÃΤëɬÍפ¬½ФƤ­¤ޤ·¤¿¡£¤³¤Υ¢¥ɥ쥹¤òÆÀ¤뤿¤á¤ˡ¢ - (¤⤷¤¢¤ì¤Ð) ¥°¥í¡¼¥Хë¤Ê - ServerName ¤ò»ÈÍѤ¹¤뤫¡¢ - C ¸À¸ì¤δؿô gethostname (¥³¥ޥó¥ɥץí¥ó¥ץȤÇ - hostname ¤ȥ¿¥¤¥פ·¤¿¤Ȥ­¤ÈƱ¤¸¤â¤ΤòÊ֤·¤ޤ¹) - ¤ò¸ƤӽФ¹¤«¤򤷤ޤ¹¡£ - ¤½¤θ塢ÆÀ¤é¤줿¥¢¥ɥ쥹¤Ç DNS ¸¡º÷¤ò¹Ԥʤ¤¤ޤ¹¡£ - ¸½ºߤΤȤ³¤í¡¢¤³¤Î DNS ¸¡º÷¤ò²óÈ򤹤ëÊýˡ¤Ϥ¢¤ê¤ޤ»¤ó¡£

    - -

    DNS ¥µ¡¼¥Ф¬¥À¥¦¥󤷤ơ¢¤³¤θ¡º÷¤¬¤Ǥ­¤ʤ¤»öÂ֤¬µ¯¤³¤뤳¤Ȥò - ¶²¤ì¤Ƥ¤¤ë¤ΤǤ¢¤ì¤С¢/etc/hosts - ¤˥ۥ¹¥È̾¤򵭽Ҥ·¤Ƥª¤¯¤³¤Ȥ¬¤Ǥ­¤ޤ¹ - (¥ޥ·¥ó¤¬Àµ¾ï¤˵¯ư¤¹¤ë¤褦¤˴û¤ËÀßÄꤵ¤ì¤Ƥ¤¤뤫¤⤷¤ì¤ޤ»¤ó)¡£ - ¤½¤ξì¹硢DNS »²¾Ȥ¬¼ºÇԤ·¤¿¾ì¹ç¤˥ޥ·¥ó¤¬ /etc/hosts - ¤ò»ÈÍѤ¹¤ë¤褦¤ËÀßÄꤷ¤Ƥ¤¤뤳¤Ȥò³Îǧ¤·¤Ƥ¯¤À¤µ¤¤¡£ - ¤½¤ÎÊýˡ¤ϡ¢¤ɤÎ OS ¤ò»ÈÍѤ·¤Ƥ¤¤뤫¤˰͸¤·¤ޤ¹¤¬¡¢ - /etc/resolv.conf ¤« /etc/nsswitch.conf - ¤òÊԽ¸¤¹¤뤳¤ȤÇÀßÄê¤Ǥ­¤ޤ¹¡£

    - -

    ¤⤷¾¤ÎÍýͳ¤Ç DNS ¤òÍøÍѤ¹¤ëɬÍפ¬¤ʤ¤¾ì¹ç¤ϡ¢ - HOSTRESORDER ´Ķ­Êѿô¤ò¡Ö local - ¡פËÀßÄꤹ¤뤳¤ȤǤ½¤Τ褦¤ˤǤ­¤ޤ¹¡£°ʾ夳¤ì¤é¤λöÊÁ¤ϡ¢¤ɤó¤Ê - OS ¡¢¥쥾¥ë¥Х饤¥֥é¥ê¤ò»ÈÍѤ·¤Ƥ¤¤뤫¤˰͸¤·¤ޤ¹¡£¤ޤ¿¡¢ - mod_env ¤ò»ÈÍѤ·¤ƴĶ­Êѿô¤òÀ©¸椷¤ʤ¤¸¤ꡢ - CGI ¤ˤâ±ƶÁ¤òͿ¤¨¤ޤ¹¡£man ¥ڡ¼¥¸¤ä»ÈÍѤ·¤Ƥ¤¤ë OS - ¤Î FAQ ¤ÇĴ¤٤ë¤ÈÎɤ¤¤Ǥ·¤礦¡£

    -
    top
    -
    -

    °ʾå¤ÎÌäÂê¤ò²ò·褹¤ëÊýˡ

    - - -
      -
    • - VirtualHost - ¤Ç IP ¥¢¥ɥ쥹¤ò»ÈÍѤ¹¤롣 -
    • - -
    • - Listen - ¤Ç IP ¥¢¥ɥ쥹¤ò»ÈÍѤ¹¤롣 -
    • - -
    • - Á´¤ƤΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬ÌÀ¼¨Ū¤Ë - ServerName - ¤ò»ý¤Ĥ褦¤ˤ¹¤롣 -
    • - -
    • ²¿¤â±þÅú¤·¤ʤ¤ - <VirtualHost _default_:*> - ¥µ¡¼¥Фòºî¤롣
    • -
    -
    top
    -
    -

    ÉÕϿ: ¾­ÍèŪ¤ÊÊý¸þÀ­

    - - -

    DNS ¤˴ؤ·¤ơ¢¸½¾õ¤ÏÁ´¤¯µ¹¤·¤¯¤¢¤ê¤ޤ»¤ó¡£Apache 1.2 ¤ǡ¢ - DNS ¤Υ¤¥٥ó¥Ȥ¬¼ºÇԤ·¤Ƥ⾯¤ʤ¯¤Ȥⵯư¥ץí¥»¥¹¤¬³¤¯¤褦¤ˤ·¤ޤ·¤¿¤¬¡¢ - ¤³¤줬ºǹâ¤βò·èÊýˡ¤ǤϤʤ¤¤Ǥ·¤礦¡£¥¢¥ɥ쥹¤κƳä¤êÅö¤Ƥ¬ɬÍ×ÉԲÄÈò - ¤ȤʤäƤ¤¤뺣Æü¤Υ¤¥󥿡¼¥ͥåȤˤª¤¤¤Ƥϡ¢ - ÀßÄê¥ե¡¥¤¥ë¤ÎÃæ¤ÇÌÀ¼¨Ū¤Ê IP ¥¢¥ɥ쥹¤òÍ׵᤹¤ë»ÅÍͤϡ¢ - Á´¤¯µ¹¤·¤¯¤¢¤ê¤ޤ»¤ó¡£

    - -

    ÅðÍѤΥµ¡¼¥ӥ¹¥¢¥¿¥å¯¤˴ؤ·¤ƹԤʤ¦¤٤­»ö¤ϡ¢ - DNS ½ç°ú¤­¤ò¹Ԥʤ䯯À¤é¤줿¥¢¥ɥ쥹¤ËÂФ¹¤ë DNS - µհú¤­¤ò¹Ԥʤäơ¢Æó¤ĤÎ̾Á°¤òÈæ³Ӥ¹¤뤳¤ȤǤ¹¡£ - ¤³¤ÎÆó¤Ĥ¬°ìÃפ·¤ʤ±¤ì¤ХС¼¥Á¥ã¥ë¥ۥ¹¥ȤÏ̵¸ú¤ˤʤë¤褦¤ˤ·¤ޤ¹¡£ - ¤³¤¦¤¹¤뤿¤á¤ˤϵհú¤­ DNS ¤¬ŬÀڤËÀßÄꤵ¤ì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹ - (FTP ¥µ¡¼¥Фä TCP ¥é¥åѡ¼¤Τª¤«¤²¤ǡÖÆó½ŵհú¤­¡×DNS ¤ϰìÈÌŪ¤Ë - ¤ʤäƤ¤¤ޤ¹¤Τǡ¢´ÉÍý¼ԤˤϤªÆëÀ÷¤ߤâ¤ΤǤ·¤礦)¡£

    - -

    IP ¥¢¥ɥ쥹¤¬»ÈÍѤµ¤ì¤Ƥ¤¤ʤ¯¤Æ DNS ¤¬¼ºÇԤ·¤¿¾ì¹ç¤ϡ¢ - ¤ɤ¦¤·¤Ƥâ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȥ¦¥§¥֥µ¡¼¥Фò¿®ÍêÀ­¤ò³ÎÊݤ·¤Æ - µ¯ư¤µ¤»¤뤳¤ȤÏÉԲÄǽ¤Τ褦¤Ǥ¹¡£ - ÀßÄê¤ΰìÉô¤ò̵¸ú¤ˤ¹¤ë¤Ȥ¤¤¦¤褦¤ÊÉôʬŪ¤ʲò·è¤Ǥϡ¢ - ¥µ¡¼¥Ф¬²¿¤򤹤ë¤褦¤ˤ¹¤뤫¤ˤâ¤è¤ê¤ޤ¹¤¬¡¢ - ¤½¤Υµ¡¼¥Ф¬µ¯ư¤·¤ʤ¤¤è¤ê³μ¤˰­¤¤¾õ¶·¤ˤʤë¤Ǥ·¤礦¡£

    - -

    HTTP/1.1 ¤¬³«ȯ¤µ¤졢¥֥饦¥¶¤ä¥ץí¥­¥·¤¬ Host - ¥إåÀ¤òȯ¹Ԥ¹¤ë¤褦¤ˤʤ俤Τǡ¢IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò - Á´¤¯»ÈÍѤ·¤ʤ¯¤ƤâºѤà¤褦¤ˤʤ뤫¤⤷¤ì¤ޤ»¤ó¡£ - ¤³¤ξì¹硢¥¦¥§¥֥µ¡¼¥ФÏÀßÄêÃæ¤Ë DNS »²¾Ȥ򤷤ʤ¯¤ƤâºѤߤޤ¹¡£ - ¤·¤«¤· 1997 ǯ 3 ·î»þÅÀ¤ξõ¶·¤Ǥϡ¢ - ¾¦Íѥì¥٥ë¤Υ¦¥§¥֥µ¡¼¥ФǻÈÍѤǤ­¤ë¤ۤɤˤϡ¢ - ¤³¤ì¤é¤ε¡ǽ¤Ϲ­¤¯³«ȯ¤¬¿ʤó¤Ǥ¤¤ޤ»¤ó¡£

    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/dns-caveats.html.ja.utf8 b/docs/manual/dns-caveats.html.ja.utf8 new file mode 100644 index 00000000000..4b95a0ade86 --- /dev/null +++ b/docs/manual/dns-caveats.html.ja.utf8 @@ -0,0 +1,275 @@ + + + + + +DNS と Apache にまつわる注意事項 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    DNS と Apache にまつわる注意事項

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    本文書の内容は次の一言に尽きます。「Apache が設定ファイルを読み込むときに + DNS を使用する必要がないようにして下さい」。Apache が設定ファイルを + 読み込むときに DNS を使用する必要がある場合、信頼性の問題 + (起動しないかもしれません) やサービス拒否や盗用アタック + (他のユーザからヒットを盗むことを含みます) + の問題に直面するかもしれません。

    +
    + +
    top
    +
    +

    簡単な例

    + + +

    + <VirtualHost www.abc.dom>
    + ServerAdmin webgirl@abc.dom
    + DocumentRoot /www/abc
    + </VirtualHost> +

    + +

    Apache が正常に機能するには、バーチャルホスト毎に必ず二つの + 情報が必要になります。それは、 + ServerName + と、そのサーバが応答するための IP (最低一つ) です。 + 上記例では IP アドレスを含んでいませんので、Apache は DNS + を使用して www.abc.dom を見つけなければなりません。 + 何らかの理由で設定ファイルを読み込んでいるときに DNS + が利用できなかった場合、 + バーチャルホストは設定されません。 + そして、そのバーチャルホストに対するヒットには応答がなされません + (Apache 1.2 以前では起動すらしません)。

    + +

    www.abc.dom のアドレスが 192.0.2.1 + だとします。では、次の設定について考えてみましょう。

    + +

    + <VirtualHost 192.0.2.1>
    + ServerAdmin webgirl@abc.dom
    + DocumentRoot /www/abc
    + </VirtualHost> +

    + +

    現在のリリースでは Apache は DNS 逆引きを使用して + このバーチャルホストの ServerName + を見つけます。 + その逆引きが失敗した場合は部分的にバーチャルホストを無効にします + (Apache 1.2 より前では起動すらしません)。 + バーチャルホストが名前ベースであれば完全に無効になりますが、 + IP ベースであれば概ね動作します。しかしながら、サーバ名を + 含む完全な URL を生成しなければならない場合は、正しい URL + の生成ができません。

    + +

    次の例は上記の問題を解決しています。

    + +

    + <VirtualHost 192.0.2.1>
    + ServerName www.abc.dom
    + ServerAdmin webgirl@abc.dom
    + DocumentRoot /www/abc
    + </VirtualHost> +

    +
    top
    +
    +

    サービス拒否

    + + +

    サービス拒否が起こる場合、(少なくとも) 二つのケースがあります。 + Apache 1.2 より前を実行している場合、バーチャルホストのための + 上記の二つの DNS 検索のうち一つ失敗すれば起動すらしません。 + そしてこの DNS 検索が自分の制御下にすらない場合もありえます。 + 例えば、abc.dom が顧客のサーバの一つで、 + DNS は顧客自身で管理している場合、単に + www.abc.dom レコードを削除するだけで、 + (1.2 より前の) サーバを起動不能にすることができます。

    + +

    もう一つのケースは、より気付きにくいものです。 + 次の設定について考えてみましょう。

    + +

    + <VirtualHost www.abc.dom>
    +   ServerAdmin webgirl@abc.dom
    +   DocumentRoot /www/abc
    + </VirtualHost>
    +
    + <VirtualHost www.def.dom>
    +   ServerAdmin webguy@def.dom
    +   DocumentRoot /www/def
    + </VirtualHost> +

    + +

    192.0.2.1 を www.abc.dom に、 + 192.0.2.2 を www.def.dom に割り当てているとします。 + また、def.dom は顧客自身の DNS + の制御下にあるとします。この設定で、abc.dom + に向けられたトラフィック全てを奪うことができる位置に + def.dom を設置できています。後は単に + www.def.dom が 192.0.2.1 を参照するように + 設定するだけです。DNS は顧客側の DNS でコントロールされているので、 + www.def.dom レコードが好きな場所を指すように + 設定できてしまうのを止めさせることができません。

    + +

    192.0.2.1 に対するリクエスト + (http://www.abc.dom/whatever 形式の URL + を入力したユーザからのもの全てを含みます) + は、def.dom バーチャルホストで応答されます。 + このようなことが何故起こるかもっと良く知るためには、 + 応答の必要なバーチャルホストへのリクエストに対して、 + Apache がどのように整合性を確保するかについて、 + 深い議論が必要になります。おおざっぱな説明はこちらに記述されています。

    +
    top
    +
    +

    「主サーバ」アドレス

    + + +

    Apache 1.1 での 名前ベースのバーチャルホストのサポート 追加の際に、 + Apache は httpd の実行されているホストの IP + アドレスを知る必要が出てきました。このアドレスを得るために、 + (もしあれば) グローバルな + ServerName を使用するか、 + C 言語の関数 gethostname (コマンドプロンプトで + hostname とタイプしたときと同じものを返します) + を呼び出すかをします。 + その後、得られたアドレスで DNS 検索を行ないます。 + 現在のところ、この DNS 検索を回避する方法はありません。

    + +

    DNS サーバがダウンして、この検索ができない事態が起こることを + 恐れているのであれば、/etc/hosts + にホスト名を記述しておくことができます + (マシンが正常に起動するように既に設定されているかもしれません)。 + その場合、DNS 参照が失敗した場合にマシンが /etc/hosts + を使用するように設定していることを確認してください。 + その方法は、どの OS を使用しているかに依存しますが、 + /etc/resolv.conf か /etc/nsswitch.conf + を編集することで設定できます。

    + +

    もし他の理由で DNS を利用する必要がない場合は、 + HOSTRESORDER 環境変数を「 local + 」に設定することでそのようにできます。以上これらの事柄は、どんな + OS 、レゾルバライブラリを使用しているかに依存します。また、 + mod_env を使用して環境変数を制御しない限り、 + CGI にも影響を与えます。man ページや使用している OS + の FAQ で調べると良いでしょう。

    +
    top
    +
    +

    以上の問題を解決する方法

    + + +
      +
    • + VirtualHost + で IP アドレスを使用する。 +
    • + +
    • + Listen + で IP アドレスを使用する。 +
    • + +
    • + 全てのバーチャルホストが明示的に + ServerName + を持つようにする。 +
    • + +
    • 何も応答しない + <VirtualHost _default_:*> + サーバを作る。
    • +
    +
    top
    +
    +

    付録: 将来的な方向性

    + + +

    DNS に関して、現状は全く宜しくありません。Apache 1.2 で、 + DNS のイベントが失敗しても少なくとも起動プロセスが続くようにしましたが、 + これが最高の解決方法ではないでしょう。アドレスの再割り当てが必要不可避 + となっている今日のインターネットにおいては、 + 設定ファイルの中で明示的な IP アドレスを要求する仕様は、 + 全く宜しくありません。

    + +

    盗用のサービスアタックに関して行なうべき事は、 + DNS 順引きを行なって得られたアドレスに対する DNS + 逆引きを行なって、二つの名前を比較することです。 + この二つが一致しなければバーチャルホストは無効になるようにします。 + こうするためには逆引き DNS が適切に設定されている必要があります + (FTP サーバや TCP ラッパーのおかげで「二重逆引き」DNS は一般的に + なっていますので、管理者にはお馴染みものでしょう)。

    + +

    IP アドレスが使用されていなくて DNS が失敗した場合は、 + どうしてもバーチャルホストウェブサーバを信頼性を確保して + 起動させることは不可能のようです。 + 設定の一部を無効にするというような部分的な解決では、 + サーバが何をするようにするかにもよりますが、 + そのサーバが起動しないより確実に悪い状況になるでしょう。

    + +

    HTTP/1.1 が開発され、ブラウザやプロキシが Host + ヘッダを発行するようになったので、IP ベースのバーチャルホストを + 全く使用しなくても済むようになるかもしれません。 + この場合、ウェブサーバは設定中に DNS 参照をしなくても済みます。 + しかし 1997 年 3 月時点の状況では、 + 商用レベルのウェブサーバで使用できるほどには、 + これらの機能は広く開発が進んでいません。

    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/dns-caveats.html.ko.euc-kr b/docs/manual/dns-caveats.html.ko.euc-kr index b3296d2d4ef..1782ed4a21c 100644 --- a/docs/manual/dns-caveats.html.ko.euc-kr +++ b/docs/manual/dns-caveats.html.ko.euc-kr @@ -1,26 +1,34 @@ - -DNS¿Í ¾ÆÆÄġ¿Í °ü·õÈ »çÇ× - Apache HTTP Server +DNS¿Í ¾ÆÆÄġ¿Í °ü·õÈ »çÇ× - Apache HTTP Server Version 2.2 - - + + + +
    <-

    DNS¿Í ¾ÆÆÄġ¿Í °ü·õÈ »çÇ×

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    DNS¿Í ¾ÆÆÄġ¿Í °ü·õÈ »çÇ×

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -37,7 +45,7 @@
  • "Áּ­¹ö" ÁּÒ
  • ÀÌ ¹®Á¦¸¦ ÇÇÇϱâÀ§ÇÑ ÆÁ
  • ºηÏ: ¾ÕÀ¸·δÂ
  • -
    +
    top

    °£´ÜÇÑ ¿¹Á¦

    @@ -60,11 +68,11 @@ ÀÌ °¡»óȣ½ºƮ´Â ¿äû¿¡ ÀÀ´äÇÒ ¼ö ¾ø´Ù. (¾ÆÆÄġ 1.2 ÀÌÀü ¹öÀü¿¡¼­´Â ½ÉÁö¾î ¼­¹ö°¡ ºÎÆõµ ¾ÈÇѴÙ.)

    -

    www.abc.domÀÇ ÁּҰ¡ 10.0.0.1À̶ó°í °¡Á¤ÇÏÀÚ. +

    www.abc.domÀÇ ÁּҰ¡ 192.0.2.1À̶ó°í °¡Á¤ÇÏÀÚ. ±׸®°í ´ÙÀ½ ¼³Á¤À» º¸¶ó:

    - <VirtualHost 10.0.0.1>
    + <VirtualHost 192.0.2.1>
    ServerAdmin webgirl@abc.dom
    DocumentRoot /www/abc
    </VirtualHost> @@ -81,7 +89,7 @@

    ¾Ʒ¡ °æ¿ì ÀÌ µΰ¡Áö ¹®Á¦°¡ ¾ø´Ù.

    - <VirtualHost 10.0.0.1>
    + <VirtualHost 192.0.2.1>
    ServerName www.abc.dom
    ServerAdmin webgirl@abc.dom
    DocumentRoot /www/abc
    @@ -114,18 +122,18 @@ </VirtualHost>

    -

    ´ç½ÅÀÌ www.abc.dom¿¡ 10.0.0.1, - www.def.dom¿¡ 10.0.0.2¸¦ ÇҴçÇߴٰí ÇÏÀÚ. +

    ´ç½ÅÀÌ www.abc.dom¿¡ 192.0.2.1, + www.def.dom¿¡ 192.0.2.2¸¦ ÇҴçÇߴٰí ÇÏÀÚ. ¶Ç, def.domÀº ÀÚü DNS¸¦ »ç¿ëÇѴٰí °¡Á¤ÇÏÀÚ. ÀÌ ¼³Á¤°ú ÇԲ² def.domÀ» abc.domÀ¸·Î °¡´Â ¸ðµç Åë½ÅÀ» °¡·Îç ¼ö Àִ Àå¼ҿ¡ µξú´Ù. ±׷¸´ٸé ±׵éÀº - www.def.domÀ» 10.0.0.1·Î ¼³Á¤Çϱ⸸ Çϸé µȴÙ. + www.def.domÀ» 192.0.2.1·Î ¼³Á¤Çϱ⸸ Çϸé µȴÙ. ±׵éÀÌ ÀÚü DNS¸¦ »ç¿ëÇϱ⶧¹®¿¡ ´ç½ÅÀº ±׵éÀÌ ¿øÇϴµ¥·Î www.def.dom ·¹Äڵ带 ¼³Á¤Çϴ °ÍÀ» ¸·À» ¼ö ¾ø´Ù.

    (»ç¿ëÀڰ¡ http://www.abc.dom/whatever Çü½ÄÀÇ - URLÀ» ÀԷÂÇϴ °æ¿츦 Æ÷ÇÔÇϿ©) 10.0.0.1·Î ¿À´Â ¸ðµç ¿äûÀ» + URLÀ» ÀԷÂÇϴ °æ¿츦 Æ÷ÇÔÇϿ©) 192.0.2.1·Î ¿À´Â ¸ðµç ¿äûÀ» def.dom °¡»óȣ½ºƮ°¡ ¼­ºñ½ºÇϰÔ µȴÙ. ¿Ö À̷± ÀÏÀÌ ÀϾ´ÂÁö ÀÌÇØÇϷÁ¸é ¾ÆÆÄġ°¡ ¾°Ô °¡»óȣ½ºƮ·Î ¿À´Â ¿äûÀ» ó¸®ÇϴÂÁö¿¡ ´ëÇÑ ¼³¸íÀÌ ÇʿäÇϴÙ. @@ -216,8 +224,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/dns-caveats.html.tr.utf8 b/docs/manual/dns-caveats.html.tr.utf8 new file mode 100644 index 00000000000..65f6a4114e9 --- /dev/null +++ b/docs/manual/dns-caveats.html.tr.utf8 @@ -0,0 +1,263 @@ + + + + + +Apache ve DNS ile ilgili Konular - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache ve DNS ile ilgili Konular

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + +

    Bu sayfanın konusu şöyle özetlenebilirdi: Yapılandırma dosyalarınızda + DNS sorguları yapılmasını gerektirecek ayarlamalardan kaçınınız. Eğer + yapılandırma dosyalarınızda DNS sorgusu yapılarak çözümlenebilecek + adresler bulunursa sunucunuz beklenmedik davranışlar (hiç + başlamayabilir) gösterebileceği gibi hizmet reddi veya hizmet + hırsızlığı (bazı kullanıcıların diğerlerine giden sayfaları çalma + olasılığı dahil) saldırılarına açık hale gelebilir.

    +
    + +
    top
    +
    +

    Basit Bir Örnek

    + + +

    + <VirtualHost falan.fesmekan.dom> + + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost> +

    + +

    Apache’nin beklendiği gibi işlemesi için her sanal konak için iki + veriye mutlaka ihtiyacı vardır: ServerName ve sunucunun bağlantı kabul edip hizmet + sunacağı en az bir IP adresi. Yukarıdaki örnekte IP adresi + bulunmamaktadır, dolayısıyla Apache, falan.fesmekan.dom + adresi için bir DNS sorgusu yapmak zorundadır. Eğer sunucu, + yapılandırma dosyasını çözümlediği sırada bir sebeple DNS sunucusuna + erişemezse bu sanal konak yapılandırılmayacak (hApache 1.2 + öncesinde sunucu hiç başlatılmazdı) ve bu sanal konağa yapılan + isteklere yanıt verilemeyecektir.

    + +

    falan.fesmekan.dom’un 192.168.2.1 IP adresine sahip + olduğunu varsayarsak yapılandırma şöyle olurdu:

    + +

    + <VirtualHost 192.168.2.1>
    + + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost> +

    + +

    Ancak, bu sefer de bu sanal konağın sunucu ismini öğrenmek için + Apache’nin bir ters DNS sorgusu yapması gerekecektir. Eğer bu sorgu + başarısız olursa kısmi bir yapılandırmaya gidilir (Apache 1.2 öncesinde + sunucu hiç başlatılmazdı). Eğer sanal konak isme dayalı ise sanal konak + kısmen bile yapılandırılmaz. IP’ye dayalı sanal konaklar büyük oranda + çalışır, fakat sunucu ismini içeren tam bir adres üretilmesini + gerektiren bir durumda, sunucu geçerli bir adres üretemez.

    + +

    Her iki sorunu da çözen yapılandırma şöyle olurdu:

    + +

    + <VirtualHost 192.168.2.1>
    + + ServerName falan.fesmekan.dom
    + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost> +

    +
    top
    +
    +

    Hizmet Reddi

    + + +

    Hizmet reddinin meydana gelebilecek (en az) iki türü vardır. + Apache’nin 1.2 öncesi bir sürümünü kullanıyorsanız sanal + konaklarınızdan herhangi biri için yukarıdaki iki sorgudan biri + başarısız olursa sunucunuzu asla başlatamazsınız. Bazı durumlarda, DNS + sorgularından alınacak yanıtlar sizin denetiminizde olmayabilir; + örneğin fesmekan.dom müşterilerinizden birine aitse ve + kendi DNS sunucuları varsa falan.fesmekan.dom kaydını + silerek sunucunuzun hiç başlatılamamasına (1.2 öncesi) sebep + olabilirler.

    + +

    Diğer türü biraz daha sinsidir. Şöyle bir yapılandırmanız olsun:

    + +

    + <VirtualHost falan.fesmekan.dom>
    + + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost>
    +
    + <VirtualHost misal.mesela.dom>
    + + ServerAdmin falanca@mesela.dom
    + DocumentRoot /siteler/mesela
    +
    + </VirtualHost> +

    + +

    falan.fesmekan.dom’a 192.168.2.1, + misal.mesela.dom’a 192.168.2.2 atadığınızı fakat, + fesmekan.dom’un DNS kaydının sizin denetiminizde olmadığını + varsayalım. Bu yapılandırmayla, fesmekan.dom’u + mesela.dom’a giden tüm trafiği çalabilecek duruma + getirirsiniz. Bunu gerçekleştirmek için DNS kaydında + falan.fesmekan.dom’a 192.168.2.2 adresinin atanması + yeterlidir. Kendi DNS’lerine sahip olduklarından dolayı + falan.fesmekan.dom’a istedikleri IP adresini atamaktan + onları alıkoyamazsınız.

    + +

    192.168.2.2’ye gelen isteklerin hepsine + (http://misal.mesela.dom/biryer şeklinde yazılan + adresler dahil) fesmekan.dom sanal konağınca hizmet + sunulacaktır. Apache’nin gelen istekleri sunduğu sanal konaklarla nasıl + eşleştirdiğini bilirseniz bunun sebebini kolayca anlarsınız. Bunu + kabataslak açıklayan bir belgemiz + mevcuttur.

    +
    top
    +
    +

    "Ana Sunucu" Adresi

    + + +

    Apache 1.1’de isme dayalı sanal konak + desteğine ek olarak, Apache’nin, httpd’nin + çalıştığı makinenin IP adres(ler)ini de bilmeye ihtiyacı vardır. Bu + adresi elde etmek için sunucu, ya sunucu genelinde geçerli ServerName yönergesine bakar ya da bir C + işlevi olan gethostname’i kullanır (işlev, komut + isteminden hostname komutuna dönen yanıtın aynısını + döndürür) ve ardından bu adresle ilgili olarak bir DNS sorgusu yapar. + Bu sorgudan kaçınmanın henüz bir yolu yoktur.

    + +

    Eğer bu sorgunun (DNS sunucusunun çökmüş olması gibi bir nedenle) + başarısız olabileceğinden korkuyorsanız, makine ismini ve IP adresini + /etc/hosts dosyanıza yazabilirsiniz (Makinenizin düzgün + olarak açılabilmesi için zaten bu kaydı yapmış olmanız gerekir). + Kullandığınız işletim sistemine bağlı olarak bu kaydın + /etc/resolv.conf veya /etc/nsswitch.conf + dosyasında bulunması gerekebilir.

    + +

    Herhangi bir nedenle sunucunuz bir DNS sorgusu yapmıyorsa veya + yapmamalıysa, Apache’yi HOSTRESORDER ortam değişkenine + "local" değerini atadıktan sonra çalıştırabilirsiniz. Bu + tamamen işletim sistemine ve kullandığınız çözümleyici kütüphanelere + bağlıdır. Ayrıca, ortamı denetlemek için mod_env + kullanmıyorsanız, CGI’ler de bundan etkilenir. En iyisi işletim + sisteminizin SSS belgelerini ve kılavuz sayfalarını okumaktır.

    +
    top
    +
    +

    Bu Sorunlardan Kaçınmak için İpuçları

    + + +
      +
    • VirtualHost yönergelerinizde + IP adresleri kullanınız.
    • + +
    • Listen yönergelerinizde + IP adresleri kullanınız.
    • + +
    • Tüm sanal konakların ayrı birer ServerName yönergesi olsun.
    • + +
    • Hiçbir sayfa sunulmayan bir <VirtualHost + _default_:*> sanal konağınız olsun.
    • +
    +
    top
    +
    +

    Ek: Ufuk Turu

    + + +

    DNS ile ilgili durum hiç de arzu edildiği gibi değildir. Apache 1.2 + için, DNS sorguları başarısız olsa bile sunucunun başlatılabilmesini + sağlamaya çalıştık, fakat belki yapabildiğimizden daha da iyisi + mümkündür. Günümüz Genel Ağ’ında IP adresleri sık sık değiştiğinden + yapılandırma dosyasına doğrudan IP adresini yazma gerekliliği asla arzu + edilen davranış değildir.

    + +

    Yukarıda nasıl yapıldığı açıklanan hizmet hırsızlığı saldırısına karşı + önlem olarak, normal sorgudan dönen IP adresine bir ters DNS sorgusu + yapıp bu iki sonucu karşılaştırmak ve eşleşmeme durumunda sanal konağı + iptal etmek bir çözüm olabilir. Fakat bunun mümkün olabilmesi için + uygun bir ters DNS kaydına ihtiyaç vardır. (FTP sunucuları ve TCP + sarmalayıcılar tarafından yapılan çifte ters DNS sorgusu kullanımından + dolayı çoğu ağ yöneticisi bu konuda zaten bilgi sahibidir.)

    + +

    Her halükarda, IP adreslerinin kullanılmaması nedeniyle yapılan DNS + sorgularının başarısız olması durumunda sanal konaklı bir sunucuyu + düzgün bir şekilde başlatmak olası görünmektedir. Yapılandırmayı kısmen + iptal etmek gibi kısmi çözümler, sunucudan beklentinizin ne olduğuna + bağlı olarak sunucuyu hiç başlatmamaktan daha iyi olabilir.

    + +

    HTTP/1.1’de belirtildiği gibi Host başlığını göndererek + işlem yapabilen tarayıcılar ve vekiller IP’ye dayalı sanal konak + kullanımını tamamen ortadan kaldırmanın mümkün olabileceğini + göstermektedir. Bu durumda yapılandırmanın çözümlenmesi aşamasında DNS + sorgusu yapma gereği kalmayacaktır. Fakat 1997 Mart’ından beri önemli + sunucular üzerinde bunların yeterince geniş bir uygulama alanı + bulmadığı görülmektedir.

    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/dns-caveats.xml b/docs/manual/dns-caveats.xml index a7d4a1da1ca..0c85e0046ec 100644 --- a/docs/manual/dns-caveats.xml +++ b/docs/manual/dns-caveats.xml @@ -4,12 +4,12 @@ + + - + dns-caveats / . en - ja + ja ko + tr diff --git a/docs/manual/dns-caveats.xml.tr b/docs/manual/dns-caveats.xml.tr new file mode 100644 index 00000000000..92821acef9b --- /dev/null +++ b/docs/manual/dns-caveats.xml.tr @@ -0,0 +1,228 @@ + + + + + + + + + + + Apache ve DNS ile ilgili Konular + + +

    Bu sayfanın konusu şöyle özetlenebilirdi: Yapılandırma dosyalarınızda + DNS sorguları yapılmasını gerektirecek ayarlamalardan kaçınınız. Eğer + yapılandırma dosyalarınızda DNS sorgusu yapılarak çözümlenebilecek + adresler bulunursa sunucunuz beklenmedik davranışlar (hiç + başlamayabilir) gösterebileceği gibi hizmet reddi veya hizmet + hırsızlığı (bazı kullanıcıların diğerlerine giden sayfaları çalma + olasılığı dahil) saldırılarına açık hale gelebilir.

    +
    + +
    + Basit Bir Örnek + + + <VirtualHost falan.fesmekan.dom> + + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost> +
    + +

    Apache’nin beklendiği gibi işlemesi için her sanal konak için iki + veriye mutlaka ihtiyacı vardır: ServerName ve sunucunun bağlantı kabul edip hizmet + sunacağı en az bir IP adresi. Yukarıdaki örnekte IP adresi + bulunmamaktadır, dolayısıyla Apache, falan.fesmekan.dom + adresi için bir DNS sorgusu yapmak zorundadır. Eğer sunucu, + yapılandırma dosyasını çözümlediği sırada bir sebeple DNS sunucusuna + erişemezse bu sanal konak yapılandırılmayacak (hApache 1.2 + öncesinde sunucu hiç başlatılmazdı) ve bu sanal konağa yapılan + isteklere yanıt verilemeyecektir.

    + +

    falan.fesmekan.dom’un 192.168.2.1 IP adresine sahip + olduğunu varsayarsak yapılandırma şöyle olurdu:

    + + + <VirtualHost 192.168.2.1>
    + + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost> +
    + +

    Ancak, bu sefer de bu sanal konağın sunucu ismini öğrenmek için + Apache’nin bir ters DNS sorgusu yapması gerekecektir. Eğer bu sorgu + başarısız olursa kısmi bir yapılandırmaya gidilir (Apache 1.2 öncesinde + sunucu hiç başlatılmazdı). Eğer sanal konak isme dayalı ise sanal konak + kısmen bile yapılandırılmaz. IP’ye dayalı sanal konaklar büyük oranda + çalışır, fakat sunucu ismini içeren tam bir adres üretilmesini + gerektiren bir durumda, sunucu geçerli bir adres üretemez.

    + +

    Her iki sorunu da çözen yapılandırma şöyle olurdu:

    + + + <VirtualHost 192.168.2.1>
    + + ServerName falan.fesmekan.dom
    + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost> +
    +
    + +
    + Hizmet Reddi + +

    Hizmet reddinin meydana gelebilecek (en az) iki türü vardır. + Apache’nin 1.2 öncesi bir sürümünü kullanıyorsanız sanal + konaklarınızdan herhangi biri için yukarıdaki iki sorgudan biri + başarısız olursa sunucunuzu asla başlatamazsınız. Bazı durumlarda, DNS + sorgularından alınacak yanıtlar sizin denetiminizde olmayabilir; + örneğin fesmekan.dom müşterilerinizden birine aitse ve + kendi DNS sunucuları varsa falan.fesmekan.dom kaydını + silerek sunucunuzun hiç başlatılamamasına (1.2 öncesi) sebep + olabilirler.

    + +

    Diğer türü biraz daha sinsidir. Şöyle bir yapılandırmanız olsun:

    + + + <VirtualHost falan.fesmekan.dom>
    + + ServerAdmin filanca@fesmekan.dom
    + DocumentRoot /siteler/fesmekan +
    + </VirtualHost>
    +
    + <VirtualHost misal.mesela.dom>
    + + ServerAdmin falanca@mesela.dom
    + DocumentRoot /siteler/mesela
    +
    + </VirtualHost> +
    + +

    falan.fesmekan.dom’a 192.168.2.1, + misal.mesela.dom’a 192.168.2.2 atadığınızı fakat, + fesmekan.dom’un DNS kaydının sizin denetiminizde olmadığını + varsayalım. Bu yapılandırmayla, fesmekan.dom’u + mesela.dom’a giden tüm trafiği çalabilecek duruma + getirirsiniz. Bunu gerçekleştirmek için DNS kaydında + falan.fesmekan.dom’a 192.168.2.2 adresinin atanması + yeterlidir. Kendi DNS’lerine sahip olduklarından dolayı + falan.fesmekan.dom’a istedikleri IP adresini atamaktan + onları alıkoyamazsınız.

    + +

    192.168.2.2’ye gelen isteklerin hepsine + (http://misal.mesela.dom/biryer şeklinde yazılan + adresler dahil) fesmekan.dom sanal konağınca hizmet + sunulacaktır. Apache’nin gelen istekleri sunduğu sanal konaklarla nasıl + eşleştirdiğini bilirseniz bunun sebebini kolayca anlarsınız. Bunu + kabataslak açıklayan bir belgemiz + mevcuttur.

    +
    + +
    + "Ana Sunucu" Adresi + +

    Apache 1.1’de isme dayalı sanal konak + desteğine ek olarak, Apache’nin, httpd’nin + çalıştığı makinenin IP adres(ler)ini de bilmeye ihtiyacı vardır. Bu + adresi elde etmek için sunucu, ya sunucu genelinde geçerli ServerName yönergesine bakar ya da bir C + işlevi olan gethostname’i kullanır (işlev, komut + isteminden hostname komutuna dönen yanıtın aynısını + döndürür) ve ardından bu adresle ilgili olarak bir DNS sorgusu yapar. + Bu sorgudan kaçınmanın henüz bir yolu yoktur.

    + +

    Eğer bu sorgunun (DNS sunucusunun çökmüş olması gibi bir nedenle) + başarısız olabileceğinden korkuyorsanız, makine ismini ve IP adresini + /etc/hosts dosyanıza yazabilirsiniz (Makinenizin düzgün + olarak açılabilmesi için zaten bu kaydı yapmış olmanız gerekir). + Kullandığınız işletim sistemine bağlı olarak bu kaydın + /etc/resolv.conf veya /etc/nsswitch.conf + dosyasında bulunması gerekebilir.

    + +

    Herhangi bir nedenle sunucunuz bir DNS sorgusu yapmıyorsa veya + yapmamalıysa, Apache’yi HOSTRESORDER ortam değişkenine + "local" değerini atadıktan sonra çalıştırabilirsiniz. Bu + tamamen işletim sistemine ve kullandığınız çözümleyici kütüphanelere + bağlıdır. Ayrıca, ortamı denetlemek için mod_env + kullanmıyorsanız, CGI’ler de bundan etkilenir. En iyisi işletim + sisteminizin SSS belgelerini ve kılavuz sayfalarını okumaktır.

    +
    + +
    + Bu Sorunlardan Kaçınmak için İpuçları + +
      +
    • VirtualHost yönergelerinizde + IP adresleri kullanınız.
    • + +
    • Listen yönergelerinizde + IP adresleri kullanınız.
    • + +
    • Tüm sanal konakların ayrı birer ServerName yönergesi olsun.
    • + +
    • Hiçbir sayfa sunulmayan bir <VirtualHost + _default_:*> sanal konağınız olsun.
    • +
    +
    + +
    + Ek: Ufuk Turu + +

    DNS ile ilgili durum hiç de arzu edildiği gibi değildir. Apache 1.2 + için, DNS sorguları başarısız olsa bile sunucunun başlatılabilmesini + sağlamaya çalıştık, fakat belki yapabildiğimizden daha da iyisi + mümkündür. Günümüz Genel Ağ’ında IP adresleri sık sık değiştiğinden + yapılandırma dosyasına doğrudan IP adresini yazma gerekliliği asla arzu + edilen davranış değildir.

    + +

    Yukarıda nasıl yapıldığı açıklanan hizmet hırsızlığı saldırısına karşı + önlem olarak, normal sorgudan dönen IP adresine bir ters DNS sorgusu + yapıp bu iki sonucu karşılaştırmak ve eşleşmeme durumunda sanal konağı + iptal etmek bir çözüm olabilir. Fakat bunun mümkün olabilmesi için + uygun bir ters DNS kaydına ihtiyaç vardır. (FTP sunucuları ve TCP + sarmalayıcılar tarafından yapılan çifte ters DNS sorgusu kullanımından + dolayı çoğu ağ yöneticisi bu konuda zaten bilgi sahibidir.)

    + +

    Her halükarda, IP adreslerinin kullanılmaması nedeniyle yapılan DNS + sorgularının başarısız olması durumunda sanal konaklı bir sunucuyu + düzgün bir şekilde başlatmak olası görünmektedir. Yapılandırmayı kısmen + iptal etmek gibi kısmi çözümler, sunucudan beklentinizin ne olduğuna + bağlı olarak sunucuyu hiç başlatmamaktan daha iyi olabilir.

    + +

    HTTP/1.1’de belirtildiği gibi Host başlığını göndererek + işlem yapabilen tarayıcılar ve vekiller IP’ye dayalı sanal konak + kullanımını tamamen ortadan kaldırmanın mümkün olabileceğini + göstermektedir. Bu durumda yapılandırmanın çözümlenmesi aşamasında DNS + sorgusu yapma gereği kalmayacaktır. Fakat 1997 Mart’ından beri önemli + sunucular üzerinde bunların yeterince geniş bir uygulama alanı + bulmadığı görülmektedir.

    +
    +
    diff --git a/docs/manual/dso.html b/docs/manual/dso.html index 3d86148e796..6cc9403fe4f 100644 --- a/docs/manual/dso.html +++ b/docs/manual/dso.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: dso.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: dso.html.ja.euc-jp +URI: dso.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: dso.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: dso.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/dso.html.en b/docs/manual/dso.html.en index 51156c2408b..ba558d2ff61 100644 --- a/docs/manual/dso.html.en +++ b/docs/manual/dso.html.en @@ -1,26 +1,34 @@ - -Dynamic Shared Object (DSO) Support - Apache HTTP Server +Dynamic Shared Object (DSO) Support - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Dynamic Shared Object (DSO) Support

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Dynamic Shared Object (DSO) Support

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    The Apache HTTP Server is a modular program where the @@ -41,7 +49,7 @@

  • Usage Summary
  • Background
  • Advantages and Disadvantages
  • -
    +
    top

    Implementation

    @@ -80,7 +88,7 @@

    Usage Summary

    -

    To give you an overview of the DSO features of Apache 2.0, +

    To give you an overview of the DSO features of Apache 2.x, here is a short and concise summary:

      @@ -308,8 +316,30 @@ $ apxs -i -a -n foo mod_foo.la

      Available Languages:  en  |  ja  | - ko 

      -
      + ko  | + tr 

      +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/dso.html.ja.euc-jp b/docs/manual/dso.html.ja.euc-jp deleted file mode 100644 index 3ae45498b5f..00000000000 --- a/docs/manual/dso.html.ja.euc-jp +++ /dev/null @@ -1,296 +0,0 @@ - - - -ưŪ¶¦ͭ¥ª¥֥¸¥§¥¯¥È (DSO) ¥µ¥ݡ¼¥È - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ưŪ¶¦ͭ¥ª¥֥¸¥§¥¯¥È (DSO) ¥µ¥ݡ¼¥È

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    Apache HTTP ¥µ¡¼¥Фϥ⥸¥塼¥벽¤µ¤줿¥ץí¥°¥é¥à¤ǡ¢ - ´ÉÍý¼Ԥ¬¥⥸¥塼¥ë¤òÁªÂ򤹤뤳¤Ȥǥµ¡¼¥ФËÁȤ߹þ¤ൡǽ¤òÁª¤֤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¥⥸¥塼¥ë¤ϥµ¡¼¥Ф¬¥ӥë¥ɤµ¤ì¤ë¤Ȥ­¤Ë httpd ¥Х¤¥ʥê¤Ë - ÀÅŪ¤ËÁȤ߹þ¤ळ¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤⤷¤¯¤ϡ¢httpd ¥Х¤¥ʥê¤ȤÏ - Ê̤˸ºߤ¹¤ëưŪ¶¦ͭ¥ª¥֥¸¥§¥¯¥È (ÌõÃí: Dynamic Shared Object) - (DSO) ¤Ȥ·¤ƥ³¥ó¥ѥ¤¥뤹¤뤳¤Ȥâ - ¤Ǥ­¤ޤ¹¡£DSO ¥⥸¥塼¥ë¤ϥµ¡¼¥Ф¬¥ӥë¥ɤµ¤ì¤ë¤Ȥ­¤˥³¥ó¥ѥ¤¥뤷¤¿¤ꡢ - Apache ³Èĥ¥ġ¼¥ë (apxs) ¤ò - »ȤäƸå¤ǥ³¥ó¥ѥ¤¥뤷¤ÆÄɲä·¤¿¤ê¤Ǥ­¤ޤ¹¡£

    - -

    ¤³¤Îʸ½ñ¤Ï DSO ¥⥸¥塼¥ë¤λȤ¤Êý¤ȡ¢»ÅÁȤߤˤĤ¤¤Æ - ÀâÌÀ¤·¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¼ÂÁõ

    - - - -

    ¸ġ¹¤Î Apache ¥⥸¥塼¥ë¤ò¥í¡¼¥ɤ¹¤뤿¤á¤Î DSO ¥µ¥ݡ¼¥ȤÏ - mod_so.c ¤Ȥ¤¤¦¥⥸¥塼¥ë¤ε¡ǽ¤˴ð¤Ť¤¤Ƥ¤¤ޤ¹¡£ - ¤³¤Υ⥸¥塼¥ë ¤Ï Apache ¤Υ³¥¢¤ËÀÅŪ¤ËÁȤ߹þ¤ޤì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤½¤ì¤Ï core.c °ʳ°¤ǤÏ DSO ¤ˤǤ­¤ʤ¤ͣ°ì¤Î - ¥⥸¥塼¥ë¤Ǥ¹¡£»ö¼¾塢¾¤Τ¹¤٤ƤÎ Apache ¤Υ⥸¥塼¥ë¤ϡ¢ - ¥¤¥󥹥ȡ¼¥ë¤Îʸ½ñ¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ë¤褦¤ˡ¢ - configure ¤Î - --enable-module=shared ¥ª¥ץ·¥ç¥ó¤Ǥ½¤줾¤ì¤ò - DSO ¥ӥë¥ɤˤ¹¤뤳¤Ȥˤè¤ꡢDSO ¥⥸¥塼¥ë¤ˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - mod_foo.so ¤Τ褦¤Ê DSO ¤˥⥸¥塼¥뤬¥³¥ó¥ѥ¤¥뤵¤ì¤ì¤С¢ - httpd.conf ¥ե¡¥¤¥ëÃæ¤Ç mod_so ¤Î - LoadModule - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¦¤³¤Ȥǥµ¡¼¥Фε¯ư¤äºƵ¯ư»þ¤ˤ³¤Υ⥸¥塼¥ë¤ò - ¥í¡¼¥ɤ¹¤ë¤褦¤ˤǤ­¤ޤ¹¡£

    - -

    Apache ¥⥸¥塼¥ëÍѤÎ (Æä˥µ¡¼¥ɥѡ¼¥ƥ£¥⥸¥塼¥ë¤Î) DSO ¥ե¡¥¤¥ë¤Î - ºîÀ®¤ò´Êñ¤ˤ¹¤뤿¤á¤ˡ¢apxs - (APache eXtenSion) ¤Ȥ¤¤¦¿·¤·¤¤¥µ¥ݡ¼¥ȥץí¥°¥é¥ब¤¢¤ê¤ޤ¹¡£ - Apache ¤Υ½¡¼¥¹¥ĥ꡼¤Î³°¤Ç DSO ¥⥸¥塼¥ë¤ò¥ӥë¥ɤ¹¤뤿¤á¤Ë - »Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ȯÁۤÏñ½ã¤Ǥ¹: Apache ¤Υ¤¥󥹥ȡ¼¥ë»þ¤Î - configure¡¢make install ¤ΤȤ­¤Ë Apache ¤Î - C ¥إåÀ¤򥤥󥹥ȡ¼¥뤷¡¢DSO ¥ӥë¥ÉÍѤΥץé¥åȥե©¡¼¥à°Í¸¤Î - ¥³¥ó¥ѥ¤¥é¤ȥê¥󥫤Υե饰¤ò apxs ¥ץí¥°¥é¥à¤ËÄɲä·¤ޤ¹¡£ - ¤³¤ì¤ˤè¤ꡢ¥桼¥¶¤¬ Apache ¤ÎÇÛÉۥ½¡¼¥¹¥ĥ꡼¤ʤ·¤ǡ¢¤µ¤é¤Ë - DSO ¥µ¥ݡ¼¥ȤΤ¿¤á¤Υץé¥åȥե©¡¼¥à°Í¸¤Υ³¥ó¥ѥ¤¥é¤ä¥ê¥󥫤Î - ¥ե饰¤򤤤¸¤뤳¤Ȥʤ¯ Apache ¤Υ⥸¥塼¥ë¤Υ½¡¼¥¹¤򥳥ó¥ѥ¤¥ë - ¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£

    -
    top
    -
    -

    »ÈÍÑˡ¤γµÍ×

    - -

    Apache 2.0 ¤Î DSO µ¡ǽ¤γµά¤òÃΤ뤳¤Ȥ¬¤Ǥ­¤뤿¤á¤Ρ¢ - û¤¯´ʷé¤ʳµÍפǤ¹:

    - -
      -
    1. - ÇÛÉۤµ¤ì¤Ƥ¤¤ë Apache ¥⥸¥塼¥롢²¾¤Ë mod_foo.c - ¤Ȥ·¤ơ¢¤½¤ì¤ò DSO mod_foo.so ¤˥ӥë¥ɡ¢¥¤¥󥹥ȡ¼¥ë: - -

      -$ ./configure --prefix=/path/to/install --enable-foo=shared
      -$ make install -

      -
    2. - -
    3. - ¥µ¡¼¥ɥѡ¼¥ƥ£ Apache ¥⥸¥塼¥롢²¾¤Ë mod_foo.c - ¤Ȥ·¤ơ¢¤½¤ì¤ò DSO mod_foo.so ¤˥ӥë¥ɡ¢¥¤¥󥹥ȡ¼¥ë: - -

      -$ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c \
      - - --enable-foo=shared
      -
      -$ make install -

      -
    4. - -
    5. - ¶¦ͭ¥⥸¥塼¥ë¤Î ¸塹¤Υ¤¥󥹥ȡ¼¥ë ¤Τ¿¤á¤Ë - Apache ¤òÀßÄê: - -

      -$ ./configure --enable-so
      -$ make install -

      -
    6. - -
    7. - ¥µ¡¼¥ɥѡ¼¥ƥ£ Apache ¥⥸¥塼¥롢²¾¤Ë mod_foo.c - ¤Ȥ·¤ơ¢¤½¤ì¤ò apxs ¤ò»ȤäÆ - Apache ¥½¡¼¥¹¥ĥ꡼¤Î³°¤Ç DSO ¤˥ӥë¥ɡ¢¥¤¥󥹥ȡ¼¥ë: - -

      -$ cd /path/to/3rdparty
      -$ apxs -c mod_foo.c
      -$ apxs -i -a -n foo mod_foo.la -

      -
    8. -
    - -

    ¤ɤξì¹ç¤ˤª¤¤¤Ƥ⡢¶¦ͭ¥⥸¥塼¥ë¤򥳥ó¥ѥ¤¥뤷¤¿¸å¤ǡ¢ - httpd.conf ¤Ç - LoadModule - ¥ǥ£¥쥯¥ƥ£¥֤ò»ȤäÆ Apache ¤¬¥⥸¥塼¥ë¤ò»ÈÍѤ¹¤ë¤褦¤Ë - ¤·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    top
    -
    -

    ÇطÊ

    - -

    ºǶá¤Î Unix ·ϤÎ OS ¤ˤÏ ưŪ¶¦ͭ¥ª¥֥¸¥§¥¯¥È (DSO) - ¤ÎưŪ¥ê¥ó¥¯/¥í¡¼¥ɤȤ¤¤¦µ¤¤Τ­¤¤¤¿µ¡¹½¤¬ - ¸ºߤ·¤ޤ¹¡£¤³¤ì¤ϡ¢¼¹Իþ¤˥ץí¥°¥é¥à¤Υ¢¥ɥ쥹¶õ´֤Ë - ¥í¡¼¥ɤǤ­¤ë¤褦¤ÊÆÃÊ̤ʷÁ¼°¤ǥץí¥°¥é¥à¤ò¥ӥë¥ɤ¹¤뤳¤Ȥò - ²Äǽ¤ˤ·¤ޤ¹¡£

    - -

    ¤³¤Υí¡¼¥ɤÏÆó¤ĤÎÊýˡ¤ǹԤʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹: ¼¹ԥץí¥°¥é¥ब - µ¯ư¤µ¤줿¤Ȥ­¤Ë ld.so ¤Ȥ¤¤¦¥·¥¹¥ƥà¥ץí¥°¥é¥à - ¤ˤè¤꼫ưŪ¤˹Ԥʤï¤ì¤ëÊýˡ¤ȡ¢¼¹ԥץí¥°¥é¥àÃ椫¤顢¥·¥¹¥ƥॳ¡¼¥ë - dlopen()/dlsym() ¤ˤè¤ë Unix ¥í¡¼¥À¤ؤÎ - ¥ץí¥°¥é¥ॷ¥¹¥ƥà¤Υ¤¥󥿥ե§¡¼¥¹¤ò»ȤäƼêư¤ǹԤʤ¦Êýˡ¤Ȥ¬ - ¤¢¤ê¤ޤ¹¡£

    - -

    ºǽé¤ÎÊýˡ¤ǤÏ DSO ¤ÏÉáÄ̤϶¦ͭ¥饤¥֥é¥ê¤ä DSO - ¥饤¥֥é¥ê ¤ȸƤФì¤Ƥ¤¤ơ¢DSO ¤Î̾Á°¤Ï - libfoo.so ¤ä libfoo.so.1.2 ¤Τ褦¤ˤʤäƤ¤¤ޤ¹¡£ - ¤³¤ì¤é¤ϥ·¥¹¥ƥà¥ǥ£¥쥯¥ȥê (Ä̾ï /usr/lib) ¤Ë¸ºߤ·¡¢ - ¼¹ԥץí¥°¥é¥à¤ؤΥê¥󥯤ϥӥë¥ɻþ¤Ë -lfoo ¤ò¥ê¥󥫤Ë - »ØÄꤹ¤뤳¤ȤdzÎΩ¤µ¤ì¤ޤ¹¡£¤³¤ì¤ˤè¤ê¥饤¥֥é¥ê¤ؤλ²¾Ȥ¬¼¹ԥץí¥°¥é¥à¤Î - ¥ե¡¥¤¥ë¤˽񤭹þ¤ޤì¤ơ¢µ¯ư»þ¤Ë Unix ¤Υí¡¼¥À¤¬ /usr/lib ¤䡢 - ¥ê¥󥫤Î -R ¤Τ褦¤ʥª¥ץ·¥ç¥ó¤ˤè¤ê¥ϡ¼¥ɥ³¡¼¥ɤµ¤줿¥ѥ¹¡¢ - ´Ķ­Êѿô LD_LIBRARY_PATH ¤ˤè¤êÀßÄꤵ¤줿¥ѥ¹¡¢¤ÎÃ椫¤é - libfoo.so ¤ξì½ê¤򸫤Ĥ±¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤½¤줫¤顢 - ¼¹ԥץí¥°¥é¥àÃæ¤Î (¤ޤÀ̤²ò·è¤Î) ¥·¥ó¥ܥë¤ò DSO ¤ˤ¢¤륷¥ó¥ܥë¤Ç - ²ò·褷¤ޤ¹¡£

    - -

    ÉáÄ̤ϼ¹ԥץí¥°¥é¥àÃæ¤Υ·¥ó¥ܥë¤Ï DSO ¤«¤é¤ϻ²¾Ȥµ¤ì¤ޤ»¤ó - (DSO ¤ϰìÈÌŪ¤ʥ³¡¼¥ɤˤè¤ëºÆÍøÍѲÄǽ¤ʥ饤¥֥é¥ê¤Ǥ¹¤ΤÇ)¡£ - ¤Ǥ¹¤«¤顢¤µ¤é¤ʤ륷¥ó¥ܥë¤βò·è¤ÏɬÍפ¢¤ê¤ޤ»¤ó¡£ - ¥·¥ó¥ܥë¤Ï Unix ¥í¡¼¥À¤ˤè¤괰Á´¤ʲò·褬¹Ԥʤï¤ì¤ޤ¹¤Τǡ¢¼¹ԥե¡¥¤¥뼫¿ȤÏ - ²¿¤⤹¤ëɬÍפ¬¤¢¤ê¤ޤ»¤ó¡£(¼ºݤΤȤ³¤í¡¢ÀÅŪ¤Ǥʤ¤Êýˡ¤ǥê¥󥯤µ¤ì¤Ƥ¤¤ë - ¤¹¤٤Ƥμ¹ԥץí¥°¥é¥à¤ËÁȤ߹þ¤ޤì¤Ƥ¤¤볫»ÏÍѤΥ³¡¼¥ɤΰìÉô¤Ë - ld.so ¤òµ¯ư¤¹¤륳¡¼¥ɤ¬´ޤޤì¤Ƥ¤¤ޤ¹)¡£¤褯»Ȥï¤ì¤ë - ¥饤¥֥é¥ê¤ÎưŪ¥í¡¼¥ɤÎÍøÅÀ¤ÏÌÀ¤餫¤Ǥ¹¡£¥饤¥֥é¥ê¤Υ³¡¼¥ɤÏ - ¥·¥¹¥ƥà¥饤¥֥é¥ê¤Ë libc.so ¤Τ褦¤ˤ·¤ưìÅÙÊݸ¤¹¤ë¤À¤±¤Ǥ褯¡¢ - ¥ץí¥°¥é¥à¤Τ¿¤á¤ËɬÍפʥǥ£¥¹¥¯¤ÎÎΰè¤òÀáÌ󤹤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Æó¤Ĥá¤ÎÊýˡ¤ǤÏ DSO ¤ÏÉáÄ̤϶¦ͭ¥ª¥֥¸¥§¥¯¥È¤ä - DSO ¥ե¡¥¤¥ë¤ȸƤФì¤Ƥ¤¤ơ¢Ǥ°դγÈĥ»ҤòÉդ±¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹ - (¤¿¤À¤·¡¢ɸ½àŪ¤Ê̾Á°¤Ï foo.so ¤Ǥ¹)¡£ - ¤³¤ì¤é¤Υե¡¥¤¥ë¤ÏÄ̾ï¤ϥץí¥°¥é¥àÀìÍѤΥǥ£¥쥯¥ȥê¤ËÃ֤«¤졢 - ¤³¤ì¤é¤ò»Ȥ¦¼¹ԥץí¥°¥é¥à¤ؤΥê¥󥯤ϼ«ưŪ¤ˤϤµ¤ì¤ޤ»¤ó¡£ - ¤Ǥ¹¤Τǡ¢¼¹ԥץí¥°¥é¥à¤Ï dlopen() ¤ò»ȤäÆ - ¼¹Իþ¤˼êư¤Ç DSO ¤ò¥ץí¥°¥é¥à¤Υ¢¥ɥ쥹¶õ´֤˥í¡¼¥ɤ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤λþÅÀ¤Ǥϼ¹ԥץí¥°¥é¥à¤ËÂФ·¤Æ DSO ¤Υ·¥ó¥ܥë¤βò·è¤ϹԤʤï¤ì¤ޤ»¤ó¡£ - ¤·¤«¤·¡¢¤½¤ÎÂå¤ï¤ê¤Ë Unix ¤Υí¡¼¥À¤¬ DSO ¤Î (¤ޤÀ̤²ò·è¤Î) ¥·¥ó¥ܥë¤ò - ¼¹ԥץí¥°¥é¥à¤ˤè¤ꥨ¥¯¥¹¥ݡ¼¥Ȥµ¤줿¥·¥ó¥ܥë¤ȴû¤˥í¡¼¥ɤµ¤줿 - DSO ¥饤¥֥é¥ê¤ˤè¤ꥨ¥¯¥¹¥ݡ¼¥Ȥµ¤줿¥·¥ó¥ܥë (Æäˡ¢¤ɤ³¤ˤǤ⤢¤ë - libc.so ¤Τ¹¤٤ƤΥ·¥ó¥ܥë) ¤Ǽ«ưŪ¤˲ò·褷¤ޤ¹¡£ - ¤³¤¦¤¹¤뤳¤Ȥǡ¢DSO ¤Ϻǽ餫¤éÀÅŪ¤˥ê¥󥯤µ¤ì¤Ƥ¤¤¿¤«¤Τ褦¤ˡ¢ - ¼¹ԥץí¥°¥é¥à¤Υ·¥ó¥ܥë¤òÃΤ뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ºǸå¤ˡ¢DSO ¤Î API ¤òÍøÅÀ¤òÀ¸¤«¤¹¤¿¤á¤ˡ¢¥ץí¥°¥é¥à¤Ï - ¸å¤ǥǥ£¥¹¥ѥåÁ¥ơ¼¥֥ë¤ʤɤǥ·¥ó¥ܥë¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ë¤褦¤ˡ¢ - dlsym() ¤ò»ȤäƤ¤¤¯¤Ĥ«¤Υ·¥ó¥ܥë¤ò²ò·褷¤ޤ¹¡£ - ¤¹¤ʤï¤Á: ¼¹ԥץí¥°¥é¥à¤ÏɬÍפʤ¹¤٤ƤΥ·¥ó¥ܥë¤ò¼êư¤Dzò·褷¤ʤ±¤ì¤Ð - ¤ʤê¤ޤ»¤󡣤³¤ε¡¹½¤ÎÍøÅÀ¤ϥץí¥°¥é¥à¤Υª¥ץ·¥ç¥ʥë¤ÊÉôʬ¤Ï - ɬÍפˤʤë¤ޤǥí¡¼¥ɤ¹¤ëɬÍפ¬¤ʤ¤ (¤À¤«¤é¥á¥â¥ê¤â¾ÃÈ񤷤ʤ¤) - ¤³¤ȤǤ¹¡£ɬÍפʤé¤С¢´ðËܥץí¥°¥é¥à¤ε¡ǽ¤ò³Èĥ¤¹¤뤿¤á¤Ë - ¤³¤ì¤é¤ÎÉôʬ¤òưŪ¤˥í¡¼¥ɤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤³¤Î DSO µ¡¹½¤ϴÊñ¤ʤ褦¤˸«¤¨¤ޤ¹¤¬¡¢¾¯¤ʤ¯¤Ȥâ°ì¤ÄÆ񤷤¤ÅÀ¤¬ - ¤¢¤ê¤ޤ¹: ¥ץí¥°¥é¥à¤ò³Èĥ¤¹¤뤿¤á¤Ë DSO ¤ò»ȤäƤ¤¤ë¤Ȥ­¤ˡ¢ - DSO ¤¬¼¹ԥץí¥°¥é¥फ¤饷¥ó¥ܥë¤ò²ò·褹¤ëÅÀ¤Ǥ¹ (ÆóÈÖÌܤÎÊýˡ)¡£ - ¤³¤ì¤Ϥʤ¼¤Ǥ·¤礦¤«¡£¤½¤ì¤ϡ¢DSO ¤Υ·¥ó¥ܥë¤ò¼¹ԥץí¥°¥é¥à¤Î - ¥·¥ó¥ܥ뤫¤é¡ֵղò·è¡פ¹¤ë¤Ȥ¤¤¦¤Τϥ饤¥֥é¥ê¤ÎÀ߷× - (¥饤¥֥é¥ê¤Ϥ½¤ì¤ò»ÈÍѤ¹¤ë¥ץí¥°¥é¥à¤Τ³¤Ȥϲ¿¤â - ÃΤé¤ʤ¤) ¤Ëȿ¤·¤Ƥ¤¤ơ¢¤³¤ε¡ǽ¤Ϥ¹¤٤ƤΥץé¥åȥե©¡¼¥à¤Ë - ¤¢¤ë¤櫓¤ǤϤʤ¯¡¢ɸ½ಽ¤⤵¤ì¤Ƥ¤¤ʤ¤¤«¤é¤Ǥ¹¡£ - ¼ºݤˤϼ¹ԥץí¥°¥é¥à¤Υ°¥í¡¼¥Хë¤ʥ·¥ó¥ܥë¤Ϻƥ¨¥¯¥¹¥ݡ¼¥Ȥµ¤ì¤뤳¤ȤÏ - ¤¢¤ޤê¤ʤ¯¡¢DSO ¤«¤é»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ»¤󡣥ê¥󥫤˥°¥í¡¼¥Х륷¥ó¥ܥ뤹¤٤Ƥò - ¥¨¥¯¥¹¥ݡ¼¥Ȥ¹¤ë¤褦¤ˤµ¤»¤ëÊýˡ¤򸫤Ĥ±¤뤳¤Ȥ¬¡¢¼¹Իþ¤˥ץí¥°¥é¥à¤ò - ³Èĥ¤¹¤뤿¤á¤Ë DSO ¤ò»Ȥ¦¤Ȥ­¤ΰìÈ֤ÎÌäÂê¤Ǥ¹¡£

    - -

    ¶¦ͭ¥饤¥֥é¥ê¤Υ¢¥ץí¡¼¥Á¤¬ÉáÄ̤ÎÊýˡ¤Ǥ¹¡£DSO µ¡¹½¤Ϥ½¤Τ¿¤á¤Ë - À߷פµ¤줿¤â¤ΤǤ¹¤«¤顣¤·¤¿¤¬¤äơ¢¤½¤ÎÊýˡ¤ϥª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥब - Ä󶡤¹¤ë¤ۤȤó¤ɤ¹¤٤ƤμïÎà¤Υ饤¥֥é¥ê¤ǻȤï¤ì¤Ƥ¤¤ޤ¹¡£ - °ìÊý¡¢¥ץí¥°¥é¥à¤γÈĥ¤Τ¿¤á¤˶¦ͭ¥ª¥֥¸¥§¥¯¥Ȥò»ÈÍѤ¹¤롢¤Ȥ¤¤¦Êý¤Ï - ¤¢¤ޤê»Ȥï¤ì¤Ƥ¤¤ޤ»¤ó¡£

    - -

    1998 ǯ¤λþÅÀ¤ǡ¢¼¹Իþ¤˼ºݤ˵¡ǽ³Èĥ¤Τ¿¤á¤Ë DSO µ¡¹½¤ò»ȤäƤ¤¤ë - ¥½¥եȥ¦¥§¥¢¥ѥ屡¼¥¸¤Ͼ¯¤·¤À¤±¤Ǥ·¤¿: Perl 5 (XS µ¡¹½¤È DnaLoader ¥⥸¥塼¥ë - ¤ˤè¤ë¤â¤Î)¡¢Netscape ¥µ¡¼¥Ð¤ʤɤǤ¹¡£Apache ¤Ϥ¹¤ǤË - ¥⥸¥塼¥ë¤γµǰ¤ò»ȤäƵ¡ǽ³Èĥ¤򤷤Ƥ¤¤ơ¢ÆâÉôŪ¤˥ǥ£¥¹¥ѥåÁ¥ꥹ¥ȤË - ´ð¤Ť¤¤¿³°Éô¥⥸¥塼¥ë¤Î Apache ¥³¥¢µ¡ǽ¤ؤΥê¥󥯤ò¹ԤʤäƤ¤¤ޤ·¤¿¤Τǡ¢ - ¥С¼¥¸¥ç¥ó 1.3 ¤«¤顢Apache ¤â DSO µ¡¹½¤ò»Ȥ¦Ãç´֤ˤʤê¤ޤ·¤¿¡£ - Apache ¤ϼ¹Իþ¤Ë DSO ¤ò»Ȥäƥ⥸¥塼¥ë¤ò¥í¡¼¥ɤ¹¤ë¤褦¤ˤ¹¤ǤË - ±¿̿Éդ±¤é¤ì¤Ƥ¤¤¿¤ΤǤ¹¡£

    -
    top
    -
    -

    ÍøÅÀ¤ȷçÅÀ

    - -

    ¾嵭¤Î DSO ¤˴ð¤Ť¤¤¿µ¡ǽ¤ϰʲ¼¤ÎÍøÅÀ¤¬¤¢¤ê¤ޤ¹:

    - -
      -
    • ¼ºݤΥµ¡¼¥Хץí¥»¥¹¤òÁȤßΩ¤Ƥ뤿¤á¤ˡ¢ - ¥ӥë¥ɻþ¤Ë configure ¤Υª¥ץ·¥ç¥ó¤ò»Ȥ¦Âå¤ï¤ê¤Ë - ¼¹Իþ¤Ë httpd.conf ¤ÎÀßÄêÍѥ³¥ޥó¥É - LoadModule - ¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¤Τǡ¢¥µ¡¼¥Хѥ屡¼¥¸¤νÀÆðÀ­¤¬¹â¤ޤê¤ޤ·¤¿¡£ - ¤¿¤Ȥ¨¤С¢°ì¤ĤÎ Apache ¤Υ¤¥󥹥ȡ¼¥뤫¤é - °㤦¹½À®¤Υµ¡¼¥Ð (ɸ½àÈǤÈ SSL Èǡ¢ºǾ®¹½À®¤ȳÈĥÈÇ [mod_perl, PHP3] - ¤ʤÉ) ¤ò¼¹Ԥ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£
    • - -
    • ¥¤¥󥹥ȡ¼¥ë¤θå¤Ǥ¢¤äƤ⡢¥µ¡¼¥ФΥѥ屡¼¥¸¤򥵡¼¥ɥѡ¼¥ƥ£ - ¥⥸¥塼¥ë¤ǴÊñ¤˳Èĥ¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£¤³¤ì¤ϡ¢Apache ¥³¥¢ - ¥ѥ屡¼¥¸¤ȡ¢PHP3, mod_perl, mod_fastcgi ¤ʤÉ ¤ÎÄɲäÎ - ¥ѥ屡¼¥¸¤òºîÀ®¤Ǥ­¤ë¤Τǡ¢¾¯¤ʤ¯¤Ȥâ¥٥ó¥À¤Υѥ屡¼¥¸´ÉÍý¼ԤˤȤäÆ - Â礭¤ÊÍøÅÀ¤¬¤¢¤ê¤ޤ¹¡£
    • - -
    • Apache ¥⥸¥塼¥ë¤γ«ȯ¤¬´Êñ¤ˤʤê¤ޤ¹¡£ - ¤³¤ì¤Ï DSO ¤È apxs ¤ÎÁȤ߹ç¤碌¤ˤè¤ꡢApache ¥½¡¼¥¹¥ĥ꡼¤Î - ³°¤Ǻî¶ȤǤ­¡¢³«ȯÃæ¤Υ⥸¥塼¥ë¤ο·¤·¤¤¥С¼¥¸¥ç¥ó¤ò - ¼¹ÔÃæ¤Î Apache ¥µ¡¼¥ФËÁȤ߹þ¤ि¤á¤Ë apxs -i ¤È - apachectl restart ¤ò¹Ԥʤ¦¤À¤±¤ÇÎɤ¯¤ʤ뤫¤é¤Ǥ¹¡£
    • -
    - -

    DSO ¤ˤϰʲ¼¤ηçÅÀ¤¬¤¢¤ê¤ޤ¹:

    - -
      -
    • ¤¹¤٤ƤΥª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥब¥ץí¥°¥é¥à¤Υ¢¥ɥ쥹¶õ´֤Ë - ¥³¡¼¥ɤòưŪ¥í¡¼¥ɤ¹¤뤳¤Ȥ򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ë¤ï¤ǤϤʤ¤¤Τǡ¢ - ¥ץé¥åȥե©¡¼¥à¤ˤè¤äƤÏ DSO µ¡¹½¤ϻȤ¨¤ޤ»¤ó¡£
    • - -
    • Unix ¤Υí¡¼¥À¤¬¥·¥ó¥ܥë¤βò·è¤򤹤ëɬÍפ¬¤Ǥ­¤¿¤Τǡ¢ - ¤½¤Υª¡¼¥Хإåɤˤè¤ꥵ¡¼¥Фε¯ư»þ´֤¬Ìó 20% Ã٤¯¤ʤäƤ¤¤ޤ¹¡£
    • - -
    • °ÌÃÖÈó°Í¸¥³¡¼¥É (PIC) (ÌõÃí position independent code) ¤Ï - ÁêÂХ¢¥ɥ쥹¤Τ¿¤á¤Ëʣ»¨¤ʥ¢¥»¥ó¥֥é¤Υȥê¥å¯¤¬ɬÍפʤ³¤Ȥ¬¤¢¤ꡢ - ¤½¤ì¤Ïɬ¤º¤·¤âÀäÂХ¢¥ɥ쥹¤ÈƱ¤¸¤¯¤餤¤Î®Å٤¬¤Ǥë¤櫓¤ǤϤ¢¤ê¤ޤ»¤ó¤Τǡ¢ - ¥ץé¥åȥե©¡¼¥à¤ˤè¤äƤϥµ¡¼¥Фμ¹Ô®Å٤¬Ìó 5% Ã٤¯¤ʤê¤ޤ¹¡£
    • - -
    • DSO ¥⥸¥塼¥ë¤Ϥ¹¤٤ƤΥץé¥åȥե©¡¼¥à¤Ç¾¤Î DSO ¤˴ð¤Ť¤¤¿ - ¥饤¥֥é¥ê¤ËÂФ·¤ƥê¥󥯤Ǥ­¤ë (ld -lfoo) - ¤Ȥ¤¤¦¤櫓¤ǤϤ¢¤ê¤ޤ»¤ó¤ΤÇ (¤¿¤Ȥ¨¤С¢a.out ¤Υץé¥åȥե©¡¼¥à¤ǤÏ - ¤³¤ε¡ǽ¤Ϥ¢¤ê¤ޤ»¤󤬡¢ELF ¤Υץé¥åȥե©¡¼¥à¤ˤϤ¢¤ê¤ޤ¹)¡¢ - ¤¹¤٤ƤμïÎà¤Υ⥸¥塼¥ë¤Ë DSO µ¡¹½¤ò»Ȥ¨¤ë¤櫓¤ǤϤ¢¤ê¤ޤ»¤ó¡£ - ¸À¤¤´¹¤¨¤ë¤ȡ¢DSO ¥ե¡¥¤¥ë¤Ȥ·¤ƥ³¥ó¥ѥ¤¥뤵¤줿¥⥸¥塼¥ë¤Î - »Ȥ¨¤륷¥ó¥ܥë¤ϡ¢ - Apache ¤Υ³¥¢¤Υ·¥ó¥ܥ롢C ¥饤¥֥é¥ê (libc) ¤È - Apache ¥³¥¢¤¬»ȤäƤ¤¤ë¾¤Τ¹¤٤ƤÎÀÅŪ¤ʥ饤¥֥é¥ê¤ÈưŪ¥饤¥֥é¥ê¤Î - ¥·¥ó¥ܥ롢PIC ¤ˤè¤ëÀÅŪ¤ʥ饤¥֥é¥ê (libfoo.a) ¤Î - ¥·¥ó¥ܥë¤ΤߤËÀ©¸¤µ¤ì¤ޤ¹¡£¤½¤Î¾¤Υ³¡¼¥ɤò»Ȥ¦Êýˡ¤ϡ¢ - Apache ¥³¥¢¼«¿Ȥ¬¤¹¤Ǥˤ½¤Υ³¡¼¥ɤؤλ²¾Ȥ¬¤¢¤ë¤褦¤ˤ¹¤뤫¡¢ - dlopen () ¤ò»Ȥäƥ³¡¼¥ɤò¼«ʬ¼«¿Ȥǥí¡¼¥ɤ¹¤뤫¤Î - ¤ɤÁ¤餫¤·¤«¤¢¤ê¤ޤ»¤ó¡£
    • -
    - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/dso.html.ja.utf8 b/docs/manual/dso.html.ja.utf8 new file mode 100644 index 00000000000..3169d485a51 --- /dev/null +++ b/docs/manual/dso.html.ja.utf8 @@ -0,0 +1,330 @@ + + + + + +動的共有オブジェクト (DSO) サポート - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    動的共有オブジェクト (DSO) サポート

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    Apache HTTP サーバはモジュール化されたプログラムで、 + 管理者がモジュールを選択することでサーバに組み込む機能を選ぶことができます。 + モジュールはサーバがビルドされるときに httpd バイナリに + 静的に組み込むことができます。もしくは、httpd バイナリとは + 別に存在する動的共有オブジェクト (訳注: Dynamic Shared Object) + (DSO) としてコンパイルすることも + できます。DSO モジュールはサーバがビルドされるときにコンパイルしたり、 + Apache 拡張ツール (apxs) を + 使って後でコンパイルして追加したりできます。

    + +

    この文書は DSO モジュールの使い方と、仕組みについて + 説明します。

    +
    + +
    top
    +
    +

    実装

    + + + +

    個々の Apache モジュールをロードするための DSO サポートは + mod_so.c というモジュールの機能に基づいています。 + このモジュール は Apache のコアに静的に組み込まれている必要があります。 + それは core.c 以外では DSO にできない唯一の + モジュールです。事実上、他のすべての Apache のモジュールは、 + インストールの文書で説明されているように、 + configure の + --enable-module=shared オプションでそれぞれを + DSO ビルドにすることにより、DSO モジュールにすることができます。 + mod_foo.so のような DSO にモジュールがコンパイルされれば、 + httpd.conf ファイル中で mod_so の + LoadModule + ディレクティブを使うことでサーバの起動や再起動時にこのモジュールを + ロードするようにできます。

    + +

    Apache モジュール用の (特にサードパーティモジュールの) DSO ファイルの + 作成を簡単にするために、apxs + (APache eXtenSion) という新しいサポートプログラムがあります。 + Apache のソースツリーの外で DSO モジュールをビルドするために + 使うことができます。発想は単純です: Apache のインストール時の + configure、make install のときに Apache の + C ヘッダをインストールし、DSO ビルド用のプラットフォーム依存の + コンパイラとリンカのフラグを apxs プログラムに追加します。 + これにより、ユーザが Apache の配布ソースツリーなしで、さらに + DSO サポートのためのプラットフォーム依存のコンパイラやリンカの + フラグをいじることなく Apache のモジュールのソースをコンパイル + できるようになります。

    +
    top
    +
    +

    使用法の概要

    + +

    Apache 2.2 の DSO 機能の概略を知ることができるための、 + 短く簡潔な概要です:

    + +
      +
    1. + 配布されている Apache モジュール、仮に mod_foo.c + として、それを DSO mod_foo.so にビルド、インストール: + +

      +$ ./configure --prefix=/path/to/install --enable-foo=shared
      +$ make install +

      +
    2. + +
    3. + サードパーティ Apache モジュール、仮に mod_foo.c + として、それを DSO mod_foo.so にビルド、インストール: + +

      +$ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c \
      + + --enable-foo=shared
      +
      +$ make install +

      +
    4. + +
    5. + 共有モジュールの 後々のインストール のために + Apache を設定: + +

      +$ ./configure --enable-so
      +$ make install +

      +
    6. + +
    7. + サードパーティ Apache モジュール、仮に mod_foo.c + として、それを apxs を使って + Apache ソースツリーの外で DSO にビルド、インストール: + +

      +$ cd /path/to/3rdparty
      +$ apxs -c mod_foo.c
      +$ apxs -i -a -n foo mod_foo.la +

      +
    8. +
    + +

    どの場合においても、共有モジュールをコンパイルした後で、 + httpd.conf で + LoadModule + ディレクティブを使って Apache がモジュールを使用するように + しなければなりません。

    +
    top
    +
    +

    背景

    + +

    最近の Unix 系の OS には 動的共有オブジェクト (DSO) + の動的リンク/ロードという気のきいた機構が + 存在します。これは、実行時にプログラムのアドレス空間に + ロードできるような特別な形式でプログラムをビルドすることを + 可能にします。

    + +

    このロードは二つの方法で行なうことができます: 実行プログラムが + 起動されたときに ld.so というシステムプログラム + により自動的に行なわれる方法と、実行プログラム中から、システムコール + dlopen()/dlsym() による Unix ローダへの + プログラムシステムのインタフェースを使って手動で行なう方法とが + あります。

    + +

    最初の方法では DSO は普通は共有ライブラリや DSO + ライブラリ と呼ばれていて、DSO の名前は + libfoo.so や libfoo.so.1.2 のようになっています。 + これらはシステムディレクトリ (通常 /usr/lib) に存在し、 + 実行プログラムへのリンクはビルド時に -lfoo をリンカに + 指定することで確立されます。これによりライブラリへの参照が実行プログラムの + ファイルに書き込まれて、起動時に Unix のローダが /usr/lib や、 + リンカの -R のようなオプションによりハードコードされたパス、 + 環境変数 LD_LIBRARY_PATH により設定されたパス、の中から + libfoo.so の場所を見つけることができます。それから、 + 実行プログラム中の (まだ未解決の) シンボルを DSO にあるシンボルで + 解決します。

    + +

    普通は実行プログラム中のシンボルは DSO からは参照されません + (DSO は一般的なコードによる再利用可能なライブラリですので)。 + ですから、さらなるシンボルの解決は必要ありません。 + シンボルは Unix ローダにより完全な解決が行なわれますので、実行ファイル自身は + 何もする必要がありません。(実際のところ、静的でない方法でリンクされている + すべての実行プログラムに組み込まれている開始用のコードの一部に + ld.so を起動するコードが含まれています)。よく使われる + ライブラリの動的ロードの利点は明らかです。ライブラリのコードは + システムライブラリに libc.so のようにして一度保存するだけでよく、 + プログラムのために必要なディスクの領域を節約することができます。

    + +

    二つめの方法では DSO は普通は共有オブジェクトや + DSO ファイルと呼ばれていて、任意の拡張子を付けることができます + (ただし、標準的な名前は foo.so です)。 + これらのファイルは通常はプログラム専用のディレクトリに置かれ、 + これらを使う実行プログラムへのリンクは自動的にはされません。 + ですので、実行プログラムは dlopen() を使って + 実行時に手動で DSO をプログラムのアドレス空間にロードする必要があります。 + この時点では実行プログラムに対して DSO のシンボルの解決は行なわれません。 + しかし、その代わりに Unix のローダが DSO の (まだ未解決の) シンボルを + 実行プログラムによりエクスポートされたシンボルと既にロードされた + DSO ライブラリによりエクスポートされたシンボル (特に、どこにでもある + libc.so のすべてのシンボル) で自動的に解決します。 + こうすることで、DSO は最初から静的にリンクされていたかのように、 + 実行プログラムのシンボルを知ることができます。

    + +

    最後に、DSO の API を利点を生かすために、プログラムは + 後でディスパッチテーブルなどでシンボルを使うことができるように、 + dlsym() を使っていくつかのシンボルを解決します。 + すなわち: 実行プログラムは必要なすべてのシンボルを手動で解決しなければ + なりません。この機構の利点はプログラムのオプショナルな部分は + 必要になるまでロードする必要がない (だからメモリも消費しない) + ことです。必要ならば、基本プログラムの機能を拡張するために + これらの部分を動的にロードすることができます。

    + +

    この DSO 機構は簡単なように見えますが、少なくとも一つ難しい点が + あります: プログラムを拡張するために DSO を使っているときに、 + DSO が実行プログラムからシンボルを解決する点です (二番目の方法)。 + これはなぜでしょうか。それは、DSO のシンボルを実行プログラムの + シンボルから「逆解決」するというのはライブラリの設計 + (ライブラリはそれを使用するプログラムのことは何も + 知らない) に反していて、この機能はすべてのプラットフォームに + あるわけではなく、標準化もされていないからです。 + 実際には実行プログラムのグローバルなシンボルは再エクスポートされることは + あまりなく、DSO から使うことができません。リンカにグローバルシンボルすべてを + エクスポートするようにさせる方法を見つけることが、実行時にプログラムを + 拡張するために DSO を使うときの一番の問題です。

    + +

    共有ライブラリのアプローチが普通の方法です。DSO 機構はそのために + 設計されたものですから。したがって、その方法はオペレーティングシステムが + 提供するほとんどすべての種類のライブラリで使われています。 + 一方、プログラムの拡張のために共有オブジェクトを使用する、という方は + あまり使われていません。

    + +

    1998 年の時点で、実行時に実際に機能拡張のために DSO 機構を使っている + ソフトウェアパッケージは少しだけでした: Perl 5 (XS 機構と DnaLoader モジュール + によるもの)、Netscape サーバなどです。Apache はすでに + モジュールの概念を使って機能拡張をしていて、内部的にディスパッチリストに + 基づいた外部モジュールの Apache コア機能へのリンクを行なっていましたので、 + バージョン 1.3 から、Apache も DSO 機構を使う仲間になりました。 + Apache は実行時に DSO を使ってモジュールをロードするようにすでに + 運命付けられていたのです。

    +
    top
    +
    +

    利点と欠点

    + +

    上記の DSO に基づいた機能は以下の利点があります:

    + +
      +
    • 実際のサーバプロセスを組み立てるために、 + ビルド時に configure のオプションを使う代わりに + 実行時に httpd.conf の設定用コマンド + LoadModule + を使うことができますので、サーバパッケージの柔軟性が高まりました。 + たとえば、一つの Apache のインストールから + 違う構成のサーバ (標準版と SSL 版、最小構成と拡張版 [mod_perl, PHP3] + など) を実行することができます。
    • + +
    • インストールの後であっても、サーバのパッケージをサードパーティ + モジュールで簡単に拡張できるようになりました。これは、Apache コア + パッケージと、PHP3, mod_perl, mod_fastcgi など の追加の + パッケージを作成できるので、少なくともベンダのパッケージ管理者にとって + 大きな利点があります。
    • + +
    • Apache モジュールの開発が簡単になります。 + これは DSO と apxs の組み合わせにより、Apache ソースツリーの + 外で作業でき、開発中のモジュールの新しいバージョンを + 実行中の Apache サーバに組み込むために apxs -i と + apachectl restart を行なうだけで良くなるからです。
    • +
    + +

    DSO には以下の欠点があります:

    + +
      +
    • すべてのオペレーティングシステムがプログラムのアドレス空間に + コードを動的ロードすることをサポートしているわではないので、 + プラットフォームによっては DSO 機構は使えません。
    • + +
    • Unix のローダがシンボルの解決をする必要ができたので、 + そのオーバヘッドによりサーバの起動時間が約 20% 遅くなっています。
    • + +
    • 位置非依存コード (PIC) (訳注 position independent code) は + 相対アドレスのために複雑なアセンブラのトリックが必要なことがあり、 + それは必ずしも絶対アドレスと同じくらいの速度がでるわけではありませんので、 + プラットフォームによってはサーバの実行速度が約 5% 遅くなります。
    • + +
    • DSO モジュールはすべてのプラットフォームで他の DSO に基づいた + ライブラリに対してリンクできる (ld -lfoo) + というわけではありませんので (たとえば、a.out のプラットフォームでは + この機能はありませんが、ELF のプラットフォームにはあります)、 + すべての種類のモジュールに DSO 機構を使えるわけではありません。 + 言い換えると、DSO ファイルとしてコンパイルされたモジュールの + 使えるシンボルは、 + Apache のコアのシンボル、C ライブラリ (libc) と + Apache コアが使っている他のすべての静的なライブラリと動的ライブラリの + シンボル、PIC による静的なライブラリ (libfoo.a) の + シンボルのみに制限されます。その他のコードを使う方法は、 + Apache コア自身がすでにそのコードへの参照があるようにするか、 + dlopen () を使ってコードを自分自身でロードするかの + どちらかしかありません。
    • +
    + +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/dso.html.ko.euc-kr b/docs/manual/dso.html.ko.euc-kr index 4aee09d50d6..abdc05a18f2 100644 --- a/docs/manual/dso.html.ko.euc-kr +++ b/docs/manual/dso.html.ko.euc-kr @@ -1,26 +1,34 @@ - -µ¿Àû°øÀ¯°´ü (DSO) Áö¿ø - Apache HTTP Server +µ¿Àû°øÀ¯°´ü (DSO) Áö¿ø - Apache HTTP Server Version 2.2 - - + + + +
    <-

    µ¿Àû°øÀ¯°´ü (DSO) Áö¿ø

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    µ¿Àû°øÀ¯°´ü (DSO) Áö¿ø

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -40,7 +48,7 @@
  • »ç¿ë¹ý ¿ä¾à
  • ¹è°æÁö½Ä
  • Àå´ÜÁ¡
  • -
    +
    top

    ±¸Çö

    @@ -77,7 +85,7 @@

    »ç¿ë¹ý ¿ä¾à

    -

    Apache 2.0ÀÇ DSO ±â´ɿ¡ ´ëÇÑ ª°í °£·«ÇÑ ¿ä¾àÀ̴Ù:

    +

    Apache 2.2ÀÇ DSO ±â´ɿ¡ ´ëÇÑ ª°í °£·«ÇÑ ¿ä¾àÀ̴Ù:

    1. @@ -269,8 +277,30 @@ $ apxs -i -a -n foo mod_foo.la

      °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

      -
      + ko  | + tr 

      +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/dso.html.tr.utf8 b/docs/manual/dso.html.tr.utf8 new file mode 100644 index 00000000000..77937e427f1 --- /dev/null +++ b/docs/manual/dso.html.tr.utf8 @@ -0,0 +1,336 @@ + + + + + +Devingen Paylaşımlı Nesne Desteği - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Devingen Paylaşımlı Nesne Desteği

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + +

    Apache HTTP Sunucusu modüler bir program olup, yönetici sadece bir + grup modül seçerek sunucuya işlevsellik ekleyebilir. Modüller sunucunun + derlenmesi sırasında doğrudan httpd programının + içinde derlenebileceği gibi Devingen Paylaşımlı Nesneler (DSO - Dynamic + Shared Object) halinde httpd programından ayrı + olarak da derlenebilir. DSO modülleri sunucunun derlenmesi sırasında + derlenebileceği gibi ayrı olarak derlenip daha sonra Apache Eklenti + Aracı (Apache Extension Tool) apxs programı + kullanılarak sunucuya eklenebilir.

    + +

    Bu belgede DSO modüllerinin kullanımının yanında teorisine de + değinilecektir.

    +
    + +
    top
    +
    +

    Gerçeklenim

    + + + +

    Apache modüllerini yüklemek için DSO desteği, Apache çekirdeğine + durağan olarak ilintilenerek derlenmiş olan mod_so + adında bir modül tarafından sağlanır. core modülünden + başka, bir DSO modülü olamayan tek modül mod_so + modülüdür. Hemen hemen tüm diğer Apache modülleri kurulum belgesinde de açıklandığı gibi + configure betiğinin + --enable-modül=shared seçeneği her modül için ayrı + ayrı belirtilerek birer DSO modülü olarak derlenebilir. Derlenmiş + modüller mod_filanca.so biçeminde birer DSO ismi alırlar ve + her biri istenirse httpd.conf dosyasında + mod_so modülünün LoadModule yönergesiyle belirtilerek sunucu başlatılırken + veya yeniden başlatılırken sunucuya yüklenebilir.

    + +

    Apache modülleri için (özellikle üçüncü parti modüller için) DSO + dosyası üretimini kolaylaştırmak amacıyla apxs + (APache eXtenSion) adında yeni bir destek programı + kullanılmaktadır. Bu program Apache modüllerini Apache kaynak ağacından + ayrı olarak derlemek için kullanılabilir. Fikir basittir: Apache + derlenirken DSO dosyalarını derlemek için platforma bağımlı + derleyici ve ilintileyici seçenekleri apxs + programının içine konur ve Apache’nin make install ile + kurulumu sırasında Apache C başlık dosyaları da kurulur. Böylece + kullanıcı Apache dağıtımının kaynak ağacına ihtiyaç duymadan ve + platforma bağımlı derleyici ve ilintileyici seçeneklerini bilmek zorunda + kalmadan istediği Apache modülünü apxs programını + kullanarak derleyebilir.

    +
    top
    +
    +

    Kullanıcı Özeti

    + +

    Apache 2.x’in DSO özelliklerine bir giriş olarak burada kısaca bir + bilgi vermekle yetinilecektir:

    + +
      +
    1. Kaynak dosyası mod_filanca.c dosyasında dağıtılan bir + özgün Apache modülünü mod_filanca.so isminde bir + DSO modülü olarak derlemek ve kurmak için şöyle yapılır: + +

      + $ ./configure --prefix=/kurulum/yeri --enable-filanca=shared
      + $ make install +

      +
    2. + +
    3. Kaynak dosyası mod_filanca.c dosyasında dağıtılan bir + üçüncü parti Apache modülünü mod_filanca.so + isminde bir DSO modülü olarak derlemek ve kurmak için şöyle yapılır: + +

      +$ ./configure --add-module=modül-türü:/bir/kurulum/yeri/mod_filanca.c \
      + + --enable-filanca=shared
      +
      +$ make install +

      +
    4. + +
    5. Paylaşımlı modülleri sonradan kurmak için Apache şöyle + yapılandırılır: + +

      +$ ./configure --enable-so
      +$ make install +

      +
    6. + +
    7. Kaynak dosyası mod_filanca.c dosyasında dağıtılan bir + üçüncü parti Apache modülü mod_filanca.so + isminde bir DSO modülü olarak Apache kaynak ağacının dışında + apxs kullanarak derlemek ve kurmak için şöyle + yapılır: + +

      +$ cd /bir/kurulum/yeri
      +$ apxs -c mod_filanca.c
      +$ apxs -i -a -n filanca mod_filanca.la +

      +
    8. +
    + +

    Tüm durumlarda derlenen paylaşımlı modülü Apache’nin etkin kılabilmesi + için httpd.conf dosyasında o modül için bir LoadModule yönergesi bulunmalıdır.

    +
    top
    +
    +

    Artalan Bilgisi

    + +

    Günümüzün Unix türevlerinde var olan şık bir mekanizma sayesinde + çalıştırılabilir bir programın adres uzayına çalışma anında yüklenmek + veya ilintilenmek üzere Devingen Paylaşımlı Nesneler (DSO - + Dynamic Shared Object) adı verilen, özel bir biçem kullanarak kodlanmış + program parçaları oluşturulabilir.

    + +

    Bu yükleme normalde iki yolla yapılabilir: Ya çalıştırılabilir + programın başlatılması sırasında yüklenen ld.so adlı bir + sistem programınının devingen olarak yüklenmesi ile ya da + çalıştırılabilir programın içinden Unix yükleyicisine programsal sistem + arayüzü sağlayan dlopen()/dlsym() sistem çağrılarının elle + yapılması suretiyle.

    + +

    İlk yöntemde kullanılan DSO’lara genelde paylaşımlı + kütüphaneler veya DSO kütüphaneleri adı verilir ve + bunların dosyaları libfilanca.so veya + libfilanca.so.1.2 biçiminde isimlendirilir. Belli bir + sistem dizininde (normalde /usr/lib) bulunurlar ve derleme + sırasında ilintileyici komutuna -lfilanca şeklinde + belirtilerek çalıştırılabilir programla ilintilenirler. Doğrudan + çalıştırılabilir koda eklenen bu kodlar Unix yükleyicisinin programın + başlatılması sırasında kütüphaneyi /usr/lib altında + libfilanca.so adıyla bulabilmesini sağlar. Kütüphanelerin + aranacağı yerler ya -R gibi bir ilintileyici seçeneği ile + koda eklenir ya da arama yolları LD_LIBRARY_PATH ortam + değişkeni aracılığıyla yapılandırılır. Böylece çalıştırılabilir + programda henüz çözümlenmemiş simgeler DSO içinde bulunarak + çözümlenebilir.

    + +

    Çalıştırılabilir program içindeki simgelere normalde DSO içinden + atıfta bulunulmaz (genel kod kütüphanesinin başka programlarca da + kullanılması nedeniyle). Bu bakımdan DSO tarafında böyle bir çözümleme + yapılmaz. Çalıştırılabilir program da DSO’daki simgeleri kendisi + çözümlemeye uğraşmaz, bu işlemlerden tamamen Unix yükleyicisi + (ld.so) sorumludur. (Aslında, ld.so’yu + çağıracak kod, her çalıştırılabilir programın içine ilintilenmiş + (durağan değil) başlatma kodunun bir parçasıdır.) Programlar tarafından + ortaklaşa kullanılan kütüphanelerin devingen olarak yüklenmesinin sebebi + basittir: Kütüphane kodu libc.so gibi bir sistem + kütüphanesine bir kere kaydedilip disk alanından yer kazanılmış + olur.

    + +

    İkinci yöntemde kullanılan DSO’lara yine paylaşımlı + kütüphaneler veya DSO kütüphaneleri adı verilir fakat + bunların dosyaları geçerli kabule göre filanca.so gibi + isimlendirilse de genelde keyfi olarak seçilen bir dosya uzantısı + kullanılarak isimlendirilirler. Bu dosyalar genellikle programa özel bir + dizinde dururlar ve bu dosyaları kullanacak olan çalıştırılabilir + programla aralarında özdevimli olarak bağ kurulmamıştır. Bunun yerine, + çalıştırılabilir program DSO’yu çalışma anında dlopen() + sayesinde kendi adres uzayına ekler. Çalıştırılabilir program için + DSO’daki simgeler bu sırada çözümlenmez. Özdevimli olarak devreye + giren Unix yükleyicisi, (varsa) artakalan simgeleri, çalıştırılabilir + ihraç edilen simge kümelerini (ve özellikle her yerde hazır ve nazır + libc.so içindeki tüm simgeleri) kullanarak çözümler. Bu + yolla DSO, çalıştırılabilir programın simge kümesi bilgilerini sanki + kendisine baştan durağan olarak ilintilenmiş gibi ulaşabilir.

    + +

    Son olarak, DSO’nun programlama arayüzünün getirilerinden yararlanmak + amacıyla çalıştırılabilir program, daha sonra dağıtım tabloları vb. + yerlerde kullanmak üzere dlsym() üzerinden DSO’daki belli + simgeleri çözümlemek zorundadır. Başka bir deyişle: Çalıştırılabilir + program ihtiyaç duyduğu her simgeyi kullanmak için kendisi çözümleme + yapmak zorundadır. Böyle bir mekanizmanın getirisi, programın isteğe + bağlı parçalarının gerekli olana kadar yüklenmemesidir (böylece daha az + bellek alanı kullanılır). Gerektiği zaman programın işlevselliğini + arttırmak amacıyla bu parçalar devingen olarak programa + yüklenebilir.

    + +

    DSO mekanizmasının bu basit gibi görünen işleyişinde zorluk içeren bir + adım şudur (başkaları da olabilir): Bir programın işlevselliğini + genişletmek için DSO kullanılırken (ikinci yöntem) çalıştırılabilir + programdan DSO için simgelerin çözümlenmesi. Zorluğun sebebi, + "tersine çözümleme" yapılmasıdır; çalıştırılabilir programın simge + kümesindeki DSO simgeleri kütüphane tasarımına aykırı bir şekilde + çözümlenir ve bu uygulama tüm platformlarda hazır olarak + desteklenmediği gibi standartlaşmış da değildir. Geçer uygulamada + çalıştırılabilir programın evrensel simgeleri çoğunlukla yeniden dışa + verilmez ve bu bakımdan bir DSO içinde kullanılmaları uygun değildir. + Esas sorun, çalıştırılabilir bir programın işlevselliğini çalışma + anında genişletmek için DSO kullanımı sırasında ilintileyicinin tüm + evrensel simgeleri dışa vermesini zorlamanın bir yolunu bulmaktır.

    + +

    Paylaşımlı kütüphane yaklaşımı bu bakımdan türünün tek örneğidir, + çünkü DSO mekanizması özellikle bunun için tasarlanmıştır, dolayısıyla + işletim sisteminin sağladığı hemen hemen tüm kütüphaneler için + kullanılabilir. Diğer taraftan, bir programın işlevselliğini + genişletmek için paylaşımlı nesne kullanımı çoğu program tarafından + kullanılan bir şey değildir.

    + +

    1998 itibariyle, DSO nesneleriyle çalışma anında çalıştırılabilir + program işlevselliğini genişleten başlıca birkaç yazılım paketi vardır: + Perl 5 (XS mekanizması ve DynaLoader modülü üzerinden), Netscape + Sunucusu, vd. 1.3 sürümünden itibaren Apache de bu gruba katıldı. Çünkü + Apache, modül kavramını zaten program işlevselliğini genişletmek için + kullanıyordu ve temel işlevselliğine dış modülleri ilintilemek için + dahili olarak dağıtım listesine dayalı bir yaklaşım kullanmaktaydı. + Dolayısıyla Apache, modüllerini çalışma anında yüklemek için DSO + kullanmaya baştan yazgılıydı.

    +
    top
    +
    +

    Getiriler ve Götürüler

    + +

    Yukarıda bahsedilen DSO’ya dayalı özelliklerin getirileri + şunlardır:

    + +
      +
    • Sunucu paketi çalışma anında daha esnektir çünkü, asıl sunucuyu + oluşturan parçalar derleme sırasında configure + seçenekleriyle birleştirilmek yerine httpd.conf içinde + LoadModule yönergeleri + sayesinde çalışma anında birleştirilebilmektedir. Bu yolla, örneğin + tek bir Apache kurulumuyla birbirinden farklı yapılandırmalara sahip + çok sayıda sunucu çalıştırmak mümkündür. (standart veya SSL sürümü; + basitleştirilmiş veya güçlendirilmiş sürümü [mod_perl, PHP3], + vs.)
    • + +
    • Sunucu paketi kurulumdan sonra bile üçüncü parti modüllerle kolayca + genişletilebilir. Bu özellikle, bir Apache temel paketinin yanında + PHP3, mod_perl, mod_fastcgi gibi ek paketler oluşturan paket + dağıtıcılarına büyük yarar sağlar.
    • + +
    • Yeni Apache modülleri için daha kolay prototip geliştirilebilir: + Modül kaynak kodunu DSO/apxs çifti sayesinde + Apache kaynak ağacının dışında derleyip modülün yeni bir sürümünü bir + apxs -i komutunun ardından apachectl + restart yaparak çalışan bir Apache sunucusunda denemek daha + kolay hale getirilmiştir.
    • +
    + +

    DSO kullanımının götürüleri ise şunlardır:

    + +
      +
    • Her platformda hazır olarak desteklenmeme: Tüm işletim sistemleri + bir programa devingen olarak kod yükleme becerisine sahip + olmadığından DSO mekanizması her platformda kullanılamaz.
    • + +
    • İlk yüklemede %20 yavaşlama: Unix yükleyicisi simgeleri çözümlemek + zorunda olduğundan sunucu ilk başlatılırken yaklaşık %20 daha yavaş + faaliyete geçer.
    • + +
    • Çalışma sırasında % 5 yavaşlama: Konumdan bağımsız kodun (PIC - + Position Independent Code) göreli adresleme için karmaşık oyunlara + girmesi ve bunun mutlak adresleme kadar hızlı olmaması nedeniyle + sunucu bazı platformlarda çalışma anında yaklaşık %5 daha yavaş + çalışabilir.
    • + +
    • DSO'nun tüm modüller için uygun olmaması: DSO modülleri bazı + platformlarda diğer DSO temelli kütüphanelerle ilintilenemediğinden + (ld -lfilanca) DSO mekanizmasını tüm modül türleri için + kullanamazsınız (örneğin a.out temelli platformlar bu işlevselliği + ELF temelli platformlar kadar iyi sağlamaz). Başka bir deyişle, DSO + dosyaları olarak derlenmiş modüllerin kullanabileceği simgeler ya + Apache temel kodunda vardır ya Apache temel kodunun kullandığı C + kütüphanesinde (libc) ve diğer durağan ve devingen + kütüphanelerde vardır ya da konumdan bağımsız kodu içeren + durağan kütüphane arşivlerinde (libfilanca.a) + vardır. Diğer modülleri kullanmak için tek şansınız ya Apache + çekirdeğinin modüle bir atıf içermesini sağlamak ya da modül kodunu + dlopen() vasıtasıyla yüklemektir.
    • +
    + +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/dso.xml b/docs/manual/dso.xml index f9860a634e5..7c446087eb6 100644 --- a/docs/manual/dso.xml +++ b/docs/manual/dso.xml @@ -4,12 +4,12 @@ + + - + dso / . en - ja + ja ko + tr diff --git a/docs/manual/dso.xml.tr b/docs/manual/dso.xml.tr new file mode 100644 index 00000000000..26c06bd3d26 --- /dev/null +++ b/docs/manual/dso.xml.tr @@ -0,0 +1,311 @@ + + + + + + + + + + + Devingen Paylaşımlı Nesne Desteği + + +

    Apache HTTP Sunucusu modüler bir program olup, yönetici sadece bir + grup modül seçerek sunucuya işlevsellik ekleyebilir. Modüller sunucunun + derlenmesi sırasında doğrudan httpd programının + içinde derlenebileceği gibi Devingen Paylaşımlı Nesneler (DSO - Dynamic + Shared Object) halinde httpd programından ayrı + olarak da derlenebilir. DSO modülleri sunucunun derlenmesi sırasında + derlenebileceği gibi ayrı olarak derlenip daha sonra Apache Eklenti + Aracı (Apache Extension Tool) apxs programı + kullanılarak sunucuya eklenebilir.

    + +

    Bu belgede DSO modüllerinin kullanımının yanında teorisine de + değinilecektir.

    +
    + + +
    Gerçeklenim + + + + mod_so + + + LoadModule + + + +

    Apache modüllerini yüklemek için DSO desteği, Apache çekirdeğine + durağan olarak ilintilenerek derlenmiş olan mod_so + adında bir modül tarafından sağlanır. core modülünden + başka, bir DSO modülü olamayan tek modül mod_so + modülüdür. Hemen hemen tüm diğer Apache modülleri kurulum belgesinde de açıklandığı gibi + configure betiğinin + --enable-modül=shared seçeneği her modül için ayrı + ayrı belirtilerek birer DSO modülü olarak derlenebilir. Derlenmiş + modüller mod_filanca.so biçeminde birer DSO ismi alırlar ve + her biri istenirse httpd.conf dosyasında + mod_so modülünün LoadModule yönergesiyle belirtilerek sunucu başlatılırken + veya yeniden başlatılırken sunucuya yüklenebilir.

    + +

    Apache modülleri için (özellikle üçüncü parti modüller için) DSO + dosyası üretimini kolaylaştırmak amacıyla apxs + (APache eXtenSion) adında yeni bir destek programı + kullanılmaktadır. Bu program Apache modüllerini Apache kaynak ağacından + ayrı olarak derlemek için kullanılabilir. Fikir basittir: Apache + derlenirken DSO dosyalarını derlemek için platforma bağımlı + derleyici ve ilintileyici seçenekleri apxs + programının içine konur ve Apache’nin make install ile + kurulumu sırasında Apache C başlık dosyaları da kurulur. Böylece + kullanıcı Apache dağıtımının kaynak ağacına ihtiyaç duymadan ve + platforma bağımlı derleyici ve ilintileyici seçeneklerini bilmek zorunda + kalmadan istediği Apache modülünü apxs programını + kullanarak derleyebilir.

    +
    + +
    Kullanıcı Özeti + +

    Apache 2.x’in DSO özelliklerine bir giriş olarak burada kısaca bir + bilgi vermekle yetinilecektir:

    + +
      +
    1. Kaynak dosyası mod_filanca.c dosyasında dağıtılan bir + özgün Apache modülünü mod_filanca.so isminde bir + DSO modülü olarak derlemek ve kurmak için şöyle yapılır: + + + $ ./configure --prefix=/kurulum/yeri --enable-filanca=shared
      + $ make install +
      +
    2. + +
    3. Kaynak dosyası mod_filanca.c dosyasında dağıtılan bir + üçüncü parti Apache modülünü mod_filanca.so + isminde bir DSO modülü olarak derlemek ve kurmak için şöyle yapılır: + + +$ ./configure --add-module=modül-türü:/bir/kurulum/yeri/mod_filanca.c \
      + + --enable-filanca=shared
      +
      +$ make install +
      +
    4. + +
    5. Paylaşımlı modülleri sonradan kurmak için Apache şöyle + yapılandırılır: + + +$ ./configure --enable-so
      +$ make install +
      +
    6. + +
    7. Kaynak dosyası mod_filanca.c dosyasında dağıtılan bir + üçüncü parti Apache modülü mod_filanca.so + isminde bir DSO modülü olarak Apache kaynak ağacının dışında + apxs kullanarak derlemek ve kurmak için şöyle + yapılır: + + +$ cd /bir/kurulum/yeri
      +$ apxs -c mod_filanca.c
      +$ apxs -i -a -n filanca mod_filanca.la +
      +
    8. +
    + +

    Tüm durumlarda derlenen paylaşımlı modülü Apache’nin etkin kılabilmesi + için httpd.conf dosyasında o modül için bir LoadModule yönergesi bulunmalıdır.

    +
    + +
    Artalan Bilgisi + +

    Günümüzün Unix türevlerinde var olan şık bir mekanizma sayesinde + çalıştırılabilir bir programın adres uzayına çalışma anında yüklenmek + veya ilintilenmek üzere Devingen Paylaşımlı Nesneler (DSO - + Dynamic Shared Object) adı verilen, özel bir biçem kullanarak kodlanmış + program parçaları oluşturulabilir.

    + +

    Bu yükleme normalde iki yolla yapılabilir: Ya çalıştırılabilir + programın başlatılması sırasında yüklenen ld.so adlı bir + sistem programınının devingen olarak yüklenmesi ile ya da + çalıştırılabilir programın içinden Unix yükleyicisine programsal sistem + arayüzü sağlayan dlopen()/dlsym() sistem çağrılarının elle + yapılması suretiyle.

    + +

    İlk yöntemde kullanılan DSO’lara genelde paylaşımlı + kütüphaneler veya DSO kütüphaneleri adı verilir ve + bunların dosyaları libfilanca.so veya + libfilanca.so.1.2 biçiminde isimlendirilir. Belli bir + sistem dizininde (normalde /usr/lib) bulunurlar ve derleme + sırasında ilintileyici komutuna -lfilanca şeklinde + belirtilerek çalıştırılabilir programla ilintilenirler. Doğrudan + çalıştırılabilir koda eklenen bu kodlar Unix yükleyicisinin programın + başlatılması sırasında kütüphaneyi /usr/lib altında + libfilanca.so adıyla bulabilmesini sağlar. Kütüphanelerin + aranacağı yerler ya -R gibi bir ilintileyici seçeneği ile + koda eklenir ya da arama yolları LD_LIBRARY_PATH ortam + değişkeni aracılığıyla yapılandırılır. Böylece çalıştırılabilir + programda henüz çözümlenmemiş simgeler DSO içinde bulunarak + çözümlenebilir.

    + +

    Çalıştırılabilir program içindeki simgelere normalde DSO içinden + atıfta bulunulmaz (genel kod kütüphanesinin başka programlarca da + kullanılması nedeniyle). Bu bakımdan DSO tarafında böyle bir çözümleme + yapılmaz. Çalıştırılabilir program da DSO’daki simgeleri kendisi + çözümlemeye uğraşmaz, bu işlemlerden tamamen Unix yükleyicisi + (ld.so) sorumludur. (Aslında, ld.so’yu + çağıracak kod, her çalıştırılabilir programın içine ilintilenmiş + (durağan değil) başlatma kodunun bir parçasıdır.) Programlar tarafından + ortaklaşa kullanılan kütüphanelerin devingen olarak yüklenmesinin sebebi + basittir: Kütüphane kodu libc.so gibi bir sistem + kütüphanesine bir kere kaydedilip disk alanından yer kazanılmış + olur.

    + +

    İkinci yöntemde kullanılan DSO’lara yine paylaşımlı + kütüphaneler veya DSO kütüphaneleri adı verilir fakat + bunların dosyaları geçerli kabule göre filanca.so gibi + isimlendirilse de genelde keyfi olarak seçilen bir dosya uzantısı + kullanılarak isimlendirilirler. Bu dosyalar genellikle programa özel bir + dizinde dururlar ve bu dosyaları kullanacak olan çalıştırılabilir + programla aralarında özdevimli olarak bağ kurulmamıştır. Bunun yerine, + çalıştırılabilir program DSO’yu çalışma anında dlopen() + sayesinde kendi adres uzayına ekler. Çalıştırılabilir program için + DSO’daki simgeler bu sırada çözümlenmez. Özdevimli olarak devreye + giren Unix yükleyicisi, (varsa) artakalan simgeleri, çalıştırılabilir + ihraç edilen simge kümelerini (ve özellikle her yerde hazır ve nazır + libc.so içindeki tüm simgeleri) kullanarak çözümler. Bu + yolla DSO, çalıştırılabilir programın simge kümesi bilgilerini sanki + kendisine baştan durağan olarak ilintilenmiş gibi ulaşabilir.

    + +

    Son olarak, DSO’nun programlama arayüzünün getirilerinden yararlanmak + amacıyla çalıştırılabilir program, daha sonra dağıtım tabloları vb. + yerlerde kullanmak üzere dlsym() üzerinden DSO’daki belli + simgeleri çözümlemek zorundadır. Başka bir deyişle: Çalıştırılabilir + program ihtiyaç duyduğu her simgeyi kullanmak için kendisi çözümleme + yapmak zorundadır. Böyle bir mekanizmanın getirisi, programın isteğe + bağlı parçalarının gerekli olana kadar yüklenmemesidir (böylece daha az + bellek alanı kullanılır). Gerektiği zaman programın işlevselliğini + arttırmak amacıyla bu parçalar devingen olarak programa + yüklenebilir.

    + +

    DSO mekanizmasının bu basit gibi görünen işleyişinde zorluk içeren bir + adım şudur (başkaları da olabilir): Bir programın işlevselliğini + genişletmek için DSO kullanılırken (ikinci yöntem) çalıştırılabilir + programdan DSO için simgelerin çözümlenmesi. Zorluğun sebebi, + "tersine çözümleme" yapılmasıdır; çalıştırılabilir programın simge + kümesindeki DSO simgeleri kütüphane tasarımına aykırı bir şekilde + çözümlenir ve bu uygulama tüm platformlarda hazır olarak + desteklenmediği gibi standartlaşmış da değildir. Geçer uygulamada + çalıştırılabilir programın evrensel simgeleri çoğunlukla yeniden dışa + verilmez ve bu bakımdan bir DSO içinde kullanılmaları uygun değildir. + Esas sorun, çalıştırılabilir bir programın işlevselliğini çalışma + anında genişletmek için DSO kullanımı sırasında ilintileyicinin tüm + evrensel simgeleri dışa vermesini zorlamanın bir yolunu bulmaktır.

    + +

    Paylaşımlı kütüphane yaklaşımı bu bakımdan türünün tek örneğidir, + çünkü DSO mekanizması özellikle bunun için tasarlanmıştır, dolayısıyla + işletim sisteminin sağladığı hemen hemen tüm kütüphaneler için + kullanılabilir. Diğer taraftan, bir programın işlevselliğini + genişletmek için paylaşımlı nesne kullanımı çoğu program tarafından + kullanılan bir şey değildir.

    + +

    1998 itibariyle, DSO nesneleriyle çalışma anında çalıştırılabilir + program işlevselliğini genişleten başlıca birkaç yazılım paketi vardır: + Perl 5 (XS mekanizması ve DynaLoader modülü üzerinden), Netscape + Sunucusu, vd. 1.3 sürümünden itibaren Apache de bu gruba katıldı. Çünkü + Apache, modül kavramını zaten program işlevselliğini genişletmek için + kullanıyordu ve temel işlevselliğine dış modülleri ilintilemek için + dahili olarak dağıtım listesine dayalı bir yaklaşım kullanmaktaydı. + Dolayısıyla Apache, modüllerini çalışma anında yüklemek için DSO + kullanmaya baştan yazgılıydı.

    +
    + +
    Getiriler ve Götürüler + +

    Yukarıda bahsedilen DSO’ya dayalı özelliklerin getirileri + şunlardır:

    + +
      +
    • Sunucu paketi çalışma anında daha esnektir çünkü, asıl sunucuyu + oluşturan parçalar derleme sırasında configure + seçenekleriyle birleştirilmek yerine httpd.conf içinde + LoadModule yönergeleri + sayesinde çalışma anında birleştirilebilmektedir. Bu yolla, örneğin + tek bir Apache kurulumuyla birbirinden farklı yapılandırmalara sahip + çok sayıda sunucu çalıştırmak mümkündür. (standart veya SSL sürümü; + basitleştirilmiş veya güçlendirilmiş sürümü [mod_perl, PHP3], + vs.)
    • + +
    • Sunucu paketi kurulumdan sonra bile üçüncü parti modüllerle kolayca + genişletilebilir. Bu özellikle, bir Apache temel paketinin yanında + PHP3, mod_perl, mod_fastcgi gibi ek paketler oluşturan paket + dağıtıcılarına büyük yarar sağlar.
    • + +
    • Yeni Apache modülleri için daha kolay prototip geliştirilebilir: + Modül kaynak kodunu DSO/apxs çifti sayesinde + Apache kaynak ağacının dışında derleyip modülün yeni bir sürümünü bir + apxs -i komutunun ardından apachectl + restart yaparak çalışan bir Apache sunucusunda denemek daha + kolay hale getirilmiştir.
    • +
    + +

    DSO kullanımının götürüleri ise şunlardır:

    + +
      +
    • Her platformda hazır olarak desteklenmeme: Tüm işletim sistemleri + bir programa devingen olarak kod yükleme becerisine sahip + olmadığından DSO mekanizması her platformda kullanılamaz.
    • + +
    • İlk yüklemede %20 yavaşlama: Unix yükleyicisi simgeleri çözümlemek + zorunda olduğundan sunucu ilk başlatılırken yaklaşık %20 daha yavaş + faaliyete geçer.
    • + +
    • Çalışma sırasında % 5 yavaşlama: Konumdan bağımsız kodun (PIC - + Position Independent Code) göreli adresleme için karmaşık oyunlara + girmesi ve bunun mutlak adresleme kadar hızlı olmaması nedeniyle + sunucu bazı platformlarda çalışma anında yaklaşık %5 daha yavaş + çalışabilir.
    • + +
    • DSO'nun tüm modüller için uygun olmaması: DSO modülleri bazı + platformlarda diğer DSO temelli kütüphanelerle ilintilenemediğinden + (ld -lfilanca) DSO mekanizmasını tüm modül türleri için + kullanamazsınız (örneğin a.out temelli platformlar bu işlevselliği + ELF temelli platformlar kadar iyi sağlamaz). Başka bir deyişle, DSO + dosyaları olarak derlenmiş modüllerin kullanabileceği simgeler ya + Apache temel kodunda vardır ya Apache temel kodunun kullandığı C + kütüphanesinde (libc) ve diğer durağan ve devingen + kütüphanelerde vardır ya da konumdan bağımsız kodu içeren + durağan kütüphane arşivlerinde (libfilanca.a) + vardır. Diğer modülleri kullanmak için tek şansınız ya Apache + çekirdeğinin modüle bir atıf içermesini sağlamak ya da modül kodunu + dlopen() vasıtasıyla yüklemektir.
    • +
    + +
    + +
    diff --git a/docs/manual/env.html b/docs/manual/env.html index 1bc45338241..1a60f968ea2 100644 --- a/docs/manual/env.html +++ b/docs/manual/env.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: env.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: env.html.ja.euc-jp +URI: env.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: env.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: env.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/env.html.en b/docs/manual/env.html.en index b683edf2761..e1ade7f97fa 100644 --- a/docs/manual/env.html.en +++ b/docs/manual/env.html.en @@ -1,26 +1,34 @@ - -Environment Variables in Apache - Apache HTTP Server +Environment Variables in Apache - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Environment Variables in Apache

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Environment Variables in Apache

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    The Apache HTTP Server provides a mechanism for storing @@ -47,7 +55,7 @@

  • Using Environment Variables
  • Special Purpose Environment Variables
  • Examples
  • -
    +
    top

    Setting Environment Variables

    @@ -67,20 +75,20 @@

    For additional flexibility, the directives provided by - mod_setenvif allow environment variables to be set on a - per-request basis, conditional on characteristics of particular + mod_setenvif allow environment variables to be set + on a per-request basis, conditional on characteristics of particular requests. For example, a variable could be set only when a specific browser (User-Agent) is making a request, or only when a specific Referer [sic] header is found. Even more flexibility - is available through the mod_rewrite's RewriteRule which uses the + is available through the mod_rewrite's RewriteRule which uses the [E=...] option to set environment variables.

    Unique Identifiers

    -

    Finally, mod_unique_id sets the environment variable - UNIQUE_ID for each request to a value which is +

    Finally, mod_unique_id sets the environment + variable UNIQUE_ID for each request to a value which is guaranteed to be unique across "all" requests under very specific conditions.

    @@ -92,7 +100,7 @@ Apache configuration and passed from the shell, CGI scripts and SSI pages are provided with a set of environment variables containing meta-information about the request as required by - the CGI + the CGI specification.

    @@ -115,6 +123,11 @@ not be a number. Characters which do not match this restriction will be replaced by an underscore when passed to CGI scripts and SSI pages. + +
  • The SetEnv directive runs + late during request processing meaning that directives such as + SetEnvIf and RewriteCond will not see the + variables set with it.
  • top
    @@ -138,7 +151,8 @@

    SSI Pages

    -

    Server-parsed (SSI) documents processed by mod_include's +

    Server-parsed (SSI) documents processed by + mod_include's INCLUDES filter can print environment variables using the echo element, and can use environment variables in flow control elements to makes parts of a page @@ -153,9 +167,9 @@

    Access to the server can be controlled based on the value of environment variables using the allow from env= and deny from env= directives. In combination with - SetEnvIf, this - allows for flexible control of access to the server based on - characteristics of the client. For example, you can use these + SetEnvIf, this + allows for flexible control of access to the server based on + characteristics of the client. For example, you can use these directives to deny access to a particular browser (User-Agent).

    @@ -166,11 +180,11 @@

    Environment variables can be logged in the access log using the LogFormat option %e. In addition, the decision on whether - or not to log requests can be made based on the status of - environment variables using the conditional form of the + or not to log requests can be made based on the status of + environment variables using the conditional form of the CustomLog - directive. In combination with SetEnvIf this allows for flexible control of which - requests are logged. For example, you can choose not to log + directive. In combination with SetEnvIf this allows for flexible control of which + requests are logged. For example, you can choose not to log requests for filenames ending in gif, or you can choose to only log requests from clients which are outside your subnet.

    @@ -201,13 +215,12 @@

    URL Rewriting

    -

    The %{ENV:...} form of TestString in - the RewriteCond - allows mod_rewrite's rewrite - engine to make decisions conditional on environment variables. - Note that the variables accessible in mod_rewrite without the - ENV: prefix are not actually environment - variables. Rather, they are variables special to mod_rewrite +

    The %{ENV:variable} form of + TestString in the RewriteCond allows mod_rewrite's rewrite + engine to make decisions conditional on environment variables. Note + that the variables accessible in mod_rewrite without + the ENV: prefix are not actually environment variables. + Rather, they are variables special to mod_rewrite which cannot be accessed from other modules.

    top
    @@ -258,10 +271,11 @@

    gzip-only-text/html

    -

    When set to a value of "1", this variable disables the DEFLATE - output filter provided by mod_deflate for - content-types other than text/html. If you'd rather - use statically compressed files; mod_negotiation +

    When set to a value of "1", this variable disables the + DEFLATE output filter provided by + mod_deflate for content-types other than + text/html. If you'd rather + use statically compressed files, mod_negotiation evaluates the variable as well (not only for gzip, but for all encodings that differ from "identity").

    @@ -275,6 +289,16 @@ +

    no-cache

    +

    Available in versions 2.2.12 and later

    + +

    When set, mod_cache will not save an otherwise + cacheable response. This environment variable does not influence + whether a response already in the cache will be served for the current + request.

    + + +

    nokeepalive

    @@ -301,7 +325,7 @@ to the client. This is typically used when a client has a known problem handling redirects. This was originally implemented as a result of a problem with Microsoft's WebFolders software which has - a problem handling redirects on directory resources via DAV + a problem handling redirects on directory resources via DAV methods.

    @@ -309,21 +333,44 @@

    suppress-error-charset

    -

    Available in versions 2.2 and later

    +

    Available in versions after 2.0.54

    When Apache issues a redirect in response to a client request, the response includes some actual text to be displayed in case the client can't (or doesn't) automatically follow the redirection. Apache ordinarily labels this text according to the character set which it uses, which is ISO-8859-1.

    +

    However, if the redirection is to a page that uses a different character set, some broken browser versions will try to use the character set from the redirection text rather than the actual page. This can result in Greek, for instance, being incorrectly rendered.

    +

    Setting this environment variable causes Apache to omit the character set for the redirection text, and these broken browsers will then correctly use that of the destination page.

    +
    +

    Security note

    + +

    Sending error pages without a specified character set may + allow a cross-site-scripting attack for existing browsers (MSIE) + which do not follow the HTTP/1.1 specification and attempt to + "guess" the character set from the content. Such browsers can + be easily fooled into using the UTF-7 character set, and UTF-7 + content from input data (such as the request-URI) will not be + escaped by the usual escaping mechanisms designed to prevent + cross-site-scripting attacks.

    +
    + + + +

    force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked, + proxy-sendcl, proxy-chain-auth, proxy-interim-response, proxy-initial-not-pooled

    + +

    These directives alter the protocol behavior of + mod_proxy. See the mod_proxy and mod_proxy_http + documentation for more details.

    top
    @@ -334,10 +381,11 @@

    Changing protocol behavior with misbehaving clients

    -

    We recommend that the following lines be included in - httpd.conf to deal with known client problems.

    -
    -#
    +        

    Earlier versions recommended that the following lines be included in + httpd.conf to deal with known client problems. Since the affected clients + are no longer seen in the wild, this configuration is likely no-longer + necessary.

    +
    #
     # The following directives modify normal HTTP response behavior.
     # The first directive disables keepalive for Netscape 2.x and browsers that
     # spoof it. There are known problems with these browser implementations.
    @@ -365,11 +413,13 @@ BrowserMatch "JDK/1\.0" force-response-1.0
    access log. It can be easily modified to prevent logging of particular directories, or to prevent logging of requests coming from particular hosts.

    -
    -SetEnvIf Request_URI \.gif image-request
    -SetEnvIf Request_URI \.jpg image-request
    -SetEnvIf Request_URI \.png image-request
    -CustomLog logs/access_log common env=!image-request
    + +

    + SetEnvIf Request_URI \.gif image-request
    + SetEnvIf Request_URI \.jpg image-request
    + SetEnvIf Request_URI \.png image-request
    + CustomLog logs/access_log common env=!image-request +

    Prevent "Image Theft"

    @@ -380,26 +430,52 @@ CustomLog logs/access_log common env=!image-request
    pages. This is not a recommended configuration, but it can work in limited circumstances. We assume that all your images are in a directory called /web/images.

    -
    -SetEnvIf Referer "^http://www.example.com/" local_referal
    -# Allow browsers that do not send Referer info
    -SetEnvIf Referer "^$" local_referal
    -<Directory /web/images>
    -   Order Deny,Allow
    -   Deny from all
    -   Allow from env=local_referal
    -</Directory>
    + +

    + SetEnvIf Referer "^http://www\.example\.com/" local_referal
    + # Allow browsers that do not send Referer info
    + SetEnvIf Referer "^$" local_referal
    + <Directory /web/images> + + Order Deny,Allow
    + Deny from all
    + Allow from env=local_referal +
    + </Directory> +

    For more information about this technique, see the - ApacheToday tutorial " - Keeping Your Images from Adorning Other Sites".

    + "Keeping Your Images from Adorning Other Sites" tutorial on + ServerWatch.

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/env.html.ja.euc-jp b/docs/manual/env.html.ja.euc-jp deleted file mode 100644 index 6725ef11baa..00000000000 --- a/docs/manual/env.html.ja.euc-jp +++ /dev/null @@ -1,393 +0,0 @@ - - - -Apache ¤δĶ­Êѿô - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    Apache ¤δĶ­Êѿô

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    Apache HTTP ¥µ¡¼¥ФÏ´Ķ­Êѿô¤ȸƤФì¤롢̾Á°¤ΤĤ¤¤¿ - Êѿô¤˾ðÊó¤򵭲±¤¹¤ë»ÅÁȤߤòÄ󶡤·¤Ƥ¤¤ޤ¹¡£¤³¤ξðÊó¤ϥí¥°¼ý½¸¤ä - ¥¢¥¯¥»¥¹À©¸æ¤ʤɤΤ¤¤í¤¤¤í¤ÊÁàºî¤òÀ©¸椹¤뤿¤á¤˻Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤é¤ÎÊѿô¤Ï CGI ¥¹¥¯¥ê¥ץȤʤɤγ°Éô¥ץí¥°¥é¥à¤ÈÄ̿®¤¹¤뤿¤á¤ˤâ - »Ȥï¤ì¤ޤ¹¡£¤³¤Îʸ½ñ¤Ϥ½¤ì¤é¤ÎÊѿô¤ÎÁàºîÊýˡ¤ȻÈÍÑÊýˡ¤򤤤¯¤Ĥ« - ¾Ҳ𤷤ޤ¹¡£

    - -

    ¤³¤ì¤é¤ÎÊѿô¤Ï´Ķ­Êѿô¤ȸƤФì¤Ƥ¤¤ޤ¹¤¬¡¢¥ª¥ڥ졼¥ƥ£¥ó¥° - ¥·¥¹¥ƥà¤ˤè¤äÆÀ©¸椵¤ì¤Ƥ¤¤ë´Ķ­Êѿô¤ÈƱ¤¸¤ǤϤ¢¤ê¤ޤ»¤ó¡£ - ¼ºݤϡ¢¤³¤ì¤é¤ÎÊѿô¤Ï Apache ¤ÎÆâÉô¹½¤¤ÎÃæ¤˵­²±¤µ¤졢Áàº¤ì¤Ƥ¤¤ޤ¹¡£ - ¤½¤ì¤é¤ϡ¢CGI ¤ä SSI ¥¹¥¯¥ê¥ץȤËÅϤµ¤줿¤Ȥ­¤À¤±¡¢¼ºݤÎ - ¥ª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤δĶ­Êѿô¤ˤʤê¤ޤ¹¡£¥µ¡¼¥м«¿Ȥ¬ - ¼¹Ԥµ¤ì¤Ƥ¤¤륪¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤δĶ­¤òÁàº¤¿¤¤¾ì¹ç¤ϡ¢ - ¥ª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤Υ·¥§¥뤬Ä󶡤·¤Ƥ¤¤ëɸ½à¤δĶ­Êѿô¤Î - ÁàºîÊýˡ¤ò»Ȥï¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    - -
    top
    -
    -

    ´Ķ­Êѿô¤ÎÀßÄê

    - - - -

    ´ðËÜŪ¤ʴĶ­¤ÎÁàºî

    - - -

    Apache ¤ˤª¤¤¤ƴĶ­Êѿô¤òÀßÄꤹ¤ë°ìÈִðËÜŪ¤ÊÊýˡ¤ϡ¢ - ̵¾ò·ï¤˴Ķ­Êѿô¤òÀßÄꤹ¤ë SetEnv ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤뤳¤ȤǤ¹¡£ - PassEnv - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤ꡢApache ¤¬µ¯ư¤µ¤줿¥·¥§¥ë¤Î - ´Ķ­Êѿô¤òÅϤ¹¤³¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - - -

    ¥ꥯ¥¨¥¹¥ÈËè¤˾ò·ï¤˴ð¤Ť¤¤ÆÀßÄꤹ¤ë

    - - -

    ¤è¤ê½ÀÆðÀ­¤ò¹â¤á¤뤿¤á¤ˡ¢mod_setenvif - ¤ÇÄ󶡤µ¤ì¤Ƥ¤¤ë¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢¥ꥯ¥¨¥¹¥ȤÎ - ÆÃÀ­¤˴ð¤Ť¤¤ƴĶ­Êѿô¤òÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£Î㤨¤С¢ÆÃÄê¤Υ֥饦¥¶ - (User-Agent) ¤Υꥯ¥¨¥¹¥ȤäÆÃÄê¤Î Referer [°տÞŪ¤ÊÄ֤ê¤Ǥ¹] - (ÌõÃí: Àµ¤·¤¤Ä֤ê¤Ï referrer ¤Ǥ¹¤¬¡¢HTTP ¤λÅÍͤǤÏ Referer - ¤ȤʤäƤ¤¤ޤ¹) ¥إåÀ¤¬¸«¤Ĥ«¤ä¿¤Ȥ­¤ΤßÊѿô¤òÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - mod_rewrite ¤Î RewriteRule - ¥ǥ£¥쥯¥ƥ£¥֤ˤª¤¤¤ƴĶ­Êѿô¤òÀßÄꤹ¤ë [E=...] - ¥ª¥ץ·¥ç¥ó¤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢ - ¤è¤ê½ÀÆð¤ÊÀßÄê¤ò¹Ԥʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - - -

    °ì°դʼ±Ê̻Ò

    - - -

    mod_unique_id ¤ϡ¢Èó¾ï¤˸¤é¤줿¾ò·ï¤β¼¤Ç - ¡֤¹¤٤ơפΥꥯ¥¨¥¹¥ȤˤĤ¤¤ơ¢°ì°դǤ¢¤뤳¤Ȥ¬Êݾڤµ¤ì¤Ƥ¤¤ëÃͤò´Ķ­Êѿô - UNIQUE_ID ¤ËÀßÄꤷ¤ޤ¹¡£

    - - -

    ɸ½à CGI Êѿô

    - - -

    Apache ¤ÎÀßÄê¥ե¡¥¤¥ë¤ÇÀßÄꤵ¤줿´Ķ­Êѿô¤ȥ·¥§¥뤫¤éÅϤµ¤ì¤ë - ´Ķ­Êѿô¤˲䨤ơ¢CGI ¥¹¥¯¥ê¥ץȤÈ SSI ¥ڡ¼¥¸¤ˤÏ CGI ¤λÅÍͤÇÍ׵ᤵ¤ì¤Ƥ¤¤롢 - ¥ꥯ¥¨¥¹¥ȤΥ᥿¾ðÊó¤ò»ý¤ä¿´Ķ­Êѿô¤ÎÁȤ¬Ä󶡤µ¤ì¤ޤ¹¡£

    - - -

    ¤¤¤¯¤Ĥ«¤ÎÃí°Õ

    - - -
      -
    • ´Ķ­¤òÁàº¤ë¥ǥ£¥쥯¥ƥ£¥֤ò»ȤäÆɸ½à CGI - Êѿô¤ò¾å½񤭤·¤¿¤êÊѹ¹¤·¤¿¤ꤹ¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£
    • - -
    • CGI ¥¹¥¯¥ê¥ץȤòµ¯ư¤¹¤뤿¤á¤Ë suexec - ¤¬»ÈÍѤµ¤ì¤Ƥ¤¤ë¾ì¹硢CGI ¥¹¥¯¥ê¥ץȤ¬µ¯ư¤¹¤뤿¤á¤ˡ¢´Ķ­Êѿô¤Ï°ÂÁ´¤ʴĶ­Êѿô¤ÎÁȤËÀ°Íý¤µ¤ì¤ޤ¹¡£ - ¤³¤ΰÂÁ´¤ʴĶ­Êѿô¤ν¸¹ç¤ϡ¢¥³¥ó¥ѥ¤¥ë»þ¤Ë suexec.c - ¤ÇÄêµÁ¤µ¤ì¤ޤ¹¡£
    • - -
    • °ܿ¢À­¤Τ¿¤á¤ˡ¢´Ķ­Êѿô¤Î̾Á°¤ϥ¢¥ë¥ե¡¥٥åȡ¢ - ¿ô»ú¤ȥ¢¥ó¥À¡¼¥¹¥³¥¢ (ÌõÃí: '_') ¤À¤±¤«¤éÀ®¤ê¤ޤ¹¡£ - ¤µ¤é¤ˡ¢ºǽé¤Îʸ»ú¤Ͽô»ú¤Ǥ¢¤äƤϤ¤¤±¤ޤ»¤ó¡£ - ¤³¤ÎÀ©¸¤˹ç¤ï¤ʤ¤ʸ»ú¤Ï CGI ¥¹¥¯¥ê¥ץȤÈ SSI - ¥ڡ¼¥¸¤ËÅϤµ¤ì¤ë¤Ȥ­¤˥¢¥ó¥À¡¼¥¹¥³¥¢¤ËÃִ¹¤µ¤ì¤ޤ¹¡£
    • -
    - -
    top
    -
    -

    ´Ķ­Êѿô¤λÈÍÑ

    - - - - -

    CGI ¥¹¥¯¥ê¥ץÈ

    - - -

    ´Ķ­Êѿô¤μç¤ÊÍøÍÑˡ¤ΰì¤Ĥϡ¢CGI ¥¹¥¯¥ê¥ץȤ˾ðÊó¤òÅÁ¤¨¤뤳¤ȤǤ¹¡£ - ¾å¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ë¤褦¤ˡ¢CGI ¥¹¥¯¥ê¥ץȤËÅϤµ¤ì¤ë´Ķ­Êѿô¤Ï Apache - ¤ÎÀßÄê¤ˤè¤êÀßÄꤵ¤ì¤ëÊѿô¤˲䨤ơ¢¥ꥯ¥¨¥¹¥ȤÎɸ½à¤Υ᥿¾ðÊó¤ò´ޤó¤Ǥ¤¤ޤ¹¡£ - ¾ܺ٤Ï CGI ¥Á¥塼¥ȥꥢ¥ë - ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - - -

    SSI ¥ڡ¼¥¸

    - - -

    mod_include ¤Î INCLUDES ¥ե£¥륿¤ǽèÍý¤µ¤ì¤ë - server-parsed (SSI) ¥ɥ­¥å¥á¥ó¥ȤǤϡ¢echo - Í×ÁǤò»ÈÍѤ¹¤ë¤ȴĶ­Êѿô¤¬½ÐÎϤµ¤ì¤ޤ¹¡£ - ¤ޤ¿¡¢¥ڡ¼¥¸¤Τ¢¤ëÉôʬ¤¬¥ꥯ¥¨¥¹¥ȤÎÀ­¼Á¤˱þ¤¸¤ÆÊѹ¹¤µ¤ì¤ë¤褦¤ˡ¢ - ´Ķ­Êѿô¤ò¥եí¡¼À©¸æÍ×ÁǤǻȤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£¾ܺ٤Ï - SSI ¥Á¥塼¥ȥꥢ¥ë ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - - -

    ¥¢¥¯¥»¥¹À©¸æ

    - - -

    allow from env= ¥ǥ£¥쥯¥ƥ£¥֤È deny from env= - ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ơ¢¥µ¡¼¥ФؤΥ¢¥¯¥»¥¹¤ò´Ķ­Êѿô¤ÎÃͤÇÀ©¸椹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - SetEnvIf - ¥ǥ£¥쥯¥ƥ£¥֤ÈÁȤ߹ç¤碌¤뤳¤Ȥǡ¢¥¯¥饤¥¢¥ó¥ȤÎÆÃÀ­¤˴ð¤Ť¤¤Æ - ¥µ¡¼¥ФؤΥ¢¥¯¥»¥¹À©¸æ¤ò½ÀÆð¤˹Ԥʤ¦¤³¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£ - ¤¿¤Ȥ¨¤С¢¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ơ¢ÆÃÄê¤Υ֥饦¥¶ (User-Agent) - ¤«¤é¤Υ¢¥¯¥»¥¹¤òµñÈݤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - - -

    ¾ò·ïÉդ­¥í¥°µ­Ͽ

    - - -

    LogFormat - ¥ǥ£¥쥯¥ƥ£¥֤Υª¥ץ·¥ç¥ó %e - ¤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢´Ķ­Êѿô¤򥢥¯¥»¥¹¥í¥°¤˵­Ͽ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤µ¤é¤ˡ¢ - CustomLog - ¥ǥ£¥쥯¥ƥ£¥֤ξò·ïʬ´ô¼°¤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢ - ´Ķ­Êѿô¤ÎÃͤˤè¤äƥꥯ¥¨¥¹¥Ȥò¥í¥°¤˵­Ͽ¤¹¤뤫¤ɤ¦¤«¤ò·è¤á¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - SetEnvIf - ¥ǥ£¥쥯¥ƥ£¥֤ÈÁȤ߹ç¤碌¤뤳¤Ȥǡ¢ - ¤ɤΥꥯ¥¨¥¹¥Ȥò¥í¥°¤˵­Ͽ¤¹¤뤫¤ò½ÀÆð¤ËÀ©¸椹¤뤳¤Ȥ¬²Äǽ¤ˤʤê¤ޤ¹¡£¤¿¤Ȥ¨¤С¢ - gif ¤ǽª¤ï¤ë¥ե¡¥¤¥ë̾¤ؤΥꥯ¥¨¥¹¥Ȥϥí¥°¤˵­Ͽ¤·¤ʤ¤¡¢ - °㤦¥µ¥֥ͥåȤΥ¯¥饤¥¢¥ó¥Ȥ«¤é¤Υꥯ¥¨¥¹¥ȤÀ¤±¤ò¥í¥°¤˵­Ͽ¤¹¤롢 - ¤Ȥ¤¤¦ÁªÂ򤬲Äǽ¤Ǥ¹¡£

    - - -

    ¾ò·ïÉդ­±þÅú¥إåÀ

    - - -

    Header - ¥ǥ£¥쥯¥ƥ£¥֤ϴĶ­Êѿô¤Î¸ºߤäÉԺߤˤè¤äƥ¯¥饤¥¢¥ó¥ȤؤαþÅú¤ËÆÃÄê¤Î - HTTP ¥إåÀ¤òÉդ±¤뤫¤ɤ¦¤«¤ò·è¤á¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤ˤè¤ꡢ¤¿¤Ȥ¨¤С¢¥¯¥饤¥¢¥ó¥Ȥ«¤é¤Υꥯ¥¨¥¹¥È - ¤ˤ¢¤ë¥إåÀ¤¬¤¢¤ë¾ì¹ç¤ˤΤ߯ÃÄê¤αþÅú¥إåÀ¤òÁ÷¤롢¤Ȥ¤¤¦¤褦¤ʤ³¤Ȥ¬ - ¤Ǥ­¤ޤ¹¡£

    - - - -

    ³°Éô¥ե£¥륿¤ÎŬÍÑ

    - - -

    ExtFilterDefine - ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤Æ - mod_ext_filter ¤ÇÀßÄꤵ¤ì¤볰Éô¥ե£¥륿¤ϡ¢ - disableenv= ¤È enableenv= - ¥ª¥ץ·¥ç¥ó¤ò»Ȥäơ¢´Ķ­Êѿô¤ˤè¤ë¾ò·ïÉդ­ŬÍѤ¬¤Ǥ­¤ޤ¹¡£

    - - -

    URL ¤ν񤭴¹¤¨

    - - -

    RewriteCond - ¥ǥ£¥쥯¥ƥ£¥֤Çɾ²Áʸ»úÎó¤Ȥ·¤Æ - %{ENV:...} ¼°¤ò»ØÄꤹ¤뤳¤Ȥǡ¢mod_rewrite - ¤ν񤭴¹¤¨¥¨¥󥸥󤬴Ķ­Êѿô¤˴𤤤ƾò·ïʬ´ô¤ò¹Ԥʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - mod_rewrite ¤¬»ÈÍѲÄǽ¤ÊÊѿô¤Ç ENV: ¤¬Á°¤ˤĤ¤¤Ƥ¤¤ʤ¤Êѿô¤ϡ¢ - ¼ºݤϴĶ­Êѿô¤ǤϤʤ¤¤Ȥ¤¤¦¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¤½¤ì¤é¤Ï¾¤Υ⥸¥塼¥뤫¤é¤ϻÈÍѤǤ­¤ʤ¤ mod_rewrite ÍѤÎÆÃÊ̤ÊÊѿô¤Ǥ¹¡£ -

    - -
    top
    -
    -

    ÆÃÊ̤ÊÌÜŪ¤δĶ­Êѿô

    - - -

    ¸ߴ¹À­¤ÎÌäÂê¤ò²ò·褹¤뤿¤á¤ˡ¢ÆÃÄê¤Υ¯¥饤¥¢¥ó¥ȤÈÄ̿®¤·¤Ƥ¤¤ë¤Ȥ­¤Ï - Apache ¤Îưºî¤òÊѹ¹¤Ǥ­¤뵡¹½¤¬ƳÆþ¤µ¤ì¤ޤ·¤¿¡£¤Ǥ­¤ë¤À¤±½ÀÆð¤ˤ¹¤뤿¤á¤ˡ¢ - ¤³¤ì¤é¤ε¡¹½¤ϴĶ­Êѿô¤òÄêµÁ¤¹¤뤳¤ȤǸƤӽФµ¤ì¤ޤ¹¡£ÉáÄ̤ϡ¢ - BrowserMatch - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¤¤ޤ¹¤¬¡¢¤¿¤Ȥ¨¤Ð SetEnv ¥ǥ£¥쥯¥ƥ£¥֤ä PassEnv ¥ǥ£¥쥯¥ƥ£¥֤â»ÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    downgrade-1.0

    - - -

    ¤³¤ì¤ò»ØÄꤹ¤뤳¤Ȥǡ¢¥ꥯ¥¨¥¹¥Ȥ¬ HTTP/1.0 - ¤è¤꿷¤·¤¤¥ץí¥ȥ³¥ë¤ξì¹ç¤Ǥ⡢HTTP/1.0 ¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£

    - - -

    force-gzip

    - -

    DEFLATE ¥ե£¥륿¤¬»ÈÍѤ¹¤ë¤褦¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¤Ȥ­¤ˡ¢ - ¤³¤δĶ­Êѿô¤ϥ֥饦¥¶¤Î accept-encoding ¤ÎÀßÄê¤ò̵»뤷¤ƾï¤Ë - °µ½̤µ¤줿½ÐÎϤòÁ÷¤ë¤褦¤ˤ·¤ޤ¹¡£

    - -

    force-no-vary

    - - -

    ±þÅú¥إåÀ¤¬¥¯¥饤¥¢¥ó¥ȤËÁ÷¤é¤ì¤ëÁ°¤Ë Vary - ¥ե£¡¼¥ë¥ɤò¼è¤ê½ü¤­¤ޤ¹¡£ - ¥¯¥饤¥¢¥ó¥ȤÎÃæ¤ˤϤ³¤Υե£¡¼¥ë¥ɤòÀµ¤·¤¯²ò¼ᤷ¤ʤ¤¤â¤Τ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ÎÊѿô¤òÀßÄꤹ¤뤳¤ȤǤ½¤ÎÌäÂê¤ò²óÈ򤹤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤ÎÊѿô¤òÀßÄꤹ¤ë¤ȡ¢force-response-1.0 - ¤¬ÀßÄꤵ¤줿¤³¤Ȥˤʤê¤ޤ¹¡£

    - - -

    force-response-1.0

    - - -

    ¤³¤줬ÀßÄꤵ¤ì¤Ƥ¤¤ë¤ȡ¢HTTP/1.0 ¥ꥯ¥¨¥¹¥Ȥòȯ¹Ԥ¹¤륯¥饤¥¢¥ó¥ȤËÂФ·¤ƤÏ - ¾ï¤Ë HTTP/1.0 ¤DZþÅú¤¹¤ë¤褦¤ˤʤê¤ޤ¹¡£¤³¤ε¡ǽ¤ϡ¢ - ¸µ¡¹¤Ï AOL ¤Υץí¥­¥·¤ÎÌäÂê¤Τ¿¤á¤˼ÂÁõ¤µ¤ì¤ޤ·¤¿¡£HTTP/1.0 ¥¯¥饤¥¢¥ó¥ȤÎÃæ¤ˤϡ¢ - HTTP/1.1 ¤αþÅú¤òÊ֤µ¤ì¤ë¤ÈÀµ¤·¤¯ưº¤ʤ¤¤â¤Τ¬¤¢¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - ¤³¤ε¡ǽ¤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢¤½¤Τ褦¤ʥ¯¥饤¥¢¥ó¥ȤȤδ֤θߴ¹À­ÌäÂê¤ò²ò·è¤Ǥ­¤ޤ¹¡£

    - - -

    gzip-only-text/html

    - - -

    ¤³¤줬 1 ¤ËÀßÄꤵ¤ì¤ë¤ȡ¢¤³¤ÎÊѿô¤Ï text/html - °ʳ°¤Υ³¥ó¥ƥó¥ȥ¿¥¤¥פËÂФ¹¤롢mod_deflate - Ä󶡤Î DEFLATE ½ÐÎϥե£¥륿¤ò̵¸ú¤ˤ·¤ޤ¹¡£ - ¤ޤ¿¡¢ÀÅŪ¤ˡ¢´û¤˰µ½̤µ¤줿¥ե¡¥¤¥ë¤ò»ÈÍѤ·¤¿¤¤¾ì¹硢 - (gzip ¤À¤±¤Ǥʤ¯¡¢"identity" ¤ȰۤʤëÁ´¤ƤΥ¨¥󥳡¼¥ɤËÂФ·¤Æ) - mod_negotiation ¤âÊѿô¤òɾ²Á¤·¤ޤ¹¡£

    - - -

    no-gzip

    -

    ¥»¥åȤµ¤ì¤ë¤ȡ¢mod_deflate ¤Î - DEFLATE ¥ե£¥륿¤¬¥ª¥դˤʤê¤ޤ¹¡£ - ¤½¤·¤Æ mod_negotiation - ¤ϥ¨¥󥳡¼¥ɤµ¤줿¥꥽¡¼¥¹¤òÁ÷¤é¤ʤ¤¤褦¤ˤ·¤ޤ¹¡£

    - - -

    nokeepalive

    - - -

    ¤³¤줬ÀßÄꤵ¤ì¤Ƥ¤¤ë¾ì¹ç¤ϡ¢KeepAlive ¤ò»ÈÍѤ·¤ʤ¤¤褦¤ˤ·¤ޤ¹¡£

    - -

    prefer-language

    - -

    mod_negotiation ¤εóư¤˱ƶÁ¤òͿ¤¨¤ޤ¹¡£ - (en, ja, x-klingon¤Ȥ¤¤ä¿) - ¸À¸쥿¥°¤¬³ÊǼ¤µ¤ì¤Ƥ¤¤ì¤С¢¤½¤θÀ¸ì¤Î variant ¤òÁ÷¿®¤·¤褦¤Ȥ·¤ޤ¹¡£ - ¤½¤Τ褦¤Ê variant ¤¬¤ʤ¤¾ì¹ç¤ϡ¢ - Ä̾ï¤Î¥ͥ´¥·¥¨¡¼¥·¥ç¥ó½èÍý¤¬ - ŬÍѤµ¤ì¤ޤ¹¡£

    - - - - -

    redirect-carefully

    - - -

    ¤³¤ì¤ϥ¯¥饤¥¢¥ó¥ȤؤΥê¥À¥¤¥쥯¥ȤÎÁ÷¿®¤򥵡¼¥Ф¬¤è¤êÃí°տ¼¤¯ - ¹Ԥʤ¦¤褦¤ˤ·¤ޤ¹¡£ - ¤³¤ì¤ÏÄ̾¥ê¥À¥¤¥쥯¥Ȥ˺ݤ·¤ƥ¯¥饤¥¢¥ó¥ȤË - ÌäÂ꤬¤¢¤뤳¤Ȥ¬ʬ¤«¤äƤ¤¤ë¾ì¹ç¤˻Ȥï¤ì¤ޤ¹¡£¤³¤ε¡ǽ¤ϸµ¡¹¤Ï - ¥ޥ¤¥¯¥í¥½¥եȤΥ¦¥§¥֥ե©¥ë¥À¤Υ½¥եȤ¬ DAV - ¥᥽¥åɤˤè¤ë¥ǥ£¥쥯¥ȥê¤Υ꥽¡¼¥¹¤ؤΥê¥À¥¤¥쥯¥Ȥΰ·¤¤¤Ë - ÌäÂ꤬¤ꡢ¤½¤ì¤ò²óÈ򤹤뤿¤á¤˼ÂÁõ¤µ¤ì¤ޤ·¤¿¡£

    - - - -

    suppress-error-charset

    - - -

    Apache 2.2 °ʹߤÇÍøÍѲÄǽ

    - -

    ¥¯¥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥ȤËÂФ¹¤ë±þÅú¤Ȥ·¤ƥê¥À¥¤¥쥯¥ȤòÁ÷¿®¤¹¤ëºݡ¢ - ¥쥹¥ݥ󥹤ˤϥê¥À¥¤¥쥯¥Ȥ¬¼«ưŪ¤˹Ԥʤ¨¤ʤ¤ (¹Ԥʤï¤ì¤ʤ¤) - ¾ì¹ç¤Ëɽ¼¨¤¹¤ë¥ƥ­¥¹¥Ȥ¬´ޤޤì¤ޤ¹¡£ - Ä̾¤³¤Υƥ­¥¹¥Ȥ˹çÃפ·¤¿¥­¥ã¥饯¥¿¥»¥åȡ¢ISO-8859-1 - ¤ǥé¥٥ëÉդ±¤򤷤ޤ¹¡£

    -

    ¤·¤«¤·¡¢¥ê¥À¥¤¥쥯¥ÈÀ褬Ê̤Îʸ»ú¥»¥åȤò»ȤäƤ¤¤ë¾ì¹硢 - ¤¢¤ëÌäÂê¤Τ¢¤ë¥֥饦¥¶¤ΥС¼¥¸¥ç¥ó¤Ǥϡ¢ - ¥ê¥À¥¤¥쥯¥ÈÀè¤μºݤÎʸ»ú¥»¥åȤÎÂå¤ï¤ê¤ˡ¢ - ¥ê¥À¥¤¥쥯¥ȸµ¤Îʸ»ú¥»¥åȤò»ȤäƤ·¤ޤ¦¤³¤Ȥ¬¤¢¤ê¤ޤ¹¡£ - ¤½¤ηë²̡¢Î㤨¤ÐÊѤÊÉÁ²褬¹Ԥʤï¤줿¤ꤷ¤ơ¢Æɤá¤ʤ¯¤ʤ俤ꤷ¤ޤ¹¡£

    -

    ¤³¤δĶ­Êѿô¤òÀßÄꤹ¤뤳¤Ȥǡ¢¥ê¥À¥¤¥쥯¥·¥ç¥ó¥ƥ­¥¹¥ȤËÂФ¹¤ë - ¥­¥ã¥饯¥¿¥»¥åȤλØÄê¤ò½üµ¤ޤ¹¤Τǡ¢¤½¤ì¤éÌäÂê¤Τ¢¤ë¥֥饦¥¶¤Ǥâ - ¥ê¥À¥¤¥쥯¥ÈÀè¤Îʸ»ú¥»¥åȤòÀµ¤·¤¯»Ȥ¦¤褦¤ˤǤ­¤ޤ¹¡£

    - - - -
    top
    -
    -

    Îã

    - - -

    ¤ª¤«¤·¤ʵóư¤򤹤륯¥饤¥¢¥ó¥ȤËÂФ·¤ƥץí¥ȥ³¥ë¤Îưºî¤òÊѹ¹¤¹¤ë

    - - -

    ¥¯¥饤¥¢¥ó¥Ȥ˴ؤ¹¤ë´ûÃΤÎÌäÂê¤ËÂн褹¤뤿¤á¤ˡ¢°ʲ¼¤ιԤò - httpd.conf ¤ËÆþ¤ì¤뤳¤Ȥò¿侩¤·¤Ƥ¤¤ޤ¹¡£

    -
    -#
    -# The following directives modify normal HTTP response behavior.
    -# The first directive disables keepalive for Netscape 2.x and browsers that
    -# spoof it. There are known problems with these browser implementations.
    -# The second directive is for Microsoft Internet Explorer 4.0b2
    -# which has a broken HTTP/1.1 implementation and does not properly
    -# support keepalive when it is used on 301 or 302 (redirect) responses.
    -#
    -BrowserMatch "Mozilla/2" nokeepalive
    -BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    -
    -#
    -# The following directive disables HTTP/1.1 responses to browsers which
    -# are in violation of the HTTP/1.0 spec by not being able to grok a
    -# basic 1.1 response.
    -#
    -BrowserMatch "RealPlayer 4\.0" force-response-1.0
    -BrowserMatch "Java/1\.0" force-response-1.0
    -BrowserMatch "JDK/1\.0" force-response-1.0
    - - -

    ²èÁü¤ؤΥꥯ¥¨¥¹¥Ȥ򥢥¯¥»¥¹¥í¥°¤˵­Ͽ¤·¤ʤ¤

    - - -

    ¤³¤ÎÎã¤Ǥϡ¢²èÁü¤ؤΥꥯ¥¨¥¹¥Ȥ¬¥¢¥¯¥»¥¹¥í¥°¤˸½¤ì¤ʤ¤¤褦¤ˤ·¤ޤ¹¡£ - ¤³¤ì¤òÊѹ¹¤¹¤뤳¤Ȥǡ¢ÆÃÄê¤Υǥ£¥쥯¥ȥê¤Υí¥°¼ý½¸¤ò¤ä¤᤿¤ꡢ - ÆÃÄê¤Υۥ¹¥Ȥ«¤é¤Υꥯ¥¨¥¹¥ȤΥí¥°¼ý½¸¤ò¤ä¤᤿¤ꤹ¤뤳¤Ȥ¬´Êñ¤ˤǤ­¤ޤ¹¡£ -

    -
    -SetEnvIf Request_URI \.gif image-request
    -SetEnvIf Request_URI \.jpg image-request
    -SetEnvIf Request_URI \.png image-request
    -CustomLog logs/access_log common env=!image-request
    - - -

    ¡ֲèÁü¤ÎÅðÍѡפòËɤ°

    - - -

    ¤³¤ÎÎã¤ϡ¢Ê̤Υµ¡¼¥Фˤ¤¤ë¿ͤ¬¡¢¤¢¤ʤ¿¤Υµ¡¼¥Фˤ¢¤ë²èÁü¤ò - inline ²èÁü¤Ȥ·¤ƻÈÍѤ¹¤뤳¤ȤòËɤ®¤ޤ¹¡£ - ¤³¤ì¤Ͽ侩¤µ¤ì¤Ƥ¤¤ëÀßÄê¤ǤϤ¢¤ê¤ޤ»¤󤬡¢¤¢¤ë¸ÂÄꤵ¤줿¾õ¶·¤ǤÏͭ¸ú¤Ǥ¹¡£ - ¤³¤³¤Ǥϡ¢¤¹¤٤ƤβèÁü¤Ï /web/images - ¤Ȥ¤¤¦¥ǥ£¥쥯¥ȥê¤ˤ¢¤ë¤Ȳ¾Äꤷ¤ޤ¹¡£

    -
    -SetEnvIf Referer "^http://www.example.com/" local_referal
    -# Allow browsers that do not send Referer info
    -SetEnvIf Referer "^$" local_referal
    -<Directory /web/images>
    -   Order Deny,Allow
    -   Deny from all
    -   Allow from env=local_referal
    -</Directory>
    - -

    ¤³¤μêˡ¤˴ؤ¹¤ë¾ܤ·¤¤¾ðÊó¤Ï ApacheToday ¤ΥÁ¥塼¥ȥꥢ¥ë¡ÖKeeping Your Images from Adorning Other Sites - ¡פ򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/env.html.ja.utf8 b/docs/manual/env.html.ja.utf8 new file mode 100644 index 00000000000..8bc242553b4 --- /dev/null +++ b/docs/manual/env.html.ja.utf8 @@ -0,0 +1,434 @@ + + + + + +Apache の環境変数 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache の環境変数

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    Apache HTTP サーバは環境変数と呼ばれる、名前のついた + 変数に情報を記憶する仕組みを提供しています。この情報はログ収集や + アクセス制御などのいろいろな操作を制御するために使うことができます。 + これらの変数は CGI スクリプトなどの外部プログラムと通信するためにも + 使われます。この文書はそれらの変数の操作方法と使用方法をいくつか + 紹介します。

    + +

    これらの変数は環境変数と呼ばれていますが、オペレーティング + システムによって制御されている環境変数と同じではありません。 + 実際は、これらの変数は Apache の内部構造の中に記憶され、操作されています。 + それらは、CGI や SSI スクリプトに渡されたときだけ、実際の + オペレーティングシステムの環境変数になります。サーバ自身が + 実行されているオペレーティングシステムの環境を操作したい場合は、 + オペレーティングシステムのシェルが提供している標準の環境変数の + 操作方法を使わなければなりません。

    +
    + +
    top
    +
    +

    環境変数の設定

    + + + +

    基本的な環境の操作

    + + +

    Apache において環境変数を設定する一番基本的な方法は、 + 無条件に環境変数を設定する SetEnv ディレクティブを使用することです。 + PassEnv + ディレクティブにより、Apache が起動されたシェルの + 環境変数を渡すこともできます。

    + + +

    リクエスト毎に条件に基づいて設定する

    + + +

    より柔軟性を高めるために、mod_setenvif + で提供されているディレクティブを使用することで、リクエストの + 特性に基づいて環境変数を設定することができます。例えば、特定のブラウザ + (User-Agent) のリクエストや特定の Referer [意図的な綴りです] + (訳注: 正しい綴りは referrer ですが、HTTP の仕様では Referer + となっています) ヘッダが見つかったときのみ変数を設定することができます。 + mod_rewrite の RewriteRule + ディレクティブにおいて環境変数を設定する [E=...] + オプションを使用することで、 + より柔軟な設定を行なうことができます。

    + + +

    一意な識別子

    + + +

    mod_unique_id は、非常に限られた条件の下で + 「すべて」のリクエストについて、一意であることが保証されている値を環境変数 + UNIQUE_ID に設定します。

    + + +

    標準 CGI 変数

    + + +

    Apache の設定ファイルで設定された環境変数とシェルから渡される + 環境変数に加えて、CGI スクリプトと SSI ページには CGI の仕様で要求されている、 + リクエストのメタ情報を持った環境変数の組が提供されます。

    + + +

    いくつかの注意

    + + +
      +
    • 環境を操作するディレクティブを使って標準 CGI + 変数を上書きしたり変更したりすることはできません。
    • + +
    • CGI スクリプトを起動するために suexec + が使用されている場合、CGI スクリプトが起動するために、環境変数は安全な環境変数の組に整理されます。 + この安全な環境変数の集合は、コンパイル時に suexec.c + で定義されます。
    • + +
    • 移植性のために、環境変数の名前はアルファベット、 + 数字とアンダースコア (訳注: '_') だけから成ります。 + さらに、最初の文字は数字であってはいけません。 + この制限に合わない文字は CGI スクリプトと SSI + ページに渡されるときにアンダースコアに置換されます。
    • +
    + +
    top
    +
    +

    環境変数の使用

    + + + + +

    CGI スクリプト

    + + +

    環境変数の主な利用法の一つは、CGI スクリプトに情報を伝えることです。 + 上で説明されているように、CGI スクリプトに渡される環境変数は Apache + の設定により設定される変数に加えて、リクエストの標準のメタ情報を含んでいます。 + 詳細は CGI チュートリアル + を参照してください。

    + + +

    SSI ページ

    + + +

    mod_include の INCLUDES フィルタで処理される + server-parsed (SSI) ドキュメントでは、echo + 要素を使用すると環境変数が出力されます。 + また、ページのある部分がリクエストの性質に応じて変更されるように、 + 環境変数をフロー制御要素で使うことができます。詳細は + SSI チュートリアル を参照してください。

    + + +

    アクセス制御

    + + +

    allow from env= ディレクティブと deny from env= + ディレクティブを使用して、サーバへのアクセスを環境変数の値で制御することができます。 + SetEnvIf + ディレクティブと組み合わせることで、クライアントの特性に基づいて + サーバへのアクセス制御を柔軟に行なうことができるようになります。 + たとえば、これらのディレクティブを使用して、特定のブラウザ (User-Agent) + からのアクセスを拒否することができます。

    + + +

    条件付きログ記録

    + + +

    LogFormat + ディレクティブのオプション %e + を使用することで、環境変数をアクセスログに記録することができます。さらに、 + CustomLog + ディレクティブの条件分岐式を使用することで、 + 環境変数の値によってリクエストをログに記録するかどうかを決めることができます。 + SetEnvIf + ディレクティブと組み合わせることで、 + どのリクエストをログに記録するかを柔軟に制御することが可能になります。たとえば、 + gif で終わるファイル名へのリクエストはログに記録しない、 + 違うサブネットのクライアントからのリクエストだけをログに記録する、 + という選択が可能です。

    + + +

    条件付き応答ヘッダ

    + + +

    Header + ディレクティブは環境変数の存在や不在によってクライアントへの応答に特定の + HTTP ヘッダを付けるかどうかを決めることができます。 + これにより、たとえば、クライアントからのリクエスト + にあるヘッダがある場合にのみ特定の応答ヘッダを送る、というようなことが + できます。

    + + + +

    外部フィルタの適用

    + + +

    ExtFilterDefine + ディレクティブを使用して + mod_ext_filter で設定される外部フィルタは、 + disableenv= と enableenv= + オプションを使って、環境変数による条件付き適用ができます。

    + + +

    URL の書き換え

    + + +

    RewriteCond + ディレクティブで評価文字列として + %{ENV:...} 式を指定することで、mod_rewrite + の書き換えエンジンが環境変数に基いて条件分岐を行なうことができます。 + mod_rewrite が使用可能な変数で ENV: が前についていない変数は、 + 実際は環境変数ではないということに注意してください。 + それらは他のモジュールからは使用できない mod_rewrite 用の特別な変数です。 +

    + +
    top
    +
    +

    特別な目的の環境変数

    + + +

    互換性の問題を解決するために、特定のクライアントと通信しているときは + Apache の動作を変更できる機構が導入されました。できるだけ柔軟にするために、 + これらの機構は環境変数を定義することで呼び出されます。普通は、 + BrowserMatch + ディレクティブを使いますが、たとえば SetEnv ディレクティブや PassEnv ディレクティブも使用することができます。

    + +

    downgrade-1.0

    + + +

    これを指定することで、リクエストが HTTP/1.0 + より新しいプロトコルの場合でも、HTTP/1.0 として扱われます。

    + + +

    force-gzip

    + +

    DEFLATE フィルタが使用するように設定されているときに、 + この環境変数はブラウザの accept-encoding の設定を無視して常に + 圧縮された出力を送るようにします。

    + +

    force-no-vary

    + + +

    応答ヘッダがクライアントに送られる前に Vary + フィールドを取り除きます。 + クライアントの中にはこのフィールドを正しく解釈しないものがあります。 + この変数を設定することでその問題を回避することができます。 + この変数を設定すると、force-response-1.0 + が設定されたことになります。

    + + +

    force-response-1.0

    + + +

    これが設定されていると、HTTP/1.0 リクエストを発行するクライアントに対しては + 常に HTTP/1.0 で応答するようになります。この機能は、 + 元々は AOL のプロキシの問題のために実装されました。HTTP/1.0 クライアントの中には、 + HTTP/1.1 の応答を返されると正しく動作しないものがあるかもしれません。 + この機能を使用することで、そのようなクライアントとの間の互換性問題を解決できます。

    + + +

    gzip-only-text/html

    + + +

    これが 1 に設定されると、この変数は text/html + 以外のコンテントタイプに対する、mod_deflate + 提供の DEFLATE 出力フィルタを無効にします。 + また、静的に、既に圧縮されたファイルを使用したい場合、 + (gzip だけでなく、"identity" と異なる全てのエンコードに対して) + mod_negotiation も変数を評価します。

    + + +

    no-gzip

    +

    セットされると、mod_deflate の + DEFLATE フィルタがオフになります。 + そして mod_negotiation + はエンコードされたリソースを送らないようにします。

    + + +

    nokeepalive

    + + +

    これが設定されている場合は、KeepAlive を使用しないようにします。

    + +

    prefer-language

    + +

    mod_negotiation の挙動に影響を与えます。 + (en, ja, x-klingonといった) + 言語タグが格納されていれば、その言語の variant を送信しようとします。 + そのような variant がない場合は、 + 通常のネゴシエーション処理が + 適用されます。

    + + + + +

    redirect-carefully

    + + +

    これはクライアントへのリダイレクトの送信をサーバがより注意深く + 行なうようにします。 + これは通常、リダイレクトに際してクライアントに + 問題があることが分かっている場合に使われます。この機能は元々は + マイクロソフトのウェブフォルダのソフトが DAV + メソッドによるディレクトリのリソースへのリダイレクトの扱いに + 問題がり、それを回避するために実装されました。

    + + + +

    suppress-error-charset

    + + +

    Apache 2.2 以降で利用可能

    + +

    クライアントのリクエストに対する応答としてリダイレクトを送信する際、 + レスポンスにはリダイレクトが自動的に行なえない (行なわれない) + 場合に表示するテキストが含まれます。 + 通常、このテキストに合致したキャラクタセット、ISO-8859-1 + でラベル付けをします。

    +

    しかし、リダイレクト先が別の文字セットを使っている場合、 + ある問題のあるブラウザのバージョンでは、 + リダイレクト先の実際の文字セットの代わりに、 + リダイレクト元の文字セットを使ってしまうことがあります。 + その結果、例えば変な描画が行なわれたりして、読めなくなったりします。

    +

    この環境変数を設定することで、リダイレクションテキストに対する + キャラクタセットの指定を除去しますので、それら問題のあるブラウザでも + リダイレクト先の文字セットを正しく使うようにできます。

    + + + +

    force-proxy-request-1.0, proxy-nokeepalive, proxy-sendchunked, proxy-sendcl

    + +

    これらの指示子は mod_proxy の挙動を変更します。 + 詳細は mod_proxy のドキュメントをご参照ください。

    + + +
    top
    +
    +

    例

    + + +

    おかしな挙動をするクライアントに対してプロトコルの動作を変更する

    + + +

    クライアントに関する既知の問題に対処するために、以下の行を + httpd.conf に入れることを推奨しています。

    +

    古いバージョンの Apache では、クライアントの問題に対応するために + httpd.conf に次の行を加えるよう推奨されていましたが、 + 今となっては、問題としていたクライアントは実際には見かけることは + なくなってきたので、この設定はもはや必要ないかもしれません。

    +
    #
    +# The following directives modify normal HTTP response behavior.
    +# The first directive disables keepalive for Netscape 2.x and browsers that
    +# spoof it. There are known problems with these browser implementations.
    +# The second directive is for Microsoft Internet Explorer 4.0b2
    +# which has a broken HTTP/1.1 implementation and does not properly
    +# support keepalive when it is used on 301 or 302 (redirect) responses.
    +#
    +BrowserMatch "Mozilla/2" nokeepalive
    +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    +
    +#
    +# The following directive disables HTTP/1.1 responses to browsers which
    +# are in violation of the HTTP/1.0 spec by not being able to grok a
    +# basic 1.1 response.
    +#
    +BrowserMatch "RealPlayer 4\.0" force-response-1.0
    +BrowserMatch "Java/1\.0" force-response-1.0
    +BrowserMatch "JDK/1\.0" force-response-1.0
    + + +

    画像へのリクエストをアクセスログに記録しない

    + + +

    この例では、画像へのリクエストがアクセスログに現れないようにします。 + これを変更することで、特定のディレクトリのログ収集をやめたり、 + 特定のホストからのリクエストのログ収集をやめたりすることが簡単にできます。 +

    +
    SetEnvIf Request_URI \.gif image-request
    +SetEnvIf Request_URI \.jpg image-request
    +SetEnvIf Request_URI \.png image-request
    +CustomLog logs/access_log common env=!image-request
    + + +

    「画像の盗用」を防ぐ

    + + +

    この例は、別のサーバにいる人が、あなたのサーバにある画像を + inline 画像として使用することを防ぎます。 + これは推奨されている設定ではありませんが、ある限定された状況では有効です。 + ここでは、すべての画像は /web/images + というディレクトリにあると仮定します。

    +
    SetEnvIf Referer "^http://www.example.com/" local_referal
    +# Allow browsers that do not send Referer info
    +SetEnvIf Referer "^$" local_referal
    +<Directory /web/images>
    +   Order Deny,Allow
    +   Deny from all
    +   Allow from env=local_referal
    +</Directory>
    + +

    この手法に関する詳しい情報は ApacheToday のチュートリアル「Keeping Your Images from Adorning Other Sites + 」を参照してください。

    + +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/env.html.ko.euc-kr b/docs/manual/env.html.ko.euc-kr index 5e53caff7c0..4f97016b492 100644 --- a/docs/manual/env.html.ko.euc-kr +++ b/docs/manual/env.html.ko.euc-kr @@ -1,26 +1,34 @@ - -¾ÆÆÄġÀÇ ȯ°溯¼ö - Apache HTTP Server +¾ÆÆÄġÀÇ ȯ°溯¼ö - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¾ÆÆÄġÀÇ ȯ°溯¼ö

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġÀÇ ȯ°溯¼ö

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -42,7 +50,7 @@
  • ȯ°溯¼ö »ç¿ëÇϱâ
  • Ưº°ÇÑ ¸ñÀûÀÇ ȯ°溯¼ö
  • ¿¹Á¦
  • -
    +
    top

    ȯ°溯¼ö ¼³Á¤Çϱâ

    @@ -307,8 +315,7 @@

    Ŭ¶óÀ̾ðƮµéÀÇ À̹Ì ¾˷ÁÁø ¹®Á¦¸¦ ÇذáÇϱâÀ§ÇØ httpd.conf¿¡ ´ÙÀ½ ³»¿ëÀ» Æ÷ÇÔÇϱæ ¹ٶõ´Ù.

    -
    -#
    +
    #
     # ´ÙÀ½ Áö½þîµéÀº ÀϹÝÀûÀÎ HTTP ÀÀ´äÀ» º¯°æÇѴÙ.
     # ù¹ø° Áö½þî´Â Netscape 2.x¿Í À̸¦ °¡ÀåÇÑ ºê¶ó¿ìÀú¿¡°Ô
     # keepalive¸¦ »ç¿ëÇÏÁö ¾ʴ´Ù. À̵é ºê¶ó¿ìÀú ±¸Çö¿¡ ¹®Á¦°¡ ÀִÙ.
    @@ -334,8 +341,7 @@ BrowserMatch "JDK/1\.0" force-response-1.0

    ÀÌ ¿¹Á¦´Â À̹ÌÁö¿¡ ´ëÇÑ ¿äûÀ» Á¢±Ù ·α׿¡ ±â·ÏÇÏÁö ¾ʴ´Ù. ƯÁ¤ µð·ºÅ丮¿¡ ´ëÇÑ ȤÀº ƯÁ¤ ȣ½ºƮ¿¡¼­ ¿Â ¿äûÀ» ·α×ÇÏÁö ¾ʵµ·Ï ½±°Ô ¼öÁ¤ÇÒ ¼ö ÀִÙ.

    -
    -SetEnvIf Request_URI \.gif image-request
    +    
    SetEnvIf Request_URI \.gif image-request
     SetEnvIf Request_URI \.jpg image-request
     SetEnvIf Request_URI \.png image-request
     CustomLog logs/access_log common env=!image-request
    @@ -349,8 +355,7 @@ CustomLog logs/access_log common env=!image-request
    ¼³Á¤À» ±ÇÀåÇÏÁö´Â ¾ÊÀ¸¸ç, Á¦ÇѵÈ °æ¿쿡¸¸ µ¿ÀÛÇѴÙ. ¿츮´Â ¸ðµç À̹ÌÁö°¡ /web/images µð·ºÅ丮 ¾ȿ¡ Àִٰí °¡Á¤ÇѴÙ.

    -
    -SetEnvIf Referer "^http://www.example.com/" local_referal
    +    
    SetEnvIf Referer "^http://www.example.com/" local_referal
     # Referer Á¤º¸¸¦ º¸³»Áö ¾ʴ ºê¶ó¿ìÀú¸¦ Çã¿ëÇѴÙ
     SetEnvIf Referer "^$" local_referal
     <Directory /web/images>
    @@ -366,8 +371,30 @@ SetEnvIf Referer "^$" local_referal
     

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/env.html.tr.utf8 b/docs/manual/env.html.tr.utf8 new file mode 100644 index 00000000000..5864ab658c3 --- /dev/null +++ b/docs/manual/env.html.tr.utf8 @@ -0,0 +1,481 @@ + + + + + +Apache’de Ortam Değişkenleri - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache’de Ortam Değişkenleri

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + +

    Apache HTTP Sunucusunda bilgiyi değişkenlerde saklamak için ortam + değişkenleri adı verilen bir mekanizma bulunur. Saklanan bu bilgi + erişim denetimi, günlük kaydı gibi çeşitli işlemleri denetlemekte + kullanılabilir. Değişkenler ayrıca, CGI betikleri gibi harici + uygulamalarla iletişim mekanizması olarak da kullanılabilir. Bu belgede + bu değişkenler üzerindeki işlemlere ve kullanım şekillerine + değinilmiştir.

    + +

    Bu değişkenlere ortam değişkenleri dense de işletim sisteminin + ortam değişkenleri gibi değillerdir. Bunlar sadece Apache ortamında + geçerli değişkenler olup işletim sisteminin bu değişkenlerden haberi + olmaz. Sadece CGI betikleri ve SSI sayfaları gibi harici uygulamalar + tarafından üretilen ortam değişkenleri sistem ortamının değişkenleri + haline gelirler. İşletim sistemi ortamına çalışmakta olan sunucudan + müdahale etmek isterseniz işletim sisteminizin kabuğu tarafından sağlanan + standart ortam müdahale mekanizmalarını kullanmalısınız.

    +
    + +
    top
    +
    +

    Ortam Değişkenlerinin Atanması

    + + + +

    Temel Ortamda Değişiklik

    + + +

    Apache ortamında bir ortam değişkenine müdahale etmenin en temel + yolu hiçbir koşula tabi olmayan SetEnv yönergesini kullanmaktır. Bu değişkenleri Apache + başlatılırken sistem ortam değişkenleri haline getirmek için + PassEnv yönergesi + kullanılabilir.

    + + +

    İsteğe Bağlı Şartlı Atamalar

    + + +

    Esnekliği arttırmak için, mod_setenvif modülü ile + isteğin özelliklerine uygun olarak her isteğe özel değişkenler + atayabilmek mümkün kılınmıştır. Örneğin, bir değişken sadece isteği + yapan tarayıcıya özgü bir değerle veya sadece belli bir başlık + alanınına bağlı olarak atanabilir. Daha da esnek bir mekanizma, + ortam değişkeni atamak için [E=...] seçeneğinin + kullanıldığı mod_rewrite modülünün RewriteRule yönergesi ile + sağlanmıştır.

    + + +

    Eşsiz Betimleyiciler

    + + +

    Son olarak, mod_unique_id UNIQUE_ID + ortam değişkenine her istek için o isteğin çok özel koşullar altında + tüm diğer istekler arasında eşsizliğini garanti edecek bir değer + atar.

    + + +

    Standart CGI Değişkenleri

    + + +

    Apache yapılandırmasıyla atanan ve kabuğa aktarılan ortam + değişkenlerinden başka CGI + Belirtiminin gerektirdiği istekler hakkında temel bilgileri + içeren ortam değişkenlerinin CGI betikleri ve SSI sayfalarınca + atanabilmesi sağlanmıştır.

    + + +

    Bazı Yetersizlikler

    + + +
      +
    • Standart CGI değişkenlerini ortam değişkenlerine müdahale + yönergelerini kullanarak değiştirmek veya geçersiz kılmak mümkün + değildir.
    • + +
    • CGI betiklerini çalıştırmak için suexec + kullanıldığında ortam, CGI betikleri çalıştırılmadan önce + güvenilir değişkenler kalacak şekilde temizlenir. + Güvenilir değişken listesi suexec.c içinde + derleme sırasında tanımlanır.
    • + +
    • Taşınabilirlik adına, ortam değişkenlerinin isimleri sadece + harfler, rakamlar ve alt çizgi imlerini içerebilir. Bunlara ek + olarak ismin ilk karakteri bir rakam olmamalıdır. Değişkenler CGI + betiklerine ve SSI sayfalarına aktarılırken bu sınırlamalara uygun + olmayan karakterlerin yerlerine alt çizgi imleri konur.
    • + +
    • İsteklerin işleme konması sırasında SetEnv yönergesi geç çalıştırılır, + yani SetEnvIf ve + RewriteCond gibi + yönergeler SetEnv ile + atanan değişken değerlerini görmezler.
    • +
    + +
    top
    +
    +

    Ortam Değişkenlerinin Kullanımı

    + + + + +

    CGI Betikleri

    + + +

    Ortam değişkenlerinin başlıca amaçlarından biri CGI betikleriyle + iletişim kurmaktır. Yukarıda bahsedildiği gibi CGI betiklerine + aktarılan ortam Apache yapılandırmasında atanan değişkenlere ek + olarak istek hakkında standart temel bilgileri de içerir. Bu konuda + ayrıntılı bilgi edinmek için CGI + Öğreticisine bakabilirsiniz.

    + + +

    SSI Sayfaları

    + + +

    Sunucu tarafında mod_include modülünün + INCLUDES süzgeci ile yorumlanan SSI sayfalarında ortam + değişkenleri echo elemanı ile basılabilir ve sayfayı + isteğin özelliklerine uygun olarak oluşturmak için ortam + değişkenleri akış denetim elemanları içinde kullanılabilir. Apache + ayrıca, yukarıda bahsedildiği gibi standart CGI ortam değişkenli SSI + sayfalarını da sağlayabilmektedir. Daha ayrıntılı bilgi edinmek için + SSI Öğreticisine bakabilirsiniz.

    + + +

    Erişim Denetimi

    + + +

    allow from env= ve deny from env= + yönergeleri sayesinde ortam değişkenlerine dayalı olarak sunucuya + erişim denetim altında tutulabilir. Bunlar SetEnvIf yönergesi ile birlikte + kullanılmak suretiyle sunucuya erişim isteğin özelliklerine bağlı + olarak daha esnek bir tarzda denetlenebilir. Örneğin, belli bir + tarayıcının sunucuya erişimi bu yönergelerle engellenebilir.

    + + +

    Şartlı Günlük Kaydı

    + + +

    Ortam değişkenleri LogFormat yönergesinin %e seçeneği + kullanılarak erişim günlüğüne kaydedilebilir. Bundan başka, + CustomLog yönergesi + sayesinde isteklerin günlüğe kaydedilip kaydedilmeyeceğine ortam + değişkenlerine dayalı olarak karar verilmesi sağlanabilir. Bunlar + SetEnvIf yönergesi ile + birlikte kullanılmak suretiyle günlük kayıtları isteğin + özelliklerine bağlı olarak daha esnek bir tarzda denetlenebilir. + Örneğin, gif uzantılı dosyalar için yapılan isteklerin + günlüğe kaydedilmemesi veya sadece alt ağınızın dışından gelen + isteklerin günlüğe kaydedilmesini isteyebilirsiniz.

    + + +

    Şartlı Yanıt Başlıkları

    + + +

    Header yönergesi belli + bir yanıt başlığının istemciye gönderilip gönderilmeyeceğine belli + bir ortam değişkeninin varlığına bakarak karar vermek için + kullanılabilir. Böylece örneğin, belli bir başlığın istemciye + gönderilmesine istemciden belli bir başlığın alınıp alınmadığına + bağlı olarak karar verilebilir.

    + + + +

    Harici Süzgeçlerin Etkinleştirilmesi

    + + +

    mod_ext_filter tarafından yapılandırılan harici + süzgeçler ExtFilterDefine yönergesinin disableenv= ve + enableenv= seçenekleri kullanılarak bir ortam + değişkenine bağlı olarak etkinleştirilebilir.

    + + +

    URL Kurgulaması

    + + +

    RewriteCond + yönergesinin SınamaDizgesi olarak kullanılan + %{ENV:değişken} biçemi + mod_rewrite yeniden yazma motorunun ortam + değişkenlerine bağlı kararlar almasını mümkün kılar. Yalnız şuna + dikkat ediniz: mod_rewrite’ta ENV: + öneki kullanılmadan belirtilen değişkenler ortam değişkenleri + değillerdir. Onlar mod_rewrite’a özgü diğer + modüllerden erişilemeyen özel değişkenlerdir.

    + +
    top
    +
    +

    Özel Amaçlı Ortam Değişkenleri

    + + +

    Birlikte çalışabilirlik sorunları Apache’nin belli istemcilerle + veri alışverişi sırasında davranışını değiştirmesini gerektirebilir. + Genellikle SetEnv ve + PassEnv yönergelerinden + başka BrowserMatch + gibi yönergelerle ortam değişkenleri atanarak bunu sağlayan + mekanizmaların olabildiğince esnek davranabilmesi sağlanabilir.

    + +

    downgrade-1.0

    + + +

    İstek, daha yüksek bir HTTP protokolüyle yapılmış olsa bile + HTTP/1.0 isteği olarak ele alınır.

    + + +

    force-gzip

    + +

    DEFLATE süzgeci etkinse tarayıcının tercih ettiği + kodlama koşulsuz olarak yoksayılarak sıkıştırılmış çıktı + gönderilir.

    + +

    force-no-vary

    + + +

    İstemciye gönderilmeden önce yanıttan Vary alanının + çıkarılmasına sebep olur. Bazı istemciler bu alanı gerektiği gibi + yorumlayamazlar, bu değişken atanarak bu sorunla karşılaşılmamaya + çalışılır. Bu değişkenin atanması ayrıca + force-response-1.0 değişkeninin de atanmasına sebep + olur.

    + + +

    force-response-1.0

    + + +

    HTTP/1.0 isteği yapan istemcilere HTTP/1.0 yanıtı verilmesini zorunlu + kılar. AOL vekillerindeki bir sorun nedeniyle gerçeklenmiştir. Bazı + HTTP/1.0 istemciler HTTP/1.1 yanıtlarında doğru davranmayabilirler; bu + değişken atanarak bunların sorunları giderilebilir.

    + + + +

    gzip-only-text/html

    + + +

    Bu değişkene "1" değeri atandığında text/html’den + farklı içerik türleri için mod_deflate modülü + tarafından sağlanan DEFLATE çıktı süzgeci iptal + edilir. Sıkıştırılmış olarak saklanan dosyalar kullanıyorsanız bu + değişkeni mod_negotiation modülü de dikkate alır + (kimliğine bakarak sadece gzip için değil, tüm kodlamalar için bunu + yapar).

    + + +

    no-gzip

    + +

    Bu değişken atandığında, mod_deflate modülünün + DEFLATE süzgeci kapatılır ve + mod_negotiation modülü kodlanmış kaynak teslimatını + reddeder.

    + + +

    no-cache

    +

    2.2.12'den sonraki sürümlerde kullanılabilmektedir.

    + +

    Atandığı takdirde, mod_cache başka bir + önbelleklenebilir yanıtı kaydetmeyecektir. Bu ortam değişkeni, bir + yanıtın geçerli bir istek için evvelce önbelleğe alınmış olduğu + anlamına gelmez.

    + + + +

    nokeepalive

    + + +

    Bu değişken atandığında, KeepAlive yönergesi iptal edilir.

    + + + +

    prefer-language

    + + +

    Değer olarak en, ja veya + x-klingon gibi bir dil kısaltması verilerek atanmışsa + mod_negotiation modülünün normal davranışını + değiştirerek belirtilen dilde bir teslimat yapılmaya çalışılır. + Böyle bir belge yoksa normal uzlaşım süreci uygulanır.

    + + + +

    redirect-carefully

    + + +

    İstemciye bir yönlendirme gönderirken sunucuyu daha dikkatli olmaya + zorlar. Bu genellikle istemcinin yönlendirmeler konusunda sorunlu + olduğu bilindiği takdirde yararlı olur. Bu değişkenin gerçeklenme + sebebi, dizin kaynaklarına yönlendirmeler için DAV yöntemlerini + kullanan Microsoft'un WebFolders yazılımındaki bir sorundur.

    + + + +

    suppress-error-charset

    + + +

    2.0.54 sürümünden beri mevcuttur.

    + +

    Apache bir isteğe bir yönlendirme ile yanıt verdiğinde istemci + yönlendirmeyi kendiliğinden yapmaz veya yapamazsa kullanıcıya yanıtla + birlikte gönderilen metin gösterilir. Apache normal olarak bu metni + ISO-8859-1 ile kodlar.

    + +

    Ancak, yönlendirmenin yapıldığı sayfa farklı bir karakter kümesine + sahipse bazı tarayıcı sürümleri asıl sayfanın karakter kodlaması yerine + yönlendirmenin kodlamasını kullanmaya çalışırlar. Bu özellikle Yunanca + gibi dillerde hedef sayfanın hatalı yorumlanmasına yol açar.

    + +

    Bu ortam değişkeninin atanması Apache’nin yönlendirme için karakter + kümesi belirtmemesini sağlamak suretiyle hatalı tarayıcıların hedef + sayfayı yanlış karakter kodlamasıyla yorumlamasını önler.

    + +
    +

    Güvenlik Uyarısı

    + +

    Hata sayfalarının bir karakter kümesi belirtilmeksizin yollanması, + HTTP/1.1 belirtimine uymayan ve karakter kümesini içeriğe bakarak + tahmin etmeye çalışan tarayıcılarda (MSIE) karşı siteden betik + saldırısı yorumuna sebep olabilir. Girdi verisindeki UTF-7 içerik + (istek betimleyici gibi) karşı siteden betik saldırılarını engellemek + için tasarlanmış normal önceleme mekanizmalarıyla öncelenmeyeceği için + böyle tarayıcılar UTF-7 karakter kodlaması kullanılarak kolayca + aldatılabilir.

    +
    + + + +

    force-proxy-request-1.0, + proxy-nokeepalive, proxy-sendchunked ve + proxy-sendcl, proxy-chain-auth, + proxy-interim-response, proxy-initial-not-pooled +

    + +

    Bu yönergeler mod_proxy modülünün normal protokol + davranışını değiştirirler. Daha ayrıntılı bilgi için + mod_proxy ve mod_proxy_http + belgelerine bakınız.

    + + +
    top
    +
    +

    Örnekler

    + + +

    Protokolü yanlış yorumlayan tarayıcıların davranışlarının + değiştirilmesi

    + + +

    Önceki sürümlerde bilinen istemci davranışlarına karşı önlem olarak + aşağıdaki satırların httpd.conf içinde bulunması + önerilirdi. Fakat, böyle tarayıcılar artık ortalıkta görünmediğinden + bu yapılandırmaya da artık gerek kalmamıştır.

    + +
    #
    +# Aşağıdaki yönergeler normal HTTP yanıt davranışını değiştirirler.
    +# İlk yönerge Netscape 2.x ve kendini öyle gösteren tarayıcılar için
    +# kalıcı bağlantıyı (keepalive) iptal eder. İkinci yönerge ise HTTP/1.1
    +# protokolü bozuk olan ve 301/302 durum kodlu yönlendirme yanıtları
    +# kullanıldığında kalıcı bağlantıları gerektiği gibi desteklemeyen
    +# Microsoft Internet Explorer 4.0b2 içindir.
    +#
    +BrowserMatch "Mozilla/2" nokeepalive
    +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    +
    +#
    +# Aşağıdaki yönergeler HTTP/1.0 yanıtlarından başkasına yabancı olan
    +# tarayıcılara HTTP/1.1 yanıtlarının gönderilmesini iptal eder.
    +#
    +BrowserMatch "RealPlayer 4\.0" force-response-1.0
    +BrowserMatch "Java/1\.0" force-response-1.0
    +BrowserMatch "JDK/1\.0" force-response-1.0
    + + +

    Resim isteklerinin erişim günlüğüne kaydedilmemesi

    + + +

    Bu örnek resim isteklerinin erişim günlüğüne yazılmasını engeller. + Bu örnek değiştirilerek belli dizinlerin veya belli konaklardan + gelen isteklerin günlüğe kaydedilmesini engellemek amacıyla da + kullanılabilir.

    + +

    + SetEnvIf Request_URI \.gif image-request
    + SetEnvIf Request_URI \.jpg image-request
    + SetEnvIf Request_URI \.png image-request
    + CustomLog logs/access_log common env=!image-request +

    + + +

    “Resim Hırsızlığı” için önlem alınması

    + + +

    Bu örnekte sunucunuzda bulunmayan sayfalarda sunucunuzdaki + resimlerin kullanılmasının nasıl önleneceği gösterilmiştir. Bu + yapılandırma önerilmemekle birlikte nadir durumlarda işe yarar. Tüm + resimlerin /siteler/resimler dizini altında tutulduğu + varsayılmıştır.

    + +

    + SetEnvIf Referer "^http://www\.example\.com/" local_referal
    + # Referrer bilgisi göndermeyen tarayıcılara izin verelim
    + SetEnvIf Referer "^$" local_referal
    + <Directory /siteler/resimler> + + Order Deny,Allow
    + Deny from all
    + Allow from env=local_referal +
    + </Directory> +

    + +

    Bu teknik hakkında daha ayrıntılı bilgi edinmek için ServerWatch + üzerindeki "Diğer sitelerin sizin resimlerinizle donatılmasını engellemek" + belgesine bakınız.

    + +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/env.xml b/docs/manual/env.xml index 048f5b1cd73..b3a9a90cc79 100644 --- a/docs/manual/env.xml +++ b/docs/manual/env.xml @@ -4,12 +4,12 @@ + + - + env / . en - ja + ja ko + tr diff --git a/docs/manual/env.xml.tr b/docs/manual/env.xml.tr new file mode 100644 index 00000000000..4b4f18c838b --- /dev/null +++ b/docs/manual/env.xml.tr @@ -0,0 +1,492 @@ + + + + + + + + + + + Apache’de Ortam Değişkenleri + + +

    Apache HTTP Sunucusunda bilgiyi değişkenlerde saklamak için ortam + değişkenleri adı verilen bir mekanizma bulunur. Saklanan bu bilgi + erişim denetimi, günlük kaydı gibi çeşitli işlemleri denetlemekte + kullanılabilir. Değişkenler ayrıca, CGI betikleri gibi harici + uygulamalarla iletişim mekanizması olarak da kullanılabilir. Bu belgede + bu değişkenler üzerindeki işlemlere ve kullanım şekillerine + değinilmiştir.

    + +

    Bu değişkenlere ortam değişkenleri dense de işletim sisteminin + ortam değişkenleri gibi değillerdir. Bunlar sadece Apache ortamında + geçerli değişkenler olup işletim sisteminin bu değişkenlerden haberi + olmaz. Sadece CGI betikleri ve SSI sayfaları gibi harici uygulamalar + tarafından üretilen ortam değişkenleri sistem ortamının değişkenleri + haline gelirler. İşletim sistemi ortamına çalışmakta olan sunucudan + müdahale etmek isterseniz işletim sisteminizin kabuğu tarafından sağlanan + standart ortam müdahale mekanizmalarını kullanmalısınız.

    +
    + +
    + Ortam Değişkenlerinin Atanması + + + mod_env + mod_rewrite + mod_setenvif + mod_unique_id + + + BrowserMatch + BrowserMatchNoCase + PassEnv + RewriteRule + SetEnv + SetEnvIf + SetEnvIfNoCase + UnsetEnv + + + +
    + Temel Ortamda Değişiklik + +

    Apache ortamında bir ortam değişkenine müdahale etmenin en temel + yolu hiçbir koşula tabi olmayan SetEnv yönergesini kullanmaktır. Bu değişkenleri Apache + başlatılırken sistem ortam değişkenleri haline getirmek için + PassEnv yönergesi + kullanılabilir.

    + +
    +
    + İsteğe Bağlı Şartlı Atamalar + +

    Esnekliği arttırmak için, mod_setenvif modülü ile + isteğin özelliklerine uygun olarak her isteğe özel değişkenler + atayabilmek mümkün kılınmıştır. Örneğin, bir değişken sadece isteği + yapan tarayıcıya özgü bir değerle veya sadece belli bir başlık + alanınına bağlı olarak atanabilir. Daha da esnek bir mekanizma, + ortam değişkeni atamak için [E=...] seçeneğinin + kullanıldığı mod_rewrite modülünün RewriteRule yönergesi ile + sağlanmıştır.

    + +
    +
    + Eşsiz Betimleyiciler + +

    Son olarak, mod_unique_id UNIQUE_ID + ortam değişkenine her istek için o isteğin çok özel koşullar altında + tüm diğer istekler arasında eşsizliğini garanti edecek bir değer + atar.

    + +
    +
    + Standart CGI Değişkenleri + +

    Apache yapılandırmasıyla atanan ve kabuğa aktarılan ortam + değişkenlerinden başka CGI + Belirtiminin gerektirdiği istekler hakkında temel bilgileri + içeren ortam değişkenlerinin CGI betikleri ve SSI sayfalarınca + atanabilmesi sağlanmıştır.

    + +
    +
    + Bazı Yetersizlikler + +
      +
    • Standart CGI değişkenlerini ortam değişkenlerine müdahale + yönergelerini kullanarak değiştirmek veya geçersiz kılmak mümkün + değildir.
    • + +
    • CGI betiklerini çalıştırmak için suexec + kullanıldığında ortam, CGI betikleri çalıştırılmadan önce + güvenilir değişkenler kalacak şekilde temizlenir. + Güvenilir değişken listesi suexec.c içinde + derleme sırasında tanımlanır.
    • + +
    • Taşınabilirlik adına, ortam değişkenlerinin isimleri sadece + harfler, rakamlar ve alt çizgi imlerini içerebilir. Bunlara ek + olarak ismin ilk karakteri bir rakam olmamalıdır. Değişkenler CGI + betiklerine ve SSI sayfalarına aktarılırken bu sınırlamalara uygun + olmayan karakterlerin yerlerine alt çizgi imleri konur.
    • + +
    • İsteklerin işleme konması sırasında SetEnv yönergesi geç çalıştırılır, + yani SetEnvIf ve + RewriteCond gibi + yönergeler SetEnv ile + atanan değişken değerlerini görmezler.
    • +
    +
    +
    +
    + Ortam Değişkenlerinin Kullanımı + + + + mod_authz_host + mod_cgi + mod_ext_filter + mod_headers + mod_include + mod_log_config + mod_rewrite + + + Allow + CustomLog + Deny + ExtFilterDefine + Header + LogFormat + RewriteCond + RewriteRule + + + +
    + CGI Betikleri + +

    Ortam değişkenlerinin başlıca amaçlarından biri CGI betikleriyle + iletişim kurmaktır. Yukarıda bahsedildiği gibi CGI betiklerine + aktarılan ortam Apache yapılandırmasında atanan değişkenlere ek + olarak istek hakkında standart temel bilgileri de içerir. Bu konuda + ayrıntılı bilgi edinmek için CGI + Öğreticisine bakabilirsiniz.

    + +
    +
    + SSI Sayfaları + +

    Sunucu tarafında mod_include modülünün + INCLUDES süzgeci ile yorumlanan SSI sayfalarında ortam + değişkenleri echo elemanı ile basılabilir ve sayfayı + isteğin özelliklerine uygun olarak oluşturmak için ortam + değişkenleri akış denetim elemanları içinde kullanılabilir. Apache + ayrıca, yukarıda bahsedildiği gibi standart CGI ortam değişkenli SSI + sayfalarını da sağlayabilmektedir. Daha ayrıntılı bilgi edinmek için + SSI Öğreticisine bakabilirsiniz.

    + +
    +
    + Erişim Denetimi + +

    allow from env= ve deny from env= + yönergeleri sayesinde ortam değişkenlerine dayalı olarak sunucuya + erişim denetim altında tutulabilir. Bunlar SetEnvIf yönergesi ile birlikte + kullanılmak suretiyle sunucuya erişim isteğin özelliklerine bağlı + olarak daha esnek bir tarzda denetlenebilir. Örneğin, belli bir + tarayıcının sunucuya erişimi bu yönergelerle engellenebilir.

    + +
    +
    + Şartlı Günlük Kaydı + +

    Ortam değişkenleri LogFormat yönergesinin %e seçeneği + kullanılarak erişim günlüğüne kaydedilebilir. Bundan başka, + CustomLog yönergesi + sayesinde isteklerin günlüğe kaydedilip kaydedilmeyeceğine ortam + değişkenlerine dayalı olarak karar verilmesi sağlanabilir. Bunlar + SetEnvIf yönergesi ile + birlikte kullanılmak suretiyle günlük kayıtları isteğin + özelliklerine bağlı olarak daha esnek bir tarzda denetlenebilir. + Örneğin, gif uzantılı dosyalar için yapılan isteklerin + günlüğe kaydedilmemesi veya sadece alt ağınızın dışından gelen + isteklerin günlüğe kaydedilmesini isteyebilirsiniz.

    + +
    +
    + Şartlı Yanıt Başlıkları + +

    Header yönergesi belli + bir yanıt başlığının istemciye gönderilip gönderilmeyeceğine belli + bir ortam değişkeninin varlığına bakarak karar vermek için + kullanılabilir. Böylece örneğin, belli bir başlığın istemciye + gönderilmesine istemciden belli bir başlığın alınıp alınmadığına + bağlı olarak karar verilebilir.

    + +
    + +
    + Harici Süzgeçlerin Etkinleştirilmesi + +

    mod_ext_filter tarafından yapılandırılan harici + süzgeçler ExtFilterDefine yönergesinin disableenv= ve + enableenv= seçenekleri kullanılarak bir ortam + değişkenine bağlı olarak etkinleştirilebilir.

    +
    + +
    + URL Kurgulaması + +

    RewriteCond + yönergesinin SınamaDizgesi olarak kullanılan + %{ENV:değişken} biçemi + mod_rewrite yeniden yazma motorunun ortam + değişkenlerine bağlı kararlar almasını mümkün kılar. Yalnız şuna + dikkat ediniz: mod_rewrite’ta ENV: + öneki kullanılmadan belirtilen değişkenler ortam değişkenleri + değillerdir. Onlar mod_rewrite’a özgü diğer + modüllerden erişilemeyen özel değişkenlerdir.

    +
    +
    + +
    + Özel Amaçlı Ortam Değişkenleri + +

    Birlikte çalışabilirlik sorunları Apache’nin belli istemcilerle + veri alışverişi sırasında davranışını değiştirmesini gerektirebilir. + Genellikle SetEnv ve + PassEnv yönergelerinden + başka BrowserMatch + gibi yönergelerle ortam değişkenleri atanarak bunu sağlayan + mekanizmaların olabildiğince esnek davranabilmesi sağlanabilir.

    + +
    + <code>downgrade-1.0</code> + +

    İstek, daha yüksek bir HTTP protokolüyle yapılmış olsa bile + HTTP/1.0 isteği olarak ele alınır.

    + +
    +
    + <code>force-gzip</code> +

    DEFLATE süzgeci etkinse tarayıcının tercih ettiği + kodlama koşulsuz olarak yoksayılarak sıkıştırılmış çıktı + gönderilir.

    +
    +
    + <code>force-no-vary</code> + +

    İstemciye gönderilmeden önce yanıttan Vary alanının + çıkarılmasına sebep olur. Bazı istemciler bu alanı gerektiği gibi + yorumlayamazlar, bu değişken atanarak bu sorunla karşılaşılmamaya + çalışılır. Bu değişkenin atanması ayrıca + force-response-1.0 değişkeninin de atanmasına sebep + olur.

    + +
    +
    + <code>force-response-1.0</code> + +

    HTTP/1.0 isteği yapan istemcilere HTTP/1.0 yanıtı verilmesini zorunlu + kılar. AOL vekillerindeki bir sorun nedeniyle gerçeklenmiştir. Bazı + HTTP/1.0 istemciler HTTP/1.1 yanıtlarında doğru davranmayabilirler; bu + değişken atanarak bunların sorunları giderilebilir.

    + +
    + +
    + <code>gzip-only-text/html</code> + +

    Bu değişkene "1" değeri atandığında text/html’den + farklı içerik türleri için mod_deflate modülü + tarafından sağlanan DEFLATE çıktı süzgeci iptal + edilir. Sıkıştırılmış olarak saklanan dosyalar kullanıyorsanız bu + değişkeni mod_negotiation modülü de dikkate alır + (kimliğine bakarak sadece gzip için değil, tüm kodlamalar için bunu + yapar).

    +
    + +
    <code>no-gzip</code> + +

    Bu değişken atandığında, mod_deflate modülünün + DEFLATE süzgeci kapatılır ve + mod_negotiation modülü kodlanmış kaynak teslimatını + reddeder.

    + +
    +
    no-cache +

    2.2.12'den sonraki sürümlerde kullanılabilmektedir.

    + +

    Atandığı takdirde, mod_cache başka bir + önbelleklenebilir yanıtı kaydetmeyecektir. Bu ortam değişkeni, bir + yanıtın geçerli bir istek için evvelce önbelleğe alınmış olduğu + anlamına gelmez.

    + +
    + +
    + <code>nokeepalive</code> + +

    Bu değişken atandığında, KeepAlive yönergesi iptal edilir.

    + +
    + +
    + <code>prefer-language</code> + +

    Değer olarak en, ja veya + x-klingon gibi bir dil kısaltması verilerek atanmışsa + mod_negotiation modülünün normal davranışını + değiştirerek belirtilen dilde bir teslimat yapılmaya çalışılır. + Böyle bir belge yoksa normal uzlaşım süreci uygulanır.

    + +
    + +
    + <code>redirect-carefully</code> + +

    İstemciye bir yönlendirme gönderirken sunucuyu daha dikkatli olmaya + zorlar. Bu genellikle istemcinin yönlendirmeler konusunda sorunlu + olduğu bilindiği takdirde yararlı olur. Bu değişkenin gerçeklenme + sebebi, dizin kaynaklarına yönlendirmeler için DAV yöntemlerini + kullanan Microsoft'un WebFolders yazılımındaki bir sorundur.

    + +
    + +
    + <code>suppress-error-charset</code> + +

    2.0.54 sürümünden beri mevcuttur.

    + +

    Apache bir isteğe bir yönlendirme ile yanıt verdiğinde istemci + yönlendirmeyi kendiliğinden yapmaz veya yapamazsa kullanıcıya yanıtla + birlikte gönderilen metin gösterilir. Apache normal olarak bu metni + ISO-8859-1 ile kodlar.

    + +

    Ancak, yönlendirmenin yapıldığı sayfa farklı bir karakter kümesine + sahipse bazı tarayıcı sürümleri asıl sayfanın karakter kodlaması yerine + yönlendirmenin kodlamasını kullanmaya çalışırlar. Bu özellikle Yunanca + gibi dillerde hedef sayfanın hatalı yorumlanmasına yol açar.

    + +

    Bu ortam değişkeninin atanması Apache’nin yönlendirme için karakter + kümesi belirtmemesini sağlamak suretiyle hatalı tarayıcıların hedef + sayfayı yanlış karakter kodlamasıyla yorumlamasını önler.

    + + + Güvenlik Uyarısı + +

    Hata sayfalarının bir karakter kümesi belirtilmeksizin yollanması, + HTTP/1.1 belirtimine uymayan ve karakter kümesini içeriğe bakarak + tahmin etmeye çalışan tarayıcılarda (MSIE) karşı siteden betik + saldırısı yorumuna sebep olabilir. Girdi verisindeki UTF-7 içerik + (istek betimleyici gibi) karşı siteden betik saldırılarını engellemek + için tasarlanmış normal önceleme mekanizmalarıyla öncelenmeyeceği için + böyle tarayıcılar UTF-7 karakter kodlaması kullanılarak kolayca + aldatılabilir.

    +
    + +
    + +
    <code>force-proxy-request-1.0</code>, + <code>proxy-nokeepalive</code>, <code>proxy-sendchunked</code> ve + <code>proxy-sendcl</code>, <code>proxy-chain-auth</code>, + <code>proxy-interim-response</code>, <code>proxy-initial-not-pooled</code> + + +

    Bu yönergeler mod_proxy modülünün normal protokol + davranışını değiştirirler. Daha ayrıntılı bilgi için + mod_proxy ve mod_proxy_http + belgelerine bakınız.

    +
    + +
    + +
    + Örnekler + +
    + Protokolü yanlış yorumlayan tarayıcıların davranışlarının + değiştirilmesi + +

    Önceki sürümlerde bilinen istemci davranışlarına karşı önlem olarak + aşağıdaki satırların httpd.conf içinde bulunması + önerilirdi. Fakat, böyle tarayıcılar artık ortalıkta görünmediğinden + bu yapılandırmaya da artık gerek kalmamıştır.

    + +
    +#
    +# Aşağıdaki yönergeler normal HTTP yanıt davranışını değiştirirler.
    +# İlk yönerge Netscape 2.x ve kendini öyle gösteren tarayıcılar için
    +# kalıcı bağlantıyı (keepalive) iptal eder. İkinci yönerge ise HTTP/1.1
    +# protokolü bozuk olan ve 301/302 durum kodlu yönlendirme yanıtları
    +# kullanıldığında kalıcı bağlantıları gerektiği gibi desteklemeyen
    +# Microsoft Internet Explorer 4.0b2 içindir.
    +#
    +BrowserMatch "Mozilla/2" nokeepalive
    +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    +
    +#
    +# Aşağıdaki yönergeler HTTP/1.0 yanıtlarından başkasına yabancı olan
    +# tarayıcılara HTTP/1.1 yanıtlarının gönderilmesini iptal eder.
    +#
    +BrowserMatch "RealPlayer 4\.0" force-response-1.0
    +BrowserMatch "Java/1\.0" force-response-1.0
    +BrowserMatch "JDK/1\.0" force-response-1.0
    +
    + +
    +
    + Resim isteklerinin erişim günlüğüne kaydedilmemesi + +

    Bu örnek resim isteklerinin erişim günlüğüne yazılmasını engeller. + Bu örnek değiştirilerek belli dizinlerin veya belli konaklardan + gelen isteklerin günlüğe kaydedilmesini engellemek amacıyla da + kullanılabilir.

    + + + SetEnvIf Request_URI \.gif image-request
    + SetEnvIf Request_URI \.jpg image-request
    + SetEnvIf Request_URI \.png image-request
    + CustomLog logs/access_log common env=!image-request +
    + +
    +
    + “Resim Hırsızlığı” için önlem alınması + +

    Bu örnekte sunucunuzda bulunmayan sayfalarda sunucunuzdaki + resimlerin kullanılmasının nasıl önleneceği gösterilmiştir. Bu + yapılandırma önerilmemekle birlikte nadir durumlarda işe yarar. Tüm + resimlerin /siteler/resimler dizini altında tutulduğu + varsayılmıştır.

    + + + SetEnvIf Referer "^http://www\.example\.com/" local_referal
    + # Referrer bilgisi göndermeyen tarayıcılara izin verelim
    + SetEnvIf Referer "^$" local_referal
    + <Directory /siteler/resimler> + + Order Deny,Allow
    + Deny from all
    + Allow from env=local_referal +
    + </Directory> +
    + +

    Bu teknik hakkında daha ayrıntılı bilgi edinmek için ServerWatch + üzerindeki "Diğer sitelerin sizin resimlerinizle donatılmasını engellemek" + belgesine bakınız.

    +
    +
    +
    diff --git a/docs/manual/faq/all_in_one.html b/docs/manual/faq/all_in_one.html deleted file mode 100644 index b1ee5968757..00000000000 --- a/docs/manual/faq/all_in_one.html +++ /dev/null @@ -1,11 +0,0 @@ -URI: all_in_one.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 - -URI: all_in_one.html.ja.euc-jp -Content-Language: ja -Content-type: text/html; charset=EUC-JP - -URI: all_in_one.html.ko.euc-kr -Content-Language: ko -Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/faq/all_in_one.html.en b/docs/manual/faq/all_in_one.html.en deleted file mode 100644 index 1a8ac4c82fa..00000000000 --- a/docs/manual/faq/all_in_one.html.en +++ /dev/null @@ -1,257 +0,0 @@ - - - -Frequently Asked Questions - Apache HTTP Server - - - - - -
    <-
    -

    Frequently Asked Questions

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    The latest version of this FAQ is always available from the main Apache - web site, at <http://httpd.apache.org/docs-2.1/faq/>.

    - -

    Since Apache 2.0 is quite new, we don't yet know what the Frequently - Asked Questions will be. While this section fills up, you should also - consult the Apache 1.3 - FAQ to see if your question is answered there.

    -
    - -
    top
    -
    -

    Topics

    -
    Background
    -
    Support
    What do I do when I have problems?
    -
    Error Messages
    What does this error message mean?
    -
    top
    -
    -

    Background

    - - - -

    What is Apache?

    - - -

    The Apache Software Foundation (ASF) is a 501(c)3 non-profit - organization, originating from the development of the Apache HTTPD - Server. For details on the history of the ASF, please see the - Foundation FAQ

    - - -

    What is the Apache HTTP Server?

    - -
      -
    • is a powerful, flexible, HTTP/1.1 compliant web server
    • -
    • implements the latest protocols, including HTTP/1.1 (RFC2616)
    • -
    • is highly configurable and extensible with third-party modules
    • -
    • can be customised by writing 'modules' using the Apache - module API
    • -
    • provides full source code and comes with an - unrestrictive - license
    • -
    • runs on Windows 2003/XP/2000/NT/9x, Netware 5.x and above, OS/2, - and most versions of Unix, as well as several other operating - systems
    • -
    • is actively being developed
    • -
    • encourages user feedback through new ideas, bug reports and - patches
    • -
    - - -

    How thoroughly tested is Apache?

    - - Apache is run on millions of Internet servers. - It has been tested thoroughly by both developers and users. The Apache - HTTP Server Project maintains rigorous standards before releasing new - versions of our server, and our server runs without a hitch on over - 70% of all WWW servers available on the Internet. When bugs do show - up, we release patches and new versions as soon as they are available. - - -

    - - You may NOT use any original artwork from the Apache - Software Foundation, nor make or use modified versions of such - artwork, except under the following conditions: - - For details, or related issues, please contact the Apache Software - Foundation's Public Relations Committee. - -
    top
    -
    -

    Support

    - - -

    "Why can't I ...? Why won't ... work?" What to do in case of - problems

    - - -

    If you are having trouble with your Apache server software, you should - take the following steps:

    - -
    -
    Check the ErrorLog!
    -
    Apache tries to be helpful when it encounters a problem. In many - cases, it will provide some details by writing one or more messages to the - server error log. Sometimes this is enough for you to diagnose & fix - the problem yourself (such as file permissions or the like). The default - location of the error log is - /usr/local/apache2/logs/error_log, but see the ErrorLog directive in your config files for the - location on your server.
    - -
    Check the ErrorLog again!
    -
    Nearly all problems can be solved by reading the error log.
    - -
    Check the FAQ!
    -
    The latest version of the Apache Frequently-Asked Questions list can - always be found at the main Apache web site.
    - -
    Check the Apache bug database
    -
    Most problems that get reported to The Apache Group are recorded in - the bug database. - Please check the existing reports, open - and closed, before adding one. If you find that your - issue has already been reported, please don't add a "me, too" - report. If the original report isn't closed yet, we suggest that you - check it periodically. You might also consider contacting the original - submitter, because there may be an email exchange going on about the - issue that isn't getting recorded in the database.
    - -
    Ask in a user support forum
    -

    Apache has an active community of users who are willing to share - their knowledge. Participating in this community is usually the best and - fastest way to get answers to your questions and problems.

    - -

    Users - mailing list

    - -

    #apache on - Freenode IRC is also available for - user support issues.

    -
    - -
    Please use the bug database for bugs!
    -

    If you've gone through those steps above that are appropriate and - have obtained no relief, then please do let the httpd developers - know about the problem by logging a bug - report.

    - -

    If your problem involves the server crashing and generating a core - dump, please - include a backtrace (if possible).

    -
    -
    - - -

    Whom do I contact for support?

    -

    With millions of users and fewer than sixty volunteer developers, - we cannot provide personal support for Apache. For free support, we - suggest participating in a user forum.

    - -

    Professional, commercial support for Apache is available from - a number of - companies.

    - -
    top
    -
    -

    Error Messages

    - - -

    Invalid argument: - core_output_filter: writing data to the network

    - -

    Apache uses the sendfile syscall on platforms - where it is available in order to speed sending of responses. - Unfortunately, on some systems, Apache will detect the presence of - sendfile at compile-time, even when it does not work - properly. This happens most frequently when using network or - other non-standard file-system.

    - -

    Symptoms of this problem include the above message in the error - log and zero-length responses to non-zero-sized files. The - problem generally occurs only for static files, since dynamic - content usually does not make use of sendfile.

    - -

    To fix this problem, simply use the EnableSendfile directive to disable - sendfile for all or part of your server. Also see - the EnableMMAP, which can - help with similar problems.

    - - - -

    AcceptEx Failed

    - -

    If you get error messages related to the AcceptEx syscall - on win32, see the Win32DisableAcceptEx - directive.

    - - - -

    Premature end of script - headers

    - -

    Most problems with CGI scripts result in this message written in the - error log together with an Internal Server Error delivered - to the browser. A guide to helping debug this type of problem is - available in the CGI - tutorial.

    - - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/all_in_one.html.ja.euc-jp b/docs/manual/faq/all_in_one.html.ja.euc-jp deleted file mode 100644 index e391387b465..00000000000 --- a/docs/manual/faq/all_in_one.html.ja.euc-jp +++ /dev/null @@ -1,206 +0,0 @@ - - - -¤褯¤¢¤ë¼ÁÌä - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¤褯¤¢¤ë¼ÁÌä

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    Apache ¤μ祵¥¤¥ȡ¢<http://httpd.apache.org/docs-2.1/faq/> - ¤«¤éºǿ·ÈǤÎ FAQ ¤ò¾ï¤˼ê¤ËÆþ¤ì¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Apache 2.0 ¤ϤޤÀ¿·¤·¤¤¤Τǡ¢²¿¤¬¤褯¤¢¤ë¼ÁÌä¤ʤΤ« - ¤ޤÀ¤褯¤狼¤äƤ¤¤ޤ»¤󡣤³¤Υ»¥¯¥·¥ç¥ó¤¬Ëä¤ޤäƤ¤¤¯¤ޤǡ¢ - ´û¤˼ÁÌ䤬Åú¤¨¤é¤ì¤Ƥ¤¤뤫¤ɤ¦¤« Apache 1.3 ¤Î FAQ - ¤⸫¤ë¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    - -
    top
    -
    -

    ¥ȥԥå¯

    -
    ¥µ¥ݡ¼¥È
    ²¿¤«ÌäÂ꤬µ¯¤³¤ä¿¤Ȥ­¤ˤɤ¦¤¹¤ë?
    -
    ¥¨¥顼¥á¥å»¡¼¥¸
    ¤³¤Υ¨¥顼¥á¥å»¡¼¥¸¤ΰỌ̃¤Ï?
    -
    top
    -
    -

    ¥µ¥ݡ¼¥È

    - - -

    ¡֤ʤó¤ǡÄ? ¤ɤ¦¤·¤Æưº¤ʤ¤¡Ä?¡×ÌäÂ꤬ - µ¯¤­¤¿¤Ȥ­¤ˤɤ¦¤¹¤뤫

    - - -

    Apache ¤Υµ¡¼¥Х½¥եȥ¦¥§¥¢¤˲¿¤«ÌäÂ꤬µ¯¤³¤ä¿¤Ȥ­¤ϡ¢°ʲ¼¤Î - ¼ê½ç¤˽¾¤äƤ¯¤À¤µ¤¤:

    - -
    -
    ¥¨¥顼¥í¥°¤òĴ¤٤ë!
    -
    ÌäÂ꤬ȯÀ¸¤·¤¿¤Ȥ­¤Ï Apache ¤Ϥʤë¤٤¯¼ê½õ¤±¤򤷤褦¤Ȥ·¤ޤ¹¡£ - ¿¤¯¤ξì¹硢Apache ¤ϥµ¡¼¥ФΥ¨¥顼¥í¥°¤˥á¥å»¡¼¥¸¤ò½񤯤³¤Ȥǡ¢¾ܺ٤Ê - ¾ðÊó¤òÄ󶡤·¤ޤ¹¡£¾ì¹ç¤ˤè¤äƤϡ¢¤³¤ì¤À¤±¤ÇÌäÂê¤ò¼«ʬ¼«¿ȤÇʬÀϤ·¡¢ - ½¤Àµ¤¹¤뤿¤á¤˽½ʬ¤ʾðÊó¤òÆÀ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹ (¥ե¡¥¤¥ë¤Υѡ¼¥ߥå·¥ç¥ó¤Î - ÌäÂê¤ʤÉ)¡£¥¨¥顼¥í¥°¤Υǥե©¥ë¥Ȥξì½ê¤Ï - /usr/local/apache2/logs/error_log ¤Ǥ¹¤¬¡¢¤¢¤ʤ¿¤Υµ¡¼¥Ð - ¤Ǥξì½ê¤òÃΤ뤿¤á¤ˤÏÀßÄê¥ե¡¥¤¥ëÃæ¤Î ErrorLog ¤򸫤Ƥ¯¤À¤µ¤¤¡£
    - -
    FAQ ¤òĴ¤٤ë!
    -
    Apache ¤Τ褯¤¢¤ë¼ÁÌä¤κǿ·ÈǤϾï¤Ë Apache ¤μ祦¥§¥֥µ¥¤¥ȤË - ¤¢¤ê¤ޤ¹¡£
    - -
    Apache ¥Х°¥ǡ¼¥¿¥١¼¥¹¤òĴ¤٤ë
    -
    Apache ¥°¥롼¥פËÊó¹𤵤ì¤ë¤ۤȤó¤ɤÎÌäÂê¤Ï¥Х°¥ǡ¼¥¿¥١¼¥¹¤Ë - µ­Ͽ¤µ¤ì¤ޤ¹¡£Open ¤â closed ¤â ´ޤá¤ơ¢ - ´û¸¤Υì¥ݡ¼¥Ȥˤ¢¤뤫¤ɤ¦¤«¤òĴ¤٤Ƥ¯¤À¤µ¤¤¡£ - ´û¤ËÌäÂ꤬Êó¹𤵤ì¤Ƥ¤¤ë¤Ȥ­¡¢¡ֻä¤â¡פȤ¤¤¦Êó¹ð¤ÏÄɲä·¤ʤ¤¤Ç - ¤¯¤À¤µ¤¤¡£¸µ¤ÎÊó¹ð¤¬ close ¤µ¤ì¤Ƥ¤¤ʤ¤¤Ȥ­¤ϡ¢Äê´üŪ¤Ë - ¥Х°¥ǡ¼¥¿¥١¼¥¹¤òĴ¤٤뤳¤Ȥò¤ªÁ¦¤ᤷ¤ޤ¹¡£¤ޤ¿¡¢¸µ¤ÎÄó½мԤË - ϢÍí¤ò¼è¤뤳¤Ȥâ¹Íθ¤ËÆþ¤ì¤Ƥª¤¯¤Ȥ褤¤Ǥ·¤礦¡£¥ǡ¼¥¿¥١¼¥¹¤Ë - µ­Ͽ¤µ¤ì¤Ƥ¤¤ʤ¤ÅŻҥ᡼¥ë¤θ򴹤¬¹Ԥʤï¤ì¤Ƥ¤¤뤫¤⤷¤ì¤ޤ»¤ó¡£
    - -
    ¥桼¥¶¥µ¥ݡ¼¥ȥե©¡¼¥é¥à¤ǼÁÌ䤹¤ë
    -

    Apache ¤ˤϤè¤í¤³¤ó¤ÇÃ챤ò¶¦ͭ¤µ¤»¤Ƥ¯¤ì¤ë³èȯ¤Ê - ¥桼¥¶¤Υ³¥ߥå¥˥ƥ£¤¬¤¢¤ê¤ޤ¹¡£¤³¤Υ³¥ߥå¥˥ƥ£¤˻²²ä¹¤뤳¤Ȥ¬¡¢ - ÉáÄ̤ϼÁÌä¤äÌäÂê¤ËÂФ¹¤ë²óÅú¤òÆÀ¤ëºÇÁ±¤ǺÇ®¤μêÃʤǤ¹¡£

    - -

    ¥桼¥¶ - ¥᡼¥ê¥󥰥ꥹ¥È

    - -

    USENET ¥˥塼¥¹¥°¥롼¥×:

    - -
    - -
    ¤⤷¡¢Á´Éô¼ºÇԤ·¤¿¾ì¹ç¤ϡ¢ÌäÂê¤ò¥Х°¥ǡ¼¥¿¥١¼¥¹¤ËÊó¹𤷤Ƥ¯¤À¤µ¤¤
    -

    ¾嵭¤μêÃʤÎÃæ¤dzºÅö¤¹¤ë¤â¤Τò¤򤹤٤Ƽè¤äơ¢ - ¤½¤ì¤ǤâÌäÂê¤βò·èºö¤òÆÀ¤é¤ì¤ʤ«¤ä¿¾ì¹ç¤ϡ¢¥Х°¤ÎÊó¹ð¤ò - ¤¹¤뤳¤Ȥˤè¤ꡢÌäÂê¤ò¤¼¤Ò httpd ³«ȯ¼ԤËÃΤ餻¤Ƥ¯¤À¤µ¤¤¡£

    - -

    ¥µ¡¼¥ФΥ¯¥é¥å·¥å¤䥳¥¢¥À¥ó¥פÎȯÀ¸¤¹¤ëÌäÂê¤Ǥ¢¤ì¤С¢(²Äǽ¤Ǥ¢¤ì¤Ð) - ¥Х寥ȥ졼¥¹¤òÊó¹ð¤˴ޤá¤Ƥ¯¤À¤µ¤¤¡£Î㤨¤С¢

    - -

    - # cd ServerRoot
    - # dbx httpd core
    - (dbx) where -

    - -

    (ServerRoot ¤È httpd ¤È core ¥ե¡¥¤¥ë - ¤ΰÌÃ֤òŬÀڤʤâ¤ΤËÃ֤­´¹¤¨¤Ƥ¯¤À¤µ¤¤¡£dbx ¤ÎÂå¤ï¤ê¤Ë - gdb ¤ò»Ȥ¦ɬÍפ¬¤¢¤뤫¤⤷¤ì¤ޤ»¤ó¡£)

    -
    -
    - - -

    ï¤˥µ¥ݡ¼¥ȤòÍê¤á¤Ф褤?

    -

    ¿ôɴËü¤Υ桼¥¶¤ËÂФ·¤ơ¢40̤Ëþ¤Υܥé¥ó¥ƥ£¥¢³«ȯ¼Ԥ·¤«¤¤¤ʤ¤¤¿¤ᡢ - Apache ¤θĿÍŪ¤ʥµ¥ݡ¼¥ȤòÄ󶡤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£̵ÎÁ¤Î - ¥µ¥ݡ¼¥Ȥˤϡ¢¥桼¥¶¤Υե©¡¼¥é¥à¤˻²²ä¹¤ë¤Τ¬Îɤ¤¤Ǥ·¤礦¡£

    - -

    Apache ¤Υץí¤Ρ¢¾¦Íѥµ¥ݡ¼¥Ȥâ - ¿¤¯¤βñ¼Ò - ¤«¤éÄ󶡤µ¤ì¤Ƥ¤¤ޤ¹¡£

    - -
    top
    -
    -

    ¥¨¥顼¥á¥å»¡¼¥¸

    - - -

    Invalid argument: - core_output_filter: writing data to the network

    - -

    (ÌõÃí: ̵¸ú¤ʰú¿ô: core_output_filter: ¥ͥåȥ¥¯¤ؤΥǡ¼¥¿¤Î - ½񤭹þ¤ß)

    - -

    Apache ¤ϱþÅú¤ÎÊÖÁ÷¤ò®¤¯¤¹¤뤿¤á¤ˡ¢sendfile ¥·¥¹¥ƥà - ¥³¡¼¥뤬»ÈÍѲÄǽ¤ʥץé¥åȥե©¡¼¥à¤ǤϤ½¤Υ·¥¹¥ƥॳ¡¼¥ë¤ò»ÈÍѤ·¤ޤ¹¡£ - ¤Ȥ³¤í¤¬¡¢ÅԹç¤ΰ­¤¤¤³¤Ȥˡ¢sendfile ¤¬Àµ¤·¤¯ưº¤ʤ¤¤ˤâ - ´ؤï¤餺¡¢Apache ¤¬¥³¥ó¥ѥ¤¥ë»þ¤Ë¸ºߤò¸¡ÃΤ·¤Ƥ·¤ޤ¦¥·¥¹¥ƥब¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¥ͥåȥ¥¯¥ե¡¥¤¥륷¥¹¥ƥà¤ä¾¤ÎÈóɸ½à¤Υե¡¥¤¥륷¥¹¥ƥà¤ò - »ÈÍѤ·¤Ƥ¤¤ë¤Ȥ­¤˰ìÈ֤褯ȯÀ¸¤·¤ޤ¹¡£

    - -

    ¤³¤ÎÌäÂê¤ξɾõ¤ϡ¢¾嵭¤Υá¥å»¡¼¥¸¤¬¥¨¥顼¥í¥°¤˽񤫤ì¤뤳¤Ȥȡ¢ - ¥µ¥¤¥º¤¬¥¼¥í¤Ǥʤ¤¥ե¡¥¤¥ë¤αþÅú¤¬¥¼¥í¤ˤʤ뤳¤ȤǤ¹¡£ - ưŪ¤ʥ³¥ó¥ƥó¥ĤÏ sendfile ¤òÍøÍѤ·¤ʤ¤¤¿¤ᡢ - ¤³¤ÎÌäÂê¤ÏÄ̾ï¤ÏÀÅŪ¤ʥե¡¥¤¥ë¤ǤΤßȯÀ¸¤·¤ޤ¹¡£

    - -

    ¤³¤ÎÌäÂê¤ϡ¢EnableSendfile ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ơ¢ - ¥µ¡¼¥ФΤ¹¤٤ơ¢¤⤷¤¯¤ϰìÉôʬ¤ËÂФ·¤Æ sendfile ¤ò - ̵¸ú¤ˤ¹¤ë¤À¤±¤ǽ¤Àµ¤Ǥ­¤ޤ¹¡£ƱÍͤÎÌäÂê¤ò²ò·褹¤뤿¤á¤Î - EnableMMAP ¥ǥ£¥쥯¥ƥ£¥֤â - »²¾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - - - -

    AcceptEx Failed

    - -

    (ÌõÃí: AcceptEx ¼ºÇÔ)

    - -

    Win32 ¤ǤÎ AcceptEx ¥·¥¹¥ƥॳ¡¼¥ë¤˴ط¸¤¹¤륨¥顼 - ¥á¥å»¡¼¥¸¤ò¼õ¤±¼è¤ä¿¤Ȥ­¤ϡ¢Win32DisableAcceptEx ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - - - -

    Premature end of script - headers

    - -

    (ÌõÃí: ¥¹¥¯¥ê¥ץȥإåÀ¤ÎÃæÅӽªλ)

    - -

    CGI ¥¹¥¯¥ê¥ץȤΤۤȤó¤ɤÎÌäÂê¤ϥ¨¥顼¥í¥°¤ˤ³¤Υá¥å»¡¼¥¸¤¬½񤫤졢 - ¥֥饦¥¶¤ˤÏ Internal Server Error ¤¬Á÷¤é¤ì¤뤳¤Ȥˤʤê¤ޤ¹¡£ - ¤³¤μï¤ÎÌäÂê¤ΥǥХå°Êýˡ¤Ï CGI - ¥Á¥塼¥ȥꥢ¥ë ¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ޤ¹¡£

    - - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/all_in_one.html.ko.euc-kr b/docs/manual/faq/all_in_one.html.ko.euc-kr deleted file mode 100644 index ef735fd5e10..00000000000 --- a/docs/manual/faq/all_in_one.html.ko.euc-kr +++ /dev/null @@ -1,207 +0,0 @@ - - - -ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) - Apache HTTP Server - - - - - -
    <-
    -

    ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ)

    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    - -

    FAQ ÃֽÅÆÇÀº ¾ÆÆÄġ À¥»çÀÌƮ <http://httpd.apache.org/docs-2.1/faq/>¿¡¼­ º¼ ¼ö - ÀִÙ.

    - -

    ¾ÆÆÄġ 2.0ÀÌ ³ª¿ÂÁö ¾ó¸¶ ¾ȵǼ­ ¿츮´Â ¾ÆÁ÷ ÀÚÁÖ - ¹°¾´Â Áú¹® (FAQ)ÀÌ ¹«¾ùÀÎÁö ¸𸥴Ù. ³»¿ëÀÌ ä¿öÁú - ¶§±îÁö ¿©±⿡ ÇشäÀÌ ¾ø´ٸé ¾ÆÆÄġ - 1.3 FAQµµ Âü°íÇ϶ó.

    -
    - -
    top
    -
    -

    ÁÖÁ¦

    -
    Áö¿ø
    ¹®Á¦°¡ »ý±â¸é ¾°Ô ÇذáÇϳª?
    -
    ¿À·ù¹®
    ÀÌ ¿À·ù¹®ÀÌ ¹«½¼ ¶æÀΰ¡?
    -
    top
    -
    -

    Áö¿ø

    - - -

    "¿Ö ... ¾ȵdzª? ¿Ö ... µ¿ÀÛÇÏÁö ¾ʴ°¡?" ¹®Á¦°¡ »ý±â¸é - ÇÒÀÏ

    - - -

    ¾ÆÆÄġ ¼­¹ö ¼ÒÇÁƮ¿þ¾ ¹®Á¦°¡ »ý±â¸é ´ÙÀ½°ú °°Àº - ´ܰ踦 µû¸¥´Ù:

    - -
    -
    ¿À·ù ·α×(errorlog)¸¦ ȮÀÎÇ϶ó!
    -
    ¾ÆÆÄġ ¼­¹ö´Â ¹®Á¦°¡ »ý±â¸é µµ¿òÀ» ÁַÁ°í ³ë·ÂÇѴÙ. - ¸¹Àº °æ¿ì ¼­¹ö ¿À·ù ·α׿¡ Àڼ¼ÇÑ ³»¿ëÀ» ±â·ÏÇѴÙ. - À̰͸¸À¸·εµ Á÷Á¢ (ÆÄÀϱÇÇÑ µî) ¹®Á¦¸¦ ¹߰ßÇϰí °íĥ ¼ö - Àִ °æ¿찡 ¸¹´Ù. ¿À·ù ·α×ÀÇ ±⺻ À§ġ´Â - /usr/local/apache2/logs/error_logÀÌÁö¸¸, - Á¤ȮÇÑ À§ġ´Â ¼³Á¤ÆÄÀÏÀÇ ErrorLog Áö½þ Âü°íÇ϶ó.
    - -
    FAQ¸¦ - ȮÀÎÇ϶ó!
    -
    ¾ÆÆÄġ À¥»çÀÌƮ¿¡¼­ Ç׻ó ¾ÆÆÄġ FAQ ÃֽÅÆÇÀ» º¼ ¼ö - ÀִÙ.
    - -
    ¾ÆÆÄġ ¹ö±× µ¥ÀÌÅͺ£À̽º¸¦ ȮÀÎÇ϶ó
    -
    ¾ÆÆÄġ±׷ì(The Apache Group)¿¡ º¸°íµÈ ´ëºκÐÀÇ ¹®Á¦´Â - ¹ö±× - µ¥ÀÌÅͺ£À̽º¿¡ ±â·ϵȴÙ. »õ·Î ¹ö±׸¦ Ã߰¡Çϱâ Àü¿¡, - À̹Ì ¾˷ÁÁ³°ųª(open) ÇذáµÈ(closed) ¹ö±װ¡ ÀִÂÁö ȮÀÎÇϱæ - ¹ٶõ´Ù. À̹Ì ¹®Á¦°¡ º¸°íµǾú´ٸé "³ªµµ - À̷± ¹®Á¦°¡ Àִٰí" º¸°íÇÏÁö ¾ʱæ ¹ٶõ´Ù. ¾ÆÁ÷ - ÇذáµÇÁö ¾ʾҴٸé ÁֱâÀûÀ¸·Î »óȲÀ» ȮÀÎÇϱæ ¹ٶõ´Ù. ¶Ç, - µ¥ÀÌÅͺ£À̽º¿¡ ±â·ϵÇÁö ¾ʰí À̸ÞÀÏ ±³ȯÀ¸·Î ÁøÇàµÈ »çÇ×ÀÌ - ÀÖÀ» ¼ö ÀÖÀ¸´Ï óÀ½ ¹®Á¦¸¦ º¸°íÇÑ »ç¶÷¿¡°Ô ¿¬¶ôÇغ¼ ¼öµµ - ÀִÙ.
    - -
    »ç¿ëÀÚ Áö¿ø °ø°£¿¡ - ¹®ÀÇÇѴÙ
    -

    ¾ÆÆÄġ¿¡ ´ëÇÑ Áö½ÄÀ» °øÀ¯Çϱæ ¿øÇϴ Ȱ¹ßÇÑ »ç¿ëÀÚ - °øµ¿üµéÀÌ ÀִÙ. ÀϹÝÀûÀ¸·Î À̷± °øµ¿ü¿¡ Âü¿©Çϴ °ÍÀÌ - ¹®Á¦ÀÇ ´äÀ» ¾ò´Â °¡Àå ÁÁ°í ºü¸¥ ¹æ¹ýÀ̴Ù.

    - -

    »ç¿ëÀÚ - ¸ÞÀϸµ¸®½ºƮ

    - -

    USENET ´º½º±׷ì:

    - -
      -
    • comp.infosystems.www.servers.unix - [news] - [google] -
    • - -
    • comp.infosystems.www.servers.ms-windows - [news] - [google] -
    • - -
    • comp.infosystems.www.authoring.cgi - [news] - [google] -
    • -
    - -
    À§ÀÇ ¹æ¹ýÀÌ ¸ðµÎ ½ÇÆÐÇϸé ¹ö±× µ¥ÀÌÅͺ£À̽º¿¡ ¹®Á¦¸¦ - º¸°íÇѴÙ
    -

    À§ÀÇ ´ܰ踦 ¸ðµÎ ½õµÇϰíµµ ÇذáåÀÌ ¾ø´ٸé, ¹ö±׸¦ - º¸°íÇϿ© À¥¼­¹ö °³¹ßÀڵ鿡°Ô ¹®Á¦¸¦ ¾˸®±æ - ¹ٶõ´Ù.

    - -

    core dump¸¦ ¸¸µé¸ç ¼­¹ö°¡ Á״ °æ¿ì¶ó¸é (°¡´ÉÇϸé) - backtrace(¿ªÁÖ; ¹®Á¦°¡ ½ÇÇàÆÄÀÏÀÇ Á¤ȮÈ÷ ¾ ÁöÁ¡¿¡¼­ - ¹߻ýÇϿ´°í, ÇÁ·α׷¥ÀÌ ±× ÁöÁ¡±îÁö ¾ °æ·ηÎ ½ÇÇàµǾú´ÂÁö¸¦ - ¾˷ÁÁִ Á¤º¸)¸¦ Æ÷ÇÔÇϱæ ¹ٶõ´Ù. ¿¹¸¦ µé¾î,

    - -

    - # cd ServerRoot
    - # dbx httpd core
    - (dbx) where -

    - -

    (ServerRoot, httpd, core - ÆÄÀÏÀÇ ½ÇÁ¦ À§ġ¸¦ ´ë½Å »ç¿ëÇ϶ó. dbx ´ë½Å - gdb¸¦ »ç¿ëÇؾß ÇÒ ¼öµµ ÀִÙ.)

    -
    -
    - - -

    µµ¿òÀ» ¾òÀ¸·Á¸é ´©±¸¿¡°Ô - ¿¬¶ôÇϳª?

    -

    40¸í °¡·®ÀÇ ÀڹßÀûÀ¸·Î Âü¿©ÇÑ °³¹ßÀڸ¸À¸·δ ¼ö¹鸸ÀÇ - »ç¿ëÀڿ¡°Ô ¾ÆÆÄġ¿¡ ´ëÇØ ÀÏÀÏÀÌ Áö¿øÇÒ ¼ö ¾ø´Ù. ¹«·á Áö¿øÀ» - ¾òÀ¸·Á¸é »ç¿ëÀÚ - °ø°£¿¡ Âü¿©Çϱæ ±ÇÇѴÙ.

    - -

    ¾ÆÆÄġ¿¡ ´ëÇÑ Á÷¾÷ÀûÀÎ À¯·á Áö¿øÀº ¿©·¯ - ȸ»ç¿¡¼­ Á¦°øÇѴÙ.

    - -
    top
    -
    -

    ¿À·ù¹®

    - - -

    Invalid argument: - core_output_filter: writing data to the network

    - -

    Ç÷¡ÆûÀÌ sendfile ½ýºÅÛȣÃâÀ» Áö¿øÇѴٸé, - ¾ÆÆÄġ´Â ÀÀ´äÀÇ ¼ӵµ¸¦ ºü¸£°ÔÇϱâÀ§ÇØ ÀÌ ½ýºÅÛȣÃâÀ» »ç¿ëÇѴÙ. - ºÒÇàÈ÷µµ ¾ ½ýºÅۿ¡¼­ ¾ÆÆÄġ´Â ÄÄÆÄÀÏÇҶ§ - sendfileÀÌ Á¤»óÀûÀ¸·Î À۵¿ÇÏÁö ¾ʴµ¥µµ Á¤»óÀûÀ¸·Î - À۵¿ÇѴٰí ¿ÀÆÇÇѴÙ. ÀÌ ¹®Á¦´Â ³×Ʈ¿÷ ÆÄÀϽýºÅÛÀ̳ª ºñǥÁØ - ÆÄÀϽýºÅÛÀ» »ç¿ëÇҶ§ ÀÚÁÖ ¹߻ýÇѴÙ.

    - -

    ÀÌ ¹®Á¦ÀÇ Áõ»óÀº ¿À·ù ·α×(error log)¿¡ À§ÀÇ ¹®±¸¸¦ - ±â·ÏÇϰųª ũ±Ⱑ 0ÀÌ ¾ƴÑ ÆÄÀϿ¡ ´ëÇØ ũ±Ⱑ 0ÀÎ ÀÀ´äÀ» - Çϴ °æ¿ìÀ̴Ù. µ¿ÀûÀ¸·Î ³»¿ëÀ» »ý¼ºÇҶ§´Â - sendfileÀ» »ç¿ëÇÏÁö ¾ʱ⶧¹®¿¡ ÀϹÝÀûÀ¸·Î Á¤ÀûÀÎ - ÆÄÀÏÀ» ¿äûÇҶ§¸¸ ¹®Á¦°¡ ¹߻ýÇѴÙ.

    - -

    ¹®Á¦¸¦ ÇذáÇϷÁ¸é ¼­¹ö°¡ sendfileÀ» »ç¿ëÇÏÁö - ¾ʵµ·Ï EnableSendfile - Áö½þ »ç¿ëÇѴÙ. ¶Ç, À̿Í À¯»çÇÑ ¹®Á¦¿¡ ´ëÇØ EnableMMAPÀ» Âü°íÇ϶ó.

    - - - -

    AcceptEx Failed

    - -

    win32¿¡¼­ AcceptEx ½ýºÅÛȣÃ⿡ ´ëÇÑ ¿À·ù¹®À» - ³ª¿À¸é, Win32DisableAcceptEx - Áö½þ Âü°íÇ϶ó.

    - - - -

    Premature end of script - headers

    - -

    º¸Åë CGI ½ºũ¸³Ʈ¿¡ ¹®Á¦°¡ ÀÖÀ¸¸é ºê¶ó¿ìÀú¿¡°Ô Internal - Server Error¸¦ º¸³»°í ¿À·ù·α׿¡ ÀÌ ¹®±¸¸¦ ±â·ÏÇѴÙ. - À̷± ¹®Á¦¸¦ µð¹ö±ëÇҶ§ CGI ÅõÅ丮¾óÀÌ - µµ¿òÀÌ µÉ ¼ö ÀִÙ.

    - - -
    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/all_in_one.xml b/docs/manual/faq/all_in_one.xml deleted file mode 100644 index f4c210940d2..00000000000 --- a/docs/manual/faq/all_in_one.xml +++ /dev/null @@ -1,44 +0,0 @@ - - -]> - - - - - - -FAQ - -Frequently Asked Questions - - -

    The latest version of this FAQ is always available from the main Apache - web site, at <http://httpd.apache.org/docs-2.1/faq/>.

    - -

    Since Apache 2.0 is quite new, we don't yet know what the Frequently - Asked Questions will be. While this section fills up, you should also - consult the Apache 1.3 - FAQ to see if your question is answered there.

    -
    - -&categories; - -
    - diff --git a/docs/manual/faq/all_in_one.xml.ja b/docs/manual/faq/all_in_one.xml.ja deleted file mode 100644 index f1458092af9..00000000000 --- a/docs/manual/faq/all_in_one.xml.ja +++ /dev/null @@ -1,46 +0,0 @@ - - -]> - - - - - - -FAQ - -$B$h$/$"$k<ALd(B - - -

    Apache $B$Nhttp://httpd.apache.org/docs-2.1/faq/> - $B$+$i:G?7HG$N(B FAQ $B$r>o$K - -

    Apache 2.0 $B$O$^$@?7$7$$$N$G!"2?$,(B$B$h$/$"$k$B$J$N$+(B - $B$^$@$h$/$o$+$C$F$$$^$;$s!#$3$N%;%/%7%g%s$,Kd$^$C$F$$$/$^$G!"(B - $B4{$KApache 1.3 $B$N(B FAQ - $B$b8+$k$h$&$K$7$F$/$@$5$$!#(B

    -
    - -&categories; - -
    - diff --git a/docs/manual/faq/all_in_one.xml.ko b/docs/manual/faq/all_in_one.xml.ko deleted file mode 100644 index 40da0360b10..00000000000 --- a/docs/manual/faq/all_in_one.xml.ko +++ /dev/null @@ -1,46 +0,0 @@ - - -]> - - - - - - -FAQ - -ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) - - -

    FAQ ÃֽÅÆÇÀº ¾ÆÆÄġ À¥»çÀÌƮ <http://httpd.apache.org/docs-2.1/faq/>¿¡¼­ º¼ ¼ö - ÀִÙ.

    - -

    ¾ÆÆÄġ 2.0ÀÌ ³ª¿ÂÁö ¾ó¸¶ ¾ȵǼ­ ¿츮´Â ¾ÆÁ÷ ÀÚÁÖ - ¹°¾´Â Áú¹® (FAQ)ÀÌ ¹«¾ùÀÎÁö ¸𸥴Ù. ³»¿ëÀÌ ä¿öÁú - ¶§±îÁö ¿©±⿡ ÇشäÀÌ ¾ø´ٸé ¾ÆÆÄġ - 1.3 FAQµµ Âü°íÇ϶ó.

    -
    - -&categories; - -
    - diff --git a/docs/manual/faq/all_in_one.xml.meta b/docs/manual/faq/all_in_one.xml.meta deleted file mode 100644 index 56ed899da8a..00000000000 --- a/docs/manual/faq/all_in_one.xml.meta +++ /dev/null @@ -1,13 +0,0 @@ - - - - all_in_one - /faq/ - .. - - - en - ja - ko - - diff --git a/docs/manual/faq/background.xml b/docs/manual/faq/background.xml deleted file mode 100644 index 066d60efc3f..00000000000 --- a/docs/manual/faq/background.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - -FAQ - -Background - Frequently Asked Questions -
    Background - - - -
    - What is Apache? - -

    The Apache Software Foundation (ASF) is a 501(c)3 non-profit - organization, originating from the development of the Apache HTTPD - Server. For details on the history of the ASF, please see the - Foundation FAQ

    -
    - -
    - What is the Apache HTTP Server? -
      -
    • is a powerful, flexible, HTTP/1.1 compliant web server
    • -
    • implements the latest protocols, including HTTP/1.1 (RFC2616)
    • is highly configurable and extensible with third-party modules
    • can be customised by writing 'modules' using the Apache - module API
    • provides full source code and comes with an - unrestrictive - license
    • runs on Windows 2003/XP/2000/NT/9x, Netware 5.x and above, OS/2, - and most versions of Unix, as well as several other operating - systems
    • is actively being developed
    • encourages user feedback through new ideas, bug reports and - patches
    • -
    -
    - -
    - How thoroughly tested is Apache? - Apache is run on millions of Internet servers. - It has been tested thoroughly by both developers and users. The Apache - HTTP Server Project maintains rigorous standards before releasing new - versions of our server, and our server runs without a hitch on over - 70% of all WWW servers available on the Internet. When bugs do show - up, we release patches and new versions as soon as they are available. -
    - - -
    -
    diff --git a/docs/manual/faq/background.xml.meta b/docs/manual/faq/background.xml.meta deleted file mode 100644 index 896b2885ec6..00000000000 --- a/docs/manual/faq/background.xml.meta +++ /dev/null @@ -1,11 +0,0 @@ - - - - background - /faq/ - .. - - - en - - diff --git a/docs/manual/faq/categories.xml b/docs/manual/faq/categories.xml deleted file mode 100644 index d10e1a4d13b..00000000000 --- a/docs/manual/faq/categories.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - background.xml - support.xml - error.xml - diff --git a/docs/manual/faq/categories.xml.ja b/docs/manual/faq/categories.xml.ja deleted file mode 100644 index 7cc5d0928a5..00000000000 --- a/docs/manual/faq/categories.xml.ja +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - support.xml.ja - error.xml.ja - diff --git a/docs/manual/faq/categories.xml.ko b/docs/manual/faq/categories.xml.ko deleted file mode 100644 index 67e664cf61c..00000000000 --- a/docs/manual/faq/categories.xml.ko +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - support.xml.ko - error.xml.ko - diff --git a/docs/manual/faq/error.html b/docs/manual/faq/error.html deleted file mode 100644 index 7bbf1a051f8..00000000000 --- a/docs/manual/faq/error.html +++ /dev/null @@ -1,11 +0,0 @@ -URI: error.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 - -URI: error.html.ja.euc-jp -Content-Language: ja -Content-type: text/html; charset=EUC-JP - -URI: error.html.ko.euc-kr -Content-Language: ko -Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/faq/error.html.en b/docs/manual/faq/error.html.en deleted file mode 100644 index d0dae8ea149..00000000000 --- a/docs/manual/faq/error.html.en +++ /dev/null @@ -1,85 +0,0 @@ - - - -Error Messages - Frequently Asked Questions - Apache HTTP Server - - - - - -
    <-
    -

    Error Messages - Frequently Asked Questions

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -
    -
    top
    -
    -

    Error Messages

    - - -

    Invalid argument: - core_output_filter: writing data to the network

    - -

    Apache uses the sendfile syscall on platforms - where it is available in order to speed sending of responses. - Unfortunately, on some systems, Apache will detect the presence of - sendfile at compile-time, even when it does not work - properly. This happens most frequently when using network or - other non-standard file-system.

    - -

    Symptoms of this problem include the above message in the error - log and zero-length responses to non-zero-sized files. The - problem generally occurs only for static files, since dynamic - content usually does not make use of sendfile.

    - -

    To fix this problem, simply use the EnableSendfile directive to disable - sendfile for all or part of your server. Also see - the EnableMMAP, which can - help with similar problems.

    - - - -

    AcceptEx Failed

    - -

    If you get error messages related to the AcceptEx syscall - on win32, see the Win32DisableAcceptEx - directive.

    - - - -

    Premature end of script - headers

    - -

    Most problems with CGI scripts result in this message written in the - error log together with an Internal Server Error delivered - to the browser. A guide to helping debug this type of problem is - available in the CGI - tutorial.

    - - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/error.html.ja.euc-jp b/docs/manual/faq/error.html.ja.euc-jp deleted file mode 100644 index 52d25152aeb..00000000000 --- a/docs/manual/faq/error.html.ja.euc-jp +++ /dev/null @@ -1,91 +0,0 @@ - - - -¥¨¥顼¥á¥å»¡¼¥¸ ¡½ ¤褯¤¢¤ë¼ÁÌä - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥¨¥顼¥á¥å»¡¼¥¸ ¡½ ¤褯¤¢¤ë¼ÁÌä

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -
    -
    top
    -
    -

    ¥¨¥顼¥á¥å»¡¼¥¸

    - - -

    Invalid argument: - core_output_filter: writing data to the network

    - -

    (ÌõÃí: ̵¸ú¤ʰú¿ô: core_output_filter: ¥ͥåȥ¥¯¤ؤΥǡ¼¥¿¤Î - ½񤭹þ¤ß)

    - -

    Apache ¤ϱþÅú¤ÎÊÖÁ÷¤ò®¤¯¤¹¤뤿¤á¤ˡ¢sendfile ¥·¥¹¥ƥà - ¥³¡¼¥뤬»ÈÍѲÄǽ¤ʥץé¥åȥե©¡¼¥à¤ǤϤ½¤Υ·¥¹¥ƥॳ¡¼¥ë¤ò»ÈÍѤ·¤ޤ¹¡£ - ¤Ȥ³¤í¤¬¡¢ÅԹç¤ΰ­¤¤¤³¤Ȥˡ¢sendfile ¤¬Àµ¤·¤¯ưº¤ʤ¤¤ˤâ - ´ؤï¤餺¡¢Apache ¤¬¥³¥ó¥ѥ¤¥ë»þ¤Ë¸ºߤò¸¡ÃΤ·¤Ƥ·¤ޤ¦¥·¥¹¥ƥब¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¥ͥåȥ¥¯¥ե¡¥¤¥륷¥¹¥ƥà¤ä¾¤ÎÈóɸ½à¤Υե¡¥¤¥륷¥¹¥ƥà¤ò - »ÈÍѤ·¤Ƥ¤¤ë¤Ȥ­¤˰ìÈ֤褯ȯÀ¸¤·¤ޤ¹¡£

    - -

    ¤³¤ÎÌäÂê¤ξɾõ¤ϡ¢¾嵭¤Υá¥å»¡¼¥¸¤¬¥¨¥顼¥í¥°¤˽񤫤ì¤뤳¤Ȥȡ¢ - ¥µ¥¤¥º¤¬¥¼¥í¤Ǥʤ¤¥ե¡¥¤¥ë¤αþÅú¤¬¥¼¥í¤ˤʤ뤳¤ȤǤ¹¡£ - ưŪ¤ʥ³¥ó¥ƥó¥ĤÏ sendfile ¤òÍøÍѤ·¤ʤ¤¤¿¤ᡢ - ¤³¤ÎÌäÂê¤ÏÄ̾ï¤ÏÀÅŪ¤ʥե¡¥¤¥ë¤ǤΤßȯÀ¸¤·¤ޤ¹¡£

    - -

    ¤³¤ÎÌäÂê¤ϡ¢EnableSendfile ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ơ¢ - ¥µ¡¼¥ФΤ¹¤٤ơ¢¤⤷¤¯¤ϰìÉôʬ¤ËÂФ·¤Æ sendfile ¤ò - ̵¸ú¤ˤ¹¤ë¤À¤±¤ǽ¤Àµ¤Ǥ­¤ޤ¹¡£ƱÍͤÎÌäÂê¤ò²ò·褹¤뤿¤á¤Î - EnableMMAP ¥ǥ£¥쥯¥ƥ£¥֤â - »²¾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - - - -

    AcceptEx Failed

    - -

    (ÌõÃí: AcceptEx ¼ºÇÔ)

    - -

    Win32 ¤ǤÎ AcceptEx ¥·¥¹¥ƥॳ¡¼¥ë¤˴ط¸¤¹¤륨¥顼 - ¥á¥å»¡¼¥¸¤ò¼õ¤±¼è¤ä¿¤Ȥ­¤ϡ¢Win32DisableAcceptEx ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - - - -

    Premature end of script - headers

    - -

    (ÌõÃí: ¥¹¥¯¥ê¥ץȥإåÀ¤ÎÃæÅӽªλ)

    - -

    CGI ¥¹¥¯¥ê¥ץȤΤۤȤó¤ɤÎÌäÂê¤ϥ¨¥顼¥í¥°¤ˤ³¤Υá¥å»¡¼¥¸¤¬½񤫤졢 - ¥֥饦¥¶¤ˤÏ Internal Server Error ¤¬Á÷¤é¤ì¤뤳¤Ȥˤʤê¤ޤ¹¡£ - ¤³¤μï¤ÎÌäÂê¤ΥǥХå°Êýˡ¤Ï CGI - ¥Á¥塼¥ȥꥢ¥ë ¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ޤ¹¡£

    - - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/error.html.ko.euc-kr b/docs/manual/faq/error.html.ko.euc-kr deleted file mode 100644 index 302749d204c..00000000000 --- a/docs/manual/faq/error.html.ko.euc-kr +++ /dev/null @@ -1,84 +0,0 @@ - - - -¿À·ù¹® - ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) - Apache HTTP Server - - - - - -
    <-
    -

    ¿À·ù¹® - ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ)

    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    -
    -
    top
    -
    -

    ¿À·ù¹®

    - - -

    Invalid argument: - core_output_filter: writing data to the network

    - -

    Ç÷¡ÆûÀÌ sendfile ½ýºÅÛȣÃâÀ» Áö¿øÇѴٸé, - ¾ÆÆÄġ´Â ÀÀ´äÀÇ ¼ӵµ¸¦ ºü¸£°ÔÇϱâÀ§ÇØ ÀÌ ½ýºÅÛȣÃâÀ» »ç¿ëÇѴÙ. - ºÒÇàÈ÷µµ ¾ ½ýºÅۿ¡¼­ ¾ÆÆÄġ´Â ÄÄÆÄÀÏÇҶ§ - sendfileÀÌ Á¤»óÀûÀ¸·Î À۵¿ÇÏÁö ¾ʴµ¥µµ Á¤»óÀûÀ¸·Î - À۵¿ÇѴٰí ¿ÀÆÇÇѴÙ. ÀÌ ¹®Á¦´Â ³×Ʈ¿÷ ÆÄÀϽýºÅÛÀ̳ª ºñǥÁØ - ÆÄÀϽýºÅÛÀ» »ç¿ëÇҶ§ ÀÚÁÖ ¹߻ýÇѴÙ.

    - -

    ÀÌ ¹®Á¦ÀÇ Áõ»óÀº ¿À·ù ·α×(error log)¿¡ À§ÀÇ ¹®±¸¸¦ - ±â·ÏÇϰųª ũ±Ⱑ 0ÀÌ ¾ƴÑ ÆÄÀϿ¡ ´ëÇØ ũ±Ⱑ 0ÀÎ ÀÀ´äÀ» - Çϴ °æ¿ìÀ̴Ù. µ¿ÀûÀ¸·Î ³»¿ëÀ» »ý¼ºÇҶ§´Â - sendfileÀ» »ç¿ëÇÏÁö ¾ʱ⶧¹®¿¡ ÀϹÝÀûÀ¸·Î Á¤ÀûÀÎ - ÆÄÀÏÀ» ¿äûÇҶ§¸¸ ¹®Á¦°¡ ¹߻ýÇѴÙ.

    - -

    ¹®Á¦¸¦ ÇذáÇϷÁ¸é ¼­¹ö°¡ sendfileÀ» »ç¿ëÇÏÁö - ¾ʵµ·Ï EnableSendfile - Áö½þ »ç¿ëÇѴÙ. ¶Ç, À̿Í À¯»çÇÑ ¹®Á¦¿¡ ´ëÇØ EnableMMAPÀ» Âü°íÇ϶ó.

    - - - -

    AcceptEx Failed

    - -

    win32¿¡¼­ AcceptEx ½ýºÅÛȣÃ⿡ ´ëÇÑ ¿À·ù¹®À» - ³ª¿À¸é, Win32DisableAcceptEx - Áö½þ Âü°íÇ϶ó.

    - - - -

    Premature end of script - headers

    - -

    º¸Åë CGI ½ºũ¸³Ʈ¿¡ ¹®Á¦°¡ ÀÖÀ¸¸é ºê¶ó¿ìÀú¿¡°Ô Internal - Server Error¸¦ º¸³»°í ¿À·ù·α׿¡ ÀÌ ¹®±¸¸¦ ±â·ÏÇѴÙ. - À̷± ¹®Á¦¸¦ µð¹ö±ëÇҶ§ CGI ÅõÅ丮¾óÀÌ - µµ¿òÀÌ µÉ ¼ö ÀִÙ.

    - - -
    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/error.xml b/docs/manual/faq/error.xml deleted file mode 100644 index 5eb0a20223d..00000000000 --- a/docs/manual/faq/error.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - -FAQ - -Error Messages - Frequently Asked Questions -What does this error message mean? - - - -
    Error Messages - - -
    Invalid argument: - core_output_filter: writing data to the network - -

    Apache uses the sendfile syscall on platforms - where it is available in order to speed sending of responses. - Unfortunately, on some systems, Apache will detect the presence of - sendfile at compile-time, even when it does not work - properly. This happens most frequently when using network or - other non-standard file-system.

    - -

    Symptoms of this problem include the above message in the error - log and zero-length responses to non-zero-sized files. The - problem generally occurs only for static files, since dynamic - content usually does not make use of sendfile.

    - -

    To fix this problem, simply use the EnableSendfile directive to disable - sendfile for all or part of your server. Also see - the EnableMMAP, which can - help with similar problems.

    - -
    - -
    AcceptEx Failed - -

    If you get error messages related to the AcceptEx syscall - on win32, see the Win32DisableAcceptEx - directive.

    -
    - - -
    Premature end of script - headers - -

    Most problems with CGI scripts result in this message written in the - error log together with an Internal Server Error delivered - to the browser. A guide to helping debug this type of problem is - available in the CGI - tutorial.

    -
    - -
    - -
    - diff --git a/docs/manual/faq/error.xml.ja b/docs/manual/faq/error.xml.ja deleted file mode 100644 index 6c781a9e4c7..00000000000 --- a/docs/manual/faq/error.xml.ja +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - -FAQ - -$B%(%i!<%a%C%;!<%8(B $B!=(B $B$h$/$"$k<ALd(B -$B$3$N%(%i!<%a%C%;!<%8$N0UL#$O(B? - -
    $B%(%i!<%a%C%;!<%8(B - - -
    Invalid argument: - core_output_filter: writing data to the network - -

    ($BLuCm(B: $BL58z$J0z?t(B: core_output_filter: $B%M%C%H%o!<%/$X$N%G!<%?$N(B - $B=q$-9~$_(B)

    - -

    Apache $B$O1~Ez$NJVAw$rB.$/$9$k$?$a$K!"(Bsendfile $B%7%9%F%`(B - $B%3!<%k$,;HMQ2DG=$J%W%i%C%H%U%)!<%`$G$O$=$N%7%9%F%`%3!<%k$r;HMQ$7$^$9!#(B - $B$H$3$m$,!"ET9g$N0-$$$3$H$K!"(Bsendfile $B$,@5$7$/F0:n$7$J$$$K$b(B - $B4X$o$i$:!"(BApache $B$,%3%s%Q%$%k;~$KB8:_$r8!CN$7$F$7$^$&%7%9%F%`$,$"$j$^$9!#(B - $B$3$l$O!"%M%C%H%o!<%/%U%!%$%k%7%9%F%`$dB>$NHsI8=`$N%U%!%$%k%7%9%F%`$r(B - $B;HMQ$7$F$$$k$H$-$K0lHV$h$/H/@8$7$^$9!#(B

    - -

    $B$3$NLdBj$N>I>u$O!">e5-$N%a%C%;!<%8$,%(%i!<%m%0$K=q$+$l$k$3$H$H!"(B - $B%5%$%:$,%<%m$G$J$$%U%!%$%k$N1~Ez$,%<%m$K$J$k$3$H$G$9!#(B - $BF0E*$J%3%s%F%s%D$O(B sendfile $B$rMxMQ$7$J$$$?$a!"(B - $B$3$NLdBj$ODL>o$O@EE*$J%U%!%$%k$G$N$_H/@8$7$^$9!#(B

    - -

    $B$3$NLdBj$O!"(BEnableSendfile $B%G%#%l%/%F%#%V$r;HMQ$7$F!"(B - $B%5!<%P$N$9$Y$F!"$b$7$/$O0lItJ,$KBP$7$F(B sendfile $B$r(B - $BL58z$K$9$k$@$1$G=$@5$G$-$^$9!#F1MM$NLdBj$r2r7h$9$k$?$a$N(B - EnableMMAP $B%G%#%l%/%F%#%V$b(B - $B;2>H$7$F$/$@$5$$!#(B

    - -
    - -
    AcceptEx Failed - -

    ($BLuCm(B: AcceptEx $B<:GT(B)

    - -

    Win32 $B$G$N(B AcceptEx $B%7%9%F%`%3!<%k$K4X78$9$k%(%i!<(B - $B%a%C%;!<%8$rWin32DisableAcceptEx $B$r;2>H$7$F$/$@$5$$!#(B

    -
    - - -
    Premature end of script - headers - -

    ($BLuCm(B: $B%9%/%j%W%H%X%C%@$NCfES=*N;(B)

    - -

    CGI $B%9%/%j%W%H$N$[$H$s$I$NLdBj$O%(%i!<%m%0$K$3$N%a%C%;!<%8$,=q$+$l!"(B - $B%V%i%&%6$K$O(B Internal Server Error $B$,Aw$i$l$k$3$H$K$J$j$^$9!#(B - $B$3$NCGI - $B%A%e!<%H%j%"%k(B $B$G@bL@$5$l$F$$$^$9!#(B

    -
    - -
    - -
    - diff --git a/docs/manual/faq/error.xml.ko b/docs/manual/faq/error.xml.ko deleted file mode 100644 index 0906e84bdff..00000000000 --- a/docs/manual/faq/error.xml.ko +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - -FAQ - -¿À·ù¹® - ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) -ÀÌ ¿À·ù¹®ÀÌ ¹«½¼ ¶æÀΰ¡? - - - -
    ¿À·ù¹® - - -
    Invalid argument: - core_output_filter: writing data to the network - -

    Ç÷¡ÆûÀÌ sendfile ½ýºÅÛȣÃâÀ» Áö¿øÇѴٸé, - ¾ÆÆÄġ´Â ÀÀ´äÀÇ ¼ӵµ¸¦ ºü¸£°ÔÇϱâÀ§ÇØ ÀÌ ½ýºÅÛȣÃâÀ» »ç¿ëÇѴÙ. - ºÒÇàÈ÷µµ ¾ ½ýºÅۿ¡¼­ ¾ÆÆÄġ´Â ÄÄÆÄÀÏÇҶ§ - sendfileÀÌ Á¤»óÀûÀ¸·Î À۵¿ÇÏÁö ¾ʴµ¥µµ Á¤»óÀûÀ¸·Î - À۵¿ÇѴٰí ¿ÀÆÇÇѴÙ. ÀÌ ¹®Á¦´Â ³×Ʈ¿÷ ÆÄÀϽýºÅÛÀ̳ª ºñǥÁØ - ÆÄÀϽýºÅÛÀ» »ç¿ëÇҶ§ ÀÚÁÖ ¹߻ýÇѴÙ.

    - -

    ÀÌ ¹®Á¦ÀÇ Áõ»óÀº ¿À·ù ·α×(error log)¿¡ À§ÀÇ ¹®±¸¸¦ - ±â·ÏÇϰųª ũ±Ⱑ 0ÀÌ ¾ƴÑ ÆÄÀϿ¡ ´ëÇØ ũ±Ⱑ 0ÀÎ ÀÀ´äÀ» - Çϴ °æ¿ìÀ̴Ù. µ¿ÀûÀ¸·Î ³»¿ëÀ» »ý¼ºÇҶ§´Â - sendfileÀ» »ç¿ëÇÏÁö ¾ʱ⶧¹®¿¡ ÀϹÝÀûÀ¸·Î Á¤ÀûÀÎ - ÆÄÀÏÀ» ¿äûÇҶ§¸¸ ¹®Á¦°¡ ¹߻ýÇѴÙ.

    - -

    ¹®Á¦¸¦ ÇذáÇϷÁ¸é ¼­¹ö°¡ sendfileÀ» »ç¿ëÇÏÁö - ¾ʵµ·Ï EnableSendfile - Áö½þ »ç¿ëÇѴÙ. ¶Ç, À̿Í À¯»çÇÑ ¹®Á¦¿¡ ´ëÇØ EnableMMAPÀ» Âü°íÇ϶ó.

    - -
    - -
    AcceptEx Failed - -

    win32¿¡¼­ AcceptEx ½ýºÅÛȣÃ⿡ ´ëÇÑ ¿À·ù¹®À» - ³ª¿À¸é, Win32DisableAcceptEx - Áö½þ Âü°íÇ϶ó.

    -
    - - -
    Premature end of script - headers - -

    º¸Åë CGI ½ºũ¸³Ʈ¿¡ ¹®Á¦°¡ ÀÖÀ¸¸é ºê¶ó¿ìÀú¿¡°Ô Internal - Server Error¸¦ º¸³»°í ¿À·ù·α׿¡ ÀÌ ¹®±¸¸¦ ±â·ÏÇѴÙ. - À̷± ¹®Á¦¸¦ µð¹ö±ëÇҶ§ CGI ÅõÅ丮¾óÀÌ - µµ¿òÀÌ µÉ ¼ö ÀִÙ.

    -
    - -
    - -
    - diff --git a/docs/manual/faq/error.xml.meta b/docs/manual/faq/error.xml.meta deleted file mode 100644 index d202df6763f..00000000000 --- a/docs/manual/faq/error.xml.meta +++ /dev/null @@ -1,13 +0,0 @@ - - - - error - /faq/ - .. - - - en - ja - ko - - diff --git a/docs/manual/faq/index.html b/docs/manual/faq/index.html index 9ee330865b7..f39eed48e03 100644 --- a/docs/manual/faq/index.html +++ b/docs/manual/faq/index.html @@ -1,11 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: index.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: index.html.ja.euc-jp -Content-Language: ja -Content-type: text/html; charset=EUC-JP +URI: index.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 -URI: index.html.ko.euc-kr -Content-Language: ko -Content-type: text/html; charset=EUC-KR +URI: index.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/faq/index.html.en b/docs/manual/faq/index.html.en index 9f478003172..43eaa9f31fb 100644 --- a/docs/manual/faq/index.html.en +++ b/docs/manual/faq/index.html.en @@ -1,50 +1,47 @@ - -Frequently Asked Questions - Apache HTTP Server +Frequently Asked Questions - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Frequently Asked Questions

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Frequently Asked Questions

    Available Languages:  en  | - ja  | - ko 

    + tr  | + zh-cn 

    -

    The latest version of this FAQ is always available from the - main Apache web site, at <http://httpd.apache.org/docs-2.1/faq/>. In addition, you can view - this FAQ all in one page for easy searching - and printing.

    - -

    Since Apache 2.0 is quite new, we don't yet know what the - Frequently Asked Questions will be. While this section fills up, - you should also consult the Apache 1.3 FAQ to see - if your question is answered there.

    +

    The FAQ has moved to the HTTP Server Wiki.

    +
    -
    top
    -
    -

    Topics

    -
    Background
    -
    Support
    What do I do when I have problems?
    -
    Error Messages
    What does this error message mean?
    -

    Available Languages:  en  | - ja  | - ko 

    + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/faq/index.html.ja.euc-jp b/docs/manual/faq/index.html.ja.euc-jp deleted file mode 100644 index bdccf74a781..00000000000 --- a/docs/manual/faq/index.html.ja.euc-jp +++ /dev/null @@ -1,49 +0,0 @@ - - - -¤褯¤¢¤ë¼ÁÌä - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¤褯¤¢¤ë¼ÁÌä

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    Apache ¤μ祵¥¤¥ȡ¢<http://httpd.apache.org/docs-2.1/faq/> - ¤«¤éºǿ·ÈǤÎ FAQ ¤ò¾ï¤˼ê¤ËÆþ¤ì¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤ޤ¿¡¢´Êñ¤ʸ¡º÷¤ä°õºþ¤Τ¿¤á¤ˤ³¤Î FAQ ¤Î - °ì¥ڡ¼¥¸ÈǤ⤢¤ê¤ޤ¹¡£

    - -

    Apache 2.0 ¤ϤޤÀ¿·¤·¤¤¤Τǡ¢²¿¤¬¤褯¤¢¤ë¼ÁÌä¤ʤΤ« - ¤ޤÀ¤褯¤狼¤äƤ¤¤ޤ»¤󡣤³¤Υ»¥¯¥·¥ç¥ó¤¬Ëä¤ޤäƤ¤¤¯¤ޤǡ¢ - ´û¤˼ÁÌ䤬Åú¤¨¤é¤ì¤Ƥ¤¤뤫¤ɤ¦¤« Apache 1.3 ¤Î FAQ - ¤⸫¤ë¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -
    top
    -
    -

    ¥ȥԥå¯

    -
    ¥µ¥ݡ¼¥È
    ²¿¤«ÌäÂ꤬µ¯¤³¤ä¿¤Ȥ­¤ˤɤ¦¤¹¤ë?
    -
    ¥¨¥顼¥á¥å»¡¼¥¸
    ¤³¤Υ¨¥顼¥á¥å»¡¼¥¸¤ΰỌ̃¤Ï?
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/index.html.ko.euc-kr b/docs/manual/faq/index.html.ko.euc-kr deleted file mode 100644 index 66ed4b2c94d..00000000000 --- a/docs/manual/faq/index.html.ko.euc-kr +++ /dev/null @@ -1,47 +0,0 @@ - - - -ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) - Apache HTTP Server - - - - - -
    <-
    -

    ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ)

    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    - -

    FAQ ÃֽÅÆÇÀº ¾ÆÆÄġ À¥»çÀÌƮ <http://httpd.apache.org/docs-2.1/faq/>¿¡¼­ º¼ ¼ö - ÀִÙ. ¶Ç, °˻öÇϰí Ãâ·ÂÇϱâ ÆíÇϰÔ FAQ¸¦ ÇÑ ÆäÀÌÁö·Î º¼ ¼ö ÀִÙ.

    - -

    ¾ÆÆÄġ 2.0ÀÌ ³ª¿ÂÁö ¾ó¸¶ ¾ȵǼ­ ¿츮´Â ¾ÆÁ÷ ÀÚÁÖ - ¹°¾´Â Áú¹® (FAQ)ÀÌ ¹«¾ùÀÎÁö ¸𸥴Ù. ³»¿ëÀÌ ä¿öÁú - ¶§±îÁö ¿©±⿡ ÇشäÀÌ ¾ø´ٸé ¾ÆÆÄġ - 1.3 FAQµµ Âü°íÇ϶ó.

    -
    -
    top
    -
    -

    ÁÖÁ¦

    -
    Áö¿ø
    ¹®Á¦°¡ »ý±â¸é ¾°Ô ÇذáÇϳª?
    -
    ¿À·ù¹®
    ÀÌ ¿À·ù¹®ÀÌ ¹«½¼ ¶æÀΰ¡?
    -
    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/index.html.tr.utf8 b/docs/manual/faq/index.html.tr.utf8 new file mode 100644 index 00000000000..513353073da --- /dev/null +++ b/docs/manual/faq/index.html.tr.utf8 @@ -0,0 +1,48 @@ + + + + + +Sıkça Sorulan Sorular - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Sıkça Sorulan Sorular

    +
    +

    Mevcut Diller:  en  | + tr  | + zh-cn 

    +
    + +

    SSS HTTP Server Wiki + altına taşınmıştır.

    +
    +
    +
    +

    Mevcut Diller:  en  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/faq/index.html.zh-cn.utf8 b/docs/manual/faq/index.html.zh-cn.utf8 new file mode 100644 index 00000000000..6912d2a8ba9 --- /dev/null +++ b/docs/manual/faq/index.html.zh-cn.utf8 @@ -0,0 +1,47 @@ + + + + + +常见问题 - Apache HTTP 服务器 版本 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    常见问题

    +
    +

    可用语言:  en  | + tr  | + zh-cn 

    +
    + +

    常见问题已经移到 HTTP 服务器维基。

    +
    +
    +
    +

    可用语言:  en  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/faq/index.xml b/docs/manual/faq/index.xml index e0fc20a6e6b..62080544a4e 100644 --- a/docs/manual/faq/index.xml +++ b/docs/manual/faq/index.xml @@ -1,17 +1,15 @@ - - -]> + + - - + + Frequently Asked Questions -

    The latest version of this FAQ is always available from the - main Apache web site, at <http://httpd.apache.org/docs-2.1/faq/>. In addition, you can view - this FAQ all in one page for easy searching - and printing.

    - -

    Since Apache 2.0 is quite new, we don't yet know what the - Frequently Asked Questions will be. While this section fills up, - you should also consult the Apache 1.3 FAQ to see - if your question is answered there.

    +

    The FAQ has moved to the HTTP Server Wiki.

    -&categories; - -
    - + diff --git a/docs/manual/faq/index.xml.ja b/docs/manual/faq/index.xml.ja deleted file mode 100644 index c270fa6df9e..00000000000 --- a/docs/manual/faq/index.xml.ja +++ /dev/null @@ -1,48 +0,0 @@ - - -]> - - - - - - - - -$B$h$/$"$k<ALd(B - - -

    Apache $B$Nhttp://httpd.apache.org/docs-2.1/faq/> - $B$+$i:G?7HG$N(B FAQ $B$r>o$K$B0l%Z!<%8HG(B$B$b$"$j$^$9!#(B

    - -

    Apache 2.0 $B$O$^$@?7$7$$$N$G!"2?$,(B$B$h$/$"$k$B$J$N$+(B - $B$^$@$h$/$o$+$C$F$$$^$;$s!#$3$N%;%/%7%g%s$,Kd$^$C$F$$$/$^$G!"(B - $B4{$KApache 1.3 $B$N(B FAQ - $B$b8+$k$h$&$K$7$F$/$@$5$$!#(B

    -
    - -&categories; - -
    - diff --git a/docs/manual/faq/index.xml.ko b/docs/manual/faq/index.xml.ko deleted file mode 100644 index cdeff3fed43..00000000000 --- a/docs/manual/faq/index.xml.ko +++ /dev/null @@ -1,47 +0,0 @@ - - -]> - - - - - - - - -ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) - - -

    FAQ ÃֽÅÆÇÀº ¾ÆÆÄġ À¥»çÀÌƮ <http://httpd.apache.org/docs-2.1/faq/>¿¡¼­ º¼ ¼ö - ÀִÙ. ¶Ç, °˻öÇϰí Ãâ·ÂÇϱâ ÆíÇϰÔ FAQ¸¦ ÇÑ ÆäÀÌÁö·Î º¼ ¼ö ÀִÙ.

    - -

    ¾ÆÆÄġ 2.0ÀÌ ³ª¿ÂÁö ¾ó¸¶ ¾ȵǼ­ ¿츮´Â ¾ÆÁ÷ ÀÚÁÖ - ¹°¾´Â Áú¹® (FAQ)ÀÌ ¹«¾ùÀÎÁö ¸𸥴Ù. ³»¿ëÀÌ ä¿öÁú - ¶§±îÁö ¿©±⿡ ÇشäÀÌ ¾ø´ٸé ¾ÆÆÄġ - 1.3 FAQµµ Âü°íÇ϶ó.

    -
    - -&categories; - -
    - diff --git a/docs/manual/faq/index.xml.meta b/docs/manual/faq/index.xml.meta index a3a99d706cd..f437bdef4a5 100644 --- a/docs/manual/faq/index.xml.meta +++ b/docs/manual/faq/index.xml.meta @@ -1,13 +1,14 @@ + - + index /faq/ .. en - ja - ko + tr + zh-cn diff --git a/docs/manual/faq/index.xml.tr b/docs/manual/faq/index.xml.tr new file mode 100644 index 00000000000..9abe1f02d8f --- /dev/null +++ b/docs/manual/faq/index.xml.tr @@ -0,0 +1,36 @@ + + + + + + + + + + + +Sıkça Sorulan Sorular + + +

    SSS HTTP Server Wiki + altına taşınmıştır.

    +
    +
    diff --git a/docs/manual/faq/index.xml.zh-cn b/docs/manual/faq/index.xml.zh-cn new file mode 100644 index 00000000000..26f2de8f83e --- /dev/null +++ b/docs/manual/faq/index.xml.zh-cn @@ -0,0 +1,33 @@ + + + + + + + + + + +常见问题 + + +

    常见问题已经移到 HTTP 服务器维基。

    +
    + +
    diff --git a/docs/manual/faq/support.html b/docs/manual/faq/support.html deleted file mode 100644 index 2af73a38ac5..00000000000 --- a/docs/manual/faq/support.html +++ /dev/null @@ -1,11 +0,0 @@ -URI: support.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 - -URI: support.html.ja.euc-jp -Content-Language: ja -Content-type: text/html; charset=EUC-JP - -URI: support.html.ko.euc-kr -Content-Language: ko -Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/faq/support.html.en b/docs/manual/faq/support.html.en deleted file mode 100644 index 9b7b5991c84..00000000000 --- a/docs/manual/faq/support.html.en +++ /dev/null @@ -1,114 +0,0 @@ - - - -Support - Frequently Asked Questions - Apache HTTP Server - - - - - -
    <-
    -

    Support - Frequently Asked Questions

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -
    -
    top
    -
    -

    Support

    - - -

    "Why can't I ...? Why won't ... work?" What to do in case of - problems

    - - -

    If you are having trouble with your Apache server software, you should - take the following steps:

    - -
    -
    Check the ErrorLog!
    -
    Apache tries to be helpful when it encounters a problem. In many - cases, it will provide some details by writing one or more messages to the - server error log. Sometimes this is enough for you to diagnose & fix - the problem yourself (such as file permissions or the like). The default - location of the error log is - /usr/local/apache2/logs/error_log, but see the ErrorLog directive in your config files for the - location on your server.
    - -
    Check the ErrorLog again!
    -
    Nearly all problems can be solved by reading the error log.
    - -
    Check the FAQ!
    -
    The latest version of the Apache Frequently-Asked Questions list can - always be found at the main Apache web site.
    - -
    Check the Apache bug database
    -
    Most problems that get reported to The Apache Group are recorded in - the bug database. - Please check the existing reports, open - and closed, before adding one. If you find that your - issue has already been reported, please don't add a "me, too" - report. If the original report isn't closed yet, we suggest that you - check it periodically. You might also consider contacting the original - submitter, because there may be an email exchange going on about the - issue that isn't getting recorded in the database.
    - -
    Ask in a user support forum
    -

    Apache has an active community of users who are willing to share - their knowledge. Participating in this community is usually the best and - fastest way to get answers to your questions and problems.

    - -

    Users - mailing list

    - -

    #apache on - Freenode IRC is also available for - user support issues.

    -
    - -
    Please use the bug database for bugs!
    -

    If you've gone through those steps above that are appropriate and - have obtained no relief, then please do let the httpd developers - know about the problem by logging a bug - report.

    - -

    If your problem involves the server crashing and generating a core - dump, please - include a backtrace (if possible).

    -
    -
    - - -

    Whom do I contact for support?

    -

    With millions of users and fewer than sixty volunteer developers, - we cannot provide personal support for Apache. For free support, we - suggest participating in a user forum.

    - -

    Professional, commercial support for Apache is available from - a number of - companies.

    - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/support.html.ja.euc-jp b/docs/manual/faq/support.html.ja.euc-jp deleted file mode 100644 index 47408e91ad0..00000000000 --- a/docs/manual/faq/support.html.ja.euc-jp +++ /dev/null @@ -1,132 +0,0 @@ - - - -¥µ¥ݡ¼¥È ¡½ ¤褯¤¢¤ë¼ÁÌä - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥µ¥ݡ¼¥È ¡½ ¤褯¤¢¤ë¼ÁÌä

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -
    -
    top
    -
    -

    ¥µ¥ݡ¼¥È

    - - -

    ¡֤ʤó¤ǡÄ? ¤ɤ¦¤·¤Æưº¤ʤ¤¡Ä?¡×ÌäÂ꤬ - µ¯¤­¤¿¤Ȥ­¤ˤɤ¦¤¹¤뤫

    - - -

    Apache ¤Υµ¡¼¥Х½¥եȥ¦¥§¥¢¤˲¿¤«ÌäÂ꤬µ¯¤³¤ä¿¤Ȥ­¤ϡ¢°ʲ¼¤Î - ¼ê½ç¤˽¾¤äƤ¯¤À¤µ¤¤:

    - -
    -
    ¥¨¥顼¥í¥°¤òĴ¤٤ë!
    -
    ÌäÂ꤬ȯÀ¸¤·¤¿¤Ȥ­¤Ï Apache ¤Ϥʤë¤٤¯¼ê½õ¤±¤򤷤褦¤Ȥ·¤ޤ¹¡£ - ¿¤¯¤ξì¹硢Apache ¤ϥµ¡¼¥ФΥ¨¥顼¥í¥°¤˥á¥å»¡¼¥¸¤ò½񤯤³¤Ȥǡ¢¾ܺ٤Ê - ¾ðÊó¤òÄ󶡤·¤ޤ¹¡£¾ì¹ç¤ˤè¤äƤϡ¢¤³¤ì¤À¤±¤ÇÌäÂê¤ò¼«ʬ¼«¿ȤÇʬÀϤ·¡¢ - ½¤Àµ¤¹¤뤿¤á¤˽½ʬ¤ʾðÊó¤òÆÀ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹ (¥ե¡¥¤¥ë¤Υѡ¼¥ߥå·¥ç¥ó¤Î - ÌäÂê¤ʤÉ)¡£¥¨¥顼¥í¥°¤Υǥե©¥ë¥Ȥξì½ê¤Ï - /usr/local/apache2/logs/error_log ¤Ǥ¹¤¬¡¢¤¢¤ʤ¿¤Υµ¡¼¥Ð - ¤Ǥξì½ê¤òÃΤ뤿¤á¤ˤÏÀßÄê¥ե¡¥¤¥ëÃæ¤Î ErrorLog ¤򸫤Ƥ¯¤À¤µ¤¤¡£
    - -
    FAQ ¤òĴ¤٤ë!
    -
    Apache ¤Τ褯¤¢¤ë¼ÁÌä¤κǿ·ÈǤϾï¤Ë Apache ¤μ祦¥§¥֥µ¥¤¥ȤË - ¤¢¤ê¤ޤ¹¡£
    - -
    Apache ¥Х°¥ǡ¼¥¿¥١¼¥¹¤òĴ¤٤ë
    -
    Apache ¥°¥롼¥פËÊó¹𤵤ì¤ë¤ۤȤó¤ɤÎÌäÂê¤Ï¥Х°¥ǡ¼¥¿¥١¼¥¹¤Ë - µ­Ͽ¤µ¤ì¤ޤ¹¡£Open ¤â closed ¤â ´ޤá¤ơ¢ - ´û¸¤Υì¥ݡ¼¥Ȥˤ¢¤뤫¤ɤ¦¤«¤òĴ¤٤Ƥ¯¤À¤µ¤¤¡£ - ´û¤ËÌäÂ꤬Êó¹𤵤ì¤Ƥ¤¤ë¤Ȥ­¡¢¡ֻä¤â¡פȤ¤¤¦Êó¹ð¤ÏÄɲä·¤ʤ¤¤Ç - ¤¯¤À¤µ¤¤¡£¸µ¤ÎÊó¹ð¤¬ close ¤µ¤ì¤Ƥ¤¤ʤ¤¤Ȥ­¤ϡ¢Äê´üŪ¤Ë - ¥Х°¥ǡ¼¥¿¥١¼¥¹¤òĴ¤٤뤳¤Ȥò¤ªÁ¦¤ᤷ¤ޤ¹¡£¤ޤ¿¡¢¸µ¤ÎÄó½мԤË - ϢÍí¤ò¼è¤뤳¤Ȥâ¹Íθ¤ËÆþ¤ì¤Ƥª¤¯¤Ȥ褤¤Ǥ·¤礦¡£¥ǡ¼¥¿¥١¼¥¹¤Ë - µ­Ͽ¤µ¤ì¤Ƥ¤¤ʤ¤ÅŻҥ᡼¥ë¤θ򴹤¬¹Ԥʤï¤ì¤Ƥ¤¤뤫¤⤷¤ì¤ޤ»¤ó¡£
    - -
    ¥桼¥¶¥µ¥ݡ¼¥ȥե©¡¼¥é¥à¤ǼÁÌ䤹¤ë
    -

    Apache ¤ˤϤè¤í¤³¤ó¤ÇÃ챤ò¶¦ͭ¤µ¤»¤Ƥ¯¤ì¤ë³èȯ¤Ê - ¥桼¥¶¤Υ³¥ߥå¥˥ƥ£¤¬¤¢¤ê¤ޤ¹¡£¤³¤Υ³¥ߥå¥˥ƥ£¤˻²²ä¹¤뤳¤Ȥ¬¡¢ - ÉáÄ̤ϼÁÌä¤äÌäÂê¤ËÂФ¹¤ë²óÅú¤òÆÀ¤ëºÇÁ±¤ǺÇ®¤μêÃʤǤ¹¡£

    - -

    ¥桼¥¶ - ¥᡼¥ê¥󥰥ꥹ¥È

    - -

    USENET ¥˥塼¥¹¥°¥롼¥×:

    - -
    - -
    ¤⤷¡¢Á´Éô¼ºÇԤ·¤¿¾ì¹ç¤ϡ¢ÌäÂê¤ò¥Х°¥ǡ¼¥¿¥١¼¥¹¤ËÊó¹𤷤Ƥ¯¤À¤µ¤¤
    -

    ¾嵭¤μêÃʤÎÃæ¤dzºÅö¤¹¤ë¤â¤Τò¤򤹤٤Ƽè¤äơ¢ - ¤½¤ì¤ǤâÌäÂê¤βò·èºö¤òÆÀ¤é¤ì¤ʤ«¤ä¿¾ì¹ç¤ϡ¢¥Х°¤ÎÊó¹ð¤ò - ¤¹¤뤳¤Ȥˤè¤ꡢÌäÂê¤ò¤¼¤Ò httpd ³«ȯ¼ԤËÃΤ餻¤Ƥ¯¤À¤µ¤¤¡£

    - -

    ¥µ¡¼¥ФΥ¯¥é¥å·¥å¤䥳¥¢¥À¥ó¥פÎȯÀ¸¤¹¤ëÌäÂê¤Ǥ¢¤ì¤С¢(²Äǽ¤Ǥ¢¤ì¤Ð) - ¥Х寥ȥ졼¥¹¤òÊó¹ð¤˴ޤá¤Ƥ¯¤À¤µ¤¤¡£Î㤨¤С¢

    - -

    - # cd ServerRoot
    - # dbx httpd core
    - (dbx) where -

    - -

    (ServerRoot ¤È httpd ¤È core ¥ե¡¥¤¥ë - ¤ΰÌÃ֤òŬÀڤʤâ¤ΤËÃ֤­´¹¤¨¤Ƥ¯¤À¤µ¤¤¡£dbx ¤ÎÂå¤ï¤ê¤Ë - gdb ¤ò»Ȥ¦ɬÍפ¬¤¢¤뤫¤⤷¤ì¤ޤ»¤ó¡£)

    -
    -
    - - -

    ï¤˥µ¥ݡ¼¥ȤòÍê¤á¤Ф褤?

    -

    ¿ôɴËü¤Υ桼¥¶¤ËÂФ·¤ơ¢40̤Ëþ¤Υܥé¥ó¥ƥ£¥¢³«ȯ¼Ԥ·¤«¤¤¤ʤ¤¤¿¤ᡢ - Apache ¤θĿÍŪ¤ʥµ¥ݡ¼¥ȤòÄ󶡤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£̵ÎÁ¤Î - ¥µ¥ݡ¼¥Ȥˤϡ¢¥桼¥¶¤Υե©¡¼¥é¥à¤˻²²ä¹¤ë¤Τ¬Îɤ¤¤Ǥ·¤礦¡£

    - -

    Apache ¤Υץí¤Ρ¢¾¦Íѥµ¥ݡ¼¥Ȥâ - ¿¤¯¤βñ¼Ò - ¤«¤éÄ󶡤µ¤ì¤Ƥ¤¤ޤ¹¡£

    - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/support.html.ko.euc-kr b/docs/manual/faq/support.html.ko.euc-kr deleted file mode 100644 index 5793fda8dd1..00000000000 --- a/docs/manual/faq/support.html.ko.euc-kr +++ /dev/null @@ -1,140 +0,0 @@ - - - -Áö¿ø - ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) - Apache HTTP Server - - - - - -
    <-
    -

    Áö¿ø - ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ)

    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    -
    -
    top
    -
    -

    Áö¿ø

    - - -

    "¿Ö ... ¾ȵdzª? ¿Ö ... µ¿ÀÛÇÏÁö ¾ʴ°¡?" ¹®Á¦°¡ »ý±â¸é - ÇÒÀÏ

    - - -

    ¾ÆÆÄġ ¼­¹ö ¼ÒÇÁƮ¿þ¾ ¹®Á¦°¡ »ý±â¸é ´ÙÀ½°ú °°Àº - ´ܰ踦 µû¸¥´Ù:

    - -
    -
    ¿À·ù ·α×(errorlog)¸¦ ȮÀÎÇ϶ó!
    -
    ¾ÆÆÄġ ¼­¹ö´Â ¹®Á¦°¡ »ý±â¸é µµ¿òÀ» ÁַÁ°í ³ë·ÂÇѴÙ. - ¸¹Àº °æ¿ì ¼­¹ö ¿À·ù ·α׿¡ Àڼ¼ÇÑ ³»¿ëÀ» ±â·ÏÇѴÙ. - À̰͸¸À¸·εµ Á÷Á¢ (ÆÄÀϱÇÇÑ µî) ¹®Á¦¸¦ ¹߰ßÇϰí °íĥ ¼ö - Àִ °æ¿찡 ¸¹´Ù. ¿À·ù ·α×ÀÇ ±⺻ À§ġ´Â - /usr/local/apache2/logs/error_logÀÌÁö¸¸, - Á¤ȮÇÑ À§ġ´Â ¼³Á¤ÆÄÀÏÀÇ ErrorLog Áö½þ Âü°íÇ϶ó.
    - -
    FAQ¸¦ - ȮÀÎÇ϶ó!
    -
    ¾ÆÆÄġ À¥»çÀÌƮ¿¡¼­ Ç׻ó ¾ÆÆÄġ FAQ ÃֽÅÆÇÀ» º¼ ¼ö - ÀִÙ.
    - -
    ¾ÆÆÄġ ¹ö±× µ¥ÀÌÅͺ£À̽º¸¦ ȮÀÎÇ϶ó
    -
    ¾ÆÆÄġ±׷ì(The Apache Group)¿¡ º¸°íµÈ ´ëºκÐÀÇ ¹®Á¦´Â - ¹ö±× - µ¥ÀÌÅͺ£À̽º¿¡ ±â·ϵȴÙ. »õ·Î ¹ö±׸¦ Ã߰¡Çϱâ Àü¿¡, - À̹Ì ¾˷ÁÁ³°ųª(open) ÇذáµÈ(closed) ¹ö±װ¡ ÀִÂÁö ȮÀÎÇϱæ - ¹ٶõ´Ù. À̹Ì ¹®Á¦°¡ º¸°íµǾú´ٸé "³ªµµ - À̷± ¹®Á¦°¡ Àִٰí" º¸°íÇÏÁö ¾ʱæ ¹ٶõ´Ù. ¾ÆÁ÷ - ÇذáµÇÁö ¾ʾҴٸé ÁֱâÀûÀ¸·Î »óȲÀ» ȮÀÎÇϱæ ¹ٶõ´Ù. ¶Ç, - µ¥ÀÌÅͺ£À̽º¿¡ ±â·ϵÇÁö ¾ʰí À̸ÞÀÏ ±³ȯÀ¸·Î ÁøÇàµÈ »çÇ×ÀÌ - ÀÖÀ» ¼ö ÀÖÀ¸´Ï óÀ½ ¹®Á¦¸¦ º¸°íÇÑ »ç¶÷¿¡°Ô ¿¬¶ôÇغ¼ ¼öµµ - ÀִÙ.
    - -
    »ç¿ëÀÚ Áö¿ø °ø°£¿¡ - ¹®ÀÇÇѴÙ
    -

    ¾ÆÆÄġ¿¡ ´ëÇÑ Áö½ÄÀ» °øÀ¯Çϱæ ¿øÇϴ Ȱ¹ßÇÑ »ç¿ëÀÚ - °øµ¿üµéÀÌ ÀִÙ. ÀϹÝÀûÀ¸·Î À̷± °øµ¿ü¿¡ Âü¿©Çϴ °ÍÀÌ - ¹®Á¦ÀÇ ´äÀ» ¾ò´Â °¡Àå ÁÁ°í ºü¸¥ ¹æ¹ýÀ̴Ù.

    - -

    »ç¿ëÀÚ - ¸ÞÀϸµ¸®½ºƮ

    - -

    USENET ´º½º±׷ì:

    - -
      -
    • comp.infosystems.www.servers.unix - [news] - [google] -
    • - -
    • comp.infosystems.www.servers.ms-windows - [news] - [google] -
    • - -
    • comp.infosystems.www.authoring.cgi - [news] - [google] -
    • -
    - -
    À§ÀÇ ¹æ¹ýÀÌ ¸ðµÎ ½ÇÆÐÇϸé ¹ö±× µ¥ÀÌÅͺ£À̽º¿¡ ¹®Á¦¸¦ - º¸°íÇѴÙ
    -

    À§ÀÇ ´ܰ踦 ¸ðµÎ ½õµÇϰíµµ ÇذáåÀÌ ¾ø´ٸé, ¹ö±׸¦ - º¸°íÇϿ© À¥¼­¹ö °³¹ßÀڵ鿡°Ô ¹®Á¦¸¦ ¾˸®±æ - ¹ٶõ´Ù.

    - -

    core dump¸¦ ¸¸µé¸ç ¼­¹ö°¡ Á״ °æ¿ì¶ó¸é (°¡´ÉÇϸé) - backtrace(¿ªÁÖ; ¹®Á¦°¡ ½ÇÇàÆÄÀÏÀÇ Á¤ȮÈ÷ ¾ ÁöÁ¡¿¡¼­ - ¹߻ýÇϿ´°í, ÇÁ·α׷¥ÀÌ ±× ÁöÁ¡±îÁö ¾ °æ·ηÎ ½ÇÇàµǾú´ÂÁö¸¦ - ¾˷ÁÁִ Á¤º¸)¸¦ Æ÷ÇÔÇϱæ ¹ٶõ´Ù. ¿¹¸¦ µé¾î,

    - -

    - # cd ServerRoot
    - # dbx httpd core
    - (dbx) where -

    - -

    (ServerRoot, httpd, core - ÆÄÀÏÀÇ ½ÇÁ¦ À§ġ¸¦ ´ë½Å »ç¿ëÇ϶ó. dbx ´ë½Å - gdb¸¦ »ç¿ëÇؾß ÇÒ ¼öµµ ÀִÙ.)

    -
    -
    - - -

    µµ¿òÀ» ¾òÀ¸·Á¸é ´©±¸¿¡°Ô - ¿¬¶ôÇϳª?

    -

    40¸í °¡·®ÀÇ ÀڹßÀûÀ¸·Î Âü¿©ÇÑ °³¹ßÀڸ¸À¸·δ ¼ö¹鸸ÀÇ - »ç¿ëÀڿ¡°Ô ¾ÆÆÄġ¿¡ ´ëÇØ ÀÏÀÏÀÌ Áö¿øÇÒ ¼ö ¾ø´Ù. ¹«·á Áö¿øÀ» - ¾òÀ¸·Á¸é »ç¿ëÀÚ - °ø°£¿¡ Âü¿©Çϱæ ±ÇÇѴÙ.

    - -

    ¾ÆÆÄġ¿¡ ´ëÇÑ Á÷¾÷ÀûÀÎ À¯·á Áö¿øÀº ¿©·¯ - ȸ»ç¿¡¼­ Á¦°øÇѴÙ.

    - -
    -
    -

    °¡´ÉÇÑ ¾ð¾î:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/faq/support.xml b/docs/manual/faq/support.xml deleted file mode 100644 index 27d587d1cec..00000000000 --- a/docs/manual/faq/support.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - -FAQ - -Support - Frequently Asked Questions -What do I do when I have problems? - -
    Support - - -
    - "Why can't I ...? Why won't ... work?" What to do in case of - problems - -

    If you are having trouble with your Apache server software, you should - take the following steps:

    - -
    -
    Check the ErrorLog!
    -
    Apache tries to be helpful when it encounters a problem. In many - cases, it will provide some details by writing one or more messages to the - server error log. Sometimes this is enough for you to diagnose & fix - the problem yourself (such as file permissions or the like). The default - location of the error log is - /usr/local/apache2/logs/error_log, but see the ErrorLog directive in your config files for the - location on your server.
    - -
    Check the ErrorLog again!
    -
    Nearly all problems can be solved by reading the error log.
    - -
    Check the FAQ!
    -
    The latest version of the Apache Frequently-Asked Questions list can - always be found at the main Apache web site.
    - -
    Check the Apache bug database
    -
    Most problems that get reported to The Apache Group are recorded in - the bug database. - Please check the existing reports, open - and closed, before adding one. If you find that your - issue has already been reported, please don't add a "me, too" - report. If the original report isn't closed yet, we suggest that you - check it periodically. You might also consider contacting the original - submitter, because there may be an email exchange going on about the - issue that isn't getting recorded in the database.
    - -
    Ask in a user support forum
    -

    Apache has an active community of users who are willing to share - their knowledge. Participating in this community is usually the best and - fastest way to get answers to your questions and problems.

    - -

    Users - mailing list

    - -

    #apache on - Freenode IRC is also available for - user support issues.

    -
    - -
    Please use the bug database for bugs!
    -

    If you've gone through those steps above that are appropriate and - have obtained no relief, then please do let the httpd developers - know about the problem by logging a bug - report.

    - -

    If your problem involves the server crashing and generating a core - dump, please - include a backtrace (if possible).

    -
    -
    -
    - -
    Whom do I contact for support? -

    With millions of users and fewer than sixty volunteer developers, - we cannot provide personal support for Apache. For free support, we - suggest participating in a user forum.

    - -

    Professional, commercial support for Apache is available from - a number of - companies.

    -
    -
    - -
    - diff --git a/docs/manual/faq/support.xml.ja b/docs/manual/faq/support.xml.ja deleted file mode 100644 index 3b4da964930..00000000000 --- a/docs/manual/faq/support.xml.ja +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - -FAQ - -$B%5%]!<%H(B $B!=(B $B$h$/$"$k<ALd(B -$B2?$+LdBj$,5/$3$C$?$H$-$K$I$&$9$k(B? - -
    $B%5%]!<%H(B - - -
    - $B!V$J$s$G!D(B? $B$I$&$7$FF0:n$7$J$$!D(B?$B!WLdBj$,(B - $B5/$-$?$H$-$K$I$&$9$k$+(B - -

    Apache $B$N%5!<%P%=%U%H%&%'%"$K2?$+LdBj$,5/$3$C$?$H$-$O!"0J2<$N(B - $B$C$F$/$@$5$$(B:

    - -
    -
    $B%(%i!<%m%0$rD4$Y$k(B!
    -
    $BLdBj$,H/@8$7$?$H$-$O(B Apache $B$O$J$k$Y$/l9g!"(BApache $B$O%5!<%P$N%(%i!<%m%0$K%a%C%;!<%8$r=q$/$3$H$G!">\:Y$J(B - $B>pJs$rDs6!$7$^$9!#>l9g$K$h$C$F$O!"$3$l$@$1$GLdBj$r<+J,<+?H$GJ,@O$7!"(B - $B=$@5$9$k$?$a$K==J,$J>pJs$rF@$k$3$H$,$G$-$^$9(B ($B%U%!%$%k$N%Q!<%_%C%7%g%s$N(B - $BLdBj$J$I(B)$B!#%(%i!<%m%0$N%G%U%)%k%H$N>l=j$O(B - /usr/local/apache2/logs/error_log $B$G$9$,!"$"$J$?$N%5!<%P(B - $B$G$N>l=j$rCN$k$?$a$K$O@_Dj%U%!%$%kCf$N(B ErrorLog $B$r8+$F$/$@$5$$!#(B
    - -
    FAQ $B$rD4$Y$k(B!
    -
    Apache $B$N$h$/$"$ko$K(B Apache $B$N - -
    Apache $B%P%0%G!<%?%Y!<%9$rD4$Y$k(B
    -
    Apache $B%0%k!<%W$KJs9p$5$l$k$[$H$s$I$NLdBj$O(B$B%P%0%G!<%?%Y!<%9(B$B$K(B - $B5-O?$5$l$^$9!#(BOpen $B$b(B closed $B$b(B $B4^$a$F!"(B - $B4{B8$N%l%]!<%H$K$"$k$+$I$&$+$rD4$Y$F(B$B$/$@$5$$(B$B!#(B - $B4{$KLdBj$,Js9p$5$l$F$$$k$H$-!"!V;d$b!W$H$$$&Js9p$ODI2C(B$B$7$J$$$G(B - $B$/$@$5$$(B$B!#85$NJs9p$,(B close $B$5$l$F$$$J$$$H$-$O!"Dj4|E*$K(B - $B%P%0%G!<%?%Y!<%9$rD4$Y$k$3$H$r$*A&$a$7$^$9!#$^$?!"85$NDs=P - -
    $B%f!<%6%5%]!<%H%U%)!<%i%`$G
    -

    Apache $B$K$O$h$m$3$s$GCN<1$r6&M-$5$;$F$/$l$k3hH/$J(B - $B%f!<%6$N%3%_%e%K%F%#$,$"$j$^$9!#$3$N%3%_%e%K%F%#$K;22C$9$k$3$H$,!"(B - $BIaDL$O - -

    $B%f!<%6(B - $B%a!<%j%s%0%j%9%H(B

    - -

    USENET $B%K%e!<%9%0%k!<%W(B:

    - -
    - -
    $B$b$7!"A4It<:GT$7$?>l9g$O!"LdBj$r%P%0%G!<%?%Y!<%9$KJs9p$7$F$/$@$5$$(B
    -

    $B>e5-$Nl9g$O!"(B$B%P%0$NJs9p(B$B$r(B - $B$9$k$3$H$K$h$j!"LdBj$r(B$B$<$R(B httpd $B3+H/ - -

    $B%5!<%P$N%/%i%C%7%e$d%3%"%@%s%W$NH/@8$9$kLdBj$G$"$l$P!"(B($B2DG=$G$"$l$P(B) - $B%P%C%/%H%l!<%9$rJs9p$K4^$a$F$/$@$5$$!#Nc$($P!"(B

    - - - # cd ServerRoot
    - # dbx httpd core
    - (dbx) where -
    - -

    (ServerRoot $B$H(B httpd $B$H(B core $B%U%!%$%k(B - $B$N0LCV$rE,@Z$J$b$N$KCV$-49$($F$/$@$5$$!#(Bdbx $B$NBe$o$j$K(B - gdb $B$r;H$&I,MW$,$"$k$+$b$7$l$^$;$s!#(B)

    -
    -
    -
    - -
    $BC/$K%5%]!<%H$rMj$a$P$h$$(B? -

    $B?tI4K|$N%f!<%6$KBP$7$F!"(B40$BL$K~$N%\%i%s%F%#%"3+H/$B%f!<%6$N%U%)!<%i%`(B$B$K;22C$9$k$N$,NI$$$G$7$g$&!#(B

    - -

    Apache $B$N%W%m$N!">&MQ%5%]!<%H$b(B - $BB?$/$N2q - $B$+$iDs6!$5$l$F$$$^$9!#(B

    -
    -
    - -
    - diff --git a/docs/manual/faq/support.xml.ko b/docs/manual/faq/support.xml.ko deleted file mode 100644 index 05bdb134f93..00000000000 --- a/docs/manual/faq/support.xml.ko +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - -FAQ - -Áö¿ø - ÀÚÁÖ ¹°¾´Â Áú¹® (FAQ) -¹®Á¦°¡ »ý±â¸é ¾°Ô ÇذáÇϳª? - -
    Áö¿ø - - -
    - "¿Ö ... ¾ȵdzª? ¿Ö ... µ¿ÀÛÇÏÁö ¾ʴ°¡?" ¹®Á¦°¡ »ý±â¸é - ÇÒÀÏ - -

    ¾ÆÆÄġ ¼­¹ö ¼ÒÇÁƮ¿þ¾ ¹®Á¦°¡ »ý±â¸é ´ÙÀ½°ú °°Àº - ´ܰ踦 µû¸¥´Ù:

    - -
    -
    ¿À·ù ·α×(errorlog)¸¦ ȮÀÎÇ϶ó!
    -
    ¾ÆÆÄġ ¼­¹ö´Â ¹®Á¦°¡ »ý±â¸é µµ¿òÀ» ÁַÁ°í ³ë·ÂÇѴÙ. - ¸¹Àº °æ¿ì ¼­¹ö ¿À·ù ·α׿¡ Àڼ¼ÇÑ ³»¿ëÀ» ±â·ÏÇѴÙ. - À̰͸¸À¸·εµ Á÷Á¢ (ÆÄÀϱÇÇÑ µî) ¹®Á¦¸¦ ¹߰ßÇϰí °íĥ ¼ö - Àִ °æ¿찡 ¸¹´Ù. ¿À·ù ·α×ÀÇ ±⺻ À§ġ´Â - /usr/local/apache2/logs/error_logÀÌÁö¸¸, - Á¤ȮÇÑ À§ġ´Â ¼³Á¤ÆÄÀÏÀÇ ErrorLog Áö½þ Âü°íÇ϶ó.
    - -
    FAQ¸¦ - ȮÀÎÇ϶ó!
    -
    ¾ÆÆÄġ À¥»çÀÌƮ¿¡¼­ Ç׻ó ¾ÆÆÄġ FAQ ÃֽÅÆÇÀ» º¼ ¼ö - ÀִÙ.
    - -
    ¾ÆÆÄġ ¹ö±× µ¥ÀÌÅͺ£À̽º¸¦ ȮÀÎÇ϶ó
    -
    ¾ÆÆÄġ±׷ì(The Apache Group)¿¡ º¸°íµÈ ´ëºκÐÀÇ ¹®Á¦´Â - ¹ö±× - µ¥ÀÌÅͺ£À̽º¿¡ ±â·ϵȴÙ. »õ·Î ¹ö±׸¦ Ã߰¡Çϱâ Àü¿¡, - À̹Ì ¾˷ÁÁ³°ųª(open) ÇذáµÈ(closed) ¹ö±װ¡ ÀִÂÁö ȮÀÎÇϱæ - ¹ٶõ´Ù. À̹Ì ¹®Á¦°¡ º¸°íµǾú´ٸé "³ªµµ - À̷± ¹®Á¦°¡ Àִٰí" º¸°íÇÏÁö ¾ʱæ ¹ٶõ´Ù. ¾ÆÁ÷ - ÇذáµÇÁö ¾ʾҴٸé ÁֱâÀûÀ¸·Î »óȲÀ» ȮÀÎÇϱæ ¹ٶõ´Ù. ¶Ç, - µ¥ÀÌÅͺ£À̽º¿¡ ±â·ϵÇÁö ¾ʰí À̸ÞÀÏ ±³ȯÀ¸·Î ÁøÇàµÈ »çÇ×ÀÌ - ÀÖÀ» ¼ö ÀÖÀ¸´Ï óÀ½ ¹®Á¦¸¦ º¸°íÇÑ »ç¶÷¿¡°Ô ¿¬¶ôÇغ¼ ¼öµµ - ÀִÙ.
    - -
    »ç¿ëÀÚ Áö¿ø °ø°£¿¡ - ¹®ÀÇÇѴÙ
    -

    ¾ÆÆÄġ¿¡ ´ëÇÑ Áö½ÄÀ» °øÀ¯Çϱæ ¿øÇϴ Ȱ¹ßÇÑ »ç¿ëÀÚ - °øµ¿üµéÀÌ ÀִÙ. ÀϹÝÀûÀ¸·Î À̷± °øµ¿ü¿¡ Âü¿©Çϴ °ÍÀÌ - ¹®Á¦ÀÇ ´äÀ» ¾ò´Â °¡Àå ÁÁ°í ºü¸¥ ¹æ¹ýÀ̴Ù.

    - -

    »ç¿ëÀÚ - ¸ÞÀϸµ¸®½ºƮ

    - -

    USENET ´º½º±׷ì:

    - -
      -
    • comp.infosystems.www.servers.unix - [news] - [google] -
    • - -
    • comp.infosystems.www.servers.ms-windows - [news] - [google] -
    • - -
    • comp.infosystems.www.authoring.cgi - [news] - [google] -
    • -
    - -
    À§ÀÇ ¹æ¹ýÀÌ ¸ðµÎ ½ÇÆÐÇϸé ¹ö±× µ¥ÀÌÅͺ£À̽º¿¡ ¹®Á¦¸¦ - º¸°íÇѴÙ
    -

    À§ÀÇ ´ܰ踦 ¸ðµÎ ½õµÇϰíµµ ÇذáåÀÌ ¾ø´ٸé, ¹ö±׸¦ - º¸°íÇϿ© À¥¼­¹ö °³¹ßÀڵ鿡°Ô ¹®Á¦¸¦ ¾˸®±æ - ¹ٶõ´Ù.

    - -

    core dump¸¦ ¸¸µé¸ç ¼­¹ö°¡ Á״ °æ¿ì¶ó¸é (°¡´ÉÇϸé) - backtrace¹®Á¦°¡ ½ÇÇàÆÄÀÏÀÇ Á¤ȮÈ÷ ¾ ÁöÁ¡¿¡¼­ - ¹߻ýÇϿ´°í, ÇÁ·α׷¥ÀÌ ±× ÁöÁ¡±îÁö ¾ °æ·ηÎ ½ÇÇàµǾú´ÂÁö¸¦ - ¾˷ÁÁִ Á¤º¸¸¦ Æ÷ÇÔÇϱæ ¹ٶõ´Ù. ¿¹¸¦ µé¾î,

    - - - # cd ServerRoot
    - # dbx httpd core
    - (dbx) where -
    - -

    (ServerRoot, httpd, core - ÆÄÀÏÀÇ ½ÇÁ¦ À§ġ¸¦ ´ë½Å »ç¿ëÇ϶ó. dbx ´ë½Å - gdb¸¦ »ç¿ëÇؾß ÇÒ ¼öµµ ÀִÙ.)

    -
    -
    -
    - -
    µµ¿òÀ» ¾òÀ¸·Á¸é ´©±¸¿¡°Ô - ¿¬¶ôÇϳª? -

    40¸í °¡·®ÀÇ ÀڹßÀûÀ¸·Î Âü¿©ÇÑ °³¹ßÀڸ¸À¸·δ ¼ö¹鸸ÀÇ - »ç¿ëÀڿ¡°Ô ¾ÆÆÄġ¿¡ ´ëÇØ ÀÏÀÏÀÌ Áö¿øÇÒ ¼ö ¾ø´Ù. ¹«·á Áö¿øÀ» - ¾òÀ¸·Á¸é »ç¿ëÀÚ - °ø°£¿¡ Âü¿©Çϱæ ±ÇÇѴÙ.

    - -

    ¾ÆÆÄġ¿¡ ´ëÇÑ Á÷¾÷ÀûÀÎ À¯·á Áö¿øÀº ¿©·¯ - ȸ»ç¿¡¼­ Á¦°øÇѴÙ.

    -
    -
    - - - diff --git a/docs/manual/faq/support.xml.meta b/docs/manual/faq/support.xml.meta deleted file mode 100644 index bb784220823..00000000000 --- a/docs/manual/faq/support.xml.meta +++ /dev/null @@ -1,13 +0,0 @@ - - - - support - /faq/ - .. - - - en - ja - ko - - diff --git a/docs/manual/filter.html b/docs/manual/filter.html index 98b9e5c44a5..ccac4db6e96 100644 --- a/docs/manual/filter.html +++ b/docs/manual/filter.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: filter.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -10,10 +12,14 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: filter.html.ja.euc-jp +URI: filter.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: filter.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: filter.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/filter.html.en b/docs/manual/filter.html.en index b03288823a3..6575362a599 100644 --- a/docs/manual/filter.html.en +++ b/docs/manual/filter.html.en @@ -1,80 +1,167 @@ - -Filters - Apache HTTP Server +Filters - Apache HTTP Server Version 2.2 - - -
    top

    SQL Prepared Statements

    @@ -109,18 +135,63 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
    SQL query or select commands.

    It is up to dbd user modules to use the prepared statements - and document what statements can be specified in httpd.conf.

    + and document what statements can be specified in httpd.conf, + or to provide their own directives and use ap_dbd_prepare.

    +

    Caveat

    + When using prepared statements with a MySQL database, it is preferred to set + reconnect to 0 in the connection string as to avoid errors that + arise from the MySQL client reconnecting without properly resetting the + prepared statements. If set to 1, any broken connections will be attempted + fixed, but as mod_dbd is not informed, the prepared statements will be invalidated. +
    +
    top
    +
    +

    SECURITY WARNING

    + +

    Any web/database application needs to secure itself against SQL + injection attacks. In most cases, Apache DBD is safe, because + applications use prepared statements, and untrusted inputs are + only ever used as data. Of course, if you use it via third-party + modules, you should ascertain what precautions they may require.

    +

    However, the FreeTDS driver is inherently + unsafe. The underlying library doesn't support + prepared statements, so the driver emulates them, and the + untrusted input is merged into the SQL statement.

    +

    It can be made safe by untainting all inputs: + a process inspired by Perl's taint checking. Each input + is matched against a regexp, and only the match is used, + according to the Perl idiom:

    +
      $untrusted =~ /([a-z]+)/;
    +  $trusted = $1;
    +

    To use this, the untainting regexps must be included in the + prepared statements configured. The regexp follows immediately + after the % in the prepared statement, and is enclosed in + curly brackets {}. For example, if your application expects + alphanumeric input, you can use:

    +

    + "SELECT foo FROM bar WHERE input = %s" +

    +

    with other drivers, and suffer nothing worse than a failed query. + But with FreeTDS you'd need:

    +

    + "SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s" +

    +

    Now anything that doesn't match the regexp's $1 match is + discarded, so the statement is safe.

    +

    An alternative to this may be the third-party ODBC driver, + which offers the security of genuine prepared statements.

    top

    DBDExptime Directive

    + - +
    Description:Keepalive time for idle connections
    Syntax:DBDExptime time-in-seconds
    Default:DBDExptime 300
    Context:server config, virtual host
    Status:Experimental
    Status:Extension
    Module:mod_dbd
    -

    Set the time to keep idle connections alive where the number +

    Set the time to keep idle connections alive when the number of connections specified in DBDKeep has been exceeded (threaded platforms only).

    @@ -128,10 +199,11 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
    top

    DBDKeep Directive

    - + + - +
    Description:Maximum sustainednumber of connections
    Description:Maximum sustained number of connections
    Syntax:DBDKeep number
    Default:DBDKeep 2
    Context:server config, virtual host
    Status:Experimental
    Status:Extension
    Module:mod_dbd

    Set the maximum number of connections per process to be @@ -144,8 +216,9 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));

    + - +
    Description:Maximum number of connections
    Syntax:DBDMax number
    Default:DBDMax 10
    Context:server config, virtual host
    Status:Experimental
    Status:Extension
    Module:mod_dbd

    Set the hard maximum number of connections per process @@ -157,8 +230,9 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); + - +
    Description:Minimum number of connections
    Syntax:DBDMin number
    Default:DBDMin 1
    Context:server config, virtual host
    Status:Experimental
    Status:Extension
    Module:mod_dbd

    Set the minimum number of connections per process (threaded @@ -172,24 +246,41 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); Syntax:DBDParams param1=value1[,param2=value2] Context:server config, virtual host -Status:Experimental +Status:Extension Module:mod_dbd

    As required by the underlying driver. Typically this will be used to pass whatever cannot be defaulted amongst username, password, database name, hostname and port number for connection.

    +

    Connection string parameters for current drivers include:

    +
    +
    FreeTDS (for MSSQL and SyBase - see SECURITY note)
    +
    username, password, appname, dbname, host, charset, lang, server
    +
    MySQL
    +
    host, port, user, pass, dbname, sock, flags, fldsz, group, reconnect
    +
    ODBC
    +
    datasource, user, password, connect, ctimeout, stimeout, access, txmode, bufsize
    +
    Oracle
    +
    user, pass, dbname, server
    +
    PostgreSQL
    +
    The connection string is passed straight through to PQconnectdb
    +
    SQLite2
    +
    The connection string is split on a colon, and part1:part2 is used as sqlite_open(part1, atoi(part2), NULL)
    +
    SQLite3
    +
    The connection string is passed straight through to sqlite3_open
    +
    top

    DBDPersist Directive

    - + - +
    Description:Whether to use persistent connections
    Syntax:DBDPersist 0|1
    Syntax:DBDPersist On|Off
    Context:server config, virtual host
    Status:Experimental
    Status:Extension
    Module:mod_dbd
    -

    If set to 0, persistent and pooled connections are disabled. +

    If set to Off, persistent and pooled connections are disabled. A new database connection is opened when requested by a client, and closed immediately on release. This option is for debugging and low-usage servers.

    @@ -198,6 +289,10 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); (or a single LAMP-style persistent connection in the case of a non-threaded server), and should almost always be used in operation.

    +

    Prior to version 2.2.2, this directive accepted only the values + 0 and 1 instead of Off and + On, respectively.

    +
    top

    DBDPrepareSQL Directive

    @@ -205,10 +300,10 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); Description:Define an SQL prepared statement Syntax:DBDPrepareSQL "SQL statement" label Context:server config, virtual host -Status:Experimental +Status:Extension Module:mod_dbd -

    For modules such as authentication that use repeatedly use a +

    For modules such as authentication that repeatedly use a single SQL statement, optimum performance is achieved by preparing the statement at startup rather than every time it is used. This directive prepares an SQL statement and assigns it a label.

    @@ -220,7 +315,7 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*)); Description:Specify an SQL driver Syntax:DBDriver name Context:server config, virtual host -Status:Experimental +Status:Extension Module:mod_dbd

    Selects an apr_dbd driver by name. The driver must be installed @@ -232,7 +327,28 @@ APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_dbd.xml b/docs/manual/mod/mod_dbd.xml index cf923e02485..45ffb2a78ef 100644 --- a/docs/manual/mod/mod_dbd.xml +++ b/docs/manual/mod/mod_dbd.xml @@ -4,12 +4,12 @@ - + mod_dbd /mod/ .. diff --git a/docs/manual/mod/mod_deflate.html b/docs/manual/mod/mod_deflate.html index dd4e6dce92c..9bb00b5f44f 100644 --- a/docs/manual/mod/mod_deflate.html +++ b/docs/manual/mod/mod_deflate.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_deflate.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_deflate.html.ja.euc-jp +URI: mod_deflate.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_deflate.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_deflate.html.en b/docs/manual/mod/mod_deflate.html.en index 6810ce44ebd..8659d0c19a2 100644 --- a/docs/manual/mod/mod_deflate.html.en +++ b/docs/manual/mod/mod_deflate.html.en @@ -1,25 +1,32 @@ - -mod_deflate - Apache HTTP Server +mod_deflate - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_deflate

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_deflate

    Available Languages:  en  |  ja  | @@ -28,8 +35,8 @@ - -
    Description:Compress content before it is delivered to the client
    Status:Extension
    Module Identifier:deflate_module
    Source File:mod_deflate.c
    +Module Identifier:deflate_module +Source File:mod_deflate.c

    Summary

    The mod_deflate module provides @@ -37,67 +44,38 @@ client your server to be compressed before being sent to the client over the network.

    -
    top

    Sample Configurations

    -

    This is a simple sample configuration for the impatient.

    - -

    Compress only a few types

    - AddOutputFilterByType DEFLATE text/html text/plain text/xml -

    - -

    The following configuration, while resulting in more compressed content, - is also much more complicated. Do not use this unless you fully understand - all the configuration details.

    - -

    Compress everything except images

    - <Location />
    - - # Insert filter
    - SetOutputFilter DEFLATE
    -
    - # Netscape 4.x has some problems...
    - BrowserMatch ^Mozilla/4 gzip-only-text/html
    -
    - # Netscape 4.06-4.08 have some more problems
    - BrowserMatch ^Mozilla/4\.0[678] no-gzip
    -
    - # MSIE masquerades as Netscape, but it is fine
    - # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    -
    - # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
    - # the above regex won't work. You can use the following
    - # workaround to get the desired effect:
    - BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    -
    - # Don't compress images
    - SetEnvIfNoCase Request_URI \
    - - \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    -
    -
    - # Make sure proxies don't deliver the wrong content
    - Header append Vary User-Agent env=!dont-vary
    -
    - </Location> -

    +

    Compression and TLS

    +

    Some web applications are vulnerable to an information disclosure + attack when a TLS connection carries deflate compressed data. For more + information, review the details of the "BREACH" family of attacks.

    +
    +

    This is a simple configuration that compresses common text-based content types.

    + +

    Compress only a few types

    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
    +
    top
    @@ -166,8 +144,8 @@ client filters like PHP or SSI. It never touches internal subrequests.

    Note

    - There is a environment variable force-gzip, - set via SetEnv, which + There is an environment variable force-gzip, + set via SetEnv, which will ignore the accept-encoding setting of your browser and will send compressed output.
    @@ -177,7 +155,7 @@ client

    The mod_deflate module also provides a filter for inflating/uncompressing a gzip compressed response body. In order to activate this feature you have to insert the INFLATE filter into - the outputfilter chain using SetOutputFilter or AddOutputFilter, for example:

    + the output filter chain using SetOutputFilter or AddOutputFilter, for example:

    <Location /dav-area>
    @@ -310,7 +288,7 @@ client

    If you want to extract more accurate values from your logs, you can use the type argument to specify the type of data - left as note for logging. type can be one of:

    + left as a note for logging. type can be one of:

    Input
    @@ -340,6 +318,60 @@ client +
    +
    top
    +

    DeflateInflateLimitRequestBody Directive

    + + + + + + + + +
    Description:Maximum size of inflated request bodies
    Syntax:DeflateInflateLimitRequestBodyvalue
    Default:None, but LimitRequestBody applies after deflation
    Context:server config, virtual host, directory, .htaccess
    Status:Extension
    Module:mod_deflate
    Compatibility:2.2.28 and later
    +

    The DeflateInflateLimitRequestBody directive + specifies the maximum size of an inflated request body. If it is unset, + LimitRequestBody is applied to the + inflated body.

    + +
    +
    top
    +

    DeflateInflateRatioBurst Directive

    + + + + + + + + +
    Description:Maximum number of times the inflation ratio for request bodies + can be crossed
    Syntax:DeflateInflateRatioBurst value
    Default:3
    Context:server config, virtual host, directory, .htaccess
    Status:Extension
    Module:mod_deflate
    Compatibility:2.2.28 and later
    +

    The DeflateInflateRatioBurst directive + specifies the maximum number of times the + DeflateInflateRatioLimit can be crossed before + terminating the request.

    + +
    +
    top
    +

    DeflateInflateRatioLimit Directive

    + + + + + + + + +
    Description:Maximum inflation ratio for request bodies
    Syntax:DeflateInflateRatioLimit value
    Default:200
    Context:server config, virtual host, directory, .htaccess
    Status:Extension
    Module:mod_deflate
    Compatibility:2.2.28 and later
    +

    The DeflateInflateRatioLimit directive + specifies the maximum ratio of deflated to inflated size of an + inflated request body. This ratio is checked as the body is + streamed in, and if crossed more than + DeflateInflateRatioBurst times, the request + will be terminated.

    +
    top

    DeflateMemLevel Directive

    @@ -376,7 +408,28 @@ client

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_deflate.html.ja.euc-jp b/docs/manual/mod/mod_deflate.html.ja.euc-jp deleted file mode 100644 index 619ea7290d4..00000000000 --- a/docs/manual/mod/mod_deflate.html.ja.euc-jp +++ /dev/null @@ -1,383 +0,0 @@ - - - -mod_deflate - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_deflate

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥¯¥饤¥¢¥ó¥ȤØÁ÷¤é¤ì¤ëÁ°¤˥³¥ó¥ƥó¥Ĥ򰵽̤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:deflate_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_deflate.c
    -

    ³µÍ×

    - -

    mod_deflate ¥⥸¥塼¥ë¤Ï DEFLATE - ½ÐÎϥե£¥륿¤òÄ󶡤·¤ޤ¹¡£¤³¤ì¤ϥµ¡¼¥Ф«¤é¤νÐÎϤ򡢥ͥåȥ¥¯¤ò - Ä̤·¤ƥ¯¥饤¥¢¥ó¥ȤËÁ÷¤ëÁ°¤˰µ½̤¹¤뤳¤Ȥò²Äǽ¤ˤ·¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¥µ¥ó¥ץëÀßÄê

    -

    ²¼¤ˤ»¤ä«¤Á¤ʿ͸þ¤±¤δÊñ¤ÊÀßÄêÎã¤򼨤·¤ޤ¹¡£

    - -

    ¿ô¥¿¥¤¥פΤ߰µ½̤¹¤ë

    - AddOutputFilterByType DEFLATE text/html text/plain text/xml -

    - -

    °ʲ¼¤ÎÀßÄê¤ϥ³¥ó¥ƥó¥Ĥò¤è¤갵½̤·¤ޤ¹¤¬¡¢¤º¤äÈʣ»¨¤ÊÀßÄê¤ˤʤê¤ޤ¹¡£ - ÀßÄê¤ζù¡¹¤ޤǤ褯Íý²򤷤ʤ¤¤ǻȤï¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£

    - -

    ²èÁü°ʳ°Á´¤ưµ½̤¹¤ë

    - <Location />
    - - # Insert filter
    - SetOutputFilter DEFLATE
    -
    - # Netscape 4.x has some problems...
    - BrowserMatch ^Mozilla/4 gzip-only-text/html
    -
    - # Netscape 4.06-4.08 have some more problems
    - BrowserMatch ^Mozilla/4\.0[678] no-gzip
    -
    - # MSIE masquerades as Netscape, but it is fine
    - # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    -
    - # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
    - # the above regex won't work. You can use the following
    - # workaround to get the desired effect:
    - BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    -
    - # Don't compress images
    - SetEnvIfNoCase Request_URI \
    - - \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    -
    -
    - # Make sure proxies don't deliver the wrong content
    - Header append Vary User-Agent env=!dont-vary
    -
    - </Location> -

    - -
    top
    -
    -

    °µ½̤òͭ¸ú¤ˤ¹¤ë

    - -

    Output Compression

    -

    °µ½̵¡ǽ¤Ï DEFLATE ¥ե£¥륿 - ¤ˤè¤ê¼ÂÁõ¤µ¤ì¤Ƥ¤¤ޤ¹¡£°ʲ¼¤Υǥ£¥쥯¥ƥ£¥֤Ϥ½¤Υǥ£¥쥯¥ƥ£¥֤Τ¢¤ë - ¥³¥ó¥ƥÊÃæ¤Υɥ­¥å¥á¥ó¥Ȥ򰵽̤¹¤ë¤褦¤ˤ·¤ޤ¹:

    - -

    - SetOutputFilter DEFLATE -

    - -

    ¤褯»Ȥï¤ì¤Ƥ¤¤ë¥֥饦¥¶¤Ǥϡ¢¤¹¤٤ƤΥ³¥ó¥ƥó¥ĤËÂФ¹¤ë - °µ½̤򰷤¨¤ë¤櫓¤ǤϤ¢¤ê¤ޤ»¤󡣤Ǥ¹¤«¤顢gzip-only-text/html - ¥Ρ¼¥Ȥò 1 ¤ˤ·¤ơ¢html ¥ե¡¥¤¥ë¤ËÂФ·¤ƤΤß - °µ½̤¬Ư¤¯¤褦¤ˤ·¤¿Êý¤¬¤褤¤«¤⤷¤ì¤ޤ»¤ó (°ʲ¼»²¾È) - ¤³¤ÎÃͤò 1 °ʳ°¤ÎÃͤËÀßÄꤷ¤¿¾ì¹ç¤Ï̵»뤵¤ì¤ޤ¹¡£

    - -

    Ä̾ÆÃÄê¤ÎMIME¥¿¥¤¥פˤĤ¤¤ƤΤ߰µ½̤·¤¿¤¤¤ΤǤ¢¤ì¤С¢ - AddOutputFilterByType - ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ޤ¹¡£¼¡¤Ë Apache ¤Υɥ­¥å¥á¥ó¥ȤÎ html - ¥ե¡¥¤¥ë¤Τߤΰµ½̤òͭ¸ú¤ˤ¹¤ëÎã¤򼨤·¤ޤ¹¡£

    - -

    - <Directory "/your-server-root/manual">
    - - AddOutputFilterByType DEFLATE text/html
    -
    - </Directory> -

    - -

    Á´¤ƤΥե¡¥¤¥륿¥¤¥פǤΰµ½̤ËÌäÂê¤òÊú¤¨¤Ƥ¤¤ë¥֥饦¥¶¤ËÂФ·¤Ƥϡ¢ - BrowserMatch - ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ơ¢ÆÃÄê¤Υ֥饦¥¶¤Ë no-gzip - ¥Ρ¼¥Ȥ򥻥åȤ·¡¢°µ½̤¬¹Ԥʤï¤ì¤ʤ¤¤褦¤ˤ·¤ޤ¹¡£ - no-gzip ¤È gzip-only-text/html - ¤òÁȤ߹ç¤碌¤뤳¤ȤǾå¼꤯Âнè¤Ǥ­¤ޤ¹¡£ - ¤³¤ξì¹硢Á°¼Ԥ¬¸å¼Ԥ򥪡¼¥С¼¥饤¥ɤ·¤ޤ¹¡£ - ¾嵭¤ÎÀßÄêÎã¤Îȴ¿è¤ò - ¼¡¤˼¨¤·¤ޤ¹¤ΤǤ´Í÷²¼¤µ¤¤¡£

    - -

    - BrowserMatch ^Mozilla/4 gzip-only-text/html
    - BrowserMatch ^Mozilla/4\.0[678] no-gzip
    - BrowserMatch \bMSIE !no-gzip !gzip-only-text/html -

    - -

    ¤ޤº»Ϥá¤Ë User-Agent ʸ»úÎ󤫤é Netscape Navigator - 4.x ¤Ǥ¢¤뤫¤ɤ¦¤«¤òĴ¤٤ޤ¹¡£¤³¤ì¤é¤ΥС¼¥¸¥ç¥ó¤Ǥϡ¢ - text/html °ʳ°¤Υ¿¥¤¥פΰµ½̤򰷤¦¤³¤Ȥ¬¤Ǥ­¤ޤ»¤ó¡£ - 4.06, 4.07, 4.08 ¤Ï html ¥ե¡¥¤¥ë¤ο­ĥ¤ˤâÌäÂê¤òÊú¤¨¤Ƥ¤¤ޤ¹¡£ - ¤Ǥ¹¤«¤餳¤ì¤é¤ËÂФ·¤Ƥϡ¢´°Á´¤Ë deflate ¥ե£¥륿¤򥪥դˤ·¤ޤ¹¡£

    - -

    3 ÈÖÌܤÎ BrowserMatch - ¥ǥ£¥쥯¥ƥ£¥֤ǡ¢¿ä¬¤·¤¿¥桼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥Ȥò½¤Àµ¤·¤ޤ¹¡£ - ¤ʤ¼¤ʤé Microsoft Internet Explorer ¤â "Mozilla/4" ¤ÈÆÃÄꤵ¤ì¤ޤ¹¤¬¡¢ - ¤³¤ì¤é¤ϼºݤˤϰµ½̤򰷤¦¤³¤Ȥ¬¤Ǥ­¤뤫¤é¤Ǥ¹¡£ - User-Agent ¥إåÀ¤ò "MSIE" - (\b ¤ϡÖñ¸ì¤ζ­³¦¡פò°Ọ̃¤·¤ޤ¹) ¤ÎÄɲÃʸ»ú¤Ǹ¡ºº¤·¤ơ¢ - ¤³¤ì°ÊÁ°¤ËÀßÄꤷ¤¿À©¸¤òºƤӲò½ü¤·¤ޤ¹¡£

    - -

    Ãí

    - DEFLATE ¥ե£¥륿¤Ïɬ¤º¡¢PHP ¤ä SSI ¤Ȥ¤¤ä¿ RESOURCE - ¥ե£¥륿¤θå¤ˤʤê¤ޤ¹¡£ - DEFLATE ¥ե£¥륿¤ÏÆâÉôŪ¤ʥµ¥֥ꥯ¥¨¥¹¥Ȥò´ØÃΤ·¤ޤ»¤ó¡£ -
    -

    Ãí

    - SetEnv ¤ÇÀßÄꤵ¤ì¤ë - force-gzip ´Ķ­Êѿô¤¬¤¢¤ê¤ޤ¹¤¬¡¢¤³¤ì¤Ï - ¥֥饦¥¶¤Î accept-encoding ÀßÄê¤ò̵»뤷¡¢°µ½̤·¤¿½ÐÎϤ򤷤ޤ¹¡£ -
    - - -

    ½ÐÎϤο­Ĺ

    -

    mod_deflate ¥⥸¥塼¥ë¤ϡ¢gzip °µ½̤µ¤줿¥쥹¥ݥó¥¹ - ËÜʸ¤ò inflate/uncompress ¤¹¤ë¥ե£¥륿¤âÄ󶡤·¤Ƥ¤¤ޤ¹¡£ - ¤³¤ε¡ǽ¤òͭ¸ú¤ˤ¹¤ë¤ˤϡ¢SetOutputFilter - ¤ä AddOutputFilter ¤ò»Ȥäơ¢ - INFLATE ¥ե£¥륿¤ò½ÐÎϥե£¥륿¥Á¥§¥¤¥ó¤ËÁÞÆþ¤·¤ޤ¹¡£ - Î㤨¤м¡¤Τ褦¤ˤ·¤ޤ¹¡£

    - -

    - <Location /dav-area>
    - - ProxyPass http://example.com/
    - SetOutputFilter INFLATE
    -
    - </Location> -

    - -

    ¤³¤ÎÎã¤Ǥϡ¢example.com ¤«¤é¤Î gzip °µ½̤µ¤줿½ÐÎϤò¿­Ĺ¤·¡¢ - ¤½¤Î¾¤Υե£¥륿¤¬¤µ¤é¤ˤ½¤νÐÎϤò½èÍý¤Ǥ­¤ë¤褦¤ˤ·¤ޤ¹¡£ -

    - - -

    ÆþÎϤο­ĥ

    -

    mod_deflate ¥⥸¥塼¥ë¤ϡ¢gzip - ¤ǰµ½̤µ¤줿¥ꥯ¥¨¥¹¥ÈËÜÂΤò¿­ĥ¤¹¤ë¥ե£¥륿¤âÄ󶡤·¤Ƥ¤¤ޤ¹¡£ - ¤³¤ε¡ǽ¤òͭ¸ú¤ˤ¹¤ë¤ˤϡ¢SetInputFilter - ¤« AddInputFilter ¤ò»ÈÍѤ·¤ơ¢ - DEFLATE ¥ե£¥륿¤òÆþÎϥե£¥륿¥Á¥§¥¤¥ó¤ËÁȤ߹þ¤ߤޤ¹¡£ - Î㤨¤м¡¤Τ褦¤ˤʤê¤ޤ¹¡£

    - -

    - <Location /dav-area>
    - - SetInputFilter DEFLATE
    -
    - </Location> -

    - -

    ¤³¤ÎÀßÄê¤Ǥ¢¤ì¤С¢Content-Encoding: gzip - ¥إåÀ¤ò´ޤà¥ꥯ¥¨¥¹¥Ȥ¬Íè¤ë¤ȡ¢ËÜÂΤϼ«ưŪ¤˿­ĥ¤µ¤ì¤ޤ¹¡£ - gzip ¥ꥯ¥¨¥¹¥ÈËÜÂΤòÁ÷¿®¤¹¤ë¥֥饦¥¶¤Ϥ¢¤ޤꤢ¤ê¤ޤ»¤ó¡£ - ¤·¤«¤·¡¢Î㤨¤Ð WebDAV - ¥¯¥饤¥¢¥ó¥Ȥδö¤Ĥ«¤ʤɡ¢ÆÃÊ̤ʥ¢¥ץꥱ¡¼¥·¥ç¥ó¤ǥꥯ¥¨¥¹¥ȤÎ - °µ½̤ò¼ºݤ˥µ¥ݡ¼¥Ȥ·¤Ƥ¤¤ë¤â¤Τ⤢¤ê¤ޤ¹¡£

    - -

    Content-Length ¤˴ؤ¹¤ëÃí°Õ

    -

    ¥ꥯ¥¨¥¹¥ÈËÜÂΤ½¤켫ÂΤòɾ²Á¤¹¤ë¾ì¹ç¤ϡ¢Content-Length - ¥إåÀ¤ò¿®ÍѤ·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£Content-Length ¥إåÀ¤ϡ¢ - ¥¯¥饤¥¢¥ó¥Ȥ«¤éÁ÷¿®¤µ¤ì¤ë¥ǡ¼¥¿¤ÎŤµ¤òȿ±Ǥ·¤Ƥ¤¤ë¤ΤǤ¢¤äơ¢ - ¿­ĥ¤µ¤줿¥ǡ¼¥¿¥¹¥ȥ꡼¥à¤Î¥Х¤¥ȥ«¥¦¥ó¥ȤǤϤ¢¤ê¤ޤ»¤ó¡£

    -
    - -
    top
    -
    -

    Proxy ¥µ¡¼¥ФǤΰ·¤¤

    - -

    mod_deflate ¥⥸¥塼¥ë¤Ï Vary: Accept-Encoding - HTTP ±þÅú¥إåÀ¤òÁ÷¿®¤·¤ơ¢ŬÀڤÊ Accept-Encoding - ¥ꥯ¥¨¥¹¥ȥإåÀ¤òÁ÷¿®¤¹¤륯¥饤¥¢¥ó¥ȤËÂФ·¤ƤΤߡ¢ - ¥ץí¥¯¥·¥µ¡¼¥Ф¬¥­¥ã¥å·¥夷¤¿±þÅú¤òÁ÷¿®¤¹¤ë¤褦¤ËÃí°դ򴭵¯¤·¤ޤ¹¡£ - ¤³¤Τ褦¤ˤ·¤ơ¢°µ½̤򰷤¦¤³¤ȤΤǤ­¤ʤ¤¥¯¥饤¥¢¥ó¥ȤË - °µ½̤µ¤줿ÆâÍƤ¬Á÷¤é¤ì¤뤳¤ȤΤʤ¤¤褦¤ˤ·¤ޤ¹¡£

    - -

    ¤⤷ÆÃÊ̤˲¿¤«¤˰͸¤·¤ƽü³°¤·¤¿¤¤¾ì¹硢Î㤨¤Ð User-Agent - ¥إåÀ¤ʤɤ˰͸¤·¤Ƥ¤¤ë¾ì¹硢¼êư¤Ç Vary ¥إåÀ¤òÀßÄꤷ¤ơ¢ - ÄɲäÎÀ©¸¤ˤĤ¤¤ƥץí¥¯¥·¥µ¡¼¥ФËÃí°դò¹Ԥʤ¦ɬÍפ¬¤¢¤ê¤ޤ¹¡£ - Î㤨¤Ð User-Agent ¤˰͸¤·¤Æ DEFLATE - ¤òÄɲ乤ëŵ·¿Ū¤ÊÀßÄê¤Ǥϡ¢¼¡¤Τ褦¤ËÄɲ乤뤳¤Ȥˤʤê¤ޤ¹¡£

    - -

    - Header append Vary User-Agent -

    - -

    ¥ꥯ¥¨¥¹¥ȥإåÀ°ʳ°¤ξðÊó (Î㤨¤Ð HTTP ¥С¼¥¸¥ç¥ó) - ¤˰͸¤·¤ưµ½̤¹¤뤫¤ɤ¦¤«·è¤á¤ë¾ì¹硢 - Vary ¥إåÀ¤ò * ¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤Τ褦¤ˤ¹¤ë¤ȡ¢»ÅÍͤ˽àµ򤷤¿¥ץí¥¯¥·¤ϥ­¥ã¥å·¥å¤òÁ´¤¯¹Ԥʤï¤ʤ¯¤ʤê¤ޤ¹¡£

    - -

    Îã

    - Header set Vary * -

    -
    -
    top
    -

    DeflateBufferSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:zlib ¤¬°ìÅ٤˰µ½̤¹¤ë²ô¤ÎÂ礭¤µ
    ¹½ʸ:DeflateBufferSize value
    ¥ǥե©¥ë¥È:DeflateBufferSize 8096
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_deflate
    -

    DeflateBufferSize ¥ǥ£¥쥯¥ƥ£¥֤Ï - zlib ¤¬°ìÅ٤˰µ½̤¹¤ë²ô¤ÎÂ礭¤µ¤ò¥Х¤¥Èñ°̤ǻØÄꤷ¤ޤ¹¡£

    - -
    -
    top
    -

    DeflateCompressionLevel ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:½ÐÎϤËÂФ·¤ƹԤʤ¦°µ½̤ÎÄøÅÙ
    ¹½ʸ:DeflateCompressionLevel value
    ¥ǥե©¥ë¥È:Zlib ¤Υǥե©¥ë¥È
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_deflate
    ¸ߴ¹À­:This directive is available since Apache 2.0.45
    -

    DeflateCompressionLevel ¥ǥ£¥쥯¥ƥ£¥֤Ï - °µ½̤ÎÄøÅ٤òÀßÄꤷ¤ޤ¹¡£Â礭¤ÊÃͤǤϡ¢¤è¤갵½̤¬¹Ԥʤï¤ì¤ޤ¹¤¬¡¢ - CPU »񸻤ò¾ÃÈ񤷤ޤ¹¡£

    -

    ÃͤÏ 1 (Ä㰵½Ì) ¤«¤é 9 (¹ⰵ½Ì) ¤Ǥ¹¡£

    - -
    -
    top
    -

    DeflateFilterNote ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥í¥®¥ó¥°ÍѤ˰µ½ÌÈæ¤ò¥á¥â¤ËÄɲÃ
    ¹½ʸ:DeflateFilterNote [type] notename
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_deflate
    ¸ߴ¹À­:type is available since Apache 2.0.45
    -

    DeflateFilterNote ¥ǥ£¥쥯¥ƥ£¥֤Ï - °µ½ÌÈæ¤˴ؤ¹¤ë¥á¥⤬¥ꥯ¥¨¥¹¥ȤËÉղ䵤ì¤뤳¤Ȥò»ØÄꤷ¤ޤ¹¡£ - ¥á¥â (note) ¤Î̾Á°¤ϥǥ£¥쥯¥ƥ£¥֤˻ØÄꤵ¤줿ÃͤǤ¹¡£ - ¥á¥â¤Ï¥¢¥¯¥»¥¹¥í¥°¤Ë - Ãͤòµ­Ͽ¤·¡¢Åý·פò¼è¤ëÌÜŪ¤ˤâ»Ȥ¨¤ޤ¹¡£

    - -

    Îã

    - DeflateFilterNote ratio
    -
    - LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
    - CustomLog logs/deflate_log deflate -

    - -

    ¥í¥°¤«¤é¤â¤äÈÀº̩¤ÊÃͤòÃê½Ф·¤¿¤¤¾ì¹ç¤ϡ¢type - °ú¿ô¤ò»ÈÍѤ·¤ơ¢¥ǡ¼¥¿¥¿¥¤¥פò¥í¥°¤Υá¥â¤Ȥ·¤ƻĤ¹¤褦¤˻ØÄê¤Ǥ­¤ޤ¹¡£ - type ¤ϼ¡¤Τ¦¤Á¤ΰì¤ĤǤ¹¡£

    - -
    -
    Input
    -
    ¥ե£¥륿¤ÎÆþÎϥ¹¥ȥ꡼¥à¤ΥХ¤¥ȥ«¥¦¥ó¥Ȥò¥á¥â¤ËÊݸ¤¹¤롣
    - -
    Output
    -
    ¥ե£¥륿¤νÐÎϥ¹¥ȥ꡼¥à¤ΥХ¤¥ȥ«¥¦¥ó¥Ȥò¥á¥â¤ËÊݸ¤¹¤롣
    - -
    Ratio
    -
    °µ½ÌΨ (½ÐÎÏ / ÆþÎÏ * 100) ¤ò¥á¥â¤ËÊݸ¤¹¤롣 - type °ú¿ô¤ò¾Êά¤·¤¿¾ì¹ç¤ϡ¢¤³¤줬¥ǥե©¥ë¥ȤȤʤê¤ޤ¹¡£
    -
    - -

    ¤ޤȤá¤ë¤ȡ¢¼¡¤Τ褦¤˥í¥°¤ò¼è¤뤳¤Ȥˤʤë¤Ǥ·¤礦¡£

    - -

    Àº̩¤ʥí¥°ºμè

    - DeflateFilterNote Input instream
    - DeflateFilterNote Output outstream
    - DeflateFilterNote Ratio ratio
    -
    - LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
    - CustomLog logs/deflate_log deflate -

    - -

    »²¾È

    - -
    -
    top
    -

    DeflateMemLevel ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:zlib ¤¬°µ½̤˻Ȥ¦¥á¥â¥ê¤Υì¥٥ë¤ò»ØÄê
    ¹½ʸ:DeflateMemLevel value
    ¥ǥե©¥ë¥È:DeflateMemLevel 9
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_deflate
    -

    DeflateMemLevel ¥ǥ£¥쥯¥ƥ£¥֤Ï - zlib ¤¬°µ½̤˻Ȥ¦¥á¥â¥ê¤Υì¥٥ë¤òÀßÄꤷ¤ޤ¹ (1 ¤«¤é 9 ¤δ֤ÎÃÍ)¡£ - (ÌõÃí: 2 ¤òÄì¤Ȥ¹¤ëÂпô¤ÎÃͤˤʤê¤ޤ¹¡£ - 8 ÄøÅ٤¬Îɤ¤¤Ǥ·¤礦¡£)

    - -
    -
    top
    -

    DeflateWindowSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:Zlib ¤ΰµ½ÌÍѥ¦¥£¥ó¥ɥ¦¤ÎÂ礭¤µ
    ¹½ʸ:DeflateWindowSize value
    ¥ǥե©¥ë¥È:DeflateWindowSize 15
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_deflate
    -

    DeflateWindowSize ¥ǥ£¥쥯¥ƥ£¥֤Ï - zlib ¤ΰµ½ÌÍѥ¦¥£¥ó¥ɥ¦ (ÌõÃí: zlib ¤ǻÈÍѤµ¤ì¤ëÍúÎò¥Хåե¡) - ¤ÎÂ礭¤µ¤ò»ØÄꤷ¤ޤ¹ (1 ¤«¤é 15 ¤δ֤ÎÃÍ)¡£ - °ìÈÌŪ¤ËÂ礭¤ʥ¦¥£¥ó¥ɥ¦¥µ¥¤¥º¤ò»ÈÍѤ¹¤ë¤Ȱµ½ÌΨ¤¬¸þ¾夷¤ޤ¹¡£ - (ÌõÃí: 2 ¤òÄì¤Ȥ¹¤ëÂпô¤ÎÃͤˤʤê¤ޤ¹¡£ - 8 ¤«¤é 15 ¤ˤ¹¤ë¤Τ¬Îɤ¤¤Ǥ·¤礦¡£)

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_deflate.html.ja.utf8 b/docs/manual/mod/mod_deflate.html.ja.utf8 new file mode 100644 index 00000000000..e3901dfdcda --- /dev/null +++ b/docs/manual/mod/mod_deflate.html.ja.utf8 @@ -0,0 +1,452 @@ + + + + + +mod_deflate - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_deflate

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:クライアントへ送られる前にコンテンツを圧縮する
    ステータス:Extension
    モジュール識別子:deflate_module
    ソースファイル:mod_deflate.c
    +

    概要

    + +

    mod_deflate モジュールは DEFLATE + 出力フィルタを提供します。これはサーバからの出力を、ネットワークを + 通してクライアントに送る前に圧縮することを可能にします。

    +
    + +
    top
    +
    +

    サンプル設定

    +

    下にせっかちな人向けの簡単な設定例を示します。

    + +

    数タイプのみ圧縮する

    + AddOutputFilterByType DEFLATE text/html text/plain text/xml +

    + +

    以下の設定はコンテンツをより圧縮しますが、ずっと複雑な設定になります。 + 設定の隅々までよく理解しないで使わないでください。

    + +

    画像以外全て圧縮する

    + <Location />
    + + # Insert filter
    + SetOutputFilter DEFLATE
    +
    + # Netscape 4.x has some problems...
    + BrowserMatch ^Mozilla/4 gzip-only-text/html
    +
    + # Netscape 4.06-4.08 have some more problems
    + BrowserMatch ^Mozilla/4\.0[678] no-gzip
    +
    + # MSIE masquerades as Netscape, but it is fine
    + BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    + # Don't compress images
    + SetEnvIfNoCase Request_URI \
    + + \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    +
    +
    + # Make sure proxies don't deliver the wrong content
    + Header append Vary User-Agent env=!dont-vary
    +
    + </Location> +

    + +
    top
    +
    +

    圧縮を有効にする

    + +

    Output Compression

    +

    圧縮機能は DEFLATE フィルタ + により実装されています。以下のディレクティブはそのディレクティブのある + コンテナ中のドキュメントを圧縮するようにします:

    + +

    + SetOutputFilter DEFLATE +

    + +

    よく使われているブラウザでは、すべてのコンテンツに対する + 圧縮を扱えるわけではありません。ですから、gzip-only-text/html + ノートを 1 にして、html ファイルに対してのみ + 圧縮が働くようにした方がよいかもしれません (以下参照) + この値を 1 以外の値に設定した場合は無視されます。

    + +

    通常、特定のMIMEタイプについてのみ圧縮したいのであれば、 + AddOutputFilterByType + ディレクティブを使用します。次に Apache のドキュメントの html + ファイルのみの圧縮を有効にする例を示します。

    + +

    + <Directory "/your-server-root/manual">
    + + AddOutputFilterByType DEFLATE text/html
    +
    + </Directory> +

    + +

    全てのファイルタイプでの圧縮に問題を抱えているブラウザに対しては、 + BrowserMatch + ディレクティブを使用して、特定のブラウザに no-gzip + ノートをセットし、圧縮が行なわれないようにします。 + no-gzip と gzip-only-text/html + を組み合わせることで上手く対処できます。 + この場合、前者が後者をオーバーライドします。 + 上記の設定例の抜粋を + 次に示しますのでご覧下さい。

    + +

    + BrowserMatch ^Mozilla/4 gzip-only-text/html
    + BrowserMatch ^Mozilla/4\.0[678] no-gzip
    + BrowserMatch \bMSIE !no-gzip !gzip-only-text/html +

    + +

    まず始めに User-Agent 文字列から Netscape Navigator + 4.x であるかどうかを調べます。これらのバージョンでは、 + text/html 以外のタイプの圧縮を扱うことができません。 + 4.06, 4.07, 4.08 は html ファイルの伸張にも問題を抱えています。 + ですからこれらに対しては、完全に deflate フィルタをオフにします。

    + +

    3 番目の BrowserMatch + ディレクティブで、推測したユーザーエージェントを修正します。 + なぜなら Microsoft Internet Explorer も "Mozilla/4" と特定されますが、 + これらは実際には圧縮を扱うことができるからです。 + User-Agent ヘッダを "MSIE" + (\b は「単語の境界」を意味します) の追加文字で検査して、 + これ以前に設定した制限を再び解除します。

    + +

    注

    + DEFLATE フィルタは必ず、PHP や SSI といった RESOURCE + フィルタの後になります。 + DEFLATE フィルタは内部的なサブリクエストを関知しません。 +
    +

    注

    + SetEnv で設定される + force-gzip 環境変数がありますが、これは + ブラウザの accept-encoding 設定を無視し、圧縮した出力をします。 +
    + + +

    出力の伸長

    +

    mod_deflate モジュールは、gzip 圧縮されたレスポンス + 本文を inflate/uncompress するフィルタも提供しています。 + この機能を有効にするには、SetOutputFilter + や AddOutputFilter を使って、 + INFLATE フィルタを出力フィルタチェインに挿入します。 + 例えば次のようにします。

    + +

    + <Location /dav-area>
    + + ProxyPass http://example.com/
    + SetOutputFilter INFLATE
    +
    + </Location> +

    + +

    この例では、example.com からの gzip 圧縮された出力を伸長し、 + その他のフィルタがさらにその出力を処理できるようにします。 +

    + + +

    入力の伸張

    +

    mod_deflate モジュールは、gzip + で圧縮されたリクエスト本体を伸張するフィルタも提供しています。 + この機能を有効にするには、SetInputFilter + か AddInputFilter を使用して、 + DEFLATE フィルタを入力フィルタチェインに組み込みます。 + 例えば次のようになります。

    + +

    + <Location /dav-area>
    + + SetInputFilter DEFLATE
    +
    + </Location> +

    + +

    この設定であれば、Content-Encoding: gzip + ヘッダを含むリクエストが来ると、本体は自動的に伸張されます。 + gzip リクエスト本体を送信するブラウザはあまりありません。 + しかし、例えば WebDAV + クライアントの幾つかなど、特別なアプリケーションでリクエストの + 圧縮を実際にサポートしているものもあります。

    + +

    Content-Length に関する注意

    +

    リクエスト本体それ自体を評価する場合は、Content-Length + ヘッダを信用しないでください。Content-Length ヘッダは、 + クライアントから送信されるデータの長さを反映しているのであって、 + 伸張されたデータストリームのバイトカウントではありません。

    +
    + +
    top
    +
    +

    Proxy サーバでの扱い

    + +

    mod_deflate モジュールは Vary: Accept-Encoding + HTTP 応答ヘッダを送信して、適切な Accept-Encoding + リクエストヘッダを送信するクライアントに対してのみ、 + プロクシサーバがキャッシュした応答を送信するように注意を喚起します。 + このようにして、圧縮を扱うことのできないクライアントに + 圧縮された内容が送られることのないようにします。

    + +

    もし特別に何かに依存して除外したい場合、例えば User-Agent + ヘッダなどに依存している場合、手動で Vary ヘッダを設定して、 + 追加の制限についてプロクシサーバに注意を行なう必要があります。 + 例えば User-Agent に依存して DEFLATE + を追加する典型的な設定では、次のように追加することになります。

    + +

    + Header append Vary User-Agent +

    + +

    リクエストヘッダ以外の情報 (例えば HTTP バージョン) + に依存して圧縮するかどうか決める場合、 + Vary ヘッダを * に設定する必要があります。 + このようにすると、仕様に準拠したプロクシはキャッシュを全く行なわなくなります。

    + +

    例

    + Header set Vary * +

    +
    +
    top
    +

    DeflateBufferSize ディレクティブ

    + + + + + + + +
    説明:zlib が一度に圧縮する塊の大きさ
    構文:DeflateBufferSize value
    デフォルト:DeflateBufferSize 8096
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_deflate
    +

    DeflateBufferSize ディレクティブは + zlib が一度に圧縮する塊の大きさをバイト単位で指定します。

    + +
    +
    top
    +

    DeflateCompressionLevel ディレクティブ

    + + + + + + + + +
    説明:出力に対して行なう圧縮の程度
    構文:DeflateCompressionLevel value
    デフォルト:Zlib のデフォルト
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_deflate
    互換性:This directive is available since Apache 2.0.45
    +

    DeflateCompressionLevel ディレクティブは + 圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、 + CPU 資源を消費します。

    +

    値は 1 (低圧縮) から 9 (高圧縮) です。

    + +
    +
    top
    +

    DeflateFilterNote ディレクティブ

    + + + + + + + +
    説明:ロギング用に圧縮比をメモに追加
    構文:DeflateFilterNote [type] notename
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_deflate
    互換性:type is available since Apache 2.0.45
    +

    DeflateFilterNote ディレクティブは + 圧縮比に関するメモがリクエストに付加されることを指定します。 + メモ (note) の名前はディレクティブに指定された値です。 + メモはアクセスログに + 値を記録し、統計を取る目的にも使えます。

    + +

    例

    + DeflateFilterNote ratio
    +
    + LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
    + CustomLog logs/deflate_log deflate +

    + +

    ログからもっと精密な値を抽出したい場合は、type + 引数を使用して、データタイプをログのメモとして残すように指定できます。 + type は次のうちの一つです。

    + +
    +
    Input
    +
    フィルタの入力ストリームのバイトカウントをメモに保存する。
    + +
    Output
    +
    フィルタの出力ストリームのバイトカウントをメモに保存する。
    + +
    Ratio
    +
    圧縮率 (出力 / 入力 * 100) をメモに保存する。 + type 引数を省略した場合は、これがデフォルトとなります。
    +
    + +

    まとめると、次のようにログを取ることになるでしょう。

    + +

    精密なログ採取

    + DeflateFilterNote Input instream
    + DeflateFilterNote Output outstream
    + DeflateFilterNote Ratio ratio
    +
    + LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
    + CustomLog logs/deflate_log deflate +

    + +

    参照

    + +
    +
    top
    +

    DeflateInflateLimitRequestBody ディレクティブ

    + + + + + + + + +
    説明:Maximum size of inflated request bodies
    構文:DeflateInflateLimitRequestBodyvalue
    デフォルト:None, but LimitRequestBody applies after deflation
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    ステータス:Extension
    モジュール:mod_deflate
    互換性:2.2.28 and later

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    DeflateInflateRatioBurst ディレクティブ

    + + + + + + + + +
    説明:Maximum number of times the inflation ratio for request bodies + can be crossed
    構文:DeflateInflateRatioBurst value
    デフォルト:3
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    ステータス:Extension
    モジュール:mod_deflate
    互換性:2.2.28 and later

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    DeflateInflateRatioLimit ディレクティブ

    + + + + + + + + +
    説明:Maximum inflation ratio for request bodies
    構文:DeflateInflateRatioLimit value
    デフォルト:200
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    ステータス:Extension
    モジュール:mod_deflate
    互換性:2.2.28 and later

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    DeflateMemLevel ディレクティブ

    + + + + + + + +
    説明:zlib が圧縮に使うメモリのレベルを指定
    構文:DeflateMemLevel value
    デフォルト:DeflateMemLevel 9
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_deflate
    +

    DeflateMemLevel ディレクティブは + zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。 + (訳注: 2 を底とする対数の値になります。 + 8 程度が良いでしょう。)

    + +
    +
    top
    +

    DeflateWindowSize ディレクティブ

    + + + + + + + +
    説明:Zlib の圧縮用ウィンドウの大きさ
    構文:DeflateWindowSize value
    デフォルト:DeflateWindowSize 15
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_deflate
    +

    DeflateWindowSize ディレクティブは + zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) + の大きさを指定します (1 から 15 の間の値)。 + 一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。 + (訳注: 2 を底とする対数の値になります。 + 8 から 15 にするのが良いでしょう。)

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_deflate.html.ko.euc-kr b/docs/manual/mod/mod_deflate.html.ko.euc-kr index 1772bfe109d..1b8ac093307 100644 --- a/docs/manual/mod/mod_deflate.html.ko.euc-kr +++ b/docs/manual/mod/mod_deflate.html.ko.euc-kr @@ -1,30 +1,39 @@ - -mod_deflate - Apache HTTP Server +mod_deflate - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_deflate

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_deflate

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -35,23 +44,26 @@ Ŭ¶óÀ̾ðƮ¿¡ º¸³»±â Àü¿¡ ¾ÐÃàÇϴ DEFLATE Ãâ·ÂÇÊÅ͸¦ Á¦°øÇѴÙ.

    -
    top

    °ߺ» ¼³Á¤

    @@ -326,6 +338,46 @@
    top
    +
    ¼³¸í:³»¿ëÀ» Ŭ¶óÀ̾ðƮ·Î º¸³»±â Àü¿¡ ¾ÐÃàÇѴÙ
    »óÅÂ:Extension
    ¸ðµâ¸í:deflate_module
    + + + + + + + +
    ¼³¸í:Maximum size of inflated request bodies
    ¹®¹ý:DeflateInflateLimitRequestBodyvalue
    ±⺻°ª:None, but LimitRequestBody applies after deflation
    »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess
    »óÅÂ:Extension
    ¸ðµâ:mod_deflate
    Áö¿ø:2.2.28 and later

    The documentation for this directive has + not been translated yet. Please have a look at the English + version.

    +
    top
    +

    DeflateInflateRatioBurst Áö½þî

    + + + + + + + + +
    ¼³¸í:Maximum number of times the inflation ratio for request bodies + can be crossed
    ¹®¹ý:DeflateInflateRatioBurst value
    ±⺻°ª:3
    »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess
    »óÅÂ:Extension
    ¸ðµâ:mod_deflate
    Áö¿ø:2.2.28 and later

    The documentation for this directive has + not been translated yet. Please have a look at the English + version.

    +
    top
    +

    DeflateInflateRatioLimit Áö½þî

    + + + + + + + + +
    ¼³¸í:Maximum inflation ratio for request bodies
    ¹®¹ý:DeflateInflateRatioLimit value
    ±⺻°ª:200
    »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess
    »óÅÂ:Extension
    ¸ðµâ:mod_deflate
    Áö¿ø:2.2.28 and later

    The documentation for this directive has + not been translated yet. Please have a look at the English + version.

    +
    top

    DeflateMemLevel Áö½þî

    @@ -360,7 +412,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    - +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_deflate.xml b/docs/manual/mod/mod_deflate.xml index c1cbbf84b5b..4585ace78e5 100644 --- a/docs/manual/mod/mod_deflate.xml +++ b/docs/manual/mod/mod_deflate.xml @@ -4,12 +4,12 @@ + + - + mod_deflate /mod/ .. en - ja - ko + ja + ko diff --git a/docs/manual/mod/mod_dir.html b/docs/manual/mod/mod_dir.html index be6c14c8705..3daf13e1958 100644 --- a/docs/manual/mod/mod_dir.html +++ b/docs/manual/mod/mod_dir.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_dir.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_dir.html.ja.euc-jp +URI: mod_dir.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_dir.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_dir.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_dir.html.en b/docs/manual/mod/mod_dir.html.en index 6f580e3a10b..140d630f6b9 100644 --- a/docs/manual/mod/mod_dir.html.en +++ b/docs/manual/mod/mod_dir.html.en @@ -1,35 +1,43 @@ - -mod_dir - Apache HTTP Server +mod_dir - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_dir

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_dir

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    ¼³¸í:zlibÀÌ ¾ÐÃàÇҶ§ »ç¿ëÇϴ ¸޸𸮷®
    - -
    Description:Provides for "trailing slash" redirects and serving directory index files
    Status:Base
    Module Identifier:dir_module
    Source File:mod_dir.c
    +Module Identifier:dir_module +Source File:mod_dir.c

    Summary

    The index of a directory can come from one of two sources:

    @@ -45,7 +53,7 @@

    The two functions are separated so that you can completely remove (or replace) automatic index generation should you want - to.

    + to.

    A "trailing slash" redirect is issued when the server receives a request for a URL @@ -58,8 +66,9 @@

    -
    +
    top

    DirectoryIndex Directive

    @@ -89,8 +98,8 @@ a directory DirectoryIndex index.html

    -

    then a request for http://myserver/docs/ would - return http://myserver/docs/index.html if it +

    then a request for http://example.com/docs/ would + return http://example.com/docs/index.html if it exists, or would list the directory if it did not.

    Note that the documents do not need to be relative to the @@ -104,6 +113,22 @@ a directory executed if neither index.html or index.txt existed in a directory.

    +

    Note: Multiple DirectoryIndex + directives within the same context will add + to the list of resources to look for rather than replace: +

    + +
    # Example A: Set index.html as an index page, then add index.php to that list as well.
    +<Directory /foo>
    +    DirectoryIndex index.html
    +    DirectoryIndex index.php
    +</Directory>
    +
    +# Example B: This is identical to example A, except it's done with a single directive.
    +<Directory /foo>
    +    DirectoryIndex index.html index.php
    +</Directory>
    +
    top

    DirectorySlash Directive

    @@ -117,13 +142,13 @@ a directory Module:mod_dir Compatibility:Available in version 2.0.51 and later -

    The DirectorySlash directive determines, whether +

    The DirectorySlash directive determines whether mod_dir should fixup URLs pointing to a directory or not.

    Typically if a user requests a resource without a trailing slash, which points to a directory, mod_dir redirects him to the same - ressource, but with trailing slash for some good reasons:

    + resource, but with trailing slash for some good reasons:

    • The user is finally requesting the canonical URL of the resource
    • @@ -134,8 +159,10 @@ a directory
    • Relative URL references inside html pages will work correctly.
    -

    Well, if you don't want this effect and the reasons above don't - apply to you, you can turn off the redirect with:

    +

    If you don't want this effect and the reasons above don't + apply to you, you can turn off the redirect as shown below. However, + be aware that there are possible security implications to doing + this.

    # see security warning below!
    @@ -157,13 +184,90 @@ a directory would list the directory contents.

    +
    +
    top
    +

    FallbackResource Directive

    + + + + + + + + + +
    Description:Define a default URL for requests that don't map to a file
    Syntax:FallbackResource disabled | local-url
    Default:None - httpd will return 404 (Not Found)
    Context:server config, virtual host, directory, .htaccess
    Override:Indexes
    Status:Base
    Module:mod_dir
    Compatibility:Apache HTTP Server 2.2.16 and later - The disabled argument +is supported since 2.2.24
    +

    Use this to set a handler for any URL that doesn't map to anything + in your filesystem, and would otherwise return HTTP 404 (Not Found). + For example

    +

    + FallbackResource /not-404.php +

    +

    will cause requests for non-existent files to be handled by + not-404.php, while requests for files that exist + are unaffected.

    +

    It is frequently desirable to have a single file or resource + handle all requests to a particular directory, except those requests + that correspond to an existing file or script. This is often + referred to as a 'front controller.'

    +

    In earlier versions of httpd, this effect typically required + mod_rewrite, and the use of the -f and + -d tests for file and directory existence. This now + requires only one line of configuration.

    +

    + FallbackResource /index.php +

    +

    Existing files, such as images, css files, and so on, will be + served normally.

    +

    Use the disabled argument to disable that feature + if inheritance from a parent directory is not desired.

    +

    In a sub-URI, such as http://example.com/blog/ this + sub-URI has to be supplied as local-url:

    +

    + + <Directory /web/example.com/htdocs/blog>
    + + FallbackResource /blog/index.php
    +
    + </Directory>
    + <Directory /web/example.com/htdocs/blog/images>
    + + FallbackResource disabled
    +
    + </Directory> +
    +

    +

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_dir.html.ja.euc-jp b/docs/manual/mod/mod_dir.html.ja.euc-jp deleted file mode 100644 index abe4df2a58b..00000000000 --- a/docs/manual/mod/mod_dir.html.ja.euc-jp +++ /dev/null @@ -1,180 +0,0 @@ - - - -mod_dir - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_dir

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¡ֺǸå¤Υ¹¥é¥å·¥å¡פΥê¥À¥¤¥쥯¥Ȥȡ¢¥ǥ£¥쥯¥ȥê¤Î -¥¤¥ó¥ǥ寥¹¥ե¡¥¤¥ë¤򰷤¦µ¡ǽ¤òÄ󶡤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:dir_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_dir.c
    -

    ³µÍ×

    - -

    ¥ǥ£¥쥯¥ȥꥤ¥ó¥ǥ寥¹¤ϡ¢¼¡¤ÎÆó¤ĤΤ¦¤Á¤ɤÁ¤餫¤¬ÍøÍѤµ¤ì¤ޤ¹:

    - -
      -
    • °ì¤ÄÌܤϡ¢¥桼¥¶¤¬ºîÀ®¤·¤¿¥ե¡¥¤¥ë¤òÍѤ¤¤ë¤â¤Τǡ¢Ä̾ï - index.html ¤Ȥ¤¤¦¥ե¡¥¤¥ë̾¤ò»Ȥ¤¤ޤ¹¡£¤³¤Υե¡¥¤¥ë̾¤ϡ¢ - DirectoryIndex ¥ǥ£¥쥯¥ƥ£¥֤Ç - »ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤³¤ε¡ǽ¤Ï mod_dir - ¥⥸¥塼¥ë¤ÇÄ󶡤µ¤ì¤ޤ¹¡£
    • - -
    • ¤⤦°ì¤ĤÎÊýˡ¤ϡ¢ - ¥µ¡¼¥Фˤè¤äƼ«ưŪ¤ËÀ¸À®¤µ¤ì¤ë¥ǥ£¥쥯¥ȥê¥ꥹ¥ȤòÍѤ¤¤ë¾ì¹ç¤Ǥ¹¡£ - ¤³¤ε¡ǽ¤ϡ¢mod_autoindex - ¥⥸¥塼¥ë¤ˤè¤êÄ󶡤µ¤ì¤ޤ¹¡£
    • -
    - -

    ¼«ưŪ¤ʥ¤¥ó¥ǥ寥¹À¸À®µ¡ǽ¤òºï½ü (¤⤷¤¯¤ϸò´¹) - ¤Ǥ­¤ë¤褦¤ˡ¢¤³¤ÎÆó¤Ĥε¡ǽ¤ÏʬΥ¤µ¤ì¤Ƥ¤¤ޤ¹¡£

    - -

    ¤ʤª http://servername/foo/dirname ¤Ȥ¤¤¦ URL - ¤ؤΥꥯ¥¨¥¹¥Ȥ¬¤¢¤ä¿ºݤˡ¢dirname - ¤Ȥ¤¤¦¥ǥ£¥쥯¥ȥ꤬¤¢¤ì¤С¢¡ֺǸå¤˥¹¥é¥å·¥å¤ò¤Ĥ±¤¿·Á¡פÎ URL - ¤ؤΥê¥À¥¤¥쥯¥ȤòÁ÷½Ф·¤ޤ¹¡£ - ¥ǥ£¥쥯¥ȥê¤ؤΥ¢¥¯¥»¥¹¤ϥ¹¥é¥å·¥å¤ǽª¤ï¤äƤ¤¤ëɬÍפ¬¤¢¤ꡢ - mod_dir ¤ϡ¢http://servername/foo/dirname/ - ¤ؤΥê¥À¥¤¥쥯¥ȤòÁ÷½Ф¹¤뤳¤Ȥˤʤê¤ޤ¹¡£

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -
    - -
    top
    -

    DirectoryIndex ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥¯¥饤¥¢¥ó¥Ȥ¬¥ǥ£¥쥯¥ȥê¤ò¥ꥯ¥¨¥¹¥Ȥ·¤¿¤Ȥ­¤ËĴ¤٤ë -¥꥽¡¼¥¹¤Υꥹ¥È
    ¹½ʸ:DirectoryIndex - local-url [local-url] ...
    ¥ǥե©¥ë¥È:DirectoryIndex index.html
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:Indexes
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_dir
    -

    - ¥¯¥饤¥¢¥ó¥Ȥ¬¡¢¥ǥ£¥쥯¥ȥê̾¤κǸå¤ˡÖ/¡× - ¤ò»ØÄꤷ¤ƥǥ£¥쥯¥ȥꥤ¥ó¥ǥ寥¹¤òÍ׵᤹¤ë¾ì¹ç¤Ëõ¤¹¥꥽¡¼¥¹¤Υꥹ¥Ȥò - DirectoryIndex ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤷ¤ޤ¹¡£ - Local-url - ¤ϡ¢¥ꥯ¥¨¥¹¥Ȥµ¤줿¥ǥ£¥쥯¥ȥê¤ËÂбþ¤¹¤롢¥µ¡¼¥оå¤Υɥ­¥å¥á¥ó¥ȤÎ - (% ¥¨¥󥳡¼¥ɤµ¤줿) URL ¤ǡ¢ÉáÄ̤ϥǥ£¥쥯¥ȥêÃæ¤Υե¡¥¤¥ë¤Î̾Á°¤Ǥ¹¡£ - ʣ¿ô¤Î URL ¤¬ÀßÄꤵ¤줿¾ì¹ç¤ˤϡ¢ºǽé¤˸«¤Ĥ«¤ä¿¤â¤ΤòÊ֤·¤ޤ¹¡£ - ¤½¤ì¤餬¸«¤Ĥ«¤餺¡¢Indexes - ¥ª¥ץ·¥ç¥󤬥»¥åȤµ¤ì¤Ƥ¤¤ë¾ì¹硢¥ǥ£¥쥯¥ȥê¤Υꥹ¥ȤòÀ¸À®¤·¤ޤ¹¡£ -

    - -

    Îã

    - DirectoryIndex index.html -

    - -

    http://myserver/docs/ ¤ؤΥ¢¥¯¥»¥¹¤¬¤¢¤ꡢ - http://myserver/docs/index.html - ¤¬¸ºߤ¹¤ì¤С¢¤³¤Î URL ¤¬Ê֤µ¤ì¤ޤ¹¡£ - ¤⤷¸ºߤ·¤ʤ±¤ì¤С¢¥ǥ£¥쥯¥ȥê¤Υꥹ¥Ȥ¬Ê֤µ¤ì¤ޤ¹¡£

    - -

    Ãí: ¥ɥ­¥å¥á¥ó¥Ȥ¬Ʊ¤¸¥ǥ£¥쥯¥ȥêÆâ¤Ë¸ºߤ¹¤ë¤ÏɬÍפ¢¤ê¤ޤ»¤ó¡£ -

    - -

    - DirectoryIndex index.html index.txt /cgi-bin/index.pl -

    - -

    ¤Ȥ·¤¿¾ì¹硢index.html ¤È index.txt - ¤ΤɤÁ¤é¤â¥ǥ£¥쥯¥ȥêÆâ¤Ë¸ºߤ·¤ʤ¤¾ì¹硢CGI ¥¹¥¯¥ê¥ץÈ - /cgi-bin/index.pl ¤¬¼¹Ԥµ¤ì¤ޤ¹¡£

    - -
    -
    top
    -

    DirectorySlash ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - - -
    ÀâÌÀ:¥ѥ¹ËöÈø¤Υ¹¥é¥å·¥å¤ǥê¥À¥¤¥쥯¥Ȥ¹¤뤫¤ɤ¦¤«¤Υª¥󥪥դò¥ȥ°¥뤵¤»¤ë
    ¹½ʸ:DirectorySlash On|Off
    ¥ǥե©¥ë¥È:DirectorySlash On
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:Indexes
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_dir
    ¸ߴ¹À­:2.0.51 °ʹß
    -

    Í׵á¤Τ¢¤ä¿ URL ¤¬¥ǥ£¥쥯¥ȥê¤ò»ؤ¹¤«¤ɤ¦¤«¤ò¡¢ - mod_dir ¤¬ĴÀ°¤¹¤ë¤٤­¤«¤ɤ¦¤«¤ò - DirectorySlash - ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤷ¤ޤ¹¡£

    - -

    ŵ·¿Ū¤ˤϡ¢¥桼¥¶¤¬ËöÈø¤Υ¹¥é¥å·¥å̵¤·¤ǥ꥽¡¼¥¹¤ؤΥꥯ¥¨¥¹¥Ȥòȯ¹Ԥ·¡¢ - ¤½¤·¤ơ¢¤½¤Υ꥽¡¼¥¹¤¬¥ǥ£¥쥯¥ȥê¤ò»ؤ·¤Ƥ¤¤¿¾ì¹硢mod_dir - ¤ϡ¢ËöÈø¤˥¹¥é¥å·¥å¤òÉղä·¤¿¾å¤ÇƱ¤¸¥꥽¡¼¥¹¤˥ê¥À¥¤¥쥯¥Ȥµ¤»¤ޤ¹¡£ - ¤³¤εóư¤ˤϴö¤Ĥ«Íýͳ¤¬¤¢¤ê¤ޤ¹:

    - -
      -
    • ¥桼¥¶¤ϡ¢ºǽªŪ¤ˤϥ꥽¡¼¥¹¤ÎÊÌ̾ URL ¤ò¥ꥯ¥¨¥¹¥Ȥ¹¤뤳¤Ȥˤʤ롣
    • -
    • mod_autoindex ¤¬´üÂÔÄ̤ê¤Ëư¤¯¡£mod_autoindex - ¤ÎÀ¸À®¤¹¤ë¥ê¥󥯤ϥѥ¹¤ò½ÐÎϤ·¤ޤ»¤ó¤Τǡ¢¥¹¥é¥å·¥夬¤ʤ¤¾ì¹ç¤ϴְã¤ä¿¥ѥ¹¤ò - »ؤ·¤Ƥ·¤ޤ¦¤³¤Ȥˤʤê¤ޤ¹¡£
    • -
    • DirectoryIndex ¤ϡ¢ - ËöÈø¤˥¹¥é¥å·¥夬¤Ĥ¤¤Ƥ¤¤ë¥ꥯ¥¨¥¹¥ȤˤĤ¤¤Æ¤Τßɾ²Á¤µ¤ì¤롣
    • -
    • HTML ¥ڡ¼¥¸¤ÎÁêÂÐ URL »²¾Ȥ¬Àµ¤·¤¯ưº¤롣
    • -
    - -

    ¤ȤϤ¤¤¨¡¢¤⤷¤³¤¦¤¤¤ä¿¸ú²̤ò˾¤ޤʤ¤¡¢¤«¤ġ¢ - ¾嵭¤Τ褦¤ÊÍýͳ¤¬Åö¤ƤϤޤé¤ʤ¤¾ì¹ç¤ϡ¢¥ê¥À¥¤¥쥯¥Ȥ򼡤Τ褦¤ˤ·¤ƥª¥դˤǤ­¤ޤ¹:

    - -

    - # see security warning below!
    - <Location /some/path>
    - - DirectorySlash Off
    - SetHandler some-handler
    -
    - </Location> -

    - -

    ¥»¥­¥å¥ê¥ƥ£·ٹð

    -

    ËöÈø¤Υ¹¥é¥å·¥å¤ǤΥê¥À¥¤¥쥯¥Ȥ򥪥դˤ¹¤ë¤ȡ¢·ë²ÌŪ¤˾ðÊóϳ±̤ò - ¾·¤¯¤³¤Ȥˤʤ뤫¤⤷¤ì¤ޤ»¤ó¡£ - mod_autoindex ¤¬ͭ¸ú (Options +Indexes) ¤ǡ¢ - DirectoryIndex ¤¬ͭ¸ú¤ʥ꥽¡¼¥¹ (Î㤨¤Ð - index.html) ¤ò»ؤ·¤Ƥ¤¤ơ¢¤ޤ¿¡¢Í׵á¤Τ¢¤ä¿ URL ¤ËÆÃÊ̤Ê - ¥ϥó¥ɥ餬ÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤¾ì¹ç¤ò¹ͤ¨¤ƤߤƤ¯¤À¤µ¤¤¡£ - ¤³¤ξì¹çËöÈø¤˥¹¥é¥å·¥å¤ΤĤ¤¤Ƥ¤¤ë¥ꥯ¥¨¥¹¥ȤËÂФ·¤ƤÏ index.html - ¥ե¡¥¤¥뤬Ê֤µ¤ì¤ޤ¹¡£¤·¤«¤·¥¹¥é¥å·¥å¤Τʤ¤¥ꥯ¥¨¥¹¥ȤËÂФ·¤Ƥϡ¢ - ¥ǥ£¥쥯¥ȥê¤ÎÆâÍưìÍ÷¤òÊ֤·¤Ƥ·¤ޤ¤¤ޤ¹¡£

    -
    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_dir.html.ja.utf8 b/docs/manual/mod/mod_dir.html.ja.utf8 new file mode 100644 index 00000000000..f828eae03a0 --- /dev/null +++ b/docs/manual/mod/mod_dir.html.ja.utf8 @@ -0,0 +1,230 @@ + + + + + +mod_dir - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_dir

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:「最後のスラッシュ」のリダイレクトと、ディレクトリの +インデックスファイルを扱う機能を提供する
    ステータス:Base
    モジュール識別子:dir_module
    ソースファイル:mod_dir.c
    +

    概要

    + +

    ディレクトリインデックスは、次の二つのうちどちらかが利用されます:

    + +
      +
    • 一つ目は、ユーザが作成したファイルを用いるもので、通常 + index.html というファイル名を使います。このファイル名は、 + DirectoryIndex ディレクティブで + 指定することができます。この機能は mod_dir + モジュールで提供されます。
    • + +
    • もう一つの方法は、 + サーバによって自動的に生成されるディレクトリリストを用いる場合です。 + この機能は、mod_autoindex + モジュールにより提供されます。
    • +
    + +

    自動的なインデックス生成機能を削除 (もしくは交換) + できるように、この二つの機能は分離されています。

    + +

    なお http://servername/foo/dirname という URL + へのリクエストがあった際に、dirname + というディレクトリがあれば、「最後にスラッシュをつけた形」の URL + へのリダイレクトを送出します。 + ディレクトリへのアクセスはスラッシュで終わっている必要があり、 + mod_dir は、http://servername/foo/dirname/ + へのリダイレクトを送出することになります。

    +
    + + +
    top
    +

    DirectoryIndex ディレクティブ

    + + + + + + + + +
    説明:クライアントがディレクトリをリクエストしたときに調べる +リソースのリスト
    構文:DirectoryIndex + local-url [local-url] ...
    デフォルト:DirectoryIndex index.html
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Indexes
    ステータス:Base
    モジュール:mod_dir
    +

    + クライアントが、ディレクトリ名の最後に「/」 + を指定してディレクトリインデックスを要求する場合に探すリソースのリストを + DirectoryIndex ディレクティブで設定します。 + Local-url + は、リクエストされたディレクトリに対応する、サーバ上のドキュメントの + (% エンコードされた) URL で、普通はディレクトリ中のファイルの名前です。 + 複数の URL が設定された場合には、最初に見つかったものを返します。 + それらが見つからず、Indexes + オプションがセットされている場合、ディレクトリのリストを生成します。 +

    + +

    例

    + DirectoryIndex index.html +

    + +

    http://myserver/docs/ へのアクセスがあり、 + http://myserver/docs/index.html + が存在すれば、この URL が返されます。 + もし存在しなければ、ディレクトリのリストが返されます。

    + +

    注: ドキュメントが同じディレクトリ内に存在するは必要ありません。 +

    + +

    + DirectoryIndex index.html index.txt /cgi-bin/index.pl +

    + +

    とした場合、index.html と index.txt + のどちらもディレクトリ内に存在しない場合、CGI スクリプト + /cgi-bin/index.pl が実行されます。

    + +
    +
    top
    +

    DirectorySlash ディレクティブ

    + + + + + + + + + +
    説明:パス末尾のスラッシュでリダイレクトするかどうかのオンオフをトグルさせる
    構文:DirectorySlash On|Off
    デフォルト:DirectorySlash On
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Indexes
    ステータス:Base
    モジュール:mod_dir
    互換性:2.0.51 以降
    +

    要求のあった URL がディレクトリを指すかどうかを、 + mod_dir が調整するべきかどうかを + DirectorySlash + ディレクティブで設定します。

    + +

    典型的には、ユーザが末尾のスラッシュ無しでリソースへのリクエストを発行し、 + そして、そのリソースがディレクトリを指していた場合、mod_dir + は、末尾にスラッシュを付加した上で同じリソースにリダイレクトさせます。 + この挙動には幾つか理由があります:

    + +
      +
    • ユーザは、最終的にはリソースの別名 URL をリクエストすることになる。
    • +
    • mod_autoindex が期待通りに動く。mod_autoindex + の生成するリンクはパスを出力しませんので、スラッシュがない場合は間違ったパスを + 指してしまうことになります。
    • +
    • DirectoryIndex は、 + 末尾にスラッシュがついているリクエストについてのみ評価される。
    • +
    • HTML ページの相対 URL 参照が正しく動作する。
    • +
    + +

    とはいえ、もしこういった効果を望まない、かつ、 + 上記のような理由が当てはまらない場合は、リダイレクトを次のようにしてオフにできます:

    + +

    + # see security warning below!
    + <Location /some/path>
    + + DirectorySlash Off
    + SetHandler some-handler
    +
    + </Location> +

    + +

    セキュリティ警告

    +

    末尾のスラッシュでのリダイレクトをオフにすると、結果的に情報漏洩を + 招くことになるかもしれません。 + mod_autoindex が有効 (Options +Indexes) で、 + DirectoryIndex が有効なリソース (例えば + index.html) を指していて、また、要求のあった URL に特別な + ハンドラが設定されていない場合を考えてみてください。 + この場合末尾にスラッシュのついているリクエストに対しては index.html + ファイルが返されます。しかしスラッシュのないリクエストに対しては、 + ディレクトリの内容一覧を返してしまいます。

    +
    + +
    +
    top
    +

    FallbackResource ディレクティブ

    + + + + + + + + + +
    説明:Define a default URL for requests that don't map to a file
    構文:FallbackResource disabled | local-url
    デフォルト:None - httpd will return 404 (Not Found)
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Indexes
    ステータス:Base
    モジュール:mod_dir
    互換性:Apache HTTP Server 2.2.16 and later - The disabled argument +is supported since 2.2.24

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_dir.html.ko.euc-kr b/docs/manual/mod/mod_dir.html.ko.euc-kr index bfc23c7d64e..00d03a6cf61 100644 --- a/docs/manual/mod/mod_dir.html.ko.euc-kr +++ b/docs/manual/mod/mod_dir.html.ko.euc-kr @@ -1,30 +1,40 @@ - -mod_dir - Apache HTTP Server +mod_dir - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_dir

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_dir

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -57,8 +67,9 @@ index - +
    top

    DirectoryIndex Áö½þî

    @@ -156,12 +167,49 @@ index
    +
    top
    +
    ¼³¸í:"¸¶Áö¸· ½½·¡½¬" ¸®´ÙÀ̷º¼ÇÀ» Á¦°øÇϰí µð·ºÅ丮 index ÆÄÀÏÀ» ¼­ºñ½ºÇѴÙ
    »óÅÂ:Base
    + + + + + + + + +
    ¼³¸í:Define a default URL for requests that don't map to a file
    ¹®¹ý:FallbackResource disabled | local-url
    ±⺻°ª:None - httpd will return 404 (Not Found)
    »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess
    Override ¿ɼÇ:Indexes
    »óÅÂ:Base
    ¸ðµâ:mod_dir
    Áö¿ø:Apache HTTP Server 2.2.16 and later - The disabled argument +is supported since 2.2.24

    The documentation for this directive has + not been translated yet. Please have a look at the English + version.

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_dir.html.tr.utf8 b/docs/manual/mod/mod_dir.html.tr.utf8 new file mode 100644 index 00000000000..581c321e5cb --- /dev/null +++ b/docs/manual/mod/mod_dir.html.tr.utf8 @@ -0,0 +1,274 @@ + + + + + +mod_dir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_dir

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + + + +
    Açıklama:Bölü çizgisiyle biten yönlendirmeleri yapar ve dizin içeriği dosyalarını sunar.
    Durum:Temel
    Modül Betimleyici:dir_module
    Kaynak Dosyası:mod_dir.c
    +

    Özet

    + +

    Bir dizin içerik dosyası şu iki kaynaktan birinden gelebilir:

    + +
      +
    • Kullanıcı tarafından yazılmış ve ismi genellikle + index.html olan bir dosya. Dosya ismi DirectoryIndex yönergesi ile belirlenir. + Bu, mod_dir modülü tarafından denetlenir.
    • + +
    • Aksi takdirde içerik listesi sunucu tarafından üretilir. Bu, + mod_autoindex modülü tarafından sağlanır.
    • +
    +

    Bu iki işlev tamamen birbirinden ayrıdır, dolayısıyla eğer isterseniz + kendiliğinden dizin içerik listesi üretimini tamamen iptal + edebilirsiniz.

    + +

    Sunucu http://sunucum/filanca/birdizin şeklinde bir istek + aldığında birdizin bir dizinin ismiyse ‘bölü çizgisiyle + biten’ bir yönlendirme söz konusudur. Dizinler URL sonuna bir bölü + çizgisi eklenmesini gerektirir, bu bakımdan mod_dir + modülü isteği http://sunucum/filanca/birdizin/ şeklinde + yönlendirir.

    +
    + + +
    top
    +

    DirectoryIndex Yönergesi

    + + + + + + + + +
    Açıklama:İstemci bir dizin istediğinde dizin içeriğini listeler. +
    Sözdizimi:DirectoryIndex + yerel-url [yerel-url] ...
    Öntanımlı:DirectoryIndex index.html
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:Indexes
    Durum:Temel
    Modül:mod_dir
    +

    DirectoryIndex yönergesi, istemci, dizinin + sonuna bir bölü çizgisi ekleyerek dizin içeriğinin listelenmesini + istediğinde bakılmak üzere özkaynakları listeler. + yerel-url, sunucu üstünde istenen dizine göreli + bir belgenin URL’sidir; normal olarak dizin içindeki bir dosyanın + ismidir. Çeşitli URL’ler verilebilirse de sunucu daima ilk bulduğuyla + dönecektir. Eğer özkaynakların hiçbiri yoksa ve Indexes + seçeneği atanmışsa sunucu dizin içeriğinden bir liste üretecektir.

    + +

    Örnek:

    + DirectoryIndex index.html +

    + +

    Bu yapılandırmadan sonra yapılan bir + http://mesela.dom/belgeler/ isteğine karşılık, sunucu, + mevcutsa http://mesela.dom/belgeler/index.html dosyasını + döndürecek, değilse ürettiği dizin içerik listesini gönderecektir.

    + +

    Belgelerin dizine göreli olmasının gerekmediğine dikkat ediniz.

    + +

    + DirectoryIndex index.html index.txt /cgi-bin/index.pl +

    + +

    Bu örnekte ise dizin içinde index.html ne de + index.txt mevcut olduğunda /cgi-bin/index.pl + CGI betiği çalıştırılacaktır.

    + +

    Ek Bilgi: Aynı + bağlam içinde çok sayıda DirectoryIndex + yönergesi varsa bunlar bir öncekini geçersiz kılmayacak, listeye + eklenecektir: +

    + +
    # Örnek A: İlk sayfa index.html olsun buna index.php de eklensin.
    +<Directory /foo>
    +    DirectoryIndex index.html
    +    DirectoryIndex index.php
    +</Directory>
    +
    +# Örnek B: Tek bir yönerge ile yapılması dışında Örnek A ile aynıdır.
    +<Directory /foo>
    +    DirectoryIndex index.html index.php
    +</Directory>
    + +
    +
    top
    +

    DirectorySlash Yönergesi

    + + + + + + + + + +
    Açıklama:Bölü çizgisi ile biten yönlendirmeleri açar/kapar.
    Sözdizimi:DirectorySlash On|Off
    Öntanımlı:DirectorySlash On
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:Indexes
    Durum:Temel
    Modül:mod_dir
    Uyumluluk:Apache 2.0.51 ve sonrasında mevcuttur.
    +

    DirectorySlash yönergesi, bir dizin isteğinde + bulunan URL’lerin sonuna mod_dir modülü tarafından bir + bölü çizgisi eklenip eklenmeyeceğini belirler.

    + +

    Normalde, bir kullanıcı sona bir bölü çizgisi eklemeden bir dizin için + istekte bulunursa mod_dir zaten onu aynı özkaynağa + yönlendirir, fakat isteğin sonuna bir bölü çizgisi eklenmesinin bazı iyi + sebepleri vardır:

    + +
      +
    • Kullanıcı bunun sonucunda meşru bir URL ile istekte bulunmuş olur.
    • +
    • mod_autoindex gerektiği gibi çalışır. Yoksa + bağlantıdaki yolu sunamayacağından yanlış yolu gösterirdi.
    • +
    • DirectoryIndex yönergesi + sadece bölü çizgisi ile biten dizin istekleri için değerlendirilir.
    • +
    • HTML sayfa içindeki göreli URL başvuruları gerektiği gibi + çalışacaktır.
    • +
    + +

    Siz yine de bu etkiyi istemezseniz ve yukarıdaki sebepler de size uygun + değilse yönlendirmeyi aşağıdaki gibi kapatabilirsiniz. Ancak, bunu yapmanın + olası bir güvenlik açığını da beraberinde getireceği dikkate + alınmalıdır.

    + +

    + # Aşağıdaki güvenlik uyarısına bakınız!
    + <Location /bir/yol>
    + + DirectorySlash Off
    + SetHandler bir-eylemci
    +
    + </Location> +

    + +

    Güvenlik Uyarı

    +

    Bölü çizgisi ile biten yönlendirmelerin kapatılması bir bilginin + istemeyek açığa çıkmasına sebep olabilir. mod_autoindex + modülünün etkin olduğunu (Options +Indexes) ve DirectoryIndex ile geçerli bir özkaynağın + (index.html olsun) atandığını ama bu URL için başka hiçbir + özel eylemci tanımlanmadığını varsayalım. Bu durumda bölü çizgisi ile + biten bir istek olduğunda index.html dosyası sunulurdu. + Fakat bölü çizgisi ile bitmeyen bir istek dizin içeriğinin + listelenmesi ile sonuçlanırdı.

    +
    + +
    +
    top
    +

    FallbackResource Yönergesi

    + + + + + + + + + +
    Açıklama:Bir dosyayla eşleşmeyen istekler için öntanımlı bir URL tanımlar +
    Sözdizimi:FallbackResource disabled | yerel-url
    Öntanımlı:None - httpd 404 döndürür (Bulunamadı)
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:Indexes
    Durum:Temel
    Modül:mod_dir
    Uyumluluk:Apache HTTP Server 2.2.16 ve sonrası - disabled +değiştirgesi 2.2.24'ten itibaren desteklenmektedir.
    +

    Dosya sisteminizdeki hiçbir şey ile eşleşmeyen URL'ler için bir + eylemci atamak isterseniz bunı kullanın. Kullanmadığınız takdirde + httpd bir HTTP 404 (Bulunamadı) döndürecektir. Örneğin

    +

    + FallbackResource /not-404.php +

    +

    yönergesi ile varolmayan dosyalarla ilgili isteklere + /not-404.php sayfası gönderilirken varolanlar ile + ilgili istekler bundan etkilenmeyecektir.

    +

    Çoğunlukla, belli bir dizindeki mevcut dosya ve betiklere yapılan istekler + dışındaki tüm isteklere tek bir dosyanın veya belli bir kaynağın yanıt + vermesi istenir. Buna 'öndenetleyici' adı verilir.

    +

    httpd'nin eski sürümlerinde bunu sağlamak için + mod_rewrite ve istenen dosya veya dizinin var olup + olmadığını sınamak için -f ve -d kullanımı + gerekirdi. Bu artık tek bir yapılandırma satırı ile + halledilebilmektedir.

    +

    + FallbackResource /index.php +

    +

    Resimler, css dosyaları gibi mevcut dosyalar normal olarak sunulmaya + devam edecektir.

    +

    Üst dizinden miras alınmasının istenmemesi özelliğini iptal etmek için + disabled değiştirgesini kullanın.

    +

    http://example.com/blog/ gibi bir alt-URI isteğinde bu alt-URI + bir yerel-url olarak sunulabilir:

    +

    + + <Directory /web/example.com/htdocs/blog>
    + + FallbackResource /blog/index.php
    +
    + </Directory>
    + <Directory /web/example.com/htdocs/blog/images>
    + + FallbackResource disabled
    +
    + </Directory> +
    +

    + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_dir.xml b/docs/manual/mod/mod_dir.xml index af703ff1167..ca8a62b6981 100644 --- a/docs/manual/mod/mod_dir.xml +++ b/docs/manual/mod/mod_dir.xml @@ -4,12 +4,12 @@ + + - + mod_dir /mod/ .. en - ja - ko + ja + ko + tr diff --git a/docs/manual/mod/mod_dir.xml.tr b/docs/manual/mod/mod_dir.xml.tr new file mode 100644 index 00000000000..1cb987b5c29 --- /dev/null +++ b/docs/manual/mod/mod_dir.xml.tr @@ -0,0 +1,233 @@ + + + + + + + + + +mod_dir +Bölü çizgisiyle biten yönlendirmeleri yapar ve dizin içeriği dosyalarını sunar. +Base +mod_dir.c +dir_module + + +

    Bir dizin içerik dosyası şu iki kaynaktan birinden gelebilir:

    + +
      +
    • Kullanıcı tarafından yazılmış ve ismi genellikle + index.html olan bir dosya. Dosya ismi DirectoryIndex yönergesi ile belirlenir. + Bu, mod_dir modülü tarafından denetlenir.
    • + +
    • Aksi takdirde içerik listesi sunucu tarafından üretilir. Bu, + mod_autoindex modülü tarafından sağlanır.
    • +
    +

    Bu iki işlev tamamen birbirinden ayrıdır, dolayısıyla eğer isterseniz + kendiliğinden dizin içerik listesi üretimini tamamen iptal + edebilirsiniz.

    + +

    Sunucu http://sunucum/filanca/birdizin şeklinde bir istek + aldığında birdizin bir dizinin ismiyse ‘bölü çizgisiyle + biten’ bir yönlendirme söz konusudur. Dizinler URL sonuna bir bölü + çizgisi eklenmesini gerektirir, bu bakımdan mod_dir + modülü isteği http://sunucum/filanca/birdizin/ şeklinde + yönlendirir.

    +
    + + +DirectoryIndex +İstemci bir dizin istediğinde dizin içeriğini listeler. + +DirectoryIndex + yerel-url [yerel-url] ... +DirectoryIndex index.html +server configvirtual host +directory.htaccess +Indexes + + +

    DirectoryIndex yönergesi, istemci, dizinin + sonuna bir bölü çizgisi ekleyerek dizin içeriğinin listelenmesini + istediğinde bakılmak üzere özkaynakları listeler. + yerel-url, sunucu üstünde istenen dizine göreli + bir belgenin URL’sidir; normal olarak dizin içindeki bir dosyanın + ismidir. Çeşitli URL’ler verilebilirse de sunucu daima ilk bulduğuyla + dönecektir. Eğer özkaynakların hiçbiri yoksa ve Indexes + seçeneği atanmışsa sunucu dizin içeriğinden bir liste üretecektir.

    + + Örnek: + DirectoryIndex index.html + + +

    Bu yapılandırmadan sonra yapılan bir + http://mesela.dom/belgeler/ isteğine karşılık, sunucu, + mevcutsa http://mesela.dom/belgeler/index.html dosyasını + döndürecek, değilse ürettiği dizin içerik listesini gönderecektir.

    + +

    Belgelerin dizine göreli olmasının gerekmediğine dikkat ediniz.

    + + + DirectoryIndex index.html index.txt /cgi-bin/index.pl + + +

    Bu örnekte ise dizin içinde index.html ne de + index.txt mevcut olduğunda /cgi-bin/index.pl + CGI betiği çalıştırılacaktır.

    + +

    Ek Bilgi: Aynı + bağlam içinde çok sayıda DirectoryIndex + yönergesi varsa bunlar bir öncekini geçersiz kılmayacak, listeye + eklenecektir: +

    + + +
    # Örnek A: İlk sayfa index.html olsun buna index.php de eklensin.
    +<Directory /foo>
    +    DirectoryIndex index.html
    +    DirectoryIndex index.php
    +</Directory>
    +
    +# Örnek B: Tek bir yönerge ile yapılması dışında Örnek A ile aynıdır.
    +<Directory /foo>
    +    DirectoryIndex index.html index.php
    +</Directory>
    +
    +
    +
    + + +DirectorySlash +Bölü çizgisi ile biten yönlendirmeleri açar/kapar. +DirectorySlash On|Off +DirectorySlash On +server configvirtual host +directory.htaccess +Indexes +Apache 2.0.51 ve sonrasında mevcuttur. + + +

    DirectorySlash yönergesi, bir dizin isteğinde + bulunan URL’lerin sonuna mod_dir modülü tarafından bir + bölü çizgisi eklenip eklenmeyeceğini belirler.

    + +

    Normalde, bir kullanıcı sona bir bölü çizgisi eklemeden bir dizin için + istekte bulunursa mod_dir zaten onu aynı özkaynağa + yönlendirir, fakat isteğin sonuna bir bölü çizgisi eklenmesinin bazı iyi + sebepleri vardır:

    + +
      +
    • Kullanıcı bunun sonucunda meşru bir URL ile istekte bulunmuş olur.
    • +
    • mod_autoindex gerektiği gibi çalışır. Yoksa + bağlantıdaki yolu sunamayacağından yanlış yolu gösterirdi.
    • +
    • DirectoryIndex yönergesi + sadece bölü çizgisi ile biten dizin istekleri için değerlendirilir.
    • +
    • HTML sayfa içindeki göreli URL başvuruları gerektiği gibi + çalışacaktır.
    • +
    + +

    Siz yine de bu etkiyi istemezseniz ve yukarıdaki sebepler de size uygun + değilse yönlendirmeyi aşağıdaki gibi kapatabilirsiniz. Ancak, bunu yapmanın + olası bir güvenlik açığını da beraberinde getireceği dikkate + alınmalıdır.

    + + + # Aşağıdaki güvenlik uyarısına bakınız!
    + <Location /bir/yol>
    + + DirectorySlash Off
    + SetHandler bir-eylemci
    +
    + </Location> +
    + + Güvenlik Uyarı +

    Bölü çizgisi ile biten yönlendirmelerin kapatılması bir bilginin + istemeyek açığa çıkmasına sebep olabilir. mod_autoindex + modülünün etkin olduğunu (Options +Indexes) ve DirectoryIndex ile geçerli bir özkaynağın + (index.html olsun) atandığını ama bu URL için başka hiçbir + özel eylemci tanımlanmadığını varsayalım. Bu durumda bölü çizgisi ile + biten bir istek olduğunda index.html dosyası sunulurdu. + Fakat bölü çizgisi ile bitmeyen bir istek dizin içeriğinin + listelenmesi ile sonuçlanırdı.

    +
    +
    +
    + + +FallbackResource +Bir dosyayla eşleşmeyen istekler için öntanımlı bir URL tanımlar + +FallbackResource disabled | yerel-url +None - httpd 404 döndürür (Bulunamadı) +server configvirtual host +directory.htaccess +Indexes +Apache HTTP Server 2.2.16 ve sonrası - disabled +değiştirgesi 2.2.24'ten itibaren desteklenmektedir. + +

    Dosya sisteminizdeki hiçbir şey ile eşleşmeyen URL'ler için bir + eylemci atamak isterseniz bunı kullanın. Kullanmadığınız takdirde + httpd bir HTTP 404 (Bulunamadı) döndürecektir. Örneğin

    + + FallbackResource /not-404.php + +

    yönergesi ile varolmayan dosyalarla ilgili isteklere + /not-404.php sayfası gönderilirken varolanlar ile + ilgili istekler bundan etkilenmeyecektir.

    +

    Çoğunlukla, belli bir dizindeki mevcut dosya ve betiklere yapılan istekler + dışındaki tüm isteklere tek bir dosyanın veya belli bir kaynağın yanıt + vermesi istenir. Buna 'öndenetleyici' adı verilir.

    +

    httpd'nin eski sürümlerinde bunu sağlamak için + mod_rewrite ve istenen dosya veya dizinin var olup + olmadığını sınamak için -f ve -d kullanımı + gerekirdi. Bu artık tek bir yapılandırma satırı ile + halledilebilmektedir.

    + + FallbackResource /index.php + +

    Resimler, css dosyaları gibi mevcut dosyalar normal olarak sunulmaya + devam edecektir.

    +

    Üst dizinden miras alınmasının istenmemesi özelliğini iptal etmek için + disabled değiştirgesini kullanın.

    +

    http://example.com/blog/ gibi bir alt-URI isteğinde bu alt-URI + bir yerel-url olarak sunulabilir:

    + + + <Directory /web/example.com/htdocs/blog>
    + + FallbackResource /blog/index.php
    +
    + </Directory>
    + <Directory /web/example.com/htdocs/blog/images>
    + + FallbackResource disabled
    +
    + </Directory> +
    +
    +
    +
    + +
    diff --git a/docs/manual/mod/mod_disk_cache.html b/docs/manual/mod/mod_disk_cache.html index 84207adab38..614907d5ce4 100644 --- a/docs/manual/mod/mod_disk_cache.html +++ b/docs/manual/mod/mod_disk_cache.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_disk_cache.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_disk_cache.html.ja.euc-jp +URI: mod_disk_cache.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_disk_cache.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_disk_cache.html.en b/docs/manual/mod/mod_disk_cache.html.en index 18bd5eef0ad..1ab14e556a3 100644 --- a/docs/manual/mod/mod_disk_cache.html.en +++ b/docs/manual/mod/mod_disk_cache.html.en @@ -1,25 +1,32 @@ - -mod_disk_cache - Apache HTTP Server +mod_disk_cache - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_disk_cache

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_disk_cache

    Available Languages:  en  |  ja  | @@ -27,12 +34,12 @@

    - -
    Description:Content cache storage manager keyed to URIs
    Status:Extension
    Module Identifier:disk_cache_module
    Source File:mod_disk_cache.c
    +Module Identifier:disk_cache_module +Source File:mod_disk_cache.c

    Summary

    mod_disk_cache implements a disk based storage - manager. It is primarily of use in conjunction + manager. It is primarily of use in conjunction with mod_cache.

    Content is stored in and retrieved from the cache using URI based @@ -45,6 +52,16 @@

    mod_disk_cache requires the services of mod_cache.

    +

    Note:

    +

    mod_disk_cache uses the sendfile feature to + serve files from the cache when supported by the platform, and + when enabled with EnableSendfile. + However, per-directory and .htaccess configuration of + EnableSendfile are ignored by + mod_disk_cache as the corresponding settings are not + available to the module when a request is being served from the + cache.

    +

    Directives

    -
    +
    top

    CacheDirLength Directive

    @@ -172,7 +189,28 @@ stored

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_disk_cache.html.ja.euc-jp b/docs/manual/mod/mod_disk_cache.html.ja.euc-jp deleted file mode 100644 index fce4d9301c6..00000000000 --- a/docs/manual/mod/mod_disk_cache.html.ja.euc-jp +++ /dev/null @@ -1,174 +0,0 @@ - - - -mod_disk_cache - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_disk_cache

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:URI ¤򥭡¼¤ˤ·¤¿¥³¥ó¥ƥó¥ĥ­¥ã¥å·¥她¥ȥ졼¥¸´ÉÍý
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:disk_cache_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_disk_cache.c
    -

    ³µÍ×

    - -

    mod_disk_cache ¤ϥǥ£¥¹¥¯¤ò»ÈÍѤ·¤¿¥¹¥ȥ졼¥¸ - ´ÉÍýµ¡¹½¤ò¼ÂÁõ¤·¤Ƥ¤¤ޤ¹¡£¼ç¤Ë - mod_cache ¤ÈÁȤ߹ç¤碌¤ƻȤï¤ì¤ޤ¹¡£

    - -

    ¥³¥ó¥ƥó¥ĤΥ­¥ã¥å·¥å¤ؤÎÊݸ¤ȼèÆÀ¤Ï URI ¤˴ð¤Ť¤¤¿¥­¡¼¤¬»Ȥï¤ì¤ޤ¹¡£ - ¥¢¥¯¥»¥¹Êݸî¤Τ«¤±¤é¤ì¤Ƥ¤¤륳¥ó¥ƥó¥Ĥϥ­¥ã¥å·¥夵¤ì¤ޤ»¤ó¡£

    - -

    ¥­¥ã¥å·¥å¤ÎÂ礭¤µ¤òºÇÂç¥ì¥٥ë¤ǰݻý¤¹¤뤿¤á¤Ë - htcacheclean ¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Ãí:

    -

    mod_disk_cache ¤Ï - mod_cache ¤òɬÍפȤ·¤ޤ¹

    -
    -
    - - -
    top
    -

    CacheDirLength ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥µ¥֥ǥ£¥쥯¥ȥê̾¤Îʸ»ú¿ô
    ¹½ʸ:CacheDirLength length
    ¥ǥե©¥ë¥È:CacheDirLength 2
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_disk_cache
    -

    CacheDirLength ¥ǥ£¥쥯¥ƥ£¥֤ϥ­¥ã¥å·¥å - ³¬Áؤγƥµ¥֥ǥ£¥쥯¥ȥê¤Îʸ»ú¿ô¤òÀßÄꤷ¤ޤ¹¡£

    - -
    -

    CacheDirLevels* - CacheDirLength ¤Î - ·ë²̤Ï 20 °ÊÆâ¤Ǥʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    - -

    - CacheDirLength 4 -

    - -
    -
    top
    -

    CacheDirLevels ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¤Υµ¥֥ǥ£¥쥯¥ȥê¤ο¼¤µ¤οô
    ¹½ʸ:CacheDirLevels levels
    ¥ǥե©¥ë¥È:CacheDirLevels 3
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_disk_cache
    -

    CacheDirLevels ¥ǥ£¥쥯¥ƥ£¥֤ϥ­¥ã¥å·¥å¤Î - ¥µ¥֥ǥ£¥쥯¥ȥê¤ο¼¤µ¤òÀßÄꤷ¤ޤ¹¡£¥­¥ã¥å·¥å¥ǡ¼¥¿¤Ï CacheRoot ¥ǥ£¥쥯¥ȥ꤫¤é - ¤³¤Υǥ£¥쥯¥ȥê¤ο¼¤µʬ²¼¤Υǥ£¥쥯¥ȥê¤ËÊݸ¤µ¤ì¤ޤ¹¡£

    - -
    -

    CacheDirLevels* - CacheDirLength ¤Î - ·ë²̤Ï 20 °ÊÆâ¤Ǥʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    - -

    - CacheDirLevels 5 -

    - -
    -
    top
    -

    CacheMaxFileSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤ë¥ɥ­¥å¥á¥ó¥ȤκÇÂç¤Î (¥Х¤¥ȤǤÎ) ¥µ¥¤¥º
    ¹½ʸ:CacheMaxFileSize bytes
    ¥ǥե©¥ë¥È:CacheMaxFileSize 1000000
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_disk_cache
    -

    CacheMaxFileSize ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥ɥ­¥å¥á¥ó¥Ȥò - ¥­¥ã¥å·¥夹¤뤫¤ɤ¦¤«¤òȽÄꤹ¤롢ºÇÂç¤Υµ¥¤¥º¤ò¥Х¤¥ȿô¤ÇÀßÄꤷ¤ޤ¹¡£

    - -

    - CacheMaxFileSize 64000 -

    - -
    -
    top
    -

    CacheMinFileSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤ë¥ɥ­¥å¥á¥ó¥ȤκǾ®¸¤Î (¥Х¤¥ȤǤÎ) Â礭¤µ
    ¹½ʸ:CacheMinFileSize bytes
    ¥ǥե©¥ë¥È:CacheMinFileSize 1
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_disk_cache
    -

    CacheMinFileSize ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥ɥ­¥å¥á¥ó¥Ȥò - ¥­¥ã¥å·¥夹¤뤫¤ɤ¦¤«¤òȽÄꤹ¤롢ºǾ®¤Υµ¥¤¥º¤ò¥Х¤¥ȿô¤ÇÀßÄꤷ¤ޤ¹¡£

    - -

    - CacheMinFileSize 64 -

    - -
    -
    top
    -

    CacheRoot ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¥ե¡¥¤¥뤬Êݴɤµ¤ì¤ë¥롼¥ȥǥ£¥쥯¥ȥê
    ¹½ʸ:CacheRoot directory
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_disk_cache
    -

    CacheRoot ¥ǥ£¥쥯¥ƥ£¥֤ϥ­¥ã¥å·¥å¥ե¡¥¤¥ë¤ò - Êݴɤ¹¤뤿¤á¤Υǥ£¥¹¥¯¾å¤Υǥ£¥쥯¥ȥê¤ò»ØÄꤷ¤ޤ¹¡£mod_disk_cache ¥⥸¥塼¥뤬 Apache ¥µ¡¼¥Ф˥í¡¼¥ɤµ¤ì¤Æ - ¤¤¤뤫¡¢ÁȤ߹þ¤ޤì¤Ƥ¤¤ì¤С¢¤³¤Υǥ£¥쥯¥ƥ£¥֤Ïɬ¤º - ÄêµÁ¤·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - CacheRoot ¤ÎÃͤò»ØÄꤷ¤ʤ±¤ì¤С¢ - ÀßÄê¥ե¡¥¤¥ë¤νèÍý¤ǥ¨¥顼¤ˤʤê¤ޤ¹¡£CacheDirLevels ¥ǥ£¥쥯¥ƥ£¥֤È CacheDirLength ¥ǥ£¥쥯¥ƥ£¥֤¬ - »ØÄꤵ¤줿¥롼¥ȥǥ£¥쥯¥ȥ겼¤Υǥ£¥쥯¥ȥ깽À®¤òÄêµÁ¤·¤ޤ¹¡£

    - -

    - CacheRoot c:/cacheroot -

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_disk_cache.html.ja.utf8 b/docs/manual/mod/mod_disk_cache.html.ja.utf8 new file mode 100644 index 00000000000..43f4547b093 --- /dev/null +++ b/docs/manual/mod/mod_disk_cache.html.ja.utf8 @@ -0,0 +1,206 @@ + + + + + +mod_disk_cache - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_disk_cache

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:URI をキーにしたコンテンツキャッシュストレージ管理
    ステータス:Extension
    モジュール識別子:disk_cache_module
    ソースファイル:mod_disk_cache.c
    +

    概要

    + +

    mod_disk_cache はディスクを使用したストレージ + 管理機構を実装しています。主に + mod_cache と組み合わせて使われます。

    + +

    コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 + アクセス保護のかけられているコンテンツはキャッシュされません。

    + +

    キャッシュの大きさを最大レベルで維持するために + htcacheclean を使うことができます。

    + +

    注:

    +

    mod_disk_cache は + mod_cache を必要とします

    +
    +
    + + +
    top
    +

    CacheDirLength ディレクティブ

    + + + + + + + +
    説明:サブディレクトリ名の文字数
    構文:CacheDirLength length
    デフォルト:CacheDirLength 2
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_disk_cache
    +

    CacheDirLength ディレクティブはキャッシュ + 階層の各サブディレクトリの文字数を設定します。

    + +
    +

    CacheDirLevels* + CacheDirLength の + 結果は 20 以内でなければなりません。

    +
    + +

    + CacheDirLength 4 +

    + +
    +
    top
    +

    CacheDirLevels ディレクティブ

    + + + + + + + +
    説明:キャッシュのサブディレクトリの深さの数
    構文:CacheDirLevels levels
    デフォルト:CacheDirLevels 3
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_disk_cache
    +

    CacheDirLevels ディレクティブはキャッシュの + サブディレクトリの深さを設定します。キャッシュデータは CacheRoot ディレクトリから + このディレクトリの深さ分下のディレクトリに保存されます。

    + +
    +

    CacheDirLevels* + CacheDirLength の + 結果は 20 以内でなければなりません。

    +
    + +

    + CacheDirLevels 5 +

    + +
    +
    top
    +

    CacheMaxFileSize ディレクティブ

    + + + + + + + +
    説明:キャッシュに保管されるドキュメントの最大の (バイトでの) サイズ
    構文:CacheMaxFileSize bytes
    デフォルト:CacheMaxFileSize 1000000
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_disk_cache
    +

    CacheMaxFileSize ディレクティブは、ドキュメントを + キャッシュするかどうかを判定する、最大のサイズをバイト数で設定します。

    + +

    + CacheMaxFileSize 64000 +

    + +
    +
    top
    +

    CacheMinFileSize ディレクティブ

    + + + + + + + +
    説明:キャッシュに保管されるドキュメントの最小限の (バイトでの) 大きさ
    構文:CacheMinFileSize bytes
    デフォルト:CacheMinFileSize 1
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_disk_cache
    +

    CacheMinFileSize ディレクティブは、ドキュメントを + キャッシュするかどうかを判定する、最小のサイズをバイト数で設定します。

    + +

    + CacheMinFileSize 64 +

    + +
    +
    top
    +

    CacheRoot ディレクティブ

    + + + + + + +
    説明:キャッシュファイルが保管されるルートディレクトリ
    構文:CacheRoot directory
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_disk_cache
    +

    CacheRoot ディレクティブはキャッシュファイルを + 保管するためのディスク上のディレクトリを指定します。mod_disk_cache モジュールが Apache サーバにロードされて + いるか、組み込まれていれば、このディレクティブは必ず + 定義しなければなりません。 + CacheRoot の値を指定しなければ、 + 設定ファイルの処理でエラーになります。CacheDirLevels ディレクティブと CacheDirLength ディレクティブが + 指定されたルートディレクトリ下のディレクトリ構成を定義します。

    + +

    + CacheRoot c:/cacheroot +

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_disk_cache.html.ko.euc-kr b/docs/manual/mod/mod_disk_cache.html.ko.euc-kr index 0ea6be42133..a7172fcfdcf 100644 --- a/docs/manual/mod/mod_disk_cache.html.ko.euc-kr +++ b/docs/manual/mod/mod_disk_cache.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_disk_cache - Apache HTTP Server +mod_disk_cache - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_disk_cache

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_disk_cache

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | @@ -57,7 +64,7 @@

  • CacheMinFileSize
  • CacheRoot
  • -
    +
    top

    CacheDirLength Áö½þî

    @@ -169,7 +176,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_disk_cache.xml b/docs/manual/mod/mod_disk_cache.xml index a2880abbc30..398ed5d1762 100644 --- a/docs/manual/mod/mod_disk_cache.xml +++ b/docs/manual/mod/mod_disk_cache.xml @@ -4,12 +4,12 @@ + + - + mod_disk_cache /mod/ .. en - ja + ja ko diff --git a/docs/manual/mod/mod_dumpio.html b/docs/manual/mod/mod_dumpio.html index 2548737a8b9..20eaeafeaab 100644 --- a/docs/manual/mod/mod_dumpio.html +++ b/docs/manual/mod/mod_dumpio.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_dumpio.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_dumpio.html.ja.euc-jp +URI: mod_dumpio.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_dumpio.html.en b/docs/manual/mod/mod_dumpio.html.en index 8620a4c4454..d25dde6c580 100644 --- a/docs/manual/mod/mod_dumpio.html.en +++ b/docs/manual/mod/mod_dumpio.html.en @@ -1,33 +1,40 @@ - -mod_dumpio - Apache HTTP Server +mod_dumpio - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_dumpio

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_dumpio

    Available Languages:  en  |  ja 

    - -
    Description:Dumps all I/O to error log as desired.
    Status:Extension
    Module Identifier:dumpio_module
    Source File:mod_dumpio.c
    +Module Identifier:dumpio_module +Source File:mod_dumpio.c

    Summary

    mod_dumpio allows for the logging of @@ -40,15 +47,16 @@ be expected, this can produce extreme volumes of data, and should only be used when debugging problems.

    -
    top

    Enabling dumpio Support

    @@ -76,6 +84,28 @@ later. DumpIOInput On

    +
    +
    top
    +

    DumpIOLogLevel Directive

    + + + + + + + + +
    Description:Controls the logging level of the DumpIO output
    Syntax:DumpIOLogLevel level
    Default:DumpIOLogLevel debug
    Context:server config
    Status:Extension
    Module:mod_dumpio
    Compatibility:DumpIOLogLevel is only available in Apache 2.2.4 and +later.
    +

    Enable dumping of all output at a specific LogLevel level.

    + +

    Example

    + DumpIOLogLevel notice +

    + +

    Compatibility

    Prior to 2.2.4 mod_dumpio + would only dump to the log when LogLevel was set to debug
    +
    top

    DumpIOOutput Directive

    @@ -100,7 +130,28 @@ later.

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_dumpio.html.ja.euc-jp b/docs/manual/mod/mod_dumpio.html.ja.euc-jp deleted file mode 100644 index 289a609add5..00000000000 --- a/docs/manual/mod/mod_dumpio.html.ja.euc-jp +++ /dev/null @@ -1,105 +0,0 @@ - - - -mod_dumpio - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_dumpio

    -
    -

    Available Languages:  en  | - ja 

    -
    - - - -
    ÀâÌÀ:˾¤à¤褦¤ˤ¹¤٤ƤÎ I/O ¤򥨥顼¥í¥°¤˥À¥ó¥פ¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:dumpio_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_dumpio.c
    -

    ³µÍ×

    - -

    mod_dumpio ¤ò»Ȥ¦¤ȡ¢Apache ¤¬¼õ¤±¼è¤ä¿¤¹¤٤ƤÎÆþÎϤÈ - Apache ¤ˤè¤êÁ÷¤é¤줿¤¹¤٤ƤνÐÎϤȤΡ¢ξÊý¤⤷¤¯¤ϤɤÁ¤餫°ìÊý¤ò¡¢ - ¥¨¥顼¥í¥°¥ե¡¥¤¥ë¤˥í¥°¼ý½¸ (ÌõÃí: ¥À¥ó¥× dump) - ¤Ǥ­¤ޤ¹¡£

    - -

    ¥ǡ¼¥¿¤Υí¥®¥󥰤ϡ¢SSL Éü¹沽¤Îľ¸å (ÆþÎÏ) ¤È SSL - °Ź沽¤ÎľÁ° (½ÐÎÏ) ¤˹Ԥʤï¤ì¤ޤ¹¡£¤´ÁÛÁü¤ÎÄ̤ꡢ - ¤³¤Υ⥸¥塼¥ë¤ϤȤƤĤâ¤ʤ¤¥ǡ¼¥¿Î̤ò½ÐÎϤ·¤ޤ¹¤Τǡ¢ - ÌäÂê¤ò¥ǥХå°¤·¤Ƥ¤¤ë¤Ȥ­¤ˤΤ߻ÈÍѤ¹¤ë¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    ¥ȥԥå¯

    -
    -
    top
    -
    -

    dumpio ¥µ¥ݡ¼¥Ȥòͭ¸ú¤ˤ¹¤ë

    - - -

    ¤³¤Υ⥸¥塼¥ë¤òͭ¸ú¤ˤ¹¤ë¤ˤϡ¢¥⥸¥塼¥뤬¥³¥ó¥ѥ¤¥뤵¤ì¤Ƥ¤¤ơ¢ - ¼¹Ԥ¹¤ë Apache ¤ÎÀßÄê¤ǥµ¡¼¥ФËÁȤ߹þ¤ޤì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¥í¥®¥󥰵¡ǽ¤ϡ¢°ʲ¼¤Υǥ£¥쥯¥ƥ£¥֤ò»ȤäÆͭ¸ú¤ˤ·¤¿¤ê - ̵¸ú¤ˤ·¤¿¤ê¤Ǥ­¤ޤ¹¡£

    -
    -
    top
    -

    DumpIOInput ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥¨¥顼¥í¥°¤ˤ¹¤٤ƤÎÆþÎϥǡ¼¥¿¤ò¥À¥ó¥×
    ¹½ʸ:DumpIOInput On|Off
    ¥ǥե©¥ë¥È:DumpIOInput Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_dumpio
    ¸ߴ¹À­:DumpIOInput ¤Ï Apache 2.1.3 °ʹߤΤߤǻÈÍѲÄǽ
    -

    ¤¹¤٤ƤÎÆþÎϤΥÀ¥ó¥פòͭ¸ú¤ˤ·¤ޤ¹¡£

    - -

    Îã

    - DumpIOInput On -

    - -
    -
    top
    -

    DumpIOOutput ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥¨¥顼¥í¥°¤ˤ¹¤٤ƤνÐÎϥǡ¼¥¿¤ò¥À¥ó¥×
    ¹½ʸ:DumpIOOutput On|Off
    ¥ǥե©¥ë¥È:DumpIOOutput Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_dumpio
    ¸ߴ¹À­:DumpIOOutput ¤Ï Apache 2.1.3 °ʹߤǤΤ߻ÈÍѲÄǽ
    -

    ¤¹¤٤ƤνÐÎϤΥÀ¥ó¥פòͭ¸ú¤ˤ·¤ޤ¹¡£

    - -

    Îã

    - DumpIOOutput On -

    - -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_dumpio.html.ja.utf8 b/docs/manual/mod/mod_dumpio.html.ja.utf8 new file mode 100644 index 00000000000..b71b73ed277 --- /dev/null +++ b/docs/manual/mod/mod_dumpio.html.ja.utf8 @@ -0,0 +1,152 @@ + + + + + +mod_dumpio - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_dumpio

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:望むようにすべての I/O をエラーログにダンプする
    ステータス:Extension
    モジュール識別子:dumpio_module
    ソースファイル:mod_dumpio.c
    +

    概要

    + +

    mod_dumpio を使うと、Apache が受け取ったすべての入力と + Apache により送られたすべての出力との、両方もしくはどちらか一方を、 + エラーログファイルにログ収集 (訳注: ダンプ dump) + できます。

    + +

    データのロギングは、SSL 復号化の直後 (入力) と SSL + 暗号化の直前 (出力) に行なわれます。ご想像の通り、 + このモジュールはとてつもないデータ量を出力しますので、 + 問題をデバッグしているときにのみ使用するようにしてください。

    +
    + +
    top
    +
    +

    dumpio サポートを有効にする

    + + +

    このモジュールを有効にするには、モジュールがコンパイルされていて、 + 実行する Apache の設定でサーバに組み込まれている必要があります。 + ロギング機能は、以下のディレクティブを使って有効にしたり + 無効にしたりできます。

    +
    +
    top
    +

    DumpIOInput ディレクティブ

    + + + + + + + + +
    説明:エラーログにすべての入力データをダンプ
    構文:DumpIOInput On|Off
    デフォルト:DumpIOInput Off
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_dumpio
    互換性:DumpIOInput は Apache 2.1.3 以降のみで使用可能
    +

    すべての入力のダンプを有効にします。

    + +

    例

    + DumpIOInput On +

    + +
    +
    top
    +

    DumpIOLogLevel ディレクティブ

    + + + + + + + + +
    説明:Controls the logging level of the DumpIO output
    構文:DumpIOLogLevel level
    デフォルト:DumpIOLogLevel debug
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_dumpio
    互換性:DumpIOLogLevel is only available in Apache 2.2.4 and +later.

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    DumpIOOutput ディレクティブ

    + + + + + + + + +
    説明:エラーログにすべての出力データをダンプ
    構文:DumpIOOutput On|Off
    デフォルト:DumpIOOutput Off
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_dumpio
    互換性:DumpIOOutput は Apache 2.1.3 以降でのみ使用可能
    +

    すべての出力のダンプを有効にします。

    + +

    例

    + DumpIOOutput On +

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_dumpio.xml b/docs/manual/mod/mod_dumpio.xml index 21b680b68b5..d3bbd934885 100644 --- a/docs/manual/mod/mod_dumpio.xml +++ b/docs/manual/mod/mod_dumpio.xml @@ -4,12 +4,12 @@ + - + mod_dumpio /mod/ .. en - ja + ja diff --git a/docs/manual/mod/mod_echo.html b/docs/manual/mod/mod_echo.html index f4db4ba0ed7..fb021cc78d8 100644 --- a/docs/manual/mod/mod_echo.html +++ b/docs/manual/mod/mod_echo.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_echo.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_echo.html.ja.euc-jp +URI: mod_echo.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_echo.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_echo.html.en b/docs/manual/mod/mod_echo.html.en index 779ed24058a..782d85d0fb1 100644 --- a/docs/manual/mod/mod_echo.html.en +++ b/docs/manual/mod/mod_echo.html.en @@ -1,25 +1,32 @@ - -mod_echo - Apache HTTP Server +mod_echo - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_echo

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_echo

    Available Languages:  en  |  ja  | @@ -28,8 +35,8 @@ - - + +
    Description:A simple echo server to illustrate protocol modules
    Status:Experimental
    Module Identifier:echo_module
    Source File:mod_echo.c
    Module Identifier:echo_module
    Source File:mod_echo.c
    Compatibility:Available in Apache 2.0 and later

    Summary

    @@ -41,13 +48,14 @@ modules -
    +
    top

    ProtocolEcho Directive

    + @@ -67,7 +75,28 @@ later.

    Available Languages:  en  |  ja  |  ko 

    - +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_echo.html.ja.euc-jp b/docs/manual/mod/mod_echo.html.ja.euc-jp deleted file mode 100644 index bec98177671..00000000000 --- a/docs/manual/mod/mod_echo.html.ja.euc-jp +++ /dev/null @@ -1,72 +0,0 @@ - - - -mod_echo - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_echo

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -
    Description:Turn the echo server on or off
    Syntax:ProtocolEcho On|Off
    Default:ProtocolEcho Off
    Context:server config, virtual host
    Status:Experimental
    Module:mod_echo
    - - - -
    ÀâÌÀ:¥ץí¥ȥ³¥ë¥⥸¥塼¥ë¤γµÍפ򼨤¹¤¿¤á¤Îñ½ã¤ʥ¨¥³¡¼¥µ¡¼¥Ð -
    ¥¹¥ơ¼¥¿¥¹:Experimental
    ¥⥸¥塼¥뼱Ê̻Ò:echo_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_echo.c
    ¸ߴ¹À­:Apache 2.0 °ʹß
    -

    ³µÍ×

    - -

    Ëܥ⥸¥塼¥ë¤ϥ³¥󥻥ץȤòÅÁ¤¨¤뤿¤á¤Υץí¥ȥ³¥ë¥⥸¥塼¥ë¤Î - ¼ÂÁõÎã¤ȤʤäƤ¤¤ޤ¹¡£ñ½ã¤ʥ¨¥³¡¼¥µ¡¼¥ФòÄ󶡤·¤ޤ¹¡£ - Telnet ¤ÇÀܳ¤·¡¢ʸ»úÎó¤òÁ÷¿®¤¹¤ë¤ȡ¢¥¨¥³¡¼¤òÊ֤·¤ޤ¹¡£

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -
    - -
    top
    -

    ProtocolEcho ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥¨¥³¡¼¥µ¡¼¥ФÎͭ¸ú̵¸ú¤òÀßÄꤷ¤ޤ¹¡£
    ¹½ʸ:ProtocolEcho On|Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Experimental
    ¥⥸¥塼¥ë:mod_echo
    ¸ߴ¹À­:Apache 2.0 °ʹß
    -

    ProtocolEcho ¥ǥ£¥쥯¥ƥ£¥֤Ç - ¥¨¥³¡¼¥µ¡¼¥ФÎͭ¸ú̵¸ú¤òÀßÄꤷ¤ޤ¹¡£

    - -

    Îã

    - ProtocolEcho On -

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_echo.html.ja.utf8 b/docs/manual/mod/mod_echo.html.ja.utf8 new file mode 100644 index 00000000000..c81d09f18bc --- /dev/null +++ b/docs/manual/mod/mod_echo.html.ja.utf8 @@ -0,0 +1,101 @@ + + + + + +mod_echo - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_echo

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    + + + + +
    説明:プロトコルモジュールの概要を示すための単純なエコーサーバ +
    ステータス:Experimental
    モジュール識別子:echo_module
    ソースファイル:mod_echo.c
    互換性:Apache 2.0 以降
    +

    概要

    + +

    本モジュールはコンセプトを伝えるためのプロトコルモジュールの + 実装例となっています。単純なエコーサーバを提供します。 + Telnet で接続し、文字列を送信すると、エコーを返します。

    +
    +

    ディレクティブ

    + +
    + +
    top
    +

    ProtocolEcho ディレクティブ

    + + + + + + + + +
    説明:エコーサーバの有効無効を設定します。
    構文:ProtocolEcho On|Off
    デフォルト:ProtocolEcho Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Experimental
    モジュール:mod_echo
    互換性:Apache 2.0 以降で使用可能
    +

    ProtocolEcho ディレクティブで + エコーサーバの有効無効を設定します。

    + +

    例

    + ProtocolEcho On +

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_echo.html.ko.euc-kr b/docs/manual/mod/mod_echo.html.ko.euc-kr index a3efaef473a..82fd333a675 100644 --- a/docs/manual/mod/mod_echo.html.ko.euc-kr +++ b/docs/manual/mod/mod_echo.html.ko.euc-kr @@ -1,30 +1,39 @@ - -mod_echo - Apache HTTP Server +mod_echo - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_echo

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_echo

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -40,7 +49,7 @@ - +
    top

    ProtocolEcho Áö½þî

    @@ -65,7 +74,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_echo.xml b/docs/manual/mod/mod_echo.xml index 84c86cff115..ef15bfc0d4c 100644 --- a/docs/manual/mod/mod_echo.xml +++ b/docs/manual/mod/mod_echo.xml @@ -4,12 +4,12 @@ + + - + mod_echo /mod/ .. @@ -8,6 +9,6 @@ en ja - ko + ko diff --git a/docs/manual/mod/mod_env.html b/docs/manual/mod/mod_env.html index 00d518a79ea..df9103110e3 100644 --- a/docs/manual/mod/mod_env.html +++ b/docs/manual/mod/mod_env.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_env.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_env.html.ja.euc-jp +URI: mod_env.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_env.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_env.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_env.html.en b/docs/manual/mod/mod_env.html.en index afbe3390468..d71e6cb8ca6 100644 --- a/docs/manual/mod/mod_env.html.en +++ b/docs/manual/mod/mod_env.html.en @@ -1,42 +1,51 @@ - -mod_env - Apache HTTP Server +mod_env - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_env

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_env

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    ¼³¸í:ÇÁ·ÎÅäÄÝ ¸ðµâÀ» ¼³¸íÇϱâÀ§ÇÑ °£´ÜÇÑ echo ¼­¹ö
    »óÅÂ:Experimental
    ¸ðµâ¸í:echo_module
    - -
    Description:Modifies the environment which is passed to CGI scripts and SSI pages
    Status:Base
    Module Identifier:env_module
    Source File:mod_env.c
    +Module Identifier:env_module +Source File:mod_env.c

    Summary

    -

    This module allows for control of the environment that will - be provided to CGI scripts and SSI pages. Environment variables - may be passed from the shell which invoked the httpd - process. Alternatively, environment variables may be set or unset within - the configuration process.

    +

    This module allows for control of internal environment variables that + are used by various Apache HTTP Server modules. These variables are also + provided to CGI scripts as native system environment variables, and available + for use in SSI pages. Environment variables may be passed from the shell + which invoked the httpd process. Alternatively, + environment variables may be set or unset within the configuration process.

    Directives

    +
  • SetEnvIf
  • +
    top

    PassEnv Directive

    @@ -60,9 +70,11 @@ SSI pages Status:Base Module:mod_env -

    Specifies one or more environment variables to pass to CGI - scripts and SSI pages from the environment of the shell which - invoked the httpd process.

    +

    Specifies one or more native system environment variables to make available + as internal environment variables, which are available to Apache HTTP Server modules + as well as propagated to CGI scripts and SSI pages. Values come from the + native OS environment of the shell which invoked the + httpd process.

    Example

    PassEnv LD_LIBRARY_PATH @@ -73,19 +85,38 @@ SSI pages

    SetEnv Directive

    - +
    Description:Sets environment variables
    Syntax:SetEnv env-variable value
    Syntax:SetEnv env-variable [value]
    Context:server config, virtual host, directory, .htaccess
    Override:FileInfo
    Status:Base
    Module:mod_env
    -

    Sets an environment variable, which is then passed on to CGI - scripts and SSI pages.

    +

    Sets an internal environment variable, which is then available to Apache + HTTP Server modules, and passed on to CGI scripts and SSI pages.

    Example

    SetEnv SPECIAL_PATH /foo/bin

    +

    If you omit the value argument, the variable is set to + an empty string.

    + +

    The internal environment variables set by this directive are set + after most early request processing directives are run, such as access + control and URI-to-filename mapping. If the environment variable you're + setting is meant as input into this early phase of processing such as the + RewriteRule directive, you should + instead set the environment variable with + SetEnvIf.

    +
    +

    On 2.2, the PATH environment variable cannot be set using Setenv.

    +
    + + +

    See also

    +
    top

    UnsetEnv Directive

    @@ -98,7 +129,7 @@ SSI pages Status:Base Module:mod_env -

    Removes one or more environment variables from those passed +

    Removes one or more internal environment variables from those passed on to CGI scripts and SSI pages.

    Example

    @@ -110,8 +141,30 @@ SSI pages

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_env.html.ja.euc-jp b/docs/manual/mod/mod_env.html.ja.euc-jp deleted file mode 100644 index d6e8925f11c..00000000000 --- a/docs/manual/mod/mod_env.html.ja.euc-jp +++ /dev/null @@ -1,117 +0,0 @@ - - - -mod_env - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_env

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:CGI ¥¹¥¯¥ê¥ץȵڤÓ SSI -¥ڡ¼¥¸¤ËÅϤµ¤ì¤ë´Ķ­Êѿô¤òÊѹ¹¤¹¤뵡ǽ¤òÄ󶡤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:env_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_env.c
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤ˤè¤ê CGI ¥¹¥¯¥ê¥ץȤÈ SSI - ¥ڡ¼¥¸¤ËŬÍѤµ¤ì¤ë´Ķ­Êѿô¤òÀ©¸椹¤뤳¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£ - ´Ķ­Êѿô¤Ï httpd ¥ץí¥»¥¹¤òµ¯ư¤·¤¿¥·¥§¥뤫¤éÅϤµ¤ì¤ޤ¹¡£¤ޤ¿¡¢ - ÀßÄê¥ե¡¥¤¥ë¤ǴĶ­Êѿô¤òÀßÄꤷ¤¿¤ꡢºï½ü¤·¤¿¤ꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    »²¾È

    -
    - -
    top
    -

    PassEnv ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥·¥§¥뤫¤é¤δĶ­Êѿô¤òÅϤ¹
    ¹½ʸ:PassEnv env-variable [env-variable] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_env
    - -

    httpd ¥ץí¥»¥¹¤òµ¯ư¤·¤¿¥·¥§¥ë¤δĶ­¤«¤é CGI ¥¹¥¯¥ê¥ץȤÈ - SSI ¥ڡ¼¥¸¤ËÅϤ¹´Ķ­Êѿô¤ò°ì¤İʾ廨Äꤷ¤ޤ¹¡£

    - -

    Îã

    - PassEnv LD_LIBRARY_PATH -

    - -
    -
    top
    -

    SetEnv ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:´Ķ­Êѿô¤òÀßÄꤹ¤ë
    ¹½ʸ:SetEnv env-variable value
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_env
    -

    ´Ķ­Êѿô¤òÀßÄꤷ¡¢¤½¤ì¤ò CGI ¥¹¥¯¥ê¥ץȤÈ SSI - ¥ڡ¼¥¸¤ËÅϤ¹¤褦¤ˤ·¤ޤ¹¡£

    - -

    Îã

    - SetEnv SPECIAL_PATH /foo/bin -

    - -
    -
    top
    -

    UnsetEnv ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:´Ķ­¤«¤éÊѿô¤ò¼è¤ê½ü¤¯
    ¹½ʸ:UnsetEnv env-variable [env-variable] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_env
    -

    CGI ¥¹¥¯¥ê¥ץȤÈ SSI - ¥ڡ¼¥¸¤ËÅϤµ¤ì¤ë´Ķ­Êѿô¤«¤é»ØÄꤵ¤줿´Ķ­Êѿô¤ò¼è¤ê½ü¤­¤ޤ¹¡£

    - -

    Îã

    - UnsetEnv LD_LIBRARY_PATH -

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_env.html.ja.utf8 b/docs/manual/mod/mod_env.html.ja.utf8 new file mode 100644 index 00000000000..984e4671005 --- /dev/null +++ b/docs/manual/mod/mod_env.html.ja.utf8 @@ -0,0 +1,151 @@ + + + + + +mod_env - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_env

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:CGI スクリプト及び SSI +ページに渡される環境変数を変更する機能を提供する
    ステータス:Base
    モジュール識別子:env_module
    ソースファイル:mod_env.c
    +

    概要

    + +

    このモジュールにより CGI スクリプトと SSI + ページに適用される環境変数を制御することができるようになります。 + 環境変数は httpd プロセスを起動したシェルから渡されます。また、 + 設定ファイルで環境変数を設定したり、削除したりすることができます。 +

    +
    +

    ディレクティブ

    + +

    参照

    +
    + +
    top
    +

    PassEnv ディレクティブ

    + + + + + + + +
    説明:シェルからの環境変数を渡す
    構文:PassEnv env-variable [env-variable] +...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_env
    + +

    httpd プロセスを起動したシェルの環境から CGI スクリプトと + SSI ページに渡す環境変数を一つ以上指定します。

    + +

    例

    + PassEnv LD_LIBRARY_PATH +

    + +
    +
    top
    +

    SetEnv ディレクティブ

    + + + + + + + +
    説明:環境変数を設定する
    構文:SetEnv env-variable value
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_env
    +

    環境変数を設定し、それを CGI スクリプトと SSI + ページに渡すようにします。

    + +

    例

    + SetEnv SPECIAL_PATH /foo/bin +

    + +
    +
    top
    +

    UnsetEnv ディレクティブ

    + + + + + + + +
    説明:環境から変数を取り除く
    構文:UnsetEnv env-variable [env-variable] +...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_env
    +

    CGI スクリプトと SSI + ページに渡される環境変数から指定された環境変数を取り除きます。

    + +

    例

    + UnsetEnv LD_LIBRARY_PATH +

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_env.html.ko.euc-kr b/docs/manual/mod/mod_env.html.ko.euc-kr index 2cf2bc1ad53..83a45ed3c9c 100644 --- a/docs/manual/mod/mod_env.html.ko.euc-kr +++ b/docs/manual/mod/mod_env.html.ko.euc-kr @@ -1,29 +1,37 @@ - -mod_env - Apache HTTP Server +mod_env - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_env

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_env

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -47,7 +55,7 @@

    Âü°í

    +
    top

    PassEnv Áö½þî

    @@ -107,8 +115,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_env.html.tr.utf8 b/docs/manual/mod/mod_env.html.tr.utf8 new file mode 100644 index 00000000000..e8339d84fe9 --- /dev/null +++ b/docs/manual/mod/mod_env.html.tr.utf8 @@ -0,0 +1,168 @@ + + + + + +mod_env - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_env

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + + + +
    Açıklama:CGI betiklerine ve SSI sayfalarına aktarılan değişkenlere +müdahale etmek için kullanılır.
    Durum:Temel
    Modül Betimleyici:env_module
    Kaynak Dosyası:mod_env.c
    +

    Özet

    + +

    Bu modül çeşitli Apache HTTP sunucu modülleri tarafından kullanılan dahili + ortam değişkenlerini denetim altına almak için kullanılır. Bu değişkenler + ayrıca CGI betiklerinde sistem ortam değişkenleri gibi belirtilebildiği + gibi SSI sayfalarında da kullanılabilmektedir. Bundan başka, yapılandırma + sürecinde tanımlı veya tanımsız yapılabilirler.

    +
    +

    Yönergeler

    + +

    Ayrıca bakınız:

    +
    + +
    top
    +

    PassEnv Yönergesi

    + + + + + + + +
    Açıklama:Ortam değişkenlerini kabuktan aktarır.
    Sözdizimi:PassEnv ortam-değişkeni [ortam-değişkeni] +...
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:FileInfo
    Durum:Temel
    Modül:mod_env
    +

    httpd süreci başlatılırken Apache HTTP sunucu + modüllerinde, CGI betiklerinde ve SSI sayfalarında dahili ortam + değişkenleri olarak kullanılmak üzere bazı sistem ortam değişkenlerini + belirtmek için kullanılır.

    + +

    Örnek

    + PassEnv LD_LIBRARY_PATH +

    + +
    +
    top
    +

    SetEnv Yönergesi

    + + + + + + + +
    Açıklama:Ortam değişkenlerini tanımlar.
    Sözdizimi:SetEnv ortam-değişkeni [değer]
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:FileInfo
    Durum:Temel
    Modül:mod_env
    +

    Apache HTTP sunucu modüllerinde kullanılmak ve CGI betiklerine ve SSI + sayfalarına aktarılmak üzere bir ortam değişkeni belirtilebilmesini + sağlar.

    + +

    Örnek

    + SetEnv SPECIAL_PATH /foo/bin +

    + +

    Bir değer belirtilmezse, değişkene boş dizgi atanır.

    + +

    Bu yönerge ile atanan dahili ortam değişkenleri, erişim denetimi ve + URI'leri dosya isimleri ile eşleştirme gibi daha önceki istek işleme + yönergelerinden sonra atanır. Eğer atayacağınız ortam + değişkenlerinin RewriteRule + yönergelerindeki gibi erken dönem işlem aşamalarında etkili olmasını + istiyorsanız bu ortam değişkenlerini SetEnvIf yönergesi ile atamalısınız.

    +
    + +

    2.2 sürümünde, PATH ortam değişkeni Setenv kullanılarak + atanamaz.

    +
    + + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    UnsetEnv Yönergesi

    + + + + + + + +
    Açıklama:Ortamdaki değişkenleri tanımsız hale getirir.
    Sözdizimi:UnsetEnv ortam-değişkeni [ortam-değişkeni] +...
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:FileInfo
    Durum:Temel
    Modül:mod_env
    +

    CGI betiklerine ve SSI sayfalarına bir daha aktarılmamak üzere bir dahili + ortam değişkenini ortamdan siler.

    + +

    Örnek

    + UnsetEnv LD_LIBRARY_PATH +

    + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_env.xml b/docs/manual/mod/mod_env.xml index b940b0da43b..5fece613c04 100644 --- a/docs/manual/mod/mod_env.xml +++ b/docs/manual/mod/mod_env.xml @@ -4,12 +4,12 @@ + + - + mod_env /mod/ .. en - ja + ja ko + tr diff --git a/docs/manual/mod/mod_env.xml.tr b/docs/manual/mod/mod_env.xml.tr new file mode 100644 index 00000000000..b20fb15974e --- /dev/null +++ b/docs/manual/mod/mod_env.xml.tr @@ -0,0 +1,121 @@ + + + + + + + + + + +mod_env +CGI betiklerine ve SSI sayfalarına aktarılan değişkenlere +müdahale etmek için kullanılır. +Base +mod_env.c +env_module + +

    Bu modül çeşitli Apache HTTP sunucu modülleri tarafından kullanılan dahili + ortam değişkenlerini denetim altına almak için kullanılır. Bu değişkenler + ayrıca CGI betiklerinde sistem ortam değişkenleri gibi belirtilebildiği + gibi SSI sayfalarında da kullanılabilmektedir. Bundan başka, yapılandırma + sürecinde tanımlı veya tanımsız yapılabilirler.

    +
    +Ortam Değişkenleri + + +PassEnv +Ortam değişkenlerini kabuktan aktarır. +PassEnv ortam-değişkeni [ortam-değişkeni] +... +server configvirtual host +directory.htaccess +FileInfo + + +

    httpd süreci başlatılırken Apache HTTP sunucu + modüllerinde, CGI betiklerinde ve SSI sayfalarında dahili ortam + değişkenleri olarak kullanılmak üzere bazı sistem ortam değişkenlerini + belirtmek için kullanılır.

    + + Örnek + PassEnv LD_LIBRARY_PATH + +
    +
    + + +SetEnv +Ortam değişkenlerini tanımlar. +SetEnv ortam-değişkeni [değer] +server configvirtual host +directory.htaccess +FileInfo + + +

    Apache HTTP sunucu modüllerinde kullanılmak ve CGI betiklerine ve SSI + sayfalarına aktarılmak üzere bir ortam değişkeni belirtilebilmesini + sağlar.

    + + Örnek + SetEnv SPECIAL_PATH /foo/bin + + +

    Bir değer belirtilmezse, değişkene boş dizgi atanır.

    + +

    Bu yönerge ile atanan dahili ortam değişkenleri, erişim denetimi ve + URI'leri dosya isimleri ile eşleştirme gibi daha önceki istek işleme + yönergelerinden sonra atanır. Eğer atayacağınız ortam + değişkenlerinin RewriteRule + yönergelerindeki gibi erken dönem işlem aşamalarında etkili olmasını + istiyorsanız bu ortam değişkenlerini SetEnvIf yönergesi ile atamalısınız.

    +
    + +

    2.2 sürümünde, PATH ortam değişkeni Setenv kullanılarak + atanamaz.

    +
    + +
    +Ortam Değişkenleri +
    + + +UnsetEnv +Ortamdaki değişkenleri tanımsız hale getirir. +UnsetEnv ortam-değişkeni [ortam-değişkeni] +... +server configvirtual host +directory.htaccess +FileInfo + + +

    CGI betiklerine ve SSI sayfalarına bir daha aktarılmamak üzere bir dahili + ortam değişkenini ortamdan siler.

    + + Örnek + UnsetEnv LD_LIBRARY_PATH + +
    +
    + +
    + diff --git a/docs/manual/mod/mod_example.html b/docs/manual/mod/mod_example.html index 41b1d56e327..6da80488e80 100644 --- a/docs/manual/mod/mod_example.html +++ b/docs/manual/mod/mod_example.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_example.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_example.html.en b/docs/manual/mod/mod_example.html.en index e8eadced766..823808359da 100644 --- a/docs/manual/mod/mod_example.html.en +++ b/docs/manual/mod/mod_example.html.en @@ -1,33 +1,40 @@ - -mod_example - Apache HTTP Server +mod_example - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_example

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_example

    Available Languages:  en  |  ko 

    - -
    Description:Illustrates the Apache module API
    Status:Experimental
    Module Identifier:example_module
    Source File:mod_example.c
    +Module Identifier:example_module +Source File:mod_example.c

    Summary

    Some files in the modules/experimental directory @@ -46,15 +53,15 @@ display of some of the tracing the example module did as the various callbacks were made.

    -

    Directives

    - -

    Topics

    + +

    Directives

    + +
    top

    Compiling the example module

    @@ -150,7 +157,28 @@ API

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_example.html.ko.euc-kr b/docs/manual/mod/mod_example.html.ko.euc-kr index 4f5aecc4171..f6ea15313fc 100644 --- a/docs/manual/mod/mod_example.html.ko.euc-kr +++ b/docs/manual/mod/mod_example.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_example - Apache HTTP Server +mod_example - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_example

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_example

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    @@ -45,15 +52,15 @@ ±װ÷À» ºê¶ó¿ì¡Çϸé example ¸ðµâÀÇ ¿©·¯ ÄݹéÀ» ȮÀÎÇÒ ¼ö ÀִÙ.

    -

    Áö½þîµé

    - -

    ÁÖÁ¦

    + +

    Áö½þîµé

    + +
    top

    example ¸ðµâ ÄÄÆÄÀÏÇϱâ

    @@ -149,7 +156,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_example.xml b/docs/manual/mod/mod_example.xml index 59db18296ea..94e3cd23be7 100644 --- a/docs/manual/mod/mod_example.xml +++ b/docs/manual/mod/mod_example.xml @@ -4,12 +4,12 @@ + - + mod_example /mod/ .. diff --git a/docs/manual/mod/mod_expires.html b/docs/manual/mod/mod_expires.html index c3692c250c0..77b906efac7 100644 --- a/docs/manual/mod/mod_expires.html +++ b/docs/manual/mod/mod_expires.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_expires.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_expires.html.ja.euc-jp +URI: mod_expires.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_expires.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_expires.html.en b/docs/manual/mod/mod_expires.html.en index 5c4d71ad163..c1a883e43b5 100644 --- a/docs/manual/mod/mod_expires.html.en +++ b/docs/manual/mod/mod_expires.html.en @@ -1,25 +1,32 @@ - -mod_expires - Apache HTTP Server +mod_expires - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_expires

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_expires

    Available Languages:  en  |  ja  | @@ -29,8 +36,8 @@ Cache-Control HTTP headers according to user-specified criteria Status:Extension -Module Identifier:expires_module -Source File:mod_expires.c +Module Identifier:expires_module +Source File:mod_expires.c

    Summary

    This module controls the setting of the Expires @@ -51,17 +58,21 @@ criteria max-age (see RFC 2616 section 14.9), you can use the Header directive.

    +

    When the Expires header is already part of the response + generated by the server, for example when generated by a CGI script or + proxied from an origin server, this module does not change or add + an Expires or Cache-Control header.

    -
    top

    Alternate Interval Syntax

    @@ -70,13 +81,13 @@ criteria can also be defined in a more readable syntax of the form:

    - ExpiresDefault "<base> [plus] {<num> - <type>}*"
    - ExpiresByType type/encoding "<base> [plus] - {<num> <type>}*" + ExpiresDefault "base [plus num type] + [num type] ..."
    + ExpiresByType type/encoding "base [plus num type] + [num type] ..."

    -

    where <base> is one of:

    +

    where base is one of:

    • access
    • @@ -87,9 +98,9 @@ criteria
    • modification
    -

    The plus keyword is optional. <num> +

    The plus keyword is optional. num should be an integer value [acceptable to atoi()], - and <type> is one of:

    + and type is one of:

    • years
    • @@ -112,7 +123,7 @@ criteria

    The expiry time can be fine-tuned by adding several - '<num> <type>' clauses:

    + 'num type' clauses:

    ExpiresByType text/html "access plus 1 month 15 @@ -241,7 +252,28 @@ by MIME type

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_expires.html.ja.euc-jp b/docs/manual/mod/mod_expires.html.ja.euc-jp deleted file mode 100644 index 0e6d264ae23..00000000000 --- a/docs/manual/mod/mod_expires.html.ja.euc-jp +++ /dev/null @@ -1,233 +0,0 @@ - - - -mod_expires - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_expires

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥桼¥¶¤λØÄꤷ¤¿´ð½à¤˴ð¤Ť¤¤¿ Expires ¤È -Cache-Control HTTP ¥إåÀ¤ÎÀ¸À®
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:expires_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_expires.c
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤ϥµ¡¼¥бþÅú¤Î Expires HTTP ¥إåÀ - ¤È Cache-Control ¥إåÀ¤Î max-age ¥ǥ£¥쥯¥ƥ£¥֤Î - ÀßÄê¤òÀ©¸椷¤ޤ¹¡£¸µ¤Υե¡¥¤¥뤬ºîÀ®¤µ¤줿»þ¹ï¤ޤ¿¤Ï - ¥¯¥饤¥¢¥ó¥ȤΥ¢¥¯¥»¥¹»þ¹ï¤ΤɤÁ¤餫¤˴ð¤Ť¤¤ƴü¸ÂÀڤìÆü¤ò - ÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤³¤ì¤é¤ΥإåÀ¤ϥ¯¥饤¥¢¥ó¥ȤËʸ½ñ¤Î - ͭ¸úÀ­¤ȷѳÀ­¤ò»ؼ¨¤·¤ޤ¹¡£ʸ½񤬥­¥ã¥å·¥夵¤줿¾ì¹ç¤ˤϡ¢ - »ØÄê»þ¹ï¤Ë㤹¤ë¤ޤǤϡ¢¸µ¤ξì½꤫¤é¼èÆÀ¤¹¤ëÂå¤ï¤ê¤Ë - ¥­¥ã¥å·¥夵¤ì¤Ƥ¤¤ë¤â¤Τò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤½¤θå¤ϡ¢ - ¥­¥ã¥å·¥å¤ˤ¢¤륳¥ԡ¼¤ϴü¸ÂÀڤì (expired) ¤Ç̵¸ú¤Ǥ¢¤ë¤Ȥµ¤졢 - ¸µ¤ξì½꤫¤鿷¤·¤¤¤â¤Τò¼èÆÀ¤¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    max-age °ʳ° (RFC - 2616 section 14.9 »²¾È) ¤Î Cache-Control ¤Υǥ£¥쥯¥ƥ£¥֤ò - Áàº¤ë¤ˤÏ Header ¥ǥ£¥쥯¥ƥ£¥֤ò - »Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    ¥ȥԥå¯

    -
    -
    top
    -
    -

    ÂåÂشü´ֻØÄ깽ʸ

    - -

    ExpiresDefault ¥ǥ£¥쥯¥ƥ£¥֤È - ExpiresByType ¥ǥ£¥쥯¥ƥ£¥֤Ï - °ʲ¼¤Τè¤êÆɤ߰פ¤¹½ʸ¤ò»ȤäÆÄêµÁ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    - ExpiresDefault "<base> [plus] {<num> - <type>}*"
    - ExpiresByType type/encoding "<base> [plus] - {<num> <type>}*" -

    - -

    <base> ¤ϰʲ¼¤Τɤ줫¤Ǥ¹:

    - -
      -
    • access
    • - -
    • now ('access' ¤ÈÅù²Á)
    • - -
    • modification
    • -
    - -

    plus ¥­¡¼¥¥ɤϾÊά²Äǽ¤Ǥ¹¡£<num> - ¤Ï (atoi() ¤¬¼õ¤±Éդ±¤ë) À°¿ôÃ͡¢ - <type> ¤ϰʲ¼¤Τɤ줫¤Ǥ¹:

    - -
      -
    • years
    • -
    • months
    • -
    • weeks
    • -
    • days
    • -
    • hours
    • -
    • minutes
    • -
    • seconds
    • -
    - -

    Î㤨¤С¢°ʲ¼¤Υǥ£¥쥯¥ƥ£¥֤Ϥɤì¤â¥ǥե©¥ë¥ȤÇʸ½񤬥¢¥¯¥»¥¹¤Î 1 ¥ö·î¸å¤Ë - ´ü¸¤¬Àڤì¤ë¤褦¤ˤ¹¤뤿¤á¤˻Ȥ¨¤ޤ¹:

    - -

    - ExpiresDefault "access plus 1 month"
    - ExpiresDefault "access plus 4 weeks"
    - ExpiresDefault "access plus 30 days" -

    - -

    ´ü¸ÂÀڤì»þ¹ï¤Ϥ¤¤¯¤Ĥ« - '<num> <type>' Àá¤òÄɲ乤뤳¤ȤǤè¤êº٤«¤¯ - À©¸椹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    - ExpiresByType text/html "access plus 1 month 15 - days 2 hours"
    - ExpiresByType image/gif "modification plus 5 hours 3 - minutes" -

    - -

    ½¤Àµ»þ¹ï¤˴ð¤Ť¤¤¿ÀßÄê¤ò»ÈÍѤ·¤Ƥ¤¤ë¾ì¹硢Expires ¥إåÀ¤Ï - ¥ǥ£¥¹¥¯¤Υե¡¥¤¥ë°ʳ°¤Υ³¥ó¥ƥó¥ĤˤÏÄɲ䵤ì¤ʤ¤¤³¤ȤËÃí°Õ - ¤·¤Ƥ¯¤À¤µ¤¤¡£¤½¤Τ褦¤ʥ³¥ó¥ƥó¥ĤˤϽ¤Àµ»þ¹ï¤Ï¸ºߤ·¤ʤ¤¤«¤é¤Ǥ¹¡£

    -
    -
    top
    -

    ExpiresActive ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:Expires ¥إåÀ¤ÎÀ¸À®¤òͭ¸ú¤ˤ¹¤ë
    ¹½ʸ:ExpiresActive On|Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:Indexes
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_expires
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÂбþ¤¹¤ë¥ɥ­¥å¥á¥ó¥ȤÎÎΰè¤Ç - Expires ¤È Cache-Control¥إåÀ¤ò - ͭ¸ú¤ˤ¹¤뤫̵¸ú¤ˤ¹¤뤫¤ò·è¤á¤ޤ¹¡£ - (Î㤨¤С¢.htaccess ¥ե¡¥¤¥ë¤ǤϤ½¤Υǥ£¥쥯¥ȥê¤Î - ʸ½ñ¤ΤߤËŬÍѤµ¤ì¤ë¤Ȥ¤¤¦¤³¤ȤǤ¹¡£) Off ¤Ë - ÀßÄꤵ¤줿¾ì¹ç¤ÏÂбþÎΰè¤Ǥ½¤ì¤é¤ΥإåÀ¤Ï - À¸À®¤µ¤ì¤ޤ»¤ó (.htaccess ¤¬¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë¤ÎÀßÄê¤ò - ¾å½񤭤¹¤롢¤Ȥ¤¤¦¤褦¤ʲ¼°̥ì¥٥ë¤Ǥξå½񤭤¬¤µ¤ì¤Ƥ¤¤ʤ±¤ì¤Ð)¡£ - On ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ì¤С¢¥إåÀ¤Ï ExpiresByType ¥ǥ£¥쥯¥ƥ£¥֤È - ExpiresDefault ¥ǥ£¥쥯¥ƥ£¥Ö - ¤δð½à¤˽¾¤äÆʸ½ñ¤˥إåÀ¤òÄɲä·¤ޤ¹ (³ƥǥ£¥쥯¥ƥ£¥ֻ²¾È)¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï Expires ¤È - Cache-Control ¥إåÀ¤Î¸ºߤò - Êݾڤ¹¤ë¤櫓¤ǤϤʤ¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£´ð½बËþ¤¿¤µ¤ì¤Æ - ¤¤¤ʤ¤¾ì¹ç¤ϥإåÀ¤ÏÄɲ䵤줺¡¢·ë²̤Ȥ·¤Ƥ³¤Υǥ£¥쥯¥ƥ£¥֤¬ - »ØÄꤵ¤ì¤Ƥ¤¤ʤ«¤ä¿¤«¤Τ褦¤ˤµ¤¨¸«¤¨¤뤳¤Ȥˤʤê¤ޤ¹¡£

    - -
    -
    top
    -

    ExpiresByType ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:MIME ¥¿¥¤¥פˤè¤äÆÀßÄꤵ¤ì¤ë Expires ¥إåÀ¤ÎÃÍ
    ¹½ʸ:ExpiresByType MIME-type -<code>seconds
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:Indexes
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_expires
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϻØÄꤵ¤줿¥¿¥¤¥פΥɥ­¥å¥á¥ó¥È - (Î㤨¤Ð text/html) - ¤ËÂФ·¤ÆÀ¸À®¤µ¤ì¤ë Expires ¥إåÀ¤È Cache-Control - ¥إåÀ¤Î max-age ¥ǥ£¥쥯¥ƥ£¥֤ÎÃͤòÄêµÁ¤·¤ޤ¹¡£ - Æó¤ÄÌܤΰú¿ô¤ϴü¸ÂÀڤì¤ÎÆü»þ¤òÀ¸À®¤¹¤뤿¤á¤δð½à»þ¹ï¤ËÄɲ䵤ì¤ë - Éÿô¤òÀßÄꤷ¤ޤ¹¡£Cache-Control: - max-age ¤ϴü¸ÂÀڤì¤λþ¹狼¤é¥ꥯ¥¨¥¹¥Ȼþ¹ï¤ò°ú¤¤¤¿¤â¤ΤòÉäÇ - ɽ¤¹¤³¤ȤÇÀ¸À®¤µ¤ì¤ޤ¹¡£

    - -

    ´ð½à»þ¹ï¤ϥե¡¥¤¥ë¤κǽª½¤Àµ»þ¹狼¡¢¥¯¥饤¥¢¥ó¥ȤΥɥ­¥å¥á¥ó¥ȤؤÎ - ¥¢¥¯¥»¥¹»þ¹ï¤Ǥ¹¡£¤ɤÁ¤é¤ò»Ȥ¦¤٤­¤«¤Ï <code> - ¤ˤè¤äƻØÄꤷ¤ޤ¹¡£M ¤ϴð½à»þ¹ï¤Ȥ·¤Æ - ¥ե¡¥¤¥ë¤κǽª½¤Àµ»þ¹ï¤ò¤Ȥ¤¤¦°Ọ̃¤ǡ¢A ¤ϥ¯¥饤¥¢¥ó¥ȤÎ - ¥¢¥¯¥»¥¹»þ¹ï¤ò»Ȥ¦¤Ȥ¤¤¦°Ọ̃¤ˤʤê¤ޤ¹¡£

    - -

    ¸ú²̤ˤÏÈù̯¤ʰ㤤¤¬¤¢¤ê¤ޤ¹¡£M ¤¬»ÈÍѤµ¤줿¾ì¹ç¤ϡ¢ - ¤¹¤٤ƤΥ­¥ã¥å·¥å¤ˤ¢¤븽ºߤΥɥ­¥å¥á¥ó¥ȥ­¥ã¥å·¥å¤ÏƱ»þ¤˴ü¸¤¬ - Àڤì¤ޤ¹¡£¤³¤ì¤ÏƱ¤¸ URL ¤ËË轵¾ï¤ËÃ֤«¤ì¤ëÊ󤻤Τ褦¤ʤâ¤ΤˤÏ - Èó¾ï¤Ëͭ¸ú¤Ǥ¹¡£A ¤¬»ÈÍѤµ¤줿¾ì¹ç¤ϡ¢´ü¸ÂÀڤì¤Î - »þ´֤ϳƥ¯¥饤¥¢¥ó¥Ȥè¤äưۤʤê¤ޤ¹¡£¤³¤ì¤Ϥ¢¤ޤêÊѹ¹¤µ¤ì¤ʤ¤ - ²èÁü¥ե¡¥¤¥ë¤ʤɡ¢Æä˴ØϢ¤¹¤ë¥ɥ­¥å¥á¥ó¥ȷ²¤¬¤¹¤٤ÆƱ¤¸²èÁü¤ò - »²¾Ȥ¹¤ë¤Ȥ­ (¤¹¤ʤï¤Á²èÁü¤¬Èæ³ÓŪû¤¤´ü´ÖÆâ¤˷«¤êÊ֤· - ¥¢¥¯¥»¥¹¤µ¤ì¤ë¤Ȥ­) ¤Ëͭ¸ú¤Ǥ¹¡£

    - -

    Îã:

    - # enable expirations
    - ExpiresActive On
    - # expire GIF images after a month in the client's cache
    - ExpiresByType image/gif A2592000
    - # HTML documents are good for a week from the
    - # time they were changed
    - ExpiresByType text/html M604800 -

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï ExpiresActive On ¤¬»ØÄꤵ¤ì¤Ƥ¤¤ë - ¤Ȥ­¤Τßͭ¸ú¤Ǥ¢¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£¤³¤ì¤ϡ¢ - »ØÄꤵ¤줿 MIME ¥¿¥¤¥פËÂФ·¤Æ¤Τß ExpiresDefault ¥ǥ£¥쥯¥ƥ£¥֤Ç - ÀßÄꤵ¤줿´ü¸ÂÀڤì´üÆü¤ò¾å½񤭤·¤ޤ¹¡£

    - -

    ¤³¤Îʸ½ñ¤ÎÁ°¤ÎÊý¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ëÂåÂع½ʸ¤ò - »Ȥäƴü¸ÂÀڤì´üÆü¤η׻»Êýˡ¤ò»ØÄꤹ¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -
    -
    top
    -

    ExpiresDefault ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:´ü¸ÂÀڤì´üÆü¤ò·׻»¤¹¤ë¥ǥե©¥ë¥ȥ¢¥르¥ꥺ¥à
    ¹½ʸ:ExpiresDefault <code>seconds
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:Indexes
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_expires
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÂбþ¤¹¤ëÈϰϤΤ¹¤٤ƤΥɥ­¥å¥á¥ó¥ȤËÂФ·¤Æ - ¥ǥե©¥ë¥Ȥδü¸ÂÀڤì´üÆü¤η׻»¥¢¥르¥ꥺ¥à¤òÀßÄꤷ¤ޤ¹¡£ExpiresByType ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤äÆ - ¥¿¥¤¥×Ëè¤˾å½񤭤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£°ú¿ô¤ι½ʸ¤Ϥ½¤Υǥ£¥쥯¥ƥ£¥֤Î - ÀâÌÀ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£¤ޤ¿¡¢ÂåÂع½ʸ¤â - »²¾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_expires.html.ja.utf8 b/docs/manual/mod/mod_expires.html.ja.utf8 new file mode 100644 index 00000000000..8d7016ae681 --- /dev/null +++ b/docs/manual/mod/mod_expires.html.ja.utf8 @@ -0,0 +1,265 @@ + + + + + +mod_expires - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_expires

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:ユーザの指定した基準に基づいた Expires と +Cache-Control HTTP ヘッダの生成
    ステータス:Extension
    モジュール識別子:expires_module
    ソースファイル:mod_expires.c
    +

    概要

    + +

    このモジュールはサーバ応答の Expires HTTP ヘッダ + と Cache-Control ヘッダの max-age ディレクティブの + 設定を制御します。元のファイルが作成された時刻または + クライアントのアクセス時刻のどちらかに基づいて期限切れ日を + 設定することができます。

    + +

    これらのヘッダはクライアントに文書の + 有効性と継続性を指示します。文書がキャッシュされた場合には、 + 指定時刻に達するまでは、元の場所から取得する代わりに + キャッシュされているものを使うことができます。その後は、 + キャッシュにあるコピーは期限切れ (expired) で無効であるとされ、 + 元の場所から新しいものを取得する必要があります。

    + +

    max-age 以外 (RFC + 2616 section 14.9 参照) の Cache-Control のディレクティブを + 操作するには Header ディレクティブを + 使うことができます。

    +

    トピック

    +

    ディレクティブ

    + +
    +
    top
    +
    +

    代替期間指定構文

    + +

    ExpiresDefault ディレクティブと + ExpiresByType ディレクティブは + 以下のより読み易い構文を使って定義することができます:

    + +

    + ExpiresDefault "<base> [plus] {<num> + <type>}*"
    + ExpiresByType type/encoding "<base> [plus] + {<num> <type>}*" +

    + +

    <base> は以下のどれかです:

    + +
      +
    • access
    • + +
    • now ('access' と等価)
    • + +
    • modification
    • +
    + +

    plus キーワードは省略可能です。<num> + は (atoi() が受け付ける) 整数値、 + <type> は以下のどれかです:

    + +
      +
    • years
    • +
    • months
    • +
    • weeks
    • +
    • days
    • +
    • hours
    • +
    • minutes
    • +
    • seconds
    • +
    + +

    例えば、以下のディレクティブはどれもデフォルトで文書がアクセスの 1 ヶ月後に + 期限が切れるようにするために使えます:

    + +

    + ExpiresDefault "access plus 1 month"
    + ExpiresDefault "access plus 4 weeks"
    + ExpiresDefault "access plus 30 days" +

    + +

    期限切れ時刻はいくつか + '<num> <type>' 節を追加することでより細かく + 制御することができます:

    + +

    + ExpiresByType text/html "access plus 1 month 15 + days 2 hours"
    + ExpiresByType image/gif "modification plus 5 hours 3 + minutes" +

    + +

    修正時刻に基づいた設定を使用している場合、Expires ヘッダは + ディスクのファイル以外のコンテンツには追加されないことに注意 + してください。そのようなコンテンツには修正時刻は存在しないからです。

    +
    +
    top
    +

    ExpiresActive ディレクティブ

    + + + + + + + +
    説明:Expires ヘッダの生成を有効にする
    構文:ExpiresActive On|Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Indexes
    ステータス:Extension
    モジュール:mod_expires
    +

    このディレクティブは対応するドキュメントの領域で + Expires と Cache-Controlヘッダを + 有効にするか無効にするかを決めます。 + (例えば、.htaccess ファイルではそのディレクトリの + 文書のみに適用されるということです。) Off に + 設定された場合は対応領域でそれらのヘッダは + 生成されません (.htaccess がサーバ設定ファイルの設定を + 上書きする、というような下位レベルでの上書きがされていなければ)。 + On に設定されていれば、ヘッダは ExpiresByType ディレクティブと + ExpiresDefault ディレクティブ + の基準に従って文書にヘッダを追加します (各ディレクティブ参照)。

    + +

    このディレクティブは Expires と + Cache-Control ヘッダの存在を + 保証するわけではないことに注意してください。基準が満たされて + いない場合はヘッダは追加されず、結果としてこのディレクティブが + 指定されていなかったかのようにさえ見えることになります。

    + +
    +
    top
    +

    ExpiresByType ディレクティブ

    + + + + + + + +
    説明:MIME タイプによって設定される Expires ヘッダの値
    構文:ExpiresByType MIME-type +<code>seconds
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Indexes
    ステータス:Extension
    モジュール:mod_expires
    +

    このディレクティブは指定されたタイプのドキュメント + (例えば text/html) + に対して生成される Expires ヘッダと Cache-Control + ヘッダの max-age ディレクティブの値を定義します。 + 二つ目の引数は期限切れの日時を生成するための基準時刻に追加される + 秒数を設定します。Cache-Control: + max-age は期限切れの時刻からリクエスト時刻を引いたものを秒で + 表すことで生成されます。

    + +

    基準時刻はファイルの最終修正時刻か、クライアントのドキュメントへの + アクセス時刻です。どちらを使うべきかは <code> + によって指定します。M は基準時刻として + ファイルの最終修正時刻をという意味で、A はクライアントの + アクセス時刻を使うという意味になります。

    + +

    効果には微妙な違いがあります。M が使用された場合は、 + すべてのキャッシュにある現在のドキュメントキャッシュは同時に期限が + 切れます。これは同じ URL に毎週常に置かれる報せのようなものには + 非常に有効です。A が使用された場合は、期限切れの + 時間は各クライアントによって異なります。これはあまり変更されない + 画像ファイルなど、特に関連するドキュメント群がすべて同じ画像を + 参照するとき (すなわち画像が比較的短い期間内に繰り返し + アクセスされるとき) に有効です。

    + +

    例:

    + # enable expirations
    + ExpiresActive On
    + # expire GIF images after a month in the client's cache
    + ExpiresByType image/gif A2592000
    + # HTML documents are good for a week from the
    + # time they were changed
    + ExpiresByType text/html M604800 +

    + +

    このディレクティブは ExpiresActive On が指定されている + ときのみ有効であることに注意してください。これは、 + 指定された MIME タイプに対してのみ ExpiresDefault ディレクティブで + 設定された期限切れ期日を上書きします。

    + +

    この文書の前の方で説明されている代替構文を + 使って期限切れ期日の計算方法を指定することもできます。

    + +
    +
    top
    +

    ExpiresDefault ディレクティブ

    + + + + + + + +
    説明:期限切れ期日を計算するデフォルトアルゴリズム
    構文:ExpiresDefault <code>seconds
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Indexes
    ステータス:Extension
    モジュール:mod_expires
    +

    このディレクティブは対応する範囲のすべてのドキュメントに対して + デフォルトの期限切れ期日の計算アルゴリズムを設定します。ExpiresByType ディレクティブによって + タイプ毎に上書きすることができます。引数の構文はそのディレクティブの + 説明を参照してください。また、代替構文も + 参照してください。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_expires.html.ko.euc-kr b/docs/manual/mod/mod_expires.html.ko.euc-kr index d027b685544..6cb677373e2 100644 --- a/docs/manual/mod/mod_expires.html.ko.euc-kr +++ b/docs/manual/mod/mod_expires.html.ko.euc-kr @@ -1,30 +1,39 @@ - -mod_expires - Apache HTTP Server +mod_expires - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_expires

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_expires

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -49,16 +58,16 @@ 2616, 14.9 Àý Âü°í)¸¦ ¼öÁ¤ÇÒ ¼ö ÀִÙ.

    -

    Áö½þîµé

    + +
    top

    ´ٸ¥ ³»ºÎ ¹®¹ý

    @@ -219,7 +228,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_expires.xml b/docs/manual/mod/mod_expires.xml index 6fdc12af69b..be7e94fa344 100644 --- a/docs/manual/mod/mod_expires.xml +++ b/docs/manual/mod/mod_expires.xml @@ -4,12 +4,12 @@ + + - + mod_expires /mod/ .. en - ja - ko + ja + ko diff --git a/docs/manual/mod/mod_ext_filter.html b/docs/manual/mod/mod_ext_filter.html index aacf8a658e1..a4474fe0386 100644 --- a/docs/manual/mod/mod_ext_filter.html +++ b/docs/manual/mod/mod_ext_filter.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_ext_filter.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_ext_filter.html.ja.euc-jp +URI: mod_ext_filter.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_ext_filter.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_ext_filter.html.en b/docs/manual/mod/mod_ext_filter.html.en index 043ce5288d2..94b7bea579a 100644 --- a/docs/manual/mod/mod_ext_filter.html.en +++ b/docs/manual/mod/mod_ext_filter.html.en @@ -1,25 +1,32 @@ - -mod_ext_filter - Apache HTTP Server +mod_ext_filter - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_ext_filter

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_ext_filter

    Available Languages:  en  |  ja  | @@ -28,8 +35,8 @@

    ¼³¸í:»ç¿ëÀڰ¡ ÁöÁ¤ÇÑ ±âÁؿ¡ µû¶ó Expires¿Í Cache-Control HTTP Çì´õ¸¦ »ý¼ºÇѴÙ
    »óÅÂ:Extension
    - -
    Description:Pass the response body through an external program before delivery to the client
    Status:Extension
    Module Identifier:ext_filter_module
    Source File:mod_ext_filter.c
    +Module Identifier:ext_filter_module +Source File:mod_ext_filter.c

    Summary

    mod_ext_filter presents a simple and familiar @@ -57,18 +64,18 @@ delivery to the client a prototype environment for filters.

    -

    Directives

    +

    Topics

    +

    Directives

    -

    Topics

    -

    See also

    +

    See also

    +
    top

    Examples

    @@ -167,8 +174,13 @@ delivery to the client </Location>

    - +
    +

    You can do the same thing using mod_substitute + without invoking an external process.

    +
    + +

    Tracing another filter

    # Trace the data read and written by mod_deflate
    @@ -267,8 +279,8 @@ delivery to the client

    Use mode=output (the default) for filters which process the response. Use mode=input for filters - which process the request. mode=input is new with - Apache 2.1.
    + which process the request. mode=input is available + in Apache 2.1 and later.
    intype=imt
    @@ -354,6 +366,12 @@ delivery to the client messages written to standard error by the external filter program will be saved in the Apache error log. NoLogStderr disables this feature. + +
    Onfail=[abort|remove] (new in httpd version 2.2.12).
    +
    Determines how to proceed if the external filter program + cannot be started. With abort (the default value) + the request will be aborted. With remove, the + filter is removed and the request continues without it.

    Example

    @@ -370,7 +388,28 @@ delivery to the client

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_ext_filter.html.ja.euc-jp b/docs/manual/mod/mod_ext_filter.html.ja.euc-jp deleted file mode 100644 index 3aeead25e64..00000000000 --- a/docs/manual/mod/mod_ext_filter.html.ja.euc-jp +++ /dev/null @@ -1,367 +0,0 @@ - - - -mod_ext_filter - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_ext_filter

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥쥹¥ݥ󥹤Υܥǥ£¤򥯥饤¥¢¥ó¥ȤËÁ÷¤ëÁ°¤˳°Éô¥ץí¥°¥é¥à¤ǽèÍý¤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:ext_filter_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_ext_filter.c
    -

    ³µÍ×

    - -

    mod_ext_filter ¤ǤÏ ¥ե£¥륿 - ¤δ·¤ì¿Ƥ·¤ó¤Àñ½ã¤ʥץí¥°¥é¥ߥ󥰥â¥ǥ뤬Ä󶡤µ¤ì¤ޤ¹¡£¤³¤Υ⥸¥塼¥ë¤ò - »Ȥ¨¤С¢ɸ½àÆþÎϤ«¤éÆɤ߹þ¤ó¤ǡ¢ɸ½à½ÐÎϤ˽񤭽Ф¹¥ץí¥°¥é¥à - (¤¹¤ʤï¤Á Unix ·Á¼°¤Υե£¥륿¥³¥ޥó¥É) ¤ò Apache ¤Υե£¥륿¤ˤ¹¤뤳¤Ȥ¬ - ¤Ǥ­¤ޤ¹¡£¤³¤Υե£¥륿¤ε¡¹½¤ϡ¢Apache API ¸þ¤±¤˽񤫤줿 Apache - ¥µ¡¼¥Хץí¥»¥¹Æâ¤Ǽ¹Ԥµ¤ì¤ëÀìÍѤΥե£¥륿¤è¤ê¤⤺¤äÈÃ٤¤¤Ǥ¹¤¬¡¢ - °ʲ¼¤Τ褦¤ÊÍøÅÀ¤⤢¤ê¤ޤ¹¡£

    - -
      -
    • ¤º¤äȥ·¥ó¥ץë¤ʥץí¥°¥é¥ߥ󥰥â¥ǥë
    • - -
    • ¥ץí¥°¥é¥बɸ½àÆþÎϤ«¤éÆɤó¤Çɸ½à½ÐÎϤ˽񤯤â¤ΤǤ¢¤ë¸¤ꡢ - ¤ɤó¤ʥץí¥°¥é¥à¸À¸ì¤䥹¥¯¥ê¥ץȸÀ¸ì¤Ǥâ»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ë
    • - -
    • ´û¸¤Υץí¥°¥é¥à¤òÊѹ¹¤¹¤뤳¤Ȥʤ¯ Apache ¤Υե£¥륿¤Ȥ·¤Æ - »Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ë
    • -
    - -

    À­ǽ¤ÎÌäÂê¤ˤè¤ê¼±¿ÍѤËŬ¤µ¤ʤ¤¤Ȥ·¤Ƥ⡢¥ե£¥륿¤Υץí¥ȥ¿¥¤¥×ÍѤÎ - ´Ķ­¤Ȥ·¤ƤÏ mod_ext_filter ¤ϻȤ¨¤ޤ¹¡£

    - -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    ¥ȥԥå¯

    -

    »²¾È

    -
    -
    top
    -
    -

    Îã

    - -

    ¾¤Υ¿¥¤¥פΥ쥹¥ݥ󥹤«¤é HTML ¤òÀ¸À®¤¹¤ë

    -

    - # mod_ext_filter directive to define a filter
    - # to HTML-ize text/c files using the external
    - # program /usr/bin/enscript, with the type of
    - # the result set to text/html
    - ExtFilterDefine c-to-html mode=output \
    - - intype=text/c outtype=text/html \
    - cmd="/usr/bin/enscript --color -W html -Ec -o - -"
    -
    -
    - <Directory "/export/home/trawick/apacheinst/htdocs/c">
    - - # core directive to cause the new filter to
    - # be run on output
    - SetOutputFilter c-to-html
    -
    - # mod_mime directive to set the type of .c
    - # files to text/c
    - AddType text/c .c
    -
    - # mod_ext_filter directive to set the debug
    - # level just high enough to see a log message
    - # per request showing the configuration in force
    - ExtFilterOptions DebugLevel=1
    -
    - </Directory> -

    - - -

    ¥³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥󥰤Υե£¥륿¤ò¼ÂÁõ¤¹¤ë

    -

    Ãí: ¤³¤Î gzip ¤ÎÎã¤ϥǥâÍѤǤ¹¡£¼ÂÍÑŪ¤ʼÂÁõ¤Ï - mod_deflate ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    - # mod_ext_filter directive to define the external filter
    - ExtFilterDefine gzip mode=output cmd=/bin/gzip
    -
    - <Location /gzipped>
    - - # core directive to cause the gzip filter to be
    - # run on output
    - SetOutputFilter gzip
    -
    - # mod_header directive to add
    - # "Content-Encoding: gzip" header field
    - Header set Content-Encoding gzip
    -
    - </Location> -

    - - -

    ¥µ¡¼¥ФòÃ٤¯¤¹¤ë

    -

    - # mod_ext_filter directive to define a filter
    - # which runs everything through cat; cat doesn't
    - # modify anything; it just introduces extra pathlength
    - # and consumes more resources
    - ExtFilterDefine slowdown mode=output cmd=/bin/cat \
    - - preservescontentlength
    -
    -
    - <Location />
    - - # core directive to cause the slowdown filter to
    - # be run several times on output
    - #
    - SetOutputFilter slowdown;slowdown;slowdown
    -
    - </Location> -

    - - -

    sed ¤ò»ȤäƱþÅúÃæ¤Υƥ­¥¹¥ȤòÃִ¹¤¹¤ë

    -

    - # mod_ext_filter directive to define a filter which
    - # replaces text in the response
    - #
    - ExtFilterDefine fixtext mode=output intype=text/html \
    - - cmd="/bin/sed s/verdana/arial/g"
    -
    -
    - <Location />
    - - # core directive to cause the fixtext filter to
    - # be run on output
    - SetOutputFilter fixtext
    -
    - </Location> -

    - - -

    Ê̤Υե£¥륿¤Υȥ졼¥¹

    -

    - # Trace the data read and written by mod_deflate
    - # for a particular client (IP 192.168.1.31)
    - # experiencing compression problems.
    - # This filter will trace what goes into mod_deflate.
    - ExtFilterDefine tracebefore \
    - - cmd="/bin/tracefilter.pl /tmp/tracebefore" \
    - EnableEnv=trace_this_client
    -
    -
    - # This filter will trace what goes after mod_deflate.
    - # Note that without the ftype parameter, the default
    - # filter type of AP_FTYPE_RESOURCE would cause the
    - # filter to be placed *before* mod_deflate in the filter
    - # chain. Giving it a numeric value slightly higher than
    - # AP_FTYPE_CONTENT_SET will ensure that it is placed
    - # after mod_deflate.
    - ExtFilterDefine traceafter \
    - - cmd="/bin/tracefilter.pl /tmp/traceafter" \
    - EnableEnv=trace_this_client ftype=21
    -
    -
    - <Directory /usr/local/docs>
    - - SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
    - SetOutputFilter tracebefore;deflate;traceafter
    -
    - </Directory> -

    - -

    ¥ǡ¼¥¿¤ò¥ȥ졼¥¹¤¹¤ë¥ե£¥륿:

    - #!/usr/local/bin/perl -w
    - use strict;
    -
    - open(SAVE, ">$ARGV[0]")
    - - or die "can't open $ARGV[0]: $?";
    -
    -
    - while (<STDIN>) {
    - - print SAVE $_;
    - print $_;
    -
    - }
    -
    - close(SAVE); -

    - -
    -
    top
    -

    ExtFilterDefine ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:³°Éô¥ե£¥륿¤òÄêµÁ
    ¹½ʸ:ExtFilterDefine filtername parameters
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_ext_filter
    -

    ExtFilterDefine ¤ϡ¢¼¹Ԥ¹¤ë¥ץí¥°¥é¥à¤ä - °ú¿ô¤ʤɡ¢³°Éô¥ե£¥륿¤ÎÆÃÀ­¤òÄêµÁ¤·¤ޤ¹¡£

    - -

    filtername ¤ÏÄêµÁ¤¹¤ë¥ե£¥륿¤Î̾Á°¤ò»ØÄꤷ¤ޤ¹¡£ - ¤³¤Î̾Á°¤ϸå¤Ç SetOutputFilter - ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄê¤Ǥ­¤ޤ¹¡£̾Á°¤ÏÅÐϿ¤µ¤ì¤뤹¤٤ƤΥե£¥륿¤Ç - °ì°դǤʤ¯¤ƤϤʤê¤ޤ»¤ó¡£¸½»þÅÀ¤Ǥϡ¢¥ե£¥륿¤ÎÅÐϿ API ¤«¤é¤Ï - ¥¨¥顼¤ÏÊó¹𤵤ì¤ޤ»¤󡣤Ǥ¹¤«¤顢½Åʣ¤¹¤ë̾Á°¤ò»ȤäƤ·¤ޤ俤Ȥ­¤Ǥâ - ¥桼¥¶¤ˤϤ½¤Τ³¤ȤÏÊó¹𤵤ì¤ޤ»¤ó¡£

    - -

    ³¤¯¥ѥé¥᡼¥¿¤νçÈ֤ϴط¸̵¤¯¡¢¤½¤ì¤é¤ϼ¹Ԥ¹¤볰Éô¥³¥ޥó¥ɤȡ¢ - ¾¤ÎÆÃÀ­¤òÄêµÁ¤·¤ޤ¹¡£cmd= ¤À¤±¤¬ɬ¿ܤΥѥé¥᡼¥¿¤Ǥ¹¡£ - »ØÄê²Äǽ¤ʥѥé¥᡼¥¿¤Ï:

    - -
    -
    cmd=cmdline
    - -
    cmd= ¥­¡¼¥¥ɤϼ¹Ԥ¹¤볰Éô¥³¥ޥó¥ɤò»ØÄꤷ¤ޤ¹¡£ - ¥ץí¥°¥é¥à̾¤θå¤˰ú¿ô¤¬¤¢¤ë¾ì¹ç¤ϡ¢¥³¥ޥó¥ɹԤϰúÍÑÉä¤ǰϤà - ɬÍפ¬¤¢¤ê¤ޤ¹ (Î㤨¤Ð¡¢cmd="/bin/mypgm - arg1 arg2" ¤Τ褦¤Ë)¡£¥ץí¥°¥é¥à¤Ï - ¥·¥§¥ë·Ðͳ¤Ǥʤ¯¡¢ľÀܼ¹Ԥµ¤ì¤ޤ¹¤Τǡ¢Ä̾ï¤Υ·¥§¥ëÍѤÎ - ¥¨¥¹¥±¡¼¥פÏɬÍפ¢¤ê¤ޤ»¤󡣥ץí¥°¥é¥à¤ΰú¿ô¤϶õÇò¤ǶèÀڤé¤ì¤ޤ¹¡£ - ¥ץí¥°¥é¥à¤ΰú¿ô¤ΰìÉô¤ȤʤëɬÍפΤ¢¤ë¶õÇò¤ϥХ寥¹¥ڡ¼¥¹¤ǥ¨¥¹¥±¡¼¥× - ¤Ǥ­¤ޤ¹¡£°ú¿ô¤ΰìÉô¤ˤʤë¥Х寥¹¥é¥å·¥å¤ϥХ寥¹¥é¥å·¥å¤Ç - ¥¨¥¹¥±¡¼¥פ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ɸ½à¤Î CGI ´Ķ­Êѿô¤˲䨤ơ¢ - ´Ķ­Êѿô DOCUMENT_URI, DOCUMENT_PATH_INFO, and - QUERY_STRING_UNESCAPED ¤¬¥ץí¥°¥é¥à¤Τ¿¤á¤ËÀßÄꤵ¤ì¤ޤ¹¡£
    - -
    mode=mode
    - -
    ±þÅú¤ò½èÍý¤¹¤ë¥ե£¥륿¤ˤÏ mode=output (¥ǥե©¥ë¥È) - ¤ò»Ȥ¤¤ޤ¹¡£¥ꥯ¥¨¥¹¥Ȥò½èÍý¤¹¤ë¥ե£¥륿¤ˤÏ mode=input - ¤ò»Ȥ¤¤ޤ¹¡£mode=input ¤Ï Apache 2.1 ¤«¤é¤ο·¤·¤¤µ¡ǽ¤Ǥ¹¡£
    - -
    intype=imt
    - -
    ¤³¤Υѥé¥᡼¥¿¤ϥե£¥륿¤µ¤ì¤ë¤٤­¥ɥ­¥å¥á¥ó¥ȤÎ - ¥¤¥󥿡¼¥ͥåȥá¥ǥ£¥¢¥¿¥¤¥× (¤¹¤ʤï¤Á¡¢MIME ¥¿¥¤¥×) ¤ò - »ØÄꤷ¤ޤ¹¡£¥ǥե©¥ë¥ȤǤϤ¹¤٤ƤΥɥ­¥å¥á¥ó¥Ȥ¬¥ե£¥륿¤µ¤ì¤ޤ¹¡£ - intype= ¤¬»ØÄꤵ¤ì¤Ƥ¤¤ì¤С¢¥ե£¥륿¤ϻØÄꤵ¤ì¤Ƥ¤¤ʤ¤ - ¥ɥ­¥å¥á¥ó¥ȤˤÏŬÍѤµ¤ì¤ʤ¯¤ʤê¤ޤ¹¡£
    - -
    outtype=imt
    - -
    ¤³¤Υѥé¥᡼¥¿¤ϥե£¥륿¤µ¤줿¥ɥ­¥å¥á¥ó¥ȤÎ - ¥¤¥󥿡¼¥ͥåȥá¥ǥ£¥¢¥¿¥¤¥× (¤¹¤ʤï¤Á¡¢MIME ¥¿¥¤¥×) ¤ò - »ØÄꤷ¤ޤ¹¡£¥ե£¥륿ưºî¤ˤȤâ¤ʤäƥ¤¥󥿡¼¥ͥåȥá¥ǥ£¥¢¥¿¥¤¥פ¬ - ÊѤï¤ë¾ì¹ç¤ËͭÍѤǤ¹¡£¥ǥե©¥ë¥ȤǤϥ¤¥󥿡¼¥ͥåȥá¥ǥ£¥¢¥¿¥¤¥פÏ - Êѹ¹¤µ¤ì¤ޤ»¤ó¡£
    - -
    PreservesContentLength
    - -
    PreservesContentLength ¥­¡¼¥¥ɤϥե£¥륿¤¬ - content length (ÌõÃí: ¥³¥ó¥ƥó¥ȤÎŤµ) - ¤òÊѹ¹¤·¤ʤ¤¤Ȥ¤¤¦¤³¤Ȥò»ØÄꤷ¤ޤ¹¡£¤ۤȤó¤ɤΥե£¥륿¤Ï - content length ¤òÊѹ¹¤¹¤뤿¤ᡢ¤³¤ì¤ϥǥե©¥ë¥ȤǤϤ¢¤ê¤ޤ»¤ó¡£ - ¥ե£¥륿¤¬Ĺ¤µ¤òÊѤ¨¤ʤ¤¤Ȥ­¤ϡ¢¤³¤Υ­¡¼¥¥ɤò»ØÄꤹ¤ë¤È - ¤褤¤Ǥ·¤礦¡£
    - -
    ftype=filtertype
    - -
    ¤³¤Υѥé¥᡼¥¿¤ϥե£¥륿¤¬ÅÐϿ¤µ¤ì¤ë¤٤­¥ե£¥륿¥¿¥¤¥פÎ - ¿ôÃͤò»ØÄꤷ¤ޤ¹¡£¤ۤȤó¤ɤξì¹ç¤ϡ¢¥ǥե©¥ë¥ȤÎ AP_FTYPE_RESOURCE ¤Ç - ½½ʬ¤Ǥ¹¡£¥ե£¥륿¤¬¥ե£¥륿¥Á¥§¡¼¥ó¤ÎÊ̤ξì½ê¤Çưº¤ëɬÍפ¬¤¢¤ë - ¾ì¹ç¤ϡ¢¤³¤Υѥé¥᡼¥¿¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£»ØÄê²Äǽ¤ÊÃͤÏ - util_filter.h ¤Î AP_FTYPE_foo ÄêµÁ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£
    - -
    disableenv=env
    - -
    ÀßÄꤵ¤ì¤Ƥ¤¤¿¾ì¹ç¤˥ե£¥륿¤ò̵¸ú¤ˤ¹¤뤿¤á¤δĶ­Êѿô¤ò - »ØÄꤷ¤ޤ¹¡£
    - -
    enableenv=env
    - -
    ¤³¤Υѥé¥᡼¥¿¤ϥե£¥륿¤¬ͭ¸ú¤ˤʤ뤿¤á¤ËÀßÄꤵ¤ì¤Ƥ¤¤ʤ±¤ì¤Ð - ¤ʤé¤ʤ¤´Ķ­Êѿô¤ò»ØÄꤷ¤ޤ¹¡£
    -
    - -
    -
    top
    -

    ExtFilterOptions ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:mod_ext_filter ¤Υª¥ץ·¥ç¥ó¤òÀßÄê
    ¹½ʸ:ExtFilterOptions option [option] ...
    ¥ǥե©¥ë¥È:ExtFilterOptions DebugLevel=0 NoLogStderr
    ¥³¥ó¥ƥ­¥¹¥È:¥ǥ£¥쥯¥ȥê
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_ext_filter
    -

    ExtFilterOptions ¥ǥ£¥쥯¥ƥ£¥֤Ï - mod_ext_filter ¤ÎÆÃÊ̤ʽèÍýÍѤΥª¥ץ·¥ç¥ó¤ò - »ØÄꤷ¤ޤ¹¡£Option ¤ˤϰʲ¼¤Τɤ줫¤ò»ØÄꤷ¤ޤ¹¡£

    - -
    -
    DebugLevel=n
    - -
    - DebugLevel ¤Ç mod_ext_filter - ¤ÎÀ¸À®¤¹¤ë¥ǥХå°¥á¥å»¡¼¥¸¤Υì¥٥ë¤òÀßÄê¤Ǥ­¤ޤ¹¡£ - ¥ǥե©¥ë¥ȤǤϡ¢¥ǥХå°¥á¥å»¡¼¥¸¤ÏÀ¸À®¤µ¤ì¤ޤ»¤ó¡£ - ¤³¤ì¤Ï DebugLevel=0 ¤ÈÀßÄꤹ¤ë¤ΤÈƱ¤¸¤Ǥ¹¡£ - ¿ô»ú¤¬Â礭¤¯¤ʤì¤Фʤë¤ۤɡ¢¤è¤ê¿¤¯¤ΥǥХå°¥á¥å»¡¼¥¸¤¬ - À¸À®¤µ¤졢¥µ¡¼¥ФÎÀ­ǽ¤ÏÍî¤Á¤ޤ¹¡£¿ôÃͤμºݤΰỌ̃¤Ï - mod_ext_filter.c ¤ÎÀèƬ¶᤯¤Î DBGLVL_ Äê¿ô¤Î - ÄêµÁ¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ޤ¹¡£ - -

    Ãí: ¥ǥХå°¥á¥å»¡¼¥¸¤ò Apache ¤Υ¨¥顼¥í¥°¤Ë - Êݸ¤¹¤ë¤褦¤ˤ¹¤뤿¤á¤ˤϡ¢core ¤Υǥ£¥쥯¥ƥ£¥Ö - LogLevel - ¤ò»Ȥ¦ɬÍפ¬¤¢¤ê¤ޤ¹¡£

    -
    - -
    LogStderr | NoLogStderr
    - -
    LogStderr ¥­¡¼¥¥ɤϳ°Éô¥ե£¥륿¥ץí¥°¥é¥à¤ˤè¤ê - ɸ½२¥顼 (ÌõÃí: stderr) ¤˽񤫤줿¥á¥å»¡¼¥¸¤ò - Apache ¤Υ¨¥顼¥í¥°¤ËÊݸ¤¹¤ë¤褦¤ˤ·¤ޤ¹¡£NoLogStderr ¤Ï - µդËÊݸ¤·¤ʤ¤¤褦¤ˤ·¤ޤ¹¡£
    -
    - -

    Îã

    - ExtFilterOptions LogStderr DebugLevel=0 -

    - -

    ¤³¤ÎÎã¤Ǥϡ¢¥ե£¥륿¤Îɸ½à½ÐÎϤ˽񤫤줿¥á¥å»¡¼¥¸¤Ï - Apache ¤Υ¨¥顼¥í¥°¤ËÊݸ¤µ¤ì¤ޤ¹¡£mod_ext_filter ¤«¤é¤Ï - ¥ǥХå°¥á¥å»¡¼¥¸¤ÏÀ¸À®¤µ¤ì¤ޤ»¤ó¡£

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_ext_filter.html.ja.utf8 b/docs/manual/mod/mod_ext_filter.html.ja.utf8 new file mode 100644 index 00000000000..5342641421b --- /dev/null +++ b/docs/manual/mod/mod_ext_filter.html.ja.utf8 @@ -0,0 +1,399 @@ + + + + + +mod_ext_filter - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_ext_filter

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:レスポンスのボディをクライアントに送る前に外部プログラムで処理する
    ステータス:Extension
    モジュール識別子:ext_filter_module
    ソースファイル:mod_ext_filter.c
    +

    概要

    + +

    mod_ext_filter では フィルタ + の慣れ親しんだ単純なプログラミングモデルが提供されます。このモジュールを + 使えば、標準入力から読み込んで、標準出力に書き出すプログラム + (すなわち Unix 形式のフィルタコマンド) を Apache のフィルタにすることが + できます。このフィルタの機構は、Apache API 向けに書かれた Apache + サーバプロセス内で実行される専用のフィルタよりもずっと遅いですが、 + 以下のような利点もあります。

    + +
      +
    • ずっとシンプルなプログラミングモデル
    • + +
    • プログラムが標準入力から読んで標準出力に書くものである限り、 + どんなプログラム言語やスクリプト言語でも使うことができる
    • + +
    • 既存のプログラムを変更することなく Apache のフィルタとして + 使うことができる
    • +
    + +

    性能の問題により実運用に適さないとしても、フィルタのプロトタイプ用の + 環境としては mod_ext_filter は使えます。

    + +
    +

    トピック

    +

    ディレクティブ

    + +

    参照

    +
    +
    top
    +
    +

    例

    + +

    他のタイプのレスポンスから HTML を生成する

    +

    + # mod_ext_filter directive to define a filter
    + # to HTML-ize text/c files using the external
    + # program /usr/bin/enscript, with the type of
    + # the result set to text/html
    + ExtFilterDefine c-to-html mode=output \
    + + intype=text/c outtype=text/html \
    + cmd="/usr/bin/enscript --color -W html -Ec -o - -"
    +
    +
    + <Directory "/export/home/trawick/apacheinst/htdocs/c">
    + + # core directive to cause the new filter to
    + # be run on output
    + SetOutputFilter c-to-html
    +
    + # mod_mime directive to set the type of .c
    + # files to text/c
    + AddType text/c .c
    +
    + # mod_ext_filter directive to set the debug
    + # level just high enough to see a log message
    + # per request showing the configuration in force
    + ExtFilterOptions DebugLevel=1
    +
    + </Directory> +

    + + +

    コンテントエンコーディングのフィルタを実装する

    +

    注: この gzip の例はデモ用です。実用的な実装は + mod_deflate を参照してください。

    + +

    + # mod_ext_filter directive to define the external filter
    + ExtFilterDefine gzip mode=output cmd=/bin/gzip
    +
    + <Location /gzipped>
    + + # core directive to cause the gzip filter to be
    + # run on output
    + SetOutputFilter gzip
    +
    + # mod_header directive to add
    + # "Content-Encoding: gzip" header field
    + Header set Content-Encoding gzip
    +
    + </Location> +

    + + +

    サーバを遅くする

    +

    + # mod_ext_filter directive to define a filter
    + # which runs everything through cat; cat doesn't
    + # modify anything; it just introduces extra pathlength
    + # and consumes more resources
    + ExtFilterDefine slowdown mode=output cmd=/bin/cat \
    + + preservescontentlength
    +
    +
    + <Location />
    + + # core directive to cause the slowdown filter to
    + # be run several times on output
    + #
    + SetOutputFilter slowdown;slowdown;slowdown
    +
    + </Location> +

    + + +

    sed を使って応答中のテキストを置換する

    +

    + # mod_ext_filter directive to define a filter which
    + # replaces text in the response
    + #
    + ExtFilterDefine fixtext mode=output intype=text/html \
    + + cmd="/bin/sed s/verdana/arial/g"
    +
    +
    + <Location />
    + + # core directive to cause the fixtext filter to
    + # be run on output
    + SetOutputFilter fixtext
    +
    + </Location> +

    + + +

    別のフィルタのトレース

    +

    + # Trace the data read and written by mod_deflate
    + # for a particular client (IP 192.168.1.31)
    + # experiencing compression problems.
    + # This filter will trace what goes into mod_deflate.
    + ExtFilterDefine tracebefore \
    + + cmd="/bin/tracefilter.pl /tmp/tracebefore" \
    + EnableEnv=trace_this_client
    +
    +
    + # This filter will trace what goes after mod_deflate.
    + # Note that without the ftype parameter, the default
    + # filter type of AP_FTYPE_RESOURCE would cause the
    + # filter to be placed *before* mod_deflate in the filter
    + # chain. Giving it a numeric value slightly higher than
    + # AP_FTYPE_CONTENT_SET will ensure that it is placed
    + # after mod_deflate.
    + ExtFilterDefine traceafter \
    + + cmd="/bin/tracefilter.pl /tmp/traceafter" \
    + EnableEnv=trace_this_client ftype=21
    +
    +
    + <Directory /usr/local/docs>
    + + SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
    + SetOutputFilter tracebefore;deflate;traceafter
    +
    + </Directory> +

    + +

    データをトレースするフィルタ:

    + #!/usr/local/bin/perl -w
    + use strict;
    +
    + open(SAVE, ">$ARGV[0]")
    + + or die "can't open $ARGV[0]: $?";
    +
    +
    + while (<STDIN>) {
    + + print SAVE $_;
    + print $_;
    +
    + }
    +
    + close(SAVE); +

    + +
    +
    top
    +

    ExtFilterDefine ディレクティブ

    + + + + + + +
    説明:外部フィルタを定義
    構文:ExtFilterDefine filtername parameters
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_ext_filter
    +

    ExtFilterDefine は、実行するプログラムや + 引数など、外部フィルタの特性を定義します。

    + +

    filtername は定義するフィルタの名前を指定します。 + この名前は後で SetOutputFilter + ディレクティブで指定できます。名前は登録されるすべてのフィルタで + 一意でなくてはなりません。現時点では、フィルタの登録 API からは + エラーは報告されません。ですから、重複する名前を使ってしまったときでも + ユーザにはそのことは報告されません。

    + +

    続くパラメータの順番は関係無く、それらは実行する外部コマンドと、 + 他の特性を定義します。cmd= だけが必須のパラメータです。 + 指定可能なパラメータは:

    + +
    +
    cmd=cmdline
    + +
    cmd= キーワードは実行する外部コマンドを指定します。 + プログラム名の後に引数がある場合は、コマンド行は引用符で囲む + 必要があります (例えば、cmd="/bin/mypgm + arg1 arg2" のように)。プログラムは + シェル経由でなく、直接実行されますので、通常のシェル用の + エスケープは必要ありません。プログラムの引数は空白で区切られます。 + プログラムの引数の一部となる必要のある空白はバックスペースでエスケープ + できます。引数の一部になるバックスラッシュはバックスラッシュで + エスケープする必要があります。標準の CGI 環境変数に加えて、 + 環境変数 DOCUMENT_URI, DOCUMENT_PATH_INFO, and + QUERY_STRING_UNESCAPED がプログラムのために設定されます。
    + +
    mode=mode
    + +
    応答を処理するフィルタには mode=output (デフォルト) + を使います。リクエストを処理するフィルタには mode=input + を使います。mode=input は Apache 2.1 以降で使用できます。
    + +
    intype=imt
    + +
    このパラメータはフィルタされるべきドキュメントの + インターネットメディアタイプ (すなわち、MIME タイプ) を + 指定します。デフォルトではすべてのドキュメントがフィルタされます。 + intype= が指定されていれば、フィルタは指定されていない + ドキュメントには適用されなくなります。
    + +
    outtype=imt
    + +
    このパラメータはフィルタされたドキュメントの + インターネットメディアタイプ (すなわち、MIME タイプ) を + 指定します。フィルタ動作にともなってインターネットメディアタイプが + 変わる場合に有用です。デフォルトではインターネットメディアタイプは + 変更されません。
    + +
    PreservesContentLength
    + +
    PreservesContentLength キーワードはフィルタが + content length (訳注: コンテントの長さ) + を変更しないということを指定します。ほとんどのフィルタは + content length を変更するため、これはデフォルトではありません。 + フィルタが長さを変えないときは、このキーワードを指定すると + よいでしょう。
    + +
    ftype=filtertype
    + +
    このパラメータはフィルタが登録されるべきフィルタタイプの + 数値を指定します。ほとんどの場合は、デフォルトの AP_FTYPE_RESOURCE で + 十分です。フィルタがフィルタチェーンの別の場所で動作する必要がある + 場合は、このパラメータを指定する必要があります。指定可能な値は + util_filter.h の AP_FTYPE_foo 定義を参照してください。
    + +
    disableenv=env
    + +
    設定されていた場合にフィルタを無効にするための環境変数を + 指定します。
    + +
    enableenv=env
    + +
    このパラメータはフィルタが有効になるために設定されていなければ + ならない環境変数を指定します。
    +
    + +
    +
    top
    +

    ExtFilterOptions ディレクティブ

    + + + + + + + +
    説明:mod_ext_filter のオプションを設定
    構文:ExtFilterOptions option [option] ...
    デフォルト:ExtFilterOptions DebugLevel=0 NoLogStderr
    コンテキスト:ディレクトリ
    ステータス:Extension
    モジュール:mod_ext_filter
    +

    ExtFilterOptions ディレクティブは + mod_ext_filter の特別な処理用のオプションを + 指定します。Option には以下のどれかを指定します。

    + +
    +
    DebugLevel=n
    + +
    + DebugLevel で mod_ext_filter + の生成するデバッグメッセージのレベルを設定できます。 + デフォルトでは、デバッグメッセージは生成されません。 + これは DebugLevel=0 と設定するのと同じです。 + 数字が大きくなればなるほど、より多くのデバッグメッセージが + 生成され、サーバの性能は落ちます。数値の実際の意味は + mod_ext_filter.c の先頭近くの DBGLVL_ 定数の + 定義で説明されています。 + +

    注: デバッグメッセージを Apache のエラーログに + 保存するようにするためには、core のディレクティブ + LogLevel + を使う必要があります。

    +
    + +
    LogStderr | NoLogStderr
    + +
    LogStderr キーワードは外部フィルタプログラムにより + 標準エラー (訳注: stderr) に書かれたメッセージを + Apache のエラーログに保存するようにします。NoLogStderr は + 逆に保存しないようにします。
    +
    + +

    例

    + ExtFilterOptions LogStderr DebugLevel=0 +

    + +

    この例では、フィルタの標準出力に書かれたメッセージは + Apache のエラーログに保存されます。mod_ext_filter からは + デバッグメッセージは生成されません。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_ext_filter.html.ko.euc-kr b/docs/manual/mod/mod_ext_filter.html.ko.euc-kr index 2dbc868a1a2..26d1a5e8df3 100644 --- a/docs/manual/mod/mod_ext_filter.html.ko.euc-kr +++ b/docs/manual/mod/mod_ext_filter.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_ext_filter - Apache HTTP Server +mod_ext_filter - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_ext_filter

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_ext_filter

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | @@ -56,18 +63,18 @@ ¼ö ÀִÙ.

    -

    Áö½þîµé

    +

    ÁÖÁ¦

    +

    Áö½þîµé

    -

    ÁÖÁ¦

    -

    Âü°í

    +

    Âü°í

    +
    top

    ¿¹Á¦

    @@ -348,7 +355,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_ext_filter.xml b/docs/manual/mod/mod_ext_filter.xml index 61a62d803d8..70edab635ce 100644 --- a/docs/manual/mod/mod_ext_filter.xml +++ b/docs/manual/mod/mod_ext_filter.xml @@ -4,12 +4,12 @@ + + - + mod_ext_filter /mod/ .. en - ja + ja ko diff --git a/docs/manual/mod/mod_file_cache.html b/docs/manual/mod/mod_file_cache.html index 1fc51cd79cb..e9da936ddcd 100644 --- a/docs/manual/mod/mod_file_cache.html +++ b/docs/manual/mod/mod_file_cache.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_file_cache.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_file_cache.html.en b/docs/manual/mod/mod_file_cache.html.en index 2091d9015bd..eea30e10638 100644 --- a/docs/manual/mod/mod_file_cache.html.en +++ b/docs/manual/mod/mod_file_cache.html.en @@ -1,33 +1,40 @@ - -mod_file_cache - Apache HTTP Server +mod_file_cache - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_file_cache

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_file_cache

    Available Languages:  en  |  ko 

    - -
    Description:Caches a static list of files in memory
    Status:Experimental
    Module Identifier:file_cache_module
    Source File:mod_file_cache.c
    +Module Identifier:file_cache_module +Source File:mod_file_cache.c

    Summary

    @@ -56,15 +63,15 @@

    This module is an extension of and borrows heavily from the mod_mmap_static module in Apache 1.3.

    -

    Directives

    +

    Topics

    +

    Directives

    -

    Topics

    -
    +
    top

    Using mod_file_cache

    @@ -72,9 +79,7 @@

    mod_file_cache caches a list of statically configured files via MMapFile or CacheFile directives in the main server configuration.

    -

    Not all platforms support both directives. For example, Apache - on Windows does not currently support the MMapStatic directive, while - other platforms, like AIX, support both. You will receive an error +

    Not all platforms support both directives. You will receive an error message in the server error log if you attempt to use an unsupported directive. If given an unsupported directive, the server will start but the file will not be cached. On platforms @@ -156,7 +161,7 @@ places these handles into the cache at server startup time. Handles to cached files are automatically closed on a server shutdown. When the files have changed on the filesystem, the - server should be restarted to to re-cache them.

    + server should be restarted to re-cache them.

    Be careful with the file-path arguments: They have to literally match the filesystem path Apache's URL-to-filename @@ -206,7 +211,28 @@

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_file_cache.html.ko.euc-kr b/docs/manual/mod/mod_file_cache.html.ko.euc-kr index 453bbe580da..8e6c2df1a23 100644 --- a/docs/manual/mod/mod_file_cache.html.ko.euc-kr +++ b/docs/manual/mod/mod_file_cache.html.ko.euc-kr @@ -1,29 +1,38 @@ - -mod_file_cache - Apache HTTP Server +mod_file_cache - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_file_cache

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_file_cache

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -55,15 +64,15 @@

    ÀÌ ¸ðµâÀº ¾ÆÆÄġ 1.3¿¡ Àִ mod_mmap_static ¸ðµâÀÇ ±â´ÉÀ» ȮÀåÇÑ °á°ú´Ù.

    -

    Áö½þîµé

    + +
    top

    mod_file_cache »ç¿ëÇϱâ

    @@ -194,7 +203,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_file_cache.xml b/docs/manual/mod/mod_file_cache.xml index 03d693a467f..78609e65c52 100644 --- a/docs/manual/mod/mod_file_cache.xml +++ b/docs/manual/mod/mod_file_cache.xml @@ -4,12 +4,12 @@ + - + mod_file_cache /mod/ .. en - ko + ko diff --git a/docs/manual/mod/mod_filter.html b/docs/manual/mod/mod_filter.html index 522140ca97b..19725c63c6c 100644 --- a/docs/manual/mod/mod_filter.html +++ b/docs/manual/mod/mod_filter.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_filter.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_filter.html.en b/docs/manual/mod/mod_filter.html.en index c4a1e689bbf..35af8809d17 100644 --- a/docs/manual/mod/mod_filter.html.en +++ b/docs/manual/mod/mod_filter.html.en @@ -1,33 +1,40 @@ - -mod_filter - Apache HTTP Server +mod_filter - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_filter

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_filter

    Available Languages:  en 

    ¼³¸í:¸޸𸮿¡ Á¤Àû ÆÄÀϵéÀ» ij½¬
    »óÅÂ:Experimental
    ¸ðµâ¸í:file_cache_module
    - - - -
    Description:Context-sensitive smart filter configuration module
    Status:Experimental
    Module Identifier:filter_module
    Source File:mod_filter.c
    Compatibility:Version 2.1 and higher
    +Status:Base +Module Identifier:filter_module +Source File:mod_filter.c +Compatibility:Version 2.1 and later

    Summary

    This module enables smart, context-sensitive configuration of @@ -42,7 +49,15 @@ to mod_filter; no change to existing filter modules is required (although it may be possible to simplify them).

    -
    top

    Smart Filtering

    @@ -139,6 +147,15 @@
    top
    +

    Filtering and Response Status

    +

    mod_filter normally only runs filters on responses with + HTTP status 200 (OK). If you want to filter documents with + other response statuses, you can set the filter-errordocs + environment variable, and it will work on all responses + regardless of status. To refine this further, you can use + expression conditions with FilterProvider.

    +
    top
    +

    Examples

    Server side Includes (SSI)
    @@ -219,12 +236,20 @@ details of filter implementation, reducing the complexity required of content filter modules. This is work-in-progress; the FilterProtocol implements - some of this functionality, but there are no API calls yet.

    + some of this functionality for back-compatibility with Apache 2.0 + modules. For httpd 2.1 and later, the + ap_register_output_filter_protocol and + ap_filter_protocol API enables filter modules to + declare their own behaviour.

    At the same time, mod_filter should not interfere with a filter that wants to handle all aspects of the protocol. By default (i.e. in the absence of any FilterProtocol directives), mod_filter will leave the headers untouched.

    + +

    At the time of writing, this feature is largely untested, + as modules in common use are designed to work with 2.0. + Modules using it should test it carefully.

    top

    FilterChain Directive

    @@ -233,7 +258,7 @@ Syntax:FilterChain [+=-@!]filter-name ... Context:server config, virtual host, directory, .htaccess Override:Options -Status:Experimental +Status:Base Module:mod_filter

    This configures an actual filter chain, from declared filters. @@ -269,7 +294,7 @@ Syntax:FilterDeclare filter-name [type] Context:server config, virtual host, directory, .htaccess Override:Options -Status:Experimental +Status:Base Module:mod_filter

    This directive declares an output filter together with a @@ -294,7 +319,7 @@ proto-flags Context:server config, virtual host, directory, .htaccess Override:Options -Status:Experimental +Status:Base Module:mod_filter

    This directs mod_filter to deal with ensuring the @@ -343,7 +368,7 @@ [req|resp|env]=dispatch match Context:server config, virtual host, directory, .htaccess Override:Options -Status:Experimental +Status:Base Module:mod_filter

    This directive registers a provider for the smart filter. @@ -368,9 +393,9 @@

    The match argument specifies a match that will be applied to the filter's dispatch criterion. The match may be - a string match (exact match or substring), a regexp, an integer (greater, - lessthan or equals), or unconditional. The first characters of the - match argument determines this:

    + a string match (exact match or substring), a regex, an integer (greater, lessthan or equals), or + unconditional. The first characters of the match argument + determines this:

    First, if the first character is an exclamation mark (!), this reverses the rule, so the provider will be used @@ -382,7 +407,7 @@ - + @@ -399,7 +424,7 @@ mod_filter - +
    CharacterDescription
    (none)exact match
    $substring match
    /regexp match (delimited by a second /)
    /regex match (delimited by a second /)
    =integer equality
    <integer less-than
    <=integer less-than or equal
    Syntax:FilterTrace filter-name level
    Context:server config, virtual host, directory
    Status:Experimental
    Status:Base
    Module:mod_filter

    This directive generates debug information from @@ -429,7 +454,28 @@

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_filter.xml b/docs/manual/mod/mod_filter.xml index 8e2231ee06f..7060acb0873 100644 --- a/docs/manual/mod/mod_filter.xml +++ b/docs/manual/mod/mod_filter.xml @@ -4,12 +4,12 @@ - + mod_filter /mod/ .. diff --git a/docs/manual/mod/mod_headers.html b/docs/manual/mod/mod_headers.html index 3729f8da6c8..3deae9de738 100644 --- a/docs/manual/mod/mod_headers.html +++ b/docs/manual/mod/mod_headers.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_headers.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_headers.html.ja.euc-jp +URI: mod_headers.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_headers.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_headers.html.en b/docs/manual/mod/mod_headers.html.en index d414304c4d5..3e3e0db2f1f 100644 --- a/docs/manual/mod/mod_headers.html.en +++ b/docs/manual/mod/mod_headers.html.en @@ -1,25 +1,32 @@ - -mod_headers - Apache HTTP Server +mod_headers - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_headers

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_headers

    Available Languages:  en  |  ja  | @@ -28,27 +35,25 @@ - - -
    Description:Customization of HTTP request and response headers
    Status:Extension
    Module Identifier:headers_module
    Source File:mod_headers.c
    Compatibility:RequestHeader -is available only in Apache 2.0
    +Module Identifier:headers_module +Source File:mod_headers.c

    Summary

    This module provides directives to control and modify HTTP request and response headers. Headers can be merged, replaced or removed.

    -
    top

    Order of Processing

    @@ -59,7 +64,7 @@ is available only in Apache 2.0

    Order of processing is important and is affected both by the order in the configuration file and by placement in configuration sections. These - two headers have a different effect if reversed:

    + two directives have a different effect if reversed:

    RequestHeader append MirrorID "mirror 12"
    @@ -72,8 +77,8 @@ is available only in Apache 2.0

    Early and Late Processing

    mod_headers can be applied either early or late - in the request. The normal mode is late, when Request Headers are - set immediately before running the content generator and Response + in the request. The normal mode is late, when Request Headers are + set immediately before running the content generator and Response Headers just as the response is sent down the wire. Always use Late mode in an operational server.

    @@ -111,7 +116,7 @@ is available only in Apache 2.0 bottlenecks between the client and the server.

    - Header add MyHeader "%D %t" + Header set MyHeader "%D %t"

    results in this header being added to the response:

    @@ -125,7 +130,7 @@ is available only in Apache 2.0 Say hello to Joe

    - Header add MyHeader "Hello Joe. It took %D microseconds \
    + Header set MyHeader "Hello Joe. It took %D microseconds \
    for Apache to serve this request."

    @@ -139,22 +144,61 @@ is available only in Apache 2.0
  • Conditionally send MyHeader on the response if and - only if header "MyRequestHeader" is present on the request. This - is useful for constructing headers in response to some client + only if header MyRequestHeader is present on the request. + This is useful for constructing headers in response to some client stimulus. Note that this example requires the services of the mod_setenvif module.

    - SetEnvIf MyRequestHeader value HAVE_MyRequestHeader
    - Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
    -

    + SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
    + Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader +

  • + +

    If the header MyRequestHeader: myvalue is present on + the HTTP request, the response will contain the following header:

    + +

    + MyHeader: D=3775428 t=991424704447256 mytext +

    + + +
  • + Enable DAV to work with Apache running HTTP through SSL hardware + (problem + description) by replacing https: with + http: in the Destination header: + +

    + RequestHeader edit Destination ^https: http: early +

    +
  • + +
  • + Set the same header value under multiple nonexclusive conditions, + but do not duplicate the value in the final header. + If all of the following conditions applied to a request (i.e., + if the CGI, NO_CACHE and + NO_STORE environment variables all existed for the + request): + +

    + Header merge Cache-Control no-cache env=CGI
    + Header merge Cache-Control no-cache env=NO_CACHE
    + Header merge Cache-Control no-store env=NO_STORE +

    + +

    then the response would contain the following header:

    + +

    + Cache-Control: no-cache, no-store +

    -

    If the header MyRequestHeader: value is present on - the HTTP request, the response will contain the following header:

    +

    If append was used instead of merge, + then the response would contain the following header:

    -

    - MyHeader: D=3775428 t=991424704447256 mytext -

    +

    + Cache-Control: no-cache, no-cache, no-store +

  • @@ -162,27 +206,52 @@ is available only in Apache 2.0

    Header Directive

    - + +
    Description:Configure HTTP response headers
    Syntax:Header [condition] set|append|add|unset|echo -header [value] [early|env=[!]variable]
    Syntax:Header [condition] set|append|merge|add|unset|echo|edit +header [value] [replacement] +[early|env=[!]variable]
    Context:server config, virtual host, directory, .htaccess
    Override:FileInfo
    Status:Extension
    Module:mod_headers
    Compatibility:The merge argument is available in version +2.2.9 and later. The edit argument is available in version +2.2.4 and later.

    This directive can replace, merge or remove HTTP response headers. The header is modified just after the content handler and output filters are run, allowing outgoing headers to be modified.

    -

    The optional condition can be either onsuccess - or always. It determines, which internal header table should be - operated on. onsuccess stands for 2xx - status codes and always for all status codes (including - 2xx). Especially if you want to unset headers - set by certain modules, you should try out, which table is affected.

    - -

    The action it performs is determined by the second - argument. This can be one of the following values:

    +

    The optional condition argument determines which internal + table of responses headers this directive will operate against. Other + components of the server may have stored their response headers in either + the table that corresponds to onsuccess or the table that + corresponds to always. "Always" in this context refers to + whether headers you add will be sent during both a successful and unsucessful + response, but if your action is a function of an existing header, you + will have to read on for further complications.

    + +

    The default value of onsuccess may need to be changed to + always under the circumstances similar to those listed below. + Note also that repeating this directive with both conditions makes sense in + some scenarios because always is not a superset of + onsuccess with respect to existing headers:

    + +
      +
    • You're adding a header to a non-success (non-2xx) response, such + as a redirect, in which case only the table corresponding to + always is used in the ultimate response.
    • +
    • You're modifying or removing a header generated by a CGI script, + in which case the CGI scripts are in the table corresponding to + always and not in the default table.
    • +
    • You're modifying or removing a header generated by some piece of + the server but that header is not being found by the default + onsuccess condition.
    • +
    + +

    The action it performs is determined by the first + argument (second argument if a condition is specified). + This can be one of the following values:

    set
    @@ -195,12 +264,23 @@ is available only in Apache 2.0 header it is separated from the existing header with a comma. This is the HTTP standard way of giving a header multiple values. +
    merge
    +
    The response header is appended to any existing header of + the same name, unless the value to be appended already appears in the + header's comma-delimited list of values. When a new value is merged onto + an existing header it is separated from the existing header with a comma. + This is the HTTP standard way of giving a header multiple values. + Values are compared in a case sensitive manner, and after + all format specifiers have been processed. Values in double quotes + are considered different from otherwise identical unquoted values. + Available in version 2.2.9 and later.
    +
    add
    The response header is added to the existing set of headers, even if this header already exists. This can result in two (or more) headers having the same name. This can lead to - unforeseen consequences, and in general "append" should be - used instead.
    + unforeseen consequences, and in general set, + append or merge should be used instead.
    unset
    The response header of this name is removed, if it exists. @@ -209,19 +289,32 @@ is available only in Apache 2.0
    echo
    Request headers with this name are echoed back in the - response headers. header may be a regular expression. + response headers. header may be a + regular expression. value must be omitted.
    + +
    edit
    +
    If this response header exists, its value is transformed + according to a regular expression + search-and-replace. The value argument is + a regular expression, and + the replacement is a replacement string, which may + contain backreferences. Available in version 2.2.4 and + later.

    This argument is followed by a header name, which can include the final colon, but it is not required. Case is - ignored for set, append, add - and unset. The header name for echo - is case sensitive and may be a regular expression.

    - -

    For add, append and set a - value is specified as the third argument. If value - contains spaces, it should be surrounded by doublequotes. + ignored for set, append, merge, + add, unset and edit. + The header name for echo + is case sensitive and may be a regular + expression.

    + +

    For set, append, merge and + add a value is specified as the next argument. + If value + contains spaces, it should be surrounded by double quotes. value may be a character string, a string containing format specifiers or a combination of both. The following format specifiers are supported in value:

    @@ -236,7 +329,8 @@ is available only in Apache 2.0 %D The time from when the request was received to the time the headers are sent on the wire. This is a measure of the duration - of the request. The value is preceded by D=. + of the request. The value is preceded by D=. + The value is measured in microseconds. %{FOOBAR}e The contents of the environment variable FOOBAR. @@ -252,7 +346,11 @@ is available only in Apache 2.0 +StdEnvVars. If SSLOptions +StdEnvVars must be enabled anyway for some other reason, %e will be more efficient than %s.

    -
    +
    + +

    For edit there is both a value argument + which is a regular expression, + and an additional replacement string.

    The Header directive may be followed by an an additional argument, which may be used to specify conditions under @@ -267,23 +365,27 @@ is available only in Apache 2.0

    Except in early mode, the Header directives are processed just - before the response is sent to the network. These means that it is - possible to set and/or override most headers, except for those headers - added by the header filter.

    + before the response is sent to the network. This means that it is + possible to set and/or override most headers, except for some headers + added by the HTTP header filter. Prior to 2.2.12, it was not possible + to change the Content-Type header with this directive.

    top

    RequestHeader Directive

    - + +
    Description:Configure HTTP request headers
    Syntax:RequestHeader set|append|add|unset header -[value] [early|env=[!]variable]
    Syntax:RequestHeader set|append|merge|add|unset|edit header +[value] [replacement] [early|env=[!]variable]
    Context:server config, virtual host, directory, .htaccess
    Override:FileInfo
    Status:Extension
    Module:mod_headers
    Compatibility:The merge argument is available in version +2.2.9 and later. The edit argument is available in version +2.2.4 and later.
    -

    This directive can replace, merge or remove HTTP request +

    This directive can replace, merge, change or remove HTTP request headers. The header is modified just before the content handler is run, allowing incoming headers to be modified. The action it performs is determined by the first argument. This can be one @@ -301,29 +403,52 @@ is available only in Apache 2.0 is the HTTP standard way of giving a header multiple values. +

    merge
    +
    The request header is appended to any existing header of + the same name, unless the value to be appended already appears in the + existing header's comma-delimited list of values. When a new value is + merged onto an existing header it is separated from the existing header + with a comma. This is the HTTP standard way of giving a header multiple + values. Values are compared in a case sensitive manner, and after + all format specifiers have been processed. Values in double quotes + are considered different from otherwise identical unquoted values. + Available in version 2.2.9 and later.
    +
    add
    The request header is added to the existing set of headers, even if this header already exists. This can result in two (or more) headers having the same name. This can lead to - unforeseen consequences, and in general append should be - used instead.
    + unforeseen consequences, and in general set, + append or merge should be used instead.
    unset
    The request header of this name is removed, if it exists. If there are multiple headers of the same name, all will be removed. value must be omitted.
    + +
    edit
    +
    If this request header exists, its value is transformed + according to a regular expression + search-and-replace. The value argument is + a regular expression, and + the replacement is a replacement string, which may + contain backreferences. Available in version 2.2.4 and + later.

    This argument is followed by a header name, which can include the final colon, but it is not required. Case is - ignored. For add, append and - set a value is given as the third argument. If + ignored. For set, append, merge and + add a value is given as the third argument. If a value contains spaces, it should be surrounded by double - quotes. For unset, no value should be given. + quotes. For unset, no value should be given. value may be a character string, a string containing format specifiers or a combination of both. The supported format specifiers are the same as for the Header, - please have a look there for details.

    + please have a look there for details. For edit both + a value and a replacement are required, and are + a regular expression and a + replacement string respectively.

    The RequestHeader directive may be followed by an additional argument, which may be used to specify conditions under @@ -348,7 +473,28 @@ is available only in Apache 2.0

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_headers.html.ja.euc-jp b/docs/manual/mod/mod_headers.html.ja.euc-jp deleted file mode 100644 index 59d6c7d9439..00000000000 --- a/docs/manual/mod/mod_headers.html.ja.euc-jp +++ /dev/null @@ -1,347 +0,0 @@ - - - -mod_headers - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_headers

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - - -
    ÀâÌÀ:HTTP ¥ꥯ¥¨¥¹¥ȤΥإåÀ¤ȱþÅú¤ΥإåÀ¤Υ«¥¹¥¿¥ޥ¤¥º
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:headers_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_headers.c
    ¸ߴ¹À­:RequestHeader -¤Ï Apache 2.0 °ʹߤΤߤǻÈÍѲÄǽ
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤Ï HTTP ¤Υꥯ¥¨¥¹¥ȥإåÀ¤ȱþÅú¥إåÀ¤òÀ©¸椷¡¢ - Êѹ¹¤¹¤뤿¤á¤Υǥ£¥쥯¥ƥ£¥֤òÄ󶡤·¤ޤ¹¡£¥إåÀ¤òÄɲä·¤¿¤ꡢ - Ã֤­´¹¤¨¤¿¤ꡢºï½ü¤·¤¿¤ꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    ¥ȥԥå¯

    -
    -
    top
    -
    -

    ½èÍý¤νçÈÖ

    - -

    mod_header ¤Υǥ£¥쥯¥ƥ£¥֤ϥµ¡¼¥ÐÀßÄê¤Τۤܤɤ³¤ˤǤâ - ½񤯤³¤Ȥ¬¤Ǥ­¡¢±ƶÁ¤¹¤ëÈϰϤòÀßÄêÍѥ»¥¯¥·¥ç¥ó¤ǰϤळ¤ȤǸÂÄꤹ¤ë - ¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ½èÍý¤νçÈ֤ϽÅÍפǡ¢ÀßÄê¥ե¡¥¤¥ëÃæ¤νçÈ֤ȡ¢ÀßÄêÍѥ»¥¯¥·¥ç¥óÆâ¤ΰÌÃ֤ȤÎξÊý¤Ë - ±ƶÁ¤µ¤ì¤ޤ¹¡£°ʲ¼¤ÎÆó¤ĤΥإåÀ¤ϽçÈ֤¬µդˤʤë¤È - °㤦·ë²̤ˤʤê¤ޤ¹:

    - -

    - RequestHeader append MirrorID "mirror 12"
    - RequestHeader unset MirrorID -

    - -

    ¤³¤νçÈ֤ξì¹ç¤ϡ¢MirrorID ¥إåÀ¤ÏÀßÄꤵ¤ì¤ޤ»¤ó¡£ - µդˤʤäƤ¤¤ë¤ȡ¢MirrorID ¥إåÀ¤Ï "mirror 12" ¤ËÀßÄꤵ¤ì¤ޤ¹¡£

    -
    top
    -
    -

    Áá´ü½èÍý¡¢¸å´ü½èÍý

    -

    mod_headers ¤Ǥϡ¢¥ꥯ¥¨¥¹¥ȤÎÁá´ü¤«¸å´ü¤«¤Î - ¤ɤÁ¤é¤ÇŬÍѤ¹¤뤫¤òÁª¤٤ޤ¹¡£Ä̾ï¤ϸå´ü¥⡼¥ɤǡ¢ - ¥³¥ó¥ƥó¥ÄÀ¸À®¤¬¼¹Ԥµ¤ì¤ëľÁ°¤˥ꥯ¥¨¥¹¥ȥإåÀ¤¬¥»¥åȤµ¤졢 - ¥쥹¥ݥ󥹤Ȥ·¤ÆÁ÷½Фµ¤ì¤ëľÁ°¤˥쥹¥ݥ󥹥إåÀ¤¬¥»¥åȤµ¤ì¤ޤ¹¡£ - ±¿ÍÑÃæ¤Υµ¡¼¥ФǤÏɬ¤º¸å´ü¥⡼¥ɤò»ȤäƤ¯¤À¤µ¤¤¡£

    - -

    Áá´ü¥⡼¥ɤϳ«ȯ¼Ըþ¤±¤Υƥ¹¥È/¥ǥХå°ÍѤËÀ߷פµ¤ì¤Ƥ¤¤ޤ¹¡£ - early ¥­¡¼¥¥ɻØÄꤵ¤줿¥ǥ£¥쥯¥ƥ£¥֤ˤè¤äơ¢ - ¥ꥯ¥¨¥¹¥ȽèÍý¤γ«»ÏÃÏÅÀ¤ˤʤê¤ޤ¹¡£ - ¤Ĥޤꡢ°ۤʤë¥ꥯ¥¨¥¹¥Ȥò»¤¿¤ê¥ƥ¹¥ȥ±¡¼¥¹¤򥻥åȥ¢¥åפ¹¤ë¤ΤË - ³èÍѤǤ­¤ë°ìÊý¤ǡ¢¥쥹¥ݥ󥹤òÀ¸À®¤¹¤ëÁ°¤Ë¾¤Υ⥸¥塼¥ë¤ˤè¤äÆ - ¥إåÀ¤¬½񤭴¹¤¨¤é¤ì¤Ƥ·¤ޤ¦¤«¤⤷¤ì¤ʤ¤¤Ȥ¤¤¦¤³¤Ȥò°Ọ̃¤·¤ޤ¹¡£

    - -

    early ¥ǥ£¥쥯¥ƥ£¥֤Ǥϥꥯ¥¨¥¹¥ȥѥ¹¤ÎÀßÄ꤬²ò·褵¤ì¤ëÁ°¤Ë - ½èÍý¤µ¤ì¤ë¤Τǡ¢¥ᥤ¥󥵡¼¥Ф«¥С¼¥Á¥ã¥ë¥ۥ¹¥ȥ³¥ó¥ƥ­¥¹¥ȤǤΤߡ¢ - Áá´ü¥إåÀ¤򥻥åȤǤ­¤ޤ¹¡£early ¥ǥ£¥쥯¥ƥ£¥֤ϥꥯ¥¨¥¹¥ȥѥ¹¤Ë - °Í¸¤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¤Τǡ¢<Directory> ¤ä - <Location> ¤Ȥ¤¤ä¿¥³¥ó¥ƥ­¥¹¥ÈÆâ¤ǤϻÈÍÑ - ¤Ǥ­¤ޤ»¤ó¡£

    -
    top
    -
    -

    Îã

    - -
      -
    1. ¥ꥯ¥¨¥¹¥ȥإåÀÃæ¤Î "TS" ¤ǻϤޤë¥ե£¡¼¥ë¥ɤ򤹤٤ƱþÅú¥إåÀ¤Ë - ¥³¥ԡ¼¤·¤ޤ¹: -

      - Header echo ^TS -

      -
    2. - -
    3. - ¥ꥯ¥¨¥¹¥Ȥò¼õ¤±Éդ±¤¿»þ¹ï¤ȥꥯ¥¨¥¹¥Ȥò½èÍý¤·¤¿»þ´֤òÆþ¤줿¥إåÀ¡¢ - MyHeader ¤ò±þÅú¤ËÄɲä·¤ޤ¹¡£¤³¤ΥإåÀ¤ϥ¯¥饤¥¢¥ó¥Ȥ¬ - ¥µ¡¼¥ФÎÉé²٤òľ´ÑŪ¤ËÃΤ뤿¤á¤䡢¥¯¥饤¥¢¥ó¥È-¥µ¡¼¥д֤Î - ¥ܥȥë¥ͥ寤òĴ¤٤뤿¤á¤˻Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - -

      - Header add MyHeader "%D %t" -

      - -

      ¾嵭¤ÎÀßÄê¤Ǥϡ¢°ʲ¼¤Τ褦¤ʥإåÀ¤¬±þÅú¤ËÄɲ䵤ì¤뤳¤Ȥˤʤê¤ޤ¹:

      - -

      - MyHeader: D=3775428 t=991424704447256 -

      -
    4. - -
    5. - Joe ¤ˤ¢¤¤¤µ¤Ĥ򤷤ޤ¹: - -

      - Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request." -

      - -

      °ʲ¼¤Τ褦¤ʥإåÀ¤¬±þÅú¤ËÄɲ䵤ì¤뤳¤Ȥˤʤê¤ޤ¹

      - -

      - MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request. -

      -
    6. - -
    7. ¥ꥯ¥¨¥¹¥ȤË "MyRequestHeader" ¤¬¤¢¤ë¤Ȥ­¤˸¤ê MyHeader ¤ò±þÅú¤Ë - Éդ±¤ޤ¹¡£¤³¤ì¤ϡ¢¥¯¥饤¥¢¥ó¥ȤÎÍ׵á¤˱þ¤¨¤ƥإåÀ¤òºîÀ®¤¹¤ë¤Ȥ­¤Ë - Ìò¤ËΩ¤Á¤ޤ¹¡£¤³¤ÎÎã¤ǤÏ mod_setenvif ¥⥸¥塼¥뤬ɬÍפʤ³¤ȤË - Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - -

      - SetEnvIf MyRequestHeader value HAVE_MyRequestHeader
      - Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader -

      - -

      ¤⤷ HTTP ¥ꥯ¥¨¥¹¥ȤË MyRequestHeader: value ¥إåÀ¤¬ - ¤¢¤ë¤ȡ¢±þÅú¤ˤϰʲ¼¤Τ褦¤ʥإåÀ¤¬Éղ䵤ì¤ޤ¹¡£

      - -

      - MyHeader: D=3775428 t=991424704447256 mytext -

      -
    8. -
    -
    -
    top
    -

    Header ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:HTTP ±þÅú¥إåÀ¤ÎÀßÄê
    ¹½ʸ:Header [condition] set|append|add|unset|echo -header [value] [early|env=[!]variable]
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_headers
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï HTTP ±þÅú¥إåÀ¤òÃִ¹¡¢Äɲᢺï½ü¤Ǥ­¤ޤ¹¡£ - ¥إåÀ¤ϥ³¥ó¥ƥó¥ȥϥó¥ɥé¤ä½ÐÎϥե£¥륿¤¬¼¹Ԥµ¤줿ľ¸å¤˼¹Ԥµ¤졢 - ½ФƹԤ¯¥إåÀ¤òÊѹ¹¤Ǥ­¤ë¤褦¤ˤʤäƤ¤¤ޤ¹¡£

    - -

    ¥ª¥ץ·¥ç¥ó¤Î condition ¤Ï onsuccess ¤« - always ¤ΤɤÁ¤餫¤ò»ØÄê¤Ǥ­¤ޤ¹¡£¤³¤ì¤ÏÆâÉô¥إåÀ¥ơ¼¥֥ë¤Τɤì¤ò - Áàº¤뤫¤ò·èÄꤷ¤ޤ¹¡£onsuccess ¤Ï 2xx - ¥¹¥ơ¼¥¿¥¹¥³¡¼¥ɤΡ¢always ¤ÏÁ´¤ƤΥ¹¥ơ¼¥¿¥¹¥³¡¼¥É - (2xx ¤ò´ޤà) ¤ΰỌ̃¤ˤʤê¤ޤ¹¡£ - ¤¢¤ë¥⥸¥塼¥ë¤ǥ»¥åȤµ¤ì¤ë¥إåÀ¤򥢥󥻥åȤ·¤¿¤¤¾ì¹ç¤ÏÆäˡ¢ - ¤ɤΥơ¼¥֥뤬±ƶÁ¤ò¼õ¤±¤뤫¤ò¼ºݤ˻¤¿¤ۤ¦¤¬¤褤¤Ǥ·¤礦¡£

    - -

    ¹Ԥʤ¦½èÍý¤ÏÆóÈÖÌܤΤΰú¿ô¤Ƿè¤ޤê¤ޤ¹¡£ - ¤³¤ΰú¿ô¤ˤϼ¡¤ÎÃͤò»ØÄê¤Ǥ­¤ޤ¹:

    - -
    -
    set
    -
    ±þÅú¥إåÀ¤òÀßÄꤷ¤ޤ¹¡£Ʊ¤¸̾Á°¤ΥإåÀ¤¬¸ºߤ¹¤ë¾ì¹ç¤Ϥ½¤ì¤ò - Ã֤­´¹¤¨¤ޤ¹¡£value ¤ˤϥե©¡¼¥ޥåÈʸ»úÎó¤ò - »ØÄꤹ¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£
    - -
    append
    -
    ±þÅú¥إåÀ¤ò´û¤Ë¸ºߤ¹¤ëƱ¤¸̾Á°¤ΥإåÀ¤ËÄɲä·¤ޤ¹¡£ - ¿·¤·¤¤Ãͤ¬´û¸¤ΥإåÀ¤ËÄɲ䵤ì¤ë¤Ȥ­¤ˤϡ¢´û¸¤ΥإåÀ¤Î - ¸å¤˥³¥ó¥ޤǶèÀڤé¤ì¤ÆÄɲ䵤ì¤ޤ¹¡£¤³¤ì¤ϥإåÀ¤Ëʣ¿ô¤ÎÃͤò - »ØÄꤹ¤ë¤Ȥ­¤Î HTTP ¤Îɸ½à¤ÎÊýˡ¤Ǥ¹¡£
    - -
    add
    -
    ¥إåÀ¤¬´û¤Ë¸ºߤ·¤Ƥ¤¤ë¤Ȥ­¤Ǥµ¤¨¤⡢±þÅú¥إåÀ¤ò - ´û¸¤ΥإåÀ¤ËÄɲä·¤ޤ¹¡£¤³¤ì¤ˤè¤ꡢÆó¤Ä (¤«¤½¤ì°ʾå) ¤Î - ¥إåÀ¤Î̾Á°¤¬Ʊ¤¸¤ˤʤ뤳¤Ȥ¬¤¢¤ê¤ޤ¹¡£¤½¤ηë²̡¢ÁÛÄê¤Ǥ­¤ʤ¤ - ¤³¤Ȥ¬µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¤Τǡ¢°ìÈÌŪ¤ˤÏ append ¤ÎÊý¤ò - »Ȥ¦Êý¤¬Îɤ¤¤Ǥ·¤礦¡£
    - -
    unset
    -
    ¤⤷»ØÄꤵ¤줿̾Á°¤αþÅú¥إåÀ¤¬¸ºߤ·¤Ƥ¤¤ì¤С¢ºï½ü¤µ¤ì¤ޤ¹¡£ - Ʊ¤¸̾Á°¤ΥإåÀ¤¬ʣ¿ô¤¢¤ë¤Ȥ­¤ϡ¢¤¹¤٤ƺï½ü¤µ¤ì¤ޤ¹¡£ - value ¤ò¤Ĥ±¤ƤϤ¤¤±¤ޤ»¤ó¡£
    - -
    echo
    -
    »ØÄꤵ¤줿¤â¤ΤÈƱ¤¸̾Á°¤Υꥯ¥¨¥¹¥ȥإåÀ¤ò±þÅú¥إåÀ¤Ç - ¤½¤ΤޤÞÊ֤·¤ޤ¹¡£header ¤ˤÏÀµµ¬ɽ¸½¤â»ØÄê¤Ǥ­¤ޤ¹¡£ - value ¤ò¤Ĥ±¤ƤϤ¤¤±¤ޤ»¤ó¡£
    -
    - -

    ¤³¤ΰú¿ô¤θå¤ˤϥإåÀ̾ (header) ¤¬³¤­¤ޤ¹¡£ - ¥إåÀ̾¤ˤϺǸå¤˥³¥í¥ó¤ò´ޤá¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¤¬¡¢̵¤¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£ - set, append, add, - unset ¤ǤÏÂçʸ»ú¾®ʸ»ú¤Ï - ¶èÊ̤µ¤ì¤ޤ»¤ó¡£echo ¤Î header ̾¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¡¢ - Àµµ¬ɽ¸½¤ò»ØÄꤹ¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    add, append, - set ¤ǤÏ value ¤򻰤ÄÌܤÎ - °ú¿ô¤Ȥ·¤ƻØÄꤷ¤ޤ¹¡£value ¤˶õÇ򤬤¢¤ë¾ì¹ç¤ÏÆó½ŰúÍÑÉä¤Ç - °ϤàɬÍפ¬¤¢¤ê¤ޤ¹¡£value ¤Ïʸ»ú¤Τߤ«¤é¤ʤëʸ»úÎó¡¢ - ¥ե©¡¼¥ޥåȻؼ¨»Ҥò´ޤàʸ»úÎ󡢤⤷¤¯¤ÏξÊý¤«¤é¤ʤëʸ»úÎó¤ò»ØÄê¤Ǥ­¤ޤ¹¡£ - value ¤ϰʲ¼¤Υե©¡¼¥ޥåȻؼ¨»Ҥ򥵥ݡ¼¥Ȥ·¤ޤ¹:

    - - - - - - - - - - - - -
    ¥ե©¡¼¥ޥåȲòÀâ
    %%¥ѡ¼¥»¥ó¥ȵ­¹æ
    %t¥ꥯ¥¨¥¹¥Ȥò¼õ¤±¼è¤ä¿»þ¹ï¤ò¡¢ - Universal Coordinated Time ¤ǤλϤޤê¤λþ¹ï (Jan. 1, 1970) ¤«¤é·вᤷ¤¿ - »þ´֤ò¥ޥ¤¥¯¥íÉäȤ·¤Ƹ½¤·¤¿¤â¤Ρ£Ãͤκǽé¤ˤÏ - t= ¤¬Éղ䵤ì¤ޤ¹¡£
    %D¥ꥯ¥¨¥¹¥Ȥò¼õ¤±¼è¤ä¿»þ¹ï¤ȡ¢¥إåÀ¤òÁ÷¤ê½Ф·¤¿ - »þ´֤Ȥκ¹¡£¤³¤ì¤ϡ¢¥ꥯ¥¨¥¹¥Ȥ¬¸ºߤ·¤Ƥ¤¤¿´ü´֤򸽤·¤ޤ¹¡£ - Ãͤκǽé¤ˤÏ D= ¤¬Éղ䵤ì¤ޤ¹¡£
    %{FOOBAR}e´Ķ­Êѿô - FOOBAR ¤ÎÃͤǤ¹¡£
    %{FOOBAR}smod_ssl ¤¬ͭ¸ú¤ʾì¹硢 - SSL ´Ķ­Êѿô FOOBAR - ¤ÎÆâÍÆ
    - -

    Ãí

    -

    %s ¥ե©¡¼¥ޥåȻØÄê»ҤÏ 2.1 °ʹߤǤΤßÍøÍѤǤ­¤ޤ¹¡£ - SSLOptions +StdEnvVars ¤òͭ¸ú¤ˤ¹¤뤳¤Ȥˤè¤륪¡¼¥С¼¥إåɤò - È򤱤뤿¤ᡢ%e ¤ÎÂå¤ï¤ê¤Ȥ·¤ƻȤ¨¤ޤ¹¡£ - ¾¤ÎÍýͳ¤ʤɤ¬¤¢¤äơ¢¤ɤ¦¤·¤Ƥâ SSLOptions +StdEnvVars - ¤òͭ¸ú¤ˤ·¤ʤ±¤ì¤Фʤé¤ʤ¤¾ì¹ç¤ϡ¢%e ¤Τۤ¦¤¬ - %s ¤è¤ê¤â½èÍý¸úΨ¤ÏÎɤ¤¤Ǥ¹¡£

    -
    - -

    Header ¥ǥ£¥쥯¥ƥ£¥֤ˤÏÄɲäΰú¿ô¤ò»ý¤¿¤»¤뤳¤Ȥ¬ - ¤Ǥ­¤ơ¢¤ɤ¦¤¤¤ä¿¥¢¥¯¥·¥ç¥󤬹Ԥï¤줿¤«¤ξò·ï¤ò»ØÄꤷ¤¿¤ꡢ - Áá´ü½èÍý ¤ò»ØÄꤹ¤ë early ¥­¡¼¥¥ɤò - »ØÄê¤Ǥ­¤ޤ¹¡£ - env=... °ú¿ô¤ǻØÄꤵ¤줿 ´Ķ­Êѿô ¤¬¸ºߤ¹¤ë (¤⤷¤¯¤Ï env=!... - ¤¬»ØÄꤵ¤ì¤Ƥ¤¤ƴĶ­Êѿô¤¬¸ºߤ·¤ʤ¤) ¾ì¹ç¤ϡ¢Header - ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄꤵ¤줿ưº¹Ԥʤï¤ì¤ޤ¹¡£¤½¤¦¤Ǥʤ¤¾ì¹ç¤ϡ¢ - ¥ǥ£¥쥯¥ƥ£¥֤Ϥ½¤Υꥯ¥¨¥¹¥Ȥˤϲ¿¤⤷¤ޤ»¤ó¡£

    - -

    Áá´ü½èÍý¥⡼¥ɤξì¹ç°ʳ°¤Ǥϡ¢ - Header - ¥ǥ£¥쥯¥ƥ£¥֤ϱþÅú¤¬¥ͥåȥ¥¯¤ËÁ÷¤é¤ì¤ëľÁ°¤Ë - ½èÍý¤µ¤ì¤ޤ¹¡£¤³¤ì¤ϡ¢¥إåÀ¥ե£¥륿¤ˤè¤êÄɲ䵤ì¤ë¥إåÀ¤ò - ½ü¤­¡¢¤ۤȤó¤ɤΥإåÀ¤òÀßÄꤷ¤¿¤ê¾å½񤭤·¤¿¤ꤹ¤뤳¤Ȥ¬ - ²Äǽ¡¢¤Ȥ¤¤¦¤³¤ȤǤ¹¡£

    - -
    -
    top
    -

    RequestHeader ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:HTTP ¥ꥯ¥¨¥¹¥ȥإåÀ¤ÎÀßÄê
    ¹½ʸ:RequestHeader set|append|add|unset header -[value] [early|env=[!]variable]
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_headers
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï HTTP ¥ꥯ¥¨¥¹¥ȥإåÀ¤òÃִ¹¡¢Äɲᢺï½ü¤Ǥ­¤ޤ¹¡£ - ¥إåÀ¤ϥ³¥ó¥ƥó¥ȥϥó¥ɥ餬¼¹Ԥµ¤ì¤ëľÁ°¤˼¹Ԥµ¤졢 - Æþ¤äÆÍè¤ë¥إåÀ¤òÊѹ¹¤¹¤뤳¤Ȥ¬²Äǽ¤ˤʤäƤ¤¤ޤ¹¡£ - ¹Ԥʤ¦½èÍý¤ÏÂè 1 °ú¿ô¤ˤè¤ê·è¤ޤê¤ޤ¹¡£¤³¤ì¤ˤϰʲ¼¤ÎÃͤò»ØÄê - ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -
    -
    set
    -
    ¥ꥯ¥¨¥¹¥ȥإåÀ¤òÀßÄꤷ¤ޤ¹¡£Ʊ¤¸̾Á°¤ΥإåÀ¤¬¸ºߤ·¤Ƥ¤¤ë¤ȡ¢ - ¤½¤ì¤òÃ֤­´¹¤¨¤ޤ¹¡£
    - -
    append
    -
    ¥ꥯ¥¨¥¹¥ȥإåÀ¤ϡ¢´û¤Ë¸ºߤ¹¤ëƱ¤¸̾Á°¤ΥإåÀ¤ËÄɲ䵤ì¤ޤ¹¡£ - ¿·¤·¤¤Ãͤ¬´û¸¤ΥإåÀ¤ËÄɲ䵤ì¤ë¤Ȥ­¤ˤϡ¢´û¸¤ΥإåÀ¤Î - ¸å¤˥³¥ó¥ޤǶèÀڤé¤ì¤ÆÄɲ䵤ì¤ޤ¹¡£¤³¤ì¤ϥإåÀ¤Ëʣ¿ô¤ÎÃͤò - »ØÄꤹ¤ë¤Ȥ­¤Î HTTP ¤Îɸ½à¤ÎÊýˡ¤Ǥ¹¡£
    - -
    add
    -
    ¥إåÀ¤¬´û¤Ë¸ºߤ·¤Ƥ¤¤ë¤Ȥ­¤Ǥµ¤¨¤⡢¥ꥯ¥¨¥¹¥ȥإåÀ¤ò - ´û¸¤ΥإåÀ¤ËÄɲä·¤ޤ¹¡£¤³¤ì¤ˤè¤ꡢÆó¤Ä (¤«¤½¤ì°ʾå) ¤Î - ¥إåÀ¤Î̾Á°¤¬Ʊ¤¸¤ˤʤ뤳¤Ȥ¬¤¢¤ê¤ޤ¹¡£¤½¤ηë²̡¢ÁÛÄê¤Ǥ­¤ʤ¤ - ¤³¤Ȥ¬µ¯¤³¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¤Τǡ¢°ìÈÌŪ¤ˤÏ append ¤ÎÊý¤ò - »Ȥ¦Êý¤¬Îɤ¤¤Ǥ·¤礦¡£
    - -
    unset
    -
    ¤⤷»ØÄꤵ¤줿̾Á°¤Υꥯ¥¨¥¹¥ȥإåÀ¤¬¸ºߤ·¤Ƥ¤¤ì¤С¢ºï½ü¤µ¤ì¤ޤ¹¡£ - Ʊ¤¸̾Á°¤Îʣ¿ô¤ΥإåÀ¤¬¤¢¤ë¤Ȥ­¤ϡ¢¤¹¤٤ƺï½ü¤µ¤ì¤ޤ¹¡£ - value ¤ò¤Ĥ±¤ƤϤ¤¤±¤ޤ»¤ó¡£
    -
    - -

    ¤³¤ΰú¿ô¤θå¤ˤϥإåÀ̾ (header) ¤¬³¤­¤ޤ¹¡£ - ¥إåÀ̾¤ˤϺǸå¤˥³¥í¥ó¤ò´ޤá¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¤¬¡¢̵¤¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£ - Âçʸ»ú¾®ʸ»ú¤϶èÊ̤µ¤ì¤ޤ»¤ó¡£add, - append, set ¤ξì¹ç¤ϡ¢value ¤¬»°¤ÄÌܤÎ - °ú¿ô¤Ȥ·¤ƻØÄꤵ¤ì¤ޤ¹¡£value ¤˶õÇ򤬤¢¤ë¾ì¹ç¤ÏÆó½ŰúÍÑÉä¤Ç - °ϤàɬÍפ¬¤¢¤ê¤ޤ¹¡£unset ¤ξì¹ç¤ϡ¢value ¤ϻØÄꤷ¤ޤ»¤ó¡£ - value ¤Ïʸ»úÎ󡢥ե©¡¼¥ޥåȻØÄê»ҡ¢¤¢¤뤤¤ϡ¢¤½¤κ®¹ç¤Ǥ¹¡£ - »Ȥ¦¤³¤ȤΤǤ­¤ë¥ե©¡¼¥ޥåȻØÄê»Ҥϡ¢Header ¤ÈƱ¤¸¤Ǥ¹¤Τǡ¢ - ¾ܺ٤Ϥ½¤Á¤é¤ò¤´Í÷¤¯¤À¤µ¤¤¡£

    - -

    RequestHeader ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¤ɤ¦¤¤¤ä¿¾ò·ﲼ¤ǥ¢¥¯¥·¥ç¥ó¤ò¹Ԥ¦¤«¤ò»ØÄꤹ¤ëÄɲðú¿ô - ¤¢¤뤤¤ϡ¢Áá´ü½èÍý ¤ò»ØÄꤹ¤ë early - ¥­¡¼¥¥ɤòÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - env=... ¤ΰú¿ô¤ÇÀßÄꤵ¤ì¤Ƥ¤¤ë - ´Ķ­Êѿô ¤¬¸ºߤ·¤Ƥ¤¤ë - (¤¢¤뤤¤Ï env=!... ¤ǻØÄꤵ¤줿´Ķ­Êѿô¤¬ - ¸ºߤ·¤ʤ¤) ¾ì¹硢RequestHeader ¥ǥ£¥쥯¥ƥ£¥֤Ï - ͭ¸ú¤ˤʤê¤ޤ¹¡£¤½¤ì°ʳ°¤ξì¹硢¥ǥ£¥쥯¥ƥ£¥֤ϸúÎϤò»ý¤Á¤ޤ»¤ó¡£

    - -

    early ¥⡼¥ɤǤʤ¤¾ì¹ç¤˸¤ꡢ - RequestHeader ¥ǥ£¥쥯¥ƥ£¥֤Ï - fixup ¥ե§¡¼¥º¤ǥꥯ¥¨¥¹¥Ȥ¬¥ϥó¥ɥé¤˰·¤ï¤ì¤ëľÁ°¤Ë - ½èÍý¤µ¤ì¤ޤ¹¡£¤³¤ì¤ˤè¤ꡢ¥֥饦¥¶¤ä Apache ¤ÎÆþÎϥե£¥륿¤ˤè¤ê - À¸À®¤µ¤줿¥إåÀ¤ò¾å½񤭤·¤¿¤꽤Àµ¤·¤¿¤ê¤Ǥ­¤ë¤褦¤ˤʤäƤ¤¤ޤ¹¡£

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_headers.html.ja.utf8 b/docs/manual/mod/mod_headers.html.ja.utf8 new file mode 100644 index 00000000000..ec92bf3c266 --- /dev/null +++ b/docs/manual/mod/mod_headers.html.ja.utf8 @@ -0,0 +1,377 @@ + + + + + +mod_headers - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_headers

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:HTTP リクエストのヘッダと応答のヘッダのカスタマイズ
    ステータス:Extension
    モジュール識別子:headers_module
    ソースファイル:mod_headers.c
    +

    概要

    + +

    このモジュールは HTTP のリクエストヘッダと応答ヘッダを制御し、 + 変更するためのディレクティブを提供します。ヘッダを追加したり、 + 置き換えたり、削除したりすることができます。

    +
    +

    トピック

    +

    ディレクティブ

    + +
    +
    top
    +
    +

    処理の順番

    + +

    mod_header のディレクティブはサーバ設定のほぼどこにでも + 書くことができ、影響する範囲を設定用セクションで囲むことで限定する + ことができます。

    + +

    処理の順番は重要で、設定ファイル中の順番と、設定用セクション内の位置との両方に + 影響されます。以下の二つのヘッダは順番が逆になると + 違う結果になります:

    + +

    + RequestHeader append MirrorID "mirror 12"
    + RequestHeader unset MirrorID +

    + +

    この順番の場合は、MirrorID ヘッダは設定されません。 + 逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。

    +
    top
    +
    +

    早期処理、後期処理

    +

    mod_headers では、リクエストの早期か後期かの + どちらで適用するかを選べます。通常は後期モードで、 + コンテンツ生成が実行される直前にリクエストヘッダがセットされ、 + レスポンスとして送出される直前にレスポンスヘッダがセットされます。 + 運用中のサーバでは必ず後期モードを使ってください。

    + +

    早期モードは開発者向けのテスト/デバッグ用に設計されています。 + early キーワード指定されたディレクティブによって、 + リクエスト処理の開始地点になります。 + つまり、異なるリクエストを試したりテストケースをセットアップするのに + 活用できる一方で、レスポンスを生成する前に他のモジュールによって + ヘッダが書き換えられてしまうかもしれないということを意味します。

    + +

    early ディレクティブではリクエストパスの設定が解決される前に + 処理されるので、メインサーバかバーチャルホストコンテキストでのみ、 + 早期ヘッダをセットできます。early ディレクティブはリクエストパスに + 依存することはできませんので、<Directory> や + <Location> といったコンテキスト内では使用 + できません。

    +
    top
    +
    +

    例

    + +
      +
    1. リクエストヘッダ中の "TS" で始まるフィールドをすべて応答ヘッダに + コピーします: +

      + Header echo ^TS +

      +
    2. + +
    3. + リクエストを受け付けた時刻とリクエストを処理した時間を入れたヘッダ、 + MyHeader を応答に追加します。このヘッダはクライアントが + サーバの負荷を直観的に知るためや、クライアント-サーバ間の + ボトルネックを調べるために使うことができます。 + +

      + Header add MyHeader "%D %t" +

      + +

      上記の設定では、以下のようなヘッダが応答に追加されることになります:

      + +

      + MyHeader: D=3775428 t=991424704447256 +

      +
    4. + +
    5. + Joe にあいさつをします: + +

      + Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request." +

      + +

      以下のようなヘッダが応答に追加されることになります

      + +

      + MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request. +

      +
    6. + +
    7. リクエストに "MyRequestHeader" があるときに限り MyHeader を応答に + 付けます。これは、クライアントの要求に応えてヘッダを作成するときに + 役に立ちます。この例では mod_setenvif モジュールが必要なことに + 注意してください。 + +

      + SetEnvIf MyRequestHeader value HAVE_MyRequestHeader
      + Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader +

      + +

      もし HTTP リクエストに MyRequestHeader: value ヘッダが + あると、応答には以下のようなヘッダが付加されます。

      + +

      + MyHeader: D=3775428 t=991424704447256 mytext +

      +
    8. +
    +
    +
    top
    +

    Header ディレクティブ

    + + + + + + + +
    説明:HTTP 応答ヘッダの設定
    構文:Header [condition] set|append|add|unset|echo +header [value] [early|env=[!]variable]
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Extension
    モジュール:mod_headers
    +

    このディレクティブは HTTP 応答ヘッダを置換、追加、削除できます。 + ヘッダはコンテントハンドラや出力フィルタが実行された直後に実行され、 + 出て行くヘッダを変更できるようになっています。

    + +

    オプションの condition は onsuccess か + always のどちらかを指定できます。これは内部ヘッダテーブルのどれを + 操作するかを決定します。onsuccess は 2xx + ステータスコードの、always は全てのステータスコード + (2xx を含む) の意味になります。 + あるモジュールでセットされるヘッダをアンセットしたい場合は特に、 + どのテーブルが影響を受けるかを実際に試したほうがよいでしょう。

    + +

    行なう処理は二番目のの引数で決まります。 + この引数には次の値を指定できます:

    + +
    +
    set
    +
    応答ヘッダを設定します。同じ名前のヘッダが存在する場合はそれを + 置き換えます。value にはフォーマット文字列を + 指定することもできます。
    + +
    append
    +
    応答ヘッダを既に存在する同じ名前のヘッダに追加します。 + 新しい値が既存のヘッダに追加されるときには、既存のヘッダの + 後にコンマで区切られて追加されます。これはヘッダに複数の値を + 指定するときの HTTP の標準の方法です。
    + +
    add
    +
    ヘッダが既に存在しているときでさえも、応答ヘッダを + 既存のヘッダに追加します。これにより、二つ (かそれ以上) の + ヘッダの名前が同じになることがあります。その結果、想定できない + ことが起こる可能性がありますので、一般的には append の方を + 使う方が良いでしょう。
    + +
    unset
    +
    もし指定された名前の応答ヘッダが存在していれば、削除されます。 + 同じ名前のヘッダが複数あるときは、すべて削除されます。 + value をつけてはいけません。
    + +
    echo
    +
    指定されたものと同じ名前のリクエストヘッダを応答ヘッダで + そのまま返します。header には正規表現も指定できます。 + value をつけてはいけません。
    +
    + +

    この引数の後にはヘッダ名 (header) が続きます。 + ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。 + set, append, add, + unset では大文字小文字は + 区別されません。echo の header 名は大文字小文字を区別し、 + 正規表現を指定することもできます。

    + +

    add, append, + set では value を三つ目の + 引数として指定します。value に空白がある場合は二重引用符で + 囲む必要があります。value は文字のみからなる文字列、 + フォーマット指示子を含む文字列、もしくは両方からなる文字列を指定できます。 + value は以下のフォーマット指示子をサポートします:

    + + + + + + + + + + + + +
    フォーマット解説
    %%パーセント記号
    %tリクエストを受け取った時刻を、 + Universal Coordinated Time での始まりの時刻 (Jan. 1, 1970) から経過した + 時間をマイクロ秒として表したもの。値の最初には + t= が付加されます。
    %Dリクエストを受け取った時刻と、ヘッダを送り出した + 時間との差。これは、リクエストが存在していた期間を表します。 + 値の最初には D= が付加されます。
    %{FOOBAR}e環境変数 + FOOBAR の値です。
    %{FOOBAR}smod_ssl が有効な場合、 + SSL 環境変数 FOOBAR + の内容
    + +

    注

    +

    %s フォーマット指定子は 2.1 以降でのみ利用できます。 + SSLOptions +StdEnvVars を有効にすることによるオーバーヘッドを + 避けるため、%e の代わりとして使えます。 + 他の理由などがあって、どうしても SSLOptions +StdEnvVars + を有効にしなければならない場合は、%e のほうが + %s よりも処理効率は良いです。

    +
    + +

    Header ディレクティブには追加の引数を持たせることが + できて、どういったアクションが行われたかの条件を指定したり、 + 早期処理 を指定する early キーワードを + 指定できます。 + env=... 引数で指定された 環境変数 が存在する (もしくは env=!... + が指定されていて環境変数が存在しない) 場合は、Header + ディレクティブで指定された動作が行なわれます。そうでない場合は、 + ディレクティブはそのリクエストには何もしません。

    + +

    早期処理モードの場合以外では、 + Header + ディレクティブは応答がネットワークに送られる直前に + 処理されます。これは、ヘッダフィルタにより追加されるヘッダを + 除き、ほとんどのヘッダを設定したり上書きしたりすることが + 可能、ということです。

    + +
    +
    top
    +

    RequestHeader ディレクティブ

    + + + + + + + +
    説明:HTTP リクエストヘッダの設定
    構文:RequestHeader set|append|add|unset header +[value] [early|env=[!]variable]
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Extension
    モジュール:mod_headers
    +

    このディレクティブは HTTP リクエストヘッダを置換、追加、削除できます。 + ヘッダはコンテントハンドラが実行される直前に実行され、 + 入って来るヘッダを変更することが可能になっています。 + 行なう処理は第 1 引数により決まります。これには以下の値を指定 + することができます:

    + +
    +
    set
    +
    リクエストヘッダを設定します。同じ名前のヘッダが存在していると、 + それを置き換えます。
    + +
    append
    +
    リクエストヘッダは、既に存在する同じ名前のヘッダに追加されます。 + 新しい値が既存のヘッダに追加されるときには、既存のヘッダの + 後にコンマで区切られて追加されます。これはヘッダに複数の値を + 指定するときの HTTP の標準の方法です。
    + +
    add
    +
    ヘッダが既に存在しているときでさえも、リクエストヘッダを + 既存のヘッダに追加します。これにより、二つ (かそれ以上) の + ヘッダの名前が同じになることがあります。その結果、想定できない + ことが起こる可能性がありますので、一般的には append の方を + 使う方が良いでしょう。
    + +
    unset
    +
    もし指定された名前のリクエストヘッダが存在していれば、削除されます。 + 同じ名前の複数のヘッダがあるときは、すべて削除されます。 + value をつけてはいけません。
    +
    + +

    この引数の後にはヘッダ名 (header) が続きます。 + ヘッダ名には最後にコロンを含めることもできますが、無くても構いません。 + 大文字小文字は区別されません。add, + append, set の場合は、value が三つ目の + 引数として指定されます。value に空白がある場合は二重引用符で + 囲む必要があります。unset の場合は、value は指定しません。 + value は文字列、フォーマット指定子、あるいは、その混合です。 + 使うことのできるフォーマット指定子は、Header と同じですので、 + 詳細はそちらをご覧ください。

    + +

    RequestHeader ディレクティブは、 + どういった条件下でアクションを行うかを指定する追加引数 + あるいは、早期処理 を指定する early + キーワードを設定することができます。 + env=... の引数で設定されている + 環境変数 が存在している + (あるいは env=!... で指定された環境変数が + 存在しない) 場合、RequestHeader ディレクティブは + 有効になります。それ以外の場合、ディレクティブは効力を持ちません。

    + +

    early モードでない場合に限り、 + RequestHeader ディレクティブは + fixup フェーズでリクエストがハンドラに扱われる直前に + 処理されます。これにより、ブラウザや Apache の入力フィルタにより + 生成されたヘッダを上書きしたり修正したりできるようになっています。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_headers.html.ko.euc-kr b/docs/manual/mod/mod_headers.html.ko.euc-kr index b3042140261..9783afaf1e7 100644 --- a/docs/manual/mod/mod_headers.html.ko.euc-kr +++ b/docs/manual/mod/mod_headers.html.ko.euc-kr @@ -1,52 +1,59 @@ - -mod_headers - Apache HTTP Server +mod_headers - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_headers

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_headers

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    - -
    ¼³¸í:HTTP ¿äû Çì´õ¿Í ÀÀ´ä Çì´õ ¼öÁ¤
    »óÅÂ:Extension
    ¸ðµâ¸í:headers_module
    ¼ҽºÆÄÀÏ:mod_headers.c
    Áö¿ø:RequestHeader´Â ¾ÆÆÄġ 2.0¿¡¸¸ -ÀִÙ
    +¼ҽºÆÄÀÏ:mod_headers.c

    ¿ä¾à

    ÀÌ ¸ðµâÀº HTTP ¿äû Çì´õ¿Í ÀÀ´ä Çì´õ¸¦ Á¶ÀýÇϰí ¼öÁ¤Çϴ Áö½þîµéÀ» Á¦°øÇѴÙ. Çì´õ¸¦ ÇÕġ°ųª ´ëü, Á¦°ÅÇÒ ¼ö ÀִÙ.

    -

    Áö½þîµé

    - -

    ÁÖÁ¦

    + +

    Áö½þîµé

    + +
    top

    ó¸® ¼ø¼­

    @@ -331,7 +338,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_headers.xml b/docs/manual/mod/mod_headers.xml index 965a1d9c5de..f98cb2f842a 100644 --- a/docs/manual/mod/mod_headers.xml +++ b/docs/manual/mod/mod_headers.xml @@ -4,12 +4,12 @@ + + - + mod_headers /mod/ .. en - ja - ko + ja + ko diff --git a/docs/manual/mod/mod_ident.html b/docs/manual/mod/mod_ident.html index 35282bad10c..ed28d2acc82 100644 --- a/docs/manual/mod/mod_ident.html +++ b/docs/manual/mod/mod_ident.html @@ -1,7 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_ident.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: mod_ident.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + URI: mod_ident.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/mod/mod_ident.html.en b/docs/manual/mod/mod_ident.html.en index 2daaa5f49e7..151c19fab22 100644 --- a/docs/manual/mod/mod_ident.html.en +++ b/docs/manual/mod/mod_ident.html.en @@ -1,33 +1,41 @@ - -mod_ident - Apache HTTP Server +mod_ident - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_ident

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_ident

    Available Languages:  en  | + ja  |  ko 

    - - + +
    Description:RFC 1413 ident lookups
    Status:Extension
    Module Identifier:ident_module
    Source File:mod_ident.c
    Module Identifier:ident_module
    Source File:mod_ident.c
    Compatibility:Available in Apache 2.1 and later

    Summary

    @@ -42,7 +50,7 @@

    See also

    +
    top

    IdentityCheck Directive

    @@ -94,8 +102,30 @@ user

    Available Languages:  en  | + ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_ident.html.ja.utf8 b/docs/manual/mod/mod_ident.html.ja.utf8 new file mode 100644 index 00000000000..4ef99dd3482 --- /dev/null +++ b/docs/manual/mod/mod_ident.html.ja.utf8 @@ -0,0 +1,131 @@ + + + + + +mod_ident - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_ident

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    + + + + +
    説明:RFC 1413 ident lookups
    ステータス:Extension
    モジュール識別子:ident_module
    ソースファイル:mod_ident.c
    互換性:Apache 2.1 で使用可能
    +

    概要

    + +

    このモジュールはリモートホストの RFC 1413 互換デーモン + にコネクションの所有者を訊きます。

    +
    +

    ディレクティブ

    + +

    参照

    +
    + +
    top
    +

    IdentityCheck ディレクティブ

    + + + + + + + + +
    説明:リモートユーザの RFC 1413 によるアイデンティティのロギングを +有効にする
    構文:IdentityCheck On|Off
    デフォルト:IdentityCheck Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_ident
    互換性:Apache 2.1 で core から移動
    +

    このディレクティブは、クライアントマシン上で + identd やそれに類似したデーモンが動作しているときに、 + それぞれの接続に対して RFC 1413 に準処したリモートユーザの + 名前のロギングを行なうようにします。 + この情報は、%...l フォーマット文字列を使ってアクセスログに収集されます。

    + +
    + ここで得られた情報は簡単なユーザ追跡に使う以外は、 + まったく信頼するべきではありません。
    + +

    すべてのリクエストに対してルックアップが行なわれますので、 + 深刻な遅延の問題を起こすかもしれないことに注意してください。 + (訳注: 例えばクライアント側に) ファイアウォールやプロキシサーバがあると、 + ルックアップが失敗し、各リクエストに IdentityCheckTimeoutで定義されている遅延が加わることに + なる可能性があります。 + 従って、一般的にはインターネットからアクセス可能なパブリックなサーバで + 有益なものではありません。

    + +
    +
    top
    +

    IdentityCheckTimeout ディレクティブ

    + + + + + + + +
    説明:Ident リクエストがタイムアウトするまでの期間を決める
    構文:IdentityCheckTimeout seconds
    デフォルト:IdentityCheckTimeout 30
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_ident
    +

    このディレクティブは ident リクエストのタイムアウト時間を決めます。 + デフォルトの値である 30 秒は、主にネットワーク遅延の考慮のために RFC 1413 により + 推奨されています。しかし、おそらくローカルネットワークの速度に + 合わせてタイムアウト値を調節するのがよいでしょう。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_ident.html.ko.euc-kr b/docs/manual/mod/mod_ident.html.ko.euc-kr index 2f66be6b089..1c591e74cfc 100644 --- a/docs/manual/mod/mod_ident.html.ko.euc-kr +++ b/docs/manual/mod/mod_ident.html.ko.euc-kr @@ -1,27 +1,35 @@ - -mod_ident - Apache HTTP Server +mod_ident - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_ident

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_ident

    °¡´ÉÇÑ ¾ð¾î:  en  | + ja  |  ko 

    @@ -43,7 +51,7 @@

    Âü°í

    +
    top

    IdentityCheck Áö½þî

    @@ -91,8 +99,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | + ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_ident.xml b/docs/manual/mod/mod_ident.xml index 79fcef794fb..3499214c366 100644 --- a/docs/manual/mod/mod_ident.xml +++ b/docs/manual/mod/mod_ident.xml @@ -4,12 +4,12 @@ + + + + + +mod_ident +RFC 1413 ident lookups +Extension +mod_ident.c +ident_module +Apache 2.1 で使用可能 + + +

    このモジュールはリモートホストの RFC 1413 互換デーモン + にコネクションの所有者を訊きます。

    +
    +mod_log_config + + +IdentityCheck +リモートユーザの RFC 1413 によるアイデンティティのロギングを +有効にする +IdentityCheck On|Off +IdentityCheck Off +server configvirtual host +directory +Apache 2.1 で core から移動 + + +

    このディレクティブは、クライアントマシン上で + identd やそれに類似したデーモンが動作しているときに、 + それぞれの接続に対して RFC 1413 に準処したリモートユーザの + 名前のロギングを行なうようにします。 + この情報は、%...l フォーマット文字列を使ってアクセスログに収集されます。

    + + + ここで得られた情報は簡単なユーザ追跡に使う以外は、 + まったく信頼するべきではありません。 + +

    すべてのリクエストに対してルックアップが行なわれますので、 + 深刻な遅延の問題を起こすかもしれないことに注意してください。 + (訳注: 例えばクライアント側に) ファイアウォールやプロキシサーバがあると、 + ルックアップが失敗し、各リクエストに IdentityCheckTimeoutで定義されている遅延が加わることに + なる可能性があります。 + 従って、一般的にはインターネットからアクセス可能なパブリックなサーバで + 有益なものではありません。

    +
    +
    + + +IdentityCheckTimeout +Ident リクエストがタイムアウトするまでの期間を決める +IdentityCheckTimeout seconds +IdentityCheckTimeout 30 +server configvirtual host +directory + +

    このディレクティブは ident リクエストのタイムアウト時間を決めます。 + デフォルトの値である 30 秒は、主にネットワーク遅延の考慮のために RFC 1413 により + 推奨されています。しかし、おそらくローカルネットワークの速度に + 合わせてタイムアウト値を調節するのがよいでしょう。

    +
    +
    + +
    + diff --git a/docs/manual/mod/mod_ident.xml.ko b/docs/manual/mod/mod_ident.xml.ko index 31453e965f0..a6aad96a66f 100644 --- a/docs/manual/mod/mod_ident.xml.ko +++ b/docs/manual/mod/mod_ident.xml.ko @@ -1,15 +1,15 @@ - + - + mod_ident /mod/ .. en + ja ko diff --git a/docs/manual/mod/mod_imagemap.html b/docs/manual/mod/mod_imagemap.html index b571be950bb..0436d50082a 100644 --- a/docs/manual/mod/mod_imagemap.html +++ b/docs/manual/mod/mod_imagemap.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_imagemap.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_imagemap.html.en b/docs/manual/mod/mod_imagemap.html.en index 898e04d5ff2..e4c15c3b1ab 100644 --- a/docs/manual/mod/mod_imagemap.html.en +++ b/docs/manual/mod/mod_imagemap.html.en @@ -1,33 +1,40 @@ - -mod_imagemap - Apache HTTP Server +mod_imagemap - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_imagemap

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_imagemap

    Available Languages:  en  |  ko 

    ¼³¸í:RFC 1413 ident °˻ö
    - -
    Description:Server-side imagemap processing
    Status:Base
    Module Identifier:imap_module
    Source File:mod_imagemap.c
    +Module Identifier:imagemap_module +Source File:mod_imagemap.c

    Summary

    This module processes .map files, thereby @@ -50,19 +57,19 @@

    However, we are trying to phase out "magic MIME types" so we are deprecating this method.

    -
    top

    New Features

    @@ -164,7 +171,8 @@

    Values

    -

    The values for each of the directives can any of the following:

    +

    The values for each of the directives can be any of the + following:

    a URL
    @@ -172,7 +180,7 @@

    The URL can be relative or absolute URL. Relative URLs can contain '..' syntax and will be resolved relative to the base value.

    -

    base itself will not resolved according to the +

    base itself will not be resolved according to the current value. A statement base mailto: will work properly, though.

    @@ -232,14 +240,14 @@ generated:

    - <a href="http://foo.com/">Menu text</a> + <a href="http://example.com/">Menu text</a>

    If no quoted text is present, the name of the link will be used as the text:

    - <a href="http://foo.com/">http://foo.com</a> + <a href="http://example.com/">http://example.com</a>

    If you want to use double quotes within this text, you have to @@ -257,11 +265,11 @@ base referer
    poly map "Could I have a menu, please?" 0,0 0,10 10,10 10,0
    rect .. 0,0 77,27 "the directory of the referer"
    - circle http://www.inetnebr.com/lincoln/feedback/ 195,0 305,27
    + circle http://www.inetnebr.example.com/lincoln/feedback/ 195,0 305,27
    rect another_file "in same directory as referer" 306,0 419,27
    - point http://www.zyzzyva.com/ 100,100
    - point http://www.tripod.com/ 200,200
    - rect mailto:nate@tripod.com 100,150 200,0 "Bugs?"
    + point http://www.zyzzyva.example.com/ 100,100
    + point http://www.tripod.example.com/ 200,200
    + rect mailto:nate@tripod.example.com 100,150 200,0 "Bugs?"

    top
    @@ -376,7 +384,28 @@ an imagemap

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_imagemap.html.ko.euc-kr b/docs/manual/mod/mod_imagemap.html.ko.euc-kr index 2f2b7a9a3c2..1977c008555 100644 --- a/docs/manual/mod/mod_imagemap.html.ko.euc-kr +++ b/docs/manual/mod/mod_imagemap.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_imap - Apache HTTP Server +mod_imagemap - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_imap

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_imagemap

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    @@ -28,8 +35,8 @@ Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    - -
    ¼³¸í:¼­¹öÃø À̹ÌÁö¸Ê(imagemap) ó¸®
    »óÅÂ:Base
    ¸ðµâ¸í:imap_module
    ¼ҽºÆÄÀÏ:mod_imap.c
    +¸ðµâ¸í:imagemap_module +¼ҽºÆÄÀÏ:mod_imagemap.c

    ¿ä¾à

    ÀÌ ¸ðµâÀº imagemap CGI ÇÁ·α׷¥À» ´ë½ÅÇϿ© @@ -49,19 +56,19 @@

    ±׷¯³ª ¿츮´Â Á¡Â÷ "¼­¹ö¿¡°Ô Ưº°ÇÑ Àǹ̰¡ Àִ MIME type"À» Á¦°ÅÇϷÁ°í Çϱ⶧¹®¿¡ ÀÌ ¹æ¹ýÀº ¾ø¾îÁú °ÍÀ̴Ù.

    -
    top

    »õ·οî ±â´É

    @@ -280,7 +287,7 @@ »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess Override ¿ɼÇ:Indexes »óÅÂ:Base -¸ðµâ:mod_imap +¸ðµâ:mod_imagemap

    ImapBase Áö½þî´Â À̹ÌÁö¸Ê ÆÄÀϿ¡¼­ »ç¿ëÇÒ base ±⺻°ªÀ» ¼³Á¤ÇѴÙ. À̹ÌÁö¸Ê ÆÄÀÏ @@ -303,7 +310,7 @@ »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess Override ¿ɼÇ:Indexes »óÅÂ:Base -¸ðµâ:mod_imap +¸ðµâ:mod_imagemap

    ImapDefault Áö½þî´Â À̹ÌÁö¸Ê ÆÄÀϿ¡¼­ »ç¿ëÇÒ default ±⺻°ªÀ» ¼³Á¤ÇѴÙ. @@ -322,7 +329,7 @@ »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess Override ¿ɼÇ:Indexes »óÅÂ:Base -¸ðµâ:mod_imap +¸ðµâ:mod_imagemap

    ImapMenu Áö½þî´Â À̹ÌÁö¸Ê ÆÄÀϿ¡ À¯ȿÇÑ ÁÂǥ¸¦ ÁÖÁö ¾ÊÀº °æ¿ì ÃëÇÒ ÇൿÀ» °áÁ¤ÇѴÙ.

    @@ -357,7 +364,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_imagemap.xml b/docs/manual/mod/mod_imagemap.xml index 0aba85511ce..bedc73f2043 100644 --- a/docs/manual/mod/mod_imagemap.xml +++ b/docs/manual/mod/mod_imagemap.xml @@ -4,12 +4,12 @@ + - + mod_imagemap /mod/ .. diff --git a/docs/manual/mod/mod_include.html b/docs/manual/mod/mod_include.html index b45a07fc567..db272ac7009 100644 --- a/docs/manual/mod/mod_include.html +++ b/docs/manual/mod/mod_include.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_include.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_include.html.ja.euc-jp +URI: mod_include.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_include.html.en b/docs/manual/mod/mod_include.html.en index b87074d1ee1..761c49f9781 100644 --- a/docs/manual/mod/mod_include.html.en +++ b/docs/manual/mod/mod_include.html.en @@ -1,33 +1,40 @@ - -mod_include - Apache HTTP Server +mod_include - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_include

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_include

    Available Languages:  en  |  ja 

    - - + +
    Description:Server-parsed html documents (Server Side Includes)
    Status:Base
    Module Identifier:include_module
    Source File:mod_include.c
    Module Identifier:include_module
    Source File:mod_include.c
    Compatibility:Implemented as an output filter since Apache 2.0

    Summary

    @@ -39,30 +46,33 @@ inclusion of other files or programs, as well as the setting and printing of environment variables.

    -
    top

    Enabling Server-Side Includes

    @@ -171,7 +181,7 @@ document. This overrides any SSIErrorMsg directives.
    sizefmt
    -
    The value sets the format to be used which displaying +
    The value sets the format to be used when displaying the size of a file. Valid values are bytes for a count in bytes, or abbrev for a count in Kb or Mb as appropriate, for example a size of 1024 bytes @@ -186,7 +196,7 @@

    The echo Element

    This command prints one of the include - variables, defined below. If the variable is unset, the result is + variables defined below. If the variable is unset, the result is determined by the SSIUndefinedEcho directive. Any dates printed are subject to the currently configured timefmt.

    @@ -320,14 +330,14 @@

    The include Element

    This command inserts the text of another document or file - into the parsed file. Any included file is subject to the - usual access control. If the directory containing the - parsed file has Options - IncludesNOEXEC set, then only documents with - a text MIME type (text/plain, text/html - etc.) will be included. Otherwise CGI scripts are invoked as normal - using the complete URL given in the command, including any query - string.

    + into the parsed file. Any included file is subject to the usual + access control. If the directory containing the parsed file has + Options + IncludesNOEXEC set, then only documents with a text + MIME-type (text/plain, + text/html etc.) will be included. Otherwise CGI + scripts are invoked as normal using the complete URL given in + the command, including any query string.

    An attribute defines the location of the document; the inclusion is done for each attribute given to the include @@ -417,7 +427,9 @@

    DOCUMENT_URI
    The (%-decoded) URL path of the document requested by the user. Note that in the case of nested include files, this is - not the URL for the current document.
    + not the URL for the current document. Note also that + if the URL is modified internally (e.g. by an alias or directoryindex), the modified + URL is shown.
    LAST_MODIFIED
    The last modification date of the document requested by @@ -500,7 +512,7 @@ else or endif element is included in the output stream.

    -

    The elif or else statements are be used +

    The elif or else statements are used to put text into the output stream if the original test_condition was false. These elements are optional.

    @@ -513,6 +525,25 @@
    string
    true if string is not empty
    +
    -A string
    +

    true if the URL represented by the string is accessible by + configuration, false otherwise. This test only has an effect if + SSIEnableAccess is on. This is useful + where content on a page is to be hidden from users who are not + authorized to view the URL, such as a link to that URL. Note + that the URL is only tested for whether access would be granted, + not whether the URL exists.

    + +

    Example

    + <!--#if expr="-A /private" -->
    + + Click <a href="/private">here</a> to access private + information.
    +
    + <!--#endif --> +

    +
    +
    string1 = string2
    string1 == string2
    string1 != string2
    @@ -615,6 +646,40 @@ parsed expression tokenizer information, the parse tree and how it is evaluated into the output sent to the client.

    + +

    Escaping slashes in regex strings

    +

    All slashes which are not intended to act as delimiters in your regex must + be escaped. This is regardless of their meaning to the regex engine.

    +
    +
    +
    top
    +

    SSIEnableAccess Directive

    + + + + + + + +
    Description:Enable the -A flag during conditional flow control processing.
    Syntax:SSIEnableAccess on|off
    Default:SSIEnableAccess off
    Context:directory, .htaccess
    Status:Base
    Module:mod_include
    +

    The SSIEnableAccess directive controls whether + the -A test is enabled during conditional flow control processing. + SSIEnableAccess can take on the following values:

    + +
    + +
    off
    +
    <!--#if expr="-A /foo"--> will be interpreted as a series + of string and regular expression tokens, the -A has no special + meaning.
    + +
    on
    +
    <!--#if expr="-A /foo"--> will evaluate to false if the + URL /foo is inaccessible by configuration, or true otherwise.
    + +
    + +
    top

    SSIEndTag Directive

    @@ -667,6 +732,88 @@ directive]" SSIErrorMsg "<!-- Error -->"

    +
    +
    top
    +

    SSIETag Directive

    + + + + + + + + +
    Description:Controls whether ETags are generated by the server.
    Syntax:SSIETag on|off
    Default:SSIETag off
    Context:directory, .htaccess
    Status:Base
    Module:mod_include
    Compatibility:Available in version 2.2.15 and later.
    +

    Under normal circumstances, a file filtered by mod_include + may contain elements that are either dynamically generated, or that may + have changed independently of the original file. As a result, by default + the server is asked not to generate an ETag header for the + response by adding no-etag to the request notes.

    + +

    The SSIETag directive suppresses this + behaviour, and allows the server to generate an ETag header. + This can be used to enable caching of the output. Note that a backend server + or dynamic content generator may generate an ETag of its own, ignoring + no-etag, and this ETag will be passed by + mod_include regardless of the value of this setting. + SSIETag can take on the following values:

    + +
    + +
    off
    +
    no-etag will be added to the request notes, and the server + is asked not to generate an ETag. Where a server ignores the value of + no-etag and generates an ETag anyway, the ETag will be + respected.
    + +
    on
    +
    Existing ETags will be respected, and ETags generated by the server will + be passed on in the response.
    + +
    + + +
    +
    top
    +

    SSILastModified Directive

    + + + + + + + + +
    Description:Controls whether Last-Modified headers are generated by the +server.
    Syntax:SSILastModified on|off
    Default:SSILastModified off
    Context:directory, .htaccess
    Status:Base
    Module:mod_include
    Compatibility:Available in version 2.2.15 and later.
    +

    Under normal circumstances, a file filtered by mod_include + may contain elements that are either dynamically generated, or that may + have changed independently of the original file. As a result, by default + the Last-Modified header is stripped from the response.

    + +

    The SSILastModified directive overrides this + behaviour, and allows the Last-Modified header to be respected + if already present, or set if the header is not already present. This can + be used to enable caching of the output. SSILastModified + can take on the following values:

    + +
    + +
    off
    +
    The Last-Modified header will be stripped from responses, + unless the XBitHack directive + is set to full as described below.
    + +
    on
    +
    The Last-Modified header will be respected if already + present in a response, and added to the response if the response is a + file and the header is missing. The + SSILastModified directive + takes precedence over XBitHack.
    + +
    + +
    top

    SSIStartTag Directive

    @@ -768,7 +915,7 @@ set

    The XBitHack directive controls the parsing of ordinary html documents. This directive only affects files associated - with the MIME type text/html. XBitHack can take on the following values:

    + with the MIME-type text/html. XBitHack can take on the following values:

    off
    @@ -790,17 +937,45 @@ set

    You would not want to use the full option, unless you assure the group-execute bit is unset for every SSI script which might #include a CGI or otherwise produces different output on each hit (or could potentially change on subsequent requests).

    + +

    The SSILastModified + directive takes precedence over the + XBitHack directive when + SSILastModified is set to + on.

    + - +

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_include.html.ja.euc-jp b/docs/manual/mod/mod_include.html.ja.euc-jp deleted file mode 100644 index 50dced99536..00000000000 --- a/docs/manual/mod/mod_include.html.ja.euc-jp +++ /dev/null @@ -1,789 +0,0 @@ - - - -mod_include - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_include

    -
    -

    Available Languages:  en  | - ja 

    -
    - - - - -
    ÀâÌÀ:¥µ¡¼¥Ф¬¥ѡ¼¥¹¤¹¤ë html ¥ɥ­¥å¥á¥ó¥È (Server Side Includes)
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:include_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_include.c
    ¸ߴ¹À­:Apache 2.0 ¤«¤é½ÐÎϥե£¥륿¤Ȥ·¤ƼÂÁõ¤µ¤ì¤ޤ·¤¿¡£
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤ϥե¡¥¤¥뤬¥¯¥饤¥¢¥ó¥ȤËÁ÷¤é¤ì¤ëÁ°¤˽èÍý¤¹¤ë¥ե£¥륿¤ò - Ä󶡤·¤ޤ¹¡£½èÍý¤ÎÆâÍƤÏÍ×ÁǤȸƤФì¤ëÆÃÊ̤ʷÁ¼°¤Î SGML ¥³¥á¥ó¥Ȥˤè¤ê - À©¸椵¤ì¤ޤ¹¡£¤³¤ì¤é¤ÎÍ×ÁǤϾò·ïʬ´ô¤䡢¾¤Υե¡¥¤¥ë¤ä - ¥ץí¥°¥é¥à¤νÐÎϤμè¤ê¹þ¤ߡ¢´Ķ­Êѿô¤ÎÀßÄê¤äɽ¼¨¤ò¹Ԥʤ¦¤³¤Ȥ¬ - ¤Ǥ­¤ޤ¹¡£

    -
    - -
    top
    -
    -

    Server-Side Includes ¤òͭ¸ú¤ˤ¹¤ë

    - - -

    Server Side Includes ¤Ï INCLUDES - ¥ե£¥륿 ¤ˤè¤ê¼ÂÁõ¤µ¤ì¤Ƥ¤¤ޤ¹¡£ - Server-side include ¤Υǥ£¥쥯¥ƥ£¥֤ò´ޤà¥ɥ­¥å¥á¥ó¥ȤγÈĥ»Ҥ¬ - .shtml ¤ξì¹硢°ʲ¼¤Υǥ£¥쥯¥ƥ£¥֤ǤÏ Apache ¤¬¤½¤ì¤é¤ò - ¥ѡ¼¥¹¤·¤ơ¢¤½¤ηë²̤Ǥ­¤ë¥ɥ­¥å¥á¥ó¥ȤË text/html ¤Î - MIME ¥¿¥¤¥פò³ä¤êÅö¤Ƥޤ¹:

    - -

    - AddType text/html .shtml
    - AddOutputFilter INCLUDES .shtml -

    - -

    °ʲ¼¤Υǥ£¥쥯¥ƥ£¥֤Ï shtml ¥ե¡¥¤¥ë¤Τ¢¤ë¥ǥ£¥쥯¥ȥê¤ǻØÄꤵ¤ì¤Ƥ¤¤ë - ɬÍפ¬¤¢¤ê¤ޤ¹ (Ä̾ï¤Ï <Directory> ¥»¥¯¥·¥ç¥ó¤ǻØÄꤷ¤ޤ¹¤¬¡¢ - AllowOverride Options - ¤¬ÀßÄꤵ¤ì¤Ƥ¤¤ë¤ȡ¢.htaccess ¥ե¡¥¤¥ë¤˽񤯤³¤Ȥâ¤Ǥ­¤ޤ¹):

    - -

    - Options +Includes -

    - -

    ¸ߴ¹À­¤òÊݤĤ¿¤á¤ˡ¢server-parsed - ¥ϥó¥ɥé ¤â INCLUDES ¥ե£¥륿¤ò - ͭ¸ú¤ˤ·¤ޤ¹¡£MIME ¥¿¥¤¥× text/x-server-parsed-html ¤ä - text/x-server-parsed-html3 ¤Υɥ­¥å¥á¥ó¥ȤËÂФ·¤Ƥâ - Apache ¤Ï INCLUDES ¥ե£¥륿¤òͭ¸ú¤ˤ·¤ޤ¹ (½ÐÎϤµ¤ì¤ë¤â¤ΤÏ - MIME ¥¿¥¤¥× text/html ¤ˤʤê¤ޤ¹)¡£

    - -

    ¾ܤ·¤¤¾ðÊó¤Ï Tutorial on Server Side Includes.

    -
    top
    -
    -

    ¥µ¡¼¥Хµ¥¤¥ɥ¤¥󥯥롼¥É (SSI) ¤ǤÎ PATH_INFO

    - - -

    SSI ¤ǽèÍý¤µ¤ì¤ë¥ե¡¥¤¥ë¤ϥǥե©¥ë¥ȤǤÏ PATH_INFO - (¸å³¤Υѥ¹̾¾ðÊó) - Éդ­¤Υꥯ¥¨¥¹¥Ȥò¼õ¤±Æþ¤ì¤ʤ¯¤ʤê¤ޤ·¤¿¡£AcceptPathInfo ¥ǥ£¥쥯¥ƥ£¥֤Ç - PATH_INFO Éդ­¤Υꥯ¥¨¥¹¥Ȥò¼õ¤±Æþ¤ì¤ë¤褦¤˥µ¡¼¥Фò - ÀßÄê¤Ǥ­¤ޤ¹¡£

    -
    top
    -
    -

    ´ðËÜÍ×ÁÇ

    -

    ¥ɥ­¥å¥á¥ó¥Ȥϡ¢SGML ¤Υ³¥á¥ó¥ȤȤ·¤ÆÆÃÊ̤ʥ³¥ޥó¥ɤ¬Ëä¤á¹þ¤ޤ줿 - HTML ¥ɥ­¥å¥á¥ó¥ȤȤ·¤ƥѡ¼¥¹¤µ¤ì¤ޤ¹¡£¥³¥ޥó¥ɤι½ʸ¤ϼ¡¤Τ褦¤Ë - ¤ʤäƤ¤¤ޤ¹:

    - -

    - <!--#element attribute=value - attribute=value ... --> -

    - -

    ÃÍ (ÌõÃí: value) ¤ÏÆó½ŰúÍÑÉä¤ǰϤà¤Τ¬°ìÈÌŪ¤Ǥ¹¤¬¡¢ - ¥·¥󥰥륯¥ª¡¼¥È (') ¤ȥХ寥¯¥ª¡¼¥È (`) ¤â»ÈÍѤǤ­¤ޤ¹¡£ - ¿¤¯¤Υ³¥ޥó¥ɤϰÀ­-ÃÍ (ÌõÃí: attribute-value) ¤ÎÁȤò°ì¤ĤÀ¤±»ØÄê¤Ǥ­¤ޤ¹¡£ - ¥³¥á¥ó¥Ȥνª¤ï¤ê (-->) - ¤ÎÁ°¤ˤϡ¢SSI ¤ζç¤ΰìÉô¤À¤Ȳò¼ᤵ¤ì¤ʤ¤¤褦¤ˤ¹¤뤿¤á¤˶õÇò¤ò - Æþ¤ì¤Ƥ¯¤À¤µ¤¤¡£ºǽé¤Î <!--# ¤ϤޤȤá¤Æ°ì¤Ä¤Î - ¶ç¤ǡ¢¶õÇò¤ò¤դ¯¤ó¤ǤϤ¤¤±¤ʤ¤¤³¤ÈÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Í×ÁÇ (ÌõÃí: element) ¤ò°ʲ¼¤Îɽ¤˼¨¤·¤ޤ¹¡£

    - - - - - - - - - - - - - - - - - - - -
    Í×ÁÇÀâÌÀ
    configconfigure output formats
    echoprint variables
    execexecute external programs
    fsizeprint size of a file
    flastmodprint last modification time of a file
    includeinclude a file
    printenvprint all available variables
    setset a value of a variable
    - -

    SSI Í×ÁǤÏ mod_include °ʳ°¤Υ⥸¥塼¥ë¤Ç - ÄêµÁ¤µ¤ì¤뤳¤Ȥ⤢¤ê¤ޤ¹¡£¼ºݡ¢ - exec Í×ÁǤÏ - mod_cgi ¤ÇÄ󶡤µ¤ì¤Ƥ¤¤ơ¢¤³¤Υ⥸¥塼¥뤬 - ¥í¡¼¥ɤµ¤ì¤ë¾ì¹ç¤ˤΤßÍøÍѲÄǽ¤Ȥʤê¤ޤ¹¡£

    - -

    config Í×ÁÇ

    -

    ¼¡¤Υ³¥ޥó¥ɤϲòÀϤÎÍ͡¹¤Ê¦Ì̤òÀ©¸椷¤ޤ¹¡£°À­¤ϼ¡¤ÎÄ̤ê¤Ǥ¹¡£

    - -
    -
    echomsg (Apache 2.1 °ʹß)
    -
    »ØÄꤵ¤ì¤ëÃͤϡ¢echo - Í×ÁǤ¬̤ÄêµÁ¤ÎÊѿô¤򥨥³¡¼¤·¤褦¤Ȥ·¤¿ºݤˡ¢ - ¥¯¥饤¥¢¥ó¥ȤËÁ÷¤é¤ì¤ë¥á¥å»¡¼¥¸¤ˤʤê¤ޤ¹¡£ - SSIUndefinedEcho - ¥ǥ£¥쥯¥ƥ£¥֤ò¾å½񤭤·¤ޤ¹¡£
    - -
    errmsg
    -
    ¤³¤ÎÃͤ¬¡¢¥ɥ­¥å¥á¥ó¥ȤβòÀÏÃæ¤˥¨¥顼¤¬ȯÀ¸¤·¤¿»þ¤Ë - ¥¯¥饤¥¢¥ó¥ȤËÁ÷¿®¤µ¤ì¤ë¥á¥å»¡¼¥¸¤ˤʤê¤ޤ¹¡£ - SSIErrorMsg - ¥ǥ£¥쥯¥ƥ£¥֤ò¾å½񤭤·¤ޤ¹¡£
    - -
    sizefmt
    -
    ¤³¤ÎÃͤϡ¢¥ե¡¥¤¥ë¤Υµ¥¤¥º¤òɽ¼¨¤¹¤ëºݤ˻ÈÍѤ¹¤ë - ¥ե©¡¼¥ޥåȤòÀßÄꤷ¤ޤ¹¡£ÃͤÏ ¥Х¤¥ȥ«¥¦¥ó¥ȤÎ - bytes¤«¡¢Kb ¤ä Mb ¤òͥÀèŪ¤˻ÈÍѤ¹¤ë - abbrec (Î㤨¤Ð 1024 ¥Х¤¥ȤÏ "1K" ¤Èɽ¼¨¤µ¤ì¤ޤ¹) - ¤Ǥ¹¡£
    - -
    timefmt
    -
    ¤³¤ÎÃͤÏ strftime(3) ¥饤¥֥é¥ê¥롼¥Á¥ó¤¬ - Æü»þ¤ò¥ץê¥ó¥Ȥ¹¤ëºݤËÍѤ¤¤é¤ì¤ޤ¹¡£
    -
    - - -

    echo Í×ÁÇ

    -

    ¤³¤Υ³¥ޥó¥ɤϰʲ¼¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ë include - Êѿô ¤òɽ¼¨¤·¤ޤ¹¡£Êѿô¤¬ÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤¾ì¹ç¤Ï SSIUndefinedEcho ¥ǥ£¥쥯¥ƥ£¥֤Ç - ·èÄꤵ¤ì¤ë·ë²̤Ȥʤê¤ޤ¹¡£ÆüÉդϤ½¤λþÅÀ¤ǤÎ timefmt ¤˽¾¤äÆ - ɽ¼¨¤µ¤ì¤ޤ¹¡£°À­¤ϼ¡¤ÎÄ̤ê¤Ǥ¹¡£

    - -
    -
    var
    -
    ÃͤÏɽ¼¨¤¹¤ëÊѿô¤Î̾Á°¤Ǥ¹¡£
    - -
    encoding
    -

    Êѿô¤ò½ÐÎϤ¹¤ëÁ°¤ˡ¢ÊѿôÃæ¤ÎÆÃÊÌʸ»ú¤ò¤ɤΤ褦¤˥¨¥󥳡¼¥ɤ¹¤뤫¤ò - »ØÄꤷ¤ޤ¹¡£none ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¤ȡ¢¥¨¥󥳡¼¥ɤϹԤʤï¤ì¤ޤ»¤ó¡£ - url ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¤ȡ¢URL ¥¨¥󥳡¼¥É (%-¥¨¥󥳡¼¥ɤȤâ - ¸ƤФì¤Ƥ¤¤ޤ¹¡£¤³¤ì¤ϥê¥ó¥¯Åù¤Î URL ¤λÈÍѤËŬÀڤǤ¹) ¤¬ - ¹Ԥʤï¤ì¤ޤ¹¡£echo Í×ÁǤγ«»ϻþ¤ϡ¢¥ǥե©¥ë¥ȤÏ - entity ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£¤³¤ì¤ϥ¨¥ó¥ƥ£¥ƥ£¥¨¥󥳡¼¥É - (ÃÊÍî¤ä¥ƥ­¥¹¥ȤʤɤΥ֥í¥å¯¥ì¥٥ë¤Î HTML ¥¨¥ì¥á¥ó¥ȤΥ³¥ó¥ƥ­¥¹¥ȤË - Ŭ¤·¤Ƥ¤¤ޤ¹) ¤ò¹Ԥʤ¤¤ޤ¹¡£¤³¤ì¤Ï encoding °À­ - ¤ò²ä¨¤뤳¤ȤÇÊѹ¹¤Ǥ­¤ޤ¹¡£Êѹ¹¤ϼ¡¤Î encoding °À­¤«¡¢ - Í×ÁǤνªλ¤ޤǸúÎϤò»ý¤Á¤ޤ¹¡£

    - -

    encoding °À­¤ϥ¨¥󥳡¼¥ɤÎÊѹ¹¤򤷤¿¤¤ var - ¤ÎÁ°¤Ë ¤¢¤ëɬÍפ¬¤¢¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¤ޤ¿¡¢ISO-8859-1 ¥¨¥󥳡¼¥ǥ£¥󥰤Ç - ÄêµÁ¤µ¤ì¤Ƥ¤¤ëÆÃÊ̤Êʸ»ú¤À¤±¤¬¥¨¥󥳡¼¥ɤµ¤ì¤ޤ¹¡£ - Ê̤Îʸ»ú¤Υ¨¥󥳡¼¥ǥ£¥󥰤ξì¹ç¤ϡ¢¤³¤Υ¨¥󥳡¼¥ǥ£¥󥰤Ï - ˾¤ߤηë²̤ˤʤé¤ʤ¤¤«¤⤷¤ì¤ޤ»¤ó¡£

    - -
    - ¥¯¥í¥¹¥µ¥¤¥ȥ¹¥¯¥ê¥ץƥ£¥󥰤ÎÌäÂê¤òÈ򤱤뤿¤á¤ˡ¢ - ¾ï¤Ë¥桼¥¶¤«¤é¤Υǡ¼¥¿¤򥨥󥳡¼¥ɤ¹¤٤­¤Ǥ¹¡£ -
    -
    -
    - - -

    exec Í×ÁÇ

    -

    exec ¥³¥ޥó¥ɤϻØÄꤵ¤줿¥·¥§¥륳¥ޥó¥ɤä CGI ¥¹¥¯¥ê¥ץȤò - ¼¹Ԥ·¤ޤ¹¡£mod_cgi ¤¬¥µ¡¼¥ФËÁȤ߹þ¤ޤì¤Ƥ¤¤뤤¤ʤ±¤ì¤Ð - ¤ʤê¤ޤ»¤ó¡£Option - IncludesNOEXEC ¤Ϥ³¤Υ³¥ޥó¥ɤò̵¸ú¤ˤ·¤ޤ¹¡£ - »ÈÍѲÄǽ¤Ê°À­¤ϼ¡¤ÎÄ̤ê¤Ǥ¹¡£

    - -
    -
    cgi
    -

    ÃͤÏ (%-¥¨¥󥳡¼¥ɤµ¤줿) URL ¤ò»ØÄꤷ¤ޤ¹¡£¥ѥ¹¤¬ - ¥¹¥é¥å·¥å (/) ¤ǻϤޤé¤ʤ¤¤Ȥ­¤ϡ¢¥ɥ­¥å¥á¥ó¥Ȥ«¤é¤Î - ÁêÂХѥ¹¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£¤³¤Υѥ¹¤ǻ²¾Ȥµ¤ì¤Ƥ¤¤ë¥ɥ­¥å¥á¥ó¥ȤÏ - ¥µ¡¼¥Ф¬ CGI ¥¹¥¯¥ê¥ץȤȤ·¤ư·¤äƤ¤¤ʤ¯¤Ƥâ CGI ¥¹¥¯¥ê¥ץȤȤ·¤Æ - µ¯ư¤µ¤ì¤ޤ¹¡£¤¿¤À¤·¡¢¥¹¥¯¥ê¥ץȤΤ¢¤ë¥ǥ£¥쥯¥ȥê¤ǤÏ - (ScriptAlias - ¤ä Option ExecCGI - ¤ˤè¤äÆ) CGI ¥¹¥¯¥ê¥ץȤλÈÍѤ¬µö²Ĥµ¤ì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    CGI ¥¹¥¯¥ê¥ץȤˤϡ¢¥¯¥饤¥¢¥ó¥Ȥ«¤é¤θµ¡¹¤Υꥯ¥¨¥¹¥ȤÎ - PATH_INFO ¤ȥ¯¥¨¥꡼ʸ»úÎó (QUERY_STRING) ¤¬ÅϤµ¤ì¤ޤ¹¡£ - ¤³¤ì¤é¤Ï URL ¥ѥ¹¤Ȥ·¤ÆÆÃÄê¤Ǥ­¤ʤ¤¤â¤ΤǤ¹¡£ - ¥¹¥¯¥ê¥ץȤÏɸ½à CGI ´Ķ­¤˲䨤ơ¢include Êѿô¤ò - »ÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Îã

    - <!--#exec cgi="/cgi-bin/example.cgi" --> -

    - -

    ¥¹¥¯¥ê¥ץȤ¬¡¢½ÐÎϤÎÂå¤ï¤ê¤Ë Location: ¥إåÀ¤òÊ֤¹¤ȡ¢ - HTML ¤Υ¢¥󥫡¼ (ÌõÃí¡§¥ê¥ó¥¯) ¤ËÊѴ¹¤µ¤ì¤ޤ¹¡£

    - -

    exec cgi ¤è¤ê¤⡢ - include virtual - ¤ÎÊý¤ò»Ȥ¦¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£Æäˡ¢CGI ¤ؤÎÄɲäΰú¿ô¤ò - ¥¯¥¨¥꡼ʸ»úÎó¤ò»ȤäÆÅϤ¹¤³¤ȤÏ exec cgi ¤Ï - ¤Ǥ­¤ޤ»¤󤬡¢include virtual ¤ϰʲ¼¤Τ褦¤ˤ·¤Æ - ²Äǽ¤Ǥ¹¡£

    - -

    - <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> -

    -
    - -
    cmd
    -

    ¥µ¡¼¥ФϻØÄꤵ¤줿ʸ»úÎó¤ò /bin/sh ¤ò»ȤäÆ - ¼¹Ԥ·¤ޤ¹¡£¥³¥ޥó¥ɤÏÄ̾ï¤Î CGI Êѿô¤˲ä¨¤Æ include Êѿô¤â»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤ۤȤó¤ɤξì¹硢#include - virtual ¤ò»Ȥ¦Êý¤¬ #exec cgi ¤ä #exec - cmd ¤ò»Ȥ¦¤è¤ê¤âÎɤ¤¤Ǥ¹¡£Á°¼Ô (#include virtual) - ¤Ïɸ½à¤Î Apache ¤Υµ¥֥ꥯ¥¨¥¹¥ȵ¡¹½¤ò»Ȥäƥե¡¥¤¥ë¤䥹¥¯¥ê¥ץȤÎ - ½ÐÎϤò¼è¤ê¹þ¤ߤޤ¹¡£ - ¤³¤Á¤é¤ÎÊý¤¬¤褯¥ƥ¹¥Ȥµ¤ì¥á¥ó¥ƥʥ󥹤µ¤줿Êýˡ¤Ǥ¹¡£

    - -

    ¤µ¤é¤ˡ¢Win32 ¤Τ褦¤ʤ¤¤¯¤Ĥ«¤Υץé¥åȥե©¡¼¥à¤䡢suexec ¤ò»ȤäƤ¤¤ë unix ¤Ǥϡ¢ - exec ¥ǥ£¥쥯¥ƥ£¥֤Υ³¥ޥó¥ɤË - °ú¿ô¤òÅϤ·¤¿¤ꡢ¥³¥ޥó¥ɤ˶õÇò¤òÆþ¤ì¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£ - ¤Ǥ¹¤«¤顢°ʲ¼¤Τâ¤ΤÏ unix ¤Î suexec ¤Ǥʤ¤ÀßÄê¤ǤÏưº¤ޤ¹¤¬¡¢ - Win32 ¤ä suexec ¤ò»ȤäƤ¤¤ë unix ¤ǤϴüÂԤ·¤¿·ë²̤ˤϤʤê¤ޤ»¤ó:

    - -

    - <!--#exec cmd="perl /path/to/perlscript arg1 arg2" --> -

    -
    -
    - - -

    fsize Í×ÁÇ

    -

    ¤³¤Υ³¥ޥó¥ɤϻØÄꤵ¤줿¥ե¡¥¤¥ë¤ÎÂ礭¤µ¤ò sizefmt ¤Î - ½񼰻ØÄê¤˴ð¤Ť¤¤ƽÐÎϤ·¤ޤ¹¡£°À­¤ϼ¡¤ÎÄ̤ê¤Ǥ¹¡£

    - -
    -
    file
    -
    ÃͤϲòÀϤµ¤ì¤Ƥ¤¤ë¥ɥ­¥å¥á¥ó¥Ȥθºߤ¹¤ë¥ǥ£¥쥯¥ȥ꤫¤é¤Î - ÁêÂХѥ¹¤Ǥ¹¡£
    - -
    virtual
    -
    ÃͤÏ (% ¥¨¥󥳡¼¥ɤµ¤줿) URL-path ¤Ǥ¹¡£¥¹¥é¥å·¥å (/) ¤Ç - »Ϥޤé¤ʤ¤¤Ȥ­¤ϥɥ­¥å¥á¥ó¥Ȥ«¤é¤ÎÁêÂХѥ¹¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£ - CGI ¤νÐÎϤΥµ¥¤¥º¤ϥץê¥ó¥È¤µ¤ì¤ޤ»¤ó¡£CGI - ¥¹¥¯¥ê¥ץȼ«ÂΤΥµ¥¤¥º¤¬¥ץê¥ó¥Ȥµ¤ì¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£
    -
    - - -

    flastmod Í×ÁÇ

    -

    ¤³¤Υ³¥ޥó¥ɤϻØÄꤵ¤줿¥ե¡¥¤¥ë¤κǽª½¤Àµ»þ¹ï¤ò - timefmt ½񼰻ØÄê¤˽¾¤äÆɽ¼¨¤·¤ޤ¹¡£ - »ØÄê²Äǽ¤Ê°À­¤Ï fsize ¥³¥ޥó¥ɤÈƱ¤¸¤Ǥ¹¡£

    - - -

    include Í×ÁÇ

    -

    ¤³¤Υ³¥ޥó¥ɤÏÊ̤Îʸ½ñ¤ä¥ե¡¥¤¥ë¤Υƥ­¥¹¥Ȥò²òÀϤ·¤Ƥ¤¤ë¥ե¡¥¤¥ë¤Ë - ÁÞÆþ¤·¤ޤ¹¡£ÁÞÆþ¤µ¤ì¤ë¥ե¡¥¤¥ë¤ϥ¢¥¯¥»¥¹À©¸æ¤δÉÍý²¼¤ˤ¢¤ê¤ޤ¹¡£ - ²òÀϤ·¤Ƥ¤¤ë¥ե¡¥¤¥ë¤Î¸ºߤ¹¤ë¥ǥ£¥쥯¥ȥê¤Ë - Option IncludesNOEXEC - ¤¬ÀßÄꤵ¤ì¤Ƥ¤¤ë¾ì¹硢text MIME ¥¿¥¤¥× (text/plain, - text/html Åù) ¤Υɥ­¥å¥á¥ó¥ȤΤߥ¤¥󥯥롼¥ɤ¬¹Ԥʤï¤ì¤ޤ¹¡£ - ¤½¤Î¾¤ξì¹ç¤ϡ¢¥¯¥¨¥꡼ʸ»úÎó¤â´ޤᡢ¥³¥ޥó¥ɤǻØÄꤵ¤줿 - ´°Á´¤Ê URL ¤ò»ȤäÆÉáÄ̤Ë CGI ¥¹¥¯¥ê¥ץȤ¬¸ƤӽФµ¤ì¤ޤ¹¡£

    - -

    °À­¤¬ʸ½ñ¤ΰÌÃ֤ò»ØÄꤷ¤ޤ¹¡£include ¥³¥ޥó¥ɤËͿ¤¨¤é¤줿¤½¤줾¤ì¤Î - °À­¤ËÂФ·¤ÆÁÞÆþºî¶Ȥ¬¹Ԥʤï¤ì¤ޤ¹¡£ͭ¸ú¤Ê°À­¤ϼ¡¤ÎÄ̤ê¤Ǥ¹¡£

    - -
    -
    file
    -
    ÃͤϲòÀϤµ¤ì¤Ƥ¤¤ë¥ɥ­¥å¥á¥ó¥Ȥθºߤ¹¤ë¥ǥ£¥쥯¥ȥ꤫¤é¤Î - ÁêÂХѥ¹¤Ǥ¹¡£ - ../ ¤ò´ޤó¤Ǥ¤¤¿¤ꡢÀäÂХѥ¹¤ò»ØÄꤷ¤¿¤ê¤ϤǤ­¤ޤ»¤ó¡£ - ¤Ǥ¹¤«¤顢¥ɥ­¥å¥á¥ó¥ȥ롼¥Ȥγ°¤ˤ¢¤ë¥ե¡¥¤¥ë¤䡢¥ǥ£¥쥯¥ȥ깽¤¤Ç - ¾å°̤ˤ¢¤ë¥ե¡¥¤¥ë¤òÁÞÆþ¤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£ - ¾ï¤ˤ³¤Î°À­¤è¤ê¤ϡ¢virtual °À­¤ò»Ȥ¦¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£ -
    - -
    virtual
    -

    ÃͤϲòÀϤµ¤ì¤Ƥ¤¤ë¥ɥ­¥å¥á¥ó¥Ȥ«¤é¤Î (% ¥¨¥󥳡¼¥ɤµ¤줿) URL - ¤Ǥ¹¡£URL ¤ˤϥ¹¥­¡¼¥à¤ä¥ۥ¹¥È̾¤ò´ޤá¤뤳¤ȤϤǤ­¤ޤ»¤󡣥ѥ¹¤ȡ¢ - ¤⤷¤¢¤ì¤Х¯¥¨¥꡼ʸ»úÎó¤ò»ØÄê¤Ǥ­¤ë¤À¤±¤Ǥ¹¡£¥¹¥é¥å·¥å (/) ¤«¤é - »Ϥޤé¤ʤ¤¾ì¹ç¤ϡ¢¥ɥ­¥å¥á¥ó¥Ȥ«¤é¤ÎÁêÂХѥ¹¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£

    - -

    URL ¤Ï°À­¤«¤éºî¤é¤졢¤½¤Î URL ¤򥯥饤¥¢¥ó¥Ȥ¬¥¢¥¯¥»¥¹¤·¤¿¤Ȥ­¤Ë - ½ÐÎϤµ¤ì¤ëÆâÍƤ¬²òÀϸå¤νÐÎϤ˴ޤá¤é¤ì¤ޤ¹¡£¤Ǥ¹¤«¤顢ÁÞÆþ¤µ¤ì¤ë - ¥ե¡¥¤¥ë¤ÏÆþ¤ì»ҹ½¤¤ˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    »ØÄꤵ¤줿 URL ¤¬ CGI ¥ץí¥°¥é¥à¤Ǥ¢¤ä¿¾ì¹ç¤ϡ¢ - ¥ץí¥°¥é¥ब¼¹Ԥµ¤졢¤½¤νÐÎϤ¬²òÀϤ·¤Ƥ¤¤ë¥ե¡¥¤¥ëÃæ¤Î - ¥ǥ£¥쥯¥ƥ£¥֤¬¤¢¤ä¿°ÌÃ֤ËÁÞÆþ¤µ¤ì¤ޤ¹¡£CGI ¤Î url ¤Ë - ¥¯¥¨¥꡼ URL ¤òÆþ¤ì¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    - <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> -

    - -

    HTML ¥ɥ­¥å¥á¥ó¥ȤË CGI ¥ץí¥°¥é¥à¤νÐÎϤò´ޤá¤ëÊýˡ¤Ȥ·¤Ƥϡ¢ - include virtual ¤ÎÊý¤¬ exec cgi ¤è¤ê¤â - ¹¥¤ޤ·¤¤Êýˡ¤Ǥ¹¡£

    -
    -
    - - -

    printenv Í×ÁÇ

    -

    ¤³¤ì¤ϡ¢¸ºߤ¹¤뤹¤٤ƤÎÊѿô¤Ȥ½¤ÎÃͤòɽ¼¨¤·¤ޤ¹¡£Apache 1.3.12 ¤«¤顢 - ÆÃÊ̤Êʸ»ú¤ϽÐÎϤµ¤ì¤ëÁ°¤˥¨¥ó¥ƥ£¥ƥ£¥¨¥󥳡¼¥É (¾ܺ٤Ï echo Í×ÁǤ򻲾È) - ¤µ¤ì¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£°À­¤Ϥ¢¤ê¤ޤ»¤ó¡£

    - -

    Îã

    - <!--#printenv --> -

    - - -

    set Í×ÁÇ

    -

    ¤³¤ì¤ÏÊѿô¤ÎÃͤòÀßÄꤷ¤ޤ¹¡£°À­¤ϼ¡¤ÎÄ̤ê¤Ǥ¹¡£

    - -
    -
    var
    -
    ÀßÄꤹ¤ëÊѿô¤Î̾Á°¡£
    - -
    value
    -
    Êѿô¤ËÀßÄꤹ¤ëÃ͡£
    -
    - -

    Îã

    - <!--#set var="category" value="help" --> -

    - -
    top
    -
    -

    Include Êѿô

    - - -

    ɸ½à CGI ´Ķ­¤ÎÊѿô¤˲䨤ơ¢echo ¥³¥ޥó¥ɤ䡢 - if ¤ä elif, ¤½¤ì¤˥ɥ­¥å¥á¥ó¥Ȥ«¤é¸ƤӽФµ¤ì¤ë - ¤¹¤٤ƤΥץí¥°¥é¥फ¤é»ÈÍѤǤ­¤ëÊѿô¤¬¤¢¤ê¤ޤ¹¡£

    - -
    -
    DATE_GMT
    -
    ¥°¥ê¥˥å¸ɸ½à»þ¤ˤè¤븽º߻þ¹
    - -
    DATE_LOCAL
    -
    ¥í¡¼¥«¥ë¤Îɸ½à»þ¤ˤè¤븽º߻þ¹
    - -
    DOCUMENT_NAME
    -
    ¥桼¥¶¤¬¥ꥯ¥¨¥¹¥Ȥ·¤¿ (¥ǥ£¥쥯¥ȥê¤ò½ü¤¤¤¿) ¥ե¡¥¤¥ë̾¡£
    - -
    DOCUMENT_URI
    -
    ¥桼¥¶¤¬¥ꥯ¥¨¥¹¥Ȥ·¤¿ (% ¥¨¥󥳡¼¥ɤµ¤줿) URL-path¡£ - ÁÞÆþ¥ե¡¥¤¥뤬Æþ¤ì»ҤˤʤäƤ¤¤ë¾ì¹ç¤ϡ¢²òÀϤµ¤ì¤Ƥ¤¤ë - ¥ɥ­¥å¥á¥ó¥ȤÎ URL ¤ǤϤʤ¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£
    - -
    LAST_MODIFIED
    -
    ¥桼¥¶¤¬¥ꥯ¥¨¥¹¥Ȥ·¤¿¥ɥ­¥å¥á¥ó¥Ȥκǽª½¤Àµ»þ¹
    - -
    QUERY_STRING_UNESCAPED
    -
    ¥¯¥¨¥꡼ʸ»úÎ󤬤¢¤ë¾ì¹硢¤³¤ÎÊѿô¤ˤÏ (%-¥ǥ³¡¼¥ɤµ¤줿) - ¥¯¥¨¥꡼ʸ»úÎó¤¬ÂåÆþ¤µ¤ì¤Ƥ¤¤ơ¢shell ¤ǻÈÍѤǤ­¤ë¤褦¤Ë - ¥¨¥¹¥±¡¼¥×¤µ¤ì¤Ƥ¤¤ޤ¹ (& - ¤Ȥ¤¤ä¿Æüìʸ»ú¤ˤϥХ寥¹¥é¥å·¥夬ľÁ°¤ËÃ֤«¤ì¤ޤ¹)¡£
    -
    -
    top
    -
    -

    ÊѿôÃִ¹

    - -

    ÊѿôÃִ¹¤Ϥ¿¤¤¤Ƥ¤¤ξì¹ç SSI ¥ǥ£¥쥯¥ƥ£¥֤ΰú¿ô¤Ȥ·¤ÆÂÅÅö¤ʾì½ê¤ˤ¢¤ë - °úÍÑÉä¤ǰϤޤ줿ʸ»úÎóÃæ¤ǹԤʤï¤ì¤ޤ¹¡£¤³¤ì¤˳ºÅö¤¹¤ë¤â¤Τˤϡ¢ - config, - exec, flastmod, fsize, - include, echo, set ¤Î - ³ƥǥ£¥쥯¥ƥ£¥֤ȡ¢¾ò·ïʬ´ôÍѤΥª¥ڥ졼¥¿¤ؤΰú¿ô¤¬¤¢¤ê¤ޤ¹¡£ - ¥ɥ뵭¹æ¤ϥХ寥¹¥é¥å·¥å¤ò»Ȥ¦¤³¤ȤǻȤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    - <!--#if expr="$a = \$test" --> -

    - -

    Êѿô̾¤Ȥ·¤Ƥߤʤµ¤ì¤ëʸ»úÎó¤ÎÃæ¤ÇÊѿô¤ؤλ²¾ȤòÃִ¹¤¹¤ëɬÍפ¬¤¢¤ë¤Ȥ­¤ϡ¢ - ¥·¥§¥ë¤ǤÎÊѿôÃִ¹¤Τ褦¤ˡ¢Ãæ³ç¸̤dzç¤뤳¤ȤǶèÊ̤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    - <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --> -

    - -

    ¤³¤ÎÎã¤Ǥϡ¢REMOTE_HOST ¤¬ - "X" ¤Ç REQUEST_METHOD ¤¬ - "Y" ¤ΤȤ­¤ËÊѿô Zed ¤ò "X_Y" - ¤ËÀßÄꤷ¤ޤ¹¡£

    - -

    °ʲ¼¤ÎÎã¤Ǥϡ¢DOCUMENT_URI ¤¬ /foo/file.html - ¤ΤȤ­¤Ë "in foo" ¤ò¡¢/bar/file.html ¤ΤȤ­¤Ë "in bar" ¤ò¡¢ - ¤ɤÁ¤é¤Ǥâ¤ʤ¤¤Ȥ­¤ˤÏ "in neither" ¤òɽ¼¨¤·¤ޤ¹¡£

    - -

    - <!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' -->
    - - in foo
    -
    - <!--#elif expr='"$DOCUMENT_URI" = "/bar/file.html"' -->
    - - in bar
    -
    - <!--#else -->
    - - in neither
    -
    - <!--#endif --> -

    -
    top
    -
    -

    ¥եí¡¼À©¸æÍ×ÁÇ

    - - -

    ´ðËÜŪ¤ʥեí¡¼¥³¥ó¥ȥí¡¼¥ëÍ×ÁǤϼ¡¤ÎÄ̤ê¤Ǥ¹¡£

    - -

    - <!--#if expr="test_condition" -->
    - <!--#elif expr="test_condition" -->
    - <!--#else -->
    - <!--#endif --> -

    - -

    if Í×ÁǤϥץí¥°¥é¥ߥ󥰸À¸ì¤Î - if ʸ¤ÈƱ¤¸¤褦¤Ëưº¤ޤ¹¡£¾ò·郎ɾ²Á¤µ¤졢·ë²̤¬¿¿¤Ǥ¢¤ì¤м¡¤Î - elif ¤« else ¤« endif - Í×ÁǤޤǤÎʸ»úÎ󤬽ÐÎϤËÁÞÆþ¤µ¤ì¤ޤ¹¡£

    - -

    elif ¤ä else ʸ¤Ï test_condition - ¤¬µ¶¤ΤȤ­¤˥ƥ­¥¹¥Ȥò½ÐÎϤËÁÞÆþ¤¹¤뤿¤á¤˻Ȥï¤ì¤ޤ¹¡£ - ¤³¤ì¤é¤ÎÍ×ÁǤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    endif Í×ÁǤÏ if - Í×ÁǤò½ªλ¤µ¤»¤ޤ¹¡£¤³¤ÎÍ×ÁǤÏɬ¿ܤǤ¹¡£

    - -

    test_condition ¤ϰʲ¼¤Τɤ줫¤Ǥ¹:

    - -
    -
    string
    -
    string ¤¬¶õ¤Ǥʤ¤¾ì¹ç¤˿¿¤Ǥ¹
    - -
    string1 = string2
    - string1 == string2
    - string1 != string2
    - -

    string1 ¤È string2 ¤òÈæ³Ӥ·¤ޤ¹¡£ - string2 ¤¬ /string/ - ¤Ȥ¤¤¦·Á¼°¤Ǥ¢¤ì¤С¢Àµµ¬ɽ¸½¤Ȥ·¤ÆÈæ³Ӥµ¤ì¤ޤ¹¡£Àµµ¬ɽ¸½¤Ï - PCRE ¥¨¥󥸥ó¤ǼÂÁõ¤µ¤ì¤Ƥ¤¤ơ¢ - perl 5 ¤ÈƱ¤¸¹½ʸ¤ò»ÈÍѤ·¤ޤ¹¡£ - == ¤Ïñ¤Ë = ¤ÎÊÌ̾¤ǡ¢¤ޤ俤¯Ʊ¤¸ưºî¤ò - ¤·¤ޤ¹¡£

    - -

    Àµ¤ΥޥåÁ¥ó¥° (= ¤ޤ¿¤Ï ==) ¤ξì¹ç¤ϡ¢ - Àµµ¬ɽ¸½¤ǥ°¥롼¥×ʬ¤±¤µ¤줿¥ѡ¼¥Ĥ򥭥ã¥ץÁ¥㤹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¥­¥ã¥ץÁ¥㤵¤줿Éôʬ¤ÏÆüìÊѿô $1 .. $9 - ¤˳ÊǼ¤µ¤ì¤ޤ¹¡£

    - -

    Îã

    - <!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" -->
    - - <!--#set var="session" value="$1" -->
    -
    - <!--#endif --> -

    -
    - -
    string1 < string2
    - string1 <= string2
    - string1 > string2
    - string1 >= string2
    - -
    string1 ¤È string2 ¤òÈæ³Ӥ·¤ޤ¹¡£ - ʸ»úÎó¤Ȥ·¤ÆÈæ³Ӥµ¤ì¤ë (strcmp(3) ¤ò»ÈÍÑ) - ¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£¤Ǥ¹¤«¤顢ʸ»úÎó "100" ¤Ï "20" - ¤è¤ê¤⾮¤µ¤¤¤³¤Ȥˤʤê¤ޤ¹¡£
    - -
    ( test_condition )
    -
    test_condition ¤¬¿¿¤ΤȤ­¡¢¿¿
    - -
    ! test_condition
    -
    test_condition ¤¬µ¶¤ΤȤ­¡¢¿¿
    - -
    test_condition1 && - test_condition2
    -
    test_condition1 ¤«¤Ä - test_condition2 ¤¬¿¿¤ΤȤ­¡¢¿¿
    - -
    test_condition1 || - test_condition2
    -
    test_condition1 ¤ޤ¿¤Ï - test_condition2 ¤¬¿¿¤ΤȤ­¡¢¿¿
    -
    - -

    "=" ¤È "!=" ¤ÎÊý¤¬ "&&" ¤è¤ê - ¤­¤Ĥ¯«Çû¤·¤ޤ¹¡£"!" ¤Î«Çû¤¬°ìÈ֤­¤Ĥ¯¤ʤäƤ¤¤ޤ¹¡£ - ¤Ǥ¹¤«¤é°ʲ¼¤ÎÆó¤ĤÏÅù²Á¤Ǥ¹:

    - -

    - <!--#if expr="$a = test1 && $b = test2" -->
    - <!--#if expr="($a = test1) && ($b = test2)" --> -

    - -

    ¿¿µ¶Ãͥª¥ڥ졼¥¿ && ¤È || - ¤ÏƱ¤¸ͥÀèÅ٤Ǥ¹¡£ - ¤³¤ì¤é¤Υª¥ڥ졼¥¿¤ǰìÊý¤ˤè¤궯¤¤ͥÀèÅ٤ò¤Ĥ±¤¿¤¤¾ì¹ç¤ˤϡ¢ - ³ç¸̤ò»Ȥ¦ɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    Êѿô¤䥪¥ڥ졼¥¿¤Ȥ·¤Æǧ¼±¤µ¤ì¤ʤ¤¤â¤ΤϤ¹¤٤Æʸ»úÎó¤Ȥ·¤Æ - °·¤ï¤ì¤ޤ¹¡£ʸ»úÎó¤ϰúÍÑÉä¤ǰϤळ¤Ȥâ¤Ǥ­¤ޤ¹: 'string' - ¤Τ褦¤ˡ£°úÍÑÉä¤ǰϤޤì¤Ƥ¤¤ʤ¤ʸ»úÎó¤ˤ϶õÇò (¥¹¥ڡ¼¥¹¤ȥ¿¥Ö) - ¤ò´ޤá¤뤳¤ȤϤǤ­¤ޤ»¤󡣤½¤ì¤é¤ÏÊѿô¤ʤɤζç¤òʬΥ¤¹¤뤿¤á¤Ë - »Ȥï¤ì¤Ƥ¤¤뤫¤é¤Ǥ¹¡£ʣ¿ô¤Îʸ»úÎ󤬳¤¤¤Ƥ¤¤ë¤Ȥ­¤ϡ¢ - ¶õÇò¤ò´֤ËÆþ¤ì¤ưì¤Ĥˤ¯¤äĤ±¤é¤ì¤ޤ¹¡£¤Ǥ¹¤«¤顢

    - -

    string1    string2 ¤Ï string1 string2 ¤ˤʤê¤ޤ¹¡£
    -
    - ¤ޤ¿¡¢
    -
    - 'string1    string2' ¤Ï string1    string2 - ¤ˤʤê¤ޤ¹¡£

    - -

    ¿¿µ¶ÃÍɽ¸½¤κÇŬ²½

    -

    ¼°¤¬¤â¤äÈʣ»¨¤ˤʤꡢ½èÍý¤Î®ÅÙÄ㲼¤¬¸²Ãø¤ˤʤ俾ì¹ç¤ϡ¢ - ɾ²Á¥롼¥ë¤˽¾¤äƺÇŬ²½¤·¤Ƥߤë¤ÈÎɤ¤¤Ǥ·¤礦¡£

    -
      -
    • ɾ²Á¤Ϻ¸¤«¤鱦¤˸þ¤«¤äƹԤï¤ì¤ޤ¹¡£
    • -
    • ÆóÃͿ¿µ¶Ãͥª¥ڥ졼¥¿ (&& ¤È ||) - ¤ϡ¢½ÐÍè¤ë¸¤êûÍíɾ²Á¤µ¤ì¤ޤ¹¡£¤Ĥޤê·ë²̤Ȥ·¤ƾ嵭¤Υ롼¥ë¤ϡ¢ - mod_include ¤¬º¸¤Îɾ²Á¼°¤òɾ²Á¤·¤ޤ¹¡£ - º¸¦¤Ƿë²̤ò½½ʬ·èÄê¤Ǥ­¤ë¾ì¹ç¤ϡ¢ɾ²Á¤Ϥ½¤³¤ÇÄä»ߤ·¤ޤ¹¡£ - ¤½¤¦¤Ǥʤ¤¾ì¹ç¤ϱ¦¦¤òɾ²Á¤·¤ơ¢º¸¤ȱ¦¤ÎξÊý¤«¤é·ë²̤ò·׻»¤·¤ޤ¹¡£
    • -
    • ûÍíɾ²Á¤Ïɾ²Á¤ÎÂоݤËÀµµ¬ɽ¸½¤¬´ޤޤì¤ë¾ì¹硢¥ª¥դˤʤê¤ޤ¹¡£ - ¸åÊý»²¾Ȥ¹¤ëÊѿô ($1 .. $9) - ¤òËä¤á¤뤿¤á¤ˡ¢¼ºݤËɾ²Á¤¹¤ëɬÍפ¬¤¢¤뤫¤é¤Ǥ¹¡£
    • -
    -

    ÆÃÄê¤μ°¤¬¤ɤΤ褦¤˰·¤ï¤ì¤뤫¤òÃΤꤿ¤¤¾ì¹ç¤ϡ¢ - -DDEBUG_INCLUDE ¥³¥ó¥ѥ¤¥饪¥ץ·¥ç¥ó¤òÉդ±¤Æ - mod_include ¤ò¥ꥳ¥ó¥ѥ¤¥뤹¤ë¤ÈÎɤ¤¤Ǥ·¤礦¡£ - ¤³¤ì¤ˤè¤ꡢÁ´¤ƤΥѡ¼¥¹¤µ¤줿¼°¤ËÂФ·¤ơ¢»ú¶ç²òÀϾðÊó¡¢ - ¥ѡ¼¥¹¥ĥ꡼¤ȡ¢ - ¤½¤줬¤ɤΤ褦¤˥¯¥饤¥¢¥ó¥ȤËÁ÷¤é¤줿½ÐÎϤޤÇɾ²Á¤µ¤줿¤«¤ò - ÁÞÆþ¤·¤ޤ¹¡£

    -
    -
    -
    top
    -

    SSIEndTag ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:include Í×ÁǤò½ªλ¤µ¤»¤ëʸ»úÎó
    ¹½ʸ:SSIEndTag tag
    ¥ǥե©¥ë¥È:SSIEndTag "-->"
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_include
    ¸ߴ¹À­:2.0.30 °ʹߤÇÍøÍѲÄǽ
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï mod_include ¤¬õ¤¹¡¢ - include Í×ÁǤνªλ¤򼨤¹ʸ»úÎó¤òÊѹ¹¤·¤ޤ¹¡£

    - -

    Îã

    - SSIEndTag "%>" -

    - - -

    »²¾È

    - -
    -
    top
    -

    SSIErrorMsg ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - - -
    ÀâÌÀ:SSI ¤Υ¨¥顼¤¬¤¢¤ä¿¤Ȥ­¤Ëɽ¼¨¤µ¤ì¤륨¥顼¥á¥å»¡¼¥¸
    ¹½ʸ:SSIErrorMsg message
    ¥ǥե©¥ë¥È:SSIErrorMsg "[an error occurred while processing this -directive]"
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:All
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_include
    ¸ߴ¹À­:¥С¼¥¸¥ç¥ó 2.0.30 °ʹߤǻÈÍѲÄǽ
    -

    SSIErrorMsg ¥ǥ£¥쥯¥ƥ£¥֤Ï mod_include - ¤¬¥¨¥顼¤¬µ¯¤³¤ä¿¤Ȥ­¤Ëɽ¼¨¤¹¤ë¥á¥å»¡¼¥¸¤òÊѹ¹¤·¤ޤ¹¡£¥ץí¥À¥¯¥·¥ç¥󥵡¼¥ФǤÏ - ¥á¥å»¡¼¥¸¤¬¥桼¥¶¤Ëɽ¼¨¤µ¤ì¤ʤ¤¤褦¤ˤ¹¤뤿¤á¤Ë - ¥ǥե©¥ë¥ȥ¨¥顼¥á¥å»¡¼¥¸¤ò "<!-- Error -->" - ¤ËÊѤ¨¤ë¤Ȥ¤¤¦¤褦¤ʤ³¤Ȥò¹ͤ¨¤뤫¤⤷¤ì¤ޤ»¤ó¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï <!--#config - errmsg=message --> Í×ÁǤÈƱ¤¸¸ú²̤ˤʤê¤ޤ¹¡£

    - -

    Îã

    - SSIErrorMsg "<!-- Error -->" -

    - -
    -
    top
    -

    SSIStartTag ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:include Í×ÁǤ򳫻Ϥ¹¤ëʸ»úÎó
    ¹½ʸ:SSIStartTag tag
    ¥ǥե©¥ë¥È:SSIStartTag "<!--#"
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_include
    ¸ߴ¹À­:¥С¼¥¸¥ç¥ó 2.0.30 °ʹߤǻÈÍѲÄǽ
    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï mod_include ¤¬õ¤¹¡¢include - Í×ÁǤγ«»Ϥ򼨤¹ʸ»úÎó¤òÊѹ¹¤·¤ޤ¹¡£

    - -

    Æó¤ĤΥµ¡¼¥ФÇ (¤⤷¤«¤¹¤ë¤ÈÊ̡¹¤ÎÃʳ¬¤Ç) ¥ե¡¥¤¥ë¤νÐÎϤò²òÀϤ·¤Ƥ¤¤ơ¢ - ¤½¤줾¤ì¤˰㤦¥³¥ޥó¥ɤò½èÍý¤µ¤»¤¿¤¤¡¢ - ¤Ȥ¤¤¦¤褦¤ʤȤ­¤ˤ³¤Υª¥ץ·¥ç¥ó¤ò»Ȥ¤¤ޤ¹¡£

    - -

    Îã

    - SSIStartTag "<%"
    - SSIEndTag "%>" -

    - -

    ¾å¤ÎÎã¤Τ褦¤ËÂбþ¤¹¤ë - SSIEndTag ¤òʻ¤»¤ƻȤ¦¤ȡ¢ - ²¼¤˼¨¤¹Îã¤Τ褦¤Ë SSI ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¨¤ޤ¹:

    - -

    °㤦³«»ϤȽªλ¤Υ¿¥°¤ò»Ȥä¿ SSI ¥ǥ£¥쥯¥ƥ£¥Ö

    - <%printenv %> -

    - -

    »²¾È

    - -
    -
    top
    -

    SSITimeFormat ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - - -
    ÀâÌÀ:ÆüÉդ±¤򸽤¹ʸ»úÎó¤ν񼰤òÀßÄꤹ¤ë
    ¹½ʸ:SSITimeFormat formatstring
    ¥ǥե©¥ë¥È:SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:All
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_include
    ¸ߴ¹À­:2.0.30 °ʹߤǻÈÍѲÄǽ
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï DATE ´Ķ­Êѿô¤ò echo ¤·¤ÆÆüÉդ򸽤¹ʸ»úÎó¤¬ - ɽ¼¨¤µ¤ì¤ë¤Ȥ­¤ν񼰤òÊѹ¹¤·¤ޤ¹¡£formatstring ¤Ï - C ɸ½à¥饤¥֥é¥ê¤Î strftime(3) ¤ÈƱ¤¸·Á¼°¤Ǥ¹¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï <!--#config - timefmt=formatstring --> Í×ÁǤÈƱ¤¸¸ú²̤ˤʤê¤ޤ¹¡£

    - -

    Îã

    - SSITimeFormat "%R, %B %d, %Y" -

    - -

    ¾å¤Υǥ£¥쥯¥ƥ£¥֤Ǥϡ¢ÆüÉդÏ "22:26, June 14, 2002" ¤Ȥ¤¤¦ - ·Á¼°¤Çɽ¼¨¤µ¤ì¤ޤ¹¡£

    - -
    -
    top
    -

    SSIUndefinedEcho ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - - -
    ÀâÌÀ:̤ÄêµÁ¤ÎÊѿô¤¬ echo ¤µ¤줿¤Ȥ­¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó
    ¹½ʸ:SSIUndefinedEcho string
    ¥ǥե©¥ë¥È:SSIUndefinedEcho "(none)"
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:All
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_include
    ¸ߴ¹À­:2.0.34 °ʹߤÇÍøÍѲÄǽ
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÊѿô¤¬ÄêµÁ¤µ¤ì¤Ƥ¤¤ʤ¤¤ˤâ´ؤï¤餺 - "echo" ¤µ¤줿¤Ȥ­¤Ë mod_include - ¤¬ɽ¼¨¤¹¤ëʸ»úÎó¤òÊѹ¹¤·¤ޤ¹¡£

    - -

    Îã

    - SSIUndefinedEcho "<!-- undef -->" -

    - -
    -
    top
    -

    XBitHack ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¼¹ԥӥåȤ¬ÀßÄꤵ¤줿¥ե¡¥¤¥ë¤Î SSI ¥ǥ£¥쥯¥ƥ£¥֤ò -²òÀϤ¹¤ë
    ¹½ʸ:XBitHack on|off|full
    ¥ǥե©¥ë¥È:XBitHack off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:Options
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_include
    -

    XBitHack ¥ǥ£¥쥯¥ƥ£¥֤ÏÄ̾ï¤Î HTML - ¥ɥ­¥å¥á¥ó¥ȤβòÀϤòÀ©¸椷¤ޤ¹¡£¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï MIME ¥¿¥¤¥× - text/html ¤ȴØϢÉդ±¤é¤ì¤Ƥ¤¤ë¥ե¡¥¤¥ë¤ˤΤ߱ƶÁ¤·¤ޤ¹¡£ - XBitHack ¤ϰʲ¼¤ÎÃͤò¤Ȥ뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -
    -
    off
    -
    ¼¹ԲÄǽ¥ե¡¥¤¥ë¤ËÂФ·¤ÆÆÃÊ̤ʰ·¤¤¤򤷤ޤ»¤ó¡£
    - -
    on
    -
    ¥桼¥¶¤μ¹ԥӥåȤ¬ÀßÄꤵ¤ì¤Ƥ¤¤ë text/html - ¥ե¡¥¤¥ë¤ÏÁ´¤ƥµ¡¼¥ФDzòÀϤ¹¤ë html ¥ɥ­¥å¥á¥ó¥ȤȤ·¤ư·¤ï¤ì¤ޤ¹¡£
    - -
    full
    -
    on ¤ÈƱÍͤǤ¹¤¬¡¢¥°¥롼¥׼¹ԥӥåȤâ¥ƥ¹¥Ȥ·¤ޤ¹¡£ - ¤⤷¤½¤줬ÀßÄꤵ¤ì¤Ƥ¤¤ì¤С¢Ê֤µ¤ì¤ë¥ե¡¥¤¥ë¤Î Last-modified ¤Î - ÆüÉդò¥ե¡¥¤¥ë¤κǽª½¤Àµ»þ¹ï¤ˤ·¤ޤ¹¡£¤½¤줬ÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤¤Ȥ­¤ϡ¢ - last-modified ¤ÎÆüÉդÏÁ÷¤é¤ì¤ޤ»¤󡣤³¤ΥӥåȤòÀßÄꤹ¤ë¤ȡ¢ - ¥¯¥饤¥¢¥ó¥Ȥä¥ץí¥­¥·¤¬¥ꥯ¥¨¥¹¥Ȥ򥭥ã¥å·¥å¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£ - -
    Ãí°Õ ¾¤Î CGI ¤ò #include - ¤¹¤뤫¤⤷¤ì¤ʤ¤¤â¤Τ䡢³ƥ¢¥¯¥»¥¹¤ËÂФ·¤ư㤦½ÐÎϤòÀ¸À®¤¹¤ë - (¤⤷¤¯¤ϸå¤Υꥯ¥¨¥¹¥ȤÇÊѤï¤뤫¤⤷¤ì¤ʤ¤¤â¤Î) - ¤¹¤٤ƤÎ SSI ¥¹¥¯¥ê¥ץȤËÂФ·¤ƥ°¥롼¥׼¹ԥӥåȤ¬ - ÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤¤³¤Ȥò³Îǧ¤Ǥ­¤ʤ¤¾ì¹ç¤ϡ¢full ¤ϻȤï¤ʤ¤Êý¤¬Îɤ¤ - ¤Ǥ·¤礦¡£
    -
    -
    - - -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_include.html.ja.utf8 b/docs/manual/mod/mod_include.html.ja.utf8 new file mode 100644 index 00000000000..8bb2d707216 --- /dev/null +++ b/docs/manual/mod/mod_include.html.ja.utf8 @@ -0,0 +1,863 @@ + + + + + +mod_include - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_include

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + + +
    説明:サーバがパースする html ドキュメント (Server Side Includes)
    ステータス:Base
    モジュール識別子:include_module
    ソースファイル:mod_include.c
    互換性:Apache 2.0 から出力フィルタとして実装されました。
    +

    概要

    + +

    このモジュールはファイルがクライアントに送られる前に処理するフィルタを + 提供します。処理の内容は要素と呼ばれる特別な形式の SGML コメントにより + 制御されます。これらの要素は条件分岐や、他のファイルや + プログラムの出力の取り込み、環境変数の設定や表示を行なうことが + できます。

    +
    + +
    top
    +
    +

    Server-Side Includes を有効にする

    + + +

    Server Side Includes は INCLUDES + フィルタ により実装されています。 + Server-side include のディレクティブを含むドキュメントの拡張子が + .shtml の場合、以下のディレクティブでは Apache がそれらを + パースして、その結果できるドキュメントに text/html の + MIME タイプを割り当てます:

    + +

    + AddType text/html .shtml
    + AddOutputFilter INCLUDES .shtml +

    + +

    以下のディレクティブは shtml ファイルのあるディレクトリで指定されている + 必要があります (通常は <Directory> セクションで指定しますが、 + AllowOverride Options + が設定されていると、.htaccess ファイルに書くこともできます):

    + +

    + Options +Includes +

    + +

    互換性を保つために、server-parsed + ハンドラ も INCLUDES フィルタを + 有効にします。MIME タイプ text/x-server-parsed-html や + text/x-server-parsed-html3 のドキュメントに対しても + Apache は INCLUDES フィルタを有効にします (出力されるものは + MIME タイプ text/html になります)。

    + +

    詳しい情報は Server Side Includes チュートリアルを参照してください。

    +
    top
    +
    +

    サーバサイドインクルード (SSI) での PATH_INFO

    + + +

    SSI で処理されるファイルはデフォルトでは PATH_INFO + (後続のパス名情報) + 付きのリクエストを受け入れなくなりました。AcceptPathInfo ディレクティブで + PATH_INFO 付きのリクエストを受け入れるようにサーバを + 設定できます。

    +
    top
    +
    +

    基本要素

    +

    ドキュメントは、SGML のコメントとして特別なコマンドが埋め込まれた + HTML ドキュメントとしてパースされます。コマンドの構文は次のように + なっています:

    + +

    + <!--#element attribute=value + attribute=value ... --> +

    + +

    値 (訳注: value) は二重引用符で囲むのが一般的ですが、 + シングルクオート (') とバッククオート (`) も使用できます。 + 多くのコマンドは属性-値 (訳注: attribute-value) の組を一つだけ指定できます。 + コメントの終わり (-->) + の前には、SSI の句の一部だと解釈されないようにするために空白を + 入れてください。最初の <!--# はまとめて一つの + 句で、空白をふくんではいけないこと注意してください。

    + +

    要素 (訳注: element) を以下の表に示します。

    + + + + + + + + + + + + + + + + + + + +
    要素説明
    configconfigure output formats
    echoprint variables
    execexecute external programs
    fsizeprint size of a file
    flastmodprint last modification time of a file
    includeinclude a file
    printenvprint all available variables
    setset a value of a variable
    + +

    SSI 要素は mod_include 以外のモジュールで + 定義されることもあります。実際、 + exec 要素は + mod_cgi で提供されていて、このモジュールが + ロードされる場合にのみ利用可能となります。

    + +

    config 要素

    +

    次のコマンドは解析の様々な側面を制御します。属性は次の通りです。

    + +
    +
    echomsg (Apache 2.1 以降)
    +
    指定される値は、echo + 要素が未定義の変数をエコーしようとした際に、 + クライアントに送られるメッセージになります。 + SSIUndefinedEcho + ディレクティブを上書きします。
    + +
    errmsg
    +
    この値が、ドキュメントの解析中にエラーが発生した時に + クライアントに送信されるメッセージになります。 + SSIErrorMsg + ディレクティブを上書きします。
    + +
    sizefmt
    +
    この値は、ファイルのサイズを表示する際に使用する + フォーマットを設定します。値は バイトカウントの + bytesか、Kb や Mb を優先的に使用する + abbrec (例えば 1024 バイトは "1K" と表示されます) + です。
    + +
    timefmt
    +
    この値は strftime(3) ライブラリルーチンが + 日時をプリントする際に用いられます。
    +
    + + +

    echo 要素

    +

    このコマンドは以下で定義されている include + 変数 を表示します。変数が設定されていない場合は SSIUndefinedEcho ディレクティブで + 決定される結果となります。日付はその時点での timefmt に従って + 表示されます。属性は次の通りです。

    + +
    +
    var
    +
    値は表示する変数の名前です。
    + +
    encoding
    +

    変数を出力する前に、変数中の特別文字をどのようにエンコードするかを + 指定します。none に設定されていると、エンコードは行なわれません。 + url に設定されていると、URL エンコード (%-エンコードとも + 呼ばれています。これはリンク等の URL の使用に適切です) が + 行なわれます。echo 要素の開始時は、デフォルトは + entity に設定されています。これはエンティティエンコード + (段落やテキストなどのブロックレベルの HTML エレメントのコンテキストに + 適しています) を行ないます。これは encoding 属性 + を加えることで変更できます。変更は次の encoding 属性か、 + 要素の終了まで効力を持ちます。

    + +

    encoding 属性はエンコードの変更をしたい var + の前に ある必要があることに注意してください。 + また、ISO-8859-1 エンコーディングで + 定義されている特別な文字だけがエンコードされます。 + 別の文字のエンコーディングの場合は、このエンコーディングは + 望みの結果にならないかもしれません。

    + +
    + クロスサイトスクリプティングの問題を避けるために、 + 常にユーザからのデータをエンコードすべきです。 +
    +
    +
    + + +

    exec 要素

    +

    exec コマンドは指定されたシェルコマンドや CGI スクリプトを + 実行します。mod_cgi がサーバに組み込まれているいなければ + なりません。Options + IncludesNOEXEC はこのコマンドを無効にします。 + 使用可能な属性は次の通りです。

    + +
    +
    cgi
    +

    値は (%-エンコードされた) URL を指定します。パスが + スラッシュ (/) で始まらないときは、ドキュメントからの + 相対パスとして扱われます。このパスで参照されているドキュメントは + サーバが CGI スクリプトとして扱っていなくても CGI スクリプトとして + 起動されます。ただし、スクリプトのあるディレクトリでは + (ScriptAlias + や Options ExecCGI + によって) CGI スクリプトの使用が許可されている必要があります。

    + +

    CGI スクリプトには、クライアントからの元々のリクエストの + PATH_INFO とクエリー文字列 (QUERY_STRING) が渡されます。 + これらは URL パスとして特定できないものです。 + スクリプトは標準 CGI 環境に加えて、include 変数を + 使用することができます。

    + +

    例

    + <!--#exec cgi="/cgi-bin/example.cgi" --> +

    + +

    スクリプトが、出力の代わりに Location: ヘッダを返すと、 + HTML のアンカー (訳注:リンク) に変換されます。

    + +

    exec cgi よりも、 + include virtual + の方を使うようにしてください。特に、CGI への追加の引数を + クエリー文字列を使って渡すことは exec cgi は + できませんが、include virtual は以下のようにして + 可能です。

    + +

    + <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> +

    +
    + +
    cmd
    +

    サーバは指定された文字列を /bin/sh を使って + 実行します。コマンドは通常の CGI 変数に加えて include 変数も使うことができます。

    + +

    ほとんどの場合、#include + virtual を使う方が #exec cgi や #exec + cmd を使うよりも良いです。前者 (#include virtual) + は標準の Apache のサブリクエスト機構を使ってファイルやスクリプトの + 出力を取り込みます。 + こちらの方がよくテストされメンテナンスされた方法です。

    + +

    さらに、Win32 のようないくつかのプラットフォームや、suexec を使っている unix では、 + exec ディレクティブのコマンドに + 引数を渡したり、コマンドに空白を入れることはできません。 + ですから、以下のものは unix の suexec でない設定では動作しますが、 + Win32 や suexec を使っている unix では期待した結果にはなりません:

    + +

    + <!--#exec cmd="perl /path/to/perlscript arg1 arg2" --> +

    +
    +
    + + +

    fsize 要素

    +

    このコマンドは指定されたファイルの大きさを sizefmt の + 書式指定に基づいて出力します。属性は次の通りです。

    + +
    +
    file
    +
    値は解析されているドキュメントの存在するディレクトリからの + 相対パスです。
    + +
    virtual
    +
    値は (% エンコードされた) URL-path です。スラッシュ (/) で + 始まらないときはドキュメントからの相対パスとして扱われます。 + CGI の出力のサイズはプリントされません。CGI + スクリプト自体のサイズがプリントされることに注意してください。
    +
    + + +

    flastmod 要素

    +

    このコマンドは指定されたファイルの最終修正時刻を + timefmt 書式指定に従って表示します。 + 指定可能な属性は fsize コマンドと同じです。

    + + +

    include 要素

    +

    このコマンドは別の文書やファイルのテキストを解析しているファイルに + 挿入します。挿入されるファイルはアクセス制御の管理下にあります。 + 解析しているファイルの存在するディレクトリに + Options IncludesNOEXEC + が設定されている場合、text MIME タイプ (text/plain, + text/html 等) のドキュメントのみインクルードが行なわれます。 + その他の場合は、クエリー文字列も含め、コマンドで指定された + 完全な URL を使って普通に CGI スクリプトが呼び出されます。

    + +

    属性が文書の位置を指定します。include コマンドに与えられたそれぞれの + 属性に対して挿入作業が行なわれます。有効な属性は次の通りです。

    + +
    +
    file
    +
    値は解析されているドキュメントの存在するディレクトリからの + 相対パスです。 + ../ を含んでいたり、絶対パスを指定したりはできません。 + ですから、ドキュメントルートの外にあるファイルや、ディレクトリ構造で + 上位にあるファイルを挿入することはできません。 + 常にこの属性よりは、virtual 属性を使うようにしてください。 +
    + +
    virtual
    +

    値は解析されているドキュメントからの (% エンコードされた) URL + です。URL にはスキームやホスト名を含めることはできません。パスと、 + もしあればクエリー文字列を指定できるだけです。スラッシュ (/) から + 始まらない場合は、ドキュメントからの相対パスとして扱われます。

    + +

    URL は属性から作られ、その URL をクライアントがアクセスしたときに + 出力される内容が解析後の出力に含められます。ですから、挿入される + ファイルは入れ子構造にすることができます。

    + +

    指定された URL が CGI プログラムであった場合は、 + プログラムが実行され、その出力が解析しているファイル中の + ディレクティブがあった位置に挿入されます。CGI の url に + クエリー URL を入れることもできます。

    + +

    + <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> +

    + +

    HTML ドキュメントに CGI プログラムの出力を含める方法としては、 + include virtual の方が exec cgi よりも + 好ましい方法です。

    +
    +
    + + +

    printenv 要素

    +

    これは、存在するすべての変数とその値を表示します。Apache 1.3.12 から、 + 特別な文字は出力される前にエンティティエンコード (詳細は echo 要素を参照) + されるようになりました。属性はありません。

    + +

    例

    + <!--#printenv --> +

    + + +

    set 要素

    +

    これは変数の値を設定します。属性は次の通りです。

    + +
    +
    var
    +
    設定する変数の名前。
    + +
    value
    +
    変数に設定する値。
    +
    + +

    例

    + <!--#set var="category" value="help" --> +

    + +
    top
    +
    +

    Include 変数

    + + +

    標準 CGI 環境の変数に加えて、echo コマンドや、 + if や elif, それにドキュメントから呼び出される + すべてのプログラムから使用できる変数があります。

    + +
    +
    DATE_GMT
    +
    グリニッジ標準時による現在時刻。
    + +
    DATE_LOCAL
    +
    ローカルの標準時による現在時刻。
    + +
    DOCUMENT_NAME
    +
    ユーザがリクエストした (ディレクトリを除いた) ファイル名。
    + +
    DOCUMENT_URI
    +
    ユーザがリクエストした (% エンコードされた) URL-path。 + 挿入ファイルが入れ子になっている場合は、解析されている + ドキュメントの URL ではないことに注意してください。
    + +
    LAST_MODIFIED
    +
    ユーザがリクエストしたドキュメントの最終修正時刻。
    + +
    QUERY_STRING_UNESCAPED
    +
    クエリー文字列がある場合、この変数には (%-デコードされた) + クエリー文字列が代入されていて、shell で使用できるように + エスケープされています (& + といった特殊文字にはバックスラッシュが直前に置かれます)。
    +
    +
    top
    +
    +

    変数置換

    + +

    変数置換はたいていの場合 SSI ディレクティブの引数として妥当な場所にある + 引用符で囲まれた文字列中で行なわれます。これに該当するものには、 + config, + exec, flastmod, fsize, + include, echo, set の + 各ディレクティブと、条件分岐用のオペレータへの引数があります。 + ドル記号はバックスラッシュを使うことで使うことができます:

    + +

    + <!--#if expr="$a = \$test" --> +

    + +

    変数名としてみなされる文字列の中で変数への参照を置換する必要があるときは、 + シェルでの変数置換のように、中括弧で括ることで区別することができます:

    + +

    + <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --> +

    + +

    この例では、REMOTE_HOST が + "X" で REQUEST_METHOD が + "Y" のときに変数 Zed を "X_Y" + に設定します。

    + +

    以下の例では、DOCUMENT_URI が /foo/file.html + のときに "in foo" を、/bar/file.html のときに "in bar" を、 + どちらでもないときには "in neither" を表示します。

    + +

    + <!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' -->
    + + in foo
    +
    + <!--#elif expr='"$DOCUMENT_URI" = "/bar/file.html"' -->
    + + in bar
    +
    + <!--#else -->
    + + in neither
    +
    + <!--#endif --> +

    +
    top
    +
    +

    フロー制御要素

    + + +

    基本的なフローコントロール要素は次の通りです。

    + +

    + <!--#if expr="test_condition" -->
    + <!--#elif expr="test_condition" -->
    + <!--#else -->
    + <!--#endif --> +

    + +

    if 要素はプログラミング言語の + if 文と同じように動作します。条件が評価され、結果が真であれば次の + elif か else か endif + 要素までの文字列が出力に挿入されます。

    + +

    elif や else 文は test_condition + が偽のときにテキストを出力に挿入するために使われます。 + これらの要素はあってもなくても構いません。

    + +

    endif 要素は if + 要素を終了させます。この要素は必須です。

    + +

    test_condition は以下のどれかです:

    + +
    +
    string
    +
    string が空でない場合に真です
    + +
    string1 = string2
    + string1 == string2
    + string1 != string2
    + +

    string1 と string2 を比較します。 + string2 が /string/ + という形式であれば、正規表現として比較されます。正規表現は + PCRE エンジンで実装されていて、 + perl 5 と同じ構文を使用します。 + == は単に = の別名で、まったく同じ動作を + します。

    + +

    正のマッチング (= または ==) の場合は、 + 正規表現でグループ分けされたパーツをキャプチャすることができます。 + キャプチャされた部分は特殊変数 $1 .. $9 + に格納されます。

    + +

    例

    + <!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" -->
    + + <!--#set var="session" value="$1" -->
    +
    + <!--#endif --> +

    +
    + +
    string1 < string2
    + string1 <= string2
    + string1 > string2
    + string1 >= string2
    + +
    string1 と string2 を比較します。 + 文字列として比較される (strcmp(3) を使用) + ことに注意してください。ですから、文字列 "100" は "20" + よりも小さいことになります。
    + +
    ( test_condition )
    +
    test_condition が真のとき、真
    + +
    ! test_condition
    +
    test_condition が偽のとき、真
    + +
    test_condition1 && + test_condition2
    +
    test_condition1 かつ + test_condition2 が真のとき、真
    + +
    test_condition1 || + test_condition2
    +
    test_condition1 または + test_condition2 が真のとき、真
    +
    + +

    "=" と "!=" の方が "&&" より + きつく束縛します。"!" の束縛が一番きつくなっています。 + ですから以下の二つは等価です:

    + +

    + <!--#if expr="$a = test1 && $b = test2" -->
    + <!--#if expr="($a = test1) && ($b = test2)" --> +

    + +

    真偽値オペレータ && と || + は同じ優先度です。 + これらのオペレータで一方により強い優先度をつけたい場合には、 + 括弧を使う必要があります。

    + +

    変数やオペレータとして認識されないものはすべて文字列として + 扱われます。文字列は引用符で囲むこともできます: 'string' + のように。引用符で囲まれていない文字列には空白 (スペースとタブ) + を含めることはできません。それらは変数などの句を分離するために + 使われているからです。複数の文字列が続いているときは、 + 空白を間に入れて一つにくっつけられます。ですから、

    + +

    string1    string2 は string1 string2 になります。
    +
    + また、
    +
    + 'string1    string2' は string1    string2 + になります。

    + +

    真偽値表現の最適化

    +

    式がもっと複雑になり、処理の速度低下が顕著になった場合は、 + 評価ルールに従って最適化してみると良いでしょう。

    +
      +
    • 評価は左から右に向かって行われます。
    • +
    • 二値真偽値オペレータ (&& と ||) + は、出来る限り短絡評価されます。つまり結果として上記のルールは、 + mod_include が左の評価式を評価します。 + 左側で結果を十分決定できる場合は、評価はそこで停止します。 + そうでない場合は右側を評価して、左と右の両方から結果を計算します。
    • +
    • 短絡評価は評価の対象に正規表現が含まれる場合、オフになります。 + 後方参照する変数 ($1 .. $9) + を埋めるために、実際に評価する必要があるからです。
    • +
    +

    特定の式がどのように扱われるかを知りたい場合は、 + -DDEBUG_INCLUDE コンパイラオプションを付けて + mod_include をリコンパイルすると良いでしょう。 + これにより、全てのパースされた式に対して、字句解析情報、 + パースツリーと、 + それがどのようにクライアントに送られた出力まで評価されたかを + 挿入します。

    +
    +
    +
    top
    +

    SSIEnableAccess ディレクティブ

    + + + + + + + +
    説明:Enable the -A flag during conditional flow control processing.
    構文:SSIEnableAccess on|off
    デフォルト:SSIEnableAccess off
    コンテキスト:ディレクトリ, .htaccess
    ステータス:Base
    モジュール:mod_include

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    SSIEndTag ディレクティブ

    + + + + + + + + +
    説明:include 要素を終了させる文字列
    構文:SSIEndTag tag
    デフォルト:SSIEndTag "-->"
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_include
    互換性:2.0.30 以降で利用可能
    +

    このディレクティブは mod_include が探す、 + include 要素の終了を示す文字列を変更します。

    + +

    例

    + SSIEndTag "%>" +

    + + +

    参照

    + +
    +
    top
    +

    SSIErrorMsg ディレクティブ

    + + + + + + + + + +
    説明:SSI のエラーがあったときに表示されるエラーメッセージ
    構文:SSIErrorMsg message
    デフォルト:SSIErrorMsg "[an error occurred while processing this +directive]"
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:All
    ステータス:Base
    モジュール:mod_include
    互換性:バージョン 2.0.30 以降で使用可能
    +

    SSIErrorMsg ディレクティブは mod_include + がエラーが起こったときに表示するメッセージを変更します。プロダクションサーバでは + メッセージがユーザに表示されないようにするために + デフォルトエラーメッセージを "<!-- Error -->" + に変えるというようなことを考えるかもしれません。

    + +

    このディレクティブは <!--#config + errmsg=message --> 要素と同じ効果になります。

    + +

    例

    + SSIErrorMsg "<!-- Error -->" +

    + +
    +
    top
    +

    SSIETag ディレクティブ

    + + + + + + + + +
    説明:Controls whether ETags are generated by the server.
    構文:SSIETag on|off
    デフォルト:SSIETag off
    コンテキスト:ディレクトリ, .htaccess
    ステータス:Base
    モジュール:mod_include
    互換性:Available in version 2.2.15 and later.

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    SSILastModified ディレクティブ

    + + + + + + + + +
    説明:Controls whether Last-Modified headers are generated by the +server.
    構文:SSILastModified on|off
    デフォルト:SSILastModified off
    コンテキスト:ディレクトリ, .htaccess
    ステータス:Base
    モジュール:mod_include
    互換性:Available in version 2.2.15 and later.

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    SSIStartTag ディレクティブ

    + + + + + + + + +
    説明:include 要素を開始する文字列
    構文:SSIStartTag tag
    デフォルト:SSIStartTag "<!--#"
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_include
    互換性:バージョン 2.0.30 以降で使用可能
    + +

    このディレクティブは mod_include が探す、include + 要素の開始を示す文字列を変更します。

    + +

    二つのサーバで (もしかすると別々の段階で) ファイルの出力を解析していて、 + それぞれに違うコマンドを処理させたい、 + というようなときにこのオプションを使います。

    + +

    例

    + SSIStartTag "<%"
    + SSIEndTag "%>" +

    + +

    上の例のように対応する + SSIEndTag を併せて使うと、 + 下に示す例のように SSI ディレクティブを使えます:

    + +

    違う開始と終了のタグを使った SSI ディレクティブ

    + <%printenv %> +

    + +

    参照

    + +
    +
    top
    +

    SSITimeFormat ディレクティブ

    + + + + + + + + + +
    説明:日付けを表す文字列の書式を設定する
    構文:SSITimeFormat formatstring
    デフォルト:SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:All
    ステータス:Base
    モジュール:mod_include
    互換性:2.0.30 以降で使用可能
    +

    このディレクティブは DATE 環境変数を echo して日付を表す文字列が + 表示されるときの書式を変更します。formatstring は + C 標準ライブラリの strftime(3) と同じ形式です。

    + +

    このディレクティブは <!--#config + timefmt=formatstring --> 要素と同じ効果になります。

    + +

    例

    + SSITimeFormat "%R, %B %d, %Y" +

    + +

    上のディレクティブでは、日付は "22:26, June 14, 2002" という + 形式で表示されます。

    + +
    +
    top
    +

    SSIUndefinedEcho ディレクティブ

    + + + + + + + + + +
    説明:未定義の変数が echo されたときに表示される文字列
    構文:SSIUndefinedEcho string
    デフォルト:SSIUndefinedEcho "(none)"
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:All
    ステータス:Base
    モジュール:mod_include
    互換性:2.0.34 以降で利用可能
    +

    このディレクティブは変数が定義されていないにも関わらず + "echo" されたときに mod_include + が表示する文字列を変更します。

    + +

    例

    + SSIUndefinedEcho "<!-- undef -->" +

    + +
    +
    top
    +

    XBitHack ディレクティブ

    + + + + + + + + +
    説明:実行ビットが設定されたファイルの SSI ディレクティブを +解析する
    構文:XBitHack on|off|full
    デフォルト:XBitHack off
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Options
    ステータス:Base
    モジュール:mod_include
    +

    XBitHack ディレクティブは通常の HTML + ドキュメントの解析を制御します。このディレクティブは MIME タイプ + text/html と関連付けられているファイルにのみ影響します。 + XBitHack は以下の値をとることができます。

    + +
    +
    off
    +
    実行可能ファイルに対して特別な扱いをしません。
    + +
    on
    +
    ユーザの実行ビットが設定されている text/html + ファイルは全てサーバで解析する html ドキュメントとして扱われます。
    + +
    full
    +
    on と同様ですが、グループ実行ビットもテストします。 + もしそれが設定されていれば、返されるファイルの Last-modified の + 日付をファイルの最終修正時刻にします。それが設定されていないときは、 + last-modified の日付は送られません。このビットを設定すると、 + クライアントやプロキシがリクエストをキャッシュできるようになります。 + +
    注意 他の CGI を #include + するかもしれないものや、各アクセスに対して違う出力を生成する + (もしくは後のリクエストで変わるかもしれないもの) + すべての SSI スクリプトに対してグループ実行ビットが + 設定されていないことを確認できない場合は、full は使わない方が良い + でしょう。
    +
    +
    + + +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_include.xml b/docs/manual/mod/mod_include.xml index 435e2604d3b..b80f3011580 100644 --- a/docs/manual/mod/mod_include.xml +++ b/docs/manual/mod/mod_include.xml @@ -4,12 +4,12 @@ +
    - $B%5!<%P%5%$%I%$%s%/%k!<%I(B (SSI) $B$G$N(B PATH_INFO - -

    SSI $B$G=hM}$5$l$k%U%!%$%k$O%G%U%)%k%H$G$O(B PATH_INFO - ($B8eB3$N%Q%9L>>pJs(B) - $BIU$-$N%j%/%(%9%H$rAcceptPathInfo $B%G%#%l%/%F%#%V$G(B - PATH_INFO $BIU$-$N%j%/%(%9%H$r + サーバサイドインクルード (SSI) での PATH_INFO + +

    SSI で処理されるファイルはデフォルトでは PATH_INFO + (後続のパス名情報) + 付きのリクエストを受け入れなくなりました。AcceptPathInfo ディレクティブで + PATH_INFO 付きのリクエストを受け入れるようにサーバを + 設定できます。

    -
    $B4pK\MWAG(B -

    $B%I%-%e%a%s%H$O!"(BSGML $B$N%3%a%s%H$H$7$FFCJL$J%3%^%s%I$,Kd$a9~$^$l$?(B - HTML $B%I%-%e%a%s%H$H$7$F%Q!<%9$5$l$^$9!#%3%^%s%I$N9=J8$O +

    基本要素 +

    ドキュメントは、SGML のコメントとして特別なコマンドが埋め込まれた + HTML ドキュメントとしてパースされます。コマンドの構文は次のように + なっています:

    <!--#element attribute=value attribute=value ... --> -

    $BCM(B ($BLuCm(B: value) $B$OFs=E0zMQId$G0O$`$N$,0lHLE*$G$9$,!"(B - $B%7%s%0%k%/%*!<%H(B (') $B$H%P%C%/%/%*!<%H(B (`) $B$b;HMQ$G$-$^$9!#(B - $BB?$/$N%3%^%s%I$OB0@-(B-$BCM(B ($BLuCm(B: attribute-value) $B$NAH$r0l$D$@$1;XDj$G$-$^$9!#(B - $B%3%a%s%H$N=*$o$j(B (-->) - $B$NA0$K$O!"(BSSI $B$N6g$N0lIt$@$H2r<!--# $B$O$^$H$a$F(B$B0l$D(B$B$N(B - $B6g$G!"6uGr$r$U$/$s$G$O$$$1$J$$$3$HCm0U$7$F$/$@$5$$!#(B

    +

    値 (訳注: value) は二重引用符で囲むのが一般的ですが、 + シングルクオート (') とバッククオート (`) も使用できます。 + 多くのコマンドは属性-値 (訳注: attribute-value) の組を一つだけ指定できます。 + コメントの終わり (-->) + の前には、SSI の句の一部だと解釈されないようにするために空白を + 入れてください。最初の <!--# はまとめて一つの + 句で、空白をふくんではいけないこと注意してください。

    -

    $BMWAG(B ($BLuCm(B: element) $B$r0J2<$NI=$K<($7$^$9!#(B

    +

    要素 (訳注: element) を以下の表に示します。

    - + @@ -128,117 +128,117 @@
    $BMWAG(B$B@bL@(B
    要素説明
    config configure output formats
    echoset a value of a variable
    -

    SSI $BMWAG$O(B mod_include $B0J30$N%b%8%e!<%k$G(B - $BDj5A$5$l$k$3$H$b$"$j$^$9!#exec $BMWAG$O(B - mod_cgi $B$GDs6!$5$l$F$$$F!"$3$N%b%8%e!<%k$,(B - $B%m!<%I$5$l$k>l9g$K$N$_MxMQ2DG=$H$J$j$^$9!#(B

    +

    SSI 要素は mod_include 以外のモジュールで + 定義されることもあります。実際、 + exec 要素は + mod_cgi で提供されていて、このモジュールが + ロードされる場合にのみ利用可能となります。

    -
    config $BMWAG(B -

    $B +

    config 要素 +

    次のコマンドは解析の様々な側面を制御します。属性は次の通りです。

    -
    echomsg (Apache 2.1 $B0J9_(B)
    -
    $B;XDj$5$l$kCM$O!"(Becho - $BMWAG$,L$Dj5A$NJQ?t$r%(%3!<$7$h$&$H$7$?:]$K!"(B - $B%/%i%$%"%s%H$KAw$i$l$k%a%C%;!<%8$K$J$j$^$9!#(B +
    echomsg (Apache 2.1 以降)
    +
    指定される値は、echo + 要素が未定義の変数をエコーしようとした際に、 + クライアントに送られるメッセージになります。 SSIUndefinedEcho - $B%G%#%l%/%F%#%V$r>e=q$-$7$^$9!#(B
    + ディレクティブを上書きします。
    errmsg
    -
    $B$3$NCM$,!"%I%-%e%a%s%H$N2r@OCf$K%(%i!<$,H/@8$7$?;~$K(B - $B%/%i%$%"%s%H$KAw?.$5$l$k%a%C%;!<%8$K$J$j$^$9!#(B +
    この値が、ドキュメントの解析中にエラーが発生した時に + クライアントに送信されるメッセージになります。 SSIErrorMsg - $B%G%#%l%/%F%#%V$r>e=q$-$7$^$9!#(B
    + ディレクティブを上書きします。
    sizefmt
    -
    $B$3$NCM$O!"%U%!%$%k$N%5%$%:$rI=<($9$k:]$K;HMQ$9$k(B - $B%U%)!<%^%C%H$r@_Dj$7$^$9!#CM$O(B $B%P%$%H%+%&%s%H$N(B - bytes$B$+!"(BKb $B$d(B Mb $B$rM%@hE*$K;HMQ$9$k(B - abbrec ($BNc$($P(B 1024 $B%P%$%H$O(B "1K" $B$HI=<($5$l$^$9(B) - $B$G$9!#(B
    +
    この値は、ファイルのサイズを表示する際に使用する + フォーマットを設定します。値は バイトカウントの + bytesか、Kb や Mb を優先的に使用する + abbrec (例えば 1024 バイトは "1K" と表示されます) + です。
    timefmt
    -
    $B$3$NCM$O(B strftime(3) $B%i%$%V%i%j%k!<%A%s$,(B - $BF|;~$r%W%j%s%H$9$k:]$KMQ$$$i$l$^$9!#(B
    +
    この値は strftime(3) ライブラリルーチンが + 日時をプリントする際に用いられます。
    -
    echo $BMWAG(B -

    $B$3$N%3%^%s%I$O0J2<$GDj5A$5$l$F$$$k(B include - $BJQ?t(B $B$rI=<($7$^$9!#JQ?t$,@_Dj$5$l$F$$$J$$>l9g$O(B SSIUndefinedEcho $B%G%#%l%/%F%#%V$G(B - $B7hDj$5$l$k7k2L$H$J$j$^$9!#F|IU$O$=$N;~E@$G$N(B timefmt $B$K=>$C$F(B - $BI=<($5$l$^$9!#B0@-$O +

    echo 要素 +

    このコマンドは以下で定義されている include + 変数 を表示します。変数が設定されていない場合は SSIUndefinedEcho ディレクティブで + 決定される結果となります。日付はその時点での timefmt に従って + 表示されます。属性は次の通りです。

    var
    -
    $BCM$OI=<($9$kJQ?t$NL>A0$G$9!#(B
    +
    値は表示する変数の名前です。
    encoding
    -

    $BJQ?t$r=PNO$9$kA0$K!"JQ?tCf$NFCJLJ8;z$r$I$N$h$&$K%(%s%3!<%I$9$k$+$r(B - $B;XDj$7$^$9!#(Bnone $B$K@_Dj$5$l$F$$$k$H!"%(%s%3!<%I$O9T$J$o$l$^$;$s!#(B - url $B$K@_Dj$5$l$F$$$k$H!"(BURL $B%(%s%3!<%I(B (%-$B%(%s%3!<%I$H$b(B - $B8F$P$l$F$$$^$9!#$3$l$O%j%s%/Ey$N(B URL $B$N;HMQ$KE,@Z$G$9(B) $B$,(B - $B9T$J$o$l$^$9!#(Becho $BMWAG$N3+;O;~$O!"%G%U%)%k%H$O(B - entity $B$K@_Dj$5$l$F$$$^$9!#$3$l$O%(%s%F%#%F%#%(%s%3!<%I(B - ($BCJMn$d%F%-%9%H$J$I$N%V%m%C%/%l%Y%k$N(B HTML $B%(%l%a%s%H$N%3%s%F%-%9%H$K(B - $BE,$7$F$$$^$9(B) $B$r9T$J$$$^$9!#$3$l$O(B encoding $BB0@-(B - $B$r2C$($k$3$H$GJQ99$G$-$^$9!#JQ99$Oencoding $BB0@-$+!"(B - $BMWAG$N=*N;$^$G8zNO$r;}$A$^$9!#(B

    - -

    encoding $BB0@-$O%(%s%3!<%I$NJQ99$r$7$?$$(B var - $B$N(B$BA0$K(B $B$"$kI,MW$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B - $B$^$?!"(BISO-8859-1 $B%(%s%3!<%G%#%s%0$G(B - $BDj5A$5$l$F$$$kFCJL$JJ8;z$@$1$,%(%s%3!<%I$5$l$^$9!#(B - $BJL$NJ8;z$N%(%s%3!<%G%#%s%0$N>l9g$O!"$3$N%(%s%3!<%G%#%s%0$O(B - $BK>$_$N7k2L$K$J$i$J$$$+$b$7$l$^$;$s!#(B

    +

    変数を出力する前に、変数中の特別文字をどのようにエンコードするかを + 指定します。none に設定されていると、エンコードは行なわれません。 + url に設定されていると、URL エンコード (%-エンコードとも + 呼ばれています。これはリンク等の URL の使用に適切です) が + 行なわれます。echo 要素の開始時は、デフォルトは + entity に設定されています。これはエンティティエンコード + (段落やテキストなどのブロックレベルの HTML エレメントのコンテキストに + 適しています) を行ないます。これは encoding 属性 + を加えることで変更できます。変更は次の encoding 属性か、 + 要素の終了まで効力を持ちます。

    + +

    encoding 属性はエンコードの変更をしたい var + の前に ある必要があることに注意してください。 + また、ISO-8859-1 エンコーディングで + 定義されている特別な文字だけがエンコードされます。 + 別の文字のエンコーディングの場合は、このエンコーディングは + 望みの結果にならないかもしれません。

    - $B%/%m%9%5%$%H%9%/%j%W%F%#%s%0$NLdBj$rHr$1$k$?$a$K!"(B - $B>o$K(B$B%f!<%6$+$i$N%G!<%?$r%(%s%3!<%I$9$Y$-$G$9!#(B + クロスサイトスクリプティングの問題を避けるために、 + 常にユーザからのデータをエンコードすべきです。
    -
    exec $BMWAG(B -

    exec $B%3%^%s%I$O;XDj$5$l$?%7%'%k%3%^%s%I$d(B CGI $B%9%/%j%W%H$r(B - $Bmod_cgi $B$,%5!<%P$KAH$_9~$^$l$F$$$k$$$J$1$l$P(B - $B$J$j$^$;$s!#(BOption - IncludesNOEXEC $B$O$3$N%3%^%s%I$rL58z$K$7$^$9!#(B - $B;HMQ2DG=$JB0@-$O +

    exec 要素 +

    exec コマンドは指定されたシェルコマンドや CGI スクリプトを + 実行します。mod_cgi がサーバに組み込まれているいなければ + なりません。Options + IncludesNOEXEC はこのコマンドを無効にします。 + 使用可能な属性は次の通りです。

    cgi
    -

    $BCM$O(B (%-$B%(%s%3!<%I$5$l$?(B) URL $B$r;XDj$7$^$9!#%Q%9$,(B - $B%9%i%C%7%e(B (/) $B$G;O$^$i$J$$$H$-$O!"%I%-%e%a%s%H$+$i$N(B - $BAjBP%Q%9$H$7$F07$o$l$^$9!#$3$N%Q%9$G;2>H$5$l$F$$$k%I%-%e%a%s%H$O(B - $B%5!<%P$,(B CGI $B%9%/%j%W%H$H$7$F07$C$F$$$J$/$F$b(B CGI $B%9%/%j%W%H$H$7$F(B - $B5/F0$5$l$^$9!#$?$@$7!"%9%/%j%W%H$N$"$k%G%#%l%/%H%j$G$O(B +

    値は (%-エンコードされた) URL を指定します。パスが + スラッシュ (/) で始まらないときは、ドキュメントからの + 相対パスとして扱われます。このパスで参照されているドキュメントは + サーバが CGI スクリプトとして扱っていなくても CGI スクリプトとして + 起動されます。ただし、スクリプトのあるディレクトリでは (ScriptAlias - $B$d(B Option ExecCGI - $B$K$h$C$F(B) CGI $B%9%/%j%W%H$N;HMQ$,5v2D$5$l$F$$$kI,MW$,$"$j$^$9!#(B

    + や Options ExecCGI + によって) CGI スクリプトの使用が許可されている必要があります。

    -

    CGI $B%9%/%j%W%H$K$O!"%/%i%$%"%s%H$+$i$N85!9$N%j%/%(%9%H$N(B - PATH_INFO $B$H%/%(%j!QUERY_STRING) $B$,EO$5$l$^$9!#(B - $B$3$l$i$O(B URL $B%Q%9$H$7$FFCDj(B$B$G$-$J$$(B$B$b$N$G$9!#(B - $B%9%/%j%W%H$OI8=`(B CGI $B4D6-$K2C$($F!"(Binclude $BJQ?t$r(B - $B;HMQ$9$k$3$H$,$G$-$^$9!#(B

    +

    CGI スクリプトには、クライアントからの元々のリクエストの + PATH_INFO とクエリー文字列 (QUERY_STRING) が渡されます。 + これらは URL パスとして特定できないものです。 + スクリプトは標準 CGI 環境に加えて、include 変数を + 使用することができます。

    - $BNc(B + 例 <!--#exec cgi="/cgi-bin/example.cgi" --> -

    $B%9%/%j%W%H$,!"=PNO$NBe$o$j$K(B Location: $B%X%C%@$rJV$9$H!"(B - HTML $B$N%"%s%+!<(B ($BLuCm!'%j%s%/(B) $B$KJQ49$5$l$^$9!#(B

    +

    スクリプトが、出力の代わりに Location: ヘッダを返すと、 + HTML のアンカー (訳注:リンク) に変換されます。

    -

    exec cgi $B$h$j$b!"(B +

    exec cgi よりも、 include virtual - $B$NJ}$r;H$&$h$&$K$7$F$/$@$5$$!#FC$K!"(BCGI $B$X$NDI2C$N0z?t$r(B - $B%/%(%j!exec cgi $B$O(B - $B$G$-$^$;$s$,!"(Binclude virtual $B$O0J2<$N$h$&$K$7$F(B - $B2DG=$G$9!#(B

    + の方を使うようにしてください。特に、CGI への追加の引数を + クエリー文字列を使って渡すことは exec cgi は + できませんが、include virtual は以下のようにして + 可能です。

    <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> @@ -246,23 +246,23 @@
    cmd
    -

    $B%5!<%P$O;XDj$5$l$?J8;zNs$r(B /bin/sh $B$r;H$C$F(B - $Bo$N(B CGI $BJQ?t$K2C$($F(B include $BJQ?t(B$B$b;H$&$3$H$,$G$-$^$9!#(B

    - -

    $B$[$H$s$I$N>l9g!"(B#include - virtual $B$r;H$&J}$,(B #exec cgi $B$d(B #exec - cmd $B$r;H$&$h$j$bNI$$$G$9!#A0#include virtual) - $B$OI8=`$N(B Apache $B$N%5%V%j%/%(%9%H5!9=$r;H$C$F%U%!%$%k$d%9%/%j%W%H$N(B - $B=PNO$r - -

    $B$5$i$K!"(BWin32 $B$N$h$&$J$$$/$D$+$N%W%i%C%H%U%)!<%`$d!"(Bsuexec $B$r;H$C$F$$$k(B unix $B$G$O!"(B - exec $B%G%#%l%/%F%#%V$N%3%^%s%I$K(B - $B0z?t$rEO$7$?$j!"%3%^%s%I$K6uGr$rF~$l$k$3$H$O$G$-$^$;$s!#(B - $B$G$9$+$i!"0J2<$N$b$N$O(B unix $B$N(B suexec $B$G$J$$@_Dj$G$OF0:n$7$^$9$,!"(B - Win32 $B$d(B suexec $B$r;H$C$F$$$k(B unix $B$G$O4|BT$7$?7k2L$K$O$J$j$^$;$s(B:

    +

    サーバは指定された文字列を /bin/sh を使って + 実行します。コマンドは通常の CGI 変数に加えて include 変数も使うことができます。

    + +

    ほとんどの場合、#include + virtual を使う方が #exec cgi や #exec + cmd を使うよりも良いです。前者 (#include virtual) + は標準の Apache のサブリクエスト機構を使ってファイルやスクリプトの + 出力を取り込みます。 + こちらの方がよくテストされメンテナンスされた方法です。

    + +

    さらに、Win32 のようないくつかのプラットフォームや、suexec を使っている unix では、 + exec ディレクティブのコマンドに + 引数を渡したり、コマンドに空白を入れることはできません。 + ですから、以下のものは unix の suexec でない設定では動作しますが、 + Win32 や suexec を使っている unix では期待した結果にはなりません:

    <!--#exec cmd="perl /path/to/perlscript arg1 arg2" --> @@ -271,169 +271,169 @@
    -
    fsize $BMWAG(B -

    $B$3$N%3%^%s%I$O;XDj$5$l$?%U%!%$%k$NBg$-$5$r(B sizefmt $B$N(B - $B=q<0;XDj$K4p$E$$$F=PNO$7$^$9!#B0@-$O +

    fsize 要素 +

    このコマンドは指定されたファイルの大きさを sizefmt の + 書式指定に基づいて出力します。属性は次の通りです。

    file
    -
    $BCM$O2r@O$5$l$F$$$k%I%-%e%a%s%H$NB8:_$9$k%G%#%l%/%H%j$+$i$N(B - $BAjBP%Q%9$G$9!#(B
    +
    値は解析されているドキュメントの存在するディレクトリからの + 相対パスです。
    virtual
    -
    $BCM$O(B (% $B%(%s%3!<%I$5$l$?(B) URL-path $B$G$9!#%9%i%C%7%e(B (/) $B$G(B - $B;O$^$i$J$$$H$-$O%I%-%e%a%s%H$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B - CGI $B$N=PNO$N%5%$%:$O%W%j%s%H(B$B$5$l$^$;$s(B$B!#(BCGI - $B%9%/%j%W%H<+BN$N%5%$%:$,%W%j%s%H$5$l$k$3$H$KCm0U$7$F$/$@$5$$!#(B
    +
    値は (% エンコードされた) URL-path です。スラッシュ (/) で + 始まらないときはドキュメントからの相対パスとして扱われます。 + CGI の出力のサイズはプリントされません。CGI + スクリプト自体のサイズがプリントされることに注意してください。
    -
    flastmod $BMWAG(B -

    $B$3$N%3%^%s%I$O;XDj$5$l$?%U%!%$%k$N:G=*=$@5;~9o$r(B - timefmt $B=q<0;XDj$K=>$C$FI=<($7$^$9!#(B - $B;XDj2DG=$JB0@-$O(B fsize $B%3%^%s%I$HF1$8$G$9!#(B

    +
    flastmod 要素 +

    このコマンドは指定されたファイルの最終修正時刻を + timefmt 書式指定に従って表示します。 + 指定可能な属性は fsize コマンドと同じです。

    -
    include $BMWAG(B -

    $B$3$N%3%^%s%I$OJL$NJ8=q$d%U%!%$%k$N%F%-%9%H$r2r@O$7$F$$$k%U%!%$%k$K(B - $BA^F~$7$^$9!#A^F~$5$l$k%U%!%$%k$O%"%/%;%9@)8f$N4IM}2<$K$"$j$^$9!#(B - $B2r@O$7$F$$$k%U%!%$%k$NB8:_$9$k%G%#%l%/%H%j$K(B - Option IncludesNOEXEC - $B$,@_Dj$5$l$F$$$k>l9g!"(Btext MIME $B%?%$%W(B (text/plain, - text/html $BEy(B) $B$N%I%-%e%a%s%H$N$_%$%s%/%k!<%I$,9T$J$o$l$^$9!#(B - $B$=$NB>$N>l9g$O!"%/%(%j! +

    include 要素 +

    このコマンドは別の文書やファイルのテキストを解析しているファイルに + 挿入します。挿入されるファイルはアクセス制御の管理下にあります。 + 解析しているファイルの存在するディレクトリに + Options IncludesNOEXEC + が設定されている場合、text MIME タイプ (text/plain, + text/html 等) のドキュメントのみインクルードが行なわれます。 + その他の場合は、クエリー文字列も含め、コマンドで指定された + 完全な URL を使って普通に CGI スクリプトが呼び出されます。

    -

    $BB0@-$,J8=q$N0LCV$r;XDj$7$^$9!#(Binclude $B%3%^%s%I$KM?$($i$l$?$=$l$>$l$N(B - $BB0@-$KBP$7$FA^F~:n6H$,9T$J$o$l$^$9!#M-8z$JB0@-$O +

    属性が文書の位置を指定します。include コマンドに与えられたそれぞれの + 属性に対して挿入作業が行なわれます。有効な属性は次の通りです。

    file
    -
    $BCM$O2r@O$5$l$F$$$k%I%-%e%a%s%H$NB8:_$9$k%G%#%l%/%H%j$+$i$N(B - $BAjBP%Q%9$G$9!#(B - ../ $B$r4^$s$G$$$?$j!"@dBP%Q%9$r;XDj$7$?$j$O$G$-$^$;$s!#(B - $B$G$9$+$i!"%I%-%e%a%s%H%k!<%H$N30$K$"$k%U%!%$%k$d!"%G%#%l%/%H%j9=B$$G(B - $B>e0L$K$"$k%U%!%$%k$rA^F~$9$k$3$H$O$G$-$^$;$s!#(B - $B>o$K$3$NB0@-$h$j$O!"(Bvirtual $BB0@-$r;H$&$h$&$K$7$F$/$@$5$$!#(B +
    値は解析されているドキュメントの存在するディレクトリからの + 相対パスです。 + ../ を含んでいたり、絶対パスを指定したりはできません。 + ですから、ドキュメントルートの外にあるファイルや、ディレクトリ構造で + 上位にあるファイルを挿入することはできません。 + 常にこの属性よりは、virtual 属性を使うようにしてください。
    virtual
    -

    $BCM$O2r@O$5$l$F$$$k%I%-%e%a%s%H$+$i$N(B (% $B%(%s%3!<%I$5$l$?(B) URL - $B$G$9!#(BURL $B$K$O%9%-!<%`$d%[%9%HL>$r4^$a$k$3$H$O$G$-$^$;$s!#%Q%9$H!"(B - $B$b$7$"$l$P%/%(%j!l9g$O!"%I%-%e%a%s%H$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B

    +

    値は解析されているドキュメントからの (% エンコードされた) URL + です。URL にはスキームやホスト名を含めることはできません。パスと、 + もしあればクエリー文字列を指定できるだけです。スラッシュ (/) から + 始まらない場合は、ドキュメントからの相対パスとして扱われます。

    -

    URL $B$OB0@-$+$i:n$i$l!"$=$N(B URL $B$r%/%i%$%"%s%H$,%"%/%;%9$7$?$H$-$K(B - $B=PNO$5$l$kFbMF$,2r@O8e$N=PNO$K4^$a$i$l$^$9!#$G$9$+$i!"A^F~$5$l$k(B - $B%U%!%$%k$OF~$l;R9=B$$K$9$k$3$H$,$G$-$^$9!#(B

    +

    URL は属性から作られ、その URL をクライアントがアクセスしたときに + 出力される内容が解析後の出力に含められます。ですから、挿入される + ファイルは入れ子構造にすることができます。

    -

    $B;XDj$5$l$?(B URL $B$,(B CGI $B%W%m%0%i%`$G$"$C$?>l9g$O!"(B - $B%W%m%0%i%`$, +

    指定された URL が CGI プログラムであった場合は、 + プログラムが実行され、その出力が解析しているファイル中の + ディレクティブがあった位置に挿入されます。CGI の url に + クエリー URL を入れることもできます。

    <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> -

    HTML $B%I%-%e%a%s%H$K(B CGI $B%W%m%0%i%`$N=PNO$r4^$a$kJ}K!$H$7$F$O!"(B - include virtual $B$NJ}$,(B exec cgi $B$h$j$b(B - $B9%$^$7$$J}K!$G$9!#(B

    +

    HTML ドキュメントに CGI プログラムの出力を含める方法としては、 + include virtual の方が exec cgi よりも + 好ましい方法です。

    -
    printenv $BMWAG(B -

    $B$3$l$O!"B8:_$9$k$9$Y$F$NJQ?t$H$=$NCM$rI=<($7$^$9!#(BApache 1.3.12 $B$+$i!"(B - $BFCJL$JJ8;z$O=PNO$5$l$kA0$K%(%s%F%#%F%#%(%s%3!<%I(B ($B>\:Y$O(B echo $BMWAG$r;2>H(B) - $B$5$l$k$h$&$K$J$j$^$7$?!#B0@-$O$"$j$^$;$s!#(B

    +
    printenv 要素 +

    これは、存在するすべての変数とその値を表示します。Apache 1.3.12 から、 + 特別な文字は出力される前にエンティティエンコード (詳細は echo 要素を参照) + されるようになりました。属性はありません。

    - $BNc(B + 例 <!--#printenv -->
    -
    set $BMWAG(B -

    $B$3$l$OJQ?t$NCM$r@_Dj$7$^$9!#B0@-$O +

    set 要素 +

    これは変数の値を設定します。属性は次の通りです。

    var
    -
    $B@_Dj$9$kJQ?t$NL>A0!#(B
    +
    設定する変数の名前。
    value
    -
    $BJQ?t$K@_Dj$9$kCM!#(B
    +
    変数に設定する値。
    - $BNc(B + 例 <!--#set var="category" value="help" -->
    - Include $BJQ?t(B + Include 変数 -

    $BI8=`(B CGI $B4D6-$NJQ?t$K2C$($F!"(Becho $B%3%^%s%I$d!"(B - if $B$d(B elif, $B$=$l$K%I%-%e%a%s%H$+$i8F$S=P$5$l$k(B - $B$9$Y$F$N%W%m%0%i%`$+$i;HMQ$G$-$kJQ?t$,$"$j$^$9!#(B

    +

    標準 CGI 環境の変数に加えて、echo コマンドや、 + if や elif, それにドキュメントから呼び出される + すべてのプログラムから使用できる変数があります。

    DATE_GMT
    -
    $B%0%j%K%C%8I8=`;~$K$h$k8=:_;~9o!#(B
    +
    グリニッジ標準時による現在時刻。
    DATE_LOCAL
    -
    $B%m!<%+%k$NI8=`;~$K$h$k8=:_;~9o!#(B
    +
    ローカルの標準時による現在時刻。
    DOCUMENT_NAME
    -
    $B%f!<%6$,%j%/%(%9%H$7$?(B ($B%G%#%l%/%H%j$r=|$$$?(B) $B%U%!%$%kL>!#(B
    +
    ユーザがリクエストした (ディレクトリを除いた) ファイル名。
    DOCUMENT_URI
    -
    $B%f!<%6$,%j%/%(%9%H$7$?(B (% $B%(%s%3!<%I$5$l$?(B) URL-path$B!#(B - $BA^F~%U%!%$%k$,F~$l;R$K$J$C$F$$$k>l9g$O!"2r@O$5$l$F$$$k(B - $B%I%-%e%a%s%H$N(B URL $B$G$O(B$B$J$$(B$B$3$H$KCm0U$7$F$/$@$5$$!#(B
    +
    ユーザがリクエストした (% エンコードされた) URL-path。 + 挿入ファイルが入れ子になっている場合は、解析されている + ドキュメントの URL ではないことに注意してください。
    LAST_MODIFIED
    -
    $B%f!<%6$,%j%/%(%9%H$7$?%I%-%e%a%s%H$N:G=*=$@5;~9o!#(B
    +
    ユーザがリクエストしたドキュメントの最終修正時刻。
    QUERY_STRING_UNESCAPED
    -
    $B%/%(%j!l9g!"$3$NJQ?t$K$O(B (%-$B%G%3!<%I$5$l$?(B) - $B%/%(%j!$B%(%9%1!<%W(B$B$5$l$F$$$^$9(B (& - $B$H$$$C$?FCA0$KCV$+$l$^$9(B)$B!#(B
    +
    クエリー文字列がある場合、この変数には (%-デコードされた) + クエリー文字列が代入されていて、shell で使用できるように + エスケープされています (& + といった特殊文字にはバックスラッシュが直前に置かれます)。
    -
    $BJQ?tCV49(B +
    変数置換 -

    $BJQ?tCV49$O$?$$$F$$$N>l9g(B SSI $B%G%#%l%/%F%#%V$N0z?t$H$7$FBEEv$J>l=j$K$"$k(B - $B0zMQId$G0O$^$l$?J8;zNsCf$G9T$J$o$l$^$9!#$3$l$K3:Ev$9$k$b$N$K$O!"(B +

    変数置換はたいていの場合 SSI ディレクティブの引数として妥当な場所にある + 引用符で囲まれた文字列中で行なわれます。これに該当するものには、 config, exec, flastmod, fsize, - include, echo, set $B$N(B - $B3F%G%#%l%/%F%#%V$H!">r7oJ,4tMQ$N%*%Z%l!<%?$X$N0z?t$,$"$j$^$9!#(B - $B%I%k5-9f$O%P%C%/%9%i%C%7%e$r;H$&$3$H$G;H$&$3$H$,$G$-$^$9(B:

    + include, echo, set の + 各ディレクティブと、条件分岐用のオペレータへの引数があります。 + ドル記号はバックスラッシュを使うことで使うことができます:

    <!--#if expr="$a = \$test" --> -

    $BJQ?tL>$H$7$F$_$J$5$l$kJ8;zNs$NCf$GJQ?t$X$N;2>H$rCV49$9$kI,MW$,$"$k$H$-$O!"(B - $B%7%'%k$G$NJQ?tCV49$N$h$&$K!"Cf3g8L$G3g$k$3$H$G6hJL$9$k$3$H$,$G$-$^$9(B:

    +

    変数名としてみなされる文字列の中で変数への参照を置換する必要があるときは、 + シェルでの変数置換のように、中括弧で括ることで区別することができます:

    <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --> -

    $B$3$NNc$G$O!"(BREMOTE_HOST $B$,(B - "X" $B$G(B REQUEST_METHOD $B$,(B - "Y" $B$N$H$-$KJQ?t(B Zed $B$r(B "X_Y" - $B$K@_Dj$7$^$9!#(B

    +

    この例では、REMOTE_HOST が + "X" で REQUEST_METHOD が + "Y" のときに変数 Zed を "X_Y" + に設定します。

    -

    $B0J2<$NNc$G$O!"(BDOCUMENT_URI $B$,(B /foo/file.html - $B$N$H$-$K(B "in foo" $B$r!"(B/bar/file.html $B$N$H$-$K(B "in bar" $B$r!"(B - $B$I$A$i$G$b$J$$$H$-$K$O(B "in neither" $B$rI=<($7$^$9!#(B

    +

    以下の例では、DOCUMENT_URI が /foo/file.html + のときに "in foo" を、/bar/file.html のときに "in bar" を、 + どちらでもないときには "in neither" を表示します。

    <!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' -->
    @@ -453,9 +453,9 @@
    - $B%U%m!<@)8fMWAG(B + フロー制御要素 -

    $B4pK\E*$J%U%m!<%3%s%H%m!<%kMWAG$O +

    基本的なフローコントロール要素は次の通りです。

    <!--#if expr="test_condition" -->
    @@ -464,42 +464,42 @@ <!--#endif -->
    -

    if $BMWAG$O%W%m%0%i%_%s%08@8l$N(B - if $BJ8$HF1$8$h$&$KF0:n$7$^$9!#>r7o$,I>2A$5$l!"7k2L$,??$G$"$l$Pelif $B$+(B else $B$+(B endif - $BMWAG$^$G$NJ8;zNs$,=PNO$KA^F~$5$l$^$9!#(B

    +

    if 要素はプログラミング言語の + if 文と同じように動作します。条件が評価され、結果が真であれば次の + elif か else か endif + 要素までの文字列が出力に挿入されます。

    -

    elif $B$d(B else $BJ8$O(B test_condition - $B$,56$N$H$-$K%F%-%9%H$r=PNO$KA^F~$9$k$?$a$K;H$o$l$^$9!#(B - $B$3$l$i$NMWAG$O$"$C$F$b$J$/$F$b9=$$$^$;$s!#(B

    +

    elif や else 文は test_condition + が偽のときにテキストを出力に挿入するために使われます。 + これらの要素はあってもなくても構いません。

    -

    endif $BMWAG$O(B if - $BMWAG$r=*N;$5$;$^$9!#$3$NMWAG$OI,?\$G$9!#(B

    +

    endif 要素は if + 要素を終了させます。この要素は必須です。

    -

    test_condition $B$O0J2<$N$I$l$+$G$9(B:

    +

    test_condition は以下のどれかです:

    string
    -
    string $B$,6u$G$J$$>l9g$K??$G$9(B
    +
    string が空でない場合に真です
    string1 = string2
    string1 == string2
    string1 != string2
    -

    string1 $B$H(B string2 $B$rHf3S$7$^$9!#(B - string2 $B$,(B /string/ - $B$H$$$&7A<0$G$"$l$P!"@55,I=8=$H$7$FHf3S$5$l$^$9!#@55,I=8=$O(B - PCRE $B%(%s%8%s$Gperl 5 $B$HF1$89=J8$r;HMQ$7$^$9!#(B - == $B$OC1$K(B = $B$NJLL>$G!"$^$C$?$/F1$8F0:n$r(B - $B$7$^$9!#(B

    +

    string1 と string2 を比較します。 + string2 が /string/ + という形式であれば、正規表現として比較されます。正規表現は + PCRE エンジンで実装されていて、 + perl 5 と同じ構文を使用します。 + == は単に = の別名で、まったく同じ動作を + します。

    -

    $B@5$N%^%C%A%s%0(B (= $B$^$?$O(B ==) $B$N>l9g$O!"(B - $B@55,I=8=$G%0%k!<%WJ,$1$5$l$?%Q!<%D$r%-%c%W%A%c$9$k$3$H$,$G$-$^$9!#(B - $B%-%c%W%A%c$5$l$?ItJ,$OFC$1 .. $9 - $B$K3JG<$5$l$^$9!#(B

    +

    正のマッチング (= または ==) の場合は、 + 正規表現でグループ分けされたパーツをキャプチャすることができます。 + キャプチャされた部分は特殊変数 $1 .. $9 + に格納されます。

    - $BNc(B + 例 <!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" -->
    <!--#set var="session" value="$1" -->
    @@ -513,100 +513,100 @@ string1 > string2
    string1 >= string2 -
    string1 $B$H(B string2 $B$rHf3S$7$^$9!#(B - $BJ8;zNs$H$7$F(B$BHf3S$5$l$k(B (strcmp(3) $B$r;HMQ(B) - $B$3$H$KCm0U$7$F$/$@$5$$!#$G$9$+$i!"J8;zNs(B "100" $B$O(B "20" - $B$h$j$b>.$5$$$3$H$K$J$j$^$9!#(B
    +
    string1 と string2 を比較します。 + 文字列として比較される (strcmp(3) を使用) + ことに注意してください。ですから、文字列 "100" は "20" + よりも小さいことになります。
    ( test_condition )
    -
    test_condition $B$,??$N$H$-!"??(B
    +
    test_condition が真のとき、真
    ! test_condition
    -
    test_condition $B$,56$N$H$-!"??(B
    +
    test_condition が偽のとき、真
    test_condition1 && test_condition2
    -
    test_condition1 $B$+$D(B - test_condition2 $B$,??$N$H$-!"??(B
    +
    test_condition1 かつ + test_condition2 が真のとき、真
    test_condition1 || test_condition2
    -
    test_condition1 $B$^$?$O(B - test_condition2 $B$,??$N$H$-!"??(B
    +
    test_condition1 または + test_condition2 が真のとき、真
    -

    "=" $B$H(B "!=" $B$NJ}$,(B "&&" $B$h$j(B - $B$-$D$/B+G{$7$^$9!#(B"!" $B$NB+G{$,0lHV$-$D$/$J$C$F$$$^$9!#(B - $B$G$9$+$i0J2<$NFs$D$OEy2A$G$9(B:

    +

    "=" と "!=" の方が "&&" より + きつく束縛します。"!" の束縛が一番きつくなっています。 + ですから以下の二つは等価です:

    <!--#if expr="$a = test1 && $b = test2" -->
    <!--#if expr="($a = test1) && ($b = test2)" -->
    -

    $B??56CM%*%Z%l!<%?(B && $B$H(B || - $B$OF1$8M%@hEY$G$9!#(B - $B$3$l$i$N%*%Z%l!<%?$G0lJ}$K$h$j6/$$M%@hEY$r$D$1$?$$>l9g$K$O!"(B - $B3g8L$r;H$&I,MW$,$"$j$^$9!#(B

    +

    真偽値オペレータ && と || + は同じ優先度です。 + これらのオペレータで一方により強い優先度をつけたい場合には、 + 括弧を使う必要があります。

    -

    $BJQ?t$d%*%Z%l!<%?$H$7$FG'<1$5$l$J$$$b$N$O$9$Y$FJ8;zNs$H$7$F(B - $B07$o$l$^$9!#J8;zNs$O0zMQId$G0O$`$3$H$b$G$-$^$9(B: 'string' - $B$N$h$&$K!#0zMQId$G0O$^$l$F$$$J$$J8;zNs$K$O6uGr(B ($B%9%Z!<%9$H%?%V(B) - $B$r4^$a$k$3$H$O$G$-$^$;$s!#$=$l$i$OJQ?t$J$I$N6g$rJ,N%$9$k$?$a$K(B - $B;H$o$l$F$$$k$+$i$G$9!#J#?t$NJ8;zNs$,B3$$$F$$$k$H$-$O!"(B - $B6uGr$r4V$KF~$l$F0l$D$K$/$C$D$1$i$l$^$9!#$G$9$+$i!"(B

    +

    変数やオペレータとして認識されないものはすべて文字列として + 扱われます。文字列は引用符で囲むこともできます: 'string' + のように。引用符で囲まれていない文字列には空白 (スペースとタブ) + を含めることはできません。それらは変数などの句を分離するために + 使われているからです。複数の文字列が続いているときは、 + 空白を間に入れて一つにくっつけられます。ですから、

    string1    string2 $B$O(B string1 string2 $B$K$J$j$^$9!#(B
    + >string2 は string1 string2 になります。

    - $B$^$?!"(B
    + また、

    'string1    string2' $B$O(B string2' は string1    string2 - $B$K$J$j$^$9!#(B

    + になります。

    - $B??56CMI=8=$N:GE,2=(B -

    $B<0$,$b$C$HJ#;($K$J$j!"=hM}$NB.EYDc2<$,82Cx$K$J$C$?>l9g$O!"(B - $BI>2A%k!<%k$K=>$C$F:GE,2=$7$F$_$k$HNI$$$G$7$g$&!#(B

    + 真偽値表現の最適化 +

    式がもっと複雑になり、処理の速度低下が顕著になった場合は、 + 評価ルールに従って最適化してみると良いでしょう。

      -
    • $BI>2A$O:8$+$i1&$K8~$+$C$F9T$o$l$^$9!#(B
    • -
    • $BFsCM??56CM%*%Z%l!<%?(B (&& $B$H(B ||) - $B$O!"=PMh$k8B$jC;MmI>2A$5$l$^$9!#$D$^$j7k2L$H$7$F>e5-$N%k!<%k$O!"(B - mod_include $B$,:8$NI>2A<0$rI>2A$7$^$9!#(B - $B:8B&$G7k2L$r==J,7hDj$G$-$k>l9g$O!"I>2A$O$=$3$GDd;_$7$^$9!#(B - $B$=$&$G$J$$>l9g$O1&B&$rI>2A$7$F!":8$H1&$NN>J}$+$i7k2L$r7W;;$7$^$9!#(B
    • -
    • $BC;MmI>2A$OI>2A$NBP>]$K@55,I=8=$,4^$^$l$k>l9g!"%*%U$K$J$j$^$9!#(B - $B8eJ};2>H$9$kJQ?t(B ($1 .. $9) - $B$rKd$a$k$?$a$K!"2A$9$kI,MW$,$"$k$+$i$G$9!#(B
    • +
    • 評価は左から右に向かって行われます。
    • +
    • 二値真偽値オペレータ (&& と ||) + は、出来る限り短絡評価されます。つまり結果として上記のルールは、 + mod_include が左の評価式を評価します。 + 左側で結果を十分決定できる場合は、評価はそこで停止します。 + そうでない場合は右側を評価して、左と右の両方から結果を計算します。
    • +
    • 短絡評価は評価の対象に正規表現が含まれる場合、オフになります。 + 後方参照する変数 ($1 .. $9) + を埋めるために、実際に評価する必要があるからです。
    -

    $BFCDj$N<0$,$I$N$h$&$K07$o$l$k$+$rCN$j$?$$>l9g$O!"(B - -DDEBUG_INCLUDE $B%3%s%Q%$%i%*%W%7%g%s$rIU$1$F(B - mod_include $B$r%j%3%s%Q%$%k$9$k$HNI$$$G$7$g$&!#(B - $B$3$l$K$h$j!"A4$F$N%Q!<%9$5$l$?<0$KBP$7$F!";z6g2r@O>pJs!"(B - $B%Q!<%9%D%j!<$H!"(B - $B$=$l$,$I$N$h$&$K%/%i%$%"%s%H$KAw$i$l$?=PNO$^$GI>2A$5$l$?$+$r(B - $BA^F~$7$^$9!#(B

    +

    特定の式がどのように扱われるかを知りたい場合は、 + -DDEBUG_INCLUDE コンパイラオプションを付けて + mod_include をリコンパイルすると良いでしょう。 + これにより、全てのパースされた式に対して、字句解析情報、 + パースツリーと、 + それがどのようにクライアントに送られた出力まで評価されたかを + 挿入します。

    SSIEndTag -include $BMWAG$r=*N;$5$;$kJ8;zNs(B +include 要素を終了させる文字列 SSIEndTag tag SSIEndTag "-->" server configvirtual host -2.0.30 $B0J9_$GMxMQ2DG=(B +2.0.30 以降で利用可能 -

    $B$3$N%G%#%l%/%F%#%V$O(B mod_include $B$,C5$9!"(B - include $BMWAG$N=*N;$r<($9J8;zNs$rJQ99$7$^$9!#(B

    +

    このディレクティブは mod_include が探す、 + include 要素の終了を示す文字列を変更します。

    - $BNc(B + 例 SSIEndTag "%>" @@ -616,20 +616,20 @@ SSIUndefinedEcho -$BL$Dj5A$NJQ?t$,(B echo $B$5$l$?$H$-$KI=<($5$l$kJ8;zNs(B +未定義の変数が echo されたときに表示される文字列 SSIUndefinedEcho string SSIUndefinedEcho "(none)" server configvirtual host directory.htaccess All -2.0.34 $B0J9_$GMxMQ2DG=(B +2.0.34 以降で利用可能 -

    $B$3$N%G%#%l%/%F%#%V$OJQ?t$,Dj5A$5$l$F$$$J$$$K$b4X$o$i$:(B - "echo" $B$5$l$?$H$-$K(B mod_include - $B$,I=<($9$kJ8;zNs$rJQ99$7$^$9!#(B

    +

    このディレクティブは変数が定義されていないにも関わらず + "echo" されたときに mod_include + が表示する文字列を変更します。

    - $BNc(B + 例 SSIUndefinedEcho "<!-- undef -->"
    @@ -637,26 +637,26 @@ SSIErrorMsg -SSI $B$N%(%i!<$,$"$C$?$H$-$KI=<($5$l$k%(%i!<%a%C%;!<%8(B +SSI のエラーがあったときに表示されるエラーメッセージ SSIErrorMsg message SSIErrorMsg "[an error occurred while processing this directive]" server configvirtual host directory.htaccess All -$B%P!<%8%g%s(B 2.0.30 $B0J9_$G;HMQ2DG=(B +バージョン 2.0.30 以降で使用可能 -

    SSIErrorMsg $B%G%#%l%/%F%#%V$O(B mod_include - $B$,%(%i!<$,5/$3$C$?$H$-$KI=<($9$k%a%C%;!<%8$rJQ99$7$^$9!#%W%m%@%/%7%g%s%5!<%P$G$O(B - $B%a%C%;!<%8$,%f!<%6$KI=<($5$l$J$$$h$&$K$9$k$?$a$K(B - $B%G%U%)%k%H%(%i!<%a%C%;!<%8$r(B "<!-- Error -->" - $B$KJQ$($k$H$$$&$h$&$J$3$H$r9M$($k$+$b$7$l$^$;$s!#(B

    +

    SSIErrorMsg ディレクティブは mod_include + がエラーが起こったときに表示するメッセージを変更します。プロダクションサーバでは + メッセージがユーザに表示されないようにするために + デフォルトエラーメッセージを "<!-- Error -->" + に変えるというようなことを考えるかもしれません。

    -

    $B$3$N%G%#%l%/%F%#%V$O(B <!--#config - errmsg=message --> $BMWAG$HF1$88z2L$K$J$j$^$9!#(B

    +

    このディレクティブは <!--#config + errmsg=message --> 要素と同じ効果になります。

    - $BNc(B + 例 SSIErrorMsg "<!-- Error -->"
    @@ -664,32 +664,32 @@ directive]" SSIStartTag -include $BMWAG$r3+;O$9$kJ8;zNs(B +include 要素を開始する文字列 SSIStartTag tag SSIStartTag "<!--#" server configvirtual host -$B%P!<%8%g%s(B 2.0.30 $B0J9_$G;HMQ2DG=(B +バージョン 2.0.30 以降で使用可能 -

    $B$3$N%G%#%l%/%F%#%V$O(B mod_include $B$,C5$9!"(Binclude - $BMWAG$N3+;O$r<($9J8;zNs$rJQ99$7$^$9!#(B

    +

    このディレクティブは mod_include が探す、include + 要素の開始を示す文字列を変更します。

    -

    $BFs$D$N%5!<%P$G(B ($B$b$7$+$9$k$HJL!9$NCJ3,$G(B) $B%U%!%$%k$N=PNO$r2r@O$7$F$$$F!"(B - $B$=$l$>$l$K0c$&%3%^%s%I$r=hM}$5$;$?$$!"(B - $B$H$$$&$h$&$J$H$-$K$3$N%*%W%7%g%s$r;H$$$^$9!#(B

    +

    二つのサーバで (もしかすると別々の段階で) ファイルの出力を解析していて、 + それぞれに違うコマンドを処理させたい、 + というようなときにこのオプションを使います。

    - $BNc(B + 例 SSIStartTag "<%"
    SSIEndTag "%>"
    -

    $B>e$NNc$N$h$&$KBP1~$9$k(B - SSIEndTag $B$rJ;$;$F;H$&$H!"(B - $B2<$K<($9Nc$N$h$&$K(B SSI $B%G%#%l%/%F%#%V$r;H$($^$9(B:

    +

    上の例のように対応する + SSIEndTag を併せて使うと、 + 下に示す例のように SSI ディレクティブを使えます:

    - $B0c$&3+;O$H=*N;$N%?%0$r;H$C$?(B SSI $B%G%#%l%/%F%#%V(B + 違う開始と終了のタグを使った SSI ディレクティブ <%printenv %>
    @@ -698,36 +698,36 @@ directive]" SSITimeFormat -$BF|IU$1$r8=$9J8;zNs$N=q<0$r@_Dj$9$k(B +日付けを表す文字列の書式を設定する SSITimeFormat formatstring SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z" server configvirtual host directory.htaccess All -2.0.30 $B0J9_$G;HMQ2DG=(B +2.0.30 以降で使用可能 -

    $B$3$N%G%#%l%/%F%#%V$O(B DATE $B4D6-JQ?t$r(B echo $B$7$FF|IU$r8=$9J8;zNs$,(B - $BI=<($5$l$k$H$-$N=q<0$rJQ99$7$^$9!#(Bformatstring $B$O(B - C $BI8=`%i%$%V%i%j$N(B strftime(3) $B$HF1$87A<0$G$9!#(B

    +

    このディレクティブは DATE 環境変数を echo して日付を表す文字列が + 表示されるときの書式を変更します。formatstring は + C 標準ライブラリの strftime(3) と同じ形式です。

    -

    $B$3$N%G%#%l%/%F%#%V$O(B <!--#config - timefmt=formatstring --> $BMWAG$HF1$88z2L$K$J$j$^$9!#(B

    +

    このディレクティブは <!--#config + timefmt=formatstring --> 要素と同じ効果になります。

    - $BNc(B + 例 SSITimeFormat "%R, %B %d, %Y" -

    $B>e$N%G%#%l%/%F%#%V$G$O!"F|IU$O(B "22:26, June 14, 2002" $B$H$$$&(B - $B7A<0$GI=<($5$l$^$9!#(B

    +

    上のディレクティブでは、日付は "22:26, June 14, 2002" という + 形式で表示されます。

    XBitHack -$B +実行ビットが設定されたファイルの SSI ディレクティブを +解析する XBitHack on|off|full XBitHack off server configvirtual host @@ -735,32 +735,32 @@ directive]" Options -

    XBitHack $B%G%#%l%/%F%#%V$ODL>o$N(B HTML - $B%I%-%e%a%s%H$N2r@O$r@)8f$7$^$9!#$3$N%G%#%l%/%F%#%V$O(B MIME $B%?%$%W(B - text/html $B$H4XO"IU$1$i$l$F$$$k%U%!%$%k$K$N$_1F6A$7$^$9!#(B - XBitHack $B$O0J2<$NCM$r$H$k$3$H$,$G$-$^$9!#(B

    +

    XBitHack ディレクティブは通常の HTML + ドキュメントの解析を制御します。このディレクティブは MIME タイプ + text/html と関連付けられているファイルにのみ影響します。 + XBitHack は以下の値をとることができます。

    off
    -
    $B +
    実行可能ファイルに対して特別な扱いをしません。
    on
    -
    $B%f!<%6$Ntext/html - $B%U%!%$%k$OA4$F%5!<%P$G2r@O$9$k(B html $B%I%-%e%a%s%H$H$7$F07$o$l$^$9!#(B
    +
    ユーザの実行ビットが設定されている text/html + ファイルは全てサーバで解析する html ドキュメントとして扱われます。
    full
    -
    on $B$HF1MM$G$9$,!"%0%k!<%WLast-modified $B$N(B - $BF|IU$r%U%!%$%k$N:G=*=$@5;~9o$K$7$^$9!#$=$l$,@_Dj$5$l$F$$$J$$$H$-$O!"(B - last-modified $B$NF|IU$OAw$i$l$^$;$s!#$3$N%S%C%H$r@_Dj$9$k$H!"(B - $B%/%i%$%"%s%H$d%W%m%-%7$,%j%/%(%9%H$r%-%c%C%7%e$G$-$k$h$&$K$J$j$^$9!#(B - - $BCm0U(B $BB>$N(B CGI $B$r(B #include - $B$9$k$+$b$7$l$J$$$b$N$d!"3F%"%/%;%9$KBP$7$F0c$&=PNO$r@8@.$9$k(B - ($B$b$7$/$O8e$N%j%/%(%9%H$GJQ$o$k$+$b$7$l$J$$$b$N(B) - $B$9$Y$F$N(B SSI $B%9%/%j%W%H$KBP$7$F%0%k!<%Wl9g$O!"(Bfull $B$O;H$o$J$$J}$,NI$$(B - $B$G$7$g$&!#(B +
    on と同様ですが、グループ実行ビットもテストします。 + もしそれが設定されていれば、返されるファイルの Last-modified の + 日付をファイルの最終修正時刻にします。それが設定されていないときは、 + last-modified の日付は送られません。このビットを設定すると、 + クライアントやプロキシがリクエストをキャッシュできるようになります。 + + 注意 他の CGI を #include + するかもしれないものや、各アクセスに対して違う出力を生成する + (もしくは後のリクエストで変わるかもしれないもの) + すべての SSI スクリプトに対してグループ実行ビットが + 設定されていないことを確認できない場合は、full は使わない方が良い + でしょう。
    diff --git a/docs/manual/mod/mod_include.xml.meta b/docs/manual/mod/mod_include.xml.meta index d3ac678b40c..8f747eea0fc 100644 --- a/docs/manual/mod/mod_include.xml.meta +++ b/docs/manual/mod/mod_include.xml.meta @@ -1,12 +1,13 @@ + - + mod_include /mod/ .. en - ja + ja diff --git a/docs/manual/mod/mod_info.html b/docs/manual/mod/mod_info.html index 849911036a8..2b70dae6ea9 100644 --- a/docs/manual/mod/mod_info.html +++ b/docs/manual/mod/mod_info.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_info.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_info.html.ja.euc-jp +URI: mod_info.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_info.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_info.html.en b/docs/manual/mod/mod_info.html.en index 299384dc14a..bc1d06e506b 100644 --- a/docs/manual/mod/mod_info.html.en +++ b/docs/manual/mod/mod_info.html.en @@ -1,25 +1,32 @@ - -mod_info - Apache HTTP Server +mod_info - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_info

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_info

    Available Languages:  en  |  ja  | @@ -28,8 +35,8 @@ - -
    Description:Provides a comprehensive overview of the server configuration
    Status:Extension
    Module Identifier:info_module
    Source File:mod_info.c
    +Module Identifier:info_module +Source File:mod_info.c

    Summary

    To configure mod_info, add the following to your @@ -43,9 +50,9 @@ configuration </Location>

    -

    You may wish to use mod_access inside the +

    You may wish to use mod_authz_host inside the <Location> - directive to limite access to your server configuration + directive to limit access to your server configuration information:

    @@ -62,16 +69,16 @@ configuration

    Once configured, the server information is obtained by accessing http://your.host.example.com/server-info

    -
    top

    Security Issues

    @@ -143,19 +150,18 @@ configuration LoadFile.
  • Directives which control the configuration file itself, such as Include, - <IfModule> and - <IfDefine> are not + <IfModule> and + <IfDefine> are not listed, but the included configuration directives are.
  • Comments are not listed. (This may be considered a feature.)
  • Configuration directives from .htaccess files are not listed (since they do not form part of the permanent server configuration).
  • -
  • Container directives such as - <Directory> - are listed normally, but mod_info cannot figure - out the line number for the closing - </Directory>.
  • -
  • Directives generated by third party modules such as mod_perl +
  • Container directives such as <Directory> are listed normally, but + mod_info cannot figure out the line number for the + closing </Directory>.
  • +
  • Directives generated by third party modules such as + mod_perl might not be listed.
  • @@ -177,8 +183,8 @@ information displayed by the server-info handler

    AddModuleInfo mod_deflate.c 'See <a \
    - href="http://www.apache.org/docs-2.1/mod/mod_deflate.html">\
    - http://www.apache.org/docs-2.1/mod/mod_deflate.html</a>' + href="http://www.apache.org/docs/2.2/mod/mod_deflate.html">\
    + http://www.apache.org/docs/2.2/mod/mod_deflate.html</a>'

    @@ -188,7 +194,28 @@ information displayed by the server-info handler

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_info.html.ja.euc-jp b/docs/manual/mod/mod_info.html.ja.euc-jp deleted file mode 100644 index e20fbae1384..00000000000 --- a/docs/manual/mod/mod_info.html.ja.euc-jp +++ /dev/null @@ -1,188 +0,0 @@ - - - -mod_info - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_info

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥µ¡¼¥ФÎÀßÄê¤ÎÊñ³çŪ¤ʳµ´ѤòÄ󶡤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:info_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_info.c
    -

    ³µÍ×

    - -

    mod_info ¤òÀßÄꤹ¤ë¤ˤϡ¢°ʲ¼¤ò httpd.conf - ¥ե¡¥¤¥ë¤˲䨤ޤ¹¡£

    - -

    - <Location /server-info>
    - - SetHandler server-info
    -
    - </Location> -

    - -

    <Location> - ¤ÎÃæ¤Ç mod_access ¤ò»Ȥäơ¢¥µ¡¼¥ÐÀßÄê¾ðÊó¤ؤÎ - ¥¢¥¯¥»¥¹¤òÀ©¸¤·¤¿¤¤¤Ȼפ¦¤«¤⤷¤ì¤ޤ»¤ó :

    - -

    - <Location /server-info>
    - - SetHandler server-info
    - Order deny,allow
    - Deny from all
    - Allow from yourcompany.com
    -
    - </Location> -

    - -

    °ìöÀßÄꤹ¤ë¤ȡ¢http://your.host.example.com/server-info - ¤˥¢¥¯¥»¥¹¤¹¤뤳¤Ȥǥµ¡¼¥ФξðÊó¤òÆÀ¤é¤ì¤ë¤褦¤ˤʤê¤ޤ¹¡£

    -
    - -
    top
    -
    -

    Security Issues

    -

    °ìö mod_info ¤¬¥µ¡¼¥ФËÆɤ߹þ¤ޤì¤ë¤ȡ¢ - Ä󶡤·¤Ƥ¤¤ë¥ϥó¥ɥ鵡ǽ¤ϥǥ£¥쥯¥ȥêËè¤ÎÀßÄê¥ե¡¥¤¥ë (Î㤨¤Ð - .htaccess) ¤ò´ޤà ¤¹¤٤ƤÎÀßÄê¥ե¡¥¤¥ë¤Çͭ¸ú¤ˤʤê¤ޤ¹¡£ - ¤³¤Υ⥸¥塼¥ë¤òͭ¸ú¤ˤ¹¤ë¤Ȥ­¤ϥ»¥­¥å¥ê¥ƥ£¤ÎÌäÂê¤ò¹Íθ¤¹¤ëɬÍפ¬ - ¤¢¤ë¤Ǥ·¤礦¡£

    - -

    Æäˡ¢¤³¤Υ⥸¥塼¥ë¤ϥ·¥¹¥ƥà¥ѥ¹¡¢¥桼¥¶̾/¥ѥ¹¥¥ɡ¢ - ¥ǡ¼¥¿¥١¼¥¹̾¤ʤɡ¢¾¤Î Apache ¥⥸¥塼¥ë¤ÎÀßÄê¥ǥ£¥쥯¥ƥ£¥֤«¤é - ¥»¥­¥å¥ê¥ƥ£¾åÈù̯¤ʾðÊó¤òϳ¤餹²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢¤³¤Υ⥸¥塼¥ë¤Ϥ­¤Á¤ó¤ȥ¢¥¯¥»¥¹À©¸椵¤줿´Ķ­¤Ç¤Τß¡¢ - Ãí°դ·¤ƻȤäƤ¯¤À¤µ¤¤¡£

    - -

    ÀßÄê¾ðÊó¤ؤΥ¢¥¯¥»¥¹¤òÀ©¸¤¹¤뤿¤á¤ˡ¢mod_authz_host ¤ò - »Ȥ¦¤Τ¬Îɤ¤¤Ǥ·¤礦¡£

    - -

    ¥¢¥¯¥»¥¹À©¸æ

    - <Location /server-info>
    - - SetHandler server-info
    - Order allow,deny
    - # Allow access from server itself
    - Allow from 127.0.0.1
    - # Additionally, allow access from local workstation
    - Allow from 192.168.1.17
    -
    - </Location> -

    -
    top
    -
    -

    ɽ¼¨¤µ¤ì¤ë¾ðÊó¤ÎÁªÂò

    -

    ¥ǥե©¥ë¥ȤǤϡ¢¥µ¡¼¥оðÊó¤Ϥ¹¤٤ƤÎͭ¸ú¤ʥ⥸¥塼¥ë¤ȡ¢ - ³ƥ⥸¥塼¥ë¤ˤĤ¤¤ơ¢¥⥸¥塼¥뤬Íý²򤹤ë¥ǥ£¥쥯¥ƥ£¥֡¢ - ¼ÂÁõ¤·¤Ƥ¤¤롢¥ե寡¢¸½»þÅÀ¤ǤÎÀßÄê¤δØϢ¤¹¤ë¥ǥ£¥쥯¥ƥ£¥֤Ë - ¤ʤäƤ¤¤ޤ¹¡£

    - -

    server-info ¥ꥯ¥¨¥¹¥Ȥإ¯¥¨¥꡼¤òÄɲ乤뤳¤Ȥǡ¢ - ÀßÄê¾ðÊó¤Î¾¤Îɽ¼¨·Á¼°¤òÁª¤֤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£Î㤨¤С¢ - http://your.host.example.com/server-info?config ¤Ï - ¤¹¤٤ƤÎÀßÄê¥ǥ£¥쥯¥ƥ£¥֤òɽ¼¨¤·¤ޤ¹¡£

    - -
    -
    ?<module-name>
    -
    »ØÄꤵ¤줿¥⥸¥塼¥ë¤˴ØϢ¤¹¤ë¾ðÊó¤Τß
    -
    ?config
    -
    ¥⥸¥塼¥ë¤ǥ½¡¼¥Ȥ»¤º¤ˡ¢ÀßÄê¥ǥ£¥쥯¥ƥ£¥֤Τß
    -
    ?hooks
    -
    ³ƥ⥸¥塼¥뤬»ÈÍѤ¹¤ë¥ե寤Τß
    -
    ?list
    -
    ͭ¸ú¤ʥ⥸¥塼¥ë¤δÊñ¤ʥꥹ¥ȤΤß
    -
    ?server
    -
    ´ðËܥµ¡¼¥оðÊó¤Τß
    -
    -
    top
    -
    -

    ´ûÃΤÎÀ©¸Â

    -

    mod_info ¤ϡ¢¸µ¤ÎÀßÄê¥ե¡¥¤¥ë¤òÆɤà¤ΤǤϤʤ¯¡¢ - ´û¤˥ѡ¼¥¹¤µ¤줿ÀßÄê¤òÆɤ߹þ¤ळ¤ȤǾðÊó¤òÄ󶡤·¤ޤ¹¡£½¾¤äơ¢ - ¥ѡ¼¥¹ºѤߤÎÀßÄê¾ðÊó¤ÎÌڤ¬À¸À®¤µ¤ì¤ëÊýˡ¤ˤè¤ëÀ©¸¤¬¤¤¤¯¤Ĥ«¤¢¤ê¤ޤ¹:

    -
      -
    • ¥ѡ¼¥¹¤µ¤줿ÀßÄê¤ËÊݸ¤µ¤줺¤ˡ¢¤¹¤°¤˼¹Ԥµ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤Ï - °ìÍ÷¤˸½¤ì¤ޤ»¤󡣤³¤ì¤ˤÏ - ServerRoot, - LoadModule, - LoadFile ¤¬¤¢¤ê¤ޤ¹¡£
    • -
    • Include, - <IfModule>, - <IfDefine>, - ¤Τ褦¤ÊÀßÄê¥ե¡¥¤¥뼫¿ȤòÀ©¸椹¤ë¥ǥ£¥쥯¥ƥ£¥֤Ïɽ¼¨¤µ¤ì¤ޤ»¤ó¡£ - ¤½¤Υǥ£¥쥯¥ƥ£¥֤ÎÃæ¤ˤ¢¤ꡢͭ¸ú¤ˤʤäƤ¤¤ë¥ǥ£¥쥯¥ƥ£¥֤Ï - ɽ¼¨¤µ¤ì¤ޤ¹¡£
    • -
    • ¥³¥á¥ó¥ȤÏɽ¼¨¤µ¤ì¤ޤ»¤ó¡£(¤³¤ì¤ϻÅÍͤÀ¤ȻפäƤ¯¤À¤µ¤¤¡£)
    • -
    • .htaccess ¥ե¡¥¤¥ë¤ÎÀßÄê¥ǥ£¥쥯¥ƥ£¥֤Ïɽ¼¨¤µ¤ì¤ޤ»¤ó - (±ʵ×Ū¤ʥµ¡¼¥ÐÀßÄê¤ΰìÉô¤ǤϤʤ¤¤«¤é¤Ǥ¹)¡£
    • -
    • <Directory> - ¤Τ褦¤ʥ³¥ó¥ƥʥǥ£¥쥯¥ƥ£¥֤ÏÉáÄ̤Ëɽ¼¨¤µ¤ì¤ޤ¹¤¬¡¢ - mod_info ¤ÏÊĤ¸¥¿¥°¤Î </Directory> ¤ʤɤοô¤òÃΤ뤳¤ȤϤǤ­¤ޤ»¤ó¡£
    • -
    • mod_perl ¤Τ褦¤ʥµ¡¼¥ɥѡ¼¥ƥ£¥⥸¥塼¥ë - ¤Υǥ£¥쥯¥ƥ£¥֤Ïɽ¼¨¤µ¤ì¤ʤ¤¤«¤⤷¤ì¤ޤ»¤ó¡£
    • -
    -
    -
    top
    -

    AddModuleInfo ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:server-info ¥ϥó¥ɥé¤ˤè¤êɽ¼¨¤µ¤ì¤ë¥⥸¥塼¥ë¤ξðÊó¤Ë -ÄɲäξðÊó¤òÉդ±²ä¨¤ë
    ¹½ʸ:AddModuleInfo module-name string
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_info
    ¸ߴ¹À­:Apache 1.3 °ʹß
    -

    ¤³¤ì¤ϡ¢string ¤ÎÆâÍƤ¬¥⥸¥塼¥ë module-name - ¤ÎÄɲþðÊó ¤Ȥ·¤Æ HTML - ¤Ȥ·¤Ʋò¼ᤵ¤졢ɽ¼¨¤µ¤ì¤ë¤褦¤ˤ·¤ޤ¹¡£Îã:

    - -

    - AddModuleInfo mod_deflate.c 'See <a \
    - - href="http://www.apache.org/docs-2.1/mod/mod_deflate.html">\
    - http://www.apache.org/docs-2.1/mod/mod_deflate.html</a>' -
    -

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_info.html.ja.utf8 b/docs/manual/mod/mod_info.html.ja.utf8 new file mode 100644 index 00000000000..98f6109c552 --- /dev/null +++ b/docs/manual/mod/mod_info.html.ja.utf8 @@ -0,0 +1,220 @@ + + + + + +mod_info - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_info

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:サーバの設定の包括的な概観を提供する
    ステータス:Extension
    モジュール識別子:info_module
    ソースファイル:mod_info.c
    +

    概要

    + +

    mod_info を設定するには、以下を httpd.conf + ファイルに加えます。

    + +

    + <Location /server-info>
    + + SetHandler server-info
    +
    + </Location> +

    + +

    <Location> + の中で mod_access を使って、サーバ設定情報への + アクセスを制限したいと思うかもしれません :

    + +

    + <Location /server-info>
    + + SetHandler server-info
    + Order deny,allow
    + Deny from all
    + Allow from yourcompany.com
    +
    + </Location> +

    + +

    一旦設定すると、http://your.host.example.com/server-info + にアクセスすることでサーバの情報を得られるようになります。

    +
    + +
    top
    +
    +

    Security Issues

    +

    一旦 mod_info がサーバに読み込まれると、 + 提供しているハンドラ機能はディレクトリ毎の設定ファイル (例えば + .htaccess) を含む すべての設定ファイルで有効になります。 + このモジュールを有効にするときはセキュリティの問題を考慮する必要が + あるでしょう。

    + +

    特に、このモジュールはシステムパス、ユーザ名/パスワード、 + データベース名など、他の Apache モジュールの設定ディレクティブから + セキュリティ上微妙な情報を漏らす可能性があります。 + ですから、このモジュールはきちんとアクセス制御された環境でのみ、 + 注意して使ってください。

    + +

    設定情報へのアクセスを制限するために、mod_authz_host を + 使うのが良いでしょう。

    + +

    アクセス制御

    + <Location /server-info>
    + + SetHandler server-info
    + Order allow,deny
    + # Allow access from server itself
    + Allow from 127.0.0.1
    + # Additionally, allow access from local workstation
    + Allow from 192.168.1.17
    +
    + </Location> +

    +
    top
    +
    +

    表示される情報の選択

    +

    デフォルトでは、サーバ情報はすべての有効なモジュールと、 + 各モジュールについて、モジュールが理解するディレクティブ、 + 実装している、フック、現時点での設定の関連するディレクティブに + なっています。

    + +

    server-info リクエストへクエリーを追加することで、 + 設定情報の他の表示形式を選ぶことができます。例えば、 + http://your.host.example.com/server-info?config は + すべての設定ディレクティブを表示します。

    + +
    +
    ?<module-name>
    +
    指定されたモジュールに関連する情報のみ
    +
    ?config
    +
    モジュールでソートせずに、設定ディレクティブのみ
    +
    ?hooks
    +
    各モジュールが使用するフックのみ
    +
    ?list
    +
    有効なモジュールの簡単なリストのみ
    +
    ?server
    +
    基本サーバ情報のみ
    +
    +
    top
    +
    +

    既知の制限

    +

    mod_info は、元の設定ファイルを読むのではなく、 + 既にパースされた設定を読み込むことで情報を提供します。従って、 + パース済みの設定情報の木が生成される方法による制限がいくつかあります:

    +
      +
    • パースされた設定に保存されずに、すぐに実行されるディレクティブは + 一覧に現れません。これには + ServerRoot, + LoadModule, + LoadFile があります。
    • +
    • Include, + <IfModule>, + <IfDefine>, + のような設定ファイル自身を制御するディレクティブは表示されません。 + そのディレクティブの中にあり、有効になっているディレクティブは + 表示されます。
    • +
    • コメントは表示されません。(これは仕様だと思ってください。)
    • +
    • .htaccess ファイルの設定ディレクティブは表示されません + (永久的なサーバ設定の一部ではないからです)。
    • +
    • <Directory> + のようなコンテナディレクティブは普通に表示されますが、 + mod_info は閉じタグの </Directory> などの数を知ることはできません。
    • +
    • mod_perl のようなサードパーティモジュール + のディレクティブは表示されないかもしれません。
    • +
    +
    +
    top
    +

    AddModuleInfo ディレクティブ

    + + + + + + + +
    説明:server-info ハンドラにより表示されるモジュールの情報に +追加の情報を付け加える
    構文:AddModuleInfo module-name string
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_info
    互換性:Apache 1.3 以降
    +

    これは、string の内容がモジュール module-name + の追加情報 として HTML + として解釈され、表示されるようにします。例:

    + +

    + AddModuleInfo mod_deflate.c 'See <a \
    + + href="http://www.apache.org/docs/2.2/mod/mod_deflate.html">\
    + http://www.apache.org/docs/2.2/mod/mod_deflate.html</a>' +
    +

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_info.html.ko.euc-kr b/docs/manual/mod/mod_info.html.ko.euc-kr index 1632e67c03b..ebf8e7ac0c6 100644 --- a/docs/manual/mod/mod_info.html.ko.euc-kr +++ b/docs/manual/mod/mod_info.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_info - Apache HTTP Server +mod_info - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_info

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_info

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | @@ -48,16 +55,16 @@ http://your.host.example.com/server-info¿¡ Á¢±ÙÇϿ© ¼­¹ö¿¡ ´ëÇÑ Á¤º¸¸¦ º¼ ¼ö ÀִÙ.

    -

    Áö½þîµé

    - -

    ÁÖÁ¦

    + +

    Áö½þîµé

    + +
    top

    º¸¾È ¹®Á¦

    @@ -152,8 +159,8 @@

    AddModuleInfo mod_deflate.c 'See <a \
    - href="http://www.apache.org/docs-2.1/mod/mod_deflate.html">\
    - http://www.apache.org/docs-2.1/mod/mod_deflate.html</a>' + href="http://www.apache.org/docs/2.2/mod/mod_deflate.html">\
    + http://www.apache.org/docs/2.2/mod/mod_deflate.html</a>'

    @@ -163,7 +170,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_info.xml b/docs/manual/mod/mod_info.xml index 24696f6ad23..b6040fdaab2 100644 --- a/docs/manual/mod/mod_info.xml +++ b/docs/manual/mod/mod_info.xml @@ -4,12 +4,12 @@ + + - + mod_info /mod/ .. en - ja + ja ko diff --git a/docs/manual/mod/mod_isapi.html b/docs/manual/mod/mod_isapi.html index 6d92c77300d..d80ca339c4b 100644 --- a/docs/manual/mod/mod_isapi.html +++ b/docs/manual/mod/mod_isapi.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_isapi.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_isapi.html.en b/docs/manual/mod/mod_isapi.html.en index 751ec3c5b10..bac75e23ade 100644 --- a/docs/manual/mod/mod_isapi.html.en +++ b/docs/manual/mod/mod_isapi.html.en @@ -1,33 +1,40 @@ - -mod_isapi - Apache HTTP Server +mod_isapi - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_isapi

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_isapi

    Available Languages:  en  |  ko 

    - - + +
    Description:ISAPI Extensions within Apache for Windows
    Status:Base
    Module Identifier:isapi_module
    Source File:mod_isapi.c
    Module Identifier:isapi_module
    Source File:mod_isapi.c
    Compatibility:Win32 only

    Summary

    @@ -43,7 +50,12 @@ extension. Please do not post such problems to Apache's lists or bug reporting pages.

    -
    top

    Usage

    In the server configuration file, use the AddHandler directive to - associate ISAPI files with the isapi-isa handler, and map + associate ISAPI files with the isapi-handler handler, and map it to them with their file extensions. To enable any .dll file to be processed as an ISAPI extension, edit the httpd.conf file and add the following line:

    - AddHandler isapi-isa .dll + AddHandler isapi-handler .dll

    +
    In older versions of the Apache server, + isapi-isa was the proper handler name, rather than + isapi-handler. For compatibility, configurations may + continue using isapi-isa through all versions of Apache + prior to 2.3.0.
    +

    There is no capability within the Apache server to leave a requested module loaded. However, you may preload and keep a specific module loaded by using the following syntax in your @@ -331,7 +344,28 @@ extensions

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_isapi.html.ko.euc-kr b/docs/manual/mod/mod_isapi.html.ko.euc-kr index 353a022f860..3caf875f4f6 100644 --- a/docs/manual/mod/mod_isapi.html.ko.euc-kr +++ b/docs/manual/mod/mod_isapi.html.ko.euc-kr @@ -1,29 +1,38 @@ - -mod_isapi - Apache HTTP Server +mod_isapi - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_isapi

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_isapi

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -41,7 +50,12 @@ Á÷Á¢ ¿¬¶ôÇϱæ ¹ٶõ´Ù. Á¦¹ß À̷± ¹®Á¦¸¦ ¾ÆÆÄġ ¸ÞÀϸµ¸®½ºƮ³ª ¹ö±׺¸°í ÆäÀÌÁö¿¡ ¿ø®Áö ¸¶¶ó.

    -
    top

    »ç¿ë¹ý

    ¼­¹ö¼³Á¤ÆÄÀϿ¡¼­ AddHandler Áö½þ »ç¿ëÇϿ© - ISAPI ÆÄÀÏ ȮÀåÀڿÍ isapi-isa Çڵ鷯¸¦ ¿¬°áÇѴÙ. + ISAPI ÆÄÀÏ ȮÀåÀڿÍ isapi-handler Çڵ鷯¸¦ ¿¬°áÇѴÙ. .dll ÆÄÀÏÀ» ISAPI extensionÀ¸·Î ó¸®ÇϷÁ¸é httpd.conf ÆÄÀϿ¡ ´ÙÀ½°ú °°ÀÌ Ã߰¡ÇѴÙ.

    - AddHandler isapi-isa .dll + AddHandler isapi-handler .dll

    ¾ÆÆÄġ ¼­¹ö´Â ¿äûÇÑ ¸ðµâÀ» ¸޸𸮿¡ °è¼Ó µÑ ¼ö ¾ø´Ù. @@ -311,7 +320,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_isapi.xml b/docs/manual/mod/mod_isapi.xml index 348ac715204..6706edc7d52 100644 --- a/docs/manual/mod/mod_isapi.xml +++ b/docs/manual/mod/mod_isapi.xml @@ -4,12 +4,12 @@ + - + mod_isapi /mod/ .. en - ko + ko diff --git a/docs/manual/mod/mod_ldap.html b/docs/manual/mod/mod_ldap.html index 059ee1a961c..5aee964cc94 100644 --- a/docs/manual/mod/mod_ldap.html +++ b/docs/manual/mod/mod_ldap.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_ldap.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_ldap.html.en b/docs/manual/mod/mod_ldap.html.en index f0fbc1e4550..1eb68eeb26a 100644 --- a/docs/manual/mod/mod_ldap.html.en +++ b/docs/manual/mod/mod_ldap.html.en @@ -1,33 +1,40 @@ - -mod_ldap - Apache HTTP Server +mod_ldap - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_ldap

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_ldap

    Available Languages:  en 

    ¼³¸í:Windows¿ë ¾ÆÆÄġ¿¡¼­ ISAPI Extension »ç¿ë
    »óÅÂ:Base
    ¸ðµâ¸í:isapi_module
    - - + +
    Description:LDAP connection pooling and result caching services for use by other LDAP modules
    Status:Extension
    Module Identifier:ldap_module
    Source File:util_ldap.c
    Module Identifier:ldap_module
    Source File:util_ldap.c
    Compatibility:Available in version 2.0.41 and later

    Summary

    @@ -42,8 +49,8 @@ by other LDAP modules flag to the configure script when building Apache.

    -

    SSL/TLS support is dependant on which LDAP toolkit has been - linked to APR. As of this writing, APR-util supports: +

    SSL/TLS support is dependent on which LDAP toolkit has been + linked to APR. As of this writing, APR-util supports: OpenLDAP SDK (2.x or later), Novell LDAP SDK, @@ -54,7 +61,14 @@ by other LDAP modules website for details.

    -
    top

    Example Configuration

    @@ -90,7 +97,7 @@ by other LDAP modules # be loaded. Change the "yourdomain.example.com" to
    # match your domain.

    - LDAPSharedCacheSize 200000
    + LDAPSharedCacheSize 500000
    LDAPCacheEntries 1024
    LDAPCacheTTL 600
    LDAPOpCacheEntries 1024
    @@ -102,10 +109,9 @@ by other LDAP modules Order deny,allow
    Deny from all
    Allow from yourdomain.example.com
    - AuthLDAPEnabled on
    AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one
    - AuthLDAPAuthoritative on
    - require valid-user
    + AuthzLDAPAuthoritative off
    + Require valid-user
    </Location>

    @@ -211,10 +217,11 @@ by other LDAP modules

    Using SSL/TLS

    The ability to create an SSL and TLS connections to an LDAP server - is defined by the directives - LDAPTrustedGlobalCert, - LDAPTrustedClientCert and - LDAPTrustedMode. These directives specify the CA and + is defined by the directives + LDAPTrustedGlobalCert, + LDAPTrustedClientCert and + LDAPTrustedMode. + These directives specify the CA and optional client certificates to be used, as well as the type of encryption to be used on the connection (none, SSL or TLS/STARTTLS).

    @@ -231,10 +238,9 @@ by other LDAP modules Order deny,allow
    Deny from all
    Allow from yourdomain.example.com
    - AuthLDAPEnabled on
    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
    - AuthLDAPAuthoritative on
    - require valid-user
    + AuthzLDAPAuthoritative off
    + Require valid-user
    </Location>

    @@ -252,11 +258,9 @@ by other LDAP modules Order deny,allow
    Deny from all
    Allow from yourdomain.example.com
    - AuthLDAPEnabled on
    - LDAPTrustedMode TLS - AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one
    - AuthLDAPAuthoritative on
    - require valid-user
    + AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one TLS
    + AuthzLDAPAuthoritative off
    + Require valid-user
    </Location>

    @@ -305,11 +309,10 @@ by other LDAP modules Order deny,allow
    Deny from all
    Allow from yourdomain.example.com
    - AuthLDAPEnabled on
    LDAPTrustedClientCert CERT_NICKNAME <nickname> [password]
    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
    - AuthLDAPAuthoritative on
    - require valid-user
    + AuthzLDAPAuthoritative off
    + Require valid-user
    </Location>

    @@ -372,12 +375,11 @@ by other LDAP modules Order deny,allow
    Deny from all
    Allow from yourdomain.example.com
    - AuthLDAPEnabled on
    LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem
    LDAPTrustedClientCert KEY_BASE64 /certs/key1.pem
    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
    - AuthLDAPAuthoritative on
    - require valid-user
    + AuthzLDAPAuthoritative off
    + Require valid-user
    </Location>

    @@ -447,11 +449,23 @@ by other LDAP modules Status:Extension Module:mod_ldap -

    Specifies the timeout value (in seconds) in which the module will - attempt to connect to the LDAP server. If a connection is not - successful with the timeout period, either an error will be - returned or the module will attempt to connect to a secondary LDAP - server if one is specified. The default is 10 seconds.

    +

    This directive configures the LDAP_OPT_NETWORK_TIMEOUT option in the + underlying LDAP client library, when available. This value typically + controls how long the LDAP client library will wait for the TCP connection + to the LDAP server to complete.

    + +

    If a connection is not successful with the timeout period, either an error will be + returned or the LDAP client library will attempt to connect to a secondary LDAP + server if one is specified (via a space-separated list of hostnames in the + AuthLDAPURL).

    + +

    The default is 10 seconds, if the LDAP client library linked with the + server supports the LDAP_OPT_NETWORK_TIMEOUT option.

    + +
    LDAPConnectionTimeout is only available when the LDAP client library linked + with the server supports the LDAP_OPT_NETWORK_TIMEOUT option, and the + ultimate behavior is dictated entirely by the LDAP client library. +
    top
    @@ -504,13 +518,13 @@ valid - +
    Description:Size in bytes of the shared-memory cache
    Syntax:LDAPSharedCacheSize bytes
    Default:LDAPSharedCacheSize 102400
    Default:LDAPSharedCacheSize 500000
    Context:server config
    Status:Extension
    Module:mod_ldap

    Specifies the number of bytes to allocate for the shared - memory cache. The default is 100kb. If set to 0, shared memory + memory cache. The default is 500kb. If set to 0, shared memory caching will not be used.

    @@ -528,7 +542,7 @@ connection client certificates.

    It specifies the directory path, file name or nickname of a per connection client certificate used when establishing an SSL or TLS connection to an LDAP server. Different locations or - directories may have their own independant client certificate + directories may have their own independent client certificate settings. Some LDAP toolkits (notably Novell) do not support per connection client certificates, and will throw an error on LDAP server connection if you try to use this directive @@ -589,7 +603,7 @@ Certificate Authority or global client certificates - +
    Description:Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    Syntax:LDAPTrustedMode type
    Context:server config, virtual host, directory, .htaccess
    Context:server config, virtual host
    Status:Extension
    Module:mod_ldap
    @@ -627,7 +641,28 @@ Certificate Authority or global client certificates

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_ldap.xml b/docs/manual/mod/mod_ldap.xml index f0d3fde7972..486a8f7d705 100644 --- a/docs/manual/mod/mod_ldap.xml +++ b/docs/manual/mod/mod_ldap.xml @@ -4,12 +4,12 @@ - + mod_ldap /mod/ .. diff --git a/docs/manual/mod/mod_log_config.html b/docs/manual/mod/mod_log_config.html index 342249126e0..1e9233c9663 100644 --- a/docs/manual/mod/mod_log_config.html +++ b/docs/manual/mod/mod_log_config.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_log_config.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_log_config.html.ja.euc-jp +URI: mod_log_config.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_log_config.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_log_config.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_log_config.html.en b/docs/manual/mod/mod_log_config.html.en index 53a4b8c60f4..38de40d7093 100644 --- a/docs/manual/mod/mod_log_config.html.en +++ b/docs/manual/mod/mod_log_config.html.en @@ -1,34 +1,42 @@ - -mod_log_config - Apache HTTP Server +mod_log_config - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_log_config

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_log_config

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    - -
    Description:Logging of the requests made to the server
    Status:Base
    Module Identifier:log_config_module
    Source File:mod_log_config.c
    +Module Identifier:log_config_module +Source File:mod_log_config.c

    Summary

    This module provides for flexible logging of client @@ -45,7 +53,11 @@ step. The TransferLog and CustomLog directives can be used multiple times in each server to cause each request to be logged to multiple files.

    -

    Directives

    + +
    top

    Custom Log Formats

    @@ -69,8 +77,8 @@ used to log each request to the log file. It can contain literal characters copied into the log files and the C-style control characters "\n" and "\t" to represent new-lines and tabs. - Literal quotes and back-slashes should be escaped with - back-slashes.

    + Literal quotes and backslashes should be escaped with + backslashes.

    The characteristics of the request itself are logged by placing "%" directives in the format string, which are @@ -91,7 +99,7 @@ a '-' rather than a 0 when no bytes are sent. %{Foobar}C The contents of cookie Foobar in the request sent - to the server. + to the server. Only version 0 cookies are fully supported. %D The time taken to serve the request, in microseconds. %{FOOBAR}e @@ -105,44 +113,93 @@ The request protocol %{Foobar}i The contents of Foobar: header line(s) - in the request sent to the server. -%l + in the request sent to the server. Changes made by other + modules (e.g. mod_headers) affect this. If you're + interested in what the request header was prior to when most + modules would have modified it, use mod_setenvif + to copy the header into an internal environment variable and log + that value with the %{VARNAME}e described + above. + +%k + Number of keepalive requests handled on this connection. Interesting if + KeepAlive is being used, so that, + for example, a '1' means the first keepalive request after the initial + one, '2' the second, etc...; + otherwise this is always 0 (indicating the initial request). + Available in versions 2.2.11 and later. +%l Remote logname (from identd, if supplied). This will return a dash unless mod_ident is present and IdentityCheck is set On. -%m +%m The request method -%{Foobar}n +%{Foobar}n The contents of note Foobar from another module. -%{Foobar}o +%{Foobar}o The contents of Foobar: header line(s) in the reply. -%p +%p The canonical port of the server serving the request +%{format}p + The canonical port of the server serving the request or the + server's actual port or the client's actual port. Valid formats + are canonical, local, or remote. + %P The process ID of the child that serviced the request. %{format}P The process ID or thread id of the child that serviced the - request. Valid formats are pid and tid. + request. Valid formats are pid, tid, + and hextid. hextid requires APR 1.2.0 or + higher. %q The query string (prepended with a ? if a query string exists, otherwise an empty string) %r First line of request -%s +%R + The handler generating the response (if any). +%s Status. For requests that got internally redirected, this is the status of the *original* request --- %>s for the last. -%t +%t Time the request was received (standard english format) -%{format}t +%{format}t The time, in the form given by format, which should be in - strftime(3) format. (potentially localized) -%T + an extended strftime(3) format (potentially localized). + If the format starts with begin: (default) the time is taken + at the beginning of the request processing. If it starts with + end: it is the time when the log entry gets written, + close to the end of the request processing. In addition to the formats + supported by strftime(3), the following format tokens are + supported: + + + + + + +
    secnumber of seconds since the Epoch
    msecnumber of milliseconds since the Epoch
    usecnumber of microseconds since the Epoch
    msec_fracmillisecond fraction
    usec_fracmicrosecond fraction
    + These tokens can not be combined with each other or strftime(3) + formatting in the same format string. You can use multiple + %{format}t tokens instead. The extended + strftime(3) tokens are available in 2.2.30 and later. + +%T The time taken to serve the request, in seconds. +%{UNIT}T + The time taken to serve the request, in a time unit given by + UNIT. Valid units are ms for milliseconds, + us for microseconds, and s for seconds. + Using s gives the same result as %T + without any format; using us gives the same result + as %D. Combining %T with a unit is + available in 2.2.30 and later. %u Remote user (from auth; may be bogus if return status (%s) is 401) @@ -177,6 +234,12 @@ %O Bytes sent, including headers, cannot be zero. You need to enable mod_logio to use this. +%{VARNAME}^ti + The contents of VARNAME: trailer line(s) + in the request sent to the server. +%{VARNAME}^to + The contents of VARNAME: trailer line(s) + in the response sent from the server.

    Modifiers

    @@ -228,6 +291,11 @@ format provided by mod_logio will log the actual number of bytes sent over the network.

    +

    Note: mod_cache is implemented as a + quick-handler and not as a standard handler. Therefore, the + %R format string will not return any handler + information when content caching is involved.

    +

    Examples

    @@ -251,6 +319,16 @@
    Agent (Browser) log format
    "%{User-agent}i"
    + +

    You can use the %{format}t directive multiple + times to build up a time format using the extended format tokens + like msec_frac:

    +
    +
    Timestamp including milliseconds
    +
    "%{%d/%b/%Y %T}t.%{msec_frac}t %{%z}t"
    + +
    +
    top
    @@ -327,7 +405,8 @@
    pipe
    The pipe character "|", followed by the path to a program to receive the log information on its standard - input. + input. See the notes on piped logs + for more information.

    Security:

    If a program is used, then it will be run as the user who @@ -463,8 +542,30 @@

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_log_config.html.ja.euc-jp b/docs/manual/mod/mod_log_config.html.ja.euc-jp deleted file mode 100644 index 553fd1f953f..00000000000 --- a/docs/manual/mod/mod_log_config.html.ja.euc-jp +++ /dev/null @@ -1,469 +0,0 @@ - - - -mod_log_config - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_log_config

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥µ¡¼¥ФؤΥꥯ¥¨¥¹¥ȤΥí¥®¥ó¥°
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:log_config_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_log_config.c
    -

    ³µÍ×

    - -

    - ¤³¤Υ⥸¥塼¥ë¤ϥ¯¥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥Ȥò½ÀÆð¤˥í¥°¼ý½¸¤¹¤뵡ǽ¤ò - Ä󶡤·¤ޤ¹¡£¥í¥°¤ϥ«¥¹¥¿¥ޥ¤¥º²Äǽ¤ʽ񼰤ǽ񤫤졢¥ե¡¥¤¥ë¤ËľÀÜ - ½񤤤¿¤ꡢ³°Éô¥ץí¥°¥é¥à¤ËÅϤ·¤¿¤ꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¸ġ¹¤Υꥯ¥¨¥¹¥Ȥò - ÆÃħ¤˱þ¤¸¤ƥí¥°¤˽񤤤¿¤ê½񤫤ʤ«¤ä¿¤ê¤Ǥ­¤ë¤褦¤ˡ¢¾ò·ï¤ˤè¤ë - ¥í¥°¼ý½¸¤âÄ󶡤µ¤ì¤Ƥ¤¤ޤ¹¡£

    - -

    ¤³¤Υ⥸¥塼¥ë¤ϻ°¤ĤΥǥ£¥쥯¥ƥ£¥ÖÄ󶡤·¤ޤ¹: - ¥í¥°¥ե¡¥¤¥ë¤òºîÀ®¤¹¤뤿¤á¤Î TransferLog, - ¿·¤·¤¤½񼰤ò ÄêµÁ¤¹¤ë LogFormat, - ¥í¥°¥ե¡¥¤¥ë¤È ½񼰤ò°ìÅ٤ËÄêµÁ¤¹¤ë CustomLog ¤Ǥ¹¡£ - ³ƥꥯ¥¨¥¹¥Ȥ¬ʣ¿ô²ó¥í¥°¼ý½¸¤µ¤ì¤ë¤褦¤ˤ¹¤뤿¤á¤Ë - TransferLog ¥ǥ£¥쥯¥ƥ£¥֤È - CustomLog - ¥ǥ£¥쥯¥ƥ£¥֤Ïʣ¿ô²ó»ÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¥«¥¹¥¿¥à¥í¥°½ñ¼°

    - -

    LogFormat ¥ǥ£¥쥯¥ƥ£¥֤È - CustomLog - ¥ǥ£¥쥯¥ƥ£¥֤ν񼰤ò»ØÄꤹ¤ë°ú¿ô¤Ïʸ»úÎó¤Ǥ¹¡£¤³¤Îʸ»úÎó¤ò»ȤäƤ½¤줾¤ì¤Î - ¥ꥯ¥¨¥¹¥Ȥ¬¥í¥°¥ե¡¥¤¥ë¤˥í¥°¼ý½¸¤µ¤ì¤ޤ¹¡£¤½¤Îʸ»úÎó¤ˤÏ - ¥í¥°¥ե¡¥¤¥ë¤ˤ½¤ΤޤÞ - ½񤫤ì¤ëʸ»úÎó¤䡢¤½¤줾¤ì²þ¹Ԥȥ¿¥֤򸽤¹ C ¸À¸ì - ·Á¼°¤ÎÀ©¸æʸ»ú "\n" ¤È "\t" - ¤Ȥò´ޤá¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤½¤Τޤ޽ÐÎϤµ¤»¤¿¤¤°úÍÑÉä¤ȥХ寥¹¥é¥å·¥å¤Ï - ¥Х寥¹¥é¥å·¥å¤ǥ¨¥¹¥±¡¼¥פ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ¥ꥯ¥¨¥¹¥ȤÎÆÃħ¤½¤Τâ¤ΤÏ "%" - ¥ǥ£¥쥯¥ƥ£¥֤ò½񼰤Îʸ»úÎó¤˽񤯤³¤ȤÇ - ¥í¥°¼ý½¸¤µ¤ì¤ޤ¹¡£"%" - ¥ǥ£¥쥯¥ƥ£¥֤ϥí¥°¥ե¡¥¤¥ëÃæ¤Ǥϰʲ¼¤Τ褦¤Ê - ÃͤÇÃִ¹¤µ¤ì¤ޤ¹:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ¥ե©¡¼¥ޥåÈʸ»úÎóÀâÌÀ
    %%¥ѡ¼¥»¥ó¥ȵ­¹æ
    %a¥ê¥⡼¥È IP ¥¢¥ɥ쥹
    %A¥í¡¼¥«¥ë IP ¥¢¥ɥ쥹
    %B¥쥹¥ݥ󥹤ΥХ¤¥ȿô¡£HTTP ¥إåÀ¤Ͻü¤¯¡£
    %b¥쥹¥ݥ󥹤ΥХ¤¥ȿô¡£HTTP ¥إåÀ¤Ͻü¤¯¡£CLF ½񼰡£ - ¤¹¤ʤï¤Á¡¢1 ¥Х¤¥ȤâÁ÷¤é¤ì¤ʤ«¤ä¿¤Ȥ­¤Ï 0 ¤ǤϤʤ¯¡¢ - '-' ¤ˤʤë
    %{Foobar}C¥µ¡¼¥ФËÁ÷¤é¤줿¥ꥯ¥¨¥¹¥ÈÃæ¤Υ¯¥å­¡¼ Foobar ¤ÎÃÍ
    %D¥ꥯ¥¨¥¹¥Ȥò½èÍý¤¹¤ë¤Τˤ«¤«¤ä¿»þ´֡¢¥ߥêÉÃñ°Ì
    %{FOOBAR}e´Ķ­Êѿô FOOBAR ¤ÎÆâÍÆ
    %f¥ե¡¥¤¥ë̾
    %h¥ê¥⡼¥ȥۥ¹¥È
    %H¥ꥯ¥¨¥¹¥ȥץí¥ȥ³¥ë
    %{Foobar}i¥µ¡¼¥ФËÁ÷¤é¤줿¥ꥯ¥¨¥¹¥ȤÎ Foobar: - ¥إåÀ¤ÎÆâÍÆ
    %l(identd ¤«¤é¤⤷Ä󶡤µ¤ì¤Ƥ¤¤ì¤Ð) ¥ê¥⡼¥ȥí¥°̾¡£ - ¤³¤ì¤Ï mod_ident ¤¬¥µ¡¼¥Ф˸ºߤ·¤ơ¢ - IdentityCheck - ¥ǥ£¥쥯¥ƥ£¥֤¬ On ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤¸¤ꡢ - - ¤ˤʤê¤ޤ¹¡£
    %m¥ꥯ¥¨¥¹¥ȥ᥽¥åÉ
    %{Foobar}n¾¤Υ⥸¥塼¥뤫¤é¤Υá¥â Foobar ¤ÎÆâÍÆ
    %{Foobar}o±þÅú¤Î Foobar: ¥إåÀ¤ÎÆâÍÆ
    %p¥ꥯ¥¨¥¹¥Ȥ򰷤äƤ¤¤륵¡¼¥ФÎÀµ¼°¤ʥݡ¼¥È
    %P¥ꥯ¥¨¥¹¥Ȥ򰷤ä¿»ҥץí¥»¥¹¤Υץí¥»¥¹ ID
    %{format}P¥ꥯ¥¨¥¹¥Ȥ򰷤ä¿¥¥«¡¼¤Υץí¥»¥¹ ID ¤«¥¹¥ì¥åÉ ID¡£ - format ¤Ȥ·¤Æͭ¸ú¤ÊÃͤÏ pid ¤È tid -
    %qÌ䤤¹礻ʸ»úÎó (¸ºߤ¹¤ë¾ì¹ç¤ÏÁ°¤Ë ? ¤¬Äɲ䵤ì¤롣 - ¤½¤¦¤Ǥʤ¤¾ì¹ç¤϶õʸ»úÎó)
    %r¥ꥯ¥¨¥¹¥Ȥκǽé¤ιÔ
    %s¥¹¥ơ¼¥¿¥¹¡£ÆâÉô¤ǥê¥À¥¤¥쥯¥Ȥµ¤줿¥ꥯ¥¨¥¹¥Ȥϡ¢¸µ¡¹¤Î - ¥ꥯ¥¨¥¹¥ȤΥ¹¥ơ¼¥¿¥¹ --- ºǸå¤Υ¹¥ơ¼¥¿¥¹¤Ï %>s -
    %t¥ꥯ¥¨¥¹¥Ȥò¼õÉդ±¤¿»þ¹ - CLF ¤λþ¹ï¤νñ¼° (ɸ½à¤αѸì¤νñ¼°)
    %{format}tformat ¤ÇͿ¤¨¤é¤줿½񼰤ˤè¤ë»þ¹format ¤Ï - strftime (3) ¤Î - ½񼰤Ǥ¢¤ëɬÍפ¬¤¢¤롣(Ãϰ貽¤µ¤ì¤Ƥ¤¤ë²ÄǽÀ­¤¬¤¢¤ë)
    %T¥ꥯ¥¨¥¹¥Ȥ򰷤¦¤Τˤ«¤«¤ä¿»þ´֡¢ÉÃñ°Ì
    %u¥ê¥⡼¥ȥ桼¥¶ (ǧ¾ڤˤè¤ë¤â¤Ρ£¥¹¥ơ¼¥¿¥¹ (%s) ¤¬ - 401 ¤ΤȤ­¤ϰỌ̃¤¬¤ʤ¤¤â¤ΤǤ¢¤ë²ÄǽÀ­¤¬¤¢¤ë) -
    %U¥ꥯ¥¨¥¹¥Ȥµ¤줿 URL ¥ѥ¹¡£¥¯¥¨¥êʸ»úÎó¤ϴޤޤʤ¤
    %v¥ꥯ¥¨¥¹¥Ȥ򰷤äƤ¤¤륵¡¼¥ФÎÀµ¼°¤Ê ServerName
    %VUseCanonicalName ¤ÎÀßÄê¤ˤè¤륵¡¼¥Ð̾
    %X±þÅú¤¬´°λ¤·¤¿¤Ȥ­¤ÎÀܳ¥¹¥ơ¼¥¿¥¹: - - - - - - - - - -
    X =±þÅú¤¬´°λ¤¹¤ëÁ°¤ËÀܳ¤¬°۾ェλ
    + =±þÅú¤¬Á÷¤é¤줿¸å¤ËÀܳ¤ò»ý³¤¹¤뤳¤Ȥ¬²Äǽ
    - = ±þÅú¤¬Á÷¤é¤줿¸å¤ËÀܳ¤¬Àڤé¤ì¤ë
    - -

    (¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï Apache - 1.3 ¤θå´ü¤ΥС¼¥¸¥ç¥ó¤ǤÏ %c ¤˳ä¤êÅö¤Ƥé¤ì¤Æ - ¤¤¤ޤ·¤¿¤¬¡¢¤³¤ì¤ÏÎò»ËŪ¤Ë ssl ¤¬»ÈÍѤ·¤Ƥ¤¤ë - %{var}c - ¹½ʸ¤Ⱦׯͤ·¤Ƥ¤¤ޤ·¤¿¡£)

    %I¥ꥯ¥¨¥¹¥ȤȥإåÀ¤ò´ޤࡢ¼õ¤±¼è¤ä¿¥Х¤¥ȿô¡£ - 0 ¤ˤϤʤé¤ʤ¤¡£ - ¤³¤ì¤ò»ÈÍѤ¹¤뤿¤á¤ˤÏ mod_logio ¤¬ɬÍ×
    %O¥إåÀ¤ò´ޤࡢÁ÷¿®¤·¤¿¥Х¤¥ȿô¡£0 ¤ˤϤʤé¤ʤ¤¡£ - ¤³¤ì¤ò»ÈÍѤ¹¤뤿¤á¤ˤÏ mod_logio ¤¬ɬÍ×
    - -

    ½¤¾þ»Ò

    - -

    ÆÃÄê¤ÎÍ×ÁǤÏ "%" ¤Îľ¸å¤Ë HTTP ¥¹¥ơ¼¥¿¥¹¥³¡¼¥ɤ򥫥ó¥޶èÀڤê¤Ç - »ØÄꤹ¤뤳¤Ȥǡ¢ɽ¼¨¤òÀ©¸¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£Î㤨¤Ð - "%400,501{User-agent}i" ¤Ǥϡ¢ - 400 ¤È 500 È֥¨¥顼¤ǤΤß User-agent ¤ò¥í¥°¤·¤ޤ¹¡£ - ¾¤Υ¹¥ơ¼¥¿¥¹¥³¡¼¥ɤǤÏ "-" ¤Ȥ¤¤¦ʸ»úÎó¤¬ - ¥í¥°¤µ¤ì¤ޤ¹¡£¥¹¥ơ¼¥¿¥¹¥³¡¼¥ɤΥꥹ¥ȤÏ "!" - ¤ÇÈÝÄê¤ò»ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹ : - "%!200,304,302{Referer}i" ¤ϡ¢»ØÄꤵ¤줿 - 3 ¤ĤΥ³¡¼¥ɤΤɤì¤ˤ⳺Åö¤·¤ʤ¤¥ꥯ¥¨¥¹¥ÈÁ´¤ƤÇ - Referer ¤ò¥í¥°¤·¤ޤ¹¡£

    - -

    ½¤¾þ»Ò "<" ¤È ">" ¤ÏÆâÉô¥ê¥À¥¤¥쥯¥Ȥµ¤줿¥ꥯ¥¨¥¹¥ȤΥí¥°¤Ë - ¸µ¤Υꥯ¥¨¥¹¥Ȥ«ºǽªŪ¤ʥꥯ¥¨¥¹¥ȤΤɤÁ¤é¤ò»ÈÍѤ¹¤뤫¤ò - »ØÄꤹ¤뤿¤á¤˻Ȥ¤¤ޤ¹¡£¥ǥե©¥ë¥ȤǤϡ¢% ¥ǥ£¥쥯¥ƥ£¥֤Î - %s, %U, %T, %D, %r ¤ϸµ¤Υꥯ¥¨¥¹¥Ȥò¡¢¾¤ϺǽªŪ¤ʥꥯ¥¨¥¹¥Ȥò - »ÈÍѤ·¤ޤ¹¡£Î㤨¤С¢¥ꥯ¥¨¥¹¥Ȥκǽª¥¹¥ơ¼¥¿¥¹¤òµ­Ͽ¤¹¤ë¤ˤÏ - %>s ¤ò¡¢ÆâÉôŪ¤Ëǧ¾ڤµ¤ì¤Ƥ¤¤ʤ¤¥꥽¡¼¥¹¤إê¥À¥¤¥쥯¥Ȥµ¤줿 - ¥ꥯ¥¨¥¹¥ȤǸµ¤Υꥯ¥¨¥¹¥ȤÇǧ¾ڤµ¤줿¥桼¥¶¤òµ­Ͽ¤¹¤뤿¤á¤ˤÏ - %<u ¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - - - -

    ¤½¤Î¾Ãí°ÕÅÀ

    - -

    ¥»¥­¥å¥ê¥ƥ£¾å¤ÎÍýͳ¤ˤè¤ê 2.0.46 ¤è¤ꡢ - %r, %i, %o ¤ËÆþ¤äƤ¤¤롢 - °õ»úÉԲÄǽ¤Êʸ»ú¤È¾¤ÎÆÃÊ̤Êʸ»ú¤ϡ¢\xhh - ¤Ȥ¤¤¦·Á¼°¤Îʸ»úÎó¤ǥ¨¥¹¥±¡¼¥פµ¤ì¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£hh ¤Ï - ¤½¤ΤޤޤΥХ¤¥ȤÎÃͤÎ 16 ¿ʤǤÎÃͤǤ¹¡£¤³¤ε¬§¤ÎÎ㳰¤ˤϡ¢ - ¥Х寥¹¥é¥å·¥å¤ò»Ȥäƥ¨¥¹¥±¡¼¥פµ¤ì¤ë " ¤È \ ¤ȡ¢ - C ·Á¼°¤Îɽµ­ˡ¤¬»Ȥï¤ì¤ë¶õÇòʸ»ú (\n, \t ¤ʤÉ) - ¤¬¤¢¤ê¤ޤ¹¡£2.0.46 °ÊÁ°¤ΥС¼¥¸¥ç¥ó¤Ǥϥ¨¥¹¥±¡¼¥׽èÍý¤ϹԤï¤ì¤ޤ»¤ó¤Τǡ¢ - À¸¥í¥°¥ե¡¥¤¥ë¤򰷤¦ºݤËÃí°դ¬ɬÍפǤ¹¡£

    - -

    httpd 2.0 ¤ǤÏ 1.3 ¤Ȥϰۤʤꡢ%b ¤È %B - ¥ե©¡¼¥ޥåÈʸ»úÎó¤ϥ¯¥饤¥¢¥ó¥ȤËÁ÷¿®¤µ¤줿¥Х¤¥ȿô¤½¤Τâ¤ΤǤϤʤ¯¡¢ - HTTP ¥쥹¥ݥ󥹤ΥХ¤¥ȿô¤Ǥ¹ (¤³¤ì¤é¤ϰۤʤë¤â¤Τǡ¢¤¿¤Ȥ¨¤С¢ - ¥³¥ͥ¯¥·¥ç¥ó¤¬ÅÓÃæ¤ÇÇ˴þ¤µ¤줿¾ì¹ç¤䡢SSL »ÈÍѻþ¤˰ìÃפ·¤ޤ»¤ó) ¡£ - mod_logio ¤ÇÄ󶡤µ¤ì¤Ƥ¤¤ë %O - ¥ե©¡¼¥ޥåÈʸ»úÎó¤ǡ¢¥ͥåȥ¥¯·Ðͳ¤ǼºݤËžÁ÷¤µ¤줿¥Х¤¥ȿô¤ò - µ­Ͽ¤Ǥ­¤ޤ¹¡£

    - - - -

    Îã

    - -

    ¤褯»Ȥï¤ì¤ë¥ե©¡¼¥ޥåÈʸ»úÎó¤Ï:

    - -
    -
    Common Log Format (CLF)
    -
    "%h %l %u %t \"%r\" %>s %b"
    - -
    ¥С¼¥Á¥ã¥ë¥ۥ¹¥ÈÉդ­ Common Log Format
    -
    "%v %h %l %u %t \"%r\" %>s %b"
    - -
    NCSA extended/combined ¥í¥°½ñ¼°
    -
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" - \"%{User-agent}i\""
    - -
    Referer ¥í¥°½ñ¼°
    -
    "%{Referer}i -> %U"
    - -
    Agent (¥֥饦¥¶) ¥í¥°½ñ¼°
    -
    "%{User-agent}i"
    -
    - -
    top
    -
    -

    ¥»¥­¥å¥ê¥ƥ£¤˴ؤ·¤Æ

    -

    ¥í¥°¥ե¡¥¤¥뤬Êݸ¤µ¤ì¤Ƥ¤¤ë¥ǥ£¥쥯¥ȥ꤬¥µ¡¼¥Фòµ¯ư¤·¤¿°ʳ°¤Υ桼¥¶¤Ç - ½񤭹þ¤߲Äǽ¤ʤȤ­¤˥»¥­¥å¥ê¥ƥ£¤ÎÌäÂ꤬ȯÀ¸¤¹¤ëÍýͳ¤ξܺ٤Ï¥»¥­¥å¥ê¥ƥ£¤Τ³¤Ä - ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -
    top
    -

    BufferedLogs ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ǥ£¥¹¥¯¤˽񤭽Ф¹Á°¤˥á¥â¥ê¤˥í¥°¥¨¥ó¥ȥê¤ò¥Хåե¡¤¹¤ë
    ¹½ʸ:BufferedLogs On|Off
    ¥ǥե©¥ë¥È:BufferedLogs Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_log_config
    ¸ߴ¹À­:2.0.41 °ʹß
    -

    BufferedLogs ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¦¤È - mod_log_config ¤εóư¤¬ÊѲ½¤·¤ơ¢ - ʣ¿ô¤Υí¥°¤ò½񤭽Ф¹ºݤˡ¢¤½¤줾¤ì¤Υꥯ¥¨¥¹¥ȽèÍý¸åËè¤Ë - ½񤭽Ф¹¤ΤǤϤʤ¯¡¢¤¤¤ä¿¤ó¥á¥â¥ê¤ËÃߤ¨¤Ƥ«¤顢 - ¤ޤȤá¤ƥǥ£¥¹¥¯¤˽񤭽Ф¹¤褦¤ˤʤê¤ޤ¹¡£ - ¤³¤ηë²̥ǥ£¥¹¥¯¥¢¥¯¥»¥¹¤¬¤è¤ê¸úΨŪ¤ˤʤꡢ - ¹⤤¥ѥե©¡¼¥ޥ󥹤ÎÆÀ¤é¤ì¤륷¥¹¥ƥà¤⤢¤ë¤Ǥ·¤礦¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥµ¡¼¥ÐÁ´ÂΤǰìÅ٤À¤±ÀßÄê¤Ǥ­¤ޤ¹; - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥ´¤ȤËÀßÄꤹ¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£

    - -
    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϼ¸³Ū¤ʤâ¤ΤǤ¹¤Τǡ¢ - »ÈÍѤ¹¤ëºݤÏÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£
    - -
    -
    top
    -

    CookieLog ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥¯¥å­¥󥰤Υí¥®¥󥰤Τ¿¤á¤Υե¡¥¤¥ë̾¤òÀßÄꤹ¤ë
    ¹½ʸ:CookieLog filename
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_log_config
    ¸ߴ¹À­:¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÈó¿侩
    -

    CookieLog - ¥ǥ£¥쥯¥ƥ£¥֤ϥ¯¥å­¡¼¤Υí¥®¥󥰤Τ¿¤á¤Υե¡¥¤¥ë̾¤ò - ÀßÄꤷ¤ޤ¹¡£filename ¤Ï ServerRoot - ¤«¤é¤ÎÁêÂХѥ¹¤Ǥ¹¡£¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï mod_cookies ¤Ȥθߴ¹À­¤Τ¿¤á¤À¤±¤Ë - ¸ºߤ·¡¢»ÈÍѤϿ侩¤µ¤ì¤Ƥ¤¤ޤ»¤ó¡£

    - -
    -
    top
    -

    CustomLog ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥í¥°¥ե¡¥¤¥ë¤Î̾Á°¤Ƚ񼰤òÀßÄꤹ¤ë
    ¹½ʸ:CustomLog file|pipe -format|nickname -[env=[!]environment-variable]
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_log_config
    -

    CustomLog ¥ǥ£¥쥯¥ƥ£¥֤ϥµ¡¼¥ФؤΥꥯ¥¨¥¹¥Ȥò - ¥í¥°¼ý½¸¤¹¤뤿¤á¤˻Ȥï¤ì¤ޤ¹¡£¥í¥°¤ν񼰤¬»ØÄꤵ¤졢 - ´Ķ­Êѿô¤ò»Ȥäƥí¥®¥󥰤¬¾ò·ï¤˱þ¤¸¤ƹԤʤï¤ì¤ë¤褦¤ˤ¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    ¥í¥°¤¬½񤫤ì¤ë¾ì½ê¤ò»ØÄꤹ¤ëºǽé¤ΰú¿ô¤ϰʲ¼¤ÎÆó¤ĤηÁ¼°¤ÎÃͤò - ¤Ȥ뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -
    -
    file
    -
    ServerRoot - ¤«¤é¤ÎÁêÂХѥ¹¤Çɽ¤µ¤ì¤ë¥ե¡¥¤¥ë̾¡£
    - -
    pipe
    -
    ¥ѥ¤¥×ʸ»ú "|" ¤ȡ¢¤½¤θå¤Ëɸ½àÆþÎϤ«¤é¥í¥°¤Î - ¾ðÊó¤ò¼õ¤±¤Ȥë¥ץí¥°¥é¥à¤ؤΥѥ¹¤¬³¤¤¤¿¤â¤Ρ£ - -

    ¥»¥­¥å¥ê¥ƥ£

    -

    ¤⤷¥ץí¥°¥é¥ब»ÈÍѤµ¤줿¾ì¹硢 - httpd ¤¬µ¯ư¤µ¤줿¥桼¥¶¤Ȥ·¤Ƽ¹Ԥµ¤ì¤ޤ¹¡£¤³¤ì¤ϥµ¡¼¥Ф¬ - root ¤ˤè¤äƵ¯ư¤µ¤줿¾ì¹ç¤Ï root ¤ˤʤê¤ޤ¹¡£¥ץí¥°¥é¥ब - °ÂÁ´¤Ǥ¢¤ë¤褦¤Ëα°դ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -

    Ãí

    -

    Unix ¤Ǥʤ¤¥ץé¥åȥե©¡¼¥à¤ǥե¡¥¤¥ë¤Υѥ¹¤òÆþÎϤ·¤Ƥ¤¤ë¤Ȥ­¤ϡ¢ - »ÈÍѤ·¤Ƥ¤¤ë¥ץé¥åȥե©¡¼¥ब¥Х寥¹¥é¥å·¥å¤λÈÍѤòµö²Ĥ·¤Ƥ¤¤¿ - ¤Ȥ·¤ơ¢Ä̾ï¤Υ¹¥é¥å·¥å¤À¤±¤ò»Ȥ¦¤褦¤˵¤¤ò¤Ĥ±¤Ƥ¯¤À¤µ¤¤¡£ - °ìÈÌŪ¤ˡ¢ÀßÄê¥ե¡¥¤¥ëÃæ¤ǤϾï¤ËÉáÄ̤Υ¹¥é¥å·¥å¤Τߤò»Ȥ¦¤褦¤ˤ¹¤ë - Êý¤¬Îɤ¤¤Ǥ¹¡£

    -
    -
    - -

    Æó¤Ĥá¤ΰú¿ô¤ϥí¥°¥ե¡¥¤¥ë¤˲¿¤¬½񤫤ì¤뤫¤ò»ØÄꤷ¤ޤ¹¡£ - Á°¤ˤ¢¤ë LogFormat ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤ê - ÄêµÁ¤µ¤줿 nickname ¤«¡¢¥í¥°¤νñ¼° - ¤ΤȤ³¤í¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤롢ÌÀ¼¨Ū¤Ê format ʸ»úÎó¤Î - ¤ɤÁ¤餫¤ò»ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Î㤨¤С¢°ʲ¼¤ÎÆó¤ĤΥǥ£¥쥯¥ƥ£¥ַ²¤ÏÁ´¤¯Ʊ¤¸¸ú²̤ò¤⤿¤餷¤ޤ¹:

    - -

    - # CustomLog with format nickname
    - LogFormat "%h %l %u %t \"%r\" %>s %b" common
    - CustomLog logs/access_log common
    -
    - # CustomLog with explicit format string
    - CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b" -

    - -

    »°¤ÄÌܤΰú¿ô¤ϾÊά²Äǽ¤ǡ¢¥µ¡¼¥ФδĶ­¤ˤ¢¤ëÊѿô¤¬¤¢¤뤫¤ʤ¤¤«¤Ë - ±þ¤¸¤ƥꥯ¥¨¥¹¥Ȥò¥í¥°¼ý½¸¤¹¤뤫¤ɤ¦¤«¤òÀ©¸椹¤뤿¤á¤˻Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - »ØÄꤵ¤줿´Ķ­Êѿô¤¬¥ꥯ¥¨¥¹¥ȤËÂФ·¤Æ - ÀßÄꤵ¤ì¤Ƥ¤¤¿¾ì¹ç ('env=!name' ʸ¤¬»Ȥï¤줿¤Ȥ­¤Ï - ÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤¾ì¹ç)¡¢¥ꥯ¥¨¥¹¥Ȥ¬¥í¥°¼ý½¸¤µ¤ì¤ޤ¹¡£

    - -

    ´Ķ­Êѿô¤Ï mod_setenvif ¥⥸¥塼¥ë¤È - mod_rewrite ¥⥸¥塼¥ë¤ÎξÊý¤⤷¤¯¤Ï - ÊÒÊý¤òÍѤ¤¤ƥꥯ¥¨¥¹¥Ȥ´¤ȤËÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - Î㤨¤С¢¥µ¡¼¥Фˤ¢¤뤹¤٤ƤÎ GIF ²èÁü¤ؤΥꥯ¥¨¥¹¥ȤòÊ̤Υí¥°¥ե¡¥¤¥ë - ¤ˤϵ­Ͽ¤·¤¿¤¤¤±¤ì¤ɡ¢¥ᥤ¥ó¥í¥°¤ˤϵ­Ͽ¤·¤¿¤¯¤ʤ¤¡¢¤Ȥ¤¤¦¤Ȥ­¤Ï - °ʲ¼¤Τâ¤Τò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    - SetEnvIf Request_URI \.gif$ gif-image
    - CustomLog gif-requests.log common env=gif-image
    - CustomLog nongif-requests.log common env=!gif-image -

    - -

    ¸Ť¤ RefererIgnore ¥ǥ£¥쥯¥ƥ£¥֤ÈƱ¤¸µóư¤򤵤»¤¿¤¤¾ì¹ç¤ϡ¢ - ¼¡¤Τ褦¤ˤ·¤ޤ¹:

    - -

    - SetEnvIf Referer example\.com localreferer
    - CustomLog referer.log referer env=!localreferer -

    - -
    -
    top
    -

    LogFormat ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥í¥°¥ե¡¥¤¥ë¤ǻÈÍѤ¹¤ë½񼰤òÀßÄꤹ¤ë
    ¹½ʸ:LogFormat format|nickname -[nickname]
    ¥ǥե©¥ë¥È:LogFormat "%h %l %u %t \"%r\" %>s %b"
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_log_config
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥ¢¥¯¥»¥¹¥í¥°¥ե¡¥¤¥ë¤ν񼰤ò»ØÄꤷ¤ޤ¹¡£

    - -

    LogFormat ¥ǥ£¥쥯¥ƥ£¥֤ÏÆó¤ĤηÁ¼°¤ΤɤÁ¤餫¤ò - ¤Ȥ뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ºǽé¤ηÁ¼°¤Ǥϰì¤Ĥΰú¿ô¤Τߤ¬»ØÄꤵ¤졢 - ³¤¯ TransferLog - ¤ǻØÄꤵ¤줿¥í¥°¤ǻȤï¤ì¤ë¥í¥°¤ν񼰤òÀßÄꤷ¤ޤ¹¡£¤³¤ÎñÆȤΰú¿ô¤ǤÏ - ¾å¤Î¥«¥¹¥¿¥à¥í¥°½ñ¼°¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ë¤褦¤Ë - format ¤òÌÀ¼¨Ū¤˻ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤⤷¤¯¤ϡ¢²¼¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ë¤褦¤ËÁ°¤Ë LogFormat - ¥ǥ£¥쥯¥ƥ£¥֤ÇÄêµÁ¤µ¤줿¥í¥°¤ν񼰤ò nickname¤ò»ȤäÆ - »²¾Ȥ¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    LogFormat ¥ǥ£¥쥯¥ƥ£¥֤ÎÆó¤Ĥá¤ηÁ¼°¤Ï - format ¤Ë nickname ¤òͿ¤¨¤ޤ¹¡£ - ¥ե©¡¼¥ޥåÈʸ»úÎóÁ´ÂΤòºƤӽ񤯤«¤ï¤ê¤ˡ¢ - ¤³¤Î nickname ¤ò³¤­¤Î LogFormat ¥ǥ£¥쥯¥ƥ£¥֤ä - CustomLog ¥ǥ£¥쥯¥ƥ£¥֤ǻȤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - Nickname ¤òÄêµÁ¤¹¤ë LogFormat ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¾¤ˤϲ¿¤⤷¤ޤ»¤ó -- ¤¹¤ʤï¤Á¡¢¥˥寥͡¼¥à¤òÄêµÁ - ¤¹¤ë¤À¤±¤ǡ¢¼ºݤ˽񼰤òŬÍѤ·¤ƥǥե©¥ë¥Ȥˤ¹¤ë¤Ȥ¤¤¦¤³¤ȤϹԤʤ¤¤ޤ»¤ó¡£ - ¤Ǥ¹¤«¤顢¤³¤ì¤Ï³¤¯ TransferLog - ¥ǥ£¥쥯¥ƥ£¥֤ˤϱƶÁ¤òͿ¤¨¤ޤ»¤ó¡£ - ¤µ¤é¤ˡ¢LogFormat ¥ǥ£¥쥯¥ƥ£¥֤ϴû¸¤Î nickname ¤ò - »ȤäÆÊ̤Î nickname ¤òÄêµÁ¤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£Nickname ¤ˤÏ - ¥ѡ¼¥»¥ó¥ȵ­¹æ (%) ¤¬´ޤޤì¤Ƥ¤¤ƤϤ¤¤±¤ʤ¤¤³¤ȤˤâÃí°Õ - ¤·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Îã

    - LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common -

    - -
    -
    top
    -

    TransferLog ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥í¥°¥ե¡¥¤¥ë¤ΰÌÃ֤ò»ØÄê
    ¹½ʸ:TransferLog file|pipe
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_log_config
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϡ¢¥í¥°½񼰤òľÀܻØÄê¤Ǥ­¤ʤ¤¤³¤Ȥȡ¢ - ¾ò·ïÉդ­¥í¥®¥󥰤¬̵¤¤¤³¤Ȥò½ü¤¯¤ȡ¢CustomLog ¤ÈÁ´¤¯Ʊ¤¸°ú¿ô¤ȸú²̤¬¤¢¤ê¤ޤ¹¡£ - ľÀܥí¥°½񼰤ò»ØÄꤹ¤ëÂå¤ï¤ê¤ˡ¢¥í¥°¤ν񼰤Ϥ½¤³¤ޤǤǰìÈֺǸå¤˻ØÄꤵ¤줿 - ¥˥寥͡¼¥à¤òÄêµÁ¤·¤ʤ¤ - LogFormat ¥ǥ£¥쥯¥ƥ£¥Ö - ¤ÇÄêµÁ¤µ¤줿¤â¤Τò»Ȥ¤¤ޤ¹¡£ - ¤⤷¾¤ν񼰤¬Á´¤¯»ØÄꤵ¤ì¤Ƥ¤¤ʤ¤¤Ȥ­¤Ï Common Log Format - ¤¬»Ȥï¤ì¤ޤ¹¡£

    - -

    Îã

    - LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
    - TransferLog logs/access_log -

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_log_config.html.ja.utf8 b/docs/manual/mod/mod_log_config.html.ja.utf8 new file mode 100644 index 00000000000..5ac0c45d5ec --- /dev/null +++ b/docs/manual/mod/mod_log_config.html.ja.utf8 @@ -0,0 +1,505 @@ + + + + + +mod_log_config - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_log_config

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:サーバへのリクエストのロギング
    ステータス:Base
    モジュール識別子:log_config_module
    ソースファイル:mod_log_config.c
    +

    概要

    + +

    + このモジュールはクライアントのリクエストを柔軟にログ収集する機能を + 提供します。ログはカスタマイズ可能な書式で書かれ、ファイルに直接 + 書いたり、外部プログラムに渡したりすることができます。個々のリクエストを + 特徴に応じてログに書いたり書かなかったりできるように、条件による + ログ収集も提供されています。

    + +

    このモジュールは三つのディレクティブ提供します: + ログファイルを作成するための TransferLog, + 新しい書式を 定義する LogFormat, + ログファイルと 書式を一度に定義する CustomLog です。 + 各リクエストが複数回ログ収集されるようにするために + TransferLog ディレクティブと + CustomLog + ディレクティブは複数回使用することができます。

    +
    + +
    top
    +
    +

    カスタムログ書式

    + +

    LogFormat ディレクティブと + CustomLog + ディレクティブの書式を指定する引数は文字列です。この文字列を使ってそれぞれの + リクエストがログファイルにログ収集されます。その文字列には + ログファイルにそのまま + 書かれる文字列や、それぞれ改行とタブを表す C 言語 + 形式の制御文字 "\n" と "\t" + とを含めることができます。そのまま出力させたい引用符とバックスラッシュは + バックスラッシュでエスケープする必要があります。

    + +

    リクエストの特徴そのものは "%" + ディレクティブを書式の文字列に書くことで + ログ収集されます。"%" + ディレクティブはログファイル中では以下のような + 値で置換されます:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    フォーマット文字列説明
    %%パーセント記号
    %aリモート IP アドレス
    %Aローカル IP アドレス
    %Bレスポンスのバイト数。HTTP ヘッダは除く。
    %bレスポンスのバイト数。HTTP ヘッダは除く。CLF 書式。 + すなわち、1 バイトも送られなかったときは 0 ではなく、 + '-' になる
    %{Foobar}Cサーバに送られたリクエスト中のクッキー Foobar の値
    %Dリクエストを処理するのにかかった時間、マイクロ秒単位
    %{FOOBAR}e環境変数 FOOBAR の内容
    %fファイル名
    %hリモートホスト
    %Hリクエストプロトコル
    %{Foobar}iサーバに送られたリクエストの Foobar: + ヘッダの内容
    %l(identd からもし提供されていれば) リモートログ名。 + これは mod_ident がサーバに存在して、 + IdentityCheck + ディレクティブが On に設定されていない限り、 + - になります。
    %mリクエストメソッド
    %{Foobar}n他のモジュールからのメモ Foobar の内容
    %{Foobar}o応答の Foobar: ヘッダの内容
    %pリクエストを扱っているサーバの正式なポート
    %Pリクエストを扱った子プロセスのプロセス ID
    %{format}Pリクエストを扱ったワーカーのプロセス ID かスレッド ID。 + format として有効な値は pid, tid, + hextid です。hextid を使うには + APR 1.2.0 以降が必要です。 +
    %q問い合せ文字列 (存在する場合は前に ? が追加される。 + そうでない場合は空文字列)
    %rリクエストの最初の行
    %sステータス。内部でリダイレクトされたリクエストは、元々の + リクエストのステータス --- 最後のステータスは %>s +
    %tリクエストを受付けた時刻。 + CLF の時刻の書式 (標準の英語の書式)
    %{format}tformat で与えられた書式による時刻。format は + strftime (3) の + 書式である必要がある。(地域化されている可能性がある)
    %Tリクエストを扱うのにかかった時間、秒単位
    %uリモートユーザ (認証によるもの。ステータス (%s) が + 401 のときは意味がないものである可能性がある) +
    %Uリクエストされた URL パス。クエリ文字列は含まない
    %vリクエストを扱っているサーバの正式な ServerName
    %VUseCanonicalName の設定によるサーバ名
    %X応答が完了したときの接続ステータス: + + + + + + + + + +
    X =応答が完了する前に接続が異常終了
    + =応答が送られた後に接続を持続することが可能
    - = 応答が送られた後に接続が切られる
    + +

    (このディレクティブは Apache + 1.3 の後期のバージョンでは %c に割り当てられて + いましたが、これは歴史的に ssl が使用している + %{var}c + 構文と衝突していました。)

    %Iリクエストとヘッダを含む、受け取ったバイト数。 + 0 にはならない。 + これを使用するためには mod_logio が必要
    %Oヘッダを含む、送信したバイト数。0 にはならない。 + これを使用するためには mod_logio が必要
    + +

    修飾子

    + +

    特定の要素は "%" の直後に HTTP ステータスコードをカンマ区切りで + 指定することで、表示を制限することができます。例えば + "%400,501{User-agent}i" では、 + 400 と 500 番エラーでのみ User-agent をログします。 + 他のステータスコードでは "-" という文字列が + ログされます。ステータスコードのリストは "!" + で否定を指定することができます : + "%!200,304,302{Referer}i" は、指定された + 3 つのコードのどれにも該当しないリクエスト全てで + Referer をログします。

    + +

    修飾子 "<" と ">" は内部リダイレクトされたリクエストのログに + 元のリクエストか最終的なリクエストのどちらを使用するかを + 指定するために使います。デフォルトでは、% ディレクティブの + %s, %U, %T, %D, %r は元のリクエストを、他は最終的なリクエストを + 使用します。例えば、リクエストの最終ステータスを記録するには + %>s を、内部的に認証されていないリソースへリダイレクトされた + リクエストで元のリクエストで認証されたユーザを記録するためには + %<u を使うことができます。

    + + + +

    その他注意点

    + +

    セキュリティ上の理由により 2.0.46 より、 + %r, %i, %o に入っている、 + 印字不可能な文字と他の特別な文字は、\xhh + という形式の文字列でエスケープされるようになりました。hh は + そのままのバイトの値の 16 進での値です。この規則の例外には、 + バックスラッシュを使ってエスケープされる " と \ と、 + C 形式の表記法が使われる空白文字 (\n, \t など) + があります。2.0.46 以前のバージョンではエスケープ処理は行われませんので、 + 生ログファイルを扱う際に注意が必要です。

    + +

    httpd 2.0 では 1.3 とは異なり、%b と %B + フォーマット文字列はクライアントに送信されたバイト数そのものではなく、 + HTTP レスポンスのバイト数です (これらは異なるもので、たとえば、 + コネクションが途中で破棄された場合や、SSL 使用時に一致しません) 。 + mod_logio で提供されている %O + フォーマット文字列で、ネットワーク経由で実際に転送されたバイト数を + 記録できます。

    + + + +

    例

    + +

    よく使われるフォーマット文字列は:

    + +
    +
    Common Log Format (CLF)
    +
    "%h %l %u %t \"%r\" %>s %b"
    + +
    バーチャルホスト付き Common Log Format
    +
    "%v %h %l %u %t \"%r\" %>s %b"
    + +
    NCSA extended/combined ログ書式
    +
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\""
    + +
    Referer ログ書式
    +
    "%{Referer}i -> %U"
    + +
    Agent (ブラウザ) ログ書式
    +
    "%{User-agent}i"
    +
    + +
    top
    +
    +

    セキュリティに関して

    +

    ログファイルが保存されているディレクトリがサーバを起動した以外のユーザで + 書き込み可能なときにセキュリティの問題が発生する理由の詳細はセキュリティのこつ + を参照してください。

    +
    +
    top
    +

    BufferedLogs ディレクティブ

    + + + + + + + + +
    説明:ディスクに書き出す前にメモリにログエントリをバッファする
    構文:BufferedLogs On|Off
    デフォルト:BufferedLogs Off
    コンテキスト:サーバ設定ファイル
    ステータス:Base
    モジュール:mod_log_config
    互換性:2.0.41 以降
    +

    BufferedLogs ディレクティブを使うと + mod_log_config の挙動が変化して、 + 複数のログを書き出す際に、それぞれのリクエスト処理後毎に + 書き出すのではなく、いったんメモリに蓄えてから、 + まとめてディスクに書き出すようになります。 + この結果ディスクアクセスがより効率的になり、 + 高いパフォーマンスの得られるシステムもあるでしょう。 + このディレクティブはサーバ全体で一度だけ設定できます; + バーチャルホストごとに設定することはできません。

    + +
    このディレクティブは実験的なものですので、 + 使用する際は注意してください。
    + +
    +
    top
    +

    CookieLog ディレクティブ

    + + + + + + + +
    説明:クッキングのロギングのためのファイル名を設定する
    構文:CookieLog filename
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_log_config
    互換性:このディレクティブは非推奨
    +

    CookieLog + ディレクティブはクッキーのロギングのためのファイル名を + 設定します。filename は ServerRoot + からの相対パスです。このディレクティブは mod_cookies との互換性のためだけに + 存在し、使用は推奨されていません。

    + +
    +
    top
    +

    CustomLog ディレクティブ

    + + + + + + +
    説明:ログファイルの名前と書式を設定する
    構文:CustomLog file|pipe +format|nickname +[env=[!]environment-variable]
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_log_config
    +

    CustomLog ディレクティブはサーバへのリクエストを + ログ収集するために使われます。ログの書式が指定され、 + 環境変数を使ってロギングが条件に応じて行なわれるようにすることもできます。

    + +

    ログが書かれる場所を指定する最初の引数は以下の二つの形式の値を + とることができます:

    + +
    +
    file
    +
    ServerRoot + からの相対パスで表されるファイル名。
    + +
    pipe
    +
    パイプ文字 "|" と、その後に標準入力からログの + 情報を受けとるプログラムへのパスが続いたもの。 + +

    セキュリティ

    +

    もしプログラムが使用された場合、 + httpd が起動されたユーザとして実行されます。これはサーバが + root によって起動された場合は root になります。プログラムが + 安全であるように留意してください。

    +
    +

    注

    +

    Unix でないプラットフォームでファイルのパスを入力しているときは、 + 使用しているプラットフォームがバックスラッシュの使用を許可していた + として、通常のスラッシュだけを使うように気をつけてください。 + 一般的に、設定ファイル中では常に普通のスラッシュのみを使うようにする + 方が良いです。

    +
    +
    + +

    二つめの引数はログファイルに何が書かれるかを指定します。 + 前にある LogFormat ディレクティブにより + 定義された nickname か、ログの書式 + のところで説明されている、明示的な format 文字列の + どちらかを指定することができます。

    + +

    例えば、以下の二つのディレクティブ群は全く同じ効果をもたらします:

    + +

    + # CustomLog with format nickname
    + LogFormat "%h %l %u %t \"%r\" %>s %b" common
    + CustomLog logs/access_log common
    +
    + # CustomLog with explicit format string
    + CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b" +

    + +

    三つ目の引数は省略可能で、サーバの環境にある変数があるかないかに + 応じてリクエストをログ収集するかどうかを制御するために使うことができます。 + 指定された環境変数がリクエストに対して + 設定されていた場合 ('env=!name' 文が使われたときは + 設定されていない場合)、リクエストがログ収集されます。

    + +

    環境変数は mod_setenvif モジュールと + mod_rewrite モジュールの両方もしくは + 片方を用いてリクエストごとに設定することができます。 + 例えば、サーバにあるすべての GIF 画像へのリクエストを別のログファイル + には記録したいけれど、メインログには記録したくない、というときは + 以下のものを使うことができます:

    + +

    + SetEnvIf Request_URI \.gif$ gif-image
    + CustomLog gif-requests.log common env=gif-image
    + CustomLog nongif-requests.log common env=!gif-image +

    + +

    古い RefererIgnore ディレクティブと同じ挙動をさせたい場合は、 + 次のようにします:

    + +

    + SetEnvIf Referer example\.com localreferer
    + CustomLog referer.log referer env=!localreferer +

    + +
    +
    top
    +

    LogFormat ディレクティブ

    + + + + + + + +
    説明:ログファイルで使用する書式を設定する
    構文:LogFormat format|nickname +[nickname]
    デフォルト:LogFormat "%h %l %u %t \"%r\" %>s %b"
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_log_config
    +

    このディレクティブはアクセスログファイルの書式を指定します。

    + +

    LogFormat ディレクティブは二つの形式のどちらかを + とることができます。最初の形式では一つの引数のみが指定され、 + 続く TransferLog + で指定されたログで使われるログの書式を設定します。この単独の引数では + 上のカスタムログ書式で説明されているように + format を明示的に指定することができます。 + もしくは、下で説明されているように前に LogFormat + ディレクティブで定義されたログの書式を nicknameを使って + 参照することもできます。

    + +

    LogFormat ディレクティブの二つめの形式は + format に nickname を与えます。 + フォーマット文字列全体を再び書くかわりに、 + この nickname を続きの LogFormat ディレクティブや + CustomLog ディレクティブで使うことができます。 + Nickname を定義する LogFormat ディレクティブは + 他には何もしません -- すなわち、ニックネームを定義 + するだけで、実際に書式を適用してデフォルトにするということは行ないません。 + ですから、これは続く TransferLog + ディレクティブには影響を与えません。 + さらに、LogFormat ディレクティブは既存の nickname を + 使って別の nickname を定義することはできません。Nickname には + パーセント記号 (%) が含まれていてはいけないことにも注意 + してください。

    + +

    例

    + LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common +

    + +
    +
    top
    +

    TransferLog ディレクティブ

    + + + + + + +
    説明:ログファイルの位置を指定
    構文:TransferLog file|pipe
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_log_config
    +

    このディレクティブは、ログ書式を直接指定できないことと、 + 条件付きロギングが無いことを除くと、CustomLog と全く同じ引数と効果があります。 + 直接ログ書式を指定する代わりに、ログの書式はそこまでで一番最後に指定された + ニックネームを定義しない + LogFormat ディレクティブ + で定義されたものを使います。 + もし他の書式が全く指定されていないときは Common Log Format + が使われます。

    + +

    例

    + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
    + TransferLog logs/access_log +

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_log_config.html.ko.euc-kr b/docs/manual/mod/mod_log_config.html.ko.euc-kr index 944ef564c56..44ddf184fd0 100644 --- a/docs/manual/mod/mod_log_config.html.ko.euc-kr +++ b/docs/manual/mod/mod_log_config.html.ko.euc-kr @@ -1,29 +1,37 @@ - -mod_log_config - Apache HTTP Server +mod_log_config - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_log_config

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_log_config

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -45,21 +53,22 @@ CustomLog Áö½þ ¿©·¯¹ø »ç¿ëÇϸé ¿äûÀ» ¿©·¯ ÆÄÀϿ¡ ±â·ÏÇÒ ¼ö ÀִÙ.

    -
    top

    ·α× Çü½Ä ÁöÁ¤Çϱâ

    @@ -238,6 +247,19 @@ ¹®¼­¸¦ Âü°íÇ϶ó.

    top
    +

    BufferedLogs Áö½þî

    + + + + + + + + +
    ¼³¸í:Buffer log entries in memory before writing to disk
    ¹®¹ý:BufferedLogs On|Off
    ±⺻°ª:BufferedLogs Off
    »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤
    »óÅÂ:Base
    ¸ðµâ:mod_log_config
    Áö¿ø:Available in versions 2.0.41 and later.

    The documentation for this directive has + not been translated yet. Please have a look at the English + version.

    +
    top

    CookieLog Áö½þî

    @@ -394,8 +416,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_log_config.html.tr.utf8 b/docs/manual/mod/mod_log_config.html.tr.utf8 new file mode 100644 index 00000000000..b7d219a069e --- /dev/null +++ b/docs/manual/mod/mod_log_config.html.tr.utf8 @@ -0,0 +1,522 @@ + + + + + +mod_log_config - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_log_config

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    +
    Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.
    +
    ¼³¸í:Äí۸¦ ·α׿¡ ³²±â±âÀ§ÇØ »ç¿ëÇÒ ÆÄÀϸíÀ» ¼³Á¤ÇѴÙ
    + + +
    Açıklama:Sunucuya yapılan isteklerin günlük kayıtlarının tutulması +
    Durum:Temel
    Modül Betimleyici:log_config_module
    Kaynak Dosyası:mod_log_config.c
    +

    Özet

    + +

    Bu modül istemci isteklerinin esnek şekilde günlüklenmesi ile + ilgilidir. Günlükler kişiselleştirilebilir biçemdedir ve doğrudan bir + dosyaya yazılabileceği gibi boru üzerinden harici bir sürece de + yazılabilir. İsteğin özelliklerine bağlı olarak bazı isteklerin + günlüklere kaydedilmesi veya kaydedilmemesi mümkün kılınmıştır.

    + +

    Bu modül üç yönerge içermektedir: Bir günlük dosyası oluşturmak için + TransferLog, günlük + biçemini kişiselleştirmek için LogFormat ve tek başına bir günlük + dosyasını hem tanımlayıp hem de biçemleyen CustomLog yönergesi. Her isteğin + çok sayıda dosyaya günlüklenmesini sağlamak için yapılandırma dosyasında + her sunucu için birden fazla TransferLog ve + CustomLog yönergesi belirtilebilir.

    +
    + +
    top
    +
    +

    Günlük Girdilerinin Kişiselleştirilmesi

    + +

    LogFormat ve CustomLog yönergelerinin biçem + argümanı bir dizgedir. Bu dizge her isteği günlük dosyasına günlüklemek + için kullanılır. Doğrudan günlük dosyalarına kopyalanmak üzere dizgesel + sabitler içerebileceği gibi satırsonu ve sekme karakterleri olarak C + tarzı "\n" ve "\t" denetim karakterlerini de içerebilir. Dizgesel sabit + olarak kullanılan tırnak ve tersbölü imlerinin tersbölü ile öncelenmesi + gerekir.

    + +

    İstek özellikleri biçem dizgesine “%” imli belirteçler + yerleştirilerek günlüklenir. Bu belirteçler ve anlamları:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BelirteçAçıklama
    %%Yüzde imi
    %aUzak IP adresi
    %AYerel IP adresi
    %BHTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu.
    %bHTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu. OGB + biçeminde hiç bayt gönderilmemişse günlüğe '-' yerine + '0' çıktılanır.
    %{Fesmekan}Cİstek içinde sunucuya gönderilen Fesmekan çerezinin + içeriği. Sadece 0. sürüm çerezler tam olarak desteklenir.
    %DMikrosaniye cinsinden isteği sunmak için harcanan zaman.
    %{FALANCA}eFALANCA ortam değişkeninin içeriği.
    %fDosya ismi
    %hUzak konak
    %Hİstek Protokolü
    %{Filanca}iİstekle birlikte sunucuya gönderilen + Filanca: başlık satır(lar)ının + içeriği. Diğer modüllerde (örn. mod_headers) + yapılan değişikliklerden etkilenir. Çok sayıda modülün istek + başlığını değişikliğe uğrattığı durumda istek başlığında başta + neyin geldiği ile ilgileniyorsanız, başlığı + mod_setenvif ile bir ortam değişkenine kopyalayıp + yukarıda açıklandığı gibi %{FALANCA}e ile bu + değeri günlükte kullanabilirsiniz. +
    %kBu bağlantıda işlenen isteklerin sayısı; yani örneğin, + '1' değeri bağlantı kurulduktan sonraki ilk kalıcı bağlantıyı, + '2', ikinci bağlantıyı, ..., vb. gösterir; + KeepAlive kullanılmışsa + değer anlamlıdır; aksi takdirde değer daima (ilk isteği + belirten) 0’dır. 2.2.11 sürümünden beri kullanılabilmektedir. +
    %lUzak kullanıcı kimliği (sağlanmışsa, identd üzerinden). + mod_ident modülü mevcut ve IdentityCheck yönergesine değer + olarak On atanmış olmadıkça bu belirteç için günlüğe + tire imi yazılır.
    %mİstek yöntemi
    %{Filanca}nDiğer modüldeki Filanca bilgisinin içeriği.
    %{Filanca}oYanıttaki Filanca: başlık satır(lar)ının + içeriği.
    %pSunucunun isteği sunduğu meşru port
    %{biçem}pSunucunun veya istemcinin gerçek portu veya sunucunun isteği + sunduğu meşru port. Geçerli biçemler: canonical, + local ve remote (anlamları sırasıyla: + meşru, yerel ve uzak).
    %Pİsteği sunan çocuk sürecin süreç kimliği.
    %{biçem}Pİsteği sunan çocuk sürecin süreç kimliği (pid) veya + evre kimliği (tid). Geçerli biçemler: pid, + tid, hextid. hextid için APR + 1.2.0 veya üstü gerekir.
    %qSorgu dizgesi (bir sorgu dizgesi mevcutsa önüne bir ? + eklenir yoksa hiçbir şey eklenmez).
    %rİsteğin ilk satırı.
    %RYanıt varsa yanıtı üreten eylemci.
    %sDurum. Dahili olarak yönlendirilen istekler için isteğin *özgün* + durumudur --- isteğin son durumu için %>s + kullanınız.
    %tİsteğin alındığı tarih ve saat (standart ingiliz biçemi).
    %{biçem}tİsteğin alındığı tarih ve saat; biçem + strftime(3) biçeminde belirtilmelidir (genelde + yerelleştirme amaçlı).
    %TSaniye cinsinden, isteği sunmak için harcanan zaman.
    %uUzak kullanıcı (kimlik doğrulaması istenmişse vardır; durum kodu + (%s) 401 ise yanlış olabilir).
    %UHerhangi bir sorgu dizgesi içermeksizin istenen URL yolu.
    %vİsteği sunan sunucunun meşru sunucu ismi (ServerName).
    %VUseCanonicalName ayarı ile + ilgili sunucu ismi.
    %XYanıt tamamlandığında bağlantı durumu: + + + + + + + + + +
    X =Yanıt tamamlanmadan bağlantı koptu.
    + =Yanıt gönderildikten sonra bağlantı canlı kalabilir.
    - = Yanıt gönderildikten sonra bağlantı kapatılacak.
    + +

    (Apache 1.3’ün son sürümlerinde bu belirteç %c idi + fakat geçmişe yönelik olarak %{isim}c ssl + sözdizimi ile çelişiyordu.)

    %Iİstek ve başlıklar dahil alınan bayt sayısı; sıfır olamaz. Bunu + kullanmak için mod_logio etkin olmalıdır.
    %OBaşlıklar dahil gönderilen bayt sayısı; sıfır olamaz.Bunu + kullanmak için mod_logio etkin olmalıdır.
    %{ALANADI}^tiSunucuya gönderilen istekteki ALANADI: + Trailer satır(lar)ının içeriği.
    %{VARNAME}^toSunucudan gönderilen yanıttaki ALANADI: + Trailer satır(lar)ının içeriği.
    + +

    Değiştiriciler

    + +

    Belli öğelerin sadece belli durum kodlarıyla ilgili yanıtlarla + basılabilmesi için bu durum kodları % iminden hemen sonra virgüllerle + ayrılmış olarak yazılabilir. Örneğin, + "%400,501{User-agent}i" belirteci, + User-agent başlığını sadece 400 ve 501 hatalarında + günlüğe kaydeder. Diğer durum kodları için günlüğe "-" + yazılır. Durum kodlarını olumsuzlamak için başa bir "!" + konabilir. Örneğin, "%!200,304,302{Referer}i" belirteci, + 200,304,302 durum kodlarından biriyle dönmeyen tüm istekler için + Referer başlığını durum koduyla birlikte günlüğe + kaydedecektir.

    + +

    İsteğin dahili olarak yönlendirilmesinde özgün durumunun mu yoksa son + durumunun mu hesaba katılacağı "<" ve ">" değiştiricileri ile + belirtilebilir. Öntanımlı olarak %s, %U, %T, %D, ve + %r belirteçleri isteğin özgün durumuna bakarken diğerleri + son durumuna bakarlar. Bu bakımdan örneğin, %>s + belirteci, özgün istekteki kimliği doğrulanmış kullanıcının, dahili + olarak kimlik doğrulaması gerekmeyen bir özkaynağa yönlendirilmesi + halinde isteğin son durumunu kaydetmekte kullanılabilir.

    + + + +

    Bazı Bilgiler

    + +

    Güvenlik nedeniyle, 2.0.46 sürümünden itibaren %r, + %i ve %o belirteçlerinde basılamayan + karakterler ve diğer özel karakterler \xhh + dizilimleri biçeminde öncelenmektedir. Burada hh yerine + karakter numarasının onaltılık gösterimi yazılır. Bir tersbölü ile + öncelenmesi gereken " ve \ ile + \n, \t gibi C tarzı gösterimler bu kuralın + dışındadır. 2.0.46 sürümünün öncesinde bu dizgeler öncelenmezdi ve ham + günlük dosyalarıyla çalışırken dikkatli olmak gerekirdi.

    + +

    2.0 sürümünde 1.3 sürümünün aksine %b ve + %B biçem belirteçleri, istemciye gönderilen bayt sayısını + değil, HTTP yanıtının bayt sayısını ifade ederdi (bu yanıt, örneğin, + SSL kullanıldığında veya bağlantı koptuğunda farklı uzunlukta olur). + Artık, ağa gönderilen gerçek bayt sayısını günlüğe kaydetmek için + mod_logio modülü tarafından sağlanan %O + biçem belirteci kullanılmaktadır.

    + +

    Dikkat: mod_cache standart bir eylemci olarak değil + hızlandırılmış bir eylemci olarak gerçeklenmştir. Bu bakımdan + %R biçem dizgesi içerik önbelleklemesi ile ilgili + herhangi bir eylemci bilgisi döndürmeyecektir.

    + + + +

    Örnekler

    + +

    Genelde herkesçe kullanılan günlük kaydı biçemleme dizgelerinden + bazıları:

    + +
    +
    Ortak Günlük Biçemi (OGB)
    +
    "%h %l %u %t \"%r\" %>s %b"
    + +
    Sanal Konaklı Ortak Günlük Biçemi
    +
    "%v %h %l %u %t \"%r\" %>s %b"
    + +
    NCSA uzun/birleşik günlük biçemi
    +
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\""
    + +
    Referer başlığını içeren günlük biçemi
    +
    "%{Referer}i -> %U"
    + +
    User-agent başlığını içeren günlük biçemi
    +
    "%{User-agent}i"
    +
    + +
    top
    +
    +

    Güvenlik Kaygıları

    +

    Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı + dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde + güvenliğinizden nasıl feragat etmiş olacağınız güvenlik ipuçları + belgesinde açıklanmıştır.

    +
    +
    top
    +

    BufferedLogs Yönergesi

    + + + + + + + + +
    Açıklama:Günlük girdilerini diske yazmadan önce bellekte tamponlar +
    Sözdizimi:BufferedLogs On|Off
    Öntanımlı:BufferedLogs Off
    Bağlam:sunucu geneli
    Durum:Temel
    Modül:mod_log_config
    Uyumluluk:2.0.41 ve sonrasında mevcuttur.
    +

    BufferedLogs yönergesi, + mod_log_config modülünün çeşitli günlük girdilerini her + isteğin hemen ardından tek tek değil, bir bütün halinde diske yazılmak + üzere bellekte saklanmasını sağlar. Bu, bazı sistemlerde daha verimli + disk erişimi, dolayısıyla daha yüksek başarım sağlayabilir. Sadece + sunucu geneli için belirtilebilir, sanal konaklar için ayrı ayrı + yapılandırılamaz.

    + +
    Bu yönerge deneyseldir ve dikkatli kullanılmalıdır.
    + +
    +
    top
    +

    CookieLog Yönergesi

    + + + + + + + +
    Açıklama:Çerezleri günlüğe kaydetmek için dosya ismi belirtmekte +kullanılır.
    Sözdizimi:CookieLog dosya-adı
    Bağlam:sunucu geneli, sanal konak
    Durum:Temel
    Modül:mod_log_config
    Uyumluluk:Bu yönergenin kullanımı önerilmemektedir.
    +

    CookieLog yönergesi çerezleri günlüğe kaydetmek + için dosya ismi belirtir. Dosya isminin ServerRoot değerine göre belirtildiği + varsayılır. Yönerge mod_cookies ile uyumluluk için vardır + ve kullanımı önerilmemektedir.

    + +
    +
    top
    +

    CustomLog Yönergesi

    + + + + + + +
    Açıklama:Günlük dosyasın ismini ve girdi biçemini belirler.
    Sözdizimi:CustomLog dosya|borulu-süreç +biçem|takma-ad +[env=[!]ortam-değişkeni]
    Bağlam:sunucu geneli, sanal konak
    Durum:Temel
    Modül:mod_log_config
    +

    CustomLog yönergesi istekleri günlüğe kaydetmek + için kullanılır. Yönerge ile bir günlük biçemi belirtilebilir ve günlük + kaydı isteğin özelliklerine bağlı olarak ortam değişkenleri vasıtasıyla + şarta bağlı kılınabilir.

    + +

    İlk argümanda günlüğün yazılacağı yer belirtilir. İki tür yer + belirtilebilir:

    + +
    +
    dosya
    +
    ServerRoot yönergesinin + değerine göreli bir dosya ismi.
    + +
    borulu-süreç
    +
    "|" boru karakteri ile öncelenmiş olarak günlük + bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut + satırı) Daha fazla bilgi için borulu + günlükler ile ilgili ek bilgilere bakın. + +

    Güvenlik:

    +

    Bir borulu süreç kullanılmışsa, süreç httpd’yi + başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından + başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak + programın güvenilir olması önemlidir.

    +
    +

    Bilginize

    +

    Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı + platformlarda bile yapılandırma dosyasında bu amaçla normal bölü + çizgilerini kullanmaya özen gösterilmelidir.

    +
    +
    + +

    İkinci argümanda günlüğe ne yazılacağı belirtilir. Ya evvelce + LogFormat yönergesi ile + tanımlanmış bir takma-ad ya da içeriği Günlük Girdilerinin Kişiselleştirilmesi bölümünde + açıklanmış bir biçem dizgesi olabilir.

    + +

    Örneğin, aşağıdaki iki yönerge kümesi aynı etkiye sahiptir:

    + +

    + # Biçem dizgesi yerine takma ad içeren CustomLog
    + LogFormat "%h %l %u %t \"%r\" %>s %b" common
    + CustomLog logs/access_log common
    +
    + # Biçem dizgesinin kendisini içeren CustomLog
    + CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b" +

    + +

    Üçüncü argüman isteğe bağlı olup, sunucu ortamında belli bir değişkenin + varlığına bağlı olarak belli bir isteğin günlüğe kaydedilip + kaydedilmeyeceğini belirler. Eğer istek için belirtilen ortam değişkeni mevcutsa (veya + 'env=!değişken' durumunda mevcut değilse) istek + günlüğe kaydedilir.

    + +

    Ortam değişkenleri mod_setenvif + ve/veya mod_rewrite modülleri kullanılarak her istek + için ayrı ayrı atanabilir. Örneğin, GIF biçemli resimler için yapılan + istekleri ana günlük dosyasına değil de başka bir dosyaya kaydetmek + isterseniz:

    + +

    + SetEnvIf Request_URI \.gif$ gif-image
    + CustomLog gif-requests.log common env=gif-image
    + CustomLog nongif-requests.log common env=!gif-image +

    + +

    Veya eski RefererIgnore yönergesinin davranışını taklit + etmek isterseniz:

    + +

    + SetEnvIf Referer example\.com yerel-atif
    + CustomLog referer.log referer env=!yerel-atif +

    + +
    +
    top
    +

    LogFormat Yönergesi

    + + + + + + + +
    Açıklama:Bir günlük dosyasında kullanılmak üzere girdi biçemi tanımlar. +
    Sözdizimi:LogFormat biçem|takma-ad +[takma-ad]
    Öntanımlı:LogFormat "%h %l %u %t \"%r\" %>s %b"
    Bağlam:sunucu geneli, sanal konak
    Durum:Temel
    Modül:mod_log_config
    +

    Bu yönerge erişim günlüğü dosyasının girdi biçemini belirler.

    + +

    LogFormat yönergesi iki şekilde kullanılabilir. + Tek argüman belirtilebilen ilkinde daha sonra + TransferLog yönergelerinde belirtilen günlüklerde + kullanılmak üzere günlük biçemini belirler. Bu günlük biçemi yukarıda + açıklanan biçem belirteçlerinden + oluşur. Bu tek argüman yerine aşağıda açıklandığı gibi önceki bir + LogFormat yönergesinde tanımlanmış bir günlük + biçemine atıf yapan bir takma-ad da belirtilebilir.

    + +

    LogFormat yönergesinin ikinci kullanım şeklinde + biçem bir takma-ad için tanımlanır. Bu takma ad + daha sonraki LogFormat veya CustomLog yönergelerinde aynı biçem + dizgesini uzun uzadıya yazmamak için takma-ad olarak + kullanılır. Bir LogFormat yönergesi bir takma ad + tanımlamaktan başka bir şey yapmaz; yani, yaptığı iş + sadece bir takma ad tanımlamaktan ibarettir, biçemi uygulamaz veya + biçemi öntanımlı hale getirmez. Bu bakımdan sonraki TransferLog yönergelerini de + etkilemeyecektir. Ayrıca, LogFormat yönergesi bir + takma ada başka bir takma ad tanımlamakta da kullanılamaz. Bir takma + adın yüzde imi (%) içeremeyeceğine de dikkat ediniz.

    + +

    Örnek

    + LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common +

    + +
    +
    top
    +

    TransferLog Yönergesi

    + + + + + + +
    Açıklama:Bir günlük dosyasının yerini belirtir.
    Sözdizimi:TransferLog dosya|borulu-süreç +[takma-ad]
    Bağlam:sunucu geneli, sanal konak
    Durum:Temel
    Modül:mod_log_config
    +

    Bir günlük biçemi tanımlanmasını ve şarta bağlı günlük kaydını mümkün + kılmaması haricinde CustomLog yönergesi gibidir. Günlük biçemi yerine kendinden + önce yer alan bir LogFormat yönergesinde tanımlanan + bir takma ad kullanılır. Açıkça bir günlük biçemi takma adı + belirtilmedikçe Ortak Günlük Biçemi öntanımlıdır.

    + +

    Örnek

    + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\""
    + TransferLog logs/access_log +

    + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_log_config.xml b/docs/manual/mod/mod_log_config.xml index 2f623ca3861..2db111a8000 100644 --- a/docs/manual/mod/mod_log_config.xml +++ b/docs/manual/mod/mod_log_config.xml @@ -4,12 +4,12 @@ + + - + mod_log_config /mod/ .. en - ja + ja ko + tr diff --git a/docs/manual/mod/mod_log_config.xml.tr b/docs/manual/mod/mod_log_config.xml.tr new file mode 100644 index 00000000000..102dec11309 --- /dev/null +++ b/docs/manual/mod/mod_log_config.xml.tr @@ -0,0 +1,523 @@ + + + + + + + + + + +mod_log_config +Sunucuya yapılan isteklerin günlük kayıtlarının tutulması + +Base +mod_log_config.c +log_config_module + + +

    Bu modül istemci isteklerinin esnek şekilde günlüklenmesi ile + ilgilidir. Günlükler kişiselleştirilebilir biçemdedir ve doğrudan bir + dosyaya yazılabileceği gibi boru üzerinden harici bir sürece de + yazılabilir. İsteğin özelliklerine bağlı olarak bazı isteklerin + günlüklere kaydedilmesi veya kaydedilmemesi mümkün kılınmıştır.

    + +

    Bu modül üç yönerge içermektedir: Bir günlük dosyası oluşturmak için + TransferLog, günlük + biçemini kişiselleştirmek için LogFormat ve tek başına bir günlük + dosyasını hem tanımlayıp hem de biçemleyen CustomLog yönergesi. Her isteğin + çok sayıda dosyaya günlüklenmesini sağlamak için yapılandırma dosyasında + her sunucu için birden fazla TransferLog ve + CustomLog yönergesi belirtilebilir.

    +
    +Apache Günlük Dosyaları + +
    Günlük Girdilerinin Kişiselleştirilmesi + +

    LogFormat ve CustomLog yönergelerinin biçem + argümanı bir dizgedir. Bu dizge her isteği günlük dosyasına günlüklemek + için kullanılır. Doğrudan günlük dosyalarına kopyalanmak üzere dizgesel + sabitler içerebileceği gibi satırsonu ve sekme karakterleri olarak C + tarzı "\n" ve "\t" denetim karakterlerini de içerebilir. Dizgesel sabit + olarak kullanılan tırnak ve tersbölü imlerinin tersbölü ile öncelenmesi + gerekir.

    + +

    İstek özellikleri biçem dizgesine “%” imli belirteçler + yerleştirilerek günlüklenir. Bu belirteçler ve anlamları:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BelirteçAçıklama
    %%Yüzde imi
    %aUzak IP adresi
    %AYerel IP adresi
    %BHTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu.
    %bHTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu. OGB + biçeminde hiç bayt gönderilmemişse günlüğe '-' yerine + '0' çıktılanır.
    %{Fesmekan}Cİstek içinde sunucuya gönderilen Fesmekan çerezinin + içeriği. Sadece 0. sürüm çerezler tam olarak desteklenir.
    %DMikrosaniye cinsinden isteği sunmak için harcanan zaman.
    %{FALANCA}eFALANCA ortam değişkeninin içeriği.
    %fDosya ismi
    %hUzak konak
    %Hİstek Protokolü
    %{Filanca}iİstekle birlikte sunucuya gönderilen + Filanca: başlık satır(lar)ının + içeriği. Diğer modüllerde (örn. mod_headers) + yapılan değişikliklerden etkilenir. Çok sayıda modülün istek + başlığını değişikliğe uğrattığı durumda istek başlığında başta + neyin geldiği ile ilgileniyorsanız, başlığı + mod_setenvif ile bir ortam değişkenine kopyalayıp + yukarıda açıklandığı gibi %{FALANCA}e ile bu + değeri günlükte kullanabilirsiniz. +
    %kBu bağlantıda işlenen isteklerin sayısı; yani örneğin, + '1' değeri bağlantı kurulduktan sonraki ilk kalıcı bağlantıyı, + '2', ikinci bağlantıyı, ..., vb. gösterir; + KeepAlive kullanılmışsa + değer anlamlıdır; aksi takdirde değer daima (ilk isteği + belirten) 0’dır. 2.2.11 sürümünden beri kullanılabilmektedir. +
    %lUzak kullanıcı kimliği (sağlanmışsa, identd üzerinden). + mod_ident modülü mevcut ve IdentityCheck yönergesine değer + olarak On atanmış olmadıkça bu belirteç için günlüğe + tire imi yazılır.
    %mİstek yöntemi
    %{Filanca}nDiğer modüldeki Filanca bilgisinin içeriği.
    %{Filanca}oYanıttaki Filanca: başlık satır(lar)ının + içeriği.
    %pSunucunun isteği sunduğu meşru port
    %{biçem}pSunucunun veya istemcinin gerçek portu veya sunucunun isteği + sunduğu meşru port. Geçerli biçemler: canonical, + local ve remote (anlamları sırasıyla: + meşru, yerel ve uzak).
    %Pİsteği sunan çocuk sürecin süreç kimliği.
    %{biçem}Pİsteği sunan çocuk sürecin süreç kimliği (pid) veya + evre kimliği (tid). Geçerli biçemler: pid, + tid, hextid. hextid için APR + 1.2.0 veya üstü gerekir.
    %qSorgu dizgesi (bir sorgu dizgesi mevcutsa önüne bir ? + eklenir yoksa hiçbir şey eklenmez).
    %rİsteğin ilk satırı.
    %RYanıt varsa yanıtı üreten eylemci.
    %sDurum. Dahili olarak yönlendirilen istekler için isteğin *özgün* + durumudur --- isteğin son durumu için %>s + kullanınız.
    %tİsteğin alındığı tarih ve saat (standart ingiliz biçemi).
    %{biçem}tİsteğin alındığı tarih ve saat; biçem + strftime(3) biçeminde belirtilmelidir (genelde + yerelleştirme amaçlı).
    %TSaniye cinsinden, isteği sunmak için harcanan zaman.
    %uUzak kullanıcı (kimlik doğrulaması istenmişse vardır; durum kodu + (%s) 401 ise yanlış olabilir).
    %UHerhangi bir sorgu dizgesi içermeksizin istenen URL yolu.
    %vİsteği sunan sunucunun meşru sunucu ismi (ServerName).
    %VUseCanonicalName ayarı ile + ilgili sunucu ismi.
    %XYanıt tamamlandığında bağlantı durumu: + + + + + + + + + +
    X =Yanıt tamamlanmadan bağlantı koptu.
    + =Yanıt gönderildikten sonra bağlantı canlı kalabilir.
    - = Yanıt gönderildikten sonra bağlantı kapatılacak.
    + +

    (Apache 1.3’ün son sürümlerinde bu belirteç %c idi + fakat geçmişe yönelik olarak %{isim}c ssl + sözdizimi ile çelişiyordu.)

    %Iİstek ve başlıklar dahil alınan bayt sayısı; sıfır olamaz. Bunu + kullanmak için mod_logio etkin olmalıdır.
    %OBaşlıklar dahil gönderilen bayt sayısı; sıfır olamaz.Bunu + kullanmak için mod_logio etkin olmalıdır.
    %{ALANADI}^tiSunucuya gönderilen istekteki ALANADI: + Trailer satır(lar)ının içeriği.
    %{VARNAME}^toSunucudan gönderilen yanıttaki ALANADI: + Trailer satır(lar)ının içeriği.
    + +
    Değiştiriciler + +

    Belli öğelerin sadece belli durum kodlarıyla ilgili yanıtlarla + basılabilmesi için bu durum kodları % iminden hemen sonra virgüllerle + ayrılmış olarak yazılabilir. Örneğin, + "%400,501{User-agent}i" belirteci, + User-agent başlığını sadece 400 ve 501 hatalarında + günlüğe kaydeder. Diğer durum kodları için günlüğe "-" + yazılır. Durum kodlarını olumsuzlamak için başa bir "!" + konabilir. Örneğin, "%!200,304,302{Referer}i" belirteci, + 200,304,302 durum kodlarından biriyle dönmeyen tüm istekler için + Referer başlığını durum koduyla birlikte günlüğe + kaydedecektir.

    + +

    İsteğin dahili olarak yönlendirilmesinde özgün durumunun mu yoksa son + durumunun mu hesaba katılacağı "<" ve ">" değiştiricileri ile + belirtilebilir. Öntanımlı olarak %s, %U, %T, %D, ve + %r belirteçleri isteğin özgün durumuna bakarken diğerleri + son durumuna bakarlar. Bu bakımdan örneğin, %>s + belirteci, özgün istekteki kimliği doğrulanmış kullanıcının, dahili + olarak kimlik doğrulaması gerekmeyen bir özkaynağa yönlendirilmesi + halinde isteğin son durumunu kaydetmekte kullanılabilir.

    + +
    + +
    Bazı Bilgiler + +

    Güvenlik nedeniyle, 2.0.46 sürümünden itibaren %r, + %i ve %o belirteçlerinde basılamayan + karakterler ve diğer özel karakterler \xhh + dizilimleri biçeminde öncelenmektedir. Burada hh yerine + karakter numarasının onaltılık gösterimi yazılır. Bir tersbölü ile + öncelenmesi gereken " ve \ ile + \n, \t gibi C tarzı gösterimler bu kuralın + dışındadır. 2.0.46 sürümünün öncesinde bu dizgeler öncelenmezdi ve ham + günlük dosyalarıyla çalışırken dikkatli olmak gerekirdi.

    + +

    2.0 sürümünde 1.3 sürümünün aksine %b ve + %B biçem belirteçleri, istemciye gönderilen bayt sayısını + değil, HTTP yanıtının bayt sayısını ifade ederdi (bu yanıt, örneğin, + SSL kullanıldığında veya bağlantı koptuğunda farklı uzunlukta olur). + Artık, ağa gönderilen gerçek bayt sayısını günlüğe kaydetmek için + mod_logio modülü tarafından sağlanan %O + biçem belirteci kullanılmaktadır.

    + +

    Dikkat: mod_cache standart bir eylemci olarak değil + hızlandırılmış bir eylemci olarak gerçeklenmştir. Bu bakımdan + %R biçem dizgesi içerik önbelleklemesi ile ilgili + herhangi bir eylemci bilgisi döndürmeyecektir.

    + +
    + +
    Örnekler + +

    Genelde herkesçe kullanılan günlük kaydı biçemleme dizgelerinden + bazıları:

    + +
    +
    Ortak Günlük Biçemi (OGB)
    +
    "%h %l %u %t \"%r\" %>s %b"
    + +
    Sanal Konaklı Ortak Günlük Biçemi
    +
    "%v %h %l %u %t \"%r\" %>s %b"
    + +
    NCSA uzun/birleşik günlük biçemi
    +
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\""
    + +
    Referer başlığını içeren günlük biçemi
    +
    "%{Referer}i -> %U"
    + +
    User-agent başlığını içeren günlük biçemi
    +
    "%{User-agent}i"
    +
    +
    +
    + +
    Güvenlik Kaygıları +

    Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı + dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde + güvenliğinizden nasıl feragat etmiş olacağınız güvenlik ipuçları + belgesinde açıklanmıştır.

    +
    + + +BufferedLogs +Günlük girdilerini diske yazmadan önce bellekte tamponlar + +BufferedLogs On|Off +BufferedLogs Off +server config +Experimental +2.0.41 ve sonrasında mevcuttur. + + +

    BufferedLogs yönergesi, + mod_log_config modülünün çeşitli günlük girdilerini her + isteğin hemen ardından tek tek değil, bir bütün halinde diske yazılmak + üzere bellekte saklanmasını sağlar. Bu, bazı sistemlerde daha verimli + disk erişimi, dolayısıyla daha yüksek başarım sağlayabilir. Sadece + sunucu geneli için belirtilebilir, sanal konaklar için ayrı ayrı + yapılandırılamaz.

    + + Bu yönerge deneyseldir ve dikkatli kullanılmalıdır. +
    +
    + + +CookieLog +Çerezleri günlüğe kaydetmek için dosya ismi belirtmekte +kullanılır. +CookieLog dosya-adı +server configvirtual host + +Bu yönergenin kullanımı önerilmemektedir. + + +

    CookieLog yönergesi çerezleri günlüğe kaydetmek + için dosya ismi belirtir. Dosya isminin ServerRoot değerine göre belirtildiği + varsayılır. Yönerge mod_cookies ile uyumluluk için vardır + ve kullanımı önerilmemektedir.

    +
    +
    + + +CustomLog +Günlük dosyasın ismini ve girdi biçemini belirler. +CustomLog dosya|borulu-süreç +biçem|takma-ad +[env=[!]ortam-değişkeni] +server configvirtual host + + + +

    CustomLog yönergesi istekleri günlüğe kaydetmek + için kullanılır. Yönerge ile bir günlük biçemi belirtilebilir ve günlük + kaydı isteğin özelliklerine bağlı olarak ortam değişkenleri vasıtasıyla + şarta bağlı kılınabilir.

    + +

    İlk argümanda günlüğün yazılacağı yer belirtilir. İki tür yer + belirtilebilir:

    + +
    +
    dosya
    +
    ServerRoot yönergesinin + değerine göreli bir dosya ismi.
    + +
    borulu-süreç
    +
    "|" boru karakteri ile öncelenmiş olarak günlük + bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut + satırı) Daha fazla bilgi için borulu + günlükler ile ilgili ek bilgilere bakın. + + Güvenlik: +

    Bir borulu süreç kullanılmışsa, süreç httpd’yi + başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından + başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak + programın güvenilir olması önemlidir.

    +
    + Bilginize +

    Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı + platformlarda bile yapılandırma dosyasında bu amaçla normal bölü + çizgilerini kullanmaya özen gösterilmelidir.

    +
    +
    + +

    İkinci argümanda günlüğe ne yazılacağı belirtilir. Ya evvelce + LogFormat yönergesi ile + tanımlanmış bir takma-ad ya da içeriği Günlük Girdilerinin Kişiselleştirilmesi bölümünde + açıklanmış bir biçem dizgesi olabilir.

    + +

    Örneğin, aşağıdaki iki yönerge kümesi aynı etkiye sahiptir:

    + + + # Biçem dizgesi yerine takma ad içeren CustomLog
    + LogFormat "%h %l %u %t \"%r\" %>s %b" common
    + CustomLog logs/access_log common
    +
    + # Biçem dizgesinin kendisini içeren CustomLog
    + CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b" +
    + +

    Üçüncü argüman isteğe bağlı olup, sunucu ortamında belli bir değişkenin + varlığına bağlı olarak belli bir isteğin günlüğe kaydedilip + kaydedilmeyeceğini belirler. Eğer istek için belirtilen ortam değişkeni mevcutsa (veya + 'env=!değişken' durumunda mevcut değilse) istek + günlüğe kaydedilir.

    + +

    Ortam değişkenleri mod_setenvif + ve/veya mod_rewrite modülleri kullanılarak her istek + için ayrı ayrı atanabilir. Örneğin, GIF biçemli resimler için yapılan + istekleri ana günlük dosyasına değil de başka bir dosyaya kaydetmek + isterseniz:

    + + + SetEnvIf Request_URI \.gif$ gif-image
    + CustomLog gif-requests.log common env=gif-image
    + CustomLog nongif-requests.log common env=!gif-image +
    + +

    Veya eski RefererIgnore yönergesinin davranışını taklit + etmek isterseniz:

    + + + SetEnvIf Referer example\.com yerel-atif
    + CustomLog referer.log referer env=!yerel-atif +
    +
    +
    + + +LogFormat +Bir günlük dosyasında kullanılmak üzere girdi biçemi tanımlar. + +LogFormat biçem|takma-ad +[takma-ad] +LogFormat "%h %l %u %t \"%r\" %>s %b" +server configvirtual host + + + +

    Bu yönerge erişim günlüğü dosyasının girdi biçemini belirler.

    + +

    LogFormat yönergesi iki şekilde kullanılabilir. + Tek argüman belirtilebilen ilkinde daha sonra + TransferLog yönergelerinde belirtilen günlüklerde + kullanılmak üzere günlük biçemini belirler. Bu günlük biçemi yukarıda + açıklanan biçem belirteçlerinden + oluşur. Bu tek argüman yerine aşağıda açıklandığı gibi önceki bir + LogFormat yönergesinde tanımlanmış bir günlük + biçemine atıf yapan bir takma-ad da belirtilebilir.

    + +

    LogFormat yönergesinin ikinci kullanım şeklinde + biçem bir takma-ad için tanımlanır. Bu takma ad + daha sonraki LogFormat veya CustomLog yönergelerinde aynı biçem + dizgesini uzun uzadıya yazmamak için takma-ad olarak + kullanılır. Bir LogFormat yönergesi bir takma ad + tanımlamaktan başka bir şey yapmaz; yani, yaptığı iş + sadece bir takma ad tanımlamaktan ibarettir, biçemi uygulamaz veya + biçemi öntanımlı hale getirmez. Bu bakımdan sonraki TransferLog yönergelerini de + etkilemeyecektir. Ayrıca, LogFormat yönergesi bir + takma ada başka bir takma ad tanımlamakta da kullanılamaz. Bir takma + adın yüzde imi (%) içeremeyeceğine de dikkat ediniz.

    + + Örnek + LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common + +
    +
    + + +TransferLog +Bir günlük dosyasının yerini belirtir. +TransferLog dosya|borulu-süreç +[takma-ad] +server configvirtual host + + + +

    Bir günlük biçemi tanımlanmasını ve şarta bağlı günlük kaydını mümkün + kılmaması haricinde CustomLog yönergesi gibidir. Günlük biçemi yerine kendinden + önce yer alan bir LogFormat yönergesinde tanımlanan + bir takma ad kullanılır. Açıkça bir günlük biçemi takma adı + belirtilmedikçe Ortak Günlük Biçemi öntanımlıdır.

    + + Örnek + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\""
    + TransferLog logs/access_log +
    +
    +
    + +
    diff --git a/docs/manual/mod/mod_log_forensic.html b/docs/manual/mod/mod_log_forensic.html index ede26709035..8022c6cb7e3 100644 --- a/docs/manual/mod/mod_log_forensic.html +++ b/docs/manual/mod/mod_log_forensic.html @@ -1,7 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_log_forensic.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_log_forensic.html.ja.euc-jp +URI: mod_log_forensic.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 + +URI: mod_log_forensic.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_log_forensic.html.en b/docs/manual/mod/mod_log_forensic.html.en index 6c7b635123b..49f66eee547 100644 --- a/docs/manual/mod/mod_log_forensic.html.en +++ b/docs/manual/mod/mod_log_forensic.html.en @@ -1,33 +1,41 @@ - -mod_log_forensic - Apache HTTP Server +mod_log_forensic - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_log_forensic

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_log_forensic

    Available Languages:  en  | - ja 

    + ja  | + tr 

    - - + +
    Description:Forensic Logging of the requests made to the server
    Status:Extension
    Module Identifier:log_forensic_module
    Source File:mod_log_forensic.c
    Module Identifier:log_forensic_module
    Source File:mod_log_forensic.c
    Compatibility:mod_unique_id is no longer required since version 2.1

    Summary

    @@ -50,19 +58,19 @@ version 2.1 distribution's support directory, may be helpful in evaluating the forensic log output.

    -

    Directives

    - -

    Topics

    + +
    top

    Forensic Log Format

    @@ -105,6 +113,10 @@ version 2.1 document for details on why your security could be compromised if the directory where logfiles are stored is writable by anyone other than the user that starts the server.

    +

    The log files may contain sensitive data such as the contents of + Authorization: headers (which can contain passwords), so + they should not be readable by anyone except the user that starts the + server.

    top

    ForensicLog Directive

    @@ -145,8 +157,8 @@ version 2.1

    Note

    When entering a file path on non-Unix platforms, care should be taken - to make sure that only forward slashed are used even though the platform - may allow the use of back slashes. In general it is a good idea to always + to make sure that only forward slashes are used even though the platform + may allow the use of back slashes. In general it is a good idea to always use forward slashes throughout the configuration files.

    @@ -155,8 +167,30 @@ version 2.1

    Available Languages:  en  | - ja 

    -
    + ja  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_log_forensic.html.ja.euc-jp b/docs/manual/mod/mod_log_forensic.html.ja.euc-jp deleted file mode 100644 index f7b00602358..00000000000 --- a/docs/manual/mod/mod_log_forensic.html.ja.euc-jp +++ /dev/null @@ -1,163 +0,0 @@ - - - -mod_log_forensic - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_log_forensic

    -
    -

    Available Languages:  en  | - ja 

    -
    - - - - -
    ÀâÌÀ:¥µ¡¼¥ФËÁ÷¤é¤줿¥ꥯ¥¨¥¹¥ȤÎ forensic ¥í¥®¥ó¥°
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:log_forensic_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_log_forensic.c
    ¸ߴ¹À­:mod_unique_id ¤ϥС¼¥¸¥ç¥ó 2.1 ¤«¤é¤Ïɬ¿ܤǤÏ -¤ʤ¯¤ʤä¿
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤ϥ¯¥饤¥¢¥ó¥ȥꥯ¥¨¥¹¥ȤÎ forensic ¥í¥®¥󥰤ò - ¹Ԥʤ¤¤ޤ¹¡£¥í¥°¼ý½¸¤ϥꥯ¥¨¥¹¥ȤνèÍý¤ÎÁ°¤ȸå¤˹Ԥʤï¤ì¤ޤ¹¤Τǡ¢ - forensic ¥í¥°¤ϳƥꥯ¥¨¥¹¥ȤËÂФ·¤ÆÆó¹ԥí¥°¼ý½¸¤·¤ޤ¹¡£ - Forensic ¥í¥¬¡¼¤ÏÈó¾ï¤˸·̩¤Ǥ¹¡£¤³¤ì¤ϰʲ¼¤Τ³¤Ȥò°Ọ̃¤·¤ޤ¹:

    - -
      -
    • ¥ե©¡¼¥ޥåȤϸÇÄê¤Ǥ¹¡£¼¹Իþ¤˥í¥®¥󥰥ե©¡¼¥ޥåȤòÊѹ¹¤¹¤뤳¤ȤÏ - ¤Ǥ­¤ޤ»¤ó¡£
    • -
    • ¥ǡ¼¥¿¤ò½񤱤ʤ¤¾ì¹ç¤ϻҥץí¥»¥¹¤Ϥ½¤ξì¤ǽªλ¤·¡¢¤µ¤é¤˥³¥¢¤ò - ¥À¥ó¥פ¹¤뤫¤⤷¤ì¤ޤ»¤ó (CoreDumpDirectory ¥ǥ£¥쥯¥ƥ£¥֤ÎÀßÄê¤˰ͤê¤ޤ¹)¡£
    • -
    - -

    Forensic ¥í¥°¤νÐÎϤ򸡺º¤¹¤뤿¤á¤ˤϡ¢ - ÇÛÉÛʪ¤Î support ¥ǥ£¥쥯¥ȥê¤ˤ¢¤ë check_forensic - ¥¹¥¯¥ê¥ץȤ¬Ìò¤ËΩ¤ĤǤ·¤礦¡£

    -
    - -
    top
    -
    -

    Forensic ¥í¥°¥ե©¡¼¥ޥåÈ

    -

    ³ƥꥯ¥¨¥¹¥ȤÏ2²ó¥í¥°¼ý½¸¤µ¤ì¤ޤ¹¡£ºǽé¤ϥꥯ¥¨¥¹¥Ȥ¬½èÍý¤µ¤ì¤ë - Á° (¤Ĥޤꡢ¥إåÀ¤ò¼õ¤±¼è¤ä¿¸å) ¤Ǥ¹¡£2ÅÙÌܤΥí¥°¤Ï - ¥ꥯ¥¨¥¹¥Ȥ¬½èÍý¤µ¤줿¸å¡¢Ä̾ï¤Υí¥°¼ý½¸¤ÈƱ¤¸¤Ȥ­¤Ë - ¹Ԥʤï¤ì¤ޤ¹¡£

    - -

    ³ƥꥯ¥¨¥¹¥Ȥò¼±Ê̤¹¤뤿¤á¤ˡ¢¥ꥯ¥¨¥¹¥ȤˤÏ - °ì°դʥꥯ¥¨¥¹¥È ID ¤¬³ä¤êÅö¤Ƥé¤ì¤ޤ¹¡£¤³¤Î forensic ID ¤Ï - ¥ե©¡¼¥ޥåÈʸ»úÎó %{forensic-id}n ¤ò»Ȥ¦¤³¤ȤÇ - Ä̾ï¤Î transfer ¥í¥°¤˥í¥°¼ý½¸¤¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£ - mod_unique_id ¤ò»ȤäƤ¤¤ë¾ì¹ç¤ϡ¢¤½¤줬À¸À®¤¹¤ë - ID ¤¬»Ȥï¤ì¤ޤ¹¡£

    - -

    ºǽé¤ιԤÏ forensic ID¡¢¥ꥯ¥¨¥¹¥ȹԤȼõ¤±¼è¤ä¿¤¹¤٤ƤΥإåÀ¤ò - ¥ѥ¤¥×ʸ»ú (|) ¤ÇʬΥ¤·¤ƥí¥°¼ý½¸¤·¤ޤ¹¡£ - Î㤨¤аʲ¼¤Τ褦¤ˤʤê¤ޤ¹ (¼ºݤϤ¹¤٤ÆƱ¤¸¹Ԥˤʤê¤ޤ¹):

    - -

    - +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif - HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11; - U; Linux i686; en-US; rv%3a1.6) Gecko/20040216 - Firefox/0.8|Accept:image/png, etc... -

    - -

    ºǽé¤Υץ饹ʸ»ú¤¬¤³¤Υí¥°¤Ϻǽé¤Υí¥°¤Ǥ¢¤뤳¤Ȥ򼨤·¤ޤ¹¡£ - ÆóÈÖÌܤιԤϥޥ¤¥ʥ¹ʸ»ú¤È ID ¤ΤߤǤ¹:

    - -

    - -yQtJf8CoAB4AAFNXBIEAAAAA -

    - -

    check_forensic ¥¹¥¯¥ê¥ץȤϰú¿ô¤Ȥ·¤ƥí¥°¥ե¡¥¤¥ë¤Î̾Á°¤ò - ¼è¤ê¤ޤ¹¡£+/- ¤Î ID ¤ÎÁȤòĴ¤١¢´°λ¤·¤Ƥ¤¤ʤ¤ - ¥ꥯ¥¨¥¹¥Ȥ¬¤¢¤ë¾ì¹ç¤Ϸٹð¤òȯ¤·¤ޤ¹¡£

    -
    top
    -
    -

    ¥»¥­¥å¥ê¥ƥ£¤ÎÌäÂê

    -

    ¥í¥°¥ե¡¥¤¥뤬Êݸ¤µ¤ì¤ë¥ǥ£¥쥯¥ȥ꤬¥µ¡¼¥Фòµ¯ư¤·¤¿¥桼¥¶ - °ʳ°¤ǽ񤭹þ¤߲Äǽ¤ˤʤäƤ¤¤ë¤Ȥ­¤˥»¥­¥å¥ê¥ƥ£¤¬Çˤé¤ì¤ë²ÄǽÀ­¤¬ - ¤¢¤뤳¤ȤˤĤ¤¤Ƥξܺ٤Ï¥»¥­¥å¥ê¥ƥ£¤Τ³¤Ä¤ò - »²¾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -
    top
    -

    ForensicLog ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:Forensic ¥í¥°¤Υե¡¥¤¥ë̾¤òÀßÄꤹ¤ë
    ¹½ʸ:ForensicLog filename|pipe
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_log_forensic
    -

    ForensicLog ¥ǥ£¥쥯¥ƥ£¥֤Ï forensic ²òÀϤΤ¿¤á¤Î - ¥µ¡¼¥ФؤΥꥯ¥¨¥¹¥Ȥò¥í¥°¼ý½¸¤˻Ȥ¤¤ޤ¹¡£ - ³ƥí¥°¥¨¥ó¥ȥê¤ˤϡ¢ÉáÄ̤Î CustomLog ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäƥꥯ¥¨¥¹¥ȤȴØϢÉդ±¤뤳¤ȤÎ - ¤Ǥ­¤ë - °ì°դÊ ID ¤¬³ä¤êÅö¤Ƥé¤ì¤ޤ¹¡£mod_log_forensic ¤Ï - forensic-id ¤Ȥ¤¤¦¥ȡ¼¥¯¥ó¤òºîÀ®¤·¡¢¥ե©¡¼¥ޥåÈʸ»úÎó - %{forensic-id}n ¤ò»Ȥ¦¤³¤ȤǤ½¤Υȡ¼¥¯¥ó¤ò transfer ¥í¥°¤Ë - Äɲ乤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    °ú¿ô¤ϥí¥°¤¬½񤭽Фµ¤ì¤ë°ÌÃ֤ò»ØÄꤷ¡¢°ʲ¼¤Î 2¼ïÎà¤ÎÃͤΤɤÁ¤餫¤ò - ¼è¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -
    -
    filename
    -
    ServerRoot ¤«¤é¤Î - ÁêÂХե¡¥¤¥ë̾
    - -
    pipe
    -
    ¥ѥ¤¥×ʸ»ú "|" ¤ȡ¢¤½¤θå¤˥í¥°¾ðÊó¤òɸ½àÆþÎϤ«¤é - ¼õ¤±¼è¤ë¥ץí¥°¥é¥ࡣ¥ץí¥°¥é¥à̾¤Ï ServerRoot ¤«¤é¤ÎÁêÂХѥ¹¤Ȥ·¤Ƥâ - »ØÄê¤Ǥ­¤ޤ¹¡£ - -

    ¥»¥­¥å¥ê¥ƥ£:

    -

    ¥ץí¥°¥é¥à¤ò»Ȥ¦¾ì¹硢¤½¤Υץí¥°¥é¥à¤Ï httpd ¤òµ¯ư¤·¤¿¥桼¥¶¤Ç - ¼¹Ԥµ¤ì¤ޤ¹¡£¤Ĥޤꡢ¥µ¡¼¥Ф¬ root ¤Ǽ¹Ԥµ¤줿¾ì¹ç¤Ï root ¤Ç - ¼¹Ԥµ¤ì¤ë¤Ȥ¤¤¦¤³¤ȤǤ¹¡£¥ץí¥°¥é¥ब°ÂÁ´¤Ǥ¢¤뤫¡¢¤è¤긢¸¤ξ¯¤ʤ¤ - ¥桼¥¶¤ËÀڤêÂؤ¨¤ë¤褦¤ˤʤäƤ¤¤뤳¤Ȥò³Τ«¤á¤Ƥ¯¤À¤µ¤¤¡£

    -
    - -

    Ãí

    -

    Unix °ʳ°¤Υץé¥åȥե©¡¼¥à¤ǥե¡¥¤¥ë̾¤òÆþÎϤ¹¤ë¤Ȥ­¤ϡ¢ - ¥ץé¥åȥե©¡¼¥ब¥Х寥¹¥é¥å·¥å¤λÈÍѤòµö²Ĥ·¤Ƥ¤¤ë¾ì¹ç¤Ǥ⡢ - ¥¹¥é¥å·¥å¤Τߤ¬»Ȥï¤ì¤ë¤褦¤˵¤¤ò¤Ĥ±¤Ƥ¯¤À¤µ¤¤¡£ - ÉáÄ̤ÏÀßÄê¥ե¡¥¤¥뤹¤٤Ƥˤª¤¤¤ơ¢¥¹¥é¥å·¥å¤ÎÊý¤ò»ÈÍѤ¹¤ë¤褦¤Ë - ¤·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -
    - -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_log_forensic.html.ja.utf8 b/docs/manual/mod/mod_log_forensic.html.ja.utf8 new file mode 100644 index 00000000000..93c50b9f9e2 --- /dev/null +++ b/docs/manual/mod/mod_log_forensic.html.ja.utf8 @@ -0,0 +1,197 @@ + + + + + +mod_log_forensic - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_log_forensic

    +
    +

    翻訳済み言語:  en  | + ja  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + + +
    説明:サーバに送られたリクエストの forensic ロギング
    ステータス:Extension
    モジュール識別子:log_forensic_module
    ソースファイル:mod_log_forensic.c
    互換性:mod_unique_id はバージョン 2.1 からは必須では +なくなった
    +

    概要

    + +

    このモジュールはクライアントリクエストの forensic ロギングを + 行ないます。ログ収集はリクエストの処理の前と後に行なわれますので、 + forensic ログは各リクエストに対して二行ログ収集します。 + Forensic ロガーは非常に厳密です。これは以下のことを意味します:

    + +
      +
    • フォーマットは固定です。実行時にロギングフォーマットを変更することは + できません。
    • +
    • データを書けない場合は子プロセスはその場で終了し、さらにコアを + ダンプするかもしれません (CoreDumpDirectory ディレクティブの設定に依ります)。
    • +
    + +

    Forensic ログの出力を検査するためには、 + 配布物の support ディレクトリにある check_forensic + スクリプトが役に立つでしょう。

    +
    + +
    top
    +
    +

    Forensic ログフォーマット

    +

    各リクエストは2回ログ収集されます。最初はリクエストが処理される + 前 (つまり、ヘッダを受け取った後) です。2度目のログは + リクエストが処理された後、通常のログ収集と同じときに + 行なわれます。

    + +

    各リクエストを識別するために、リクエストには + 一意なリクエスト ID が割り当てられます。この forensic ID は + フォーマット文字列 %{forensic-id}n を使うことで + 通常の transfer ログにログ収集することもできます。 + mod_unique_id を使っている場合は、それが生成する + ID が使われます。

    + +

    最初の行は forensic ID、リクエスト行と受け取ったすべてのヘッダを + パイプ文字 (|) で分離してログ収集します。 + 例えば以下のようになります (実際はすべて同じ行になります):

    + +

    + +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif + HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11; + U; Linux i686; en-US; rv%3a1.6) Gecko/20040216 + Firefox/0.8|Accept:image/png, etc... +

    + +

    最初のプラス文字がこのログは最初のログであることを示します。 + 二番目の行はマイナス文字と ID のみです:

    + +

    + -yQtJf8CoAB4AAFNXBIEAAAAA +

    + +

    check_forensic スクリプトは引数としてログファイルの名前を + 取ります。+/- の ID の組を調べ、完了していない + リクエストがある場合は警告を発します。

    +
    top
    +
    +

    セキュリティの問題

    +

    ログファイルが保存されるディレクトリがサーバを起動したユーザ + 以外で書き込み可能になっているときにセキュリティが破られる可能性が + あることについての詳細はセキュリティのこつを + 参照してください。

    +
    +
    top
    +

    ForensicLog ディレクティブ

    + + + + + + +
    説明:Forensic ログのファイル名を設定する
    構文:ForensicLog filename|pipe
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_log_forensic
    +

    ForensicLog ディレクティブは forensic 解析のための + サーバへのリクエストをログ収集に使います。 + 各ログエントリには、普通の CustomLog ディレクティブを使ってリクエストと関連付けることの + できる + 一意な ID が割り当てられます。mod_log_forensic は + forensic-id というトークンを作成し、フォーマット文字列 + %{forensic-id}n を使うことでそのトークンを transfer ログに + 追加することができます。

    + +

    引数はログが書き出される位置を指定し、以下の 2種類の値のどちらかを + 取ることができます:

    + +
    +
    filename
    +
    ServerRoot からの + 相対ファイル名
    + +
    pipe
    +
    パイプ文字 "|" と、その後にログ情報を標準入力から + 受け取るプログラム。プログラム名は ServerRoot からの相対パスとしても + 指定できます。 + +

    セキュリティ:

    +

    プログラムを使う場合、そのプログラムは httpd を起動したユーザで + 実行されます。つまり、サーバが root で実行された場合は root で + 実行されるということです。プログラムが安全であるか、より権限の少ない + ユーザに切り替えるようになっていることを確かめてください。

    +
    + +

    注

    +

    Unix 以外のプラットフォームでファイル名を入力するときは、 + プラットフォームがバックスラッシュの使用を許可している場合でも、 + スラッシュのみが使われるように気をつけてください。 + 普通は設定ファイルすべてにおいて、スラッシュの方を使用するように + してください。

    +
    +
    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_log_forensic.html.tr.utf8 b/docs/manual/mod/mod_log_forensic.html.tr.utf8 new file mode 100644 index 00000000000..e9e3e230753 --- /dev/null +++ b/docs/manual/mod/mod_log_forensic.html.tr.utf8 @@ -0,0 +1,195 @@ + + + + + +mod_log_forensic - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_log_forensic

    +
    +

    Mevcut Diller:  en  | + ja  | + tr 

    +
    + + + + +
    Açıklama:Sunucuya yapılan isteklerin adli günlük kayıtlarının tutulması
    Durum:Eklenti
    Modül Betimleyici:log_forensic_module
    Kaynak Dosyası:mod_log_forensic.c
    Uyumluluk:2.1 sürümünden beri mod_unique_id gerekmemektedir.
    +

    Özet

    + +

    Bu modül istemci isteklerinin adli günlük kayıtlarının tutulmasını + sağlar. Günlük kaydı bir istek işlenmeden önce ve sonra olmak üzere iki + kere yapılır, böylece günlükte her istek için iki girdi bulunur. Adli + günlükleyici çok sıkı kurallara tabidir, yani:

    + +
      +
    • Biçem sabittir. Günlük kayıt biçemi çalışma anında değiştirilemez.
    • +
    • Veriyi yazamadığı takdirde çocuk süreç beklemeksizin çıkar ve + (CoreDumpDirectory + yapılandırmasına bağlı olarak) bir core dosyası dökümler.
    • +
    + +

    Dağıtımın support dizininde bulunan + check_forensic betiği adli günlük dosyalarının + değerlendirilmesinde yardımcı olabilir.

    +
    + +
    top
    +
    +

    Adli Günlük Biçemi

    +

    Her istek günlüğe iki defa kaydedilir. İlki, işlemin başlangıcında + (yani, başlıklar alındıktan hemen sonra), ikincisi ise istek işlem + gördükten sonra normal günlüklemenin yapıldığı sırada yapılır.

    + +

    Her isteği betimlemek için eşsiz bir istek kimliği atanır. Bu adli + kimliğin normal günlüğe de yazılması istenirse bu + %{forensic-id}n biçem dizgesi ile yapılabilir. + mod_unique_id kullanılıyorsa, onun ürettiği kimlik + kullanılır.

    + +

    İlk satır günlüğe, adli kimliği, istek satırını ve alınan tüm + başlıkları boru karakterleri (|) ile ayrılmış olarak + kaydeder. Aşağıda bir örneğe yer verilmiştir (hepsi bir satırdadır):

    + +

    + +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif + HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11; + U; Linux i686; en-US; rv%3a1.6) Gecko/20040216 + Firefox/0.8|Accept:image/png, etc... +

    + +

    Başlangıçtaki artı imi bu günlük satırının istekle ilgili ilk günlük + kaydı olduğunu belirtir. İkinci satırda bunun yerini bir eksi imi + alır:

    + +

    + -yQtJf8CoAB4AAFNXBIEAAAAA +

    + +

    check_forensic betiği komut satırı argümanı olarak günlük + dosyasının ismini alır. Bu +/- kimlik + çiftlerine bakarak tamamlanmamış istekler varsa bunlar hakkında + uyarır.

    +
    top
    +
    +

    Güvenlik Kaygıları

    +

    Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı + dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde + güvenliğinizden nasıl feragat etmiş olacağınız güvenlik ipuçları + belgesinde açıklanmıştır.

    + +

    Günlük dosyaları Authorization: başlıklarının içeriği (örn, + parolalar) gibi hassas veriler içerebilir, bu bakımdan sunucuyu başlatan + kullanıcı dışında hiç kimse bu dosyaları okuyamamalıdır.

    +
    +
    top
    +

    ForensicLog Yönergesi

    + + + + + + +
    Açıklama:Adli günlük için dosya ismini belirler.
    Sözdizimi:ForensicLog dosya-adı|borulu-süreç
    Bağlam:sunucu geneli, sanal konak
    Durum:Eklenti
    Modül:mod_log_forensic
    +

    ForensicLog yönergesi adli inceleme için + sunucuya yapılan istekleri günlüğe kaydetmekte kullanılır. Her günlük + girdisine, normal CustomLog yönergesinde kullanılarak istekle + ilişkilendirilebilen eşsiz bir kimlik atanır. + mod_log_forensic modülü, aktarım günlüğünün biçem + dizgesinde %{forensic-id}n şeklinde kullanılmak üzere + forensic-id adı verilen bir dizgecik oluşturur.

    + +

    Günlüğün yazılacağı yeri belirleyen argüman şu iki değerden birini + alabilir:

    + +
    +
    dosya-adı
    +
    ServerRoot yönergesinin + değerine göreli bir dosya ismi.
    + +
    borulu-süreç
    +
    "|" boru karakteri ile öncelenmiş olarak günlük + bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut + satırı). Program adının ServerRoot yönergesinin değerine göre belirtildiği + varsayılır. + +

    Güvenlik:

    +

    Bir borulu süreç kullanılmışsa, süreç httpd’yi + başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından + başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak + programın güvenilir olması veya daha az yetkili bir kullanıcıya geçiş + yapması önemlidir.

    +
    + +

    Bilginize

    +

    Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı + platformlarda bile yapılandırma dosyasında bu amaçla normal bölü + çizgilerini kullanmaya özen gösterilmelidir.

    +
    +
    + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_log_forensic.xml b/docs/manual/mod/mod_log_forensic.xml index c7fb2e0d7d6..5a31fb5c695 100644 --- a/docs/manual/mod/mod_log_forensic.xml +++ b/docs/manual/mod/mod_log_forensic.xml @@ -4,12 +4,12 @@ + - + mod_log_forensic /mod/ .. en - ja + ja + tr diff --git a/docs/manual/mod/mod_log_forensic.xml.tr b/docs/manual/mod/mod_log_forensic.xml.tr new file mode 100644 index 00000000000..14640053b8d --- /dev/null +++ b/docs/manual/mod/mod_log_forensic.xml.tr @@ -0,0 +1,153 @@ + + + + + + + + + + +mod_log_forensic +Sunucuya yapılan isteklerin adli günlük kayıtlarının tutulması +Extension +mod_log_forensic.c +log_forensic_module +2.1 sürümünden beri mod_unique_id gerekmemektedir. + + +

    Bu modül istemci isteklerinin adli günlük kayıtlarının tutulmasını + sağlar. Günlük kaydı bir istek işlenmeden önce ve sonra olmak üzere iki + kere yapılır, böylece günlükte her istek için iki girdi bulunur. Adli + günlükleyici çok sıkı kurallara tabidir, yani:

    + +
      +
    • Biçem sabittir. Günlük kayıt biçemi çalışma anında değiştirilemez.
    • +
    • Veriyi yazamadığı takdirde çocuk süreç beklemeksizin çıkar ve + (CoreDumpDirectory + yapılandırmasına bağlı olarak) bir core dosyası dökümler.
    • +
    + +

    Dağıtımın support dizininde bulunan + check_forensic betiği adli günlük dosyalarının + değerlendirilmesinde yardımcı olabilir.

    +
    +Apache Günlük Dosyaları +mod_log_config + +
    Adli Günlük Biçemi +

    Her istek günlüğe iki defa kaydedilir. İlki, işlemin başlangıcında + (yani, başlıklar alındıktan hemen sonra), ikincisi ise istek işlem + gördükten sonra normal günlüklemenin yapıldığı sırada yapılır.

    + +

    Her isteği betimlemek için eşsiz bir istek kimliği atanır. Bu adli + kimliğin normal günlüğe de yazılması istenirse bu + %{forensic-id}n biçem dizgesi ile yapılabilir. + mod_unique_id kullanılıyorsa, onun ürettiği kimlik + kullanılır.

    + +

    İlk satır günlüğe, adli kimliği, istek satırını ve alınan tüm + başlıkları boru karakterleri (|) ile ayrılmış olarak + kaydeder. Aşağıda bir örneğe yer verilmiştir (hepsi bir satırdadır):

    + + + +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif + HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11; + U; Linux i686; en-US; rv%3a1.6) Gecko/20040216 + Firefox/0.8|Accept:image/png, etc... + + +

    Başlangıçtaki artı imi bu günlük satırının istekle ilgili ilk günlük + kaydı olduğunu belirtir. İkinci satırda bunun yerini bir eksi imi + alır:

    + + + -yQtJf8CoAB4AAFNXBIEAAAAA + + +

    check_forensic betiği komut satırı argümanı olarak günlük + dosyasının ismini alır. Bu +/- kimlik + çiftlerine bakarak tamamlanmamış istekler varsa bunlar hakkında + uyarır.

    +
    + +
    Güvenlik Kaygıları +

    Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı + dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde + güvenliğinizden nasıl feragat etmiş olacağınız güvenlik ipuçları + belgesinde açıklanmıştır.

    + +

    Günlük dosyaları Authorization: başlıklarının içeriği (örn, + parolalar) gibi hassas veriler içerebilir, bu bakımdan sunucuyu başlatan + kullanıcı dışında hiç kimse bu dosyaları okuyamamalıdır.

    +
    + + +ForensicLog +Adli günlük için dosya ismini belirler. +ForensicLog dosya-adı|borulu-süreç +server configvirtual host + + + +

    ForensicLog yönergesi adli inceleme için + sunucuya yapılan istekleri günlüğe kaydetmekte kullanılır. Her günlük + girdisine, normal CustomLog yönergesinde kullanılarak istekle + ilişkilendirilebilen eşsiz bir kimlik atanır. + mod_log_forensic modülü, aktarım günlüğünün biçem + dizgesinde %{forensic-id}n şeklinde kullanılmak üzere + forensic-id adı verilen bir dizgecik oluşturur.

    + +

    Günlüğün yazılacağı yeri belirleyen argüman şu iki değerden birini + alabilir:

    + +
    +
    dosya-adı
    +
    ServerRoot yönergesinin + değerine göreli bir dosya ismi.
    + +
    borulu-süreç
    +
    "|" boru karakteri ile öncelenmiş olarak günlük + bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut + satırı). Program adının ServerRoot yönergesinin değerine göre belirtildiği + varsayılır. + + Güvenlik: +

    Bir borulu süreç kullanılmışsa, süreç httpd’yi + başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından + başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak + programın güvenilir olması veya daha az yetkili bir kullanıcıya geçiş + yapması önemlidir.

    +
    + + Bilginize +

    Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı + platformlarda bile yapılandırma dosyasında bu amaçla normal bölü + çizgilerini kullanmaya özen gösterilmelidir.

    +
    +
    +
    +
    + +
    diff --git a/docs/manual/mod/mod_logio.html b/docs/manual/mod/mod_logio.html index 225d49bf582..0eb2b070923 100644 --- a/docs/manual/mod/mod_logio.html +++ b/docs/manual/mod/mod_logio.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_logio.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_logio.html.ja.euc-jp +URI: mod_logio.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_logio.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_logio.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_logio.html.en b/docs/manual/mod/mod_logio.html.en index d075f2b829c..2ebf1407e7f 100644 --- a/docs/manual/mod/mod_logio.html.en +++ b/docs/manual/mod/mod_logio.html.en @@ -1,34 +1,42 @@ - -mod_logio - Apache HTTP Server +mod_logio - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_logio

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_logio

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    - -
    Description:Logging of input and output bytes per request
    Status:Extension
    Module Identifier:logio_module
    Source File:mod_logio.c
    +Module Identifier:logio_module +Source File:mod_logio.c

    Summary

    @@ -41,18 +49,23 @@

    This module requires mod_log_config.

    +
    When KeepAlive connections are used with SSL, the overhead of the SSL + handshake is reflected in the byte count of the first request on the + connection. When per-directory SSL renegotiation occurs, the bytes are associated + with the request that triggered the renegotiation.
    +
    -

    Directives

    -

    This module provides no - directives.

    -

    Topics

    +

    Topics

    See also

    +

    Directives

    +

    This module provides no + directives.

    +

    See also

    +
    top

    Custom Log Formats

    @@ -84,8 +97,30 @@

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_logio.html.ja.euc-jp b/docs/manual/mod/mod_logio.html.ja.euc-jp deleted file mode 100644 index 13ac519ff50..00000000000 --- a/docs/manual/mod/mod_logio.html.ja.euc-jp +++ /dev/null @@ -1,91 +0,0 @@ - - - -mod_logio - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_logio

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥ÈËè¤ËÆþÎϥХ¤¥ȿô¤ȽÐÎϥХ¤¥ȿô¤Ȥò¥í¥®¥ó¥°
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:logio_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_logio.c
    -

    ³µÍ×

    - - -

    ¤³¤Υ⥸¥塼¥ë¤ϥꥯ¥¨¥¹¥Ȥ´¤Ȥ˼õ¤±¼è¤ä¿¥Х¤¥ȿô¤È - Á÷¿®¤·¤¿¥Х¤¥ȿô¤Υí¥®¥󥰤ò¹Ԥʤ¦µ¡ǽ¤òÄ󶡤·¤ޤ¹¡£ - µ­Ͽ¤µ¤ì¤ë¿ô»ú¤ϥꥯ¥¨¥¹¥ȤΥإåÀ¤ȥ쥹¥ݥ󥹤ÎËÜÂΤò - ȿ±Ǥ·¤¿¡¢¼ºݤ˥ͥåȥ¥¯¤Ǽõ¤±¼è¤ä¿¥Х¤¥ÈÃͤǤ¹¡£ - ÆþÎϤǤÏ SSL/TLS ¤ÎÁ°¤ˡ¢½ÐÎϤǤÏ SSL/TLS ¤θå¤˿ô¤¨¤ë¤Τǡ¢ - ¿ô»ú¤ϰŹæ¤ˤè¤ëÊѲ½¤âÀµ¤·¤¯ȿ±Ǥ·¤¿¤â¤Τˤʤê¤ޤ¹¡£

    - -

    ¤³¤Υ⥸¥塼¥ë¤λÈÍѤˤÏ mod_log_config ¥⥸¥塼¥뤬 - ɬÍפǤ¹¡£

    - -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    -

    ¤³¤Υ⥸¥塼¥ë¤˥ǥ£¥쥯¥ƥ£¥֤Ϥ¢¤ê¤ޤ»¤ó¡£

    -

    ¥ȥԥå¯

    -

    »²¾È

    -
    -
    top
    -
    -

    ¥«¥¹¥¿¥à¥í¥°½ñ¼°

    - - -

    ¤³¤Υ⥸¥塼¥ë¤Ͽ·¤·¤¤¥í¥®¥ó¥°Íѥǥ£¥쥯¥ƥ£¥֤ò²ä¨¤ޤ¹¡£ - ¥ꥯ¥¨¥¹¥ȼ«¿ȤÎÆÃħ¤ϥե©¡¼¥ޥåÈʸ»úÎó¤ˡ¢°ʲ¼¤ÎÍͤËÃִ¹¤µ¤ì¤ë - "%" ¥ǥ£¥쥯¥ƥ£¥֤ò - Æþ¤ì¤뤳¤Ȥǥí¥°¼ý½¸¤µ¤ì¤ޤ¹:

    - - - - - - - -
    ¥ե©¡¼¥ޥåÈʸ»úÎóÀâÌÀ
    %...I¥ꥯ¥¨¥¹¥ȤȥإåÀ¤ò´ޤࡢ¼õ¤±¼è¤ä¿¥Х¤¥ȿô¡£ - 0 ¤ˤϤʤé¤ʤ¤¡£
    %...O¥إåÀ¤ò´ޤࡢÁ÷¿®¤·¤¿¥Х¤¥ȿô¡£0 ¤ˤϤʤé¤ʤ¤¡£
    - -

    Ä̾¤³¤ε¡ǽ¤ϰʲ¼¤ÎÍͤ˻ÈÍѤµ¤ì¤ޤ¹:

    - -
    -
    ·ë¹ç I/O ¥í¥°½ñ¼°:
    -
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" - \"%{User-agent}i\" %I %O"
    -
    -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_logio.html.ja.utf8 b/docs/manual/mod/mod_logio.html.ja.utf8 new file mode 100644 index 00000000000..843d227c226 --- /dev/null +++ b/docs/manual/mod/mod_logio.html.ja.utf8 @@ -0,0 +1,125 @@ + + + + + +mod_logio - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_logio

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:リクエスト毎に入力バイト数と出力バイト数とをロギング
    ステータス:Extension
    モジュール識別子:logio_module
    ソースファイル:mod_logio.c
    +

    概要

    + + +

    このモジュールはリクエストごとに受け取ったバイト数と + 送信したバイト数のロギングを行なう機能を提供します。 + 記録される数字はリクエストのヘッダとレスポンスの本体を + 反映した、実際にネットワークで受け取ったバイト値です。 + 入力では SSL/TLS の前に、出力では SSL/TLS の後に数えるので、 + 数字は暗号による変化も正しく反映したものになります。

    + +

    このモジュールの使用には mod_log_config モジュールが + 必要です。

    + +
    +

    トピック

    +

    ディレクティブ

    +

    このモジュールにディレクティブはありません。

    +

    参照

    +
    +
    top
    +
    +

    カスタムログ書式

    + + +

    このモジュールは新しいロギング用ディレクティブを加えます。 + リクエスト自身の特徴はフォーマット文字列に、以下の様に置換される + "%" ディレクティブを + 入れることでログ収集されます:

    + + + + + + + +
    フォーマット文字列説明
    %...Iリクエストとヘッダを含む、受け取ったバイト数。 + 0 にはならない。
    %...Oヘッダを含む、送信したバイト数。0 にはならない。
    + +

    通常、この機能は以下の様に使用されます:

    + +
    +
    結合 I/O ログ書式:
    +
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\" %I %O"
    +
    +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_logio.html.ko.euc-kr b/docs/manual/mod/mod_logio.html.ko.euc-kr index 1282ae71289..7cada386877 100644 --- a/docs/manual/mod/mod_logio.html.ko.euc-kr +++ b/docs/manual/mod/mod_logio.html.ko.euc-kr @@ -1,30 +1,40 @@ - -mod_logio - Apache HTTP Server +mod_logio - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_logio

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_logio

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -42,16 +52,16 @@ ÇʿäÇϴÙ.

    -

    Áö½þîµé

    -

    ÀÌ ¸ðµ⿡´Â Áö½þ ¾ø½À´ϴÙ.

    -

    ÁÖÁ¦

    +

    ÁÖÁ¦

    Âü°í

    +

    Áö½þîµé

    +

    ÀÌ ¸ðµ⿡´Â Áö½þ ¾ø½À´ϴÙ.

    +

    Âü°í

    +
    top

    »ç¿ëÀÚÁ¤ÀÇ ·α× Çü½Ä

    @@ -85,8 +95,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_logio.html.tr.utf8 b/docs/manual/mod/mod_logio.html.tr.utf8 new file mode 100644 index 00000000000..8d9a0d9f8a3 --- /dev/null +++ b/docs/manual/mod/mod_logio.html.tr.utf8 @@ -0,0 +1,125 @@ + + + + + +mod_logio - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_logio

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    +
    ¼³¸í:¿äû´ç ÀÔÃâ·Â ¹ÙÀÌƮ¼ö¸¦ ±â·Ï
    »óÅÂ:Extension
    ¸ðµâ¸í:logio_module
    + + +
    Açıklama:Her isteğin girdi ve çıktı uzunluklarının günlüklenmesi. +
    Durum:Eklenti
    Modül Betimleyici:logio_module
    Kaynak Dosyası:mod_logio.c
    +

    Özet

    + + +

    Bu modül her istekte alınan ve gönderilen bayt sayısının günlüklenmesini + sağlar. Sayılar, istekte ve yanıtta yer alan başlıklar ve gövdeleri + hesaba dahil ederek ağ üzerinde gerçekte gidip gelen bayt sayısını + gösterir. Bayt sayımı, girdide SSL/TLS öncesinde ve çıktıda SSL/TLS + sonrasında yapılır, böylece sayıların, şifrelemeyle herhangi bir + değişikliği doğru olarak yansıtması sağlanmış olur.

    + +

    Bu modül mod_log_config modülünü gerektirir.

    + +
    SSL ile KeepAlive bağlantılar kullanıldığında, SSL + uzlaşımının ek yükü, bağlantı üzerinden yapılan ilk isteğin bayt sayısını + yansıtır. Her dizin için yeniden uzlaşım gerektiği takdirde bayt sayısı + yeniden uzlaşımı tetikleyen istekle ilişkilendirilir.
    + +
    +

    Konular

    +

    Yönergeler

    +

    Bu modül yönerge içermez.

    +

    Ayrıca bakınız:

    +
    +
    top
    +
    +

    Özel Günlük Biçemleri

    + + +

    İsteğin belirgin özellikleri için, biçem dizgesinde yer alan % imli + biçem belirteçlerinin yerine günlük dosyasında değerleri yazılır. Bu + modül iki yeni biçem belirteci ekler:

    + + + + + + + +
    Biçem BelirteciAçıklama
    %...Iİstek gövdesi ve başlıklar dahil alınan bayt sayısı; sıfır + olamaz.
    %...OBaşlıklar dahil gönderilen bayt sayısı; sıfır olamaz.
    + +

    Genel olarak, işlevsellik şöyle kullanılır:

    + +
    +
    Birleşik G/Ç günlükleme biçemi:
    +
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\" %I %O"
    +
    +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_logio.xml b/docs/manual/mod/mod_logio.xml index 17dee1da718..905b1eab205 100644 --- a/docs/manual/mod/mod_logio.xml +++ b/docs/manual/mod/mod_logio.xml @@ -4,12 +4,12 @@ + + - + mod_logio /mod/ .. en - ja - ko + ja + ko + tr diff --git a/docs/manual/mod/mod_logio.xml.tr b/docs/manual/mod/mod_logio.xml.tr new file mode 100644 index 00000000000..be52679c134 --- /dev/null +++ b/docs/manual/mod/mod_logio.xml.tr @@ -0,0 +1,85 @@ + + + + + + + + + + +mod_logio +Her isteğin girdi ve çıktı uzunluklarının günlüklenmesi. + +Extension +mod_logio.c +logio_module + + + +

    Bu modül her istekte alınan ve gönderilen bayt sayısının günlüklenmesini + sağlar. Sayılar, istekte ve yanıtta yer alan başlıklar ve gövdeleri + hesaba dahil ederek ağ üzerinde gerçekte gidip gelen bayt sayısını + gösterir. Bayt sayımı, girdide SSL/TLS öncesinde ve çıktıda SSL/TLS + sonrasında yapılır, böylece sayıların, şifrelemeyle herhangi bir + değişikliği doğru olarak yansıtması sağlanmış olur.

    + +

    Bu modül mod_log_config modülünü gerektirir.

    + + SSL ile KeepAlive bağlantılar kullanıldığında, SSL + uzlaşımının ek yükü, bağlantı üzerinden yapılan ilk isteğin bayt sayısını + yansıtır. Her dizin için yeniden uzlaşım gerektiği takdirde bayt sayısı + yeniden uzlaşımı tetikleyen istekle ilişkilendirilir. + +
    + +mod_log_config +Apache Günlük Dosyaları + +
    +Özel Günlük Biçemleri + +

    İsteğin belirgin özellikleri için, biçem dizgesinde yer alan % imli + biçem belirteçlerinin yerine günlük dosyasında değerleri yazılır. Bu + modül iki yeni biçem belirteci ekler:

    + + + + + + + + + + +
    Biçem BelirteciAçıklama
    %...Iİstek gövdesi ve başlıklar dahil alınan bayt sayısı; sıfır + olamaz.
    %...OBaşlıklar dahil gönderilen bayt sayısı; sıfır olamaz.
    + +

    Genel olarak, işlevsellik şöyle kullanılır:

    + +
    +
    Birleşik G/Ç günlükleme biçemi:
    +
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\" %I %O"
    +
    +
    + +
    diff --git a/docs/manual/mod/mod_mem_cache.html b/docs/manual/mod/mod_mem_cache.html index 65ba497832b..987152e84a7 100644 --- a/docs/manual/mod/mod_mem_cache.html +++ b/docs/manual/mod/mod_mem_cache.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_mem_cache.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_mem_cache.html.ja.euc-jp +URI: mod_mem_cache.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_mem_cache.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_mem_cache.html.en b/docs/manual/mod/mod_mem_cache.html.en index 12d5b36ec33..8c3325b7c6f 100644 --- a/docs/manual/mod/mod_mem_cache.html.en +++ b/docs/manual/mod/mod_mem_cache.html.en @@ -1,25 +1,32 @@ - -mod_mem_cache - Apache HTTP Server +mod_mem_cache - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_mem_cache

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_mem_cache

    Available Languages:  en  |  ja  | @@ -27,8 +34,8 @@

    - -
    Description:Content cache keyed to URIs
    Status:Extension
    Module Identifier:mem_cache_module
    Source File:mod_mem_cache.c
    +Module Identifier:mem_cache_module +Source File:mod_mem_cache.c

    Summary

    This module requires the service of mod_cache. It acts as a support module for mod_cache and provides a memory based storage manager. @@ -39,6 +46,14 @@

    Content is stored in and retrieved from the cache using URI based keys. Content with access protection is not cached.

    + +

    Note

    In most cases mod_disk_cache + should be the preferred choice. This is explained further in the Caching Guide. In particular, + this module's cache is per-process, which can be partially + mitigated by configuring threaded MPMs to use fewer child processes + via configuration of larger values for ThreadsPerChild. This module's cache is + also limited to storing a single variant (see HTTP Vary: header) of each + resource in the cache.

    Directives

    +
    top

    MCacheMaxObjectCount Directive

    @@ -151,7 +166,7 @@ before declaring the response uncacheable Description:The minimum size (in bytes) of a document to be allowed in the cache Syntax:MCacheMinObjectSize bytes -Default:MCacheMinObjectSize 0 +Default:MCacheMinObjectSize 1 Context:server config Status:Extension Module:mod_mem_cache @@ -230,7 +245,28 @@ KBytes

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_mem_cache.html.ja.euc-jp b/docs/manual/mod/mod_mem_cache.html.ja.euc-jp deleted file mode 100644 index f07530fa02d..00000000000 --- a/docs/manual/mod/mod_mem_cache.html.ja.euc-jp +++ /dev/null @@ -1,234 +0,0 @@ - - - -mod_mem_cache - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_mem_cache

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:URI ¤򥭡¼¤ˤ·¤¿¥³¥ó¥ƥó¥ĤΥ­¥ã¥å·¥å
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:mem_cache_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_mem_cache.c
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤Ï mod_cache ¤òɬÍפȤ·¤ޤ¹¡£ - ¤³¤ì¤Ï mod_cache ¤Υµ¥ݡ¼¥ȥ⥸¥塼¥ë¤Ȥ·¤Æ - ưº¡¢¥á¥â¥ê¤ò»ÈÍѤ·¤¿¥¹¥ȥ졼¥¸´ÉÍýµ¡¹½¤òÄ󶡤·¤ޤ¹¡£ - mod_mem_cache ¤ÏÆó¤ĤΥ⡼¥ɤΤɤÁ¤餫¤Çưº¤ë¤褦¤Ë - ÀßÄê¤Ǥ­¤ޤ¹: ¥ե¡¥¤¥뵭½һҤΥ­¥ã¥å·¥夫¥ҡ¼¥×Ãæ¤Υª¥֥¸¥§¥¯¥ȤÎ - ¥­¥ã¥å·¥å¤Ǥ¹¡£¥í¡¼¥«¥ë¤ÇÀ¸À®¤µ¤줿¥³¥ó¥ƥó¥ĤËÂФ·¤ƥ­¥ã¥å·¥夹¤ë¤Ȥ­¤䡢 - mod_proxy ¤ò»ȤäÆ ProxyPass (¤Ĥޤê¥ê¥С¼¥¹¥ץí¥­¥·¸þ¤±) ¤ËÀßÄꤷ¤¿¤Ȥ­¤ΥХ寥¨¥ó¥ɥµ¡¼¥ФΥ³¥ó¥ƥó¥ĤËÂФ·¤Æ - ¥­¥ã¥å·¥å¤򤹤ë¤Ȥ­¤ˡ¢¤¿¤¤¤ؤó¸ú²ÌŪ¤Ǥ¹¡£

    - -

    ¥³¥ó¥ƥó¥ĤΥ­¥ã¥å·¥å¤ؤÎÊݸ¤ȼèÆÀ¤Ï URI ¤˴ð¤Ť¤¤¿¥­¡¼¤¬»Ȥï¤ì¤ޤ¹¡£ - ¥¢¥¯¥»¥¹Êݸî¤Τ«¤±¤é¤ì¤Ƥ¤¤륳¥ó¥ƥó¥Ĥϥ­¥ã¥å·¥夵¤ì¤ޤ»¤ó¡£

    -
    - - -
    top
    -

    MCacheMaxObjectCount ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤륪¥֥¸¥§¥¯¥ȤκÇÂç¿ô
    ¹½ʸ:MCacheMaxObjectCount value
    ¥ǥե©¥ë¥È:MCacheMaxObjectCount 1009
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_mem_cache
    -

    MCacheMaxObjectCount ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¥­¥ã¥å·¥夵¤ì¤륪¥֥¸¥§¥¯¥ȤκÇÂç¿ô¤ò»ØÄꤷ¤ޤ¹¡£ - ¤³¤ÎÃͤϥϥå·¥å¥ơ¼¥֥ë¤òºîÀ®¤¹¤ë¤Ȥ­¤˻Ȥï¤ì¤ޤ¹¡£ - ¿·¤·¤¤¥ª¥֥¸¥§¥¯¥ȤòÁÞÆþ¤¹¤ë¤Ȥ­¤ˡ¢¥ª¥֥¸¥§¥¯¥ȤκÇÂç¿ô¤Ë - 㤷¤Ƥ·¤ޤäƤ¤¤ë¤Ȥ­¡¢¿·¤·¤¤¥ª¥֥¸¥§¥¯¥Ȥ򥭥ã¥å·¥å¤Ǥ­¤ë¤褦¤ˡ¢ - ¥ª¥֥¸¥§¥¯¥Ȥò°ì¤ľõ¤ޤ¹¡£¥ª¥֥¸¥§¥¯¥ȤÏ - MCacheRemovalAlgorithm - ¤ǻØÄꤵ¤줿¥¢¥르¥ꥺ¥à¤˽¾¤äƺï½ü¤µ¤ì¤ޤ¹¡£

    - -

    Îã

    - MCacheMaxObjectCount 13001 -

    - -
    -
    top
    -

    MCacheMaxObjectSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¤ËÊݴɤǤ­¤ë¥ɥ­¥å¥á¥ó¥ȤκÇÂ祵¥¤¥º (¥Х¤¥È)
    ¹½ʸ:MCacheMaxObjectSize bytes
    ¥ǥե©¥ë¥È:MCacheMaxObjectSize 10000
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_mem_cache
    -

    MCacheMaxObjectSize ¤ϥɥ­¥å¥á¥ó¥Ȥò - ¥­¥ã¥å·¥夹¤뤫¤ɤ¦¤«¤òȽÄꤹ¤롢ºÇÂç¤Υµ¥¤¥º¤ò¥Х¤¥ȿô¤ÇÀßÄꤷ¤ޤ¹¡£

    - -

    Îã

    - MCacheMaxObjectSize 6400000 -

    - -

    Ãí

    -

    MCacheMaxObjectSize ¤ÎÃͤÏ MCacheMinObjectSize - ¤ǻØÄꤷ¤¿Ãͤè¤ê¤âÂ礭¤¯¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    - -
    -
    top
    -

    MCacheMaxStreamingBuffer ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥¹¥ȥ꡼¥व¤ì¤Ƥ¤¤ë±þÅú¤򥭥ã¥å·¥åÉÔǽ¤ȷèÄꤹ¤ë¤ޤǤË -¥á¥â¥ê¤˥Хåե¡¤¹¤ëºÇÂçÎÌ
    ¹½ʸ:MCacheMaxStreamingBuffer size_in_bytes
    ¥ǥե©¥ë¥È:MCacheMaxStreamingBuffer of 100000 ¤« MCacheMaxObjectSize ¤ξ¯¤¤Êý
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_mem_cache
    -

    MCacheMaxStreamingBuffer ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¥µ¥¤¥º¤¬Â礭¤¹¤®¤ƥ­¥ã¥å·¥å¤Ǥ­¤ʤ¤¤ÈȽÃǤ¹¤ë¤ޤǤΡ¢ - ¥¹¥ȥ꡼¥à±þÅú¤ΥХåե¡¤Τ¿¤á¤κÇÂç¥Х¤¥ȿô¤ò»ØÄꤷ¤ޤ¹¡£ - ¥¹¥ȥ꡼¥à±þÅú¤Ȥϡ¢¥³¥ó¥ƥó¥ĤÎÁ´ÂΤ¬¤¹¤°¤ˤÏÆÀ¤é¤줺¡¢ - Content-Length ¤¬¤狼¤é¤ʤ¤±þÅú¤ò»ؤ·¤ޤ¹¡£ - ¥¹¥ȥ꡼¥à±þÅú¤ò¹Ԥʤ¦¤褦¤ʤâ¤Τˤϥץí¥­¥·¤µ¤줿±þÅú¤䡢 - CGI ¥¹¥¯¥ê¥ץȤνÐÎϤʤɤ¬¤¢¤ê¤ޤ¹¡£¥ǥե©¥ë¥ȤǤϥ¹¥ȥ꡼¥à¤αþÅú¤Ï - Content-Length ¤¬¤ʤ¤¸¤ꥭ¥ã¥å·¥å¤µ¤ì¤ޤ»¤ó¡£ - ¤³¤Τ褦¤Êưºî¤ˤʤäƤ¤¤ëÍýͳ¤ϡ¢·ë¶ɥ­¥ã¥å·¥å¤˼ý¤ޤ꤭¤é¤ʤ¤¤È - ȽÃǤ¹¤뤳¤ȤˤʤäƤ·¤ޤ¦¤褦¤ʡ¢¥µ¥¤¥º¤ÎÂ礭¤ʱþÅú¤ΥХåե¡¥ê¥󥰤ˡ¢ - ÂçÎ̤Υá¥â¥꤬¾ÃÈ񤵤ì¤ë¤ΤòÈ򤱤뤿¤á¤Ǥ¹¡£ - MCacheMaxStreamingBuffer ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¦¤ȡ¢ - Content-Length ¤ò´ޤޤʤ¤±þÅú¤ËÂФ·¤ƻØÄꤵ¤줿ºÇÂçÎ̤ޤÇ - ¥Хåե¡¤¹¤ë¤褦¤ˤǤ­¤ޤ¹¡£¥Хåե¡¤ò»Ȥ¤Àڤë¤ȡ¢¥Хåե¡Ãæ¤Î - ¥³¥ó¥ƥó¥ĤϼΤƤé¤졢¥­¥ã¥å·¥åưºî¤òÃæ»ߤ·¤ޤ¹¡£

    - -

    Ãí:

    -

    MCacheMaxStreamingBuffer ¤ËÈóÎí¤ÎÃͤò - »ȤäƤ⡢¥¯¥饤¥¢¥ó¥ȤؤαþÅú¤ÎžÁ÷¤ËÆäËÃٱä¤ÏȯÀ¸¤·¤ޤ»¤ó¡£ - mod_mem_cache ¤ϥ¹¥ȥ꡼¥ॳ¥ó¥ƥó¥ĤÎÃÇÊҤò - ¥Хåե¡¤˥³¥ԡ¼¤·¤¿¸塢¨º¤ˡ¢¤½¤ÎÉôʬ¤򥯥饤¥¢¥ó¥ȤؤÎÇÛÁ÷¤Î - ¼¡ÃʤνÐÎϥե£¥륿¤ËÁ÷¤ê¤ޤ¹¡£

    -
    - -

    - # Enable caching of streamed responses up to 64KB:
    - MCacheMaxStreamingBuffer 65536 -

    - -
    -
    top
    -

    MCacheMinObjectSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤ë¥ɥ­¥å¥á¥ó¥ȤκǾ®¥µ¥¤¥º (¥Х¤¥È)
    ¹½ʸ:MCacheMinObjectSize bytes
    ¥ǥե©¥ë¥È:MCacheMinObjectSize 0
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_mem_cache
    -

    MCacheMinObjectSize ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥ɥ­¥å¥á¥ó¥Ȥò - ¥­¥ã¥å·¥夹¤뤫¤ɤ¦¤«¤òȽÄꤹ¤롢ºǾ®¤Υµ¥¤¥º¤ò¥Х¤¥ȿô¤ÇÀßÄꤷ¤ޤ¹¡£

    - -

    Îã

    - MCacheMinObjectSize 10000 -

    - -
    -
    top
    -

    MCacheRemovalAlgorithm ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥夫¤éºï½ü¤¹¤ë¥ɥ­¥å¥á¥ó¥ȤòÁª¤֤¿¤á¤Υ¢¥르¥ꥺ¥à
    ¹½ʸ:MCacheRemovalAlgorithm LRU|GDSF
    ¥ǥե©¥ë¥È:MCacheRemovalAlgorithm GDSF
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_mem_cache
    -

    MCacheRemovalAlgorithm ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¥­¥ã¥å·¥夫¤éºï½ü¤¹¤ë¥ɥ­¥å¥á¥ó¥ȤòÁªÂ򤹤뤿¤á¤Υ¢¥르¥ꥺ¥à¤ò - »ØÄꤷ¤ޤ¹¡£ÁªÂò»è¤ÏÆó¤Ĥ¢¤ê¤ޤ¹:

    - -
    -
    LRU (Least Recently Used)
    -
    LRU °ìÈÖŤ¯¥¢¥¯¥»¥¹¤µ¤ì¤Ƥ¤¤ʤ¤¥ɥ­¥å¥á¥ó¥Ȥòºï½ü¤·¤ޤ¹¡£ -
    - -
    GDSF (GreadyDual-Size)
    -
    GDSF ¤ϥ­¥ã¥å·¥å¥ߥ¹¤Υ³¥¹¥Ȥȥɥ­¥å¥á¥ó¥ȤΥµ¥¤¥º¤ò¤â¤Ȥˡ¢ - ¥ɥ­¥å¥á¥ó¥ȤΥ­¥ã¥å·¥å¤ËÂФ·¤ÆͥÀèÅ٤ò¤Ĥ±¤ޤ¹¡£ - ͥÀèÅ٤ΰìÈÖÄ㤤¥ɥ­¥å¥á¥ó¥Ȥ¬ºǽé¤˺ï½ü¤µ¤ì¤ޤ¹¡£
    -
    - -

    Îã

    - MCacheRemovalAlgorithm GDSF
    - MCacheRemovalAlgorithm LRU -

    - -
    -
    top
    -

    MCacheSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥­¥ã¥å·¥å¤˻Ȥï¤ì¤ë¥á¥â¥ê¤κÇÂçÎ̤ò¥Х¤¥Èñ°̤ǻØÄê
    ¹½ʸ:MCacheSize KBytes
    ¥ǥե©¥ë¥È:MCacheSize 100
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_mem_cache
    -

    MCacheSize ¥ǥ£¥쥯¥ƥ£¥֤ϥ­¥ã¥å·¥å¤Ë - »Ȥï¤ì¤ë¥á¥â¥ê¤ÎÂ礭¤µ¤򥭥í¥Х¤¥È (1024 ¥Х¤¥Èñ°Ì) ¤ÇÀßÄꤷ¤ޤ¹¡£ - ¿·¤·¤¤¥ª¥֥¸¥§¥¯¥Ȥ򥭥ã¥å·¥å¤ËÁÞÆþ¤¹¤뤳¤Ȥˤʤꡢ¥ª¥֥¸¥§¥¯¥ȤÎ - ¥µ¥¤¥º¤¬»Ĥê¤Υá¥â¥ê¤è¤êÂ礭¤¤¾ì¹ç¤ϡ¢¤½¤ο·¤·¤¤¥ª¥֥¸¥§¥¯¥ȤÎÁÞÆþ¤¬ - ²Äǽ¤ˤʤë¤ޤǡ¢¸Ť¤¥ª¥֥¸¥§¥¯¥Ȥ¬ºï½ü¤µ¤ì¤Ƥ¤¤­¤ޤ¹¡£ - ¥ª¥֥¸¥§¥¯¥ȤÏ MCacheRemovalAlgorithm - ¤ǻØÄꤷ¤¿¥¢¥르¥ꥺ¥à¤˽¾¤äƺï½ü¤µ¤ì¤ޤ¹¡£

    - -

    Îã

    - MCacheSize 700000 -

    - -

    Ãí

    -

    MCacheSize ¤ÎÃͤÏ MCacheMaxObjectSize ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄꤷ¤¿Ãͤè¤ê - Â礭¤¯¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_mem_cache.html.ja.utf8 b/docs/manual/mod/mod_mem_cache.html.ja.utf8 new file mode 100644 index 00000000000..c18f773d5a3 --- /dev/null +++ b/docs/manual/mod/mod_mem_cache.html.ja.utf8 @@ -0,0 +1,266 @@ + + + + + +mod_mem_cache - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_mem_cache

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:URI をキーにしたコンテンツのキャッシュ
    ステータス:Extension
    モジュール識別子:mem_cache_module
    ソースファイル:mod_mem_cache.c
    +

    概要

    + +

    このモジュールは mod_cache を必要とします。 + これは mod_cache のサポートモジュールとして + 動作し、メモリを使用したストレージ管理機構を提供します。 + mod_mem_cache は二つのモードのどちらかで動作するように + 設定できます: ファイル記述子のキャッシュかヒープ中のオブジェクトの + キャッシュです。ローカルで生成されたコンテンツに対してキャッシュするときや、 + mod_proxy を使って ProxyPass (つまりリバースプロキシ向け) に設定したときのバックエンドサーバのコンテンツに対して + キャッシュをするときに、たいへん効果的です。

    + +

    コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 + アクセス保護のかけられているコンテンツはキャッシュされません。

    +
    + + +
    top
    +

    MCacheMaxObjectCount ディレクティブ

    + + + + + + + +
    説明:キャッシュに保管されるオブジェクトの最大数
    構文:MCacheMaxObjectCount value
    デフォルト:MCacheMaxObjectCount 1009
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_mem_cache
    +

    MCacheMaxObjectCount ディレクティブは + キャッシュされるオブジェクトの最大数を指定します。 + この値はハッシュテーブルを作成するときに使われます。 + 新しいオブジェクトを挿入するときに、オブジェクトの最大数に + 達してしまっているとき、新しいオブジェクトをキャッシュできるように、 + オブジェクトを一つ消去します。オブジェクトは + MCacheRemovalAlgorithm + で指定されたアルゴリズムに従って削除されます。

    + +

    例

    + MCacheMaxObjectCount 13001 +

    + +
    +
    top
    +

    MCacheMaxObjectSize ディレクティブ

    + + + + + + + +
    説明:キャッシュに保管できるドキュメントの最大サイズ (バイト)
    構文:MCacheMaxObjectSize bytes
    デフォルト:MCacheMaxObjectSize 10000
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_mem_cache
    +

    MCacheMaxObjectSize はドキュメントを + キャッシュするかどうかを判定する、最大のサイズをバイト数で設定します。

    + +

    例

    + MCacheMaxObjectSize 6400000 +

    + +

    注

    +

    MCacheMaxObjectSize の値は MCacheMinObjectSize + で指定した値よりも大きくなければなりません。

    +
    + +
    +
    top
    +

    MCacheMaxStreamingBuffer ディレクティブ

    + + + + + + + +
    説明:ストリームされている応答をキャッシュ不能と決定するまでに +メモリにバッファする最大量
    構文:MCacheMaxStreamingBuffer size_in_bytes
    デフォルト:MCacheMaxStreamingBuffer of 100000 か MCacheMaxObjectSize の少い方
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_mem_cache
    +

    MCacheMaxStreamingBuffer ディレクティブは、 + サイズが大きすぎてキャッシュできないと判断するまでの、 + ストリーム応答のバッファのための最大バイト数を指定します。 + ストリーム応答とは、コンテンツの全体がすぐには得られず、 + Content-Length がわからない応答を指します。 + ストリーム応答を行なうようなものにはプロキシされた応答や、 + CGI スクリプトの出力などがあります。デフォルトではストリームの応答は + Content-Length がない限りキャッシュされません。 + このような動作になっている理由は、結局キャッシュに収まりきらないと + 判断することになってしまうような、サイズの大きな応答のバッファリングに、 + 大量のメモリが消費されるのを避けるためです。 + MCacheMaxStreamingBuffer ディレクティブを使うと、 + Content-Length を含まない応答に対して指定された最大量まで + バッファするようにできます。バッファを使い切ると、バッファ中の + コンテンツは捨てられ、キャッシュ動作を中止します。

    + +

    注:

    +

    MCacheMaxStreamingBuffer に非零の値を + 使っても、クライアントへの応答の転送に特に遅延は発生しません。 + mod_mem_cache はストリームコンテンツの断片を + バッファにコピーした後、即座に、その部分をクライアントへの配送の + 次段の出力フィルタに送ります。

    +
    + +

    + # Enable caching of streamed responses up to 64KB:
    + MCacheMaxStreamingBuffer 65536 +

    + +
    +
    top
    +

    MCacheMinObjectSize ディレクティブ

    + + + + + + + +
    説明:キャッシュに保管されるドキュメントの最小サイズ (バイト)
    構文:MCacheMinObjectSize bytes
    デフォルト:MCacheMinObjectSize 0
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_mem_cache
    +

    MCacheMinObjectSize ディレクティブは、ドキュメントを + キャッシュするかどうかを判定する、最小のサイズをバイト数で設定します。

    + +

    例

    + MCacheMinObjectSize 10000 +

    + +
    +
    top
    +

    MCacheRemovalAlgorithm ディレクティブ

    + + + + + + + +
    説明:キャッシュから削除するドキュメントを選ぶためのアルゴリズム
    構文:MCacheRemovalAlgorithm LRU|GDSF
    デフォルト:MCacheRemovalAlgorithm GDSF
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_mem_cache
    +

    MCacheRemovalAlgorithm ディレクティブは、 + キャッシュから削除するドキュメントを選択するためのアルゴリズムを + 指定します。選択肢は二つあります:

    + +
    +
    LRU (Least Recently Used)
    +
    LRU 一番長くアクセスされていないドキュメントを削除します。 +
    + +
    GDSF (GreadyDual-Size)
    +
    GDSF はキャッシュミスのコストとドキュメントのサイズをもとに、 + ドキュメントのキャッシュに対して優先度をつけます。 + 優先度の一番低いドキュメントが最初に削除されます。
    +
    + +

    例

    + MCacheRemovalAlgorithm GDSF
    + MCacheRemovalAlgorithm LRU +

    + +
    +
    top
    +

    MCacheSize ディレクティブ

    + + + + + + + +
    説明:キャッシュに使われるメモリの最大量をバイト単位で指定
    構文:MCacheSize KBytes
    デフォルト:MCacheSize 100
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_mem_cache
    +

    MCacheSize ディレクティブはキャッシュに + 使われるメモリの大きさをキロバイト (1024 バイト単位) で設定します。 + 新しいオブジェクトをキャッシュに挿入することになり、オブジェクトの + サイズが残りのメモリより大きい場合は、その新しいオブジェクトの挿入が + 可能になるまで、古いオブジェクトが削除されていきます。 + オブジェクトは MCacheRemovalAlgorithm + で指定したアルゴリズムに従って削除されます。

    + +

    例

    + MCacheSize 700000 +

    + +

    注

    +

    MCacheSize の値は MCacheMaxObjectSize ディレクティブで指定した値より + 大きくなければなりません。

    +
    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_mem_cache.html.ko.euc-kr b/docs/manual/mod/mod_mem_cache.html.ko.euc-kr index 467fc05ff13..440016d399a 100644 --- a/docs/manual/mod/mod_mem_cache.html.ko.euc-kr +++ b/docs/manual/mod/mod_mem_cache.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_mem_cache - Apache HTTP Server +mod_mem_cache - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_mem_cache

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_mem_cache

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | @@ -64,7 +71,7 @@

    +
    top

    MCacheMaxObjectCount Áö½þî

    @@ -231,7 +238,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_mem_cache.xml b/docs/manual/mod/mod_mem_cache.xml index 4007301eea5..b84ea4e5821 100644 --- a/docs/manual/mod/mod_mem_cache.xml +++ b/docs/manual/mod/mod_mem_cache.xml @@ -4,12 +4,12 @@ + + - + mod_mem_cache /mod/ .. en - ja + ja ko diff --git a/docs/manual/mod/mod_mime.html b/docs/manual/mod/mod_mime.html index 09e9184ea07..942dc58a0ee 100644 --- a/docs/manual/mod/mod_mime.html +++ b/docs/manual/mod/mod_mime.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_mime.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_mime.html.ja.euc-jp +URI: mod_mime.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_mime.html.en b/docs/manual/mod/mod_mime.html.en index 2fc226e8ec5..68ff88fbeb3 100644 --- a/docs/manual/mod/mod_mime.html.en +++ b/docs/manual/mod/mod_mime.html.en @@ -1,25 +1,32 @@ - -mod_mime - Apache HTTP Server +mod_mime - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_mime

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_mime

    Available Languages:  en  |  ja 

    @@ -29,13 +36,13 @@ and content (mime-type, language, character set and encoding) Status:Base -Module Identifier:mime_module -Source File:mod_mime.c +Module Identifier:mime_module +Source File:mod_mime.c

    Summary

    This module is used to associate various bits of "meta information" with files by their filename extensions. This - information relates the filename of the document to it's + information relates the filename of the document to its mime-type, language, character set and encoding. This information is sent to the browser, and participates in content negotiation, so the user's preferences are respected when @@ -46,7 +53,7 @@

    The directives AddCharset, AddEncoding, AddLanguage and AddType are all used to map file extensions onto the meta-information for that file. Respectively they set the character set, content-encoding, content-language, - and MIME-type (content-type) of documents. The directive TypesConfig is used to specify a + and MIME-type (content-type) of documents. The directive TypesConfig is used to specify a file which also maps extensions onto MIME types.

    In addition, mod_mime may define the handler and filters that originate and process @@ -72,7 +79,12 @@ their last modified date) to ensure that all visitors are receive the corrected content headers.

    -
    top

    Files with Multiple Extensions

    @@ -115,24 +122,25 @@ extensions is normally irrelevant. For example, if the file welcome.html.fr maps onto content type text/html and language French then the file - welcome.fr.html will map onto exactly the same information. - If more than one extension is given which maps onto the same - type of meta-information, then the one to the right will be - used, except for languages and content encodings. For example, if - .gif maps to the MIME-type image/gif and - .html maps to the MIME-type text/html, then the - file welcome.gif.html will be associated with the MIME-type - text/html.

    + welcome.fr.html will map onto exactly the same + information. If more than one extension is given that maps onto + the same type of meta-information, then the one to the right will + be used, except for languages and content encodings. For example, + if .gif maps to the MIME-type + image/gif and .html maps to the + MIME-type text/html, then the file + welcome.gif.html will be associated with the + MIME-type text/html.

    Languages and content encodings are treated accumulative, because one can assign - more than one language or encoding to a particular ressource. For example, + more than one language or encoding to a particular resource. For example, the file welcome.html.en.de will be delivered with Content-Language: en, de and Content-Type: text/html.

    Care should be taken when a file with multiple extensions - gets associated with both a MIME-type and a handler. This will - usually result in the request being by the module associated + gets associated with both a MIME-type and a handler. This will + usually result in the request being handled by the module associated with the handler. For example, if the .imap extension is mapped to the handler imap-file (from mod_imagemap) and the .html extension is @@ -142,10 +150,26 @@ When it is processed, the imap-file handler will be used, and so it will be treated as a mod_imagemap imagemap file.

    + +

    If you would prefer only the last dot-separated part of the + filename to be mapped to a particular piece of meta-data, then do + not use the Add* directives. For example, if you wish + to have the file foo.html.cgi processed as a CGI + script, but not the file bar.cgi.html, then instead + of using AddHandler cgi-script .cgi, use

    + +

    Configure handler based on final extension only

    + <FilesMatch \.cgi$> + + SetHandler cgi-script + + </FilesMatch> +

    +
    top

    Content encoding

    -

    A file of a particular MIME type can additionally be encoded a +

    A file of a particular MIME-type can additionally be encoded a particular way to simplify transmission over the Internet. While this usually will refer to compression, such as gzip, it can also refer to encryption, such a @@ -261,8 +285,11 @@ charset where the server returns one from several documents based on the client's charset preference.

    -

    The extension argument is case-insensitive, and can - be specified with or without a leading dot.

    +

    The extension argument is case-insensitive and can + be specified with or without a leading dot. Filenames may have multiple extensions and the + extension argument will be compared against each of + them.

    +

    See also

      @@ -313,8 +340,10 @@ type recent encodings, such as deflate should be specified without the x-.

      -

      The extension argument is case-insensitive, and can - be specified with or without a leading dot.

      +

      The extension argument is case-insensitive and can + be specified with or without a leading dot. Filenames may have multiple extensions and the + extension argument will be compared against each of + them.

    top
    @@ -343,8 +372,10 @@ handler

    Once that has been put into your httpd.conf file, any file containing the .cgi extension will be treated as a CGI program.

    -

    The extension argument is case-insensitive, and can - be specified with or without a leading dot.

    +

    The extension argument is case-insensitive and can + be specified with or without a leading dot. Filenames may have multiple extensions and the + extension argument will be compared against each of + them.

    See also

      @@ -373,11 +404,15 @@ later. directive. This mapping is merged over any already in force, overriding any mappings that already exist for the same extension.

      -

      If more than one filter is specified, they must be separated +

      If more than one filter is specified, they must be separated by semicolons in the order in which they should process the - content. Both the filter and extension arguments are - case-insensitive, and the extension may be specified with or - without a leading dot.

      + content. The filter is case-insensitive.

      + +

      The extension argument is case-insensitive and can + be specified with or without a leading dot. Filenames may have multiple extensions and the + extension argument will be compared against each of + them.

      +

      See also

        @@ -432,8 +467,10 @@ language

        documents with the extension .en would be treated as being en-us.

        -

        The extension argument is case-insensitive, and can - be specified with or without a leading dot.

        +

        The extension argument is case-insensitive and can + be specified with or without a leading dot. Filenames may have multiple extensions and the + extension argument will be compared against each of + them.

        See also

          @@ -471,9 +508,12 @@ later.

          If more than one filter is specified, they must be separated by semicolons in the order in which they should process the - content. Both the filter and extension arguments - are case-insensitive, and the extension may be specified with or - without a leading dot.

          + content. The filter argument is case-insensitive.

          + +

          The extension argument is case-insensitive and can + be specified with or without a leading dot. Filenames may have multiple extensions and the + extension argument will be compared against each of + them.

          See also

            @@ -493,13 +533,14 @@ type Status:Base Module:mod_mime -

            The AddType directive maps the given filename - extensions onto the specified content type. MIME-type is the - MIME type to use for filenames containing extension. This - mapping is added to any already in force, overriding any mappings that - already exist for the same extension. This directive can - be used to add mappings not listed in the MIME types file (see the - TypesConfig directive).

            +

            The AddType directive maps the given + filename extensions onto the specified content + type. MIME-type is the MIME + type to use for filenames containing + extension. This mapping is added to any already in + force, overriding any mappings that already exist for the same + extension. This directive can be used to add mappings + not listed in the MIME types file (see the TypesConfig directive).

            Example

            AddType image/gif .gif @@ -511,8 +552,10 @@ type TypesConfig file.

            -

            The extension argument is case-insensitive, and can - be specified with or without a leading dot.

            +

            The extension argument is case-insensitive and can + be specified with or without a leading dot. Filenames may have multiple extensions and the + extension argument will be compared against each of + them.

            See also

              @@ -617,7 +660,7 @@ a matching file with MultiViews

              The NegotiatedOnly option provides that every extension following the base name must correlate to a recognized - mod_mime extension for content negotation, e.g. + mod_mime extension for content negotiation, e.g. Charset, Content-Type, Language, or Encoding. This is the strictest implementation with the fewest unexpected side effects, and is the default behavior.

              @@ -634,7 +677,7 @@ a matching file with MultiViews

              You may finally allow Any extensions to match, even if mod_mime doesn't recognize the extension. This was the - behavior in Apache 1.3, and can cause unpredicatable results, such as + behavior in Apache 1.3, and can cause unpredictable results, such as serving .old or .bak files the webmaster never expected to be served.

              For example, the following configuration will allow handlers @@ -645,6 +688,10 @@ a matching file with MultiViews MultiviewsMatch Handlers Filters

    +

    MultiviewsMatch is not allowed in a + <Location> or <LocationMatch> section.

    + +

    See also

    • Options
    • @@ -671,7 +718,7 @@ later. undo any associations inherited from parent directories or the server config files.

      -

      The extension argument is case-insensitive, and can +

      The extension argument is case-insensitive and can be specified with or without a leading dot.

      Example

      @@ -718,7 +765,7 @@ extensions if both occur within the same directory configuration.

      -

      The extension argument is case-insensitive, and can +

      The extension argument is case-insensitive and can be specified with or without a leading dot.

    @@ -752,7 +799,7 @@ extensions the /foo/bar directory to being treated as normal files, rather than as candidates for parsing (see the mod_include module).

    -

    The extension argument is case-insensitive, and can +

    The extension argument is case-insensitive and can be specified with or without a leading dot.

    @@ -771,12 +818,13 @@ extensions later.

    The RemoveInputFilter directive removes any - input filter associations for files with the given extensions. + input filter associations for files with + the given extensions. This allows .htaccess files in subdirectories to undo any associations inherited from parent directories or the server config files.

    -

    The extension argument is case-insensitive, and can +

    The extension argument is case-insensitive and can be specified with or without a leading dot.

    See also

    @@ -805,7 +853,7 @@ later. any associations inherited from parent directories or the server config files.

    -

    The extension argument is case-insensitive, and can +

    The extension argument is case-insensitive and can be specified with or without a leading dot.

    @@ -824,12 +872,13 @@ extensions later.

    The RemoveOutputFilter directive removes any - output filter associations for files with the given extensions. + output filter associations for files with + the given extensions. This allows .htaccess files in subdirectories to undo any associations inherited from parent directories or the server config files.

    -

    The extension argument is case-insensitive, and can +

    The extension argument is case-insensitive and can be specified with or without a leading dot.

    Example

    @@ -853,11 +902,12 @@ extensions Status:Base Module:mod_mime -

    The RemoveType directive removes any MIME - type associations for files with the given extensions. This allows - .htaccess files in subdirectories to undo any - associations inherited from parent directories or the server - config files. An example of its use might be:

    +

    The RemoveType directive removes any + MIME type associations for files with + the given extensions. This allows .htaccess files in + subdirectories to undo any associations inherited from parent + directories or the server config files. An example of its use + might be:

    /foo/.htaccess:

    RemoveType .cgi @@ -874,7 +924,7 @@ extensions latter if both occur within the same directory configuration.

    -

    The extension argument is case-insensitive, and can +

    The extension argument is case-insensitive and can be specified with or without a leading dot.

    @@ -888,18 +938,20 @@ extensions Status:Base Module:mod_mime -

    The TypesConfig directive sets the location - of the MIME types configuration file. File-path is relative - to the ServerRoot. This file sets +

    The TypesConfig directive sets the + location of the MIME types + configuration file. File-path is relative to the + ServerRoot. This file sets the default list of mappings from filename extensions to content - types. Most administrators use the provided mime.types - file, which associates common filename extensions with IANA registered - content types. The current list is maintained at http://www.iana.org/assignments/media-types/index.html. - This simplifies the httpd.conf file by providing the + types. Most administrators use the provided + mime.types file, which associates common filename + extensions with IANA registered content types. The current list is + maintained at http://www.iana.org/assignments/media-types/index.html. This + simplifies the httpd.conf file by providing the majority of media-type definitions, and may be overridden by AddType directives as - needed. You should not edit the mime.types file, because - it may be replaced when you upgrade your server.

    + needed. You should not edit the mime.types file, + because it may be replaced when you upgrade your server.

    The file contains lines in the format of the arguments to an AddType directive:

    @@ -932,7 +984,28 @@ extensions

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_mime.html.ja.euc-jp b/docs/manual/mod/mod_mime.html.ja.euc-jp deleted file mode 100644 index d9476d62567..00000000000 --- a/docs/manual/mod/mod_mime.html.ja.euc-jp +++ /dev/null @@ -1,937 +0,0 @@ - - - -mod_mime - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_mime

    -
    -

    Available Languages:  en  | - ja 

    -
    - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥Ȥµ¤줿¥ե¡¥¤¥ë¤γÈĥ»Ҥȥե¡¥¤¥ë¤ο¶¤ëÉñ¤¤ - (¥ϥó¥ɥé¤ȥե£¥륿)¡¢ÆâÍÆ (MIME ¥¿¥¤¥ס¢¸À¸졢ʸ»ú¥»¥åȡ¢¥¨¥󥳡¼¥ǥ£¥ó¥°) - ¤Ȥò´ØϢÉդ±¤ë
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥뼱Ê̻Ò:mime_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_mime.c
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤ϳÈĥ»Ҥò»ȤäƤ¤¤í¤¤¤í¤ʡ֥᥿¾ðÊó¡פò¥ե¡¥¤¥ë¤Ë - ´ØϢÉդ±¤뤿¤á¤˻ÈÍѤµ¤ì¤ޤ¹¡£¤³¤ξðÊó¤ϥɥ­¥å¥á¥ó¥ȤΥե¡¥¤¥ë̾¤È - MIME ¥¿¥¤¥ס¢¸À¸졢ʸ»ú¥»¥åȡ¢¥¨¥󥳡¼¥ǥ£¥󥰤Ȥò´ØϢÉդ±¤ޤ¹¡£ - ¤³¤ξðÊó¤ϥ֥饦¥¶¤ËÁ÷¤é¤ì¤ޤ¹¤·¡¢ʣ¿ô¤Υե¡¥¤¥ë¤ÎÃ椫¤é¥桼¥¶¤ι¥¤ߤÎ - ¤â¤Τ¬Áª¤Фì¤ë¤褦¤ˡ¢¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤Ǥâ»Ȥï¤ì¤ޤ¹¡£ - ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó - ¤˴ؤ¹¤ë¾ܤ·¤¤¾ðÊó¤Ï mod_negotiation - ¤ò¤´Í÷²¼¤µ¤¤¡£

    - -

    AddCharset ¥ǥ£¥쥯¥ƥ£¥֡¢ - AddEncoding ¥ǥ£¥쥯¥ƥ£¥֡¢ - AddHandler ¥ǥ£¥쥯¥ƥ£¥֡¢ - AddLanguage ¥ǥ£¥쥯¥ƥ£¥֡¢ - AddType ¥ǥ£¥쥯¥ƥ£¥֤Ϥ¹¤٤ơ¢ - ¥ե¡¥¤¥ë¤γÈĥ»Ҥò¥᥿¾ðÊó¤˥ޥåפ¹¤뤿¤á¤˻ÈÍѤµ¤ì¤ޤ¹¡£ - ¤½¤줾¤졢¥ɥ­¥å¥á¥ó¥ȤÎʸ»ú¥»¥åÈ (ÌõÃí: charset)¡¢content-encoding, - content-language, MIME ¥¿¥¤¥× (content-type) ¤òÀßÄꤷ¤ޤ¹¡£ - TypesConfig ¥ǥ£¥쥯¥ƥ£¥֤ϳÈĥ»Ҥò - MIME ¥¿¥¤¥פ˥ޥåפ¹¤ë¥ե¡¥¤¥ë¤ò»ØÄꤹ¤뤿¤á¤˻ÈÍѤµ¤ì¤ޤ¹¡£

    - -

    ¤µ¤é¤ˡ¢mod_mime ¤ϥ³¥ó¥ƥó¥ĤòºîÀ®¡¢½èÍý¤¹¤ë - ¥ϥó¥ɥé ¤È ¥ե£¥륿 - ¤òÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£AddHandler ¥ǥ£¥쥯¥ƥ£¥֡¢AddOutputFilter ¥ǥ£¥쥯¥ƥ£¥֡¢AddInputFilter ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¥ɥ­¥å¥á¥ó¥Ȥ򰷤¦¥⥸¥塼¥ë¤䥹¥¯¥ê¥ץȤòÀ©¸椷¤ޤ¹¡£ - MultiviewsMatch ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤¬»ØÄꤷ¤¿¥ե¡¥¤¥ë¤γÈĥ»Ҥò - mod_negotiation ¤¬ Multiviews ¤ΥޥåÁ¤ò¤Ȥë¤Ȥ­¤Ë - ¹Íθ¤¹¤ë¤褦¤ˤǤ­¤ޤ¹¡£

    - -

    mod_mime ¤ϥ᥿¾ðÊó¤ò¥ե¡¥¤¥ë̾¤ȴØϢÉդ±¤ޤ¹¤¬¡¢ - core ¥µ¡¼¥ФˤϤ¢¤륳¥ó¥ƥÊ - (¤¿¤Ȥ¨¤Ð, <Location>, <Directory>, <Files>) ¤ÎÃæ¤Τ¹¤٤ƤΥե¡¥¤¥ë¤òÆÃÄê¤Î - ¥᥿¾ðÊó¤ȴØϢÉդ±¤ë¥ǥ£¥쥯¥ƥ£¥֤¬¤¢¤ê¤ޤ¹¡£¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤ˤÏ - ForceType, SetHandler, SetInputFilter, SetOutputFilter ¤¬¤¢¤ê¤ޤ¹¡£ - ¥³¥¢¤Υǥ£¥쥯¥ƥ£¥֤Ï mod_mime ¤ˤè¤êÄêµÁ¤µ¤줿 - ¥ե¡¥¤¥ë̾¤γÈĥ»ҤΥޥåԥ󥰤¹¤٤Ƥò¾å½񤭤·¤ޤ¹¡£

    - -

    ¥ե¡¥¤¥ë¤Υ᥿¾ðÊó¤òÊѤ¨¤Ƥâ Last-Modified - ¥إåÀ¤ÎÃͤÏÊѤï¤é¤ʤ¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£¤Ǥ¹¤«¤顢 - ¤½¤ì¤é¤òÊѹ¹¤·¤¿¾ì¹ç¤ϡ¢¥¯¥饤¥¢¥ó¥Ȥä¥ץí¥­¥·¤ǰÊÁ°¤˥­¥ã¥å·¥夵¤줿 - ¥³¥ԡ¼¤¬¤½¤ΤȤ­¤ΥإåÀ¤ȤȤâ¤˻Ȥï¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£ - ¥᥿¾ðÊó (¸À¸졢¥³¥ó¥ƥó¥ȥ¿¥¤¥ס¢ʸ»ú¥»¥åȡ¢¥¨¥󥳡¼¥ǥ£¥ó¥°) ¤ò - Êѹ¹¤·¤¿¤Ȥ­¤ϡ¢¤¹¤٤ƤÎˬÌä¼Ԥ¬Àµ¤·¤¤¥³¥ó¥ƥó¥ȥإåÀ¤ò - ¼õ¤±¼è¤ë¤褦¤ˡ¢±ƶÁ¤ò¼õ¤±¤ë¥ե¡¥¤¥ë¤Ë 'touch' ¥³¥ޥó¥ɤò¼¹Ԥ¹¤ë - (ºǽª¹¹¿·Æü¤򹹿·¤¹¤ë) ɬÍפ¬¤¢¤뤫¤⤷¤ì¤ޤ»¤ó¡£

    -
    - -
    top
    -
    -

    ʣ¿ô¤γÈĥ»ҤΤ¢¤ë¥ե¡¥¤¥ë

    -

    ¥ե¡¥¤¥ë¤Ïʣ¿ô¤γÈĥ»Ҥò»ý¤Ĥ³¤Ȥ¬¤Ǥ­¡¢³Èĥ»ҤνçÈ֤ÏÄ̾ï¤Ï´ط¸¤¢¤ê¤ޤ»¤ó¡£Î㤨¤С¢¥ե¡¥¤¥ë welcome.html.fr - ¤¬¥³¥ó¥ƥó¥ȥ¿¥¤¥פÏ text/html - ¤ˡ¢¸À¸ì¤ϥեé¥󥹸ì¤˥ޥåפµ¤ì¤ë¾ì¹硢welcome.fr.html - ¤â¤ޤ俤¯Ʊ¤¸¾ðÊó¤˥ޥåפµ¤ì¤ޤ¹¡£ - Ʊ¤¸¥᥿¾ðÊó¤˥ޥåפµ¤ì¤ë³Èĥ»Ҥ¬ʣ¿ô¤¢¤ë¤Ȥ­¤ˤϡ¢¸À¸ì¤È - ¥³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥󥰤ò½ü¤¤¤ơ¢ - ±¦¦¤ˤ¢¤ë¤â¤Τ¬»ÈÍѤµ¤ì¤ޤ¹¡£¤¿¤Ȥ¨¤С¢.gif ¤¬ MIME - ¥¿¥¤¥× image/gif ¤˥ޥåפµ¤졢.html - ¤¬ MIME ¥¿¥¤¥× text/html - ¤˥ޥåפµ¤ì¤ë¾ì¹ç¤ϡ¢¥ե¡¥¤¥ë welcome.gif.html ¤Ï - MIME ¥¿¥¤¥× text/html ¤˴ØϢÉդ±¤é¤ì¤ޤ¹¡£

    - -

    ¥꥽¡¼¥¹¤Ëʣ¿ô¤θÀ¸ì¤䥨¥󥳡¼¥ǥ£¥󥰤ò´ØϢÉդ±¤뤳¤È - ¤¬¤Ǥ­¤뤿¤ᡢ - ¸À¸ì¤È¥³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥ó¥°¤ÏÁ°¤Τâ¤ΤËÄɲ䵤ì¤Ƥ¤¤­¤ޤ¹¡£ - ¤¿¤Ȥ¨¤С¢¥ե¡¥¤¥ë welcome.html.en.de ¤Ï - Content-Language: en, de ¤È Content-Type: - text/html ¤Ȥ·¤ÆÁ÷¿®¤µ¤ì¤ޤ¹¡£

    - -

    ʣ¿ô¤γÈĥ»ҤΤ¢¤ë¥ե¡¥¤¥뤬 MIME - ¥¿¥¤¥פȥϥó¥ɥé¤ÎξÊý¤˴ØϢÉդ±¤é¤ì¤Ƥ¤¤ë¤Ȥ­¤ÏÃí°դ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤½¤ξì¹硢ÉáÄ̤ϥꥯ¥¨¥¹¥Ȥ¬¥ϥó¥ɥé¤˴ØϢÉդ±¤é¤줿 - ¥⥸¥塼¥ë¤ˤè¤äư·¤ï¤ì¤뤳¤Ȥˤʤê¤ޤ¹¡£¤¿¤Ȥ¨¤С¢³Èĥ»Ò - .imap ¤¬ (mod_imagemap ¤Î) imap-file - ¤˥ޥåפµ¤ì¤Ƥ¤¤ơ¢.html ¤¬ MIME ¥¿¥¤¥× text/html - ¤˥ޥåפµ¤ì¤Ƥ¤¤ë¤Ȥ­¤ϡ¢¥ե¡¥¤¥ë world.imap.html ¤Ï - imap-file ¥ϥó¥ɥé¤È text/html MIME - ¥¿¥¤¥פ˴ØϢÉդ±¤é¤ì¤ޤ¹¡£¥ե¡¥¤¥뤬½èÍý¤µ¤ì¤ë¤Ȥ­¤Ï imap-file - ¥ϥó¥ɥ餬»ÈÍѤµ¤ì¤ޤ¹¤Τǡ¢¤½¤Υե¡¥¤¥ë¤Ï mod_imagemap - ¤Υ¤¥᡼¥¸¥ޥåץե¡¥¤¥ë¤Ȥ·¤ư·¤ï¤ì¤뤳¤Ȥˤʤê¤ޤ¹¡£

    -
    top
    -
    -

    ¥³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥ó¥°

    -

    ÆÃÄê¤Î MIME ¥¿¥¤¥פΥե¡¥¤¥ë¤ϥ¤¥󥿡¼¥ͥåȤǤΞÁ÷¤ò´Êñ¤ˤ¹¤뤿¤á¤ˡ¢ - ¤µ¤é¤ËÉä¹沽¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤³¤ì¤ÏÄ̾ï¤Ï gzip ¤Î - ¤褦¤ʰµ½̤Τ³¤Ȥò»ؤ·¤ޤ¹¤¬¡¢pgp ¤Τ褦¤ʰŹ沽¤䡢 - ¥Х¤¥ʥê¥ե¡¥¤¥ë¤ò ASCII (¥ƥ­¥¹¥È) ·Á¼°¤ÇÁ÷¤뤿¤á¤˹ͰƤµ¤줿 - UUencoding ¤Τ³¤Ȥò»ؤ¹¤³¤Ȥ⤢¤ê¤ޤ¹¡£

    - -

    HTTP/1.1 RFC - 14.11 Àá¤Ǥϼ¡¤Τ褦¤˵­½Ҥµ¤ì¤Ƥ¤¤ޤ¹¡£

    - -
    -

    Content-Encoding ¥¨¥ó¥ƥ£¥ƥ£¥إåÀ¥ե£¡¼¥ë¥ɤϥá¥ǥ£¥¢¥¿¥¤¥פÎ - ½¤¾þ»ҤȤ·¤ƻȤï¤ì¤ޤ¹¡£¤½¤줬¸ºߤ·¤Ƥ¤¤ì¤С¢Ãͤϥ¨¥ó¥ƥ£¥ƥ£¥ܥǥ£¤Ë - ¤ɤÎÄɲäÎÉä¹沽¤¬ŬÍѤµ¤줿¤«¤򼨤·¡¢Content-Type ¥إåÀ¥ե£¡¼¥ë¥ɤË - ½񤫤ì¤Ƥ¤¤ë¥á¥ǥ£¥¢¥¿¥¤¥פòÆÀ¤뤿¤á¤ˤɤÎÉü¹浡¹½¤òŬÍѤ¹¤٤­¤«¡¢¤â - ¼¨¤·¤Ƥ¤¤뤳¤Ȥˤʤê¤ޤ¹¡£Content-Encoding ¤ϼç¤ˡ¢¸µ¤Υá¥ǥ£¥¢¥¿¥¤¥פÎ - Ʊ°ìÀ­¤򼺤¦¤³¤Ȥʤ¯¥ɥ­¥å¥á¥ó¥Ȥ򰵽̤¹¤뤳¤Ȥò²Äǽ¤ˤ¹¤뤿¤á¤Ë - »ÈÍѤµ¤ì¤ޤ¹¡£

    -
    - -

    ʣ¿ô¤Υե¡¥¤¥ë³Èĥ»Ò (ʣ¿ô¤γÈĥ»ҤˤĤ¤¤ƤÏ ¾å¤ÎÀá ¤򻲾È) »Ȥ¦¤³¤Ȥǡ¢ - ¥ե¡¥¤¥ë¤Î¥¿¥¤¥×¤ä¥¨¥󥳡¼¥ǥ£¥ó¥°¤ò»ØÄꤹ¤뤳¤Ȥ¬ - ¤Ǥ­¤ޤ¹¡£

    - -

    ¤¿¤Ȥ¨¤С¢Microsoft Word ¤Υɥ­¥å¥á¥ó¥Ȥ¬¤¢¤ꡢ¥µ¥¤¥º¤򾮤µ¤¯¤¹¤뤿¤á¤Ë - pkzip ¤µ¤ì¤Ƥ¤¤ë¤Ȥ·¤ޤ¹¡£.doc ³Èĥ»Ҥ¬ Microsoft Word ¤Î - ¥ե¡¥¤¥륿¥¤¥פȴØϢÉդ±¤é¤ì¤Ƥ¤¤ơ¢.zip ³Èĥ»Ҥ¬ - pkzip ¥ե¡¥¤¥륨¥󥳡¼¥ǥ£¥󥰤ȴØϢÉդ±¤é¤ì¤Ƥ¤¤ë¤ȡ¢¥ե¡¥¤¥ë - Resume.doc.zip ¤Ï pkzip ¤µ¤줿 Word ¥ɥ­¥å¥á¥ó¥ȤǤ¢¤ë - ¤Ȥ¤¤¦¤³¤Ȥ¬¤狼¤ê¤ޤ¹¡£

    - -

    ¥¯¥饤¥¢¥ó¥ȤΥ֥饦¥¶¤˥¨¥󥳡¼¥ǥ£¥ó¥°Êýˡ¤òÃΤ餻¤뤿¤á¤ˡ¢ - Apache ¤ϥ꥽¡¼¥¹¤ȶ¦¤Ë Content-Encoding ¥إåÀ¤ò - Á÷¤ê¤ޤ¹¡£

    - -

    Content-encoding: pkzip

    -
    top
    -
    -

    ʸ»ú¥»¥åȤȸÀ¸ì

    -

    ¥ե¡¥¤¥륿¥¤¥פȥե¡¥¤¥륨¥󥳡¼¥ǥ£¥󥰤ξ¤˽ÅÍפʾðÊó¤Ï - ¥ɥ­¥å¥á¥ó¥Ȥν񤫤ì¤Ƥ¤¤ë¸À¸ì¤ȡ¢¤ɤÎʸ»ú¥»¥åȤǥե¡¥¤¥뤬ɽ¼¨ - ¤µ¤ì¤ë¤٤­¤«¡¢¤Ȥ¤¤¦¤â¤ΤǤ¹¡£¤¿¤Ȥ¨¤С¢¥ɥ­¥å¥á¥ó¥Ȥϥ٥ȥʥà¤Î - ¥¢¥ë¥ե¡¥٥åȤ䥭¥ê¥ëʸ»ú¤ǽ񤫤ì¤Ƥ¤¤ơ¢¤½¤Τ褦¤Ëɽ¼¨¤µ¤ì¤ë - ɬÍפ¬¤¢¤뤫¤⤷¤ì¤ޤ»¤󡣤³¤ξðÊó¤â¤ޤ¿¡¢HTTP ¥إåÀ¤Ç - Á÷¿®¤µ¤ì¤ޤ¹¡£

    - -

    ʸ»ú¥»¥åȡ¢¸À¸졢¥¨¥󥳡¼¥ǥ£¥󥰡¢mime ¥¿¥¤¥פϤ¹¤٤Æ - ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó (mod_negotiation »²¾È) - ¤κÇÃæ¤ˡ¢ʣ¿ô¤Îʸ»ú¥»¥åȡ¢¸À¸졢¥¨¥󥳡¼¥ǥ£¥󥰡¢MIME ¥¿¥¤¥פ«¤é¤ʤë - ÂåÂØʪ¤¬¤¢¤ë¤Ȥ­¤ˤɤΥɥ­¥å¥á¥ó¥Ȥ򥯥饤¥¢¥ó¥ȤËÁ÷¤ë¤Τ«¤ò - ·èÄꤹ¤ë¤Ȥ­¤˻Ȥï¤ì¤ޤ¹¡£AddCharset, - AddEncoding, AddLanguage, - AddType ¤γƥǥ£¥쥯¥ƥ£¥֤ǺîÀ®¤µ¤줿 - ³Èĥ»ҤδØϢÉդ± (¤È MimeMagicFile ¤ǥꥹ¥Ȥµ¤ì¤Ƥ¤¤ë - ³Èĥ»Ò) ¤¬¤³¤ÎÁªÂò¤˻²²ä·¤ޤ¹¡£AddHandler, - AddInputFilter, - AddOutputFilter ¤Î - ³ƥǥ£¥쥯¥ƥ£¥֤ǤΤߴØϢÉդ±¤é¤ì¤Ƥ¤¤ë³Èĥ»ҤÏ - MultiviewsMatch ¥ǥ£¥쥯¥ƥ£¥֤ò - »Ȥ¦¤³¤ȤǥޥåÁ¤Î - ½èÍý¤˴ޤá¤뤳¤Ȥ⳰¤¹¤³¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    Charset

    -

    ¤µ¤é¤˾ðÊó¤òÅÁ¤¨¤뤿¤á¤ˡ¢Apache ¤Ïʸ½ñ¤θÀ¸ì¤ò - Content-Language ¥إåÀ¤ÇÁ÷¤뤳¤Ȥ⤢¤ê¤ޤ¹¡£ - ¤ޤ¿¡¢¾ðÊó¤òÀµ¤·¤¯ɽ¼¨¤¹¤뤿¤á¤˻ÈÍѤ¹¤٤­ʸ»ú¥»¥åȤ򼨤¹¤¿¤á¤Ë - Conten-Type ¥إåÀ¤˾ðÊó¤òÄɲ乤뤳¤Ȥ⤢¤ê¤ޤ¹¡£

    - -

    - Content-Language: en, fr
    - Content-Type: text/plain; charset=ISO-8859-1 -

    - -

    ¸À¸ì¤λØÄê¤ÏÆóʸ»ú¤Îû½̷Á¤ǹԤʤï¤ì¤ޤ¹¡£charset ¤¬ - »ÈÍѤ¹¤٤­ʸ»ú¥»¥åȤÎ̾Á°¤Ǥ¹¡£

    - -
    -
    top
    -

    AddCharset ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿ʸ»ú¥»¥åȤ˥ޥåפ¹¤ë
    ¹½ʸ:AddCharset charset extension -[extension] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    AddCharset ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - Ϳ¤¨¤é¤줿³Èĥ»Ҥò»ØÄꤵ¤줿 charset ¤˥ޥåפ·¤ޤ¹¡£charset - ¤ϡ¢³Èĥ»Ò extension ¤ò´ޤó¤Ǥ¤¤ë¥ե¡¥¤¥ë̾¤Î - MIME charset - ¥ѥé¥᡼¥¿¤Ǥ¹¡£¿·¤·¤¤¥ޥåԥ󥰤ϴû¤ˤ¢¤ë¾¤Υޥåԥ󥰤ËÄɲ䵤졢Ʊ¤¸³Èĥ»Ò - extension ¤Τ¿¤á¤Υޥåԥ󥰤ò¾å½񤭤·¤ޤ¹¡£

    - -

    Îã

    - AddLanguage ja .ja
    - AddCharset EUC-JP .euc
    - AddCharset ISO-2022-JP .jis
    - AddCharset SHIFT_JIS .sjis -

    - -

    ¤³¤ξì¹硢¥ɥ­¥å¥á¥ó¥È xxxx.ja.jis ¤Ï charset ¤¬ - ISO-2022-JP ¤ÎÆüËܸì¤Υɥ­¥å¥á¥ó¥ȤȤ·¤ư·¤ï¤ì¤ޤ¹ - (xxxx.jis.ja ¤âƱÍÍ)¡£AddCharset - ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥ɥ­¥å¥á¥ó¥Ȥ¬ŬÀڤ˲ò¼ᤵ¤ìɽ¼¨¤µ¤ì¤ë¤褦¤ˡ¢ - ¥ɥ­¥å¥á¥ó¥ȤÎ charset ¤ξðÊó¤򥯥饤¥¢¥ó¥Ȥ˶µ¤¨¤뤿¤á¤ËÌò¤ËΩ¤Á¤ޤ¹¡£ - ¤ޤ¿¡¢¥µ¡¼¥Ф¬¥¯¥饤¥¢¥ó¥ȤÎ charset - ¤ÎͥÀèÅ٤˴ð¤Ť¤¤Æʣ¿ô¤Υɥ­¥å¥á¥ó¥ȤÎÃ椫¤é¥ɥ­¥å¥á¥ó¥ȤòÁª¤Ö¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤Τ¿¤á¤ˤâÌò¤ËΩ¤Á¤ޤ¹¡£

    - -

    °ú¿ô extension¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¡¢ - ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    AddEncoding ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿¥¨¥󥳡¼¥ǥ£¥ó¥° -¤˥ޥåפ¹¤ë
    ¹½ʸ:AddEncoding MIME-enc extension -[extension] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    AddEncoding ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - Ϳ¤¨¤é¤줿³Èĥ»Ҥò»ØÄꤵ¤줿¥¨¥󥳡¼¥ǥ£¥󥰤˥ޥåפ·¤ޤ¹¡£ - MIME-enc ¤ϡ¢³Èĥ»Ò extension - ¤ò´ޤó¤À¥ɥ­¥å¥á¥ó¥Ȥ˻ÈÍѤ¹¤ë MIME ¥¨¥󥳡¼¥ǥ£¥󥰤Ǥ¹¡£ - ¤³¤ο·¤·¤¤¥ޥåԥ󥰤ϴû¤ˤ¢¤ë¾¤Υޥåԥ󥰤ËÄɲ䵤졢 - Ʊ¤¸³Èĥ»Ò extension ¤Τ¿¤á¤Υޥåԥ󥰤ò¾å½񤭤·¤ޤ¹¡£

    - -

    Îã

    - AddEncoding x-gzip .gz
    - AddEncoding x-compress .Z
    -

    - -

    ¤³¤ì¤ϡ¢³Èĥ»Ò .gz ¤ò´ޤà¥ե¡¥¤¥ë̾¤¬ x-gzip - ¥¨¥󥳡¼¥ǥ£¥󥰤ò»Ȥäƥ¨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤뤳¤Ȥȡ¢³Èĥ»Ò .Z - ¤ò´ޤà¥ե¡¥¤¥ë̾¤¬ x-compress - ¤ǥ¨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤뤳¤Ȥò»ØÄꤷ¤ޤ¹¡£

    - -

    ¸Ť¤¥¯¥饤¥¢¥ó¥ȤÏ x-zip ¤È x-compress - ¤¬Ê֤äƤ¯¤뤳¤Ȥò´üÂԤ·¤ޤ¹¤¬¡¢ɸ½൬³ʤǤϤ½¤줾¤ì - gzip ¤È compress - ¤ÈÅù²Á¤Ǥ¢¤뤳¤ȤˤʤäƤ¤¤ޤ¹¡£Apache - ¤ϡ¢¥³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥󥰤ÎÈæ³Ӥ򤹤ë¤Ȥ­¤ˤϡ¢ÀèƬ¤ˤ¢¤ë - x- ¤ò̵»뤷¤ޤ¹¡£Apache - ¤¬¥¨¥󥳡¼¥ǥ£¥ó¥°Éդ­¤DZþÅú¤òÊ֤¹¤Ȥ­¤ϡ¢¥¯¥饤¥¢¥ó¥Ȥ¬Í׵ᤷ¤¿·Á¼° - (¤¹¤ʤï¤Á¡¢x-foo ¤ä foo) - ¤ò»ÈÍѤ·¤ޤ¹¡£Íפ¹¤ë¤ˡ¢¤³¤ÎÆó¤ĤΥ¨¥󥳡¼¥ǥ£¥󥰤ξì¹ç¤Ͼï¤Ë - x-gzip ¤È x-compress - ¤ò»Ȥ¦¤٤­¤Ǥ¢¤롢¤Ȥ¤¤¦¤³¤ȤǤ¹¡£deflate - ¤Τ褦¤ʤè¤꿷¤·¤¤¥¨¥󥳡¼¥ǥ£¥󥰤Ǥϡ¢x- - ¤ʤ·¤ǻØÄꤷ¤Ƥ¯¤À¤µ¤¤¡£ -

    - -

    °ú¿ô extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¡¢ - ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -
    -
    top
    -

    AddHandler ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿¥ϥó¥ɥé¤˥ޥåפ¹¤ë
    ¹½ʸ:AddHandler handler-name extension -[extension] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    ³Èĥ»Ò extension ¤¬̾Á°¤ˤ¢¤ë¥ե¡¥¤¥ë¤ϻØÄꤵ¤줿 handler-name ¤˰·¤ï¤ì¤ޤ¹¡£ - ¤³¤ο·¤·¤¤¥ޥåԥ󥰤ϴû¤ˤ¢¤ë¾¤Υޥåԥ󥰤ËÄɲ䵤졢 - Ʊ¤¸³Èĥ»Ò extension - ¤Τ¿¤á¤Υޥåԥ󥰤ò¾å½񤭤·¤ޤ¹¡£¤¿¤Ȥ¨¤С¢³Èĥ»Ò - ".cgi" ¤ǽª¤ï¤ë¥ե¡¥¤¥ë¤ò CGI - ¥¹¥¯¥ê¥ץȤȤ·¤ư·¤¤¤¿¤¤¤Ȥ­¤ϡ¢°ʲ¼¤ÎÀßÄê¤򤷤ޤ¹¡£

    - -

    - AddHandler cgi-script .cgi -

    - -

    ¤³¤ì¤ò httpd.conf ¥ե¡¥¤¥ë¤˵­½Ҥ¹¤뤳¤Ȥǡ¢³Èĥ»Ò - ".cgi" ¤Υե¡¥¤¥ë¤Ï CGI ¥ץí¥°¥é¥à¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£ -

    - -

    °ú¿ô extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¡¢ - ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    AddInputFilter ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë¤γÈĥ»Ҥ򥯥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥Ȥò½èÍý¤¹¤ë - ¥ե£¥륿¤˥ޥåפ¹¤ë
    ¹½ʸ:AddInputFilter filter[;filter...] -extension [extension] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:2.0.26 °ʹߤǻÈÍѲÄǽ
    -

    AddInputFilter ¤ϥե¡¥¤¥ë¤γÈĥ»Ò - extension ¤򥯥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥Ȥä POST ¤¬¥µ¡¼¥ФËÍ褿¤Ȥ­¤Ë - ½èÍý¤򤹤ë¥ե£¥륿¤˥ޥåפ·¤ޤ¹¡£ - ¤³¤ì¤ϡ¢SetInputFilter ¥ǥ£¥쥯¥ƥ£¥֤â - ´ޤᡢ¾¤ξì½ê¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ë¥ե£¥륿¤˲䨤é¤ì¤ޤ¹¡£ - ¤³¤Υޥåԥ󥰤Ϥ¹¤Ǥˤ¢¤ë¤â¤Τè¤êͥÀ褵¤ì¤ƥޡ¼¥¸¤µ¤졢 - Ʊ¤¸ extension ¤ËÂФ¹¤ë´û¸¤Υޥåԥ󥰤ò¾å½񤭤·¤ޤ¹¡£

    - -

    ʣ¿ô¤Υե£¥륿¤ò»ØÄꤹ¤ë¤Ȥ­¤ϡ¢¥ǡ¼¥¿¤ò½èÍý¤¹¤ë½çÈ֤˥»¥ߥ³¥í¥ó¤Ç - ·Ҥ¤¤ǽñ¤¯ɬÍפ¬¤¢¤ê¤ޤ¹¡£¥ե£¥륿¤È extension ¤ȤÎ - ξÊý¤ΰú¿ô¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¡¢³Èĥ»Ҥκǽé¤ΥɥåȤÏ - ¤¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    AddLanguage ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë̾¤ò»ØÄꤵ¤줿¸À¸ì¤˥ޥå×
    ¹½ʸ:AddLanguage MIME-lang extension -[extension] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    AddLanguage ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢Ϳ¤¨¤é¤줿³Èĥ»Ҥò»ØÄꤵ¤줿 - content language ¤˥ޥåפ·¤ޤ¹¡£MIME-lang ¤ϡ¢³Èĥ»Ò - extension ¤ò´ޤó¤Ǥ¤¤ë¥ե¡¥¤¥ë̾¤Î MIME ¤ˤª¤±¤ë¸À¸ì¤Ǥ¹¡£ - ¤³¤ο·¤·¤¤¥ޥåԥ󥰤ϴû¤ˤ¢¤ë¥ޥåԥ󥰤ËÄɲ䵤졢Ʊ¤¸³Èĥ»Ò - extension ¤Τ¿¤á¤Υޥåԥ󥰤ò¾å½񤭤·¤ޤ¹¡£

    - -

    Îã

    - AddEncoding x-compress .Z
    - AddLanguage en .en
    - AddLanguage fr .fr -

    - -

    ¤³¤ξì¹硢xxxx.en.Z ¥ɥ­¥å¥á¥ó¥ȤÏ compress - ¤µ¤줿±Ѹì¤Υɥ­¥å¥á¥ó¥ȤȤ·¤ư·¤ï¤ì¤ޤ¹ (xxxx.Z.en - ¤âƱÍÍ)¡£content language ¤ϥ¯¥饤¥¢¥ó¥ȤËÄÌÃΤµ¤ì¤ޤ¹¤¬¡¢ - ¥֥饦¥¶¤¬¤³¤ξðÊó¤ò»Ȥ¦¤³¤ȤϤª¤½¤餯¤¢¤ê¤ޤ»¤ó¡£ - AddLanguage - ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥µ¡¼¥Ф¬¥¯¥饤¥¢¥ó¥ȤθÀ¸ì¤ÎͥÀèÅ٤˴ð¤Ť¤¤Æʣ¿ô¤Î - ¥ɥ­¥å¥á¥ó¥ȤÎÃ椫¤é¥ɥ­¥å¥á¥ó¥ȤòÁª¤Ö¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤Τ¿¤á¤ˤè¤êÌò¤ËΩ¤Á¤ޤ¹¡£

    - -

    ʣ¿ô¤θÀ¸줬Ʊ¤¸³Èĥ»Ҥ˳ä¤êÅö¤Ƥé¤ì¤Ƥ¤¤ë¤Ȥ­¤ϡ¢ - ºǸå¤Τâ¤Τ¬»ÈÍѤµ¤ì¤ޤ¹¡£¤¹¤ʤï¤Á¡¢¼¡¤Τ褦¤ʾì¹硢

    - -

    - AddLanguage en .en
    - AddLanguage en-gb .en
    - AddLanguage en-us .en -

    - -

    ³Èĥ»Ò .en ¤Τ¢¤ë¥ɥ­¥å¥á¥ó¥ȤÏ - en-us ¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£

    - -

    °ú¿ô extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¡¢ - ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    AddOutputFilter ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë̾¤γÈĥ»Ҥ򥵡¼¥Ф«¤é¤αþÅú¤ò½èÍý¤¹¤ë¥ե£¥륿¤Ë - ¥ޥåפ¹¤ë
    ¹½ʸ:AddOutputFilter filter[;filter...] -extension [extension] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:2.0.26 °ʹߤǻÈÍѲÄǽ
    -

    AddOutputFilter ¥ǥ£¥쥯¥ƥ£¥֤Ï - ³Èĥ»Ò extension ¤򥵡¼¥ФαþÅú¤¬¥¯¥饤¥¢¥ó¥ȤËÁ÷¤é¤ì¤ë - Á°¤˽èÍý¤¹¤ë¥ե£¥륿¤òÄêµÁ¤·¤ޤ¹¡£ - ¤³¤ì¤Ï SetOutputFilter - ¥ǥ£¥쥯¥ƥ£¥֤È AddOutputFilterByType ¥ǥ£¥쥯¥ƥ£¥Ö - ¤ò´ޤᡢ¾¤ξì½ê¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ë¥ե£¥륿¤˲䨤é¤ì¤ޤ¹¡£ - ¤³¤ο·¤·¤¤¥ޥåԥ󥰤ϴû¤ˤ¢¤ë¥ޥåԥ󥰤ËÄɲ䵤졢Ʊ¤¸³Èĥ»Ò - extension ¤Τ¿¤á¤Υޥåԥ󥰤ò¾å½񤭤·¤ޤ¹¡£

    - -

    Î㤨¤С¢°ʲ¼¤ÎÀßÄê¤Ϥ¹¤٤ƤÎ .shtml ¥ե¡¥¤¥ë¤ò SSI ¤ǽèÍý¤·¡¢ - ¤½¤νÐÎϤò mod_deflate ¤ò»Ȥäưµ½̤·¤ޤ¹¡£

    - -

    - AddOutputFilter INCLUDES;DEFLATE shtml -

    - -

    ʣ¿ô¤Υե£¥륿¤ò»ØÄꤹ¤ë¤Ȥ­¤ϡ¢¥ǡ¼¥¿¤ò½èÍý¤¹¤ë½çÈ֤˥»¥ߥ³¥í¥ó¤Ç - ·Ҥ¤¤ǽñ¤¯ɬÍפ¬¤¢¤ê¤ޤ¹¡£filter ¤È extension ¤Î - ξ°ú¿ô¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¡¢³Èĥ»Ҥκǽé¤ΥɥåȤÏ - ¤¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    AddType ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿¥³¥ó¥ƥó¥ȥ¿¥¤¥פ˥ޥå×
    ¹½ʸ:AddType MIME-type extension -[extension] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    AddType ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - Ϳ¤¨¤é¤줿³Èĥ»Ҥò»ØÄꤵ¤줿¥³¥ó¥ƥó¥ȥ¿¥¤¥פ˥ޥåפ·¤ޤ¹¡£ - MIME-type ¤ϳÈĥ»Ò extension - ¤ò´ޤó¤À¥ɥ­¥å¥á¥ó¥Ȥ˻ÈÍѤ¹¤ë MIME ¥¿¥¤¥פǤ¹¡£ - ¤³¤ο·¤·¤¤¥ޥåԥ󥰤ϴû¤ˤ¢¤ë¥ޥåԥ󥰤ËÄɲ䵤졢Ʊ¤¸³Èĥ»Ò - extension ¤Τ¿¤á¤Υޥåԥ󥰤ò¾å½񤭤·¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï MIME ¥¿¥¤¥ץե¡¥¤¥ë (TypesConfig ¥ǥ£¥쥯¥ƥ£¥֤򻲾È) - ¤Ë̵¤¤¥ޥåԥ󥰤òÄɲ乤뤿¤á¤˻ÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Îã

    - AddType image/gif .gif -

    - -
    - ¿·¤·¤¤ MIME ¥¿¥¤¥פϡ¢TypesConfig - ¥ե¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤ΤǤϤʤ¯¡¢AddType - ¥ǥ£¥쥯¥ƥ£¥֤ò»ȤäÆÄɲ乤뤳¤Ȥ¬¿侩¤µ¤ì¤Ƥ¤¤ޤ¹¡£ -
    - -

    °ú¿ô extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¡¢ - ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    DefaultLanguage ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¤¢¤륹¥³¡¼¥פΤ¹¤٤ƤΥե¡¥¤¥ë¤ò»ØÄꤵ¤줿¸À¸ì¤Ë -ÀßÄꤹ¤ë
    ¹½ʸ:DefaultLanguage MIME-lang
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    DefaultLanguage ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢Apache - ¤¬¥ǥ£¥쥯¥ƥ£¥֤Υ¹¥³¡¼¥× (Î㤨¤Ð¡¢¤½¤λþÅÀ¤Î - <Directory> - ¤ÎÈϰÏ) ¤ˤ¢¤롢ÌÀ¼¨Ū¤ʸÀ¸ì³Èĥ»Ò - (AddLanguage ¤ÇÀßÄꤵ¤ì¤ë - .fr ¤ä .de) ¤Τʤ¤Á´¤ƤΥե¡¥¤¥ë¤򡢻ØÄꤵ¤줿 - MIME-lang ¸À¸ì¤Ǥ¢¤ë¤Ȥߤʤ¹¤褦¤ˤ·¤ޤ¹¡£ - ¤³¤ì¤ˤè¤ꡢ¤¹¤٤ƤΥե¡¥¤¥ë̾¤òÊѤ¨¤뤳¤Ȥʤ¯¡¢ - ¥ǥ£¥쥯¥ȥ꤬¥ª¥é¥ó¥À¸ì¤Υ³¥ó¥ƥó¥Ȥò´ޤó¤Ǥ¤¤롢 - ¤Ȥ¤¤¦¤褦¤ʤ³¤Ȥò»ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ³Èĥ»Ҥò»ÈÍѤ·¤ƸÀ¸ì¤ò»ØÄꤹ¤ëÊýˡ¤Ȱ㤤¡¢ - DefaultLanguage - ¤ϰì¤ĤθÀ¸줷¤«»ØÄê¤Ǥ­¤ʤ¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    DefaultLanguage - ¥ǥ£¥쥯¥ƥ£¥֤¬ͭ¸ú¤Ǥʤ¯¡¢¥ե¡¥¤¥ë¤Ë - AddLanguage - ¤ÇÀßÄꤵ¤줿¸À¸ì¤γÈĥ»Ҥ¬¤ʤ¤¤Ȥ­¤ϡ¢ - ¥ե¡¥¤¥ë¤ˤϸÀ¸ì°À­¤¬¤ʤ¤¤Ȥߤʤµ¤ì¤ޤ¹¡£

    - -

    Îã

    - DefaultLanguage en -

    - -

    »²¾È

    - -
    -
    top
    -

    ModMimeUsePathInfo ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:path_info ¥³¥ó¥ݡ¼¥ͥó¥Ȥò¥ե¡¥¤¥ë̾¤ΰìÉô¤Ȥ·¤ư·¤¦¤褦¤Ë -mod_mime ¤ËÄÌÃΤ¹¤ë
    ¹½ʸ:ModMimeUsePathInfo On|Off
    ¥ǥե©¥ë¥È:ModMimeUsePathInfo Off
    ¥³¥ó¥ƥ­¥¹¥È:¥ǥ£¥쥯¥ȥê
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:Apache 2.0.41 °ʹß
    -

    ModMimeUsePathInfo ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - mod_mime ¤λý¤ĥǥ£¥쥯¥ƥ£¥֤ò - ¥ꥯ¥¨¥¹¥ȤËŬÍѤµ¤»¤뤿¤á¤ˡ¢¥ե¡¥¤¥ë̾¤È path_info URL - ¥³¥ó¥ݡ¼¥ͥó¥Ȥò·ë¹礵¤»¤뤿¤á¤˻ÈÍѤ·¤ޤ¹¡£ - ¥ǥե©¥ë¥ȤǤϡÖ Off ¡פǡ¢path_info - ¥³¥ó¥ݡ¼¥ͥó¥ȤÏ̵»뤵¤ì¤ޤ¹¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϡ¢¥С¼¥Á¥ã¥ë¥ե¡¥¤¥륷¥¹¥ƥà¤ò»ÈÍѤ·¤Ƥ¤¤ëºݤË - ¿侩¤µ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤Ǥ¹¡£

    - -

    Îã

    - ModMimeUsePathInfo On -

    - -

    /bar ¤¬¸ºߤ·¤Æ (foo.shtml ¤Ï¸ºߤ·¤ʤ¤) - ModMimeUsePathInfo ¤¬ On ¤Ǥ¢¤ë¤Ȥ·¤ơ¢ - /bar/foo.shtml ¤ËÂФ¹¤ë¥ꥯ¥¨¥¹¥Ȥòȯ¹Ԥ·¤¿¾ì¹硢 - mod_mime ¤ÏÆþ¤äƤ­¤¿¥ꥯ¥¨¥¹¥Ȥò - /bar/foo.shtml ¤Ȥ·¤ư·¤¤¡¢ - AddOutputFileter INCLUDES .shtml ¤Τ褦¤ʥǥ£¥쥯¥ƥ£¥֤Ï - INCLUDES ¥ե£¥륿¤ò¥ꥯ¥¨¥¹¥ȤËÉղ䵤»¤ޤ¹¡£ - ModMimeUsePathInfo ¤¬ÀßÄꤵ¤ì¤ʤ±¤ì¤С¢ - INCLUDES ¥ե£¥륿¤ÏÉղ䵤ì¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    MultiviewsMatch ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - - -
    ÀâÌÀ:MultiViews ¤ǤΥޥåÁ¥󥰤θ¡º÷¤˴ޤޤ»¤ë -¥ե¡¥¤¥ë¤Υ¿¥¤¥פò»ØÄꤹ¤ë
    ¹½ʸ:MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers -[Handlers|Filters]
    ¥ǥե©¥ë¥È:MultiviewsMatch NegotiatedOnly
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:2.0.26 °ʹߤǻÈÍѲÄǽ
    -

    MultiviewsMatch ¤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢ - mod_negotiation ¤Î - Multiviews ¤Ë 3 ¼ïÎà¤ΰۤʤëµóư¤򤵤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - Multiviews ¤ò»ÈÍѤ¹¤ë¤ȡ¢¥ե¡¥¤¥ë (Îã index.html) - ¤ËÂФ¹¤ë¥ꥯ¥¨¥¹¥ȤËÂФ·¤ơ¢¥ͥ´¥·¥¨¡¼¥·¥ç¥󤹤ë³Èĥ»Ҥ¬¥١¼¥¹¤ËÉդ¤¤¿¤â¤Î - (index.html.en, index.html.fr ¤ä - index.html.gz) - ¤ò¥ޥåÁ¤µ¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    NegotiatedOnly ¥ª¥ץ·¥ç¥ó¤Ǥϡ¢¥١¼¥¹̾¤Ë³¤¯³Èĥ»ÒÁ´¤Ƥ¬ - ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤Ç mod_mime - ¤¬ǧ¼±¤¹¤ë³Èĥ»Ò (Îã ʸ»ú¥»¥åȡ¢¥³¥ó¥ƥó¥ȥ¿¥¤¥ס¢¸À¸ì¤䥨¥󥳡¼¥ǥ£¥ó¥°) - ¤˴ØϢÉդ±¤é¤ì¤Ƥ¤¤ʤ±¤ì¤Фʤê¤ޤ»¤󡣤³¤ì¤ÏÉûºîÍѤκǤ⾯¤ʤ¤ - ºǤâŪ³ΤʼÂÁõ¤ǡ¢¥ǥե©¥ë¥ȤˤʤäƤ¤¤ޤ¹¡£

    - -

    ¥ϥó¥ɥé¤ȥե£¥륿¤ÎξÊý¤⤷¤¯¤ÏÊÒÊý¤ȴØϢÉդ±¤é¤줿³Èĥ»Ҥò´ޤá¤ë¤ˤϡ¢ - MultiviewsMatch ¥ǥ£¥쥯¥ƥ£¥֤Ë Handlers, - Filters ¤ޤ¿¤Ϥ½¤ÎξÊý¤Υª¥ץ·¥ç¥ó¤򥻥åȤ·¤ޤ¹¡£ - ¤⤷¾¤ξò·郎Ʊ¤¸¤Ǥ¢¤ì¤С¢ºǤ⾮¤µ¤¤¥ե¡¥¤¥뤬Á÷¿®¤µ¤ì¤ޤ¹¡£ - Î㤨¤С¢500 ʸ»ú¤Î index.html.cgi ¤È 1000 ¥Х¤¥ȤÎ - index.html.pl ¤Ǥ¢¤ì¤С¢.cgi - ¤Υե¡¥¤¥뤬ͥÀ褵¤ì¤ޤ¹¡£.asis ¥ե¡¥¤¥ë¤òÍøÍѤ·¤Ƥ¤¤ë¥桼¥¶¤ϡ¢ - .asis ¥ե¡¥¤¥뤬 asis-handler ¤˴ØϢÉդ±¤é¤ì¤Ƥ¤¤ë¤Ȥ­¤ˤϡ¢ - ¥ϥó¥ɥ饪¥ץ·¥ç¥ó¤λÈÍѤ򹥤à¤Ǥ·¤礦¡£

    - -

    ºǸå¤ˡ¢mod_mime ¤¬ǧ¼±¤·¤ʤ¤³Èĥ»ҤǤ¢¤í¤¦¤Ȥ⡢ - ¤ɤó¤ʳÈĥ»ҤǤâ¥ޥåÁ¤µ¤»¤ë Any ¤¬»ÈÍѤǤ­¤ޤ¹¡£ - ¤³¤εóư¤Ï Apache 1.3 ¤ΤȤ­¤ÈƱ¤¸¤â¤Τǡ¢ͽ´ü¤·¤ʤ¤ưºÎ㤨¤Ð .old ¤ä - .bak ¥ե¡¥¤¥ë¤Ȥ¤¤ä¿¥¦¥§¥֥ޥ¹¥¿¤¬Á÷¿®¤ò°տޤ·¤Ƥ¤¤ʤ¤ - ¥ե¡¥¤¥ë¤òÁ÷¿®¤¹¤롢¤Ȥ¤¤ä¿ưºî¤ò¹Ԥʤ¦²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£

    - -

    Î㤨¤м¡¤ÎÀßÄê¤Ǥϡ¢¥ϥó¥ɥé¤ä¥ե£¥륿¤¬ Multiviews ¤˻²²ä¹¤뤳¤Ȥ¬ - ¤Ǥ­¤ޤ¹¤·¡¢̤ÃΤΥե¡¥¤¥ë¤Ͻü³°¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    - MultiviewsMatch Handlers Filters -

    - - -

    »²¾È

    - -
    -
    top
    -

    RemoveCharset ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë¤γÈĥ»Ҥ˴ØϢÉդ±¤é¤줿¤¹¤٤ƤÎʸ»ú¥»¥åÈ -¤ò²ò½ü¤¹¤ë
    ¹½ʸ:RemoveCharset extension [extension] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:2.0.24 °ʹߤǻÈÍѲÄǽ
    -

    RemoveCharset ¥ǥ£¥쥯¥ƥ£¥Ö - ¤ÏͿ¤¨¤é¤줿³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿ʸ»ú¥»¥åȤò¼è¤ê¾ä·¤ޤ¹¡£ - ¤³¤ì¤ˤè¤ꡢ¥µ¥֥ǥ£¥쥯¥ȥê¤ˤ¢¤ë .htaccess - ¥ե¡¥¤¥뤬¿ƥǥ£¥쥯¥ȥê¤䥵¡¼¥ФÎÀßÄê¥ե¡¥¤¥ë - ¤«¤é·Ѿµ¤·¤¿´ØϢÉդ±¤ò¼è¤ê¾ä¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£Î㤨¤Ð:

    - -

    extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤ó¡£ - ¤ޤ¿¡¢ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    Îã

    - RemoveCharset .html .shtml -

    - -
    -
    top
    -

    RemoveEncoding ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë¤γÈĥ»Ҥ˴ØϢÉդ±¤é¤줿¤¹¤٤ƤΥ³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥ó¥° -¤ò²ò½ü¤¹¤ë
    ¹½ʸ:RemoveEncoding extension [extension] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    RemoveEncoding ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - Ϳ¤¨¤é¤줿³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿¥¨¥󥳡¼¥ǥ£¥󥰤ò¼è¤ê¾ä·¤ޤ¹¡£ - ¤³¤ì¤ˤè¤ꡢ¥µ¥֥ǥ£¥쥯¥ȥê¤ˤ¢¤ë .htaccess - ¥ե¡¥¤¥뤬¿ƥǥ£¥쥯¥ȥê¤䥵¡¼¥ФÎÀßÄê¥ե¡¥¤¥뤫¤é·Ѿµ¤·¤¿´ØϢÉդ±¤ò - ¼è¤ê¾ä¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    /foo/.htaccess:

    - AddEncoding x-gzip .gz
    - AddType text/plain .asc
    - <Files *.gz.asc>
    - - RemoveEncoding .gz
    -
    - </Files> -

    - -

    ¤³¤ì¤ϡ¢foo.gz ¤Ï gzip - ¤ǥ¨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤뤳¤Ȥò»ØÄꤷ¤ޤ¹¤¬¡¢foo.gz.asc - ¤ϥ¨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤ʤ¤¥ץ졼¥ó¥ƥ­¥¹¥ȤÎ - ¥ե¡¥¤¥ë¤Ǥ¢¤ë¤Ȥ¤¤¦¤³¤Ȥò»ØÄꤷ¤ޤ¹¡£

    - -

    Ãí°Õ

    -

    RemoveEncoding ¤Ï - AddEncoding - ¥ǥ£¥쥯¥ƥ£¥֤θå¤ǽèÍý¤µ¤ì¤ޤ¹¤Τǡ¢ - Ʊ¤¸¥ǥ£¥쥯¥ȥê¤ÎÀßÄêÃæ¤ËξÊý¤¬¸½¤ì¤ë¤ȡ¢ - ¸å¼Ԥθú²̤¬ÂǤÁ¾äµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£

    -
    - -

    extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤ó¡£ - ¤ޤ¿¡¢ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -
    -
    top
    -

    RemoveHandler ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë¤γÈĥ»Ҥ˴ØϢÉդ±¤é¤줿¤¹¤٤ƤΥϥó¥ɥé¤ò -²ò½ü¤¹¤ë
    ¹½ʸ:RemoveHandler extension [extension] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    RemoveHandler ¥ǥ£¥쥯¥ƥ£¥Ö - ¤ÏͿ¤¨¤é¤줿³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿¥ϥó¥ɥé¤ò¼è¤ê¾ä·¤ޤ¹¡£ - ¤³¤ì¤ˤè¤ꡢ¥µ¥֥ǥ£¥쥯¥ȥê¤ˤ¢¤ë .htaccess - ¥ե¡¥¤¥뤬¿ƥǥ£¥쥯¥ȥê¤䥵¡¼¥ФÎÀßÄê¥ե¡¥¤¥ë - ¤«¤é·Ѿµ¤·¤¿´ØϢÉդ±¤ò¼è¤ê¾ä¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤¿¤Ȥ¨¤Ð:

    - -

    /foo/.htaccess:

    - AddHandler server-parsed .html -

    - -

    /foo/bar/.htaccess:

    - RemoveHandler .html -

    - -

    ¤³¤ì¤ϡ¢/foo/bar ¥ǥ£¥쥯¥ȥê¤Î .html - ¥ե¡¥¤¥ë¤Ï SSI (mod_include ¥⥸¥塼¥뻲¾È) ¤ǤϤʤ¯¡¢ - ÉáÄ̤Υե¡¥¤¥ë¤Ȥ·¤ư·¤ï¤ì¤ë¤褦¤ˤ¹¤ë¸ú²̤¬¤¢¤ê¤ޤ¹¡£ -

    - -

    extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤ó¡£ - ¤ޤ¿¡¢ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -
    -
    top
    -

    RemoveInputFilter ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿ÆþÎϥե£¥륿¤ò²ò½ü¤¹¤ë
    ¹½ʸ:RemoveInputFilter extension [extension] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:2.0.26 °ʹߤǻÈÍѲÄǽ
    -

    RemoveInputFilter ¥ǥ£¥쥯¥ƥ£¥֤Ï - »ØÄꤵ¤줿¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿ÆþÎϥե£¥륿¤ò²ò½ü¤·¤ޤ¹¡£ - ¤³¤ì¤òÍøÍѤ¹¤뤳¤Ȥǡ¢¿ƥǥ£¥쥯¥ȥê¤䥵¡¼¥ÐÀßÄê¥ե¡¥¤¥뤫¤é - ·Ѿµ¤·¤¿´ØϢÉդ±¤ò ¥µ¥֥ǥ£¥쥯¥ȥêÆâ¤ˤª¤¤¤Æ - .htaccess ¥ե¡¥¤¥ë¤Ǽè¤ê¾ä¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    extension °ú¿ô¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤󡣤ޤ¿¡¢ - ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    »²¾È

    - -
    -
    top
    -

    RemoveLanguage ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿¸À¸ì¤ò²ò½ü¤¹¤ë
    ¹½ʸ:RemoveLanguage extension [extension] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:2.0.24 °ʹߤǻÈÍѲÄǽ
    -

    RemoveLanguage ¥ǥ£¥쥯¥ƥ£¥֤Ï - »ØÄꤵ¤줿¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿¸À¸ì¤ò²ò½ü¤·¤ޤ¹¡£ - ¤³¤ì¤òÍøÍѤ¹¤뤳¤Ȥǡ¢¿ƥǥ£¥쥯¥ȥê¤䥵¡¼¥ÐÀßÄê¥ե¡¥¤¥뤫¤é - ·Ѿµ¤·¤¿´ØϢÉդ±¤ò ¥µ¥֥ǥ£¥쥯¥ȥêÆâ¤ˤª¤¤¤Æ - .htaccess ¥ե¡¥¤¥ë¤Ǽè¤ê¾ä¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    extension °ú¿ô¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤󡣤ޤ¿¡¢ - ºǽé¤ΥɥåȤϤĤ¤¤Ƥâ¤Ĥ«¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -
    -
    top
    -

    RemoveOutputFilter ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿½ÐÎϥե£¥륿¤ò²ò½ü¤¹¤ë
    ¹½ʸ:RemoveOutputFilter extension [extension] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    ¸ߴ¹À­:2.0.26 °ʹߤǤΤ߻ÈÍѲÄǽ
    -

    RemoveOutputFilter ¥ǥ£¥쥯¥ƥ£¥֤Ï - »ØÄꤵ¤줿¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿½ÐÎϥե£¥륿¤ò²ò½ü¤·¤ޤ¹¡£ - ¤³¤ì¤òÍøÍѤ¹¤뤳¤Ȥǡ¢¿ƥǥ£¥쥯¥ȥê¤䥵¡¼¥ÐÀßÄê¥ե¡¥¤¥뤫¤é - ·Ѿµ¤·¤¿´ØϢÉդ±¤ò ¥µ¥֥ǥ£¥쥯¥ȥêÆâ¤ˤª¤¤¤Æ - .htaccess ¥ե¡¥¤¥ë¤Ǽè¤ê¾ä¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤ó¡£ - ¤ޤ¿¡¢ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -

    Îã

    - RemoveOutputFilter shtml -

    - -

    »²¾È

    - -
    -
    top
    -

    RemoveType ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե¡¥¤¥ë¤γÈĥ»ҤȴØϢÉդ±¤é¤줿¥³¥ó¥ƥó¥ȥ¿¥¤¥פò -²ò½ü¤¹¤ë
    ¹½ʸ:RemoveType extension [extension] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    RemoveType ¥ǥ£¥쥯¥ƥ£¥֤ÏͿ¤¨¤é¤줿³Èĥ»ҤÎ - MIME ¥¿¥¤¥פδØϢÉդ±¤ò¼è¤ê¾ä·¤ޤ¹¡£¤³¤ì¤ˤè¤ꡢ - ¥µ¥֥ǥ£¥쥯¥ȥê¤ˤ¢¤ë .htaccess - ¥ե¡¥¤¥뤬¿ƥǥ£¥쥯¥ȥê¤䥵¡¼¥ФÎÀßÄê¥ե¡¥¤¥뤫¤é·Ѿµ¤·¤¿ - ´ØϢÉդ±¤ò¼è¤ê¾ä¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤¿¤Ȥ¨¤Ð:

    - -

    /foo/.htaccess:

    - RemoveType .cgi -

    - -

    ¤³¤ì¤Ï /foo/ ¥ǥ£¥쥯¥ȥê°ʲ¼¤Î .cgi - ¥ե¡¥¤¥ë¤ÎÆÃÊ̤ʰ·¤¤¤ò¼è¤ê¾ä·¤ޤ¹¡£¥ե¡¥¤¥ë¤Ï DefaultType ¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£

    - -

    Ãí°Õ

    -

    RemoveType ¥ǥ£¥쥯¥ƥ£¥֤Ï - AddType - ¥ǥ£¥쥯¥ƥ£¥֤θå¤˽èÍý¤µ¤ì¤ޤ¹¤Τǡ¢ - ξÊý¤¬Ʊ¤¸¥ǥ£¥쥯¥ȥê¤ÎÀßÄêÃæ¤˸½¤줿¾ì¹硢 - ¸å¼Ԥθú²̤¬ÂǤÁ¾äµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£

    -
    - -

    extension ¤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤ó¡£ - ¤ޤ¿¡¢ºǽé¤ΥɥåȤϤ¢¤äƤâ¤ʤ¯¤Ƥ⹽¤¤¤ޤ»¤ó¡£

    - -
    -
    top
    -

    TypesConfig ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:mime.types ¥ե¡¥¤¥ë¤ΰÌÃÖ
    ¹½ʸ:TypesConfig file-path
    ¥ǥե©¥ë¥È:TypesConfig conf/mime.types
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:¥١¼¥¹
    ¥⥸¥塼¥ë:mod_mime
    -

    TypesConfig ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢MIME - ¥¿¥¤¥×ÀßÄê¥ե¡¥¤¥ë¤ΰÌÃ֤òÀßÄꤷ¤ޤ¹¡£filename ¤Ï - ServerRoot ¤«¤é¤ÎÁêÂХѥ¹¤Ǥ¹¡£ - ¤³¤Υե¡¥¤¥ë¤ϥե¡¥¤¥ë¤γÈĥ»Ҥ«¤饳¥ó¥ƥó¥ȥ¿¥¤¥פؤÎ - ¥ǥե©¥ë¥ȤΥޥåԥ󥰤òÀßÄꤷ¤ޤ¹¡£ - ¤ۤȤó¤ɤδÉÍý¼Ԥϡ¢¤褯»Ȥï¤ì¤ë¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò - IANA ¤ËÅÐϿ¤µ¤줿¥³¥ó¥ƥó¥ȥ¿¥¤¥פ˴ØϢÉդ±¤Ƥ¤¤롢 - Apache ¤Î mime.types ¥ե¡¥¤¥ë¤ò»Ȥ¤¤ޤ¹¡£ - ¸½ºߤΰìÍ÷¤Ï http://www.iana.org/assignments/media-types/index.html - ¤ǴÉÍý¤µ¤ì¤Ƥ¤¤ޤ¹¡£¤³¤ì¤ϡ¢¼çÍפʥá¥ǥ£¥¢¥¿¥¤¥פÎÄêµÁ¤òÄ󶡤·¤ơ¢ - ɬÍפȤ³¤í¤ò AddType ¤Ç - ¾å½񤭤¹¤롢¤Ȥ¤¤¦Êýˡ¤Ç httpd.conf ¤ò´Êά¤ˤ·¤ޤ¹¡£ - mime.types ¤ϥµ¡¼¥Ф򥢥åץ°¥졼¥ɤ·¤¿¤Ȥ­¤Ë - Ã֤­´¹¤¨¤é¤ì¤뤫¤⤷¤ì¤ʤ¤¤Τǡ¢¤½¤Υե¡¥¤¥ë¤òľÀÜ - ÊԽ¸¤·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£

    - -

    ¥ե¡¥¤¥ë¤ϡ¢AddType - ¥ǥ£¥쥯¥ƥ£¥֤ΰú¿ô¤ÈƱ¤¸·Á¼°¤ιԤǹ½À®¤µ¤ì¤ޤ¹¡£

    - -

    - MIME-type [extension] ... -

    - -

    ³Èĥ»ҤÎÂçʸ»ú¾®ʸ»ú¤϶èÊ̤µ¤ì¤ޤ»¤󡣶õ¹Ԥä¥ϥå·¥å (`#') - ¤ǻϤޤë¹ԤÏ̵»뤵¤ì¤ޤ¹¡£

    - -
    - (1) IANA ¤˴û¤ËÅÐϿ¤µ¤ì¤Ƥ¤¤롢¤¢¤뤤¤Ï (2) - ¹­¤¯¼õ¤±Æþ¤ì¤é¤ì¤Ƥ¤¤ƥץé¥åȥۡ¼¥à´֤ǥե¡¥¤¥ë³Èĥ»Ҥ˾ׯͤ¬¤ʤ¤¡¢ - ¤Ȥ¤¤¦¾ì¹ç¤Ǥʤ±¤ì¤С¢ÇÛÉÛÃæ¤Î mime.types - ¥ե¡¥¤¥ë¤˿·¤¿¤ʤâ¤ΤòÅÐϿ¤¹¤ë¤褦¤Ë - Apache HTTP Server Project ¤˥ꥯ¥¨¥¹¥Ȥ·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£ - category/x-subtype ¤Υꥯ¥¨¥¹¥Ȥϼ«ưŪ¤˵Ѳ¼¤µ¤ì¤ޤ¹¤·¡¢ - ¸À¸ì¤äʸ»ú¥»¥åȤÎ̾Á°¶õ´֤Ǵû¤˻ÈÍѤµ¤ì¤Ƥ¤¤ơ¢¾×ÆͤβÄǽÀ­¤Τ¢¤ë - 2 ʸ»ú¤γÈĥ»ҤâµѲ¼¤µ¤ì¤ޤ¹¡£ -
    - -

    »²¾È

    - -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_mime.html.ja.utf8 b/docs/manual/mod/mod_mime.html.ja.utf8 new file mode 100644 index 00000000000..596cf700971 --- /dev/null +++ b/docs/manual/mod/mod_mime.html.ja.utf8 @@ -0,0 +1,969 @@ + + + + + +mod_mime - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_mime

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:リクエストされたファイルの拡張子とファイルの振る舞い + (ハンドラとフィルタ)、内容 (MIME タイプ、言語、文字セット、エンコーディング) + とを関連付ける
    ステータス:Base
    モジュール識別子:mime_module
    ソースファイル:mod_mime.c
    +

    概要

    + +

    このモジュールは拡張子を使っていろいろな「メタ情報」をファイルに + 関連付けるために使用されます。この情報はドキュメントのファイル名と + MIME タイプ、言語、文字セット、エンコーディングとを関連付けます。 + この情報はブラウザに送られますし、複数のファイルの中からユーザの好みの + ものが選ばれるように、コンテントネゴシエーションでも使われます。 + コンテントネゴシエーション + に関する詳しい情報は mod_negotiation + をご覧下さい。

    + +

    AddCharset ディレクティブ、 + AddEncoding ディレクティブ、 + AddHandler ディレクティブ、 + AddLanguage ディレクティブ、 + AddType ディレクティブはすべて、 + ファイルの拡張子をメタ情報にマップするために使用されます。 + それぞれ、ドキュメントの文字セット (訳注: charset)、content-encoding, + content-language, MIME タイプ (content-type) を設定します。 + TypesConfig ディレクティブは拡張子を + MIME タイプにマップするファイルを指定するために使用されます。

    + +

    さらに、mod_mime はコンテンツを作成、処理する + ハンドラ と フィルタ + を設定することができます。AddHandler ディレクティブ、AddOutputFilter ディレクティブ、AddInputFilter ディレクティブは + ドキュメントを扱うモジュールやスクリプトを制御します。 + MultiviewsMatch ディレクティブは + これらのディレクティブが指定したファイルの拡張子を + mod_negotiation が Multiviews のマッチをとるときに + 考慮するようにできます。

    + +

    mod_mime はメタ情報をファイル名と関連付けますが、 + core サーバにはあるコンテナ + (たとえば, <Location>, <Directory>, <Files>) の中のすべてのファイルを特定の + メタ情報と関連付けるディレクティブがあります。これらのディレクティブには + ForceType, SetHandler, SetInputFilter, SetOutputFilter があります。 + コアのディレクティブは mod_mime により定義された + ファイル名の拡張子のマッピングすべてを上書きします。

    + +

    ファイルのメタ情報を変えても Last-Modified + ヘッダの値は変わらないことに注意してください。ですから、 + それらを変更した場合は、クライアントやプロキシで以前にキャッシュされた + コピーがそのときのヘッダとともに使われる可能性があります。 + メタ情報 (言語、コンテントタイプ、文字セット、エンコーディング) を + 変更したときは、すべての訪問者が正しいコンテントヘッダを + 受け取るように、影響を受けるファイルに 'touch' コマンドを実行する + (最終更新日を更新する) 必要があるかもしれません。

    +
    + +
    top
    +
    +

    複数の拡張子のあるファイル

    +

    ファイルは複数の拡張子を持つことができ、拡張子の順番は通常は関係ありません。例えば、ファイル welcome.html.fr + がコンテントタイプは text/html + に、言語はフランス語にマップされる場合、welcome.fr.html + もまったく同じ情報にマップされます。 + 同じメタ情報にマップされる拡張子が複数あるときには、言語と + コンテントエンコーディングを除いて、 + 右側にあるものが使用されます。たとえば、.gif が MIME + タイプ image/gif にマップされ、.html + が MIME タイプ text/html + にマップされる場合は、ファイル welcome.gif.html は + MIME タイプ text/html に関連付けられます。

    + +

    リソースに複数の言語やエンコーディングを関連付けること + ができるため、 + 言語とコンテントエンコーディングは前のものに追加されていきます。 + たとえば、ファイル welcome.html.en.de は + Content-Language: en, de と Content-Type: + text/html として送信されます。

    + +

    複数の拡張子のあるファイルが MIME + タイプとハンドラの両方に関連付けられているときは注意する必要があります。 + その場合、普通はリクエストがハンドラに関連付けられた + モジュールによって扱われることになります。たとえば、拡張子 + .imap が (mod_imagemap の) imap-file + にマップされていて、.html が MIME タイプ text/html + にマップされているときは、ファイル world.imap.html は + imap-file ハンドラと text/html MIME + タイプに関連付けられます。ファイルが処理されるときは imap-file + ハンドラが使用されますので、そのファイルは mod_imagemap + のイメージマップファイルとして扱われることになります。

    +
    top
    +
    +

    コンテントエンコーディング

    +

    特定の MIME タイプのファイルはインターネットでの転送を簡単にするために、 + さらに符号化することができます。これは通常は gzip の + ような圧縮のことを指しますが、pgp のような暗号化や、 + バイナリファイルを ASCII (テキスト) 形式で送るために考案された + UUencoding のことを指すこともあります。

    + +

    HTTP/1.1 RFC + 14.11 節では次のように記述されています。

    + +
    +

    Content-Encoding エンティティヘッダフィールドはメディアタイプの + 修飾子として使われます。それが存在していれば、値はエンティティボディに + どの追加の符号化が適用されたかを示し、Content-Type ヘッダフィールドに + 書かれているメディアタイプを得るためにどの復号機構を適用すべきか、も + 示していることになります。Content-Encoding は主に、元のメディアタイプの + 同一性を失うことなくドキュメントを圧縮することを可能にするために + 使用されます。

    +
    + +

    複数のファイル拡張子 (複数の拡張子については 上の節 を参照) 使うことで、 + ファイルのタイプやエンコーディングを指定することが + できます。

    + +

    たとえば、Microsoft Word のドキュメントがあり、サイズを小さくするために + pkzip されているとします。.doc 拡張子が Microsoft Word の + ファイルタイプと関連付けられていて、.zip 拡張子が + pkzip ファイルエンコーディングと関連付けられていると、ファイル + Resume.doc.zip は pkzip された Word ドキュメントである + ということがわかります。

    + +

    クライアントのブラウザにエンコーディング方法を知らせるために、 + Apache はリソースと共に Content-Encoding ヘッダを + 送ります。

    + +

    Content-encoding: pkzip

    +
    top
    +
    +

    文字セットと言語

    +

    ファイルタイプとファイルエンコーディングの他に重要な情報は + ドキュメントの書かれている言語と、どの文字セットでファイルが表示 + されるべきか、というものです。たとえば、ドキュメントはベトナムの + アルファベットやキリル文字で書かれていて、そのように表示される + 必要があるかもしれません。この情報もまた、HTTP ヘッダで + 送信されます。

    + +

    文字セット、言語、エンコーディング、mime タイプはすべて + コンテントネゴシエーション (mod_negotiation 参照) + の最中に、複数の文字セット、言語、エンコーディング、MIME タイプからなる + 代替物があるときにどのドキュメントをクライアントに送るのかを + 決定するときに使われます。AddCharset, + AddEncoding, AddLanguage, + AddType の各ディレクティブで作成された + 拡張子の関連付け (と MimeMagicFile でリストされている + 拡張子) がこの選択に参加します。AddHandler, + AddInputFilter, + AddOutputFilter の + 各ディレクティブでのみ関連付けられている拡張子は + MultiviewsMatch ディレクティブを + 使うことでマッチの + 処理に含めることも外すこともできます。

    + +

    Charset

    +

    さらに情報を伝えるために、Apache は文書の言語を + Content-Language ヘッダで送ることもあります。 + また、情報を正しく表示するために使用すべき文字セットを示すために + Conten-Type ヘッダに情報を追加することもあります。

    + +

    + Content-Language: en, fr
    + Content-Type: text/plain; charset=ISO-8859-1 +

    + +

    言語の指定は二文字の短縮形で行なわれます。charset が + 使用すべき文字セットの名前です。

    + +
    +
    top
    +

    AddCharset ディレクティブ

    + + + + + + + +
    説明:ファイル名の拡張子を指定された文字セットにマップする
    構文:AddCharset charset extension +[extension] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    AddCharset ディレクティブは、 + 与えられた拡張子を指定された charset にマップします。charset + は、拡張子 extension を含んでいるファイル名の + MIME charset + パラメータです。新しいマッピングは既にある他のマッピングに追加され、同じ拡張子 + extension のためのマッピングを上書きします。

    + +

    例

    + AddLanguage ja .ja
    + AddCharset EUC-JP .euc
    + AddCharset ISO-2022-JP .jis
    + AddCharset SHIFT_JIS .sjis +

    + +

    この場合、ドキュメント xxxx.ja.jis は charset が + ISO-2022-JP の日本語のドキュメントとして扱われます + (xxxx.jis.ja も同様)。AddCharset + ディレクティブは、ドキュメントが適切に解釈され表示されるように、 + ドキュメントの charset の情報をクライアントに教えるために役に立ちます。 + また、サーバがクライアントの charset + の優先度に基づいて複数のドキュメントの中からドキュメントを選ぶコンテントネゴシエーションのためにも役に立ちます。

    + +

    引数 extensionは大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。

    + +

    参照

    + +
    +
    top
    +

    AddEncoding ディレクティブ

    + + + + + + + +
    説明:ファイル名の拡張子を指定されたエンコーディング +にマップする
    構文:AddEncoding MIME-enc extension +[extension] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    AddEncoding ディレクティブは、 + 与えられた拡張子を指定されたエンコーディングにマップします。 + MIME-enc は、拡張子 extension + を含んだドキュメントに使用する MIME エンコーディングです。 + この新しいマッピングは既にある他のマッピングに追加され、 + 同じ拡張子 extension のためのマッピングを上書きします。

    + +

    例

    + AddEncoding x-gzip .gz
    + AddEncoding x-compress .Z
    +

    + +

    これは、拡張子 .gz を含むファイル名が x-gzip + エンコーディングを使ってエンコードされていることと、拡張子 .Z + を含むファイル名が x-compress + でエンコードされていることを指定します。

    + +

    古いクライアントは x-zip と x-compress + が返ってくることを期待しますが、標準規格ではそれぞれ + gzip と compress + と等価であることになっています。Apache + は、コンテントエンコーディングの比較をするときには、先頭にある + x- を無視します。Apache + がエンコーディング付きで応答を返すときは、クライアントが要求した形式 + (すなわち、x-foo や foo) + を使用します。要するに、この二つのエンコーディングの場合は常に + x-gzip と x-compress + を使うべきである、ということです。deflate + のようなより新しいエンコーディングでは、x- + なしで指定してください。 +

    + +

    引数 extension は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。

    + +
    +
    top
    +

    AddHandler ディレクティブ

    + + + + + + + +
    説明:ファイル名の拡張子を指定されたハンドラにマップする
    構文:AddHandler handler-name extension +[extension] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    拡張子 extension が名前にあるファイルは指定された handler-name に扱われます。 + この新しいマッピングは既にある他のマッピングに追加され、 + 同じ拡張子 extension + のためのマッピングを上書きします。たとえば、拡張子 + ".cgi" で終わるファイルを CGI + スクリプトとして扱いたいときは、以下の設定をします。

    + +

    + AddHandler cgi-script .cgi +

    + +

    これを httpd.conf ファイルに記述することで、拡張子 + ".cgi" のファイルは CGI プログラムとして扱われます。 +

    + +

    引数 extension は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。

    + +

    参照

    + +
    +
    top
    +

    AddInputFilter ディレクティブ

    + + + + + + + + +
    説明:ファイルの拡張子をクライアントのリクエストを処理する + フィルタにマップする
    構文:AddInputFilter filter[;filter...] +extension [extension] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    互換性:2.0.26 以降で使用可能
    +

    AddInputFilter はファイルの拡張子 + extension をクライアントのリクエストや POST がサーバに来たときに + 処理をするフィルタにマップします。 + これは、SetInputFilter ディレクティブも + 含め、他の場所で定義されているフィルタに加えられます。 + このマッピングはすでにあるものより優先されてマージされ、 + 同じ extension に対する既存のマッピングを上書きします。

    + +

    複数のフィルタを指定するときは、データを処理する順番にセミコロンで + 繋いで書く必要があります。フィルタと extension との + 両方の引数は大文字小文字を区別せず、拡張子の最初のドットは + あってもなくても構いません。

    + +

    参照

    + +
    +
    top
    +

    AddLanguage ディレクティブ

    + + + + + + + +
    説明:ファイル名を指定された言語にマップ
    構文:AddLanguage MIME-lang extension +[extension] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    AddLanguage ディレクティブは、与えられた拡張子を指定された + content language にマップします。MIME-lang は、拡張子 + extension を含んでいるファイル名の MIME における言語です。 + この新しいマッピングは既にあるマッピングに追加され、同じ拡張子 + extension のためのマッピングを上書きします。

    + +

    例

    + AddEncoding x-compress .Z
    + AddLanguage en .en
    + AddLanguage fr .fr +

    + +

    この場合、xxxx.en.Z ドキュメントは compress + された英語のドキュメントとして扱われます (xxxx.Z.en + も同様)。content language はクライアントに通知されますが、 + ブラウザがこの情報を使うことはおそらくありません。 + AddLanguage + ディレクティブは、サーバがクライアントの言語の優先度に基づいて複数の + ドキュメントの中からドキュメントを選ぶコンテントネゴシエーションのためにより役に立ちます。

    + +

    複数の言語が同じ拡張子に割り当てられているときは、 + 最後のものが使用されます。すなわち、次のような場合、

    + +

    + AddLanguage en .en
    + AddLanguage en-gb .en
    + AddLanguage en-us .en +

    + +

    拡張子 .en のあるドキュメントは + en-us として扱われます。

    + +

    引数 extension は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。

    + +

    参照

    + +
    +
    top
    +

    AddOutputFilter ディレクティブ

    + + + + + + + + +
    説明:ファイル名の拡張子をサーバからの応答を処理するフィルタに + マップする
    構文:AddOutputFilter filter[;filter...] +extension [extension] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    互換性:2.0.26 以降で使用可能
    +

    AddOutputFilter ディレクティブは + 拡張子 extension をサーバの応答がクライアントに送られる + 前に処理するフィルタを定義します。 + これは SetOutputFilter + ディレクティブと AddOutputFilterByType ディレクティブ + を含め、他の場所で定義されているフィルタに加えられます。 + この新しいマッピングは既にあるマッピングに追加され、同じ拡張子 + extension のためのマッピングを上書きします。

    + +

    例えば、以下の設定はすべての .shtml ファイルを SSI で処理し、 + その出力を mod_deflate を使って圧縮します。

    + +

    + AddOutputFilter INCLUDES;DEFLATE shtml +

    + +

    複数のフィルタを指定するときは、データを処理する順番にセミコロンで + 繋いで書く必要があります。filter と extension の + 両引数は大文字小文字を区別せず、拡張子の最初のドットは + あってもなくても構いません。

    + +

    参照

    + +
    +
    top
    +

    AddType ディレクティブ

    + + + + + + + +
    説明:ファイル名の拡張子を指定されたコンテントタイプにマップ
    構文:AddType MIME-type extension +[extension] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    AddType ディレクティブは、 + 与えられた拡張子を指定されたコンテントタイプにマップします。 + MIME-type は拡張子 extension + を含んだドキュメントに使用する MIME タイプです。 + この新しいマッピングは既にあるマッピングに追加され、同じ拡張子 + extension のためのマッピングを上書きします。 + このディレクティブは MIME タイプファイル (TypesConfig ディレクティブを参照) + に無いマッピングを追加するために使用することができます。

    + +

    例

    + AddType image/gif .gif +

    + +
    + 新しい MIME タイプは、TypesConfig + ファイルを変更するのではなく、AddType + ディレクティブを使って追加することが推奨されています。 +
    + +

    引数 extension は大文字小文字を区別せず、 + 最初のドットはあってもなくても構いません。

    + +

    参照

    + +
    +
    top
    +

    DefaultLanguage ディレクティブ

    + + + + + + + +
    説明:あるスコープのすべてのファイルを指定された言語に +設定する
    構文:DefaultLanguage MIME-lang
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    DefaultLanguage ディレクティブは、Apache + がディレクティブのスコープ (例えば、その時点の + <Directory> + の範囲) にある、明示的な言語拡張子 + (AddLanguage で設定される + .fr や .de) のない全てのファイルを、指定された + MIME-lang 言語であるとみなすようにします。 + これにより、すべてのファイル名を変えることなく、 + ディレクトリがオランダ語のコンテントを含んでいる、 + というようなことを指定することができます。 + 拡張子を使用して言語を指定する方法と違い、 + DefaultLanguage + は一つの言語しか指定できないことに注意してください。

    + +

    DefaultLanguage + ディレクティブが有効でなく、ファイルに + AddLanguage + で設定された言語の拡張子がないときは、 + ファイルには言語属性がないとみなされます。

    + +

    例

    + DefaultLanguage en +

    + +

    参照

    + +
    +
    top
    +

    ModMimeUsePathInfo ディレクティブ

    + + + + + + + + +
    説明:path_info コンポーネントをファイル名の一部として扱うように +mod_mime に通知する
    構文:ModMimeUsePathInfo On|Off
    デフォルト:ModMimeUsePathInfo Off
    コンテキスト:ディレクトリ
    ステータス:Base
    モジュール:mod_mime
    互換性:Apache 2.0.41 以降
    +

    ModMimeUsePathInfo ディレクティブは、 + mod_mime の持つディレクティブを + リクエストに適用させるために、ファイル名と path_info URL + コンポーネントを結合させるために使用します。 + デフォルトでは「 Off 」で、path_info + コンポーネントは無視されます。

    + +

    このディレクティブは、バーチャルファイルシステムを使用している際に + 推奨されるディレクティブです。

    + +

    例

    + ModMimeUsePathInfo On +

    + +

    /bar が存在して (foo.shtml は存在しない) + ModMimeUsePathInfo が On であるとして、 + /bar/foo.shtml に対するリクエストを発行した場合、 + mod_mime は入ってきたリクエストを + /bar/foo.shtml として扱い、 + AddOutputFileter INCLUDES .shtml のようなディレクティブは + INCLUDES フィルタをリクエストに付加させます。 + ModMimeUsePathInfo が設定されなければ、 + INCLUDES フィルタは付加されません。

    + +

    参照

    + +
    +
    top
    +

    MultiviewsMatch ディレクティブ

    + + + + + + + + + +
    説明:MultiViews でのマッチングの検索に含ませる +ファイルのタイプを指定する
    構文:MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters]
    デフォルト:MultiviewsMatch NegotiatedOnly
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    互換性:2.0.26 以降で使用可能
    +

    MultiviewsMatch を使用することで、 + mod_negotiation の + Multiviews に 3 種類の異なる挙動をさせることができます。 + Multiviews を使用すると、ファイル (例 index.html) + に対するリクエストに対して、ネゴシエーションする拡張子がベースに付いたもの + (index.html.en, index.html.fr や + index.html.gz) + をマッチさせることができます。

    + +

    NegotiatedOnly オプションでは、ベース名に続く拡張子全てが + コンテントネゴシエーションで mod_mime + が認識する拡張子 (例 文字セット、コンテントタイプ、言語やエンコーディング) + に関連付けられていなければなりません。これは副作用の最も少ない + 最も的確な実装で、デフォルトになっています。

    + +

    ハンドラとフィルタの両方もしくは片方と関連付けられた拡張子を含めるには、 + MultiviewsMatch ディレクティブに Handlers, + Filters またはその両方のオプションをセットします。 + もし他の条件が同じであれば、最も小さいファイルが送信されます。 + 例えば、500 文字の index.html.cgi と 1000 バイトの + index.html.pl であれば、.cgi + のファイルが優先されます。.asis ファイルを利用しているユーザは、 + .asis ファイルが asis-handler に関連付けられているときには、 + ハンドラオプションの使用を好むでしょう。

    + +

    最後に、mod_mime が認識しない拡張子であろうとも、 + どんな拡張子でもマッチさせる Any が使用できます。 + この挙動は Apache 1.3 のときと同じもので、予期しない動作、例えば .old や + .bak ファイルといったウェブマスタが送信を意図していない + ファイルを送信する、といった動作を行なう可能性があります。

    + +

    例えば次の設定では、ハンドラやフィルタが Multiviews に参加することが + できますし、未知のファイルは除外することができます。

    + +

    + MultiviewsMatch Handlers Filters +

    + + +

    参照

    + +
    +
    top
    +

    RemoveCharset ディレクティブ

    + + + + + + + + +
    説明:ファイルの拡張子に関連付けられたすべての文字セット +を解除する
    構文:RemoveCharset extension [extension] +...
    コンテキスト:バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    互換性:2.0.24 以降で使用可能
    +

    RemoveCharset ディレクティブ + は与えられた拡張子に関連付けられた文字セットを取り消します。 + これにより、サブディレクトリにある .htaccess + ファイルが親ディレクトリやサーバの設定ファイル + から継承した関連付けを取り消すことができます。例えば:

    + +

    extension は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。

    + +

    例

    + RemoveCharset .html .shtml +

    + +
    +
    top
    +

    RemoveEncoding ディレクティブ

    + + + + + + + +
    説明:ファイルの拡張子に関連付けられたすべてのコンテントエンコーディング +を解除する
    構文:RemoveEncoding extension [extension] +...
    コンテキスト:バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    RemoveEncoding ディレクティブは、 + 与えられた拡張子に関連付けられたエンコーディングを取り消します。 + これにより、サブディレクトリにある .htaccess + ファイルが親ディレクトリやサーバの設定ファイルから継承した関連付けを + 取り消すことができます。

    + +

    /foo/.htaccess:

    + AddEncoding x-gzip .gz
    + AddType text/plain .asc
    + <Files *.gz.asc>
    + + RemoveEncoding .gz
    +
    + </Files> +

    + +

    これは、foo.gz は gzip + でエンコードされていることを指定しますが、foo.gz.asc + はエンコードされていないプレーンテキストの + ファイルであるということを指定します。

    + +

    注意

    +

    RemoveEncoding は + AddEncoding + ディレクティブの後で処理されますので、 + 同じディレクトリの設定中に両方が現れると、 + 後者の効果が打ち消される可能性があります。

    +
    + +

    extension は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。

    + +
    +
    top
    +

    RemoveHandler ディレクティブ

    + + + + + + + +
    説明:ファイルの拡張子に関連付けられたすべてのハンドラを +解除する
    構文:RemoveHandler extension [extension] +...
    コンテキスト:バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    RemoveHandler ディレクティブ + は与えられた拡張子に関連付けられたハンドラを取り消します。 + これにより、サブディレクトリにある .htaccess + ファイルが親ディレクトリやサーバの設定ファイル + から継承した関連付けを取り消すことができます。たとえば:

    + +

    /foo/.htaccess:

    + AddHandler server-parsed .html +

    + +

    /foo/bar/.htaccess:

    + RemoveHandler .html +

    + +

    これは、/foo/bar ディレクトリの .html + ファイルは SSI (mod_include モジュール参照) ではなく、 + 普通のファイルとして扱われるようにする効果があります。 +

    + +

    extension は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。

    + +
    +
    top
    +

    RemoveInputFilter ディレクティブ

    + + + + + + + + +
    説明:ファイル拡張子に関連付けられた入力フィルタを解除する
    構文:RemoveInputFilter extension [extension] +...
    コンテキスト:バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    互換性:2.0.26 以降で使用可能
    +

    RemoveInputFilter ディレクティブは + 指定されたファイル拡張子に関連付けられた入力フィルタを解除します。 + これを利用することで、親ディレクトリやサーバ設定ファイルから + 継承した関連付けを サブディレクトリ内において + .htaccess ファイルで取り消すことができます。

    + +

    extension 引数は大文字小文字を区別しません。また、 + 最初のドットはあってもなくても構いません。

    + +

    参照

    + +
    +
    top
    +

    RemoveLanguage ディレクティブ

    + + + + + + + + +
    説明:ファイル拡張子に関連付けられた言語を解除する
    構文:RemoveLanguage extension [extension] +...
    コンテキスト:バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    互換性:2.0.24 以降で使用可能
    +

    RemoveLanguage ディレクティブは + 指定されたファイル拡張子に関連付けられた言語を解除します。 + これを利用することで、親ディレクトリやサーバ設定ファイルから + 継承した関連付けを サブディレクトリ内において + .htaccess ファイルで取り消すことができます。

    + +

    extension 引数は大文字小文字を区別しません。また、 + 最初のドットはついてもつかなくても構いません。

    + +
    +
    top
    +

    RemoveOutputFilter ディレクティブ

    + + + + + + + + +
    説明:ファイル拡張子に関連付けられた出力フィルタを解除する
    構文:RemoveOutputFilter extension [extension] +...
    コンテキスト:バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    互換性:2.0.26 以降でのみ使用可能
    +

    RemoveOutputFilter ディレクティブは + 指定されたファイル拡張子に関連付けられた出力フィルタを解除します。 + これを利用することで、親ディレクトリやサーバ設定ファイルから + 継承した関連付けを サブディレクトリ内において + .htaccess ファイルで取り消すことができます。

    + +

    extension は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。

    + +

    例

    + RemoveOutputFilter shtml +

    + +

    参照

    + +
    +
    top
    +

    RemoveType ディレクティブ

    + + + + + + + +
    説明:ファイルの拡張子と関連付けられたコンテントタイプを +解除する
    構文:RemoveType extension [extension] +...
    コンテキスト:バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_mime
    +

    RemoveType ディレクティブは与えられた拡張子の + MIME タイプの関連付けを取り消します。これにより、 + サブディレクトリにある .htaccess + ファイルが親ディレクトリやサーバの設定ファイルから継承した + 関連付けを取り消すことができます。たとえば:

    + +

    /foo/.htaccess:

    + RemoveType .cgi +

    + +

    これは /foo/ ディレクトリ以下の .cgi + ファイルの特別な扱いを取り消します。ファイルは DefaultType として扱われます。

    + +

    注意

    +

    RemoveType ディレクティブは + AddType + ディレクティブの後に処理されますので、 + 両方が同じディレクトリの設定中に現れた場合、 + 後者の効果が打ち消される可能性があります。

    +
    + +

    extension は大文字小文字を区別しません。 + また、最初のドットはあってもなくても構いません。

    + +
    +
    top
    +

    TypesConfig ディレクティブ

    + + + + + + + +
    説明:mime.types ファイルの位置
    構文:TypesConfig file-path
    デフォルト:TypesConfig conf/mime.types
    コンテキスト:サーバ設定ファイル
    ステータス:Base
    モジュール:mod_mime
    +

    TypesConfig ディレクティブは、MIME + タイプ設定ファイルの位置を設定します。filename は + ServerRoot からの相対パスです。 + このファイルはファイルの拡張子からコンテントタイプへの + デフォルトのマッピングを設定します。 + ほとんどの管理者は、よく使われるファイル名の拡張子を + IANA に登録されたコンテントタイプに関連付けている、 + Apache の mime.types ファイルを使います。 + 現在の一覧は http://www.iana.org/assignments/media-types/index.html + で管理されています。これは、主要なメディアタイプの定義を提供して、 + 必要ところを AddType で + 上書きする、という方法で httpd.conf を簡略にします。 + mime.types はサーバをアップグレードしたときに + 置き換えられるかもしれないので、そのファイルを直接 + 編集しないでください。

    + +

    ファイルは、AddType + ディレクティブの引数と同じ形式の行で構成されます。

    + +

    + MIME-type [extension] ... +

    + +

    拡張子の大文字小文字は区別されません。空行やハッシュ (`#') + で始まる行は無視されます。

    + +
    + (1) IANA に既に登録されている、あるいは (2) + 広く受け入れられていてプラットホーム間でファイル拡張子に衝突がない、 + という場合でなければ、配布中の mime.types + ファイルに新たなものを登録するように + Apache HTTP Server Project にリクエストしないでください。 + category/x-subtype のリクエストは自動的に却下されますし、 + 言語や文字セットの名前空間で既に使用されていて、衝突の可能性のある + 2 文字の拡張子も却下されます。 +
    + +

    参照

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_mime.xml b/docs/manual/mod/mod_mime.xml index b811495375e..04632b47b91 100644 --- a/docs/manual/mod/mod_mime.xml +++ b/docs/manual/mod/mod_mime.xml @@ -4,12 +4,12 @@ + - + mod_mime /mod/ .. en - ja + ja diff --git a/docs/manual/mod/mod_mime_magic.html b/docs/manual/mod/mod_mime_magic.html index f413ffe9810..fd1bb7229a6 100644 --- a/docs/manual/mod/mod_mime_magic.html +++ b/docs/manual/mod/mod_mime_magic.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_mime_magic.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_mime_magic.html.en b/docs/manual/mod/mod_mime_magic.html.en index 304badaa057..5fef87f5f98 100644 --- a/docs/manual/mod/mod_mime_magic.html.en +++ b/docs/manual/mod/mod_mime_magic.html.en @@ -1,38 +1,46 @@ - -mod_mime_magic - Apache HTTP Server +mod_mime_magic - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_mime_magic

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_mime_magic

    Available Languages:  en 

    - -
    Description:Determines the MIME type of a file by looking at a few bytes of its contents
    Status:Extension
    Module Identifier:mime_magic_module
    Source File:mod_mime_magic.c
    +Module Identifier:mime_magic_module +Source File:mod_mime_magic.c

    Summary

    -

    This module determines the MIME type of files in the same - way the Unix file(1) command works: it looks at the first - few bytes of the file. It is intended as a "second line of defense" +

    This module determines the MIME + type of files in the same way the Unix + file(1) command works: it looks at the first few + bytes of the file. It is intended as a "second line of defense" for cases that mod_mime can't resolve.

    This module is derived from a free version of the @@ -41,16 +49,16 @@ what the contents are. This module is active only if the magic file is specified by the MimeMagicFile directive.

    -

    Directives

    - -

    Topics

    + +

    Directives

    + +
    top

    Format of the Magic File

    @@ -268,7 +276,28 @@ using the specified magic file

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_mime_magic.xml b/docs/manual/mod/mod_mime_magic.xml index 70d00681506..0c40c38fb01 100644 --- a/docs/manual/mod/mod_mime_magic.xml +++ b/docs/manual/mod/mod_mime_magic.xml @@ -4,12 +4,12 @@ - + mod_mime_magic /mod/ .. diff --git a/docs/manual/mod/mod_negotiation.html b/docs/manual/mod/mod_negotiation.html index c4e86d3a498..dbedc3d00dd 100644 --- a/docs/manual/mod/mod_negotiation.html +++ b/docs/manual/mod/mod_negotiation.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_negotiation.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_negotiation.html.ja.euc-jp +URI: mod_negotiation.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_negotiation.html.en b/docs/manual/mod/mod_negotiation.html.en index 226e47d570c..c2b911a1111 100644 --- a/docs/manual/mod/mod_negotiation.html.en +++ b/docs/manual/mod/mod_negotiation.html.en @@ -1,33 +1,40 @@ - -mod_negotiation - Apache HTTP Server +mod_negotiation - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_negotiation

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_negotiation

    Available Languages:  en  |  ja 

    - -
    Description:Provides for content negotiation
    Status:Base
    Module Identifier:negotiation_module
    Source File:mod_negotiation.c
    +Module Identifier:negotiation_module +Source File:mod_negotiation.c

    Summary

    Content negotiation, or more accurately content selection, is @@ -46,24 +53,24 @@ results.

    -
    top

    Type maps

    @@ -100,10 +107,11 @@ Negotiation
    Content-Type:
    - The MIME media type of the document, with optional - parameters. Parameters are separated from the media type - and from one another by a semi-colon, with a syntax of - name=value. Common parameters include: + The MIME media type of + the document, with optional parameters. Parameters are + separated from the media type and from one another by a + semi-colon, with a syntax of name=value. Common + parameters include:
    level
    @@ -112,8 +120,8 @@ Negotiation 0.
    qs
    -
    a floating-point number with a value in the range 0.0 - to 1.0, indicating the relative 'quality' of this variant +
    a floating-point number with a value in the range 0[.000] + to 1[.000], indicating the relative 'quality' of this variant compared to the other available variants, independent of the client's capabilities. For example, a jpeg file is usually of higher source quality than an ascii file if it @@ -300,7 +308,28 @@ the client does not express a preference

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_negotiation.html.ja.euc-jp b/docs/manual/mod/mod_negotiation.html.ja.euc-jp deleted file mode 100644 index 39c193d3bd5..00000000000 --- a/docs/manual/mod/mod_negotiation.html.ja.euc-jp +++ /dev/null @@ -1,300 +0,0 @@ - - - -mod_negotiation - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_negotiation

    -
    -

    Available Languages:  en  | - ja 

    -
    - - - -
    ÀâÌÀ:¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó - µ¡ǽ¤òÄ󶡤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:negotiation_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_negotiation.c
    -

    ³µÍ×

    - -

    ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥󡢤è¤êÀµ³Τˤϥ³¥ó¥ƥó¥ĤÎÁªÂòµ¡ǽ¤ϡ¢ - ʣ¿ôÍѰդµ¤ì¤Ƥ¤¤ë¥ɥ­¥å¥á¥ó¥Ȥ«¤顢¥¯¥饤¥¢¥ó¥ȤÎǽÎϤ˰ìÈֹç¤ä¿ - ¥ɥ­¥å¥á¥ó¥ȤòÁªÂ򤹤뵡ǽ¤Ǥ¹¡£¤³¤μÂÁõ¤ÏÆó¤Ĥ¢¤ê¤ޤ¹¡£

    - -
      -
    • ¥¿¥¤¥ץޥå× (type-map - ¥ϥó¥ɥé¤ǰ·¤ï¤ì¤ë¥ե¡¥¤¥ë)¡£¤³¤ì¤Ï variants - ¤ò´ޤó¤Ǥ¤¤ë¥ե¡¥¤¥ë¤òÌÀ¼¨Ū¤˻ØÄꤷ¤ޤ¹¡£
    • - -
    • MultiViews ¤Îõº÷ (MultiViews Option ¤Çͭ¸ú¤ˤʤê¤ޤ¹)¡£ - ¥µ¡¼¥Ф¬°ÅÌۤÎÆâ¤˥ե¡¥¤¥ë̾¤Υѥ¿¡¼¥ó¥ޥåÁ¤ò¹Ԥʤ¤¡¢ - ¤½¤ηë²̤«¤éÁªÂ򤷤ޤ¹¡£
    • -
    -
    - -
    top
    -
    -

    ¥¿¥¤¥ץޥå×

    -

    ¥¿¥¤¥ץޥåפÏ RFC 822 ¤Υ᡼¥ë¥إåÀ¤ËÎà»÷¤·¤¿½񼰤Ǥ¹¡£ - ¥ɥ­¥å¥á¥ó¥Ȥε­½Ҥ¬¶õ¹ԤÇʬΥ¤µ¤ì¤ƽ񤫤ì¤Ƥ¤¤ơ¢¥ϥå·¥åʸ»ú - ('#') ¤ǻϤޤë¹Ԥϥ³¥á¥ó¥ȤȤ·¤ư·¤ï¤ì¤ޤ¹¡£ - ¥ɥ­¥å¥á¥ó¥ȤÎÀâÌÀ¤Ïʣ¿ô¤ΥإåÀ¥쥳¡¼¥ɤ«¤鹽À®¤µ¤ì¤ޤ¹¡£ - ¥쥳¡¼¥ɤϡ¢³¤­¤ιԤ¬¶õÇò¤ǻϤޤäƤ¤¤ë¤Èʣ¿ô¤ιԤˤޤ¿¤¬¤ê¤ޤ¹¡£ - ºǽé¤ζõÇ򤬾õ¤ì¤ơ¢Á°¤ιԤȤĤʤ²¤Æ 1 ¹ԤȤ·¤ư·¤ï¤ì¤ޤ¹¡£ - ¥إåÀ¥쥳¡¼¥ɤϥ­¡¼¥¥É̾¤θå¤ËÃͤ¬³¤¯¤Ȥ¤¤¦·Á¼°¤ǡ¢ - ¥­¡¼¥¥É̾¤Ͼï¤˥³¥í¥ó¤ǽª¤ï¤ê¤ޤ¹¡£¶õÇò¤ϥإåÀ̾¤ÈÃͤδ֡¢ - ÃͤΥȡ¼¥¯¥ó¤δ֤ËÆþ¤ì¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - »ÈÍѲÄǽ¤ʥإåÀ¤ϰʲ¼¤ΤȤª¤ê¤Ǥ¹:

    - -
    -
    Content-Encoding:
    -
    ¥ե¡¥¤¥ë¤Υ¨¥󥳡¼¥ǥ£¥󥰡£Apache ¤Ï AddEncoding ¥ǥ£¥쥯¥ƥ£¥Ö - ¤ÇÄêµÁ¤µ¤줿¥¨¥󥳡¼¥ǥ£¥󥰤À¤±¤òǧ¼±¤·¤ޤ¹¡£Ä̾ï compress - ¤µ¤줿¥ե¡¥¤¥ë¤Τ¿¤á¤Î x-compress ¤È gzip - ¤µ¤줿¥ե¡¥¤¥ë¤Τ¿¤á¤Î x-gzip ¤ò´ޤߤޤ¹¡£ - ¥¨¥󥳡¼¥ǥ£¥󥰤ÎÈæ³Ӥ򤹤ë¤Ȥ­¤ϡ¢ÀÜƬ¼­ x- - ¤Ï̵»뤵¤ì¤ޤ¹¡£
    - -
    Content-Language:
    -
    ¥¤¥󥿡¼¥ͥåÈɸ½à¤θÀ¸쥿¥° - (RFC 1766) - ¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ë¸À¸ì¤μïÎࡣÎ㤨¤С¢en - ¤ϱѸì¤òɽ¤·¤ޤ¹¡£ - ʣ¿ô¤θÀ¸줬³ÊǼ¤µ¤ì¤ë¾ì¹ç¤ϥ³¥ó¥ޤǶèÀڤé¤ì¤ޤ¹¡£
    - -
    Content-Length:
    -
    ¥ե¡¥¤¥ë¤ÎŤµ (¥Х¤¥ȿô)¡£ - ¤³¤ΥإåÀ¤¬¤ʤ¤¾ì¹硢¥ե¡¥¤¥ë¤μºݤÎŤµ¤¬»ÈÍѤµ¤ì¤ޤ¹¡£
    - -
    Content-Type:
    -
    ¥ɥ­¥å¥á¥ó¥ȤÎ MIME - ¥á¥ǥ£¥¢¥¿¥¤¥ס¢¥ª¥ץ·¥ç¥ʥë¤ʥѥé¥᡼¥¿Éդ­¡£¥ѥé¥᡼¥¿¤ι½ʸ¤Ï - name=value - ¤ǡ¢¥á¥ǥ£¥¢¥¿¥¤¥פ侤Υѥé¥᡼¥¿¤Ȥϥ»¥ߥ³¥í¥ó¤ÇʬΥ¤µ¤ì¤ޤ¹¡£ - ¶¦Ä̤Υѥé¥᡼¥¿¤ϰʲ¼¤ΤȤª¤ê: - -
    -
    level
    -
    ¥á¥ǥ£¥¢¥¿¥¤¥פΥС¼¥¸¥ç¥ó¤򼨤¹À°¿ô¡£ - text/html ¤ǤÏ 2 ¤¬¥ǥե©¥ë¥Ȥǡ¢¤½¤Î¾¤ξì¹ç¤Ï - 0 ¤¬¥ǥե©¥ë¥ȤǤ¹¡£
    - -
    qs
    -
    ¥¯¥饤¥¢¥ó¥ȤÎǽÎϤ˴ط¸¤ʤ¯¡¢variant - ¤ò¾¤ÈÈæ³Ӥ·¤¿¤Ȥ­¤ÎÁêÂÐŪ¤ʡÖÉʼÁ¡פǡ¢0.0 ¤«¤é 1.0 - ¤ÎÈϰϤÎÉâưÅÀ¾®¿ô¡£ - Î㤨¤С¢¼̿¿¤òɽ¸½¤·¤褦¤Ȥ·¤Ƥ¤¤ë¤Ȥ­¤ÏÉáÄ̤Ï JPEG - ¥ե¡¥¤¥ë¤ÎÊý¤¬ ASCII ¥ե¡¥¤¥ë¤è¤ê¤â¹⤤ÉʼÁ¤ˤʤê¤ޤ¹¡£ - ¤·¤«¤·¡¢¥꥽¡¼¥¹¤¬ ASCII ¥¢¡¼¥ȤÇɽ¸½¤µ¤ì¤Ƥ¤¤ë¤Ȥ­¤ϡ¢ASCII - ¥ե¡¥¤¥ë¤ÎÊý¤¬ JPEG - ¥ե¡¥¤¥ë¤è¤ê¤â¹⤤ÉʼÁ¤ˤʤê¤ޤ¹¡£¤³¤Τ褦¤ˡ¢qs - ¤ϥ꥽¡¼¥¹Ëè¤ËÆÃͭ¤ÎÃͤò¼è¤ê¤ޤ¹¡£ -
    -
    - -

    Îã

    - Content-Type: image/jpeg; qs=0.8 -

    -
    - -
    URI:
    -
    (»ØÄê¤Υá¥ǥ£¥¢¥¿¥¤¥ס¢¥³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥󥰤Î) variant ¤Î - ¥ե¡¥¤¥ë¤Î uri. ¤³¤ì¤ϡ¢¥ޥåץե¡¥¤¥뤫¤é¤ÎÁêÂÐ URL ¤Ȥ·¤Æ - ²ò¼ᤵ¤ì¤ޤ¹¡£Ʊ¤¸¥µ¡¼¥Ф˸ºߤ·¤ʤ±¤ì¤Фʤ餺¡¢¥¯¥饤¥¢¥ó¥Ȥ¬ - ľÀܥꥯ¥¨¥¹¥Ȥ·¤¿¤Ȥ­¤˥¢¥¯¥»¥¹¤òµö²Ĥµ¤ì¤ë¤â¤ΤǤʤ±¤ì¤Фʤê¤ޤ»¤ó¡£
    - -
    Body:
    -
    Apache 2.0 ¤ǿ·Àߤµ¤줿¤³¤Î Body ¥إåÀ¤ò»Ȥäơ¢ - ¥꥽¡¼¥¹¤μºݤÎÆâÍƤ򥿥¤¥ץޥåץե¡¥¤¥ë¤˽񤯤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤ΥإåÀ¤ÏËÜʸ¤ÎÆâÍƤζèÀڤê¤Ȥʤëʸ»úÎó¤ǻϤޤëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¥¿¥¤¥ץޥåץե¡¥¤¥ë¤Î³¤¯¹Ԥϡ¢¶èÀڤêʸ»úÎ󤬸«¤Ĥ«¤ë¤ޤǡ¢ - ¥꥽¡¼¥¹¤ÎËÜʸ¤ˤʤê¤ޤ¹¡£ - -

    Example:

    - Body:----xyz----
    - <html>
    - <body>
    - <p>Content of the page.</p>
    - </body>
    - </html>
    - ----xyz---- -

    -
    -
    -
    top
    -
    -

    MultiViews

    -

    MultiViews õº÷¤ϡ¢Multiviews Options ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤êͭ¸ú¤ˤʤê¤ޤ¹¡£ - ¥µ¡¼¥Ф¬ /some/dir/foo - ¤ؤΥꥯ¥¨¥¹¥Ȥò¼õ¤±¼è¤ꡢ/some/dir/foo ¤¬¸ºß - ¤·¤ʤ¤¾ì¹硢¥µ¡¼¥Фϥǥ£¥쥯¥ȥê¤òÆɤó¤ǡ¢ - foo.* ¤ˤ¢¤ƤϤޤëÁ´¤ƤΥե¡¥¤¥ë¤òõ¤·¡¢ - »ö¼¾夽¤ì¤é¤Υե¡¥¤¥ë¤ò¥ޥåפ¹¤륿¥¤¥ץޥåפòºî¤ê¤ޤ¹¡£ - ¤½¤ΤȤ­¡¢¥á¥ǥ£¥¢¥¿¥¤¥פȥ³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥󥰤ϡ¢ - ¤½¤Υե¡¥¤¥ë̾¤òľÀܻØÄꤷ¤¿¤Ȥ­¤ÈƱ¤¸¤â¤Τ¬³ä¤êÅö¤Ƥé¤ì¤ޤ¹¡£ - ¤½¤줫¤饯¥饤¥¢¥ó¥ȤÎÍ׵á¤˰ìÈֹ礦¤â¤ΤòÁª¤ӡ¢ - ¤½¤Υɥ­¥å¥á¥ó¥ȤòÊ֤·¤ޤ¹¡£

    - -

    ¥ե¡¥¤¥ë¤òÁªÂ򤹤ëºݤˡ¢´ØϢ¤¹¤륳¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤Î - ¥᥿¾ðÊó¤ò»ý¤¿¤ʤ¤¥ե¡¥¤¥ë¤ˤĤ¤¤ơ¢ȽÄê¤ò¹Ԥ¦¤«¤ɤ¦¤«¤ò - MultiViewsMatch - ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤷ¤ޤ¹¡£

    -
    -
    top
    -

    CacheNegotiatedDocs ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥󤵤줿¥ɥ­¥å¥á¥ó¥Ȥò¥ץí¥­¥·¥µ¡¼¥Ф¬ -¥­¥ã¥å·¥å¤Ǥ­¤ë¤褦¤ˤ¹¤ë
    ¹½ʸ:CacheNegotiatedDocs On|Off
    ¥ǥե©¥ë¥È:CacheNegotiatedDocs Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_negotiation
    ¸ߴ¹À­:¥С¼¥¸¥ç¥ó 2.0¤ǹ½ʸ¤¬ÊѤï¤ê¤ޤ·¤¿
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤¬ÀßÄꤵ¤ì¤Ƥ¤¤ë¤ȡ¢¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó - ¤򤷤¿·ë²̤Υɥ­¥å¥á¥ó¥ȤΥ­¥ã¥å·¥å¤òµö²Ĥ·¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¥ץí¥­¥·¤θå¤í¤ˤ¤¤륯¥饤¥¢¥ó¥Ȥ¬ǽÎϤ˰ìÈֹç¤ä¿ - ¥ɥ­¥å¥á¥ó¥ȤǤϤʤ¯¡¢ - ¥­¥ã¥å·¥å¤ò¤è¤ê¸ú²ÌŪ¤ˤ¹¤ë¤â¤ΤòÆÀ¤ë²ÄǽÀ­¤¬¤¢¤ë¤Ȥ¤¤¦¤³¤ȤǤ¹¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï HTTP/1.0 ¥֥饦¥¶¤«¤é¤Υꥯ¥¨¥¹¥È - ¤ΤߤËŬÍѤµ¤ì¤ޤ¹¡£HTTP/1.1 ¤ϡ¢ - ¸ò¾Ĥµ¤줿¥ɥ­¥å¥á¥ó¥ȤΥ­¥ã¥å·¥å¤ËÂФ·¤Ƥº¤äȤ褤À©¸椬²Äǽ¤ʤΤǡ¢ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï HTTP/1.1 ¤Υꥯ¥¨¥¹¥ȤˤϱƶÁ¤·¤ޤ»¤ó¡£

    -

    2.0 ¤è¤êÁ°¤ΥС¼¥¸¥ç¥ó¤Ǥϡ¢ - CacheNegotiatedDocs ¤ϰú¿ô¤ò¼è¤餺¡¢ - ¥ǥ£¥쥯¥ƥ£¥֤¬¸ºߤ¹¤뤳¤ȤÇ on ¤Îưºî¤򤷤Ƥ¤¤ޤ·¤¿¡£

    - -
    -
    top
    -

    ForceLanguagePriority ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - - -
    ÀâÌÀ:Í׵á¤˹礦ñÆȤΥɥ­¥å¥á¥ó¥Ȥ¬¸«¤Ĥ«¤é¤ʤ«¤ä¿¤Ȥ­¤˹Ԥʤ¦¤³¤Ȥò»ØÄê -
    ¹½ʸ:ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]
    ¥ǥե©¥ë¥È:ForceLanguagePriority Prefer
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_negotiation
    ¸ߴ¹À­:¥С¼¥¸¥ç¥ó 2.0.30 °ʹߤǻÈÍѲÄǽ
    -

    ForceLanguagePriority ¥ǥ£¥쥯¥ƥ£¥֤Ï - Í׵á¤˹礦¥ɥ­¥å¥á¥ó¥Ȥò°ì¤ĤÀ¤±Ê֤¹¤³¤Ȥ¬¤Ǥ­¤ʤ¤¤Ȥ­¤ˡ¢ - LanguagePriority - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäƥͥ´¥·¥¨¡¼¥·¥ç¥ó¤ηë²̤òÊ֤·¤ޤ¹¡£

    - -

    ForceLanguagePriority Prefer ¤ϡ¢ƱÅù¤ÎÁªÂò»褬 - ¤¤¤¯¤Ĥ«¤¢¤ë¤Ȥ­¤ˡ¢HTTP ¤Î 300 (MULTIPLE CHOICES) ¤òÊ֤¹Âå¤ï¤ê¤ˡ¢ - LanguagePriority ¤ò»Ȥäưì¤ĤÀ¤±¥ɥ­¥å¥á¥ó¥ȤòÊ֤¹¤褦¤Ë - ¤·¤ޤ¹¡£°ʲ¼¤Υǥ£¥쥯¥ƥ£¥֤¬»ØÄꤵ¤ì¤Ƥ¤¤ơ¢¥桼¥¶¤Î Accept-Language - ¥إåÀ¤ǤÏ en ¤È de ¤ÎÉʼÁ¤¬¶¦¤Ë - .500 (Ʊ¤¸¤¯¤餤µöÍÆ) ¤Ǥ¢¤ë¤Ȥ­¤ϡ¢ - ºǽé¤˥ޥåÁ¤¹¤ë variant ¤Î en ¤¬Á÷¤é¤ì¤ޤ¹¡£

    - -

    - LanguagePriority en fr de
    - ForceLanguagePriority Prefer -

    - -

    ForceLanguagePriority Fallback ¤Ǥϡ¢HTTP 406 - (NOT ACCEPTABLE) ¤òÁ÷¿®¤¹¤ëÂå¤ï¤ê¤ˡ¢ - LanguagePriority - ¤¬Àµ¤·¤¤·ë²̤òÁ÷¤ê¤ޤ¹¡£ - °ʲ¼¤Υǥ£¥쥯¥ƥ£¥֤¬»ØÄꤵ¤ì¤Ƥ¤¤ơ¢¥桼¥¶¤Î Accept-Language - ¤¬ es ¸À¸ì¤Τߤòµö²Ĥ·¤Ƥ¤¤ơ¢¤µ¤é¤ˤ½¤Τ褦¤Ê variant ¤¬¤ʤ¤¤Ȥ­¤ˤϡ¢ - °ʲ¼¤Î LanguagePriority - ¤Υꥹ¥Ȥκǽé¤Î variant ¤¬Á÷¤ì¤ì¤ޤ¹¡£

    - -

    - LanguagePriority en fr de
    - ForceLanguagePriority Fallback -

    - -

    Prefer ¤È Fallback ¤ÎξÊý¤Υª¥ץ·¥ç¥ó¤ò - Ʊ»þ¤˻ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢ʣ¿ô¤Î variant ¤¬¤¢¤ë¤Ȥ­¤Ï - LanguagePriority ¤κǽé¤Î - variant ¤¬Á÷¤é¤졢¥¯¥饤¥¢¥ó¥ȤεöÍƸÀ¸ì¤˹礦 vaiant ¤¬¤ʤ¤¤Ȥ­¤Ï - ¸ºߤ¹¤ë¥ɥ­¥å¥á¥ó¥ȤǺǽé¤Τâ¤Τ¬Á÷¤é¤ì¤롢¤Ȥ¤¤¦Íͤˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    »²¾È

    - -
    -
    top
    -

    LanguagePriority ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥¯¥饤¥¢¥ó¥Ȥ¬ͥÀèÅ٤򼨤µ¤ʤ«¤ä¿¤Ȥ­¤θÀ¸ì¤Î variant ¤ÎͥÀèÅ٤ò -»ØÄê
    ¹½ʸ:LanguagePriority MIME-lang [MIME-lang] -...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_negotiation
    -

    LanguagePriority ¤ϡ¢MultiViews - ¥ꥯ¥¨¥¹¥Ȥ򰷤¦¤Ȥ­¤ˡ¢¥¯¥饤¥¢¥ó¥Ȥ¬ͥÀè½ç°̤òÄ󶡤·¤Ƥ¤¤ʤ¤¾ì¹ç¤Î - ¸À¸ì¤ÎͥÀè½ç°̤òÀßÄꤷ¤ޤ¹¡£MIME-lang - ¤Υꥹ¥Ȥ¬ͥÀèÅ٤ι߽ç¤ËʤӤޤ¹¡£

    - -

    Example:

    - LanguagePriority en fr de -

    - -

    foo.html ¤¬¥ꥯ¥¨¥¹¥Ȥµ¤졢foo.html.fr - ¤È foo.html.de ¤¬ξÊý¸ºߤ·¡¢ - ¥֥饦¥¶¤¬¸À¸ì¤ÎͥÀè½ç°̤òÄ󶡤·¤Ƥʤ¤¾ì¹ç¤Ï - foo.html.fr ¤¬Ê֤µ¤ì¤ޤ¹¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ͼ¤ÎÊýˡ¤ǡֺÇÁ±¡× - ¤θÀ¸줬·èÄê¤Ǥ­¤ʤ¤¤Ȥ­¤«¡¢ForceLanguagePriority ¥ǥ£¥쥯¥ƥ£¥֤¬ - None °ʳ°¤ΤȤ­¤ˤΤ߸ú²̤¬¤¢¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - °ìÈÌŪ¤ˤϡ¢¥µ¡¼¥Ð¦¤ǤϤʤ¯¥¯¥饤¥¢¥ó¥È¦¤ǹ¥¤ߤθÀ¸ì¤ò·èÄꤷ¤ޤ¹¡£

    - -

    »²¾È

    - -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_negotiation.html.ja.utf8 b/docs/manual/mod/mod_negotiation.html.ja.utf8 new file mode 100644 index 00000000000..3853494ac0e --- /dev/null +++ b/docs/manual/mod/mod_negotiation.html.ja.utf8 @@ -0,0 +1,332 @@ + + + + + +mod_negotiation - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_negotiation

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:コンテントネゴシエーション + 機能を提供する
    ステータス:Base
    モジュール識別子:negotiation_module
    ソースファイル:mod_negotiation.c
    +

    概要

    + +

    コンテントネゴシエーション、より正確にはコンテンツの選択機能は、 + 複数用意されているドキュメントから、クライアントの能力に一番合った + ドキュメントを選択する機能です。この実装は二つあります。

    + +
      +
    • タイプマップ (type-map + ハンドラで扱われるファイル)。これは variants + を含んでいるファイルを明示的に指定します。
    • + +
    • MultiViews の探索 (MultiViews Option で有効になります)。 + サーバが暗黙の内にファイル名のパターンマッチを行ない、 + その結果から選択します。
    • +
    +
    + +
    top
    +
    +

    タイプマップ

    +

    タイプマップは RFC 822 のメールヘッダに類似した書式です。 + ドキュメントの記述が空行で分離されて書かれていて、ハッシュ文字 + ('#') で始まる行はコメントとして扱われます。 + ドキュメントの説明は複数のヘッダレコードから構成されます。 + レコードは、続きの行が空白で始まっていると複数の行にまたがります。 + 最初の空白が消去されて、前の行とつなげて 1 行として扱われます。 + ヘッダレコードはキーワード名の後に値が続くという形式で、 + キーワード名は常にコロンで終わります。空白はヘッダ名と値の間、 + 値のトークンの間に入れることができます。 + 使用可能なヘッダは以下のとおりです:

    + +
    +
    Content-Encoding:
    +
    ファイルのエンコーディング。Apache は AddEncoding ディレクティブ + で定義されたエンコーディングだけを認識します。通常 compress + されたファイルのための x-compress と gzip + されたファイルのための x-gzip を含みます。 + エンコーディングの比較をするときは、接頭辞 x- + は無視されます。
    + +
    Content-Language:
    +
    インターネット標準の言語タグ + (RFC 1766) + で定義されている言語の種類。例えば、en + は英語を表します。 + 複数の言語が格納される場合はコンマで区切られます。
    + +
    Content-Length:
    +
    ファイルの長さ (バイト数)。 + このヘッダがない場合、ファイルの実際の長さが使用されます。
    + +
    Content-Type:
    +
    ドキュメントの MIME + メディアタイプ、オプショナルなパラメータ付き。パラメータの構文は + name=value + で、メディアタイプや他のパラメータとはセミコロンで分離されます。 + 共通のパラメータは以下のとおり: + +
    +
    level
    +
    メディアタイプのバージョンを示す整数。 + text/html では 2 がデフォルトで、その他の場合は + 0 がデフォルトです。
    + +
    qs
    +
    クライアントの能力に関係なく、variant + を他と比較したときの相対的な「品質」で、0.0 から 1.0 + の範囲の浮動点小数。 + 例えば、写真を表現しようとしているときは普通は JPEG + ファイルの方が ASCII ファイルよりも高い品質になります。 + しかし、リソースが ASCII アートで表現されているときは、ASCII + ファイルの方が JPEG + ファイルよりも高い品質になります。このように、qs + はリソース毎に特有の値を取ります。 +
    +
    + +

    例

    + Content-Type: image/jpeg; qs=0.8 +

    +
    + +
    URI:
    +
    (指定のメディアタイプ、コンテントエンコーディングの) variant の + ファイルの uri. これは、マップファイルからの相対 URL として + 解釈されます。同じサーバに存在しなければならず、クライアントが + 直接リクエストしたときにアクセスを許可されるものでなければなりません。
    + +
    Body:
    +
    Apache 2.0 で新設されたこの Body ヘッダを使って、 + リソースの実際の内容をタイプマップファイルに書くことができます。 + このヘッダは本文の内容の区切りとなる文字列で始まる必要があります。 + タイプマップファイルの続く行は、区切り文字列が見つかるまで、 + リソースの本文になります。 + +

    Example:

    + Body:----xyz----
    + <html>
    + <body>
    + <p>Content of the page.</p>
    + </body>
    + </html>
    + ----xyz---- +

    +
    +
    +
    top
    +
    +

    MultiViews

    +

    MultiViews 探索は、Multiviews Options ディレクティブにより有効になります。 + サーバが /some/dir/foo + へのリクエストを受け取り、/some/dir/foo が存在 + しない場合、サーバはディレクトリを読んで、 + foo.* にあてはまる全てのファイルを探し、 + 事実上それらのファイルをマップするタイプマップを作ります。 + そのとき、メディアタイプとコンテントエンコーディングは、 + そのファイル名を直接指定したときと同じものが割り当てられます。 + それからクライアントの要求に一番合うものを選び、 + そのドキュメントを返します。

    + +

    ファイルを選択する際に、関連するコンテントネゴシエーションの + メタ情報を持たないファイルについて、判定を行うかどうかを + MultiViewsMatch + ディレクティブで設定します。

    +
    +
    top
    +

    CacheNegotiatedDocs ディレクティブ

    + + + + + + + + +
    説明:コンテントネゴシエーションされたドキュメントをプロキシサーバが +キャッシュできるようにする
    構文:CacheNegotiatedDocs On|Off
    デフォルト:CacheNegotiatedDocs Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_negotiation
    互換性:バージョン 2.0で構文が変わりました
    +

    このディレクティブが設定されていると、コンテントネゴシエーション + をした結果のドキュメントのキャッシュを許可します。 + これは、プロキシの後ろにいるクライアントが能力に一番合った + ドキュメントではなく、 + キャッシュをより効果的にするものを得る可能性があるということです。

    + +

    このディレクティブは HTTP/1.0 ブラウザからのリクエスト + のみに適用されます。HTTP/1.1 は、 + 交渉されたドキュメントのキャッシュに対してずっとよい制御が可能なので、 + このディレクティブは HTTP/1.1 のリクエストには影響しません。

    +

    2.0 より前のバージョンでは、 + CacheNegotiatedDocs は引数を取らず、 + ディレクティブが存在することで on の動作をしていました。

    + +
    +
    top
    +

    ForceLanguagePriority ディレクティブ

    + + + + + + + + + +
    説明:要求に合う単独のドキュメントが見つからなかったときに行なうことを指定 +
    構文:ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]
    デフォルト:ForceLanguagePriority Prefer
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_negotiation
    互換性:バージョン 2.0.30 以降で使用可能
    +

    ForceLanguagePriority ディレクティブは + 要求に合うドキュメントを一つだけ返すことができないときに、 + LanguagePriority + ディレクティブを使ってネゴシエーションの結果を返します。

    + +

    ForceLanguagePriority Prefer は、同等の選択肢が + いくつかあるときに、HTTP の 300 (MULTIPLE CHOICES) を返す代わりに、 + LanguagePriority を使って一つだけドキュメントを返すように + します。以下のディレクティブが指定されていて、ユーザの Accept-Language + ヘッダでは en と de の品質が共に + .500 (同じくらい許容) であるときは、 + 最初にマッチする variant の en が送られます。

    + +

    + LanguagePriority en fr de
    + ForceLanguagePriority Prefer +

    + +

    ForceLanguagePriority Fallback では、HTTP 406 + (NOT ACCEPTABLE) を送信する代わりに、 + LanguagePriority + が正しい結果を送ります。 + 以下のディレクティブが指定されていて、ユーザの Accept-Language + が es 言語のみを許可していて、さらにそのような variant がないときには、 + 以下の LanguagePriority + のリストの最初の variant が送られます。

    + +

    + LanguagePriority en fr de
    + ForceLanguagePriority Fallback +

    + +

    Prefer と Fallback の両方のオプションを + 同時に指定することができます。 + ですから、複数の variant があるときは + LanguagePriority の最初の + variant が送られ、クライアントの許容言語に合う vaiant がないときは + 存在するドキュメントで最初のものが送られる、という様にすることができます。

    + +

    参照

    + +
    +
    top
    +

    LanguagePriority ディレクティブ

    + + + + + + + +
    説明:クライアントが優先度を示さなかったときの言語の variant の優先度を +指定
    構文:LanguagePriority MIME-lang [MIME-lang] +...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_negotiation
    +

    LanguagePriority は、MultiViews + リクエストを扱うときに、クライアントが優先順位を提供していない場合の + 言語の優先順位を設定します。MIME-lang + のリストが優先度の降順に並びます。

    + +

    Example:

    + LanguagePriority en fr de +

    + +

    foo.html がリクエストされ、foo.html.fr + と foo.html.de が両方存在し、 + ブラウザが言語の優先順位を提供してない場合は + foo.html.fr が返されます。

    + +

    このディレクティブは他の方法で「最善」 + の言語が決定できないときか、ForceLanguagePriority ディレクティブが + None 以外のときにのみ効果があることに注意してください。 + 一般的には、サーバ側ではなくクライアント側で好みの言語を決定します。

    + +

    参照

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_negotiation.xml b/docs/manual/mod/mod_negotiation.xml index 8a16763d97b..f663fe330c4 100644 --- a/docs/manual/mod/mod_negotiation.xml +++ b/docs/manual/mod/mod_negotiation.xml @@ -4,12 +4,12 @@ + - + mod_negotiation /mod/ .. en - ja + ja diff --git a/docs/manual/mod/mod_nw_ssl.html b/docs/manual/mod/mod_nw_ssl.html index 24adb0f8f09..c1342c072a9 100644 --- a/docs/manual/mod/mod_nw_ssl.html +++ b/docs/manual/mod/mod_nw_ssl.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_nw_ssl.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_nw_ssl.html.en b/docs/manual/mod/mod_nw_ssl.html.en index a0e0e2f57b4..926bd72f8ed 100644 --- a/docs/manual/mod/mod_nw_ssl.html.en +++ b/docs/manual/mod/mod_nw_ssl.html.en @@ -1,32 +1,39 @@ - -mod_nw_ssl - Apache HTTP Server +mod_nw_ssl - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_nw_ssl

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_nw_ssl

    Available Languages:  en 

    - - + +
    Description:Enable SSL encryption for NetWare
    Status:Base
    Module Identifier:nwssl_module
    Source File:mod_nw_ssl.c
    Module Identifier:nwssl_module
    Source File:mod_nw_ssl.c
    Compatibility:NetWare only

    Summary

    @@ -40,7 +47,7 @@
  • NWSSLUpgradeable
  • SecureListen
  • -
    +
    top

    NWSSLTrustedCerts Directive

    @@ -91,7 +98,28 @@

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_nw_ssl.xml b/docs/manual/mod/mod_nw_ssl.xml index cf3f4276716..cfe3d1f7917 100644 --- a/docs/manual/mod/mod_nw_ssl.xml +++ b/docs/manual/mod/mod_nw_ssl.xml @@ -4,12 +4,12 @@ - + mod_nw_ssl /mod/ .. diff --git a/docs/manual/mod/mod_proxy.html b/docs/manual/mod/mod_proxy.html index 2e413ab616c..3cbe01bc81d 100644 --- a/docs/manual/mod/mod_proxy.html +++ b/docs/manual/mod/mod_proxy.html @@ -1,7 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_proxy.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_proxy.html.ja.euc-jp +URI: mod_proxy.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_proxy.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy.html.en b/docs/manual/mod/mod_proxy.html.en index 189e7406ea1..f9408ee7448 100644 --- a/docs/manual/mod/mod_proxy.html.en +++ b/docs/manual/mod/mod_proxy.html.en @@ -1,33 +1,41 @@ - -mod_proxy - Apache HTTP Server +mod_proxy - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_proxy

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_proxy

    Available Languages:  en  | + fr  |  ja 

    - -
    Description:HTTP/1.1 proxy/gateway server
    Status:Extension
    Module Identifier:proxy_module
    Source File:mod_proxy.c
    +Module Identifier:proxy_module +Source File:mod_proxy.c

    Summary

    Warning

    @@ -60,19 +68,35 @@ mod_ssl. These additional modules will need to be loaded and configured to take advantage of these features.

    -
    top
    -

    Forward and Reverse Proxies

    +

    Forward Proxies and Reverse + Proxies/Gateways

    Apache can be configured in both a forward and - reverse proxy mode.

    + reverse proxy (also known as gateway) mode.

    An ordinary forward proxy is an intermediate server that sits between the client and the origin server. In order to get content from the origin server, the client sends a request to the proxy naming the origin server - as the target and the proxy then requests the content from the + as the target. The proxy then requests the content from the origin server and returns it to the client. The client must be specially configured to use the forward proxy to access other sites.

    @@ -123,24 +141,24 @@ by mod_cache) to reduce network usage.

    The forward proxy is activated using the ProxyRequests directive. Because - forward proxys allow clients to access arbitrary sites through + forward proxies allow clients to access arbitrary sites through your server and to hide their true origin, it is essential that you secure your server so that only authorized clients can access the proxy before activating a forward proxy.

    -

    A reverse proxy, by contrast, appears to the - client just like an ordinary web server. No special - configuration on the client is necessary. The client makes - ordinary requests for content in the name-space of the reverse - proxy. The reverse proxy then decides where to send those - requests, and returns the content as if it was itself the - origin.

    +

    A reverse proxy (or gateway), by + contrast, appears to the client just like an ordinary web + server. No special configuration on the client is necessary. + The client makes ordinary requests for content in the namespace + of the reverse proxy. The reverse proxy then decides where to + send those requests and returns the content as if it were itself + the origin.

    A typical usage of a reverse proxy is to provide Internet users access to a server that is behind a firewall. Reverse proxies can also be used to balance load among several back-end - servers, or to provide caching for a slower back-end server. + servers or to provide caching for a slower back-end server. In addition, reverse proxies can be used simply to bring several servers into the same URL space.

    @@ -159,6 +177,11 @@

    In addition, if you wish to have caching enabled, consult the documentation from mod_cache.

    +

    Reverse Proxy

    + ProxyPass /foo http://foo.example.com/bar
    + ProxyPassReverse /foo http://foo.example.com/bar +

    +

    Forward Proxy

    ProxyRequests On
    ProxyVia On
    @@ -172,22 +195,125 @@ </Proxy>

    -

    Reverse Proxy

    - ProxyRequests Off
    -
    - <Proxy *>
    - - Order deny,allow
    - Allow from all
    -
    - </Proxy>
    -
    - ProxyPass /foo http://foo.example.com/bar
    - ProxyPassReverse /foo http://foo.example.com/bar -

    top
    -

    Controlling access to your proxy

    +

    Workers

    +

    The proxy manages the configuration of origin servers and their + communication parameters in objects called workers. + There are two built-in workers: the default forward proxy worker and the + default reverse proxy worker. Additional workers can be configured + explicitly.

    + +

    The two default workers have a fixed configuration + and will be used if no other worker matches the request. + They do not use HTTP Keep-Alive or connection pooling. + The TCP connections to the origin server will instead be + opened and closed for each request.

    + +

    Explicitly configured workers are identified by their URL. + They are usually created and configured using + ProxyPass or + ProxyPassMatch when used + for a reverse proxy:

    + +

    + ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30 +

    + +

    This will create a worker associated with the origin server URL + http://backend.example.com that will use the given timeout + values. When used in a forward proxy, workers are usually defined + via the ProxySet directive:

    + +

    + ProxySet http://backend.example.com connectiontimeout=5 timeout=30 +

    + +

    or alternatively using Proxy + and ProxySet:

    + +

    + <Proxy http://backend.example.com>
    + + ProxySet connectiontimeout=5 timeout=30 + + </Proxy> +

    + +

    Using explicitly configured workers in the forward mode is + not very common, because forward proxies usually communicate with many + different origin servers. Creating explicit workers for some of the + origin servers can still be useful if they are used very often. + Explicitly configured workers have no concept of forward or reverse + proxying by themselves. They encapsulate a common concept of + communication with origin servers. A worker created by + ProxyPass for use in a + reverse proxy will also be used for forward proxy requests whenever + the URL to the origin server matches the worker URL, and vice versa.

    + +

    The URL identifying a direct worker is the URL of its + origin server including any path components given:

    + +

    + ProxyPass /examples http://backend.example.com/examples
    + ProxyPass /docs http://backend.example.com/docs +

    + +

    This example defines two different workers, each using a separate + connection pool and configuration.

    + +

    Worker Sharing

    +

    Worker sharing happens if the worker URLs overlap, which occurs when + the URL of some worker is a leading substring of the URL of another + worker defined later in the configuration file. In the following example

    + +

    + ProxyPass /apps http://backend.example.com/ timeout=60
    + ProxyPass /examples http://backend.example.com/examples timeout=10 +

    + +

    the second worker isn't actually created. Instead the first + worker is used. The benefit is, that there is only one connection pool, + so connections are more often reused. Note that all configuration attributes + given explicitly for the later worker and some configuration defaults will + overwrite the configuration given for the first worker. This will be logged + as a warning. In the above example, the resulting timeout value + for the URL /apps will be 10 instead + of 60!

    + +

    If you want to avoid worker sharing, sort your worker definitions + by URL length, starting with the longest worker URLs. If you want to maximize + worker sharing, use the reverse sort order. See also the related warning about + ordering ProxyPass directives.

    + +
    + +

    Explicitly configured workers come in two flavors: + direct workers and (load) balancer workers. + They support many important configuration attributes which are + described below in the ProxyPass + directive. The same attributes can also be set using + ProxySet.

    + +

    The set of options available for a direct worker + depends on the protocol which is specified in the origin server URL. + Available protocols include ajp, + ftp, http and scgi.

    + +

    Balancer workers are virtual workers that use direct workers known + as their members to actually handle the requests. Each balancer can + have multiple members. When it handles a request, it chooses a member + based on the configured load balancing algorithm.

    + +

    A balancer worker is created if its worker URL uses + balancer as the protocol scheme. + The balancer URL uniquely identifies the balancer worker. + Members are added to a balancer using + BalancerMember.

    + +
    top
    +
    +

    Controlling Access to Your Proxy

    You can control who can access your proxy via the <Proxy> control block as in the following example:

    @@ -216,101 +342,6 @@
    top
    -

    FTP Proxy

    - - -

    Why doesn't file type xxx - download via FTP?

    -

    You probably don't have that particular file type defined as - application/octet-stream in your proxy's mime.types - configuration file. A useful line can be

    - -
    application/octet-stream   bin dms lha lzh exe class tgz taz
    -

    Alternatively you may prefer to default everything to binary:

    -
    DefaultType application/octet-stream
    - - -

    How can I force an FTP ASCII download of - File xxx?

    -

    In the rare situation where you must download a specific file using the - FTP ASCII transfer method (while the default transfer is in - binary mode), you can override mod_proxy's - default by suffixing the request with ;type=a to force an - ASCII transfer. (FTP Directory listings are always executed in ASCII mode, - however.)

    - - -

    How can I do FTP upload?

    -

    Currently, only GET is supported for FTP in mod_proxy. You can - of course use HTTP upload (POST or PUT) through an Apache proxy.

    - - -

    How can I access FTP files outside - of my home directory?

    -

    An FTP URI is interpreted relative to the home directory of the user - who is logging in. Alas, to reach higher directory levels you cannot - use /../, as the dots are interpreted by the browser and not actually - sent to the FTP server. To address this problem, the so called Squid - %2f hack was implemented in the Apache FTP proxy; it is a - solution which is also used by other popular proxy servers like the Squid Proxy Cache. By - prepending /%2f to the path of your request, you can make - such a proxy change the FTP starting directory to / (instead - of the home directory). For example, to retrieve the file - /etc/motd, you would use the URL:

    - -

    - ftp://user@host/%2f/etc/motd -

    - - -

    How can I hide the FTP cleartext password - in my browser's URL line?

    -

    To log in to an FTP server by username and password, Apache uses - different strategies. In absense of a user name and password in the URL - altogether, Apache sends an anonymous login to the FTP server, - i.e.,

    - -

    - user: anonymous
    - password: apache_proxy@ -

    - -

    This works for all popular FTP servers which are configured for - anonymous access.

    - -

    For a personal login with a specific username, you can embed the user - name into the URL, like in:

    - -

    - ftp://username@host/myfile -

    - -

    If the FTP server asks for a password when given this username (which - it should), then Apache will reply with a 401 (Authorization - required) response, which causes the Browser to pop up the - username/password dialog. Upon entering the password, the connection - attempt is retried, and if successful, the requested resource is - presented. The advantage of this procedure is that your browser does not - display the password in cleartext (which it would if you had used

    - -

    - ftp://username:password@host/myfile -

    - -

    in the first place).

    - -

    Note

    -

    The password which is transmitted in such a way is not encrypted on - its way. It travels between your browser and the Apache proxy server in - a base64-encoded cleartext string, and between the Apache proxy and the - FTP server as plaintext. You should therefore think twice before - accessing your FTP server via HTTP (or before accessing your personal - files via FTP at all!) When using unsecure channels, an eavesdropper - might intercept your password on its way.

    -
    - -
    top
    -

    Slow Startup

    If you're using the ProxyBlock directive, hostnames' IP addresses are looked up and cached during startup for later match test. This may take a few @@ -340,10 +371,11 @@

    top

    Protocol Adjustments

    -

    For circumstances where you have a application server which doesn't - implement keepalives or HTTP/1.1 properly, there are 2 environment - variables which when set send a HTTP/1.0 with no keepalive. These are set - via the SetEnv directive.

    +

    For circumstances where mod_proxy is sending + requests to an origin server that doesn't properly implement + keepalives or HTTP/1.1, there are two environment variables that can force the + request to use HTTP/1.0 with no keepalive. These are set via the + SetEnv directive.

    These are the force-proxy-request-1.0 and proxy-nokeepalive notes.

    @@ -357,7 +389,57 @@ </Location>

    -
    + +
    top
    +
    +

    Request Bodies

    + +

    Some request methods such as POST include a request body. + The HTTP protocol requires that requests which include a body + either use chunked transfer encoding or send a + Content-Length request header. When passing these + requests on to the origin server, mod_proxy_http + will always attempt to send the Content-Length. But + if the body is large and the original request used chunked + encoding, then chunked encoding may also be used in the upstream + request. You can control this selection using environment variables. Setting + proxy-sendcl ensures maximum compatibility with + upstream servers by always sending the + Content-Length, while setting + proxy-sendchunked minimizes resource usage by using + chunked encoding.

    + +
    top
    +
    +

    Reverse Proxy Request Headers

    + +

    When acting in a reverse-proxy mode (using the ProxyPass directive, for example), + mod_proxy_http adds several request headers in + order to pass information to the origin server. These headers + are:

    + +
    +
    X-Forwarded-For
    +
    The IP address of the client.
    +
    X-Forwarded-Host
    +
    The original host requested by the client in the Host + HTTP request header.
    +
    X-Forwarded-Server
    +
    The hostname of the proxy server.
    +
    + +

    Be careful when using these headers on the origin server, since + they will contain more than one (comma-separated) value if the + original request already contained one of these headers. For + example, you can use %{X-Forwarded-For}i in the log + format string of the origin server to log the original clients IP + address, but you may get more than one address if the request + passes through several proxies.

    + +

    See also the ProxyPreserveHost and ProxyVia directives, which control + other request headers.

    + +
    top

    AllowCONNECT Directive

    @@ -383,6 +465,27 @@ proxy in the server in order to get the support for the CONNECT at all.

    + +
    top
    +
    + + + + + + +
    Description:Add a member to a load balancing group
    Syntax:BalancerMember [balancerurl] url [key=value [key=value ...]]
    Context:directory
    Status:Extension
    Module:mod_proxy
    Compatibility:BalancerMember is only available in Apache 2.2 + and later.
    +

    This directive adds a member to a load balancing group. It can be used + within a <Proxy balancer://...> container + directive and can take any of the key value pairs available to + ProxyPass directives.

    +

    The balancerurl is only needed when not within a + <Proxy balancer://...> + container directive. It corresponds to the url of a balancer defined in + ProxyPass directive.

    +
    top

    NoProxy Directive

    @@ -402,8 +505,8 @@ directly ProxyRemote proxy server(s).

    Example

    - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21 + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21

    The host arguments to the NoProxy @@ -429,8 +532,8 @@ directly

    Note

    Domain name comparisons are done without regard to the case, and Domains are always assumed to be anchored in the root of the - DNS tree, therefore two domains .MyDomain.com and - .mydomain.com. (note the trailing period) are considered + DNS tree; therefore, the two domains .ExAmple.com and + .example.com. (note the trailing period) are considered equal. Since a domain comparison does not involve a DNS lookup, it is much more efficient than subnet comparison.

    @@ -456,7 +559,7 @@ directly

    As a degenerate case, a SubNet with 32 valid bits is the - equivalent to an IPAddr, while a SubNet with zero + equivalent to an IPAddr, while a SubNet with zero valid bits (e.g., 0.0.0.0/0) is the same as the constant _Default_, matching any IP address.

    @@ -487,7 +590,7 @@ directly of hosts with different IPAddrs).

    Examples

    - prep.ai.mit.edu
    + prep.ai.example.com
    www.apache.org

    @@ -498,8 +601,8 @@ directly link.

    Hostname comparisons are done without regard to the case, and Hostnames are always assumed to be anchored in the root - of the DNS tree, therefore two hosts WWW.MyDomain.com - and www.mydomain.com. (note the trailing period) are + of the DNS tree; therefore, the two hosts WWW.ExAmple.com + and www.example.com. (note the trailing period) are considered equal.

    @@ -548,7 +651,23 @@ directly </Proxy>

    +

    Differences from the Location configuration section

    +

    A backend URL matches the configuration section if it begins with the + the wildcard-url string, even if the last path segment in the + directive only matches a prefix of the backend URL. For example, + <Proxy http://example.com/foo> matches all of + http://example.com/foo, http://example.com/foo/bar, and + http://example.com/foobar. The matching of the final URL differs + from the behavior of the <Location> section, which for purposes of this note + treats the final path component as if it ended in a slash.

    +

    For more control over the matching, see <ProxyMatch>.

    +
    + +

    See also

    +
    top

    ProxyBadHeader Directive

    @@ -560,17 +679,17 @@ response Context:server config, virtual host Status:Extension Module:mod_proxy -Compatibility:available in Apache 2.0.44 and later +Compatibility:Available in Apache 2.0.44 and later

    The ProxyBadHeader directive determines the - behaviour of mod_proxy if it receives syntactically invalid - header lines (i.e. containing no colon). The following arguments - are possible:

    + behavior of mod_proxy if it receives syntactically invalid + response header lines (i.e. containing no colon) from the origin + server. The following arguments are possible:

    IsError
    Abort the request and end up with a 502 (Bad Gateway) response. This is - the default behaviour.
    + the default behavior.
    Ignore
    Treat bad header lines as if they weren't sent.
    @@ -637,9 +756,9 @@ proxied will be generated.

    Example

    - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21
    - ProxyDomain .mycompany.com + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21
    + ProxyDomain .example.com

    @@ -654,13 +773,32 @@ proxied Module:mod_proxy Compatibility:Available in version 2.0 and later -

    This directive is useful for reverse-proxy setups, where you want to +

    This directive is useful for reverse-proxy setups where you want to have a common look and feel on the error pages seen by the end user. This also allows for included files (via mod_include's SSI) to get - the error code and act accordingly (default behavior would display - the error page of the proxied server, turning this on shows the SSI - Error message).

    + the error code and act accordingly. (Default behavior would display + the error page of the proxied server. Turning this on shows the SSI + Error message.)

    + +

    This directive does not affect the processing of informational (1xx), + normal success (2xx), or redirect (3xx) responses.

    + + +
    top
    +

    ProxyFtpDirCharset Directive

    + + + + + + + + +
    Description:Define the character set for proxied FTP listings
    Syntax:ProxyFtpDirCharset character set
    Default:ProxyFtpDirCharset ISO-8859-1
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy
    Compatibility:Available in Apache 2.2.7 and later
    +

    The ProxyFtpDirCharset directive defines the + character set to be set for FTP directory listings in HTML generated by + mod_proxy_ftp.

    top
    @@ -674,10 +812,14 @@ proxied Module:mod_proxy

    The ProxyIOBufferSize directive adjusts the size - of the internal buffer, which is used as a scratchpad for the data between - input and output. The size must be less or equal 8192.

    + of the internal buffer which is used as a scratchpad for the data between + input and output. The size must be at least 8192.

    -

    In almost every case there's no reason to change that value.

    +

    When the mod_proxy_ajp module is used, this value is + aligned to a 1024 byte boundary, and values larger than 65536 are set to + 65536 in accordance with the AJP protocol.

    + +

    In almost every case, there's no reason to change that value.

    top
    @@ -691,9 +833,13 @@ proxied resources Module:mod_proxy

    The <ProxyMatch> directive is - identical to the <Proxy> directive, except it matches URLs - using regular expressions.

    + identical to the <Proxy> directive, except that it matches URLs + using regular expressions.

    +

    See also

    +
    top

    ProxyMaxForwards Directive

    @@ -701,37 +847,48 @@ proxied resources Description:Maximium number of proxies that a request can be forwarded through Syntax:ProxyMaxForwards number -Default:ProxyMaxForwards 10 +Default:ProxyMaxForwards -1 Context:server config, virtual host Status:Extension Module:mod_proxy -Compatibility:Available in Apache 2.0 and later +Compatibility:Available in Apache 2.0 and later; + default behaviour changed in 2.2.7

    The ProxyMaxForwards directive specifies the - maximum number of proxies through which a request may pass, if there's no - Max-Forwards header supplied with the request. This is - set to prevent infinite proxy loops, or a DoS attack.

    + maximum number of proxies through which a request may pass if there's no + Max-Forwards header supplied with the request. This may + be set to prevent infinite proxy loops or a DoS attack.

    Example

    ProxyMaxForwards 15

    +

    Note that setting ProxyMaxForwards is a + violation of the HTTP/1.1 protocol (RFC2616), which forbids a Proxy + setting Max-Forwards if the Client didn't set it. + Earlier Apache versions would always set it. A negative + ProxyMaxForwards value, including the + default -1, gives you protocol-compliant behavior but may + leave you open to loops.

    +
    top

    ProxyPass Directive

    - +
    Description:Maps remote servers into the local server URL-space
    Syntax:ProxyPass [path] !|url [key=value key=value ...]]
    Syntax:ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy
    -

    This directive allows remote servers to be mapped into the space of - the local server; the local server does not act as a proxy in the - conventional sense, but appears to be a mirror of the remote - server. path is the name of a local virtual path; url - is a partial URL for the remote server and cannot include a query - string.

    +

    This directive allows remote servers to be mapped into the + space of the local server. The local server does not act as a + proxy in the conventional sense but appears to be a mirror of the + remote server. The local server is often called a reverse + proxy or gateway. The path is the name of + a local virtual path; url is a partial URL for the + remote server and cannot include a query string.

    The ProxyRequests directive should usually be set off when using @@ -748,6 +905,26 @@ through http://example.com/mirror/foo/bar to be internally converted into a proxy request to http://backend.example.com/bar.

    +
    +

    If the first argument ends with a trailing /, the second + argument should also end with a trailing /, and vice + versa. Otherwise, the resulting requests to the backend may miss some + needed slashes and do not deliver the expected results. +

    +
    + +

    When used inside a <Location> section, the first argument is omitted and the local + directory is obtained from the <Location>. The same will occur inside a + <LocationMatch> section; + however, ProxyPass does not interpret the regexp as such, so it is necessary + to use ProxyPassMatch in this situation instead.

    + +

    The ProxyPass directive is not supported in <Directory> or <Files> sections.

    + +

    If you require a more flexible reverse-proxy configuration, see the + RewriteRule directive with the + [P] flag.

    +

    The ! directive is useful in situations where you don't want to reverse-proxy a subdirectory, e.g.

    @@ -760,27 +937,52 @@ through backend.example.com except requests made to /mirror/foo/i.

    -

    Note

    -

    Order is important. you need to put the exclusions before the - general ProxyPass directive.

    -
    +

    Ordering ProxyPass Directives

    +

    The configured ProxyPass + and ProxyPassMatch + rules are checked in the order of configuration. The first rule that + matches wins. So usually you should sort conflicting + ProxyPass rules starting with the + longest URLs first. Otherwise, later rules for longer URLS will be hidden + by any earlier rule which uses a leading substring of the URL. Note that + there is some relation with worker sharing.

    -

    New in Apache 2.1, is the ability to use pooled connections to a - backend server. Using the key=value parameters it is possible - to tune this connection pooling. The default for a Hard Maximum - for the number of connections is the number of threads per process in the - active MPM. In the Prefork MPM, this is always 1, while with the Worker MPM - it is controlled by the ThreadsPerChild.

    +

    For the same reasons, exclusions must come before the + general ProxyPass directives.

    -

    Setting min will determine how many connections will always - be open to the backend server. Upto the Soft Maximum or smax - number of connections will be created on demand. Any connections above - smax are subject to a time to live or ttl. Apache - will never create more than the Hard Maximum or max connections - to the backend server.

    +
    -

    - ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300 +

    Ordering ProxyPass and RewriteRule Directives

    +

    RewriteRule directives + are evaluated before ProxyPass ones.

    +
    + +

    ProxyPass key=value Parameters

    + +

    In Apache HTTP Server 2.1 and later, mod_proxy supports pooled + connections to a backend server. Connections created on demand + can be retained in a pool for future use. Limits on the pool size + and other settings can be coded on + the ProxyPass directive + using key=value parameters, described in the tables + below.

    + +

    By default, mod_proxy will allow and retain the maximum number of + connections that could be used simultaneously by that web server child + process. Use the max parameter to reduce the number from + the default. Use the ttl parameter to set an optional + time to live; connections which have been unused for at least + ttl seconds will be closed. ttl can be used + to avoid using a connection which is subject to closing because of the + backend server's keep-alive timeout.

    + +

    The pool of connections is maintained per web server child + process, and max and other settings are not coordinated + among all child processes, except when only one child process is allowed + by configuration or MPM design.

    + +

    Example

    + ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300

    @@ -789,171 +991,416 @@ through - + - + - - + + - - - - + + - - - + + + + + + + + - + + + + + + + + + + + + - - - - + - + + + + + +
    Description
    min 0Minumum number of connections that will always - be open to the backend server.
    Minimum number of connection pool entries, unrelated to the + actual number of connections. This only needs to be modified from the + default for special circumstances where heap memory associated with the + backend connections should be preallocated or retained.
    max 1...nHard Maximum number of connections that will be - allowed to the backend server. The default for a Hard Maximum - for the number of connections is the number of threads per process in the - active MPM. In the Prefork MPM, this is always 1, while with the Worker MPM - it is controlled by the ThreadsPerChild. - Apache will never create more than the Hard Maximum connections - to the backend server.
    Maximum number of connections that will be allowed to the + backend server. The default for this limit is the number of threads + per process in the active MPM. In the Prefork MPM, this is always 1; + while with other MPMs, it is controlled by the + ThreadsPerChild directive.
    smax maxUpto the Soft Maximum - number of connections will be created on demand. Any connections above - smax are subject to a time to live or ttl. -
    ttlRetained connection pool entries above this limit are freed + during certain operations if they have been unused for longer than + the time to live, controlled by the ttl parameter. If + the connection pool entry has an associated connection, it will be + closed. This only needs to be modified from the default for special + circumstances where connection pool entries and any associated + connections which have exceeded the time to live need to be freed or + closed more aggressively.
    acquire -Time To Live for the inactive connections above the - smax connections in seconds. Apache will close all - connections that has not been used inside that time period. + If set, this will be the maximum time to wait for a free + connection in the connection pool, in milliseconds. If there are no free + connections in the pool, the Apache will return SERVER_BUSY + status to the client.
    timeoutTimeoutConnection timeout in seconds. - If not set the Apache will wait until the free connection - is available. This directive is used for limiting the number - of connections to the backend server together with max - parameter. +
    connectiontimeouttimeoutConnect timeout in seconds. + The number of seconds Apache waits for the creation of a connection to + the backend to complete. By adding a postfix of ms, the timeout can be + also set in milliseconds.
    acquire-If set this will be the maximum time to wait for a free - connection in the connection pool. If there are no free connections - in the pool the Apache will return SERVER_BUSY status to - the client. +
    disablereuseOffThis parameter should be used when you want to force mod_proxy + to immediately close a connection to the backend after being used, and + thus, disable its persistent connection and pool for that backend. + This helps in various situations where a firewall between Apache and + the backend server (regardless of protocol) tends to silently + drop connections or when backends themselves may be under round- + robin DNS. To disable connection pooling reuse, + set this property value to On. +
    flushpacketsoffDetermines whether the proxy module will auto-flush the output + brigade after each "chunk" of data. 'off' means that it will flush + only when needed; 'on' means after each chunk is sent; and + 'auto' means poll/wait for a period of time and flush if + no input has been received for 'flushwait' milliseconds. + Currently, this is in effect only for AJP. +
    flushwait10The time to wait for additional input, in milliseconds, before + flushing the output brigade if 'flushpackets' is 'auto'.
    keepalive OffThis parameter should be used when you have a firewall between your - Apache and the backend server, who tend to drop inactive connections. +

    This parameter should be used when you have a firewall between your + Apache and the backend server, which tends to drop inactive connections. This flag will tell the Operating System to send KEEP_ALIVE - messages on inactive connections (interval depends on global OS settings, - generally 120ms), and thus prevent the firewall to drop the connection. - To enable keepalive set this property value to On. + messages on inactive connections and thus prevent the firewall from dropping + the connection. + To enable keepalive, set this property value to On.

    +

    The frequency of initial and subsequent TCP keepalive probes + depends on global OS settings, and may be as high as 2 hours. To be useful, + the frequency configured in the OS must be smaller than the threshold used + by the firewall.

    +
    lbset0Sets the load balancer cluster set that the worker is a member + of. The load balancer will try all members of a lower numbered + lbset before trying higher numbered ones. +
    ping0Ping property tells webserver to send a CPING + request on ajp13 connection before forwarding a request. + The parameter is the delay in seconds to wait for the + CPONG reply. + This features has been added to avoid problem with hung and + busy Tomcat's and require ajp13 ping/pong support which has + been implemented on Tomcat 3.3.2+, 4.1.28+ and 5.0.13+. + This will increase the network traffic during the normal operation + which could be an issue, but it will lower the + traffic in case some of the cluster nodes are down or busy. + Currently, this has an effect only for AJP. + By adding a postfix of ms, the delay can be also set in + milliseconds. +
    loadfactor1Worker load factor. Used with BalancerMember. + It is a number between 1 and 100 and defines the normalized weighted + load applied to the worker. +
    redirect-Redirection Route of the worker. This value is usually + set dynamically to enable safe removal of the node from + the cluster. If set, all requests without session id will be + redirected to the BalancerMember that has route parameter + equal to this value.
    retry 60 Connection pool worker retry timeout in seconds. If the connection pool worker to the backend server is in the error state, Apache will not forward any requests to that server until the timeout - expires. This enables to shut down the backend server for maintenance, - and bring it back online later. -
    loadfactor1Worker load factor. Used with BalancerMember. - It is a number between 1 and 100 and defines the normalized weighted - load applied to the worker. + expires. This enables to shut down the backend server for maintenance + and bring it back online later. A value of 0 means always retry workers + in an error state with no timeout.
    route - Route of the worker when used inside load balancer. - The route is a value appended to seesion id. + The route is a value appended to session id.
    redirect
    status -Redirection Route of the worker. This value is usually - set dynamically to enable safe removal of the node from - the cluster. If set all requests without session id will be - redirected to the BalancerMember that has route parametar - equal as this value. + Single letter value defining the initial status of + this worker: 'D' is disabled; 'S' is stopped; 'I' is ignore-errors; + 'H' is hot-standby; and 'E' is in an error state. Status + can be set (which is the default) by prepending with '+' or + cleared by prepending with '-'. + Thus, a setting of 'S-E' sets this worker to Stopped and + clears the in-error flag. +
    timeoutProxyTimeoutConnection timeout in seconds. + The number of seconds Apache waits for data sent by / to the backend. +
    ttl-Time to live for inactive connections and associated connection + pool entries, in seconds. Once reaching this limit, a + connection will not be used again; it will be closed at some + later time.
    -

    If the Proxy directive scheme starts with the - balancer:// then a virtual worker that does not really - communicate with the backend server will be created. Instead it is responsible - for the management of several "real" workers. In that case the special set of - parameters can be add to this virtual worker. +

    If the ProxyPass directive scheme starts with the + balancer:// (eg: balancer://cluster/, + any path information is ignored), then a virtual worker that does not really + communicate with the backend server will be created. Instead, it is responsible + for the management of several "real" workers. In that case, the special set of + parameters can be added to this virtual worker. + See mod_proxy_balancer + for more information about how the balancer works.

    - + + + + + + + - + - - - - - + + + + + + + +
    Parameter Default Description
    lbmethod-byrequests Balancer load-balance method. Select the load-balancing scheduler - method to use. Either requests, to perform weighted - request counting or traffic, to perform weighted - traffic byte count balancing. Default is requests. + method to use. Either byrequests, to perform weighted + request counting; bytraffic, to perform weighted + traffic byte count balancing; or bybusyness + (Apache HTTP Server 2.2.10 and later), to perform pending request + balancing. The default is byrequests. +
    maxattemptsOne less than the number of workers, or 1 with a single worker.Maximum number of failover attempts before giving up. +
    nofailoverOffIf set to On, the session will break if the worker is in + error state or disabled. Set this value to On if backend servers do not + support session replication.
    stickysession - Balancer sticky session name. The value is usually set to something like JSESSIONID or PHPSESSIONID, and it depends on the backend application server that support sessions. + If the backend application server uses different names for cookies + and url encoded id (like servlet containers), use | to to separate them. + The first part is for the cookie; the second for the path.
    nofailover
    scolonpathdelim OffIf set to On the session will break if the worker is in - error state or disabled. Set this value to On if backend servers do not - support session replication. + If set to On, the semi-colon character ';' will be + used as an additional sticky session path deliminator/separator. This + is mainly used to emulate mod_jk's behavior when dealing with paths such + as JSESSIONID=6736bcf34;foo=aabfa
    timeout 0Balancer timeout in seconds. If set this will be the maximum time - to wait for a free worker. Default is not to wait. + Balancer timeout in seconds. If set, this will be the maximum time + to wait for a free worker. The default is to not wait.
    maxattempts1Maximum number of failover attempts before giving up. +
    failonstatus-A single or comma-separated list of HTTP status codes. If set, this will + force the worker into error state when the backend returns any status code + in the list. Worker recovery behaves the same as other worker errors. + Available with Apache HTTP Server 2.2.17 and later. +
    failontimeoutOffIf set, an IO read timeout after a request is sent to the backend will + force the worker into error state. Worker recovery behaves the same as other + worker errors. + Available with Apache HTTP Server 2.2.25 and later. +
    forcerecoveryOnForce the immediate recovery of all workers without considering the + retry parameter of the workers if all workers of a balancer are + in error state. There might be cases where an already overloaded backend + can get into deeper trouble if the recovery of all workers is enforced + without considering the retry parameter of each worker. In this case, + set to Off. + Available with Apache HTTP Server 2.2.23 and later.
    +

    A sample balancer setup:

    - ProxyPass /special-area http://special.example.com/ smax=5 max=10
    - ProxyPass / balancer://mycluster stickysession=jsessionid nofailover=On
    + ProxyPass /special-area http://special.example.com smax=5 max=10
    + ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    <Proxy balancer://mycluster>
    - BalancerMember http://1.2.3.4:8009
    - BalancerMember http://1.2.3.5:8009 smax=10
    - # Less powerful server, don't send as many requests there
    - BalancerMember http://1.2.3.6:8009 smax=1 loadfactor=20
    + BalancerMember ajp://1.2.3.4:8009
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=20
    + # Less powerful server, don't send as many requests there,
    + BalancerMember ajp://1.2.3.6:8009 loadfactor=5
    </Proxy>

    - -

    When used inside a <Location> section, the first argument is omitted and the local - directory is obtained from the <Location>.

    + +

    Setting up a hot-standby that will only be used if no other + members are available:

    +

    + ProxyPass / balancer://hotcluster/
    + <Proxy balancer://hotcluster>
    + + BalancerMember ajp://1.2.3.4:8009 loadfactor=1
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=2
    + # The below is the hot standby
    + BalancerMember ajp://1.2.3.6:8009 status=+H
    + ProxySet lbmethod=bytraffic +
    + </Proxy> +

    + +

    Additional ProxyPass Keywords

    + +

    Normally, mod_proxy will canonicalise ProxyPassed URLs. + But this may be incompatible with some backends, particularly those + that make use of PATH_INFO. The optional nocanon + keyword suppresses this and passes the URL path "raw" to the + backend. Note that this keyword may affect the security of your backend, + as it removes the normal limited protection against URL-based attacks + provided by the proxy.

    + +

    The optional interpolate keyword (available in + httpd 2.2.9 and later), in combination with + ProxyPassInterpolateEnv, causes the ProxyPass + to interpolate environment variables, using the syntax + ${VARNAME}. Note that many of the standard CGI-derived + environment variables will not exist when this interpolation happens, + so you may still have to resort to mod_rewrite + for complex rules. Also note that interpolation is not supported + within the scheme portion of a URL. Dynamic determination of the + scheme can be accomplished with mod_rewrite as in the + following example.

    + +
    RewriteEngine On
    +
    +RewriteCond %{HTTPS} =off
    +RewriteRule . - [E=protocol:http]
    +RewriteCond %{HTTPS} =on
    +RewriteRule . - [E=protocol:https]
    +
    +RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P]
    +ProxyPassReverse  /mirror/foo/ http://backend.example.com/
    +ProxyPassReverse  /mirror/foo/ https://backend.example.com/
    + + +
    +
    top
    +

    ProxyPassInterpolateEnv Directive

    + + + + + + + + +
    Description:Enable Environment Variable interpolation in Reverse Proxy configurations
    Syntax:ProxyPassInterpolateEnv On|Off
    Default:ProxyPassInterpolateEnv Off
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy
    Compatibility:Available in httpd 2.2.9 and later
    +

    This directive, together with the interpolate argument to + ProxyPass, ProxyPassReverse, + ProxyPassReverseCookieDomain, and + ProxyPassReverseCookiePath, + enables reverse proxies to be dynamically + configured using environment variables which may be set by + another module such as mod_rewrite. + It affects the ProxyPass, + ProxyPassReverse, + ProxyPassReverseCookieDomain, and + ProxyPassReverseCookiePath directives + and causes them to substitute the value of an environment + variable varname for the string ${varname} + in configuration directives if the interpolate option is set.

    +

    Keep this turned off (for server performance) unless you need it!

    + +
    +
    top
    +

    ProxyPassMatch Directive

    + + + + + + + +
    Description:Maps remote servers into the local server URL-space using regular expressions
    Syntax:ProxyPassMatch [regex] !|url [key=value + [key=value ...]]
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy
    Compatibility:available in Apache 2.2.5 and later
    +

    This directive is equivalent to ProxyPass + but makes use of regular expressions instead of simple prefix matching. The + supplied regular expression is matched against the url, and if it + matches, the server will substitute any parenthesized matches into the given + string and use it as a new url.

    + +

    Suppose the local server has address http://example.com/; + then

    + +

    + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1 +

    + +

    will cause a local request for + http://example.com/foo/bar.gif to be internally converted + into a proxy request to http://backend.example.com/foo/bar.gif.

    +

    Note

    +

    The URL argument must be parsable as a URL before regexp + substitutions (as well as after). This limits the matches you can use. + For instance, if we had used

    +

    + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1 +

    +

    in our previous example, it would fail with a syntax error + at server startup. This is a bug (PR 46665 in the ASF bugzilla), + and the workaround is to reformulate the match:

    +

    + ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1 +

    +
    + +

    The ! directive is useful in situations where you don't want + to reverse-proxy a subdirectory.

    + +

    When used inside a <LocationMatch> section, the first argument is omitted and the + regexp is obtained from the <LocationMatch>.

    If you require a more flexible reverse-proxy configuration, see the RewriteRule directive with the [P] flag.

    +
    +

    Security Warning

    +

    Take care when constructing the target URL of the rule, considering + the security impact from allowing the client influence over the set of + URLs to which your server will act as a proxy. Ensure that the scheme + and hostname part of the URL is either fixed or does not allow the + client undue influence.

    +
    +
    top

    ProxyPassReverse Directive

    - +
    Description:Adjusts the URL in HTTP response headers sent from a reverse proxied server
    Syntax:ProxyPassReverse [path] url
    Syntax:ProxyPassReverse [path] url +[interpolate]
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy

    This directive lets Apache adjust the URL in the Location, - Content-Location and URI headers on HTTP redirect - responses. This is essential when Apache is used as a reverse proxy to avoid - by-passing the reverse proxy because of HTTP redirects on the backend - servers which stay behind the reverse proxy.

    + Content-Location and URI headers on HTTP + redirect responses. This is essential when Apache is used as a + reverse proxy (or gateway) to avoid bypassing the reverse proxy + because of HTTP redirects on the backend servers which stay behind + the reverse proxy.

    Only the HTTP response headers specifically mentioned above will be rewritten. Apache will not rewrite other response headers, nor will it rewrite URL references inside HTML pages. This means that if the proxied content contains absolute URL - references, they will by-pass the proxy. A third-party module + references, they will bypass the proxy. A third-party module that will look inside the HTML and rewrite URL references is Nick Kew's mod_proxy_html.

    -

    path is the name of a local virtual path. url is a - partial URL for the remote server - the same way they are used for the - ProxyPass directive.

    +

    path is the name of a local virtual path; url is a + partial URL for the remote server. These parameters are used the same way as + for the ProxyPass directive.

    For example, suppose the local server has address http://example.com/; then

    @@ -968,21 +1415,33 @@ proxied server

    will not only cause a local request for the http://example.com/mirror/foo/bar to be internally converted into a proxy request to http://backend.example.com/bar - (the functionality ProxyPass provides here). It also takes care - of redirects the server backend.example.com sends: when - http://backend.example.com/bar is redirected by him to - http://backend.example.com/quux Apache adjusts this to + (the functionality which ProxyPass provides here). It also + takes care of redirects which the server backend.example.com + sends when redirecting http://backend.example.com/bar to + http://backend.example.com/quux . Apache adjusts this to http://example.com/mirror/foo/quux before forwarding the HTTP redirect response to the client. Note that the hostname used for constructing the URL is chosen in respect to the setting of the UseCanonicalName directive.

    Note that this ProxyPassReverse directive can - also be used in conjunction with the proxy pass-through feature + also be used in conjunction with the proxy feature (RewriteRule ... [P]) from mod_rewrite because it doesn't depend on a corresponding ProxyPass directive.

    +

    The optional interpolate keyword (available in + httpd 2.2.9 and later), used together with + ProxyPassInterpolateEnv, enables interpolation + of environment variables specified using the format ${VARNAME}. + Note that interpolation is not supported within the scheme portion of a + URL.

    +

    When used inside a <Location> section, the first argument is omitted and the local - directory is obtained from the <Location>.

    + directory is obtained from the <Location>. The same occurs inside a <LocationMatch> section, but will probably not work as + intended, as ProxyPassReverse will interpret the regexp literally as a + path; if needed in this situation, specify the ProxyPassReverse outside + the section or in a separate <Location> section.

    + +

    This directive is not supported in <Directory> or <Files> sections.

    top
    @@ -990,7 +1449,8 @@ proxied server - + @@ -1006,15 +1466,29 @@ string in Set-Cookie headers.

    Description:Adjusts the Domain string in Set-Cookie headers from a reverse- proxied server
    Syntax:ProxyPassReverseCookieDomain internal-domain public-domain
    Syntax:ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy
    - +
    Description:Adjusts the Path string in Set-Cookie headers from a reverse- proxied server
    Syntax:ProxyPassReverseCookiePath internal-path public-path
    Syntax:ProxyPassReverseCookiePath internal-path +public-path [interpolate]
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy
    -

    Usage is basically similar to -ProxyPassReverse, but instead of -rewriting headers that are a URL, this rewrites the path -string in Set-Cookie headers.

    +

    +Useful in conjunction with +ProxyPassReverse +in situations where backend URL paths are mapped to public paths on the +reverse proxy. This directive rewrites the path string in +Set-Cookie headers. If the beginning of the cookie path matches +internal-path, the cookie path will be replaced with +public-path. +

    +In the example given with +ProxyPassReverse, the directive:

    +

    + ProxyPassReverseCookiePath / /mirror/foo/ +

    +

    will rewrite a cookie with backend path / (or +/example or, in fact, anything) to /mirror/foo/. +

    top
    @@ -1031,7 +1505,7 @@ request

    When enabled, this option will pass the Host: line from the incoming request to the proxied host, instead of the hostname specified in the - ProxyPass line.

    + ProxyPass module="mod_proxy" line.

    This option should normally be turned Off. It is mostly useful in special configurations like proxied mass name-based virtual @@ -1082,20 +1556,21 @@ connections

    scheme is effectively the protocol that should be used to - communicate with the remote server; only http is supported by - this module.

    + communicate with the remote server; only http and https + are supported by this module. When using https, the requests + are forwarded through the remote proxy using the HTTP CONNECT method.

    Example

    - ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
    - ProxyRemote * http://cleversite.com
    - ProxyRemote ftp http://ftpproxy.mydomain.com:8080 + ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
    + ProxyRemote * http://cleverproxy.localdomain
    + ProxyRemote ftp http://ftpproxy.mydomain:8080

    In the last example, the proxy will forward FTP requests, encapsulated as yet another HTTP proxy request, to another proxy which can handle them.

    -

    This option also supports reverse proxy configuration - a backend +

    This option also supports reverse proxy configuration; a backend webserver can be embedded within a virtualhost URL space even if that server is hidden by another forward proxy.

    @@ -1111,8 +1586,10 @@ expressions Module:mod_proxy

    The ProxyRemoteMatch is identical to the - ProxyRemote directive, except the - first argument is a regular expression match against the requested URL.

    + ProxyRemote directive, except + that the first argument is a + regular expression + match against the requested URL.

    top
    @@ -1129,31 +1606,114 @@ expressions server. (Setting ProxyRequests to Off does not disable use of the ProxyPass directive.)

    -

    In a typical reverse proxy configuration, this option should be set to +

    In a typical reverse proxy or gateway configuration, this + option should be set to Off.

    In order to get the functionality of proxying HTTP or FTP sites, you need also mod_proxy_http or mod_proxy_ftp (or both) present in the server.

    +

    In order to get the functionality of (forward) proxying HTTPS sites, you + need mod_proxy_connect enabled in the server.

    +

    Warning

    Do not enable proxying with ProxyRequests until you have secured your server. Open proxy servers are dangerous both to your network and to the Internet at large.

    +

    See also

    + + +
    top
    +

    ProxySet Directive

    + + + + + + + +
    Description:Set various Proxy balancer or member parameters
    Syntax:ProxySet url key=value [key=value ...]
    Context:directory
    Status:Extension
    Module:mod_proxy
    Compatibility:ProxySet is only available in Apache 2.2 + and later.
    +

    This directive is used as an alternate method of setting any of the + parameters available to Proxy balancers and workers normally done via the + ProxyPass directive. If used + within a <Proxy balancer url|worker url> + container directive, the url argument is not required. As a side + effect the respective balancer or worker gets created. This can be useful + when doing reverse proxying via a + RewriteRule instead of a + ProxyPass directive.

    + +

    + <Proxy balancer://hotcluster>
    + + BalancerMember http://www2.example.com:8080 loadfactor=1
    + BalancerMember http://www3.example.com:8080 loadfactor=2
    + ProxySet lbmethod=bytraffic
    +
    + </Proxy> +

    + +

    + <Proxy http://backend>
    + + ProxySet keepalive=On
    +
    + </Proxy> +

    + +

    + ProxySet balancer://foo lbmethod=bytraffic timeout=15 +

    + +

    + ProxySet ajp://backend:7001 timeout=15 +

    + +

    Warning

    +

    Keep in mind that the same parameter key can have a different meaning + depending whether it is applied to a balancer or a worker, as shown by + the two examples above regarding timeout.

    +
    + + +
    +
    top
    +

    ProxyStatus Directive

    + + + + + + + + +
    Description:Show Proxy LoadBalancer status in mod_status
    Syntax:ProxyStatus Off|On|Full
    Default:ProxyStatus Off
    Context:server config, virtual host
    Status:Extension
    Module:mod_proxy
    Compatibility:Available in version 2.2 and later
    +

    This directive determines whether or not proxy + loadbalancer status data is displayed via the mod_status + server-status page.

    +

    Note

    +

    Full is synonymous with On

    +
    + +
    top

    ProxyTimeout Directive

    - +
    Description:Network timeout for proxied requests
    Syntax:ProxyTimeout seconds
    Default:ProxyTimeout 300
    Default:Value of Timeout
    Context:server config, virtual host
    Status:Extension
    Module:mod_proxy
    Compatibility:Available in Apache 2.0.31 and later
    -

    This directive allows a user to specifiy a timeout on proxy requests. +

    This directive allows a user to specify a timeout on proxy requests. This is useful when you have a slow/buggy appserver which hangs, and you would rather just return a timeout and fail gracefully instead of waiting however long it takes the server to return.

    @@ -1196,8 +1756,30 @@ header for proxied requests

    Available Languages:  en  | + fr  |  ja 

    -
    - +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy.html.fr b/docs/manual/mod/mod_proxy.html.fr new file mode 100644 index 00000000000..173f5ef313d --- /dev/null +++ b/docs/manual/mod/mod_proxy.html.fr @@ -0,0 +1,1999 @@ + + + + + +mod_proxy - Serveur Apache HTTP Version 2.2 + + + + + + + + +
    <-
    + +
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Module Apache mod_proxy

    +
    +

    Langues Disponibles:  en  | + fr  | + ja 

    +
    + + + +
    Description:Serveur mandataire/passerelle HTTP/1.1
    Statut:Extension
    Identificateur de Module:proxy_module
    Fichier Source:mod_proxy.c
    +

    Sommaire

    + +

    Avertissement

    +

    N'activez pas la fonctionnalité de mandataire avec la directive + ProxyRequests avant + d'avoir sécurisé votre serveur. Les serveurs + mandataires ouverts sont dangereux pour votre réseau, + mais aussi pour l'Internet au sens large.

    +
    + +

    Ce module implémente un mandataire/passerelle pour Apache. Il + implémente la fonctionnalité de mandataire pour AJP13 + (Apache JServe Protocol version 1.3), FTP, + CONNECT (pour SSL), HTTP/0.9, + HTTP/1.0, et HTTP/1.1. Le module peut être + configuré pour se connecter aux autres modules mandataires qui + gèrent ces protocoles.

    + +

    Les diverses fonctionnalités de + mandataire d'Apache sont réparties entre plusieurs modules + complémentaires de mod_proxy : + mod_proxy_http, mod_proxy_ftp, + mod_proxy_ajp, mod_proxy_balancer, + et mod_proxy_connect. Ainsi, si vous voulez + utiliser une ou plusieurs fonctionnalités de mandataire + particulières, chargez mod_proxy et le(s) + module(s) approprié(s) dans le serveur (soit statiquement à la + compilation, soit dynamiquement via la directive LoadModule).

    + +

    En outre, d'autres modules fournissent des fonctionnalités + étendues. mod_cache et ses modules associés + fournissent la mise en cache. Les directives SSLProxy* + du module mod_ssl permettent de contacter des + serveurs distants en utilisant le protocole SSL/TLS. Ces modules + additionnels devront être chargés et configurés pour pouvoir + disposer de ces fonctionnalités.

    +
    + +
    top
    +
    +

    Mandataires directs et + mandataires/passerelles inverses

    +

    Apache peut être configuré dans les deux modes mandataire + direct et mandataire inverse (aussi nommé + mode passerelle).

    + +

    Un mandataire direct standard est un serveur + intermédiaire qui s'intercale entre le client et le serveur + demandé. Pour obtenir un contenu hébergé par + le serveur demandé, le client envoie une requête au + mandataire en nommant le serveur demandé comme + cible, puis le mandataire extrait le contenu depuis le + serveur demandé et le renvoie enfin au client. Le client doit être + configuré de manière appropriée pour pouvoir utiliser le mandataire + direct afin d'accéder à d'autres sites.

    + +

    L'accès à Internet depuis des clients situés derrière un + pare-feu est une utilisation typique du mandataire direct. Le + mandataire direct peut aussi utiliser la mise en cache (fournie + par mod_cache) pour réduire la charge du + réseau.

    + +

    La fonctionnalité de mandataire direct est activée via la + directive ProxyRequests. + Comme les mandataires directs permettent aux clients d'accéder à + des sites quelconques via votre serveur et de dissimuler leur + véritable origine, il est indispensable de sécuriser votre serveur de façon à ce que seuls + les clients autorisés puissent accéder à votre serveur avant + d'activer la fonctionnalité de mandataire direct.

    + +

    Un mandataire inverse (ou passerelle), + quant à lui, apparaît au client comme un serveur web standard. + Aucune configuration particulière du client n'est nécessaire. Le + client adresse ses demandes de contenus ordinaires dans l'espace + de nommage du mandataire inverse. Ce dernier décide alors où + envoyer ces requêtes, et renvoie le contenu au client comme s'il + l'hébergeait lui-même.

    + +

    L'accès des utilisateurs à Internet pour un serveur situé + derrière un pare-feu est une utilisation typique du mandataire + inverse. On peut aussi utiliser les mandataires inverses pour + mettre en oeuvre une répartition de charge entre plusieurs + serveurs en arrière-plan, ou fournir un cache pour un serveur + d'arrière-plan plus lent. Les mandataires inverses peuvent aussi + tout simplement servir à rassembler plusieurs serveurs dans le + même espace de nommage d'URLs.

    + +

    La fonctionnalité de mandataire inverse est activée via la + directive ProxyPass ou + le drapeau [P] de la directive RewriteRule. Il n'est + pas nécessaire de définir ProxyRequests à on pour configurer + un mandataire inverse.

    +
    top
    +
    +

    Exemples simples

    + +

    Les exemples ci-dessous illustrent de manière très basique la + mise en oeuvre de la fonctionnalité de mandataire et ne sont là que + pour vous aider à démarrer. Reportez-vous à la documentation de + chaque directive.

    + +

    Si en outre, vous désirez activer la mise en cache, consultez la + documentation de mod_cache.

    + +

    Mandataire inverse

    + ProxyPass /foo http://foo.example.com/bar
    + ProxyPassReverse /foo http://foo.example.com/bar +

    + +

    Mandataire direct

    + ProxyRequests On
    + ProxyVia On
    +
    + <Proxy *>
    + + Order deny,allow
    + Deny from all
    + Allow from interne.example.com
    +
    + </Proxy> +

    + +
    top
    +
    +

    Gestionnaires de serveurs (workers)

    +

    Le mandataire gère la configuration des serveurs originaux, + ainsi que leurs paramètres de communication dans des objets + appelés workers ou Gestionnaires de serveur. Deux + workers intégrés par défaut sont disponibles : le worker de + mandataire direct et le worker de mandataire inverse. Des workers + supplémentaires peuvent être configurés explicitement.

    + +

    Les deux workers par défaut ont une configuration fixe et + seront utilisés si aucun autre worker ne correspond à la requête. + Ils n'utilisent ni les connexions HTTP persistantes, ni les jeux + de connexions. Les connexions TCP vers le serveur original seront + donc ouvertes et fermées pour chaque requête.

    + +

    Les workers configurés explicitement sont identifiés par leur + URL. Dans le cas d'un mandataire inverse, ils sont généralement + créés et configurés via les directives ProxyPass ou ProxyPassMatch :

    + +

    + ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30 +

    + +

    Cet exemple crée un worker associé à l'URL du serveur original + http://backend.example.com, qui utilisera les délais + spécifiés. Dans le cas d'un mandataire direct, les workers sont + généralement définis via la directive ProxySet directive :

    + +

    + ProxySet http://backend.example.com connectiontimeout=5 timeout=30 +

    + +

    ou encore via une combinaison des directives Proxy et ProxySet :

    + +

    + <Proxy http://backend.example.com>
    + + ProxySet connectiontimeout=5 timeout=30 + + </Proxy> +

    + +

    L'utilisation de workers configurés explicitement dans le mode + direct n'est pas très courante, car les mandataires directs + communiquent avec de nombreux serveurs originaux. Il est cependant + intéressant de créer des workers explicites pour certains serveurs + originaux si ces derniers sont utilisés très souvent. Les workers + configurés explicitement n'ont en eux-mêmes aucun concept de + mandataire direct ou inverse. Ils encapsulent un concept de + communication commun avec les serveurs originaux. Un worker créé + via la directive ProxyPass pour être utilisé avec un + mandataire inverse, sera aussi utilisé pour les requêtes mandatées + en direct chaque fois que l'URL du serveur original correspondra à + l'URL du worker, et vice versa.

    + +

    L'URL identifiant un worker direct correspond à l'URL de son + serveur original comportant tout élément de chemin éventuel :

    + +

    + ProxyPass /examples http://backend.example.com/examples
    + ProxyPass /docs http://backend.example.com/docs +

    + +

    Cet exemple définit deux workers différents, chacun d'entre eux + utilisant une configuration et un jeu de connexions séparés.

    + +

    Partage de worker

    +

    Le partage de worker se produit lorsque les URLs des workers + se chevauchent, c'est à dire lorsque l'URL d'un worker + correspond à une partie du début de l'URL d'un autre worker + défini plus loin dans le fichier de configuration. Dans + l'exemple suivant,

    + +

    + ProxyPass /apps http://backend.example.com/ timeout=60
    + ProxyPass /examples http://backend.example.com/examples timeout=10 +

    + +

    le second worker n'est pas vraiment créé. C'est le premier + worker qui est utilisé à sa place. L'avantage de ceci réside + dans le fait qu'il n'y a plus qu'un jeu de connexions, celles-ci + étant donc réutilisées plus souvent. Notez que tous les + attributs de configuration définis explicitement pour le second + worker et certaines valeurs par défaut vont écraser la + configuration définie pour le premier worker, ce qui va + provoquer la journalisation d'un avertissement. Dans l'exemple + précédent, la valeur de délai finale pour l'URL + /apps sera 10 au lieu de 60 !

    + +

    Pour éviter ce partage, classez vos définitions de workers de + l'URL la plus longue à la plus courte. Si au contraire, vous + voulez favoriser ce partage, utilisez l'ordre de classement + inverse. Voir aussi l'avertissement en rapport à propos de + l'ordre de classement des directives ProxyPass.

    + +
    + +

    Les workers configurés explicitement sont de deux sortes : + workers directs et workers à répartition (de + charge). Ils supportent de nombreux attributs de + configuration importants décrits ci-dessous dans la directive + ProxyPass. Tous ces + attributs peuvent aussi être définis via la directive ProxySet.

    + +

    Le jeu d'options disponibles pour un worker direct dépend du + protocole, qui est spécifié dans l'URL du serveur original. Parmi + les protocoles disponibles, on trouve ajp, + ftp, http et scgi.

    + +

    Les workers à répartition sont des workers virtuels qui + utilisent des workers directs considérés comme leurs membres pour + le traitement effectif des requêtes. Chaque répartiteur peut + posséder plusieurs membres. Pour traiter une requête, il choisit + un de ses membres en fonction de l'algorithme de répartition de + charge défini.

    + +

    Un worker à répartition est créé si son URL utilise + balancer comme protocole. L'URL de répartition + identifie de manière unique le worker à répartition. On peut + ajouter des membres à un répartiteur via la directive BalancerMember.

    + +
    top
    +
    +

    Contrôler l'accès à votre + mandataire

    +

    Vous pouvez restreindre l'accès à votre mandataire via le bloc + de contrôle <Proxy> comme dans + l'exemple suivant :

    + +

    + <Proxy *>
    + + Order Deny,Allow
    + Deny from all
    + Allow from 192.168.0
    +
    + </Proxy> +

    + +

    Pour plus de détails sur les directives de contrôle d'accès, + voir la documentation du module + mod_authz_host.

    + +

    Restreindre l'accès de manière stricte est essentiel si vous + mettez en oeuvre un mandataire direct (en définissant la directive + ProxyRequests à "on"). + Dans le cas contraire, votre serveur pourrait être utilisé par + n'importe quel client pour accéder à des serveurs quelconques, + tout en masquant sa véritable identité. Ceci représente un danger + non seulement pour votre réseau, mais aussi pour l'Internet au + sens large. Dans le cas de la mise en oeuvre d'un mandataire + inverse (en utilisant la directive ProxyPass avec ProxyRequests Off), le contrôle + d'accès est moins critique car les clients ne peuvent contacter + que les serveurs que vous avez spécifiés.

    + +
    top
    +
    +

    Ralentissement au démarragep

    +

    Si vous utilisez la directive ProxyBlock, les noms d'hôtes sont résolus en adresses + IP puis ces dernières mises en cache au cours du démarrage + à des fins de tests de comparaisons ultérieurs. Ce processus peut + durer plusieurs secondes (ou d'avantage) en fonction de la vitesse + à laquelle s'effectue la résolution des noms d'hôtes.

    +
    top
    +
    +

    Mandataire d'Intranet

    +

    Un serveur mandataire Apache situé à l'intérieur d'un Intranet + doit faire suivre les requêtes destinées à un serveur externe à + travers le pare-feu de l'entreprise (pour ce faire, définissez la + directive ProxyRemote de + façon à ce qu'elle fasse suivre le protocole concerné + vers le mandataire du pare-feu). Cependant, lorsqu'il doit accéder + à des ressources situées dans l'Intranet, il peut se passer du + pare-feu pour accéder aux serveurs. A cet effet, la directive + NoProxy permet de + spécifier quels hôtes appartiennent à l'Intranet et peuvent donc + être accédés directement.

    + +

    Les utilisateurs d'un Intranet ont tendance à oublier le nom du + domaine local dans leurs requêtes WWW, et demandent par exemple + "http://un-serveur/" au lieu de + http://un-serveur.example.com/. Certains serveurs + mandataires commerciaux acceptent ce genre de requête et les + traitent simplement en utilisant un nom de domaine local + implicite. Lorsque la directive ProxyDomain est utilisée et si le + serveur est configuré comme + mandataire, Apache peut renvoyer une réponse de redirection et + ainsi fournir au client l'adresse de serveur correcte, + entièrement qualifiée. C'est la méthode à privilégier car le + fichier des marque-pages de l'utilisateur contiendra alors des + noms de serveurs entièrement qualifiés.

    +
    top
    +
    +

    Ajustements relatifs au + protocole

    +

    Pour les cas où mod_proxy envoie des requêtes + vers un serveur qui n'implémente pas correctement les connexions + persistantes ou le protocole HTTP/1.1, il existe deux variables + d'environnement qui permettent de forcer les requêtes à utiliser + le protocole HTTP/1.0 avec connexions non persistantes. Elles + peuvent être définies via la directive SetEnv.

    + +

    Il s'agit des variables force-proxy-request-1.0 et + proxy-nokeepalive.

    + +

    + <Location /serveur-non-conforme/>
    + + ProxyPass http://serveur-non-conforme:7001/foo/
    + SetEnv force-proxy-request-1.0 1
    + SetEnv proxy-nokeepalive 1
    +
    + </Location> +

    + +
    top
    +
    +

    Corps de requêtes

    + +

    Certaines méthodes de requêtes comme POST comportent un corps de + requête. Le protocole HTTP stipule que les requêtes qui comportent + un corps doivent soit utiliser un codage de transmission + fractionnée, soit envoyer un en-tête de requête + Content-Length. Lorsqu'il fait suivre ce genre de + requête vers le serveur demandé, mod_proxy_http + s'efforce toujours d'envoyer l'en-tête Content-Length. + Par contre, si la taille du corps est importante, et si la requête + originale utilise un codage à fractionnement, ce dernier peut aussi + être utilisé dans la requête montante. Ce comportement peut être + contrôlé à l'aide de variables + d'environnement. Ainsi, si elle est définie, la variable + proxy-sendcl assure une compatibilité maximale avec les + serveurs demandés en imposant l'envoi de l'en-tête + Content-Length, alors que + proxy-sendchunked diminue la consommation de ressources + en imposant l'utilisation d'un codage à fractionnement.

    + +
    top
    +
    +

    En-têtes de requête du mandataire + inverse

    + +

    Lorsqu'il est configuré en mode mandataire inverse (en utilisant + par exemple la directive ProxyPass), + mod_proxy_http ajoute plusieurs en-têtes de requête + afin de transmettre des informations au serveur demandé. Ces + en-têtes sont les suivants :

    + +
    +
    X-Forwarded-For
    +
    L'adresse IP du client.
    +
    X-Forwarded-Host
    +
    L'hôte d'origine demandé par le client dans l'en-tête de + requête HTTP Host.
    +
    X-Forwarded-Server
    +
    Le nom d'hôte du serveur mandataire.
    +
    + +

    Ces en-têtes doivent être utilisés avec précautions sur le + serveur demandé, car ils contiendront plus d'une valeur (séparées + par des virgules) si la requête original contenait déjà un de ces + en-têtes. Par exemple, vous pouvez utiliser + %{X-Forwarded-For}i dans la chaîne de format du journal + du serveur demandé pour enregistrer les adresses IP des clients + originaux, mais il est possible que vous obteniez plusieurs adresses + si la requête passe à travers plusieurs mandataires.

    + +

    Voir aussi les directives ProxyPreserveHost et ProxyVia directives, qui permettent + de contrôler d'autres en-têtes de requête.

    + +
    +
    top
    +

    Directive AllowCONNECT

    + + + + + + + +
    Description:Ports autorisés à se CONNECTer à travers le +mandataire
    Syntaxe:AllowCONNECT port [port] ...
    Défaut:AllowCONNECT 443 563
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    La directive AllowCONNECT permet de + spécifier une liste de numéros de ports auxquels la méthode de + mandataire CONNECT pourra se connecter. Les navigateurs + d'aujourd'hui utilisent cette méthode dans le cas où une connexion + https est requise et où le tunneling mandataire sur + HTTP est en service.

    + +

    Par défaut, seuls les ports par défauts https (443) + et snews (563) sont pris en compte. Vous pouvez + utiliser la directive AllowCONNECT pour + outrepasser ces valeurs par défaut et n'autoriser les connexions que + vers les ports spécifiés.

    + +

    Notez que le module mod_proxy_connect doit être + chargé dans le serveur pour pouvoir accéder au support de + CONNECT.

    + +
    +
    top
    +

    Directive BalancerMember

    + + + + + + + +
    Description:Ajoute un membre à un groupe de répartition de +charge
    Syntaxe:BalancerMember [balancerurl] url [clé=valeur [clé=valeur ...]]
    Contexte:répertoire
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.2 d'Apache.
    +

    Cette directive parmet d'ajouter un membre à un groupe de + répartition de charge. Elle peut se trouver dans un conteneur + <Proxy balancer://...>, et accepte + tous les paramètres de paires clé/valeur que supporte la directive + ProxyPass.

    +

    L'argument balancerurl n'est requis que s'il ne se trouve pas + dèjà dans la directive de conteneur <Proxy + balancer://...>. Il correspond à l'URL d'un + répartiteur de charge défini par une directive ProxyPass.

    + +
    +
    top
    +

    Directive NoProxy

    + + + + + + +
    Description:Serveurs, domaines ou réseaux auquels on se connectera +directement
    Syntaxe:NoProxy domaine [domaine] ...
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    Cette directive n'a d'utilité que pour les serveurs mandataires + Apache au sein d'Intranets. La directive + NoProxy permet de spécifier une liste de + sous-réseaux, d'adresses IP, de serveurs et/ou de domaines séparés + par des espaces. Une requête pour un serveur qui correspond à un ou + plusieurs critères sera toujours servie par ce serveur directement, + sans être redirigée vers le(s) serveur(s) mandataire(s) défini(s) par + la directive ProxyRemote.

    + +

    Exemple

    + ProxyRemote * http://pare-feu.example.com:81
    + NoProxy .example.com 192.168.112.0/21 +

    + +

    Le type des arguments serveur de la directive + NoProxy appartiennent à la liste suivante + :

    + +
    + +
    Domaine
    +
    +

    Un domaine est ici un nom de domaine DNS partiellement + qualifié précédé d'un point. Il représente une liste de serveurs qui + appartiennent logiquement au même domaine ou à la même zonz DNS + (en d'autres termes, les nom des serveurs se terminent tous par + domaine).

    + +

    Exemple

    + .com .apache.org. +

    + +

    Pour faire la distinction entre domaines et nom d'hôtes (des points de vue à la fois + syntaxique et + sémantique, un domaine DNS pouvant aussi avoir un enregistrement DNS + de type A !), les domaines sont toujours spécifiés en les + préfixant par un point.

    + +

    Note

    +

    Les comparaisons de noms de domaines s'effectuent sans tenir + compte de la casse, et les parties droites des Domaines + sont toujours censées correspondre à la racine de l'arborescence + DNS, si bien que les domaines .ExEmple.com et + .example.com. (notez le point à la fin du nom) sont + considérés comme identiques. Comme une comparaison de domaines ne + nécessite pas de recherche DNS, elle est beaucoup plus efficace + qu'une comparaison de sous-réseaux.

    +
    + + +
    Sous-réseau
    +
    +

    Un Sous-réseau est une adresse internet partiellement + qualifiée sous forme numérique (quatre nombres séparés par des + points), optionnellement suivie d'un slash et du masque de + sous-réseau spécifiant le nombre de bits significatifs dans le + Sous-réseau. Il représente un sous-réseau de serveurs qui + peuvent être atteints depuis la même interface réseau. En l'absence + de masque de sous-réseau explicite, il est sous-entendu que les + digits manquants (ou caractères 0) de fin spécifient le masque de + sous-réseau (Dans ce cas, le masque de sous-réseau ne peut être + qu'un multiple de 8). Voici quelques exemples :

    + +
    +
    192.168 ou 192.168.0.0
    +
    le sous-réseau 192.168.0.0 avec un masque de sous-réseau + implicite de 16 bits significatifs (parfois exprimé sous la forme + 255.255.0.0)
    +
    192.168.112.0/21
    +
    le sous-réseau 192.168.112.0/21 avec un masque de + sous-réseau implicite de 21 bits significatifs (parfois exprimé + sous la forme255.255.248.0)
    +
    + +

    Comme cas extrèmes, un Sous-réseau avec un masque de + sous-réseau de 32 bits significatifs est équivalent à une adresse IP, alors qu'un Sous-réseau avec un masque de + sous-réseau de 0 bit significatif (c'est à dire 0.0.0.0/0) est + identique à la constante _Default_, et peut correspondre + à toute adresse IP.

    + + +
    Adresse IP
    +
    +

    Une Adresse IP est une adresse internet pleinement + qualifiée sous forme numérique (quatre nombres séparés par des + points). En général, cette adresse représente un serveur, mais elle + ne doit pas nécessairement correspondre à un nom de domaine DNS.

    +

    Exemple

    + 192.168.123.7 +

    + +

    Note

    +

    Une Adresse IP ne nécessite pas de résolution DNS, + et peut ainsi s'avérer plus efficace quant aux performances + d'Apache.

    +
    + + +
    Nom de serveur
    +
    +

    Un Nom de serveur est un nom de domaine DNS pleinement + qualifié qui peut être résolu en une ou plusieurs adresses IP par le + service de noms de domaines DNS. Il représente un hôte logique (par + opposition aux Domaines, voir + ci-dessus), et doit pouvoir être résolu en une ou plusieurs adresses IP (ou souvent en une liste + d'hôtes avec différentes adresses + IP).

    + +

    Exemples

    + prep.ai.example.com
    + www.apache.org +

    + +

    Note

    +

    Dans de nombreuses situations, il est plus efficace de + spécifier une adresse IP qu'un + Nom de serveur car cela évite d'avoir à effectuer une + recherche DNS. La résolution de nom dans Apache peut prendre un + temps très long lorsque la connexion avec le serveur de noms + utilise une liaison PPP lente.

    +

    Les comparaisons de Nom de serveur s'effectuent sans tenir + compte de la casse, et les parties droites des Noms de serveur + sont toujours censées correspondre à la racine de l'arborescence + DNS, si bien que les domaines WWW.ExEmple.com et + www.example.com. (notez le point à la fin du nom) sont + considérés comme identiques.

    +
    +
    + +

    Voir aussi

    + +
    +
    top
    +

    Directive <Proxy>

    + + + + + + +
    Description:Conteneur de directives s'appliquant à des ressources +mandatées
    Syntaxe:<Proxy url-avec-jokers> ...</Proxy>
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    Les directives situées dans une section <Proxy> ne s'appliquent qu'au contenu + mandaté concerné. Les jokers de style shell sont autorisés.

    + +

    Par exemple, les lignes suivantes n'autoriseront à accéder à un + contenu via votre serveur mandataire que les hôtes appartenant à + votre-reseau.example.com :

    + +

    + <Proxy *>
    + + Order Deny,Allow
    + Deny from all
    + Allow from votre-reseau.example.com
    +
    + </Proxy> +

    + +

    Dans l'exemple suivant, tous les fichiers du répertoire + foo de example.com seront traités par le + filtre INCLUDES lorsqu'ils seront envoyés par + l'intermédiaire du serveur mandataire :

    + +

    + <Proxy http://example.com/foo/*>
    + + SetOutputFilter INCLUDES
    +
    + </Proxy> +

    + +

    Différences avec la section de configuration Location

    +

    Une URL d'arrière-plan sera concernée par le conteneur Proxy si + elle commence par la url-avec-jokers, même si le + dernier segment de chemin de la directive ne correspond qu'à un + préfixe de segment dee chemin de l'URL d'arrière-plan. Par exemple, <Proxy + http://example.com/foo> correspondra entre autres aux URLs + http://example.com/foo, http://example.com/foo/bar, et + http://example.com/foobar. La correspondance de l'URL finale + diffère du comportement de la section <Location> qui, pour le cas de cette note, + traitera le segment de chemin final comme s'il se terminait par un + slash.

    +

    Pour un contrôle plus fin de la correspondance des URL, voir la + directive <ProxyMatch>.

    +
    + + +

    Voir aussi

    + +
    +
    top
    +

    Directive ProxyBadHeader

    + + + + + + + + +
    Description:Détermine la manière de traiter les lignes d'en-tête +incorrectes d'une réponse
    Syntaxe:ProxyBadHeader IsError|Ignore|StartBody
    Défaut:ProxyBadHeader IsError
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.0.44 d'Apache
    +

    La directive ProxyBadHeader permet de + déterminer le comportement de mod_proxy lorsqu'il + reçoit des lignes d'en-tête de réponse dont la syntaxe n'est pas valide (c'est + à dire ne contenant pas de caractère ':') en provenance du serveur + original. Les arguments disponibles sont :

    + +
    +
    IsError
    +
    Annule la requête et renvoie une réponse de code 502 (mauvaise + passerelle). C'est le comportement par défaut.
    + +
    Ignore
    +
    Traite les lignes d'en-tête incorrectes comme si elles n'avaient + pas été envoyées.
    + +
    StartBody
    +
    A la réception de la première ligne d'en-tête incorrecte, les + autres en-têtes sont lus et ce qui reste est traité en tant que + corps. Ceci facilite la prise en compte des serveurs d'arrière-plan + bogués qui oublient d'insérer une ligne vide entre les + en-têtes et le corps.
    +
    + +
    +
    top
    +

    Directive ProxyBlock

    + + + + + + +
    Description:Termes, serveurs ou domaines bloqués par le +mandataire
    Syntaxe:ProxyBlock *|terme|serveur|domaine +[terme|serveur|domaine] ...
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    La directive ProxyBlock permet de + spécifier une liste de termes, serveurs et/ou domaines, séparés par + des espaces. Les requêtes de documents HTTP, HTTPS, FTP vers des + sites dont les noms contiennent des termes, noms de serveur ou + domaine correspondants seront bloqués par le serveur + mandataire. La module proxy va aussi tenter de déterminer les + adresses IP des items de la liste qui peuvent correspondre à des + noms d'hôtes au cours du démarrage, et les mettra en cache à des + fins de comparaisons ultérieures. Ceci peut ralentir le démarrage du + serveur.

    + +

    Exemple

    + ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu +

    + +

    rocky.wotsamattau.edu aurait aussi correspondu s'il + avait été spécifié par son adresse IP.

    + +

    Notez que wotsamattau aurait suffi pour correspondre + à wotsamattau.edu.

    + +

    Notez aussi que

    + +

    + ProxyBlock * +

    + +

    bloque les connexions vers tous les sites.

    + +
    +
    top
    +

    Directive ProxyDomain

    + + + + + + +
    Description:Nom de domaine par défaut pour les requêtes +mandatées
    Syntaxe:ProxyDomain Domaine
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    Cette directive n'a d'utilité que pour les serveurs mandataires + Apache au sein d'un Intranet. La directive + ProxyDomain permet de spécifier le domaine + par défaut auquel le serveur mandataire apache appartient. Si le + serveur reçoit une requête pour un hôte sans nom de domaine, il va + générer une réponse de redirection vers le même hôte suffixé par le + Domaine spécifié.

    + +

    Exemple

    + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21
    + ProxyDomain .example.com +

    + +
    +
    top
    +

    Directive ProxyErrorOverride

    + + + + + + + + +
    Description:Outrepasser les pages d'erreur pour les contenus +mandatés
    Syntaxe:ProxyErrorOverride On|Off
    Défaut:ProxyErrorOverride Off
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.0 d'Apache
    +

    Cette directive est utile pour les configurations de mandataires + inverses, lorsque vous souhaitez que les pages d'erreur envoyées + aux utilisateurs finaux présentent un aspect homogène. Elle permet + aussi l'inclusion de fichiers (via les SSI de + mod_include) pour obtenir le code d'erreur et agir + en conséquence (le comportement par défaut afficherait la page + d'erreur du serveur mandaté, alors que c'est le message d'erreur SSI + qui sera affiché si cette directive est à "on").

    + +

    Cette directive n'affecte pas le traitement des réponses + informatives (1xx), de type succès normal (2xx), ou de redirection + (3xx).

    + +
    +
    top
    +

    Directive ProxyFtpDirCharset

    + + + + + + + + +
    Description:Définit le jeu de caractères des listings FTP +mandatés
    Syntaxe:ProxyFtpDirCharset jeu-caractères
    Défaut:ProxyFtpDirCharset ISO-8859-1
    Contexte:configuration du serveur, serveur virtuel, répertoire
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.2.7 d'Apache
    +

    La directive ProxyFtpDirCharset permet de + définir le jeu de caractères à utiliser pour les listings FTP en + HTML générés par mod_proxy_ftp.

    + +
    +
    top
    +

    Directive ProxyIOBufferSize

    + + + + + + + +
    Description:Détermine la taille du tampon interne de transfert de +données
    Syntaxe:ProxyIOBufferSize octets
    Défaut:ProxyIOBufferSize 8192
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    La directive ProxyIOBufferSize permet + d'ajuster la taille du tampon interne utilisé comme bloc-note pour + les transferts de données entre entrée et sortie. La taille doit + être au minimum égale à 8192 octets.

    + +

    Lorsqu'on utilise mod_proxy_ajp, la valeur + minimale est alignée sur la limite de 1024 octets, et les valeurs + supérieures à 65536 octets sont ramenées à 65536 octets, comme préconisé + par le protocole AJP.

    + +

    Dans la plupart des cas, il n'y a aucune raison de modifier cette + valeur.

    + + +
    +
    top
    +

    Directive <ProxyMatch>

    + + + + + + +
    Description:Conteneur de directives s'appliquant à des ressources +mandatées correspondant à une expression rationnelle
    Syntaxe:<ProxyMatch regex> ...</ProxyMatch>
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    La directive <ProxyMatch> est + identique à la directive <Proxy>, à l'exception qu'elle définit + les URLs auxquelles elle s'applique en utilisant une expression rationnelle.

    + +

    Voir aussi

    + +
    +
    top
    +

    Directive ProxyMaxForwards

    + + + + + + + + +
    Description:Nombre maximum de mandataires à travers lesquelles une +requête peut être redirigée
    Syntaxe:ProxyMaxForwards nombre
    Défaut:ProxyMaxForwards -1
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis Apache 2.0 ; comportement par défaut +modifié dans 2.2.7
    +

    La directive ProxyMaxForwards permet de + spécifier le nombre maximum de mandataires à travers lesquels une + requête peut passer dans le cas où la la requête ne contient pas + d'en-tête Max-Forwards. Ceci permet de se prémunir + contre les boucles infinies de mandataires ou contre les attaques de + type déni de service.

    + +

    Exemple

    + ProxyMaxForwards 15 +

    + +

    Notez que la définition de la directive + ProxyMaxForwards constitue une violation du + protocole HTTP/1.1 (RFC2616), qui interdit à un mandataire de + définir Max-Forwards si le client ne l'a pas fait + lui-même. Les versions précédentes d'Apache la définissaient + systématiquement. Une valeur négative de + ProxyMaxForwards, y compris la valeur par + défaut -1, implique un comportement compatible avec le protocole, + mais vous expose aux bouclages infinis.

    + +
    +
    top
    +

    Directive ProxyPass

    + + + + + + +
    Description:Référencer des serveurs distants depuis +l'espace d'URLs du serveur local
    Syntaxe:ProxyPass [chemin] !|url [clé=valeur + [clé=valeur ...]] [nocanon] [interpolate]
    Contexte:configuration du serveur, serveur virtuel, répertoire
    Statut:Extension
    Module:mod_proxy
    +

    Cette directive permet référencer des serveurs distants depuis + l'espace d'URLs du serveur local ; le serveur + local n'agit pas en tant que mandataire au sens conventionnel, mais + plutôt comme miroir du serveur distant. Le serveur local est + souvent nommé mandataire inverse ou + passerelle. L'argument chemin est le nom d'un + chemin virtuel local ; url est une URL partielle pour le + serveur distant et ne doit pas contenir de chaîne d'arguments.

    + +
    En général, la directive ProxyRequests doit être définie à + off lorsqu'on utilise la directive + ProxyPass.
    + +

    Supposons que le serveur local a pour adresse + http://example.com/ ; alors la ligne

    + +

    + ProxyPass /miroir/foo/ http://backend.example.com/ +

    + +

    va convertir en interne toute requête pour + http://example.com/miroir/foo/bar en une requête + mandatée pour http://backend.example.com/bar.

    + +
    +

    Si le premier argument se termine par un slash + /, il doit en être de même pour le second argument + et vice versa. Dans le cas contraire, il risque de manquer des + slashes nécessaires dans la requête résultante vers le serveur + d'arrière-plan et les résulats ne seront pas ceux attendus. +

    +
    + +

    Lorsque cette directive est utilisée dans une section <Location>, le premier + argument est omis et le répertoire local est obtenu à partir de + l'argument de la directive <Location>. Il en est de même à l'intérieur + d'une section <LocationMatch>, mais le résultat ne sera + probablement pas celui attendu car ProxyPassReverse va interpréter + l'expression rationnelle littéralement comme un chemin ; si besoin + est dans ce cas, définissez la directive ProxyPassReverse en dehors + de la section, ou dans une section <Location> séparée.

    + +

    La directive ProxyPass ne peut pas être placée dans une section + <Directory> ou + <Files>.

    + +

    Si vous avez besoin d'un configuration de mandataire inverse plus + souple, reportez-vous à la documentaion de la directive RewriteRule et son drapeau + [P].

    + +

    Le drapeau ! permet de soustraire un sous-répertoire + du mandat inverse, comme dans l'exemple suivant :

    + +

    + ProxyPass /miroir/foo/i !
    + ProxyPass /miroir/foo http://backend.example.com +

    + +

    va mandater toutes les requêtes pour /miroir/foo + vers backend.example.com, sauf les requêtes + pour /miroir/foo/i.

    + +

    Ordre de classement des directives + ProxyPass

    +

    Les directives ProxyPass et ProxyPassMatch sont traitées selon + leur ordre d'apparition dans le fichier de configuration. La + première qui correspond s'applique. Ainsi, vous devez classer les + directives ProxyPass qui + peuvent entrer en conflit, de l'URL la plus longue à la plus + courte. Dans le cas contraire, les directives dont l'URL + constitue une partie du début de l'URL de directives + apparaissant plus loin dans la configuration vont occulter ces + dernières. Notez que tout ceci est en relation avec le partage de + worker.

    + +

    Pour les mêmes raisons, les exclusions doivent apparaître + avant les directives ProxyPass + générales.

    + +
    + +

    Ordre d'évaluation des directives ProxyPass et RewriteRule

    +

    Les directives RewriteRule + sont évaluées avant les directives ProxyPass.

    ++
    + +

    ProxyPass clé=valeur Paramètres

    + +

    Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte + les jeux de connexions vers un serveur d'arrière-plan. Ainsi, les + connexions créées à la demande peuvent être conservées dans un + jeu pour une utilisation ultérieure. Les limites de la taille + du jeu de connexions et d'autres paramètres peuvent être définis au + niveau de la directive ProxyPass via des + arguments clé=valeur décrits dans les + tables ci-dessous.

    + +

    Par défaut, mod_proxy permettra de conserver le nombre maximum de + connexions pouvant être utilisées simultanément par le processus + enfant concerné du serveur web. Vous pouvez utiliser le paramètre + max pour réduire ce nombre par rapport à la valeur par + défaut. Vous pouvez aussi utiliser le paramètre ttl + pour définir une durée de vie optionnelle ; ainsi, les connections + qui n'ont pas été utilisées au bout de ttl secondes + seront fermées. Le paramètre ttl permet aussi + d'empêcher l'utilisation d'une connexion susceptible d'être fermée + suite à l'expiration de la durée de vie des connexions persistantes + sur le serveur d'arrière-plan.

    + +

    Le jeu de connexions est maintenu au niveau de chaque processus + enfant du serveur web, et max et les autres paramètres + ne font l'objet d'aucune coordination entre les différents processus + enfants, sauf bien sur dans le cas où un seul processus enfant est + permis par la configuration du module multiprocessus.

    + +

    + ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300 +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParamètreDéfautDescription
    min0Nombre minimum d'entrées dans le jeu de connexions, sans + rapport avec le nombre réel de connexions. Ne doit être modifié + par rapport à la valeur par défaut que dans des circonstances + spéciales où la mémoire du tas associée aux connexions + d'arrière-plan doit être préallouée ou conservée.
    max1...nNombre maximum de connexions permises vers le serveur + d'arrière-plan. La valeur par défaut pour cette limite est le + nombre de threads par processus pour le module multiprocessus + actif. Pour le MPM Prefork, la valeur est toujours 1, alors que + pour les autres, on peut la contrôler via la directive + ThreadsPerChild.
    smaxmaxLes entrées conservées du jeu de connexions au dessus de + cette limite sont libérées au cours de certaines opérations si + elles n'ont pas été utilisées au bout de leur durée de vie + définie par le paramètre ttl. Si l'entrée du jeu de + connexions est associée à une connexion, cette dernière sera + alors fermée. Ce paramètre ne doit être modifié par rapport à la + valeur par défaut que dans des circonstances spéciales où les + entrées du jeu de connexions, et toutes connexions associées qui + ont dépassé leur durée de vie doivent être respectivement + libérées ou fermées plus impérativement.
    acquire-Cette clé permet de définir le délai maximum d'attente pour + une connexion libre dans le jeu de connexions, en millisecondes. + S'il n'y a pas de connexion libre dans le jeu, Apache renverra + l'état SERVER_BUSY au client. +
    connectiontimeouttimeoutDélai d'attente d'une connexion en secondes. + La durée en secondes pendant laquelle Apache va attendre pour + l'établissement d'une connexion vers le serveur d'arrière-plan. + Le délai peut être spécifié en millisecondes en ajoutant le + suffixe ms. +
    disablereuseOffVous pouvez utiliser cette clé pour forcer mod_proxy à + fermer immédiatement une connexion vers le serveur + d'arrière-plan après utilisation, et ainsi désactiver le jeu de + connexions permanentes vers ce serveur. Ceci peut s'avérer utile + dans des situations où un pare-feu situé entre Apache et le + serveur d'arrière-plan (quelque soit le protocole) interrompt + des connexions de manière silencieuse, ou lorsque le serveur + d'arrière-plan lui-même est accessible par rotation de DNS + (round-robin DNS). Pour désactiver la réutilisation du jeu de + connexions, définissez cette clé à On. +
    flushpacketsoffPermet de définir si le module mandataire doit vider + automatiquement le tampon de sortie après chaque tronçon de + données. 'off' signifie que le tampon sera vidé si nécessaire, + 'on' que le tampon sera vidé après chaque envoi d'un + tronçon de données, et 'auto' que le tampon sera vidé après un + délai de 'flushwait' millisecondes si aucune entrée n'est reçue. + Actuellement, cette clé n'est supportée que par AJP. +
    flushwait10Le délai d'attente pour une entrée additionnelle, en + millisecondes, avant le vidage du tampon en sortie dans le cas + où 'flushpackets' est à 'auto'. +
    keepaliveOff

    Cette clé doit être utilisée lorsque vous avez un pare-feu + entre Apache httpd et le serveur d'arrière-plan, et si ce dernier tend + à interrompre les connexions inactives. Cette clé va faire en + sorte que le système d'exploitation envoie des messages + KEEP_ALIVE sur chacune des connexions inactives et + ainsi éviter la fermeture de la connexion par le pare-feu. + Pour conserver les connexions persistantes, definissez cette + propriété à On.

    +

    La fréquence de vérification des connexions TCP persistantes + initiale et subséquentes dépend de la configuration globale de l'OS, + et peut atteindre 2 heures. Pour être utile, la fréquence configurée + dans l'OS doit être inférieure au seuil utilisé par le pare-feu.

    +
    lbset0Définit le groupe de répartition de charge dont le serveur cible + est membre. Le répartiteur de charge va essayer tous les membres + d'un groupe de répartition de charge de numéro inférieur avant + d'essayer ceux dont le groupe possède un numéro supérieur. +
    ping0Avec la clé ping, le serveur web envoie une requête + CPING sur la connexion ajp13 avant de rediriger une + requête. La valeur correspond au délai d'attente de la réponse + CPONG. Cette fonctionnalité a été ajoutée afin de + pallier aux problèmes de blocage et de surcharge des serveurs + Tomcat, et nécessite le support de ping/pong ajp13 qui a été + implémenté dans Tomcat 3.3.2+, 4.1.28+ et 5.0.13+. Le trafic + réseau peut s'en trouver augmenté en fonctionnement normal, ce + qui peut poser problème, mais peut s'en trouver diminué dans les + cas où les noeuds de cluster sont arrêtés ou surchargés. Cette + clé n'est actuellement utilisable qu'avec AJP. Le délai peut + aussi être défini en millisecondes en ajoutant le suffixe + ms. +
    loadfactor1Facteur de charge du serveur cible à utiliser avec les + membres d'un groupe de répartition de charge. Il s'agit d'un + nombre entre 1 et 100 définissant le facteur de charge appliqué + au serveur cible. +
    redirect-Route pour la redirection du serveur cible. Cette valeur est en + général définie dynamiquement pour permettre une suppression + sécurisée du noeud du cluster. Si cette clé est définie, toutes + les requêtes sans identifiant de session seront redirigées vers + le membre de groupe de répartition de charge dont la route + correspond à la valeur de la clé. +
    retry60Délai entre deux essais du serveur cible du jeu de connexions en + secondes. Si le serveur cible du jeu de connexions vers le serveur + d'arrière-plan est dans un état d'erreur, Apache ne redirigera + pas de requête vers ce serveur avant l'expiration du délai + spécifié. Ceci permet d'arrêter le serveur d'arrière-plan pour + maintenance, et de le remettre en ligne plus tard. Une valeur de + 0 signifie toujours essayer les serveurs cibles dans un état d'erreur + sans délai. +
    route-La route du serveur cible lorsqu'il est utilisé au sein d'un + répartiteur de charge. La route est une valeur ajoutée à + l'identifiant de session. +
    status-Valeur constituée d'une simple lettre et définissant l'état + initial de ce serveur cible : 'D' correspond à "désactivé", 'S' à + "arrêté", 'I' à "erreurs ignorées", 'H' à "interruption à chaud" + et 'E' à "erreur". Une valeur d'état peut être définie (ce qui + correspond au comportement par défaut) en préfixant la valeur + par '+', ou annulée en préfixant la valeur par '-'. Ainsi, la + valeur 'S-E' définit l'état de ce serveur cible à "arrêté" et supprime + le drapeau "en-erreur". +
    timeoutProxyTimeoutDélai d'attente de la connexion en secondes. Le nombre de + secondes pendant lesquelles Apache attend l'envoi de + données vers le serveur d'arrière-plan. +
    ttl-Durée de vie des connexions inactives et des entrées + associées du jeu de connexions. Lorsque cette limite est + atteinte, la connexion concernée ne sera plus utilisée ; elle + sera ensuite fermée au bout d'un certain temps. +
    + +

    Si l'URL de la directive ProxyPass débute par + balancer:// (par exemple: + balancer://cluster/, toute information relative au + chemin est ignorée), alors un serveur cible virtuel ne communiquant pas + réellement avec le serveur d'arrière-plan sera créé. Celui-ci sera + en fait responsable de la gestion de plusieurs serveurs cibles "réels". Dans + ce cas, un jeu de paramètres particuliers s'applique à ce serveur cible + virtuel. Voir mod_proxy_balancer pour plus + d'informations à propos du fonctionnement du répartiteur de + charge. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParamètreDéfautDescription
    lbmethodbyrequestsMéthode de répartition de charge utilisée. Permet de + sélectionner la méthode de planification de la répartition de + charge à utiliser. La valeur est soit byrequests, + pour effectuer un décompte de requêtes pondérées, soit + bytraffic, pour effectuer une répartition en + fonction du décompte des octets transmis, soit + bybusyness (à partir de la version 2.2.10 du + serveur HTTP Apache), pour effectuer une répartition en + fonction des requêtes en attente. La valeur par défaut est + byrequests. +
    maxattempts1 de moins que le nombre de workers, ou 1 avec un seul + workerNombre maximum d'échecs avant abandon. +
    nofailoverOffSi ce paramètre est défini à On, la session va + s'interrompre si le serveur cible est dans un état d'erreur ou + désactivé. Définissez ce paramètre à On si le serveur + d'arrière-plan ne supporte pas la réplication de session. +
    stickysession-Nom de session persistant du répartiteur. La valeur est + généralement du style JSESSIONID ou + PHPSESSIONID, et dépend du serveur d'application + d'arrière-plan qui supporte les sessions. Si le serveur + d'application d'arrière-plan utilise des noms différents pour + les cookies et les identifiants codés d'URL (comme les + conteneurs de servlet), séparez-les par le caractère '|'. La + première partie contient le cookie et la seconde le chemin. +
    scolonpathdelimOffSi ce paramètre est défini à On, le caractère + ';' sera utilisé comme séparateur de chemin de session + persistante additionnel. Ceci permet principalement de simuler + le comportement de mod_jk lorsqu'on utilise des chemins du style + JSESSIONID=6736bcf34;foo=aabfa. +
    timeout0Délai du répartiteur en secondes. Si ce paramètre est + défini, sa valeur correspond à la durée maximale d'attente pour + un serveur cible libre. Le comportement par défaut est de ne pas + attendre. +
    failonstatus-Un code ou une liste de codes d'état HTTP séparés par des + virgules. S'il est défini, ce paramètre va forcer le worker dans + un état d'erreur lorsque le serveur d'arrière-plan retounera un + code d'état spécifié dans la liste. Le rétablissement du worker + est le même qu'avec les autres erreurs de worker. + Disponible à partir de la version 2.2.17 du serveur HTTP Apache. +
    failontimeoutOffSi ce paramètre est défini à "On", un délai d'attente + dépassé en entrée/sortie après envoi d'une requête au serveur + d'arrière-plan va mettre le processus en état d'erreur. La + sortie de cet état d'erreur se passe de la même façon que pour + les autres erreurs. Disponible à partir de la version 2.2.25 du + serveur HTTP Apache. +
    forcerecoveryOnForce la récupération immédiate de tous les membres du + répartiteur sans tenir compte de leur paramètre de nouvel essai + si tous les membres du répartiteur sont dans un état d'erreur. + Dans certains cas cependant, un serveur d'arrière-plan déjà + surchargé peut voir ses problèmes s'aggraver si la récupération + de tous les membres du répartiteur est forcée sans tenir compte + de leur paramètre de nouvel essai. Dans ce cas, définissez ce + paramètre à Off. Disponible depuis la version + 2.2.23 du serveur HTTP Apache. +
    +

    Exemple de configuration d'un répartiteur

    +

    + ProxyPass /zone-speciale http://special.example.com smax=5 max=10
    + ProxyPass / balancer://mon-cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    + <Proxy balancer://mon-cluster>
    + + BalancerMember ajp://1.2.3.4:8009
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=20
    + # Serveur moins puissant ; faites-lui traiter moins de requêtes,
    + BalancerMember ajp://1.2.3.6:8009 loadfactor=5
    +
    + </Proxy> +

    + +

    Configuration d'un serveur cible de réserve qui ne sera utilisé que si + aucun autre serveur cible n'est disponible

    +

    + ProxyPass / balancer://hotcluster/
    + <Proxy balancer://hotcluster>
    + + BalancerMember ajp://1.2.3.4:8009 loadfactor=1
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=2
    + # La ligne suivante configure le serveur cible de réserve
    + BalancerMember ajp://1.2.3.6:8009 status=+H
    + ProxySet lbmethod=bytraffic +
    + </Proxy> +

    + +

    Mots-clés additionnels de ProxyPass

    + +

    Normalement, mod_proxy va mettre sous leur forme canonique les + URLs traitées par ProxyPass. Mais ceci peut être incompatible avec + certains serveurs d'arrière-plan, et en particulier avec ceux qui + utilisent PATH_INFO. Le mot-clé optionnel + nocanon modifie ce comportement et permet de transmettre + le chemin d'URL sous sa forme brute au serveur d'arrière-plan. Notez + que ceci peut affecter la sécurité de votre serveur d'arrière-plan, + car la protection limitée contre les attaques à base d'URL que + fournit le mandataire est alors supprimée.

    + +

    Le mot-clé optionnel interpolate (disponible depuis + httpd 2.2.9), en combinaison avec la directive + ProxyPassInterpolateEnv, permet à ProxyPass + d'interpoler les variables d'environnement à l'aide de la syntaxe + ${VARNAME}. Notez que de nombreuses variables + d'environnement standard dérivées de CGI n'existeront pas lorsque + l'interpolation se produit ; vous devrez alors encore avoir avoir + recours à mod_rewrite pour des règles + complexes. Notez aussi que l'interpolation n'est pas supportée dans + la partie protocole d'une URL. La détermination dynamique du + protocole peut être effectuée à l'aide de + mod_rewrite comme dans l'exemple suivant :

    + +
    RewriteEngine On
    +
    +RewriteCond %{HTTPS} =off
    +RewriteRule . - [E=protocol:http]
    +RewriteCond %{HTTPS} =on
    +RewriteRule . - [E=protocol:https]
    +
    +RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P]
    +ProxyPassReverse  /mirror/foo/ http://backend.example.com/
    +ProxyPassReverse  /mirror/foo/ https://backend.example.com/
    + + + +
    +
    top
    +

    Directive ProxyPassInterpolateEnv

    + + + + + + + + +
    Description:Active l'interpolation des variables d'environnement dans +les configurations de mandataires inverses
    Syntaxe:ProxyPassInterpolateEnv On|Off
    Défaut:ProxyPassInterpolateEnv Off
    Contexte:configuration du serveur, serveur virtuel, répertoire
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.2.9 d'Apache
    +

    Cette directive, ainsi que l'argument interpolate des + directives ProxyPass, + ProxyPassReverse, + ProxyPassReverseCookieDomain et + ProxyPassReverseCookiePath, permet de + configurer dynamiquement un mandataire inverse à l'aide de + variables d'environnement, ces dernières pouvant être définies par un + autre module comme mod_rewrite. Elle affecte les + directives ProxyPass, + ProxyPassReverse, + ProxyPassReverseCookieDomain, et + ProxyPassReverseCookiePath, en leur indiquant + de remplacer la chaîne ${nom_var} dans les directives + de configuration par la valeur de la variable d'environnement + nom_var (si l'option interpolate est + spécifiée).

    +

    Conservez cette directive à off (pour les performances du + serveur), sauf si vous en avez réellement besoin.

    + +
    +
    top
    +

    Directive ProxyPassMatch

    + + + + + + + +
    Description:Fait correspondre des serveurs distants dans l'espace d'URL +du serveur local en utilisant des expressions rationnelles
    Syntaxe:ProxyPassMatch [regex] !|url +[clé=valeur + [clé=valeur ...]]
    Contexte:configuration du serveur, serveur virtuel, répertoire
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.2.5 +d'Apache
    +

    Cette directive est identique à la directive ProxyPass, mais fait usage des + expressions rationnelles, au lieu d'une simple comparaison de + préfixes. L'expression rationnelle spécifiée est comparée à + l'url, et si elle correspond, le serveur va substituer + toute correspondance entre parenthèses dans la chaîne donnée et + l'utiliser comme nouvelle url.

    + +

    Supposons que le serveur local a pour adresse + http://example.com/ ; alors

    + +

    + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1 +

    + +

    va provoquer la conversion interne de la requête locale + http://example.com/foo/bar.gif en une requête mandatée + pour http://backend.example.com/foo/bar.gif.

    + +

    Note

    +

    L'argument URL doit pouvoir être interprété en tant qu'URL + avant les substitutions d'expressions rationnelles (et + doit aussi l'être après). Ceci limite les correspondances que vous + pouvez utiliser. Par exemple, si l'on avait utilisé

    +

    + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1 +

    +

    dans l'exemple précédent, nous aurions provoqué une erreur de + syntaxe au démarrage du serveur. C'est une bogue (PR 46665 dans + ASF bugzilla), et il est possible de la contourner en reformulant + la correspondance :

    +

    + ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1 +

    +
    + +

    Le drapeau ! vous permet de ne pas mandater un + sous-répertoire donné.

    + +

    Lorsque cette directive se situe à l'intérieur d'une section + <LocationMatch>, + le premier argument est omis et l'expression rationnelle est obtenue + à partir de la directive <LocationMatch>.

    + +

    Si vous avez besoin d'une configuration de mandataire inverse + plus flexible, reportez-vous à la directive RewriteRule avec le drapeau + [P].

    + +
    +

    Avertissement à propos de la sécurité

    +

    Lors de la construction de l'URL cible de la règle, il convient + de prendre en compte l'impact en matière de sécurité qu'aura le + fait de permettre au client d'influencer le jeu d'URLs pour + lesquelles votre serveur agira en tant que mandataire. + Assurez-vous que la partie protocole://nom-serveur de l'URL soit + fixe, ou ne permette pas au client de l'influencer induement.

    +
    + +
    +
    top
    +

    Directive ProxyPassReverse

    + + + + + + +
    Description:Ajuste l'URL dans les en-têtes de la réponse HTTP envoyée +par un serveur mandaté en inverse
    Syntaxe:ProxyPassReverse [chemin] url +[interpolate]
    Contexte:configuration du serveur, serveur virtuel, répertoire
    Statut:Extension
    Module:mod_proxy
    +

    Cette directive permet de faire en sorte qu'Apache ajuste l'URL + dans les en-têtes Location, + Content-Location et URI des réponses de + redirection HTTP. Ceci est essentiel lorsqu'Apache est utilisé en + tant que mandataire inverse (ou passerelle), afin d'éviter de + court-circuiter le mandataire inverse suite aux redirections HTTP + sur le serveur d'arrière-plan qui restent derrière le mandataire + inverse.

    + +

    Seuls les en-têtes de réponse HTTP spécialement mentionnés + ci-dessus seront réécrits. Apache ne réécrira ni les autres en-têtes + de réponse, ni les références d'URLs dans les pages HTML. Cela + signifie que dans le cas où un contenu mandaté contient des + références à des URLs absolues, elles court-circuiteront le + mandataire. Le module mod_proxy_html + de Nick Kew est un module tiers qui parcourt le code HTML et réécrit + les références d'URL.

    + +

    chemin est le nom d'un chemin virtuel local. + url est une URL partielle pour le serveur distant. Ces + paramètres s'utilisent de la même façon qu'avec la directive ProxyPass.

    + +

    Supposons par exemple que le serveur local a pour adresse + http://example.com/ ; alors

    + +

    + ProxyPass /miroir/foo/ http://backend.example.com/
    + ProxyPassReverse /miroir/foo/ http://backend.example.com/
    + ProxyPassReverseCookieDomain backend.example.com public.example.com
    + ProxyPassReverseCookiePath / /miroir/foo/ +

    + +

    ne va pas seulement provoquer la conversion interne d'une requête + locale pour http://example.com/miroir/foo/bar en une + requête mandatée pour http://backend.example.com/bar + (la fonctionnalité fournie par ProxyPass). Il va + aussi s'occuper des redirections que le serveur + backend.example.com envoie lorsqu'il redirige + http://backend.example.com/bar vers + http://backend.example.com/quux. Apache + corrige ceci en http://example.com/miroir/foo/quux + avant de faire suivre la redirection HTTP au client. Notez que le + nom d'hôte utilisé pour construire l'URL est choisi en respectant la + définition de la directive UseCanonicalName.

    + +

    Notez que la directive ProxyPassReverse + peut aussi être utilisée en conjonction avec la + fonctionnalité de mandataire (RewriteRule ... [P]) du module + mod_rewrite, car elle ne dépend pas d'une directive + ProxyPass + correspondante.

    + +

    Le mot-clé optionnel interpolate (disponible depuis + httpd 2.2.9), utilisé en combinaison avec la directive + ProxyPassInterpolateEnv, permet + l'interpolation des variables d'environnement spécifiées en + utilisant le format ${VARNAME} Notez que l'interpolation + n'est pas supportée dans la partie protocole d'une URL. +

    + +

    Lorsque cette directive est utilisée dans une section <Location>, le premier + argument est omis et le répertoire local est obtenu à partir de + l'argument de la directive <Location>. Il en est de même à l'intérieur + d'une section <LocationMatch>, mais le résultat ne + correspondra probablement pas à ce que vous attendez, car + ProxyPassReverse interprète l'expression rationnelle littéralement + comme un chemin ; si nécessaire dans cette situation, spécifiez la + directive ProxyPassReverse en dehors de la section, ou dans une + section <Location> + séparée. +

    + +

    Cette directive ne peut pas être placée dans une section + <Directory> ou + <Files>.

    + +
    +
    top
    +

    Directive ProxyPassReverseCookieDomain

    + + + + + + +
    Description:Ajuste la chaîne correspondant au domaine dans les en-têtes +Set-Cookie en provenance d'un serveur mandaté
    Syntaxe:ProxyPassReverseCookieDomain domaine-interne +domaine-public [interpolate]
    Contexte:configuration du serveur, serveur virtuel, répertoire
    Statut:Extension
    Module:mod_proxy
    +

    L'utilisation de cette directive est similaire à celle de la +directive ProxyPassReverse, +mais au lieu de réécrire des en-têtes qui contiennent des URLs, elle +réécrit la chaîne correspondant au domaine dans les en-têtes +Set-Cookie.

    + +
    +
    top
    +

    Directive ProxyPassReverseCookiePath

    + + + + + + +
    Description:Ajuste la chaîne correspondant au chemin dans les en-têtes +Set-Cookie en provenance d'un serveur mandaté
    Syntaxe:ProxyPassReverseCookiePath chemin-interne +chemin-public [interpolate]
    Contexte:configuration du serveur, serveur virtuel, répertoire
    Statut:Extension
    Module:mod_proxy
    +

    +Cette directive s'avère utile en conjonction avec la directive +ProxyPassReverse dans les +situations où les chemins d'URL d'arrière-plan correspondent à des +chemins publics sur le mandataire inverse. Cette directive permet de +réécrire la chaîne path dans les en-têtes +Set-Cookie. Si le début du chemin du cookie correspond à +chemin-interne, le chemin du cookie sera remplacé par +chemin-public. +

    +Dans l'exemple fourni avec la directive ProxyPassReverse, la directive :

    +

    + ProxyPassReverseCookiePath / /mirror/foo/ +

    +

    va réécrire un cookie possédant un chemin d'arrière-plan / +(ou /example ou en fait tout chemin) +en /mirror/foo/.. +

    + +
    +
    top
    +

    Directive ProxyPreserveHost

    + + + + + + + + +
    Description:Utilise l'en-tête de requête entrante Host pour la requête +du mandataire
    Syntaxe:ProxyPreserveHost On|Off
    Défaut:ProxyPreserveHost Off
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.0.31 d'Apache.
    +

    Lorsqu'elle est activée, cette directive va transmettre l'en-tête + Host: de la requête entrante vers le serveur mandaté, au lieu du nom + d'hôte spécifié par la directive + ProxyPass module="mod_proxy".

    + +

    Cette directive est habituellement définie à Off. + Elle est principalement utile dans les configurations particulières + comme l'hébergement virtuel mandaté en masse à base de nom, où + l'en-tête Host d'origine doit être évalué par le serveur + d'arrière-plan.

    + +
    +
    top
    +

    Directive ProxyReceiveBufferSize

    + + + + + + + +
    Description:Taille du tampon réseau pour les connexions mandatées HTTP +et FTP
    Syntaxe:ProxyReceiveBufferSize octets
    Défaut:ProxyReceiveBufferSize 0
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    La directive ProxyReceiveBufferSize permet + de spécifier une taille de tampon réseau explicite (TCP/IP) pour les + connexions mandatées HTTP et FTP, afin d'améliorer le débit de + données. Elle doit être supérieure à 512 ou définie à + 0 pour indiquer que la taille de tampon par défaut du + système doit être utilisée.

    + +

    Exemple

    + ProxyReceiveBufferSize 2048 +

    + +
    +
    top
    +

    Directive ProxyRemote

    + + + + + + +
    Description:Mandataire distant à utiliser pour traiter certaines +requêtes
    Syntaxe:ProxyRemote comparaison serveur-distant
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    Cette directive permet de définir des mandataires distants pour + ce mandataire. comparaison est soit le nom d'un protocole + que supporte le serveur distant, soit une URL partielle pour + laquelle le serveur distant devra être utilisé, soit * + pour indiquer que le serveur distant doit être utilisé pour toutes + les requêtes. serveur-distant est une URL partielle + correspondant au serveur distant. Syntaxe :

    + +

    + serveur-distant = + protocole://nom-serveur[:port] +

    + +

    protocole est effectivement le protocole à utiliser + pour communiquer avec le serveur distant ; ce module ne supporte que + http et https. Avec https, + les requêtes sont transmises par le mandataire distant via la + méthode HTTP CONNECT.

    + +

    Exemple

    + ProxyRemote http://bons-gars.example.com/ http://gars-mirroirs.example.com:8000
    + ProxyRemote * http://mandataire-intelligent.localdomain
    + ProxyRemote ftp http://mandataire-ftp.mon-domaine:8080 +

    + +

    Dans la dernière ligne de l'exemple, le mandataire va faire + suivre les requêtes FTP, encapsulées dans une autre requête mandatée + HTTP, vers un autre mandataire capable de les traiter.

    + +

    Cette directive supporte aussi les configurations de mandataire + inverse - un serveur web d'arrière-plan peut être intégré dans + l'espace d'URL d'un serveur virtuel, même si ce serveur est caché + par un autre mandataire direct.

    + +
    +
    top
    +

    Directive ProxyRemoteMatch

    + + + + + + +
    Description:Le mandataire distant à utiliser pour traiter les requêtes +correspondant à une expression rationnelle
    Syntaxe:ProxyRemoteMatch regex serveur-distant
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    La directive ProxyRemoteMatch est + identique à la directive ProxyRemote, à l'exception que le + premier argument est une expression + rationnelle à mettre en correspondance avec l'URL de la + requête.

    + +
    +
    top
    +

    Directive ProxyRequests

    + + + + + + + +
    Description:Active la fonctionnalité (standard) de mandataire +direct
    Syntaxe:ProxyRequests On|Off
    Défaut:ProxyRequests Off
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    Cette directive permet d'activer/désactiver la fonctionnalité de + serveur mandataire direct d'Apache. Définir ProxyRequests à + Off n'interdit pas l'utilisation de la directive + ProxyPass.

    + +

    Pour une configuration typique de mandataire inverse ou + passerelle, cette directive doit être définie à + Off.

    + +

    Afin d'activer la fonctionnalité de mandataire pour des sites + HTTP et/ou FTP, les modules mod_proxy_http et/ou + mod_proxy_ftp doivent aussi être chargés dans le + serveur.

    + +

    mod_proxy_connect doit être activé pour pouvoir + mandater (en direct) des sites HTTPS.

    + +

    Avertissement

    +

    N'activez pas la fonctionnalité de mandataire avec la directive + ProxyRequests avant + d'avoir sécurisé votre serveur. Les serveurs + mandataires ouverts sont dangereux non seulement pour votre + réseau, mais aussi pour l'Internet au sens large.

    +
    + +

    Voir aussi

    + +
    +
    top
    +

    Directive ProxySet

    + + + + + + + +
    Description:Définit différents paramètres relatifs à la répartition de +charge des mandataires et aux membres des groupes de répartition de +charge
    Syntaxe:ProxySet url clé=valeur [clé=valeur ...]
    Contexte:répertoire
    Statut:Extension
    Module:mod_proxy
    Compatibilité:ProxySet n'est disponible que depuis la version 2.2 +d'Apache.
    +

    Cette directive propose une méthode alternative pour définir tout + paramètre relatif aux répartiteurs de charge et serveurs cibles de + mandataires normalement défini via la directive ProxyPass. Si elle se trouve dans un + conteneur <Proxy url de répartiteur|url de + serveur cible>, l'argument url n'est pas + nécessaire. Comme effet de bord, le répartiteur ou serveur cible respectif + est créé. Ceci peut s'avérer utile pour la mise en oeuvre d'un + mandataire inverse via une directive RewriteRule au lieu de ProxyPass.

    + +

    + <Proxy balancer://hotcluster>
    + + BalancerMember http://www2.example.com:8080 loadfactor=1
    + BalancerMember http://www3.example.com:8080 loadfactor=2
    + ProxySet lbmethod=bytraffic
    +
    + </Proxy> +

    + +

    + <Proxy http://backend>
    + + ProxySet keepalive=On
    +
    + </Proxy> +

    + +

    + ProxySet balancer://foo lbmethod=bytraffic timeout=15 +

    + +

    + ProxySet ajp://backend:7001 timeout=15 +

    + +

    Avertissement

    +

    Gardez à l'esprit qu'une même clé de paramètre peut avoir + différentes significations selon qu'elle s'applique à un + répartiteur ou à un serveur cible, et ceci est illustré par les deux + exemples précédents où il est question d'un timeout.

    +
    + + +
    +
    top
    +

    Directive ProxyStatus

    + + + + + + + + +
    Description:Affiche l'état du répartiteur de charge du mandataire dans +mod_status
    Syntaxe:ProxyStatus Off|On|Full
    Défaut:ProxyStatus Off
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.2 d'Apache
    +

    Cette directive permet de spécifier si les données d'état du + répartiteur de charge du mandataire doivent être affichées via la + page d'état du serveur du module mod_status.

    +

    Note

    +

    L'argument Full produit le même effet que + l'argument On.

    +
    + + +
    +
    top
    +

    Directive ProxyTimeout

    + + + + + + + + +
    Description:Délai d'attente réseau pour les requêtes +mandatées
    Syntaxe:ProxyTimeout secondes
    Défaut:Valeur de la directive Timeout
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    Compatibilité:Disponible depuis la version 2.0.31 d'Apache
    +

    Cette directive permet à l'utilisateur de spécifier un délai pour + les requêtes mandatées. Ceci s'avère utile dans le cas d'un serveur + d'applications lent et bogué qui a tendance à se bloquer, et si vous + préférez simplement renvoyer une erreur timeout et abandonner la + connexion en douceur plutôt que d'attendre jusqu'à ce que le serveur + veuille bien répondre.

    + +
    +
    top
    +

    Directive ProxyVia

    + + + + + + + +
    Description:Information fourni dans l'en-tête de réponse HTTP +Via pour les requêtes mandatées
    Syntaxe:ProxyVia On|Off|Full|Block
    Défaut:ProxyVia Off
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_proxy
    +

    Cette directive permet de contrôler l'utilisation de l'en-tête + HTTP Via: par le mandataire. Le but recherché est de + contrôler le flux des requêtes mandatées tout au long d'une chaîne + de serveurs mandataires. Voir RFC 2616 (HTTP/1.1), + section 14.45 pour une description des lignes d'en-tête + Via:.

    + +
      +
    • Si elle est définie à Off, valeur par défaut, cette + directive n'effectue aucun traitement particulier. Si une requête ou + une réponse contient un en-tête Via:, il est transmis + sans modification.
    • + +
    • Si elle est définie à On, chaque requête ou réponse + se verra ajouter une ligne d'en-tête Via: pour le + serveur courant.
    • + +
    • Si elle est définie à Full, chaque ligne d'en-tête + Via: se verra ajouter la version du serveur Apache sous + la forme d'un champ de commentaire Via:.
    • + +
    • Si elle est définie à Block, chaque requête + mandatée verra ses lignes d'en-tête Via: supprimées. + Aucun nouvel en-tête Via: ne sera généré.
    • +
    + +
    +
    +
    +

    Langues Disponibles:  en  | + fr  | + ja 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy.html.ja.euc-jp b/docs/manual/mod/mod_proxy.html.ja.euc-jp deleted file mode 100644 index 36c6a196904..00000000000 --- a/docs/manual/mod/mod_proxy.html.ja.euc-jp +++ /dev/null @@ -1,1202 +0,0 @@ - - - -mod_proxy - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_proxy

    -
    -

    Available Languages:  en  | - ja 

    -
    - - - -
    ÀâÌÀ:HTTP/1.1 ¥ץí¥­¥·/¥²¡¼¥ȥ¦¥§¥¤¥µ¡¼¥Ð
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:proxy_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_proxy.c
    -

    ³µÍ×

    - -

    ·ٹð

    -

    ¥µ¡¼¥Фò°ÂÁ´¤ˤ¹¤ë¤ޤÇ ProxyRequests ¤Ïͭ¸ú¤ˤ·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£ - ¥ª¡¼¥ץó¥ץí¥­¥·¥µ¡¼¥ФϤ¢¤ʤ¿¼«¿ȤΥͥåȥ¥¯¤ˤȤäƤ⡢ - ¥¤¥󥿡¼¥ͥåÈÁ´ÂΤˤȤäƤâ´í¸±¤Ǥ¹¡£

    -
    - -

    ¤³¤Υ⥸¥塼¥ë¤Ï Apache ¤Υץí¥­¥·/¥²¡¼¥ȥ¦¥§¥¤µ¡ǽ¤ò¼ÂÁõ¤·¤Ƥ¤¤ޤ¹¡£ - AJP13 (Apache JServe Protocol version 1.3), - FTP, CONNECT (SSL ÍÑ), - HTTP/0.9, HTTP/1.0, HTTP/1.1 - ¤Υץí¥­¥·µ¡ǽ¤ò¼ÂÁõ¤·¤Ƥ¤¤ޤ¹¡£¤³¤ì¤é¤Υץí¥ȥ³¥ë¤䤽¤Î¾¤Υץí¥ȥ³¥ëÍѤÎ - ¥ץí¥­¥·µ¡ǽ¤ò»ý¤ä¿¡¢¾¤Υ⥸¥塼¥ë¤ËÀܳ¤¹¤ë¤褦¤ˤâÀßÄê¤Ǥ­¤ޤ¹¡£

    - -

    Apache ¤Υץí¥­¥·µ¡ǽ¤Ï mod_proxy ¤Î¾¤ˡ¢ - ¤¤¤¯¤Ĥ«¤Υ⥸¥塼¥ë¤Ëʬ³䤵¤ì¤Ƥ¤¤ޤ¹: - mod_proxy_http, mod_proxy_ftp, - mod_proxy_ajp, mod_proxy_balancer, - mod_proxy_connect ¤Ǥ¹¡£¤Ǥ¹¤«¤顢 - ÆÃÄê¤Υץí¥­¥·¤ε¡ǽ¤ò»Ȥ¤¤¿¤¤¾ì¹ç¤ϡ¢mod_proxy ¤È - ³ºÅö¤¹¤ë¥⥸¥塼¥ë¤򥵡¼¥ФË (¥³¥ó¥ѥ¤¥ë»þ¤ËÀÅŪ¤˹Ԥʤ¦¤« - LoadModule ¤ÇưŪ¤ËÆɤ߹þ¤फ¤·¤Æ) - ÁȤ߹þ¤àɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ¤³¤ì¤˲䨤ơ¢¾¤Υ⥸¥塼¥ë¤ˤè¤äƳÈĥµ¡ǽ¤¬Ä󶡤µ¤ì¤Ƥ¤¤ޤ¹¡£ - ¥­¥ã¥å·¥å¤Ï mod_cache ¤ȴØϢ¥⥸¥塼¥ë¤Ç - Ä󶡤µ¤ì¤Ƥ¤¤ޤ¹¡£SSL/TLS ¤DZó³֥µ¡¼¥ФËÀܳ¤¹¤뵡ǽ¤Ï - mod_ssl ¤Î SSLProxy* ¥ǥ£¥쥯¥ƥ£¥֤Ç - Ä󶡤µ¤ì¤Ƥ¤¤ޤ¹¡£¤³¤ì¤é¤ε¡ǽ¤òÍøÍѤ¹¤뤿¤á¤ˤϡ¢³ºÅö¤¹¤ë¥⥸¥塼¥ë¤ò - ÁȤ߹þ¤ó¤ÇÀßÄꤷ¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    - -
    top
    -
    -

    ¥ե©¥¥ɥץí¥­¥·¤ȥê¥С¼¥¹¥ץí¥­¥·

    -

    Apache ¤Ï¥ե©¥¥É¥ץí¥­¥·¤Ȥ·¤Ƥ⡢ - ¥ê¥С¼¥¹¥ץí¥­¥·¤Ȥ·¤ƤâÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Ä̾ï¤Î¥ե©¥¥ɥץí¥­¥·¤ϥ¯¥饤¥¢¥ó¥ȤÈ - ¥ª¥ꥸ¥󥵡¼¥Ð (ÌõÃí: ¥³¥ó¥ƥó¥ÄÀ¸À®¸µ¤Υµ¡¼¥Ð) - ¤δ֤˰ÌÃ֤¹¤ëÃæ´֥µ¡¼¥ФǤ¹¡£ - ¥ª¥ꥸ¥󥵡¼¥Ф«¤饳¥ó¥ƥó¥Ĥò¼èÆÀ¤¹¤ë²áÄø¤Ǥϡ¢¥¯¥饤¥¢¥ó¥ȤÏ - ¹Ԥ­Àè¤Ȥ·¤ƥª¥ꥸ¥󥵡¼¥Фò»ØÄꤷ¤Ĥĥץí¥­¥·¤˥ꥯ¥¨¥¹¥ȤòÁ÷¤ꡢ - ¥ץí¥­¥·¤ϥª¥ꥸ¥󥵡¼¥Ф«¤饳¥ó¥ƥó¥ļèÆÀ¤Υꥯ¥¨¥¹¥ȤòÁ÷¤ꡢ - ¥³¥ó¥ƥó¥Ĥ¬¼èÆÀ¤Ǥ­¤ì¤Ф½¤ì¤򥯥饤¥¢¥ó¥ȤËÊ֤·¤ޤ¹¡£ - ¥¯¥饤¥¢¥ó¥Ȥ¬¾¤Υµ¥¤¥Ȥ˥ե©¥¥ɥץí¥¯¥··Ðͳ¤ǥ¢¥¯¥»¥¹¤¹¤ë¤ˤϡ¢ - ÆÃÊ̤ˤ½¤ìÍѤÎÀßÄê¤򤷤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    ¥ե©¥¥ɥץí¥­¥·¤ΰìÈÌŪ¤ʻÈÍÑÊýˡ¤ϡ¢¥ե¡¥¤¥¢¥¦¥©¡¼¥ë¤ˤè¤äÆ - À©¸¤µ¤ì¤Ƥ¤¤ëÆâÉô¤Υ¯¥饤¥¢¥ó¥Ȥ˥¤¥󥿡¼¥ͥåȤؤΥ¢¥¯¥»¥¹¤ò - Ä󶡤¹¤ë¤â¤ΤǤ¹¡£¥ե©¥¥ɥץí¥­¥·¤ϥͥåȥ¥¯¤λÈÍÑÎ̤ò - ¸º¤餹¤¿¤á¤Ë (mod_cache ¤ÇÄ󶡤µ¤ì¤Ƥ¤¤ë) - ¥­¥ã¥å·¥嵡ǽ¤òÍѤ¤¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    ¥ե©¥¥ɥץí¥­¥·¤Ï ProxyRequests ¥ǥ£¥쥯¥ƥ£¥֤Ç - ͭ¸ú¤ˤʤê¤ޤ¹¡£¥ե©¥¥ɥץí¥­¥·¤Ǥϡ¢¥¯¥饤¥¢¥ó¥ȤÏËÜÅö¤οȸµ¤ò - ±£¤·¤ÆǤ°դΥµ¥¤¥Ȥ˥¢¥¯¥»¥¹¤Ǥ­¤ë¤褦¤ˤʤ뤿¤ᡢ¥ե©¥¥ɥץí¥­¥·¤ò - ͭ¸ú¤ˤ¹¤ëÁ°¤ˡ¢¾µǧ¤µ¤줿¥¯¥饤¥¢¥ó¥ȤΤߤ¬¥ץí¥­¥·¤˥¢¥¯¥»¥¹¤Ǥ­¤ë¤褦¤Ë - ¥µ¡¼¥Фò°ÂÁ´¤ˤ¹¤ë¤³¤Ȥ¬½ÅÍפǤ¹¡£

    - -

    °ìÊý¥ê¥С¼¥¹¥ץí¥­¥·¤ϡ¢¥¯¥饤¥¢¥ó¥ȤˤÏÉáÄ̤Î - ¥¦¥§¥֥µ¡¼¥ФΤ褦¤˸«¤¨¤ޤ¹¡£¥¯¥饤¥¢¥ó¥È¦¤ËÆÃÊ̤ÊÀßÄê¤ÏɬÍפ¢¤ê¤ޤ»¤ó¡£ - ¥¯¥饤¥¢¥ó¥Ȥϥê¥С¼¥¹¥ץí¥­¥·¤Î̾Á°¶õ´֤ËÂФ·¤ÆÄ̾ï¤Υ³¥ó¥ƥó¥ĤؤÎ - ¥ꥯ¥¨¥¹¥Ȥò¹Ԥʤ¤¤ޤ¹¡£¥ץí¥­¥·¤ϥꥯ¥¨¥¹¥Ȥò¤ɤ³¤ËÁ÷¤ì¤ÐÎɤ¤¤«¤òȽÄꤷ¡¢ - ¤¢¤¿¤«¤⼫ʬ¼«¿Ȥ¬¥ª¥ꥸ¥󥵡¼¥ФǤ¢¤ä¿¤«¤Τ褦¤˥¯¥饤¥¢¥ó¥ȤË - ¥³¥ó¥ƥó¥ĤòÊ֤·¤ޤ¹¡£

    - -

    ¥ê¥С¼¥¹¥ץí¥­¥·¤Τ褯¤¢¤ëÍøÍÑÊýˡ¤ϡ¢¥¤¥󥿡¼¥ͥåȥ桼¥¶¤Ë - ¥ե¡¥¤¥¢¥¦¥©¡¼¥ë¤ÎÃæ¤ˤ¢¤륵¡¼¥Ф˥¢¥¯¥»¥¹¤òͿ¤¨¤ë¤Ȥ¤¤¦¤â¤ΤǤ¹¡£ - ¥ê¥С¼¥¹¥ץí¥­¥·¤Ïʣ¿ô¤ΥХ寥¨¥ó¥ɥµ¡¼¥ФØÉé²Ùʬ»¶¤򤹤뤿¤á¤Ë - »Ȥ俤ꡢÃ٤¤¥Х寥¨¥ó¥ɥ¨¥ó¥ɥµ¡¼¥ФΤ¿¤á¤˥­¥ã¥å·¥嵡ǽ¤òÄ󶡤·¤¿¤ê - ¤¹¤뤿¤á¤˻Ȥ¨¤ޤ¹¡£¤ޤ¿¡¢¥ê¥С¼¥¹¥ץí¥­¥·¤Ïʣ¿ô¤Υµ¡¼¥Фò - Ʊ¤¸ URL ¶õ´֤ˤޤȤá¤뤿¤á¤˻Ȥ¦¤³¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    ¥ê¥С¼¥¹¥ץí¥­¥·¤Ï ProxyPass ¥ǥ£¥쥯¥ƥ£¥֤ä - RewriteRule ¥ǥ£¥쥯¥ƥ£¥֤Î - [P] ¥ե饰¤ò»Ȥ¦¤³¤ȤÇͭ¸ú¤ˤʤê¤ޤ¹¡£¥ê¥С¼¥¹¥ץí¥­¥·¤Î - ÀßÄê¤Τ¿¤á¤Ë ProxyRequests ¤òÀßÄꤹ¤ëɬÍפÏ - ¤¢¤ê¤ޤ»¤ó¡£

    -
    top
    -
    -

    ´ðËܤÎÎã

    - -

    °ʲ¼¤ÎÎã¤ϼê»Ϥá¤δÊñ¤ÊÎã¤Ǥ¹¡£¸ġ¹¤Υǥ£¥쥯¥ƥ£¥֤ΰỌ̃¤Ï - ¤½¤줾¤ì¤ÎÀâÌÀ¤ò¤ªÆɤߤ¯¤À¤µ¤¤¡£

    - -

    ¤ޤ¿¥­¥ã¥å·¥嵡ǽ¤òͭ¸ú¤ˤ·¤¿¤¤¾ì¹ç¤ϡ¢mod_cache - ¤ÎÀâÌÀ¤òÆɤó¤Ǥ¯¤À¤µ¤¤¡£

    - -

    ¥ե©¥¥ɥץí¥­¥·

    - ProxyRequests On
    - ProxyVia On
    -
    - <Proxy *>
    - - Order deny,allow
    - Deny from all
    - Allow from internal.example.com
    -
    - </Proxy> -

    - -

    ¥ê¥С¼¥¹¥ץí¥­¥·

    - ProxyRequests Off
    -
    - <Proxy *>
    - - Order deny,allow
    - Allow from all
    -
    - </Proxy>
    -
    - ProxyPass /foo http://foo.example.com/bar
    - ProxyPassReverse /foo http://foo.example.com/bar -

    -
    top
    -
    -

    ¥ץí¥­¥·¤ؤΥ¢¥¯¥»¥¹À©¸æ

    -

    ¥ץí¥­¥·¤Υ¢¥¯¥»¥¹¤ϰʲ¼¤Τ褦¤Ë <Proxy> ¥³¥ó¥ƥʤÎÃæ¤Ë - ¥ǥ£¥쥯¥ƥ£¥֤ò½񤯤³¤ȤÇÀ©¸æ¤Ǥ­¤ޤ¹:

    - -

    - <Proxy *>
    - - Order Deny,Allow
    - Deny from all
    - Allow from 192.168.0
    -
    - </Proxy> -

    - -

    ¥¢¥¯¥»¥¹À©¸æ¤Τ¿¤á¤Υǥ£¥쥯¥ƥ£¥֤Τè¤ê¾ܤ·¤¤¾ðÊó¤Ï - mod_authz_host ¤ò¤ªÆɤߤ¯¤À¤µ¤¤¡£

    - -

    (ProxyRequests ¥ǥ£¥쥯¥ƥ£¥֤ò - »ȤäÆ) ¥ե©¥¥ɥץí¥­¥·¤òÀßÄꤷ¤Ƥ¤¤ë¾ì¹ç¤ϡ¢¸·¤·¤¯¥¢¥¯¥»¥¹ - À©¸¤ò¹Ԥʤ¦¤³¤Ȥ¬Èó¾ï¤ËÂçÀڤǤ¹¡£¤½¤¦¤·¤ʤ¤¤ȡ¢Ǥ°դΥ¯¥饤¥¢¥ó¥Ȥ¬ - ¿ȸµ¤òÌÀ¤«¤¹¤³¤Ȥʤ¯Ǥ°դΥۥ¹¥Ȥ˥¢¥¯¥»¥¹¤¹¤뤿¤á¤˥µ¡¼¥Фò»Ȥ¦¤³¤Ȥ¬ - ¤Ǥ­¤Ƥ·¤ޤ¤¤ޤ¹¡£¤³¤ì¤Ϥ¢¤ʤ¿¼«¿ȤΥͥåȥ¥¯¤ˤȤäƤ⡢¥¤¥󥿡¼¥ͥåÈ - Á´ÂΤˤȤäƤâ´í¸±¤ʤ³¤ȤǤ¹¡£(ProxyRequests Off ¤ˤ·¤Æ - ProxyPass ¥ǥ£¥쥯¥ƥ£¥֤ò»ȤäÆ) - ¥ê¥С¼¥¹¥ץí¥­¥·¤ò»ȤäƤ¤¤ë¾ì¹ç¤ˤϡ¢¥¯¥饤¥¢¥ó¥ȤϤ¢¤ʤ¿¤¬ÌÀ¼¨Ū¤Ë - ÀßÄꤷ¤¿¥ۥ¹¥Ȥˤ·¤«¥¢¥¯¥»¥¹¤Ǥ­¤ʤ¤¤¿¤ᡢ¥ե©¥¥ɥץí¥­¥·¤ΤȤ­ - ¤ۤɥ¢¥¯¥»¥¹À©¸æ¤ËÎϤòÃí¤¬¤ʤ¯¤ƤâÂç¾æÉפǤ¹¡£

    - -
    top
    -
    -

    FTP ¥ץí¥­¥·

    - - -

    ¤ɤ¦¤·¤ƥե¡¥¤¥륿¥¤¥פ¬ xxx - ¤Υե¡¥¤¥ë¤ò FTP ¤ǥÀ¥¦¥ó¥í¡¼¥ɤǤ­¤ʤ¤¤Î?

    -

    ¤ª¤½¤餯¡¢¥ץí¥­¥·¤Î mime.types ÀßÄê¥ե¡¥¤¥ë¤Ǥ½¤Υե¡¥¤¥륿¥¤¥פ¬ - application/octet-stream ¤Ǥ¢¤ë¤ÈÄêµÁ¤µ¤ì¤Ƥ¤¤ʤ¤¤ΤǤ·¤礦¡£ - °ʲ¼¤Τ褦¤ʤâ¤Τ¬Ìò¤ËΩ¤Ĥ«¤⤷¤ì¤ޤ»¤ó:

    - -
    application/octet-stream   bin dms lha lzh exe class tgz taz
    -

    Ê̤ÎÊýˡ¤Ȥ·¤ơ¢¤¹¤٤ƤΥǥե©¥ë¥Ȥò¥Х¤¥ʥê¤ˤ¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹:

    -
    DefaultType application/octet-stream
    - - -

    ¥ե¡¥¤¥ë xxx ¤ò FTP ¤Î ASCII ¥À¥¦¥ó¥í¡¼¥É - ¤ˤµ¤»¤ë¤ΤϤɤ¦¤¹¤ì¤Ф褤¤Î?

    -

    ¤ޤì¤ˡ¢(¥ǥե©¥ë¥ȤΞÁ÷¤Ï binary ¥⡼¥ɤÇ) ÆÃÄê¤Î - ¥ե¡¥¤¥ë¤Τß FTP ¤Î ASCII žÁ÷Êýˡ¤ò»Ȥï¤ʤ±¤ì¤Фʤé¤ʤ¤ - ¾ì¹ç¤ˤϡ¢¥ꥯ¥¨¥¹¥ȤκǸå¤Ë ;type=a ¤òÉդ±¤뤳¤ȤÇ - mod_proxy ¤Ë ASCII žÁ÷¤򤵤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - (¤¿¤À¤·¡¢FTP ¤Υǥ£¥쥯¥ȥê°ìÍ÷¤Ͼï¤Ë ASCII ¥⡼¥ɤǹԤʤï¤ì¤ޤ¹¡£)

    - - -

    FTP ¤Υ¢¥åץí¡¼¥ɤϤɤ¦¤¹¤ì¤Ф褤¤Î?

    -

    ¸½»þÅÀ¤Ǥϡ¢mod_proxy ¤Î FTP ¥µ¥ݡ¼¥ȤÏ GET ¤ΤߤǤ¹¡£¤â¤Á¤í¤ó - Apache ¤Î ¥ץí¥­¥·¤ò»ȤäÆ HTTP ¤Υ¢¥åץí¡¼¥É (POST ¤ä PUT) ¤ò - ¤¹¤뤳¤ȤϤǤ­¤ޤ¹¡£

    - - -

    ¥ۡ¼¥à¥ǥ£¥쥯¥ȥê¤γ°¤Î FTP ¥ե¡¥¤¥ë¤Ë - ¥¢¥¯¥»¥¹¤¹¤ë¤ˤϤɤ¦¤¹¤ì¤Ф褤¤Î?

    -

    FTP URI ¤ϥí¥°¥¤¥󤷤Ƥ¤¤ë¥桼¥¶¤Υۡ¼¥à¥ǥ£¥쥯¥ȥ꤫¤é¤Î - ÁêÂХѥ¹¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£»Äǰ¤ʤ³¤Ȥˡ¢/../ ¤ϥ֥饦¥¶¤ˤè¤ê²ò¼ᤵ¤졢 - ¼ºݤË FTP ¥µ¡¼¥ФˤÏÁ÷¤é¤ì¤ʤ¤¤¿¤ᡢ/../ ¤ò»Ȥäƾå°̤Υǥ£¥쥯¥ȥê¤Ë - Åþ㤹¤뤳¤ȤϤǤ­¤ޤ»¤󡣤³¤ÎÌäÂê¤ò²ò·褹¤뤿¤á¤ˡ¢¤¤¤ï¤æ¤ë - Squid %2f ¥ϥå¯ ¤ò Apache ¤Î FTP ¥ץí¥­¥·¤ϼÂÁõ¤·¤Ƥ¤¤ޤ¹¡£ - ¤³¤ì¤Ï Squid Proxy ¥­¥ã¥å·¥å ¤Τ褦¤Ê - ¾¤Τ褯»Ȥï¤ì¤Ƥ¤¤ë¥ץí¥­¥·¥µ¡¼¥ФǤâ¼è¤é¤ì¤Ƥ¤¤ëÊýˡ¤Ǥ¹¡£ - ¥ꥯ¥¨¥¹¥ȤΥѥ¹¤ÎÀèƬ¤Ë /%2f ¤òÉդ±¤뤳¤Ȥǡ¢¥ץí¥­¥·¤Ë - FTP ¤γ«»ϥǥ£¥쥯¥ȥê¤ò (¥ۡ¼¥à¥ǥ£¥쥯¥ȥê¤ÎÂå¤ï¤ê¤Ë) / - ¤ËÊѤ¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£Î㤨¤С¢/etc/motd ¤ò¼èÆÀ¤¹¤뤿¤á¤ˤÏ - ¼¡¤Î URL ¤ò»Ȥ¤¤ޤ¹:

    - -

    - ftp://user@host/%2f/etc/motd -

    - - -

    ¥֥饦¥¶¤Î URL ɽ¼¨¤Ç FTP ¤Îʿʸ¥ѥ¹¥¥ɤò - ±£¤¹¤ˤϤɤ¦¤¹¤ì¤Ф褤¤Î?

    -

    FTP ¥µ¡¼¥Ф˥桼¥¶̾¤ȥѥ¹¥¥ɤò»Ȥäƥí¥°¥¤¥󤹤뤿¤á¤ˡ¢ - Apache ¤ϰۤʤëÊýˡ¤ò»Ȥ¤¤ޤ¹¡£URL ¤˥桼¥¶̾¤ȥѥ¹¥¥ɤ¬¤ޤ俤¯ - ¤ʤ¤¾ì¹ç¤ϡ¢Apache ¤Ï FTP ¥µ¡¼¥ФË anonymous ¥í¥°¥¤¥ó¤òÁ÷¤ê¤ޤ¹¡£ - ¤Ĥޤê¡¢

    - -

    - user: anonymous
    - password: apache_proxy@ -

    - -

    ¤³¤ì¤Ï anonymous ¥¢¥¯¥»¥¹¤¬ÀßÄꤵ¤줿 - ¤¹¤٤ƤÎ FTP ¥µ¡¼¥ФËÂФ·¤Æưº¤ޤ¹¡£

    - -

    ¥桼¥¶̾¤ò»Ȥ俸ĿÍÊ̤Υí¥°¥¤¥ó¤ˤϡ¢URL ¤˥桼¥¶̾¤òÆþ¤ì¤뤳¤Ȥ¬ - ¤Ǥ­¤ޤ¹:

    - -

    - ftp://username@host/myfile -

    - -

    ¤³¤Υ桼¥¶̾¤¬Ϳ¤¨¤é¤줿¤Ȥ­¤ˡ¢FTP ¥µ¡¼¥Ф¬¥ѥ¹¥¥ɤòÍ׵᤹¤ì¤Ð - (¤â¤Á¤í¤󤽤¦¤¹¤٤­¤ʤΤǤ¹¤¬)¡¢Apache ¤Ï 401 - (Authorization required) ¤òÊ֤·¤ޤ¹¡£¤³¤ì¤ˤè¤ꡢ¥֥饦¥¶¤ϥ桼¥¶̾ - ¥ѥ¹¥¥ɤÎÆþÎϥÀ¥¤¥¢¥í¥°¤òɽ¼¨¤·¤ޤ¹¡£¥ѥ¹¥¥ɤ¬ÆþÎϤµ¤줿¸塢 - ºƤÓÀܳ¤ò»î¤ߡ¢À®¸ù¤¹¤ì¤Хꥯ¥¨¥¹¥Ȥ·¤¿¥꥽¡¼¥¹¤¬ɽ¼¨¤µ¤ì¤ޤ¹¡£ - ¤³¤ÎÊýˡ¤ÎÍøÅÀ¤ϥ֥饦¥¶¤¬¥ѥ¹¥¥ɤòʿʸ¤Çɽ¼¨¤·¤ʤ¤¤³¤ȤǤ¹¡£ - (¤⤷ºǽ餫¤é

    - -

    - ftp://username:password@host/myfile -

    - -

    ¤ÈÆþÎϤ·¤¿¾ì¹ç¤ˤÏɽ¼¨¤µ¤ì¤Ƥ·¤ޤ¤¤ޤ¹¡£)

    - -

    Ãí

    -

    Á÷¿®¤µ¤ì¤ë¥ѥ¹¥¥ɤϡ¢°Ź沽¤µ¤ì¤ÆÁ÷¤é¤ì¤ë¤櫓¤ǤϤ¢¤ê¤ޤ»¤ó¡£ - ¥֥饦¥¶¤È Apache ¥ץí¥­¥·¥µ¡¼¥ФÏ base64 ¤ÇÉä¹沽¤µ¤줿 - ʸ»úÎó¤Ȥ·¤ơ¢Apache ¥ץí¥­¥·¤È FTP ¥µ¡¼¥Фδ֤Ïʿʸ¤Ȥ·¤ÆÁ÷¤é¤ì¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢HTTP ¤ò»ȤäÆ HTTP ¤򥢥¯¥»¥¹¤¹¤ëÁ° (¤⤷¤¯¤ϡ¢¤½¤⤽¤â - ¸ĿÍŪ¤ʥե¡¥¤¥ë¤ò FTP ¤ǥ¢¥¯¥»¥¹¤¹¤ëÁ°) ¤ˤ褯¹ͤ¨¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - °ÂÁ´¤Ǥʤ¤Ä̿®ϩ¤ò»Ȥ俾ì¹ç¤ϡ¢ÅðݼԤËÅÓÃæ¤ǥѥ¹¥¥ɤòÅð¤ޤì¤ë - ²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£

    -
    - -
    top
    -
    -

    Ã٤¤µ¯ư

    -

    ProxyBlock ¥ǥ£¥쥯¥ƥ£¥֤ò»ȤäƤ¤¤ë¾ì¹硢 - ¸å¤Υƥ¹¥ȤΤ¿¤á¤˵¯ư»þ¤˥ۥ¹¥ȤÎ - IP ¥¢¥ɥ쥹¤¬Ĵ¤٤é¤ì¤ƥ­¥ã¥å·¥夵¤ì¤ޤ¹¡£¥ۥ¹¥È̾¤Υë¥å¯¥¢¥åפÎ - ®¤µ¤ˤè¤äƤϡ¢¿ôÉà (¤«¤½¤ì°ʾå) ¤«¤«¤뤫¤⤷¤ì¤ޤ»¤ó¡£

    -
    top
    -
    -

    ¥¤¥ó¥ȥé¥ͥåȥץí¥­¥·

    -

    ¥¤¥ó¥ȥé¥ͥåȤˤ¢¤ë Apache ¥ץí¥­¥·¥µ¡¼¥Фϳ°Éô¤ؤΥꥯ¥¨¥¹¥Ȥò - ²ñ¼ҤΥե¡¥¤¥¢¥¦¥©¡¼¥ë¤òÄ̤·¤ÆÁ÷¤é¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£(¤³¤Τ¿¤á¤ˤÏ - ¸ġ¹¤Î scheme ¤ˤĤ¤¤Ƥ½¤줾¤졢¥ե¡¥¤¥¢¥¦¥©¡¼¥ë¤Î - ¥ץí¥­¥·¤˥ե©¥¥ɤµ¤ì¤ë¤褦¤Ë - ProxyRemote ¥ǥ£¥쥯¥ƥ£¥֤ò - ÀßÄꤷ¤Ƥ¯¤À¤µ¤¤)¡£¤·¤«¤·¥¤¥ó¥ȥé¥ͥåÈÆâ¤Υ꥽¡¼¥¹¤˥¢¥¯¥»¥¹¤¹¤ë¤Ȥ­¤ϡ¢ - ¥ե¡¥¤¥¢¥¦¥©¡¼¥ë¤òÄ̤µ¤ʤ¤¤Ǥ⥢¥¯¥»¥¹¤Ǥ­¤ޤ¹¡£ - ¤ɤΥۥ¹¥Ȥ¬¥¤¥ó¥ȥé¥ͥåȤ˰¤·¡¢ľÀܥ¢¥¯¥»¥¹¤¹¤٤­¤«¤ò»ØÄꤹ¤ë¤ˤϡ¢ - NoProxy ¥ǥ£¥쥯¥ƥ£¥֤¬ - Ìò¤ËΩ¤Á¤ޤ¹¡£

    - -

    ¥¤¥ó¥ȥé¥ͥåÈÆâ¤Υ桼¥¶¤Ï WWW ¤Υꥯ¥¨¥¹¥Ȥǥí¡¼¥«¥ë¥ɥᥤ¥ó¤ò - ¾Êά¤¹¤뤳¤Ȥ¬¤褯¤¢¤ê¤ޤ¹¡£http://somehost.example.com/ - ¤Ȥ¤¤¦¥ꥯ¥¨¥¹¥ȤÎÂå¤ï¤ê¤Ë "http://somehost/" ¤ò¥ꥯ¥¨¥¹¥Ȥ·¤¿¤ꤷ¤ޤ¹¡£ - ¤³¤Τ褦¤ʥꥯ¥¨¥¹¥Ȥò¼õ¤±Éդ±¡¢¥µ¡¼¥ФËÀßÄꤵ¤ì¤Ƥ¤¤ë¥í¡¼¥«¥ë¥ɥᥤ¥ó¤¬ - °ÅÌۤΤ¦¤Á¤˻Ȥï¤ì¤Ƥ¤¤ë¤Ȳò¼ᤷ¤ơ¢ñ½ã¤˥ꥯ¥¨¥¹¥Ȥò½èÍý¤¹¤ë¤â¤Τâ - ¾¦Íѥץí¥­¥·¥µ¡¼¥ФÎÃæ¤ˤϤ¢¤ê¤ޤ¹¡£ - ¥µ¡¼¥Ф¬ ¥ץí¥­¥·¤Υµ¡¼¥ӥ¹ÍѤËÀßÄꤵ¤ì¤Ƥ¤¤Æ - ProxyDomain ¥ǥ£¥쥯¥ƥ£¥֤¬ - »ÈÍѤµ¤줿¾ì¹ç¤ˤϡ¢Apache ¤ϥ¯¥饤¥¢¥ó¥Ȥ˥ê¥À¥¤¥쥯¥ȱþÅú¤òÁ÷¤äơ¢ - Àµ¤·¤¤¡¢´°Á´¤Ê ((ÌõÃí: fully qualified)) - ¥µ¡¼¥ФΥ¢¥ɥ쥹¤ËÁ÷¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤³¤Τ褦¤Ë - ¥ê¥À¥¤¥쥯¥Ȥ¹¤ë¤ȡ¢¥桼¥¶¤Υ֥寥ޡ¼¥¯¤¬Àµ¤·¤¤´°Á´¤ʥۥ¹¥È̾¤ò´ޤà - ¤³¤Ȥˤâ¤ʤ뤿¤ᡢ¤è¤깥¤ޤ·¤¤Êýˡ¤ȸÀ¤¨¤ë¤Ǥ·¤礦¡£

    -
    top
    -
    -

    ¥ץí¥ȥ³¥ë¤ÎĴÀ°

    -

    Keepalive ¤ä HTTP/1.1 ¤òŬÀڤ˼ÂÁõ¤·¤Ƥ¤¤ʤ¤¥¢¥ץꥱ¡¼¥·¥ç¥󥵡¼¥Ф¬ - ¤¢¤ë¾õ¶·¤ǡ¢HTTP/1.0 ¤Ç keepalive ¤ò̵¤·¤ˤ·¤ƥꥯ¥¨¥¹¥ȤòÁ÷¤뤿¤á¤Î - ´Ķ­Êѿô¤¬Æó¤Ĥ¢¤ê¤ޤ¹¡£¤³¤ì¤é¤Ï SetEnv ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤷ¤ޤ¹¡£

    - -

    force-proxy-request-1.0 ¤È proxy-nokeepalive - ¤¬¤½¤δĶ­Êѿô¤Ǥ¹¡£

    - -

    - <Location /buggyappserver/>
    - - ProxyPass http://buggyappserver:7001/foo/
    - SetEnv force-proxy-request-1.0 1
    - SetEnv proxy-nokeepalive 1
    -
    - </Location> -

    -
    -
    top
    -

    AllowCONNECT ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¤ò·Ðͳ¤·¤ơ¢¤ɤΥݡ¼¥ȤË CONNECT -¤Ǥ­¤뤫¤ò»ØÄꤹ¤ë
    ¹½ʸ:AllowCONNECT port [port] ...
    ¥ǥե©¥ë¥È:AllowCONNECT 443 563
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    AllowCONNECT ¤ϥץí¥­¥·¤Î CONNECT - ¥᥽¥åɤ¬Àܳ¤òµö²Ĥ¹¤ë¥ݡ¼¥ÈÈֹæ¤Υꥹ¥Ȥò»ØÄꤷ¤ޤ¹¡£ - º£Æü¤Υ֥饦¥¶¤ϡ¢https ¥³¥ͥ¯¥·¥ç¥ó¤¬Í׵ᤵ¤ì¤Ƥ¤¤ơ¢ - HTTP ¾å¤ǤΥץí¥­¥·¤ˤè¤ë¥ȥó¥ͥê¥󥰤¬¤Ǥ­¤ë¤Ȥ­¤ˡ¢ - ¤³¤Υ᥽¥åɤò»Ȥ¤¤ޤ¹¡£

    - -

    ¥ǥե©¥ë¥ȤÎÀßÄê¤Ǥϡ¢https ¤Υǥե©¥ë¥ȥݡ¼¥È (443) ¤È - ¥ǥե©¥ë¥ȤÎ snews ¥ݡ¼¥È (563) ¤¬ͭ¸ú¤ˤʤäƤ¤¤ޤ¹¡£ - ¤³¤Υǥե©¥ë¥Ȥò¾å½񤭤·¤ơ¢¥ꥹ¥Ȥ˵­ºܤ·¤¿¥ݡ¼¥ȤˤΤßÀܳ¤òµö²Ĥ·¤¿¤¤¾ì¹硢 - AllowCONNECT ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ޤ¹¡£

    - -

    CONNECT ¤ò»ÈÍѤ¹¤ë¤ˤϡ¢mod_proxy_connect - ¤¬¥µ¡¼¥ФËÁȤ߹þ¤ޤì¤Ƥ¤¤ʤ±¤ì¤Фʤé¤ʤ¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    top
    -

    NoProxy ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:ľÀÜÀܳ¤¹¤ë ¥ۥ¹¥ȡ¢¥ɥᥤ¥󡢥ͥåȥ¥¯
    ¹½ʸ:NoProxy host [host] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥ¤¥ó¥ȥé¥ͥåÈÃæ¤Î Apache ¥ץí¥­¥·¥µ¡¼¥ФˤΤß - ͭÍѤǤ¹¡£NoProxy ¥ǥ£¥쥯¥ƥ£¥֤϶õÇò¶èÀڤê¤ǡ¢ - ¥µ¥֥ͥåȡ¢IP ¥¢¥ɥ쥹¡¢¥ۥ¹¥ȡ¢¥ɥᥤ¥ó¤Υꥹ¥Ȥò»ØÄꤷ¤ޤ¹¡£ - ¤³¤ì¤é¤Τɤ줫¤˥ޥåÁ¤¹¤ë¥ۥ¹¥ȤؤΥꥯ¥¨¥¹¥ȤÏ ProxyRemote ¤ÇÀßÄꤵ¤줿¥ץí¥­¥·¥µ¡¼¥ФË - ¥ե©¥¥ɤµ¤줺¡¢ľÀܽèÍý¤µ¤ì¤ޤ¹¡£

    - -

    Îã

    - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21 -

    - -

    NoProxy ¥ǥ£¥쥯¥ƥ£¥֤Î host °ú¿ô¤Ï - °ʲ¼¤μïÎà¤Τɤ줫¤Ǥ¹:

    - -
    - -
    Domain
    -
    -

    Domain ¤ÏÀèƬ¤˥ԥꥪ¥ɤÎÃ夤¤¿Éôʬ DNS ¥ɥᥤ¥ó̾¤Ǥ¹¡£ - Ʊ°ì DNS ¥ɥᥤ¥óµڤӥ¾¡¼¥ó (¤¹¤ʤï¤Á¡¢¥ۥ¹¥È̾¤ÎËöÈø¤¬¤¹¤٤Æ - Domain ¤ǽª¤ï¤äƤ¤¤ë¤Ȥ¤¤¦¤³¤È) ¤Ë°¤¹¤ë¥ۥ¹¥ȤΥꥹ¥Ȥò - ɽ¤·¤ޤ¹)¡£

    - -

    Îã

    - .com .apache.org. -

    - -

    Domain ¤ò Hostname ¤ȶèÊ̤¹¤뤿¤á¤Ë (°Ọ̃Ū¤ˤ⹽ʸŪ¤ˤ⡣DNS ¥ɥᥤ¥ó¤â - DNS ¤Î A ¥쥳¡¼¥ɤò»ý¤Ĥ³¤Ȥ¬¤Ǥ­¤ë¤ΤǤ¹!)¡¢Domain ¤Ï - ¾ï¤˥ԥꥪ¥ɤǻϤޤê¤ޤ¹¡£

    - -

    Ãí

    -

    ¥ɥᥤ¥ó̾¤ÎÈæ³ӤÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¤˹Ԥʤï¤졢Domain - ¤Ͼï¤Ë DNS ¥ĥ꡼¤Υ롼¥Ȥ«¤é»Ϥޤë¤â¤ΤȤߤʤµ¤ì¤ޤ¹¡£¤Ǥ¹¤«¤顢 - ¼¡¤ÎÆó¤ĤΥɥᥤ¥ó .MyDomain.com ¤È - .mydomain.com. (ºǸå¤Υԥꥪ¥ɤËÃíÌÜ) ¤ÏƱ°ì¤Ǥ¢¤ë¤È - ¤ߤʤµ¤ì¤ޤ¹¡£¥ɥᥤ¥ó¤ÎÈæ³ӤÏ DNS ¥ë¥å¯¥¢¥åפʤ·¤ǹԤʤï¤ì¤뤿¤ᡢ - ¥µ¥֥ͥåȤÎÈæ³Ӥè¤ê¤⤺¤äȸúΨŪ¤Ǥ¹¡£

    -
    - - -
    SubNet
    -
    -

    SubNet ¤ϿôÃͷÁ¼° (¥ɥåȤǶèÀڤé¤줿»ͤĤοô»ú) ¤Î - Éôʬ¥¤¥󥿡¼¥ͥåȥ¢¥ɥ쥹¤Ǥ¹¡£¸å¤˥¹¥é¥å·¥å¤È Subnet - ¤ΰỌ̃¤Τ¢¤ë¥ӥåȿô¤ò»ØÄꤹ¤ë¥ͥåȥޥ¹¥¯¤Ȥò³¤±¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¶¦Ä̤Υͥåȥ¥¯¥¤¥󥿥ե§¡¼¥¹¤ò»ȤäÆÅþ㤹¤뤳¤ȤΤǤ­¤륵¥֥ͥåȤò - ɽ¤¹¤¿¤á¤˻Ȥï¤ì¤ޤ¹¡£ÌÀ¼¨Ū¤˥ͥåȥޥ¹¥¯¤ò»ØÄꤷ¤ʤ¤¾ì¹ç¤Ï - ºǸå¤ξÊά¤µ¤줿 (¤⤷¤¯¤ÏÃͤ¬ 0 ¤Î) ¿ô»ú¤¬¥ޥ¹¥¯¤ò»ØÄꤷ¤ޤ¹¡£ - (¤³¤ξì¹ç¤ϡ¢¥ͥåȥޥ¹¥¯¤Ï 8 ¥ӥåÈñ°̤Ǥ·¤«»ØÄê¤Ǥ­¤ޤ»¤ó¡£) - Îã:

    - -
    -
    192.168 ¤⤷¤¯¤Ï 192.168.0.0
    -
    ¥µ¥֥ͥåÈ 192.168.0.0 ¤ȰÅÌۤÎ 16 ¥ӥåÈͭ¸ú¤ʥͥåȥޥ¹¥¯ - (255.255.0.0 ¤Ȥ¤¤¦¥ͥåȥޥ¹¥¯¤ηÁ¼°¤ǻȤï¤ì¤뤳¤Ȥâ - ¤¢¤ê¤ޤ¹)
    -
    192.168.112.0/21
    -
    ¥µ¥֥ͥåÈ192.168.112.0/21 ¤È 21 ¥ӥåÈͭ¸ú¤Ê - ¥ͥåȥޥ¹¥¯ (255.255.248.0 ¤Ȥ¤¤¦·Á¼°¤ǻȤï¤ì¤뤳¤Ȥâ - ¤¢¤ê¤ޤ¹)
    -
    - -

    ÆÃÊ̤ʾì¹ç¤ˡ¢32 ¥ӥåÈͭ¸ú¤Ê SubNet ¤Ï - IPAddr ¤ÈƱÅù¤ǡ¢ - 0 ¥ӥåÈͭ¸ú¤Ê SubNet (Î㤨¤Ð¡¢0.0.0.0/0) ¤Ï - ¤¹¤٤ƤÎ IP ¥¢¥ɥ쥹¤˥ޥåÁ¤¹¤ëÄê¿ô _Default_ ¤ÈƱ¤¸¤Ǥ¹¡£

    -
    - - -
    IPAddr
    -
    -

    IPAddr ¤ϿôÃͷÁ¼° (¥ɥåȤǶèÀڤé¤줿»ͤĤοô»ú) ¤Î - ´°Á´¥¤¥󥿡¼¥ͥåȥ¢¥ɥ쥹¤Ǥ¹¡£Ä̾ï¤Ϥ³¤Υ¢¥ɥ쥹¤ϥۥ¹¥Ȥò - ɽ¤·¤ޤ¹¤¬¡¢ɬ¤º¤·¤⥢¥ɥ쥹¤ËÂбþ¤¹¤ë DNS ¥ɥᥤ¥ó̾¤¬¤¢¤ë¤櫓¤ǤÏ - ¤¢¤ê¤ޤ»¤ó¡£

    - -

    Îã

    - 192.168.123.7 -

    - -

    Ãí

    -

    IPAddr ¤Ï DNS ¥·¥¹¥ƥà¤ˤè¤ê²ò·褵¤ì¤ëɬÍפ¬¤ʤ¤¤Τǡ¢ - apache ¤ÎÀ­ǽ¤¬¸þ¾夹¤뤫¤⤷¤ì¤ޤ»¤ó¡£

    -
    - - -
    Hostname
    -
    -

    Hostname ¤Ï DNS ¥ɥᥤ¥󥵡¼¥ӥ¹¤ˤè¤ê°ì¤Ĥ⤷¤¯¤Ï - ʣ¿ô¤Î IPAddr ¤˲ò·è²Äǽ¤Ê - ´°Á´¤Ê DNS ¥ɥᥤ¥ó̾¤Ǥ¹¡£¤³¤ì¤Ï (Domain - ¤Ȱã¤äơ¢ÀâÌÀ¤Ͼ嵭¤򻲾È) ÏÀÍýŪ¤ʥۥ¹¥Ȥòɽ¤·¡¢¾¯¤¯¤Ȥâ°ì¤ĤÎ - IPAddr (¤⤷¤¯¤ϰ㤦 - IPAddr ¤Υۥ¹¥ȤΥꥹ¥È) ¤˲ò·è - ¤µ¤ì¤ʤ±¤ì¤Фʤê¤ޤ»¤ó)¡£

    - -

    Îã

    - prep.ai.mit.edu
    - www.apache.org -

    - -

    Ãí

    -

    ¿¤¯¤ξì¹硢Hostname ¤ÎÂå¤ï¤ê¤Ë IPAddr ¤ò»ØÄꤷ¤¿Êý¤¬¡¢DNS ¥ë¥å¯¥¢¥åפò - È򤱤뤳¤Ȥ¬¤Ǥ­¤뤿¤ᡢ¸úΨ¤¬Îɤ¯¤ʤê¤ޤ¹¡£Apache ¤Î̾Á°²ò·è¤Ï - ¥͡¼¥ॵ¡¼¥ФؤÎÀܳ¤¬Ã٤¤ PPP ¾å¤ξì¹ç¤ʤɤˤ«¤ʤê»þ´֤ò¼è¤é¤ì¤ë - ¤³¤Ȥ¬¤¢¤ê¤ޤ¹¡£

    -

    Hostname ¤ÎÈæ³ӤÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¤˹Ԥʤï¤졢 - Hostname ¤Ͼï¤Ë DNS ¥ĥ꡼¤Υ롼¥Ȥ«¤é»Ϥޤë¤â¤ΤȤߤʤµ¤ì¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢Æó¤ĤΥɥᥤ¥ó WWW.MyDomain.com ¤È - www.mydomain.com. (ºǸå¤Υԥꥪ¥ɤËÃíÌÜ) ¤ÏƱ°ì¤Ǥ¢¤ë¤È - ¤ߤʤµ¤ì¤ޤ¹¡£

    -
    -
    - -

    »²¾È

    - -
    -
    top
    -

    <Proxy> ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¤µ¤ì¤ë¥꥽¡¼¥¹¤ËŬÍѤµ¤ì¤륳¥ó¥ƥÊ
    ¹½ʸ:<Proxy wildcard-url> ...</Proxy>
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    <Proxy> ¥»¥¯¥·¥ç¥óÃæ¤Î - ¥ǥ£¥쥯¥ƥ£¥֤ϥޥåÁ¤¹¤ë¥ץí¥­¥·¤µ¤ì¤륳¥ó¥ƥó¥ĤˤΤßŬÍѤµ¤ì¤ޤ¹¡£ - ¥·¥§¥ë·Á¼°¤Υ磻¥ë¥ɥ«¡¼¥ɤ¬»Ȥ¨¤ޤ¹¡£

    - -

    Î㤨¤С¢¼¡¤ÎÀßÄê¤Ï yournetwork.example.com ¤Î - ¥ۥ¹¥ȤˤΤߥץí¥­¥·¥µ¡¼¥Фò·Ðͳ¤·¤¿¥¢¥¯¥»¥¹¤òµö²Ĥ·¤ޤ¹:

    - -

    - <Proxy *>
    - - Order Deny,Allow
    - Deny from all
    - Allow from yournetwork.example.com
    -
    - </Proxy> -

    - -

    ¼¡¤ÎÎã¤Ï example.com ¤Î foo ¥ǥ£¥쥯¥ȥê¤Î - ¤¹¤٤ƤΥե¡¥¤¥ë¤ËÂФ·¤ơ¢¥ץí¥­¥·¥µ¡¼¥ФòÄ̤·¤ÆÁ÷¤é¤줿¤Ȥ­¤ˤÏ - INCLUDES ¥ե£¥륿¤òÄ̤·¤ÆÁ÷¤ë¤褦¤ËÀßÄꤷ¤ޤ¹:

    - -

    - <Proxy http://example.com/foo/*>
    - - SetOutputFilter INCLUDES
    -
    - </Proxy> -

    - - - -
    -
    top
    -

    ProxyBadHeader ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:±þÅú¤ˤª¤«¤·¤ʥإåÀ¤¬¤¢¤ë¾ì¹ç¤ΰ·¤¤Êý¤ò·è¤á¤ë
    ¹½ʸ:ProxyBadHeader IsError|Ignore|StartBody
    ¥ǥե©¥ë¥È:ProxyBadHeader IsError
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    ¸ߴ¹À­:2.0.44 °ʹß
    -

    ProxyBadHeader ¥ǥ£¥쥯¥ƥ£¥֤Ϲ½ʸŪ¤Ë - ´ְã¤ä¿¥إåÀ (¤Ĥޤê ¥³¥í¥ó¤ò´ޤޤʤ¤¤â¤Î) ¤ò¼õ¤±¼è¤ä¿¤Ȥ­¤Ë - mod_proxy ¤¬¤ɤ¦¿¶¤ëÉ񤦤«¤ò·è¤á¤ޤ¹¡£°ʲ¼¤ΰú¿ô¤ò - ¼è¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -
    -
    IsError
    -
    ¥ꥯ¥¨¥¹¥ȤòÃæ»ߤ·¤Æ 502 (Bad Gateway) ±þÅú¤òÊ֤¹¡£ - ¤³¤줬¥ǥե©¥ë¥ȤÎưºî¤Ǥ¹¡£
    - -
    Ignore
    -
    ´ְã¤ä¿¥إåÀ¹Ԥ򤽤⤽¤â¸ºߤ·¤ʤ«¤ä¿¤â¤ΤȤ·¤ư·¤¦¡£
    - -
    StartBody
    -
    ´ְã¤ä¿¥إåÀ¹Ԥò¼õ¤±¼è¤ä¿¤顢¥إåÀ¤ÎÆɤ߹þ¤ߤò½ªλ¤·¤ơ¢ - ¤½¤ì°ʹߤλĤê¤ò¥ܥǥ£¤Ȥ·¤ư·¤¦¡£¤³¤ì¤ϥإåÀ¤ȥܥǥ£¤δ֤˶õ¹ԤòÆþ¤ì˺¤ì¤Æ - ¤·¤ޤäƤ¤¤ë¤褦¤ʡ¢¤­¤Á¤ó¤Èưº¤Ƥ¤¤ʤ¤¥Х寥¨¥ó¥ɥµ¡¼¥Ф¬¤¢¤ë¤Ȥ­¤ˡ¢ - ÌäÂê¤ò²óÈ򤹤ë¤ΤËÌò¤ËΩ¤Á¤ޤ¹¡£
    -
    - -
    -
    top
    -

    ProxyBlock ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·Àܳ¤ò¶ػߤ¹¤ë¸ì¶硢¥ۥ¹¥È̾¡¢¥ɥᥤ¥ó¤ò»ØÄꤹ¤ë
    ¹½ʸ:ProxyBlock *|word|host|domain -[word|host|domain] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ProxyBlock ¥ǥ£¥쥯¥ƥ£¥֤϶õÇò¤ǶèÀڤé¤줿 - ¸ì¶硢¥ۥ¹¥È̾¡¢¥ɥᥤ¥ó¤Υꥹ¥Ȥò»ØÄꤷ¤ޤ¹¡£¥µ¥¤¥È̾¤ˤ½¤θì¶硢¥ۥ¹¥È̾¡¢ - ¥ɥᥤ¥ó¤ò´ޤॵ¥¤¥ȤؤÎ HTTP¡¢HTTPS¡¢FTP ¤ˤè¤ë¥ɥ­¥å¥á¥ó¥ȤΥꥯ¥¨¥¹¥ȤÏ - ¥ץí¥­¥·¥µ¡¼¥Фˤè¤ê¥֥í¥å¯¤µ¤ì¤ޤ¹¡£¥ץí¥­¥·¥⥸¥塼¥ë¤Ï - µ¯ư»þ¤˥ۥ¹¥È̾¤Ȼפ·¤­¹àÌܤÎ IP ¥¢¥ɥ쥹¤òĴ¤١¢¸å¤Υƥ¹¥ȤΤ¿¤á¤Ë - ¥­¥ã¥å·¥夷¤ޤ¹¡£¤³¤ì¤ˤè¤ꡢ¥µ¡¼¥Фε¯ư¤¬¾¯¤·Ã٤¯¤ʤ뤫¤⤷¤ì¤ޤ»¤ó¡£

    - -

    Example

    - ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu -

    - -

    rocky.wotsamattau.edu ¤¬ IP ¥¢¥ɥ쥹¤ǻ²¾Ȥµ¤줿¤Ȥ­¤Ǥâ - ¥ޥåÁ¤·¤ޤ¹¡£

    - -

    wotsamattau.edu ¤ΥޥåÁ¤ˤÏ wotsamattau - ¤À¤±¤Ǥ⽽ʬ¤Ǥ¹¡£

    - -

    - ProxyBlock * -

    - -

    ¤Ϥ¹¤٤ƤΥµ¥¤¥ȤؤÎÀܳ¤ò¥֥í¥å¯¤¹¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    top
    -

    ProxyDomain ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¤µ¤줿¥ꥯ¥¨¥¹¥ȤΥǥե©¥ë¥ȤΥɥᥤ¥ó̾
    ¹½ʸ:ProxyDomain Domain
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥ¤¥ó¥ȥé¥ͥåÈÆâ¤Î Apache ¥ץí¥­¥·¥µ¡¼¥ФˤΤß - ͭÍѤǤ¹¡£ProxyDomain ¥ǥ£¥쥯¥ƥ£¥֤Ï - apache ¥ץí¥­¥·¥µ¡¼¥Ф¬°¤¹¤ë¥ǥե©¥ë¥ȤΥɥᥤ¥ó¤ò»ØÄꤷ¤ޤ¹¡£ - ¥ɥᥤ¥ó̾¤Î̵¤¤¥ꥯ¥¨¥¹¥Ȥò¼õ¤±¤¿¾ì¹硢ÀßÄꤵ¤줿 Domain - ¤¬Äɲ䵤줿Ʊ¤¸¥ۥ¹¥ȤؤΥê¥À¥¤¥쥯¥ȱþÅú¤¬Ê֤µ¤ì¤ޤ¹¡£

    - -

    Îã

    - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21
    - ProxyDomain .mycompany.com -

    - -
    -
    top
    -

    ProxyErrorOverride ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¤µ¤줿¥³¥ó¥ƥó¥ĤΥ¨¥顼¥ڡ¼¥¸¤ò¾å½񤭤¹¤ë
    ¹½ʸ:ProxyErrorOverride On|Off
    ¥ǥե©¥ë¥È:ProxyErrorOverride Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    ¸ߴ¹À­:¥С¼¥¸¥ç¥ó 2.0 °ʹߤǻÈÍѲÄǽ
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥê¥С¼¥¹¥ץí¥­¥·¤ò»ÈÍѤ·¤Ƥ¤¤ơ¢ - ¥¨¥ó¥ɥ桼¥¶¤ËÁ÷¤é¤ì¤륨¥顼¥ڡ¼¥¸¤γ°¸«¤ò¶¦Ä̤Τâ¤Τˤ·¤¿¤¤¤Ȥ­¤Ë - ͭÍѤǤ¹¡£¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï (mod_include ¤Î SSI ¤ˤè¤äÆ) - ¥¤¥󥯥롼¥ɤµ¤줿¥ե¡¥¤¥뤬¥¨¥顼¥³¡¼¥ɤò¼èÆÀ¤·¤ơ¢Àµ¤·¤¯ưºî¤ò - ¤¹¤ë¤褦¤ˤ⤷¤ޤ¹ (¥ǥե©¥ë¥ȤÎưºî¤ϡ¢¥ץí¥­¥·¤µ¤줿¥µ¡¼¥ФÎ - ¥¨¥顼¥ڡ¼¥¸¤Îɽ¼¨¤ǡ¢¤³¤Υǥ£¥쥯¥ƥ£¥֤òͭ¸ú¤ˤ¹¤ë¤È SSI ¤Υ¨¥顼 - ¥á¥å»¡¼¥¸¤òɽ¼¨¤·¤ޤ¹)¡£

    - -
    -
    top
    -

    ProxyIOBufferSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:ÆâÉô¥ǡ¼¥¿¥¹¥롼¥ץåȥХåե¡¤Υµ¥¤¥º¤ò·èÄꤹ¤ë
    ¹½ʸ:ProxyIOBufferSize bytes
    ¥ǥե©¥ë¥È:ProxyIOBufferSize 8192
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ProxyIOBufferSize ¥ǥ£¥쥯¥ƥ£¥֤ÏÆþÎϤÈ - ½ÐÎÏÍѤΰì»þ¥á¥â¥ê¤Ȥ·¤ƻȤï¤ì¤ëÆâÉô¥Хåե¡¤Υµ¥¤¥º¤òĴÀ°¤·¤ޤ¹¡£ - ¥µ¥¤¥º¤Ï 8192 °ʲ¼¤Ǥʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    ¤ۤȤó¤ɤ¹¤٤Ƥξì¹硢¤³¤ÎÃͤòÊѹ¹¤¹¤ëÍýͳ¤Ϥ¢¤ê¤ޤ»¤ó¡£

    - -
    -
    top
    -

    <ProxyMatch> ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:Àµµ¬ɽ¸½¤ǤΥޥåÁ¤ˤè¤ë¥ץí¥­¥·¥꥽¡¼¥¹ÍѤΥǥ£¥쥯¥ƥ£¥֥³¥ó¥ƥÊ
    ¹½ʸ:<ProxyMatch regex> ...</ProxyMatch>
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    <ProxyMatch> ¤Ï URL ¤ΥޥåÁ¤Ë - Àµµ¬ɽ¸½¤òÍѤ¤¤뤳¤Ȥò½ü¤¤¤Æ <Proxy> ¥ǥ£¥쥯¥ƥ£¥֤ÈƱ¤¸¤Ǥ¹¡£

    - -
    -
    top
    -

    ProxyMaxForwards ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥Ȥ¬¥ե©¥¥ɤµ¤ì¤ë¥ץí¥­¥·¤κÇÂç¿ô
    ¹½ʸ:ProxyMaxForwards number
    ¥ǥե©¥ë¥È:ProxyMaxForwards 10
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    ¸ߴ¹À­:Apache 2.0 °ʹߤǻÈÍѲÄǽ
    -

    ProxyMaxForwards ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¥ꥯ¥¨¥¹¥ȤË Max-Forwards ¥إåÀ¤¬»ØÄꤵ¤ì¤Ƥ¤¤ʤ¤¾ì¹ç¤Ë - ¥ꥯ¥¨¥¹¥Ȥ¬Ä̲á²Äǽ¤ʥץí¥­¥·¤κÇÂç¿ô¤òÀßÄꤷ¤ޤ¹¡£¤³¤ì¤Ï - ¥ץí¥­¥·¤Î̵¸¥롼¥פä DoS ¹¶·â¤òËɤ°¤¿¤á¤ËÀßÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£

    - -

    Îã

    - ProxyMaxForwards 15 -

    - -
    -
    top
    -

    ProxyPass ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥ê¥⡼¥ȥµ¡¼¥Фò¥í¡¼¥«¥륵¡¼¥ФÎ URL ¶õ´֤˥ޥåפ¹¤ë
    ¹½ʸ:ProxyPass [path] !|url [key=value key=value ...]]
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥê¥⡼¥ȥµ¡¼¥Фò¥í¡¼¥«¥륵¡¼¥ФÎ̾Á°¶õ´֤Ë - ¥ޥåפǤ­¤ë¤褦¤ˤ·¤ޤ¹¡£¥í¡¼¥«¥륵¡¼¥ФÏÄ̾ï¤ΰỌ̃¤ǤΥץí¥­¥·¤È - ¤·¤ƤÏưº¤º¡¢¥ê¥⡼¥ȥµ¡¼¥ФΥߥ顼¤Ȥ·¤ƿ¶¤ëÉ񤤤ޤ¹¡£ - path ¤ϥí¡¼¥«¥ë¤β¾Áۥѥ¹¤Î̾Á°¤Ǥ¹¡£url ¤Ï - ¥ê¥⡼¥ȥµ¡¼¥ФÎÉôʬ URL ¤ˤʤꡢ¥¯¥¨¥꡼ʸ»úÎó¤ò´ޤळ¤ȤϤǤ­¤ޤ»¤ó¡£

    - -
    ProxyPass ¥ǥ£¥쥯¥ƥ£¥֤ò - »ȤäƤ¤¤ë¤Ȥ­¤Ï ProxyRequests ¥ǥ£¥쥯¥ƥ£¥֤ÏÄ̾ï¤Ï - off ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¤٤­¤Ǥ¹¡£
    - -

    ¥í¡¼¥«¥륵¡¼¥ФΥ¢¥ɥ쥹¤¬ http://example.com/ ¤Ǥ¢¤ë¤È - ¤·¤ޤ¹¡£¤¹¤ë¤ȡ¢

    - -

    - ProxyPass /mirror/foo/ http://backend.example.com/ -

    - -

    ¤ÈÀßÄꤹ¤ë¤È http://example.com/mirror/foo/bar ¤ؤÎ - ¥ꥯ¥¨¥¹¥Ȥ¬ÆâÉôŪ¤Ë http://backend.example.com/bar ¤ؤÎ - ¥ץí¥­¥·¥ꥯ¥¨¥¹¥ȤËÊѴ¹¤µ¤ì¤뤳¤Ȥˤʤê¤ޤ¹¡£

    - -

    ¥µ¥֥ǥ£¥쥯¥ȥê¤ò¥ê¥С¼¥¹¥ץí¥­¥·¤·¤¿¤¯¤ʤ¤¤Ȥ­¤Ë ! ¤Ï - Ìò¤ËΩ¤Á¤ޤ¹¡£Î㤨¤Ð¡¢

    - -

    - ProxyPass /mirror/foo/i !
    - ProxyPass /mirror/foo http://backend.example.com -

    - -

    ¤Ï /mirror/foo/i ¤ò½ü¤¯ - /mirror/foo ¤ؤΤ¹¤٤ƤΥꥯ¥¨¥¹¥Ȥò - backend.example.com ¤˥ץí¥­¥·¤·¤ޤ¹¡£

    - -

    Ãí

    -

    ½çÈ֤ϽÅÍפǤ¹¡£°ìÈÌŪ¤Ê ProxyPass - ¥ǥ£¥쥯¥ƥ£¥֤ÎÁ°¤Ë - ½ü³°¥ǥ£¥쥯¥ƥ£¥֤òÃ֤¯ɬÍפ¬¤¢¤ê¤ޤ¹¡£

    -
    - -

    2.1 ¤ο·µ¡ǽ¤ǡ¢¥Х寥¨¥ó¥ɥµ¡¼¥ФȤÎÀܳ¤˥ס¼¥뤵¤줿¥³¥ͥ¯¥·¥ç¥ó¤ò - »Ȥ¨¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£key=value ·Á¼°¤Υѥé¥᡼¥¿¤Ç - ¤³¤Υ³¥ͥ¯¥·¥ç¥ó¥ס¼¥ê¥󥰤ÎĴÀ°¤¬¤Ǥ­¤ޤ¹¡£Hard Maximum - ¤Υǥե©¥ë¥ÈÃͤϡ¢ͭ¸ú¤ˤʤäƤ¤¤ë MPM ¤ǤΥץí¥»¥¹Åö¤¿¤ê¤Υ¹¥ì¥åɿô¤È - Ʊ¤¸¿ô¤Υ³¥ͥ¯¥·¥ç¥ó¿ô¤Ǥ¹¡£prefork MPM ¤ǤÏÄ̾ï¤Ï 1 ¤ǡ¢worker MPM ¤ǤÏ - ThreadsPerChild ¤ÇĴÀ°¤µ¤ì¤ޤ¹¡£

    - -

    min ¤ÎÀßÄê¤ǡ¢¥Х寥¨¥ó¥ɥµ¡¼¥ФȤδ֤˲¿ËܤΥ³¥ͥ¯¥·¥ç¥ó¤ò - ¾ï»þ³«¤¯¤«¤¬·è¤ޤê¤ޤ¹¡£Soft Maximum smax ¤οô¤Ë - 㤹¤ë¤ޤÇɬÍפ˱þ¤¸¤ƥ³¥ͥ¯¥·¥ç¥ó¤ÏÀ¸À®¤µ¤ì¤ޤ¹¡£smax - ¤òͤ¨¤¿¿ô¤Υ³¥ͥ¯¥·¥ç¥ó¤ϡ¢À¸¸»þ´Ö ttl ¤ÇÀÚÃǤµ¤ì¤ޤ¹¡£ - ¥Х寥¨¥ó¥ɥµ¡¼¥ФÈ Hard Maximum max ¤οô°ʾå¤Υ³¥ͥ¯¥·¥ç¥ó¤ò - À¸À®¤¹¤뤳¤ȤϤ¢¤ê¤ޤ»¤ó¡£

    - -

    - ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300 -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ¥ѥé¥᡼¥¿¥ǥե©¥ë¥ÈÃÍÀâÌÀ
    min0¥Х寥¨¥ó¥ɥµ¡¼¥ФȤÎÀܳ¤Ç - ¾ï¤˳«¤¤¤Ƥ¤¤륳¥ͥ¯¥·¥ç¥ó¿ô¤κǾ®ÃÍ
    max1...n¥Х寥¨¥ó¥ɥµ¡¼¥ФȤÎÀܳ¿ô¤Î Hard Maximum - (ÌõÃí: ¥ϡ¼¥ɥê¥ߥåÈ)¡£ - ¥ǥե©¥ë¥ÈÃͤϡ¢»ÈÍѤ·¤Ƥ¤¤ë MPM ¤Υץí¥»¥¹¤¢¤¿¤ê¤Υ¹¥ì¥åɿô¤ˤʤäƤ¤¤ޤ¹¡£ - Prefork MPM ¤ǤϾï¤Ë 1 ¤ǡ¢Worker MPM ¤ǤÏ ThreadsPerChild - ¤ÇĴÀá¤Ǥ­¤ޤ¹¡£Hard Maximum °ʾå¤˥Х寥¨¥ó¥ɥµ¡¼¥ФȤΥ³¥ͥ¯¥·¥ç¥ó¤ò - À¸À®¤¹¤뤳¤ȤϤ¢¤ê¤ޤ»¤ó¡£
    smaxmaxÀܳ¿ô¤Î Soft Maximum (ÌõÃí: ¥½¥եȥê¥ߥåÈ)¤ޤǡ¢ - ¥³¥ͥ¯¥·¥ç¥ó¤ÏɬÍפ˱þ¤¸¤ÆÀ¸À®¤µ¤ì¤ޤ¹¡£ - smax ¤òͤ¨¤¿¿ô¤Υ³¥ͥ¯¥·¥ç¥ó¤ÏÀ¸¸»þ´Ö ttl - ¤ÇÀÚÃǤµ¤ì¤ޤ¹¡£ -
    ttl-smax ¿ô¤òͤ¨¤¿Èó³èư¾õÂ֤Υ³¥ͥ¯¥·¥ç¥ó¤ÎÀ¸¸»þ´֤ò¡¢ - ÉäǻØÄꤷ¤ޤ¹¡£¤³¤δü´ÖÆâ¤˻ÈÍѤµ¤ì¤ʤ«¤ä¿¥³¥ͥ¯¥·¥ç¥ó¤ϡ¢ - Á´¤ÆÊĤ¸¤é¤ì¤ޤ¹¡£ -
    timeoutTimeout¥³¥ͥ¯¥·¥ç¥󥿥¤¥ॢ¥¦¥ȤòÉäǻØÄꤷ¤ޤ¹¡£Æä˻ØÄꤵ¤ì¤ʤ±¤ì¤С¢ - ¥ե꡼¤ʥ³¥ͥ¯¥·¥ç¥ó¤ò¼èÆÀ¤Ǥ­¤ë¤ޤÇÂԤÁ¤ޤ¹¡£¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï - max ¥ѥé¥᡼¥¿¤ȹç¤碌¤ƻȤ¦¤³¤Ȥǡ¢¥Х寥¨¥ó¥ɥµ¡¼¥ФȤÎ - Àܳ¿ô¤òÀ©¸椹¤ë¤Τ˻Ȥ¤¤ޤ¹¡£ -
    acquire-ÀßÄꤹ¤ë¤ȡ¢¥³¥ͥ¯¥·¥ç¥ó¥ס¼¥뤫¤é¥ե꡼¤Υ³¥ͥ¯¥·¥ç¥ó¤ò¼èÆÀ¤¹¤뤿¤á¤Ë - ÂԵ¡¤¹¤ëÂԤÁ»þ´֤κÇÂçÃͤˤʤê¤ޤ¹¡£¥ե꡼¤Υ³¥ͥ¯¥·¥ç¥󤬥ס¼¥ë¤ˤʤ«¤ä¿¾ì¹ç¤ϡ¢ - SERVER_BUSY ¥¹¥ơ¼¥¿¥¹¤¬¥¯¥饤¥¢¥ó¥ȤËÊ֤µ¤ì¤ޤ¹¡£ -
    keepaliveOff¥Х寥¨¥ó¥ɥµ¡¼¥ФÈ Apache ¤δ֤˥ե¡¥¤¥¢¡¼¥¦¥©¡¼¥뤬¤¢¤ë¾ì¹ç¤ˤϡ¢ - ¤³¤Υѥé¥᡼¥¿¤ò»ȤäƤ¯¤À¤µ¤¤¡£¥ե¡¥¤¥¢¥¦¥©¡¼¥ë¤ϱý¡¹¤ˤ·¤ơ¢ - Èó³èư¾õÂ֤Υ³¥ͥ¯¥·¥ç¥ó¤òÍî¤Ȥ½¤¦¤Ȥ·¤ޤ¹¡£ - ¤³¤Υե饰¤Ï OS ¤˻ؼ¨¤·¤ơ¢KEEP_ALIVE ¥á¥å»¡¼¥¸¤òÈó³èư¾õÂ֤Î - ¥³¥ͥ¯¥·¥ç¥ó¤ǤâÁ÷¤ë¤褦¤ˤ·¤ޤ¹ (´ֳ֤Ï OS ¤Υ°¥í¡¼¥ХëÀßÄê¤˰͸¤·¡¢ - Ä̾ï¤Ï 120ms ´ֳÖ) ¡£¤³¤ì¤ˤè¤äƥե¡¥¤¥¢¥¦¥©¡¼¥ë¤ˤè¤äƥ³¥ͥ¯¥·¥ç¥ó¤¬ - Íî¤Ȥµ¤ì¤뤳¤ȤòËɤ²¤ޤ¹¡£keepalive ¤òͭ¸ú¤ˤ¹¤ë¤ˤϡ¢¤³¤Υץí¥ѥƥ£¤ò - On ¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£ -
    retry60¥³¥ͥ¯¥·¥ç¥ó¤ò¥ס¼¥ê¥󥰤¹¤뤿¤á¤Ρ¢¥ê¥ȥ饤¤Υ¿¥¤¥ॢ¥¦¥ȤòÉäÇ - »ØÄꤷ¤ޤ¹¡£¥Х寥¨¥ó¥ɥµ¡¼¥ФؤΥ³¥ͥ¯¥·¥ç¥ó¥ס¼¥ê¥󥰤¬¼ºÇԤ·¤¿¾ì¹ç¤ϡ¢ - ¥¿¥¤¥ॢ¥¦¥Ȥδü´֤¬²᤮¤ë¤ޤǡ¢¤½¤Υµ¡¼¥Ф˥ꥯ¥¨¥¹¥Ȥò¥ե©¥¥ɤ·¤ޤ»¤ó¡£ - ¤³¤ε¡ǽ¤ò»Ȥ¦¤ȡ¢¥Х寥¨¥ó¥ɥµ¡¼¥Фò¥á¥ó¥ƥʥ󥹤Τ¿¤á¤˥·¥ã¥åȥÀ¥¦¥󤷡¢ - ¸å¤ǥª¥ó¥饤¥ó¤ËÉüµ¢¤µ¤»¤ë¤Ȥ¤¤ä¿¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -
    loadfactor1¥¥«¡¼¤¢¤¿¤ê¤ÎÉé²ٷ¸¿ô¤Ǥ¹¡£BalancerMember ¤ǻȤ¤¤ޤ¹¡£ - 1 ¤«¤é 100 ¤ޤǤοô»ú¤Ǥ½¤Υ¥«¡¼¤ËÂФ¹¤ëÀµµ¬²½¤µ¤줿Éé²ÙΨ¤ò»ØÄꤷ¤ޤ¹¡£ -
    route-¥í¡¼¥ɥХé¥󥵤ǻȤ俾ì¹硢¥¥«¡¼¤Υ롼¥ƥ£¥󥰤򤷤ޤ¹¡£ - ¥롼¥Ȥϥ»¥å·¥ç¥ó ID ¤ËÉղ䵤줿Ãͤˤʤê¤ޤ¹¡£ -
    redirect-¥¥«¡¼¤Υê¥À¥¤¥쥯¥·¥ç¥ó·Ðϩ¤Ǥ¹¡£¤³¤ÎÃͤÏÄ̾ï¤ϡ¢ - °ÂÁ´¤˥¯¥饹¥¿¤«¤é¥Ρ¼¥ɤò¼è¤êµî¤ëÀßÄê¤òưŪ¤ËÆþ¤ì¤뤿¤á¤˻Ȥ¤¤ޤ¹¡£ - ¥»¥å·¥ç¥ó ID ¤Î̵¤¤¥ꥯ¥¨¥¹¥ÈÁ´¤Ƥò»ØÄꤷ¤¿¾ì¹ç¤ϡ¢ - ¤³¤ÎÃͤÈƱ¤¸¥롼¥ƥ£¥󥰥ѥé¥᡼¥¿¤ò»ý¤Ä - BalancerMember ¤˥ê¥À¥¤¥쥯¥Ȥµ¤ì¤ޤ¹¡£ -
    - -

    Proxy ¥ǥ£¥쥯¥ƥ£¥֤Υ¹¥­¡¼¥ब balancer:// ¤ˤʤäƤ¤¤ë¾ì¹ç¤ϡ¢ - ¥Х寥¨¥ó¥ɥµ¡¼¥ФȼºݤˤÏÄ̿®¤·¤ʤ¤²¾Áۥ¥«¡¼¤¬À¸À®¤µ¤ì¤ޤ¹¡£ - ¤³¤Υ¥«¡¼¤ϴö¤Ĥ«¤Î "ËÜʪ¤Î" ¥¥«¡¼¤δÉÍý¤ò¤Ĥ«¤µ¤ɤê¤ޤ¹¡£ - ¤³¤ξì¹ç¥ѥé¥᡼¥¿¤ϡ¢¤³¤β¾Áۥ¥«¡¼¤ËÂФ·¤ÆÀßÄꤵ¤ì¤ޤ¹¡£ -

    - - - - - - - - - - - - - - - - - - - - -
    ¥ѥé¥᡼¥¿¥ǥե©¥ë¥ÈÃÍÀâÌÀ
    lbmethod-Balancer ¤Υí¡¼¥ɥХé¥ó¥¹Êýˡ¡£»ÈÍѤ¹¤ë¥í¡¼¥ɥХé¥󥹤Î - ¥¹¥±¥¸¥塼¥ê¥ó¥°Êýˡ¤òÁª¤Ӥޤ¹¡£½èÍý¤·¤¿¥ꥯ¥¨¥¹¥Ȥοô¤ǽŤßÉդ±¤¹¤ë - requests ¤«¡¢žÁ÷Î̤ΥХ¤¥ȿô¤ǽŤßÉդ±¤¹¤ë - traffic ¤òÀßÄê¤Ǥ­¤ޤ¹¡£¥ǥե©¥ë¥ȤÏ - requests ¤Ǥ¹¡£ -
    stickysession-¥Хé¥󥵡¼¤Υ¹¥ƥ£¥å­¡¼¥»¥å·¥ç¥ó̾¤Ǥ¹¡£Ä̾ï¤Ϥ³¤ÎÃͤÏ JSESSIONID - ¤ä PHPSESSIONID ¤Ȥ¤¤ä¿¤â¤Τˤʤê¤ޤ¹¤¬¡¢¤³¤ÎÃͤÏ - ¥Х寥¨¥ó¥ɥ¢¥ץꥱ¡¼¥·¥ç¥ó¤Υµ¥ݡ¼¥Ȥ¹¤륻¥å·¥ç¥ó¤˰͸¤·¤ޤ¹¡£ -
    nofailoverOffOn ¤ˤʤäƤ¤¤ë¤ȡ¢¥¥«¡¼¤¬¥¨¥顼¤򵯤³¤·¤¿¤ê - ̵¸ú¤ˤʤäƤ¤¤ë¾ì¹ç¤˥»¥å·¥ç¥ó¤¬Àڤì¤ޤ¹¡£ - ¥Х寥¨¥ó¥ɥµ¡¼¥Ф¬¥»¥å·¥ç¥ó¥ì¥ץꥱ¡¼¥·¥ç¥ó¤򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ʤ¤¾ì¹ç¤ϡ¢ - On ¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£ -
    timeout0¥Хé¥󥵡¼¤Υ¿¥¤¥ॢ¥¦¥ȤòÉäǻØÄꤷ¤ޤ¹¡£ - ¤³¤ÎÃͤòÀßÄꤹ¤ë¤ȡ¢¥ե꡼¤Υ¥«¡¼¤ò¼èÆÀ¤¹¤ë¤ޤǤκÇÂçÂԵ¡»þ´֤ˤʤê¤ޤ¹¡£ - ¥ǥե©¥ë¥ȤǤÏÂԵ¡¤·¤ޤ»¤ó¡£ -
    maxattempts1¥ե§¥¤¥륪¡¼¥С¼¤ò»î¤ߤëºÇÂç¤βó¿ô¤ò»ØÄꤷ¤ޤ¹¡£ -
    -

    - ProxyPass /special-area http://special.example.com/ smax=5 max=10
    - ProxyPass / balancer://mycluster stickysession=jsessionid nofailover=On
    - <Proxy balancer://mycluster>
    - - BalancerMember http://1.2.3.4:8009
    - BalancerMember http://1.2.3.5:8009 smax=10
    - # Less powerful server, don't send as many requests there
    - BalancerMember http://1.2.3.6:8009 smax=1 loadfactor=20
    -
    - </Proxy> -

    - -

    <Location> ¥»¥¯¥·¥ç¥ó¤ÎÃæ¤ǻȤï¤줿¾ì¹硢ºǽé¤ΰú¿ô¤Ï - ¾Êά¤µ¤졢¥í¡¼¥«¥ë¥ǥ£¥쥯¥ȥê¤Ï <Location> ¤«¤é¼èÆÀ¤µ¤ì¤ޤ¹¡£

    - -

    ¤è¤ê½ÀÆð¤ʥê¥С¼¥¹¥ץí¥­¥·¤ÎÀßÄ꤬ɬÍפʾì¹ç¤ϡ¢[P] - ¥ե饰Éդ­¤Î RewriteRule - ¥ǥ£¥쥯¥ƥ£¥֤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    top
    -

    ProxyPassReverse ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥ê¥С¼¥¹¥ץí¥­¥·¤µ¤줿¥µ¡¼¥Ф«¤éÁ÷¤é¤줿 HTTP ±þÅú¥إåÀ¤Î -URL ¤òĴÀ°¤¹¤ë
    ¹½ʸ:ProxyPassReverse [path] url
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï Apache ¤Ë HTTP ¥ê¥À¥¤¥쥯¥ȱþÅú¤Î - Location, Content-Location, URI - ¥إåÀ¤ÎĴÀ°¤򤵤»¤ޤ¹¡£¤³¤ì¤ϡ¢Apache ¤¬¥ê¥С¼¥¹¥ץí¥­¥·¤Ȥ·¤ƻȤï¤ì¤Ƥ¤¤ë - ¤Ȥ­¤ˡ¢¥ê¥С¼¥¹¥ץí¥­¥·¤òÄ̤µ¤ʤ¤¤ǥ¢¥¯¥»¥¹¤¹¤뤳¤ȤòËɤ°¤¿¤á¤Ë - ½ÅÍפǤ¹¡£¤³¤ì¤ˤè¤ê¥Х寥¨¥ó¥ɥµ¡¼¥ФÎ HTTP ¥ê¥À¥¤¥쥯¥Ȥ¬ - ¥ê¥С¼¥¹¥ץí¥­¥·¤ȥХ寥¨¥ó¥ɤδ֤ǰ·¤ï¤ì¤ë¤褦¤ˤʤê¤ޤ¹¡£

    - -

    ¥ǥ£¥쥯¥ƥ£¥֤ÇÌÀ¼¨¤µ¤ì¤Ƥ¤¤ë HTTP ±þÅú¥إåÀ¤Τߤ¬½񤭴¹¤¨¤é¤ì¤ޤ¹¡£ - Apache ¤Ï¾¤αþÅú¥إåÀ¤ò½񤭴¹¤¨¤¿¤ꡢHTML ¥ڡ¼¥¸¤ÎÃæ¤Î URL »²¾Ȥò - ½񤭴¹¤¨¤¿¤ꤹ¤뤳¤ȤϤ¢¤ê¤ޤ»¤ó¡£HTML ¤ÎÃæ¤򸫤ơ¢URL »²¾Ȥò½񤭴¹¤¨¤ë - ¥⥸¥塼¥ë¤Ë Nick Kew ¤µ¤ó¤Î mod_proxy_html ¤¬¤¢¤ê¤ޤ¹¡£

    - -

    path ¤ϥí¡¼¥«¥벾Áۥѥ¹¤Î̾Á°¤Ǥ¹¡£url ¤Ï - ¥ê¥⡼¥ȥµ¡¼¥ФÎÉôʬ URL ¤Ǥ¹¡£¤³¤ì¤é¤Ï ProxyPass ¥ǥ£¥쥯¥ƥ£¥֤ÈƱÍͤǤ¹¡£

    - -

    Î㤨¤С¢¥í¡¼¥«¥륵¡¼¥ФΥ¢¥ɥ쥹¤¬ http://example.com/ - ¤À¤Ȥ·¤ޤ¹¡£¤¹¤ë¤È

    - -

    - ProxyPass /mirror/foo/ http://backend.example.com/
    - ProxyPassReverse /mirror/foo/ http://backend.example.com/
    - ProxyPassReverseCookieDomain backend.example.com public.example.com
    - ProxyPassReverseCookiePath / /mirror/foo/ -

    - -

    ¤Ȥ¤¤¦ÀßÄê¤򤹤ë¤ȡ¢http://example.com/mirror/foo/bar - ¤ؤΥí¡¼¥«¥ë¥ꥯ¥¨¥¹¥Ȥ¬ http://backend.example.com/bar - ¤ؤΥץí¥­¥·¥ꥯ¥¨¥¹¥ȤËÆâÉô¤ǥê¥À¥¤¥쥯¥Ȥµ¤ì¤ë¤À¤±¤ǤϤ¢¤ê¤ޤ»¤ó - (¤³¤ì¤Ï ProxyPass ¤ε¡ǽ¤Ǥ¹)¡£backend.example.com - ¤¬Á÷¤ë¥ê¥À¥¤¥쥯¥ȤÎÌÌÅݤâ¤ߤޤ¹¡£http://backend.example.com/bar - ¤¬ http://backend.example.com/quux ¤˥ê¥À¥¤¥쥯¥Ȥµ¤줿¤Ȥ­¡¢ - Apache ¤Ï HTTP ¥ê¥À¥¤¥쥯¥ȱþÅú¤򥯥饤¥¢¥ó¥ȤËÁ÷¤ëÁ°¤ˡ¢ - http://example.com/mirror/foo/quux ¤ËÊѹ¹¤·¤ޤ¹¡£ - URL ¤ò¹½À®¤¹¤ë¤Τ˻Ȥï¤ì¤ë¥ۥ¹¥È̾¤Ï UseCanonicalName ¤ÎÀßÄê¤˱þ¤¸¤ÆÁªÂ򤵤ì¤뤳¤ȤË - Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    ProxyPassReverse ¥ǥ£¥쥯¥ƥ£¥֤Ï - Âбþ¤¹¤ë ProxyPass ¥ǥ£¥쥯¥ƥ£¥֤ˤϰ͸¤·¤ʤ¤¤¿¤ᡢ - mod_rewrite ¤Υץí¥­¥·Ä̲ᵡǽ - (RewriteRule ... [P]) ¤Èʻ¤»¤ƻÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    <Location> ¥»¥¯¥·¥ç¥ó¤ÎÃæ¤ǻȤï¤줿¾ì¹ç¤ϡ¢ - ºǽé¤ΰú¿ô¤ϾÊά¤µ¤졢¥í¡¼¥«¥ë¥ǥ£¥쥯¥ȥê¤Ï <Location> ¤«¤é¼èÆÀ¤µ¤ì¤ޤ¹¡£

    - -
    -
    top
    -

    ProxyPassReverseCookieDomain ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥ê¥С¼¥¹¥ץí¥­¥·¥µ¡¼¥Ф«¤é¤Î Set-Cookie ¥إåÀ¤Î Domain ʸ»úÎó¤ò -ĴÀ°¤¹¤ë
    ¹½ʸ:ProxyPassReverseCookieDomain internal-domain public-domain
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    »ÈÍÑˡ¤ϴðËÜŪ¤Ë -ProxyPassReverse ¤ÈƱ¤¸¤Ǥ¹¤¬¡¢ -¥إåÀ¤Î URL ¤ÎÂå¤ï¤ê¤Ë Set-Cookie ¥إåÀ¤Î -domain ʸ»úÎó¤ò½񤭴¹¤¨¤ޤ¹¡£

    - -
    -
    top
    -

    ProxyPassReverseCookiePath ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:Reverse ¥ץí¥­¥·¥µ¡¼¥Ф«¤é¤Î Set-Cookie ¥إåÀ¤Î Path ʸ»úÎó¤ò -ĴÀ°¤¹¤ë
    ¹½ʸ:ProxyPassReverseCookiePath internal-path public-path
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    »ÈÍÑˡ¤ϴðËÜŪ¤Ë -ProxyPassReverse ¤ÈƱ¤¸¤Ǥ¹¤¬¡¢ -¥إåÀ¤Î URL ¤ÎÂå¤ï¤ê¤Ë Set-Cookie ¥إåÀ¤Î -path ʸ»úÎó¤ò½񤭴¹¤¨¤ޤ¹¡£

    - -
    -
    top
    -

    ProxyPreserveHost ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¥ꥯ¥¨¥¹¥Ȥˡ¢¼õ¤±Éդ±¤¿ Host HTTP ¥إåÀ¤ò»Ȥ¦
    ¹½ʸ:ProxyPreserveHost On|Off
    ¥ǥե©¥ë¥È:ProxyPreserveHost Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    ¸ߴ¹À­:Apache 2.0.31 °ʹߤǻÈÍѲÄǽ
    -

    ¤³¤Υª¥ץ·¥ç¥ó¤¬ͭ¸ú¤ˤʤäƤ¤¤ë¾ì¹硢ProxyPass - ¤ǻØÄꤷ¤¿¥ۥ¹¥È̾¤ÎÂå¤ï¤ê¤ˡ¢¼õ¤±Éդ±¤¿¥ꥯ¥¨¥¹¥ȤÎ Host: ¹Ԥò - ¥ץí¥­¥·Àè¤Υۥ¹¥ȤËÁ÷¤ê¤ޤ¹¡£

    - -

    ¤³¤Υª¥ץ·¥ç¥ó¤ÏÄ̾ï¤Ï Off ¤ËÀßÄꤷ¤Ƥ¯¤À¤µ¤¤¡£ - ¤ۤȤó¤ɤξì¹硢¤³¤ì¤ÏÂçÎ̤Î̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ƥ£¥󥰤ò¹ԤʤäƤ¤¤ơ¢ - ¸µ¡¹¤Î Host ¥إåÀ¤ò¥Х寥¨¥ó¥ɥµ¡¼¥Ф¬²ò¼᤹¤ëɬÍפΤ¢¤ë¤Ȥ­¤Τ褦¤ʡ¢ - ÆÃÊ̤ÊÀßÄ꤬ɬÍפʾì¹ç¤ˤΤßͭÍѤǤ¹¡£

    - -
    -
    top
    -

    ProxyReceiveBufferSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¤µ¤ì¤ë HTTP ¤È FTP Àܳ¤Τ¿¤á¤Υͥåȥ¥¯¥Хåե¡¥µ¥¤¥º
    ¹½ʸ:ProxyReceiveBufferSize bytes
    ¥ǥե©¥ë¥È:ProxyReceiveBufferSize 0
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ProxyReceiveBufferSize ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¥¹¥롼¥ץåȤò¾夲¤뤿¤á¤ËÌÀ¼¨Ū¤Ë (TCP/IP) ¥ͥåȥ¥¯¥Хåե¡¤Υµ¥¤¥º¤ò - ÀßÄꤷ¤ޤ¹¡£ÃͤÏ 512 °ʾ夫¡¢¥·¥¹¥ƥà¤Υǥե©¥ë¥ȤΥХåե¡ - ¥µ¥¤¥º¤ò°Ọ̃¤¹¤ë 0 ¤Ǥʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    Îã

    - ProxyReceiveBufferSize 2048 -

    - -
    -
    top
    -

    ProxyRemote ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:ÆÃÄê¤Υꥯ¥¨¥¹¥Ȥ򰷤¦»þ¤˻Ȥï¤ì¤ë¥ê¥⡼¥ȥץí¥­¥·¤ò»ØÄꤹ¤ë
    ¹½ʸ:ProxyRemote match remote-server
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ϥ³¤Υץí¥­¥·¤ËÂФ¹¤ë¥ê¥⡼¥ȥץí¥­¥·¤òÄêµÁ¤·¤ޤ¹¡£ - match ¤ϥê¥⡼¥ȥµ¡¼¥Ф¬¥µ¥ݡ¼¥Ȥ¹¤ë URL ¥¹¥­¡¼¥ࡢ - ¥ê¥⡼¥ȥµ¡¼¥Ф¬»Ȥ¦¤Ϥº¤Î URL ¤ΰìÉôʬ¡¢¥µ¡¼¥Ф¬¤¹¤٤ƤÎ - ¥ꥯ¥¨¥¹¥Ȥ˻Ȥï¤ì¤뤳¤Ȥ򼨤¹ * ¤Τɤ줫¤ˤʤê¤ޤ¹¡£ - remote-server ¤ϥê¥⡼¥ȥµ¡¼¥ФÎÉôʬ URL ¤Ǥ¹¡£¹½ʸ:

    - -

    - remote-server = - scheme://hostname[:port] -

    - -

    scheme ¤ϼºݾå¥ê¥⡼¥ȥµ¡¼¥ФȤÎÄ̿®¤˻Ȥï¤ì¤ë¥ץí¥ȥ³¥ë¤ò - ·èÄꤷ¤ޤ¹¡£¤³¤Υ⥸¥塼¥ë¤ǤÏ http ¤À¤±¤¬¥µ¥ݡ¼¥Ȥµ¤ì¤Æ - ¤¤¤ޤ¹¡£

    - -

    Îã

    - ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
    - ProxyRemote * http://cleversite.com
    - ProxyRemote ftp http://ftpproxy.mydomain.com:8080 -

    - -

    ¤³¤ÎÎã¤Ǥϡ¢¥ץí¥­¥·¤Ï FTP ¥ꥯ¥¨¥¹¥ȤòÊ̤Î HTTP ¥ꥯ¥¨¥¹¥ȤÇÊñ¤ó¤Ç - ¤½¤Τ褦¤ʥꥯ¥¨¥¹¥Ȥ򰷤¨¤ëÊ̤Υץí¥­¥·¤ËžÁ÷¤·¤ޤ¹¡£

    - -

    ¤³¤Υª¥ץ·¥ç¥ó¤ϥê¥С¼¥¹¥ץí¥­¥·¤ÎÀßÄê¤⥵¥ݡ¼¥Ȥ·¤ޤ¹¡£ - ¥µ¡¼¥Ф¬Ê̤Υե©¥¥ɥץí¥­¥·¤θå¤í¤˱£¤µ¤ì¤Ƥ¤¤ë¾ì¹ç¤Ǥâ - ¥Х寥¨¥ó¥ɥ¦¥§¥֥µ¡¼¥Фò¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎ URL ¶õ´֤ËÆþ¤ì¤뤳¤Ȥ¬ - ¤Ǥ­¤ޤ¹¡£

    - -
    -
    top
    -

    ProxyRemoteMatch ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:Àµµ¬ɽ¸½¤ǤΥޥåÁ¤ˤè¤ë¥ꥯ¥¨¥¹¥Ȥ򰷤¦¥ê¥⡼¥ȥץí¥­¥·¤λØÄê
    ¹½ʸ:ProxyRemoteMatch regex remote-server
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ProxyRemoteMatch ¤Ϻǽé¤ΰú¿ô¤¬¥ꥯ¥¨¥¹¥Ȥµ¤줿 - URL ¤˥ޥåÁ¤¹¤ëÀµµ¬ɽ¸½¤Ǥ¢¤뤳¤Ȥò½ü¤±¤Ð ProxyRemote ¥ǥ£¥쥯¥ƥ£¥֤ÈƱ¤¸¤Ǥ¹¡£

    - -
    -
    top
    -

    ProxyRequests ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ե©¥¥É (ɸ½à¤Î) ¥ץí¥­¥·¥ꥯ¥¨¥¹¥Ȥòͭ¸ú¤ˤ¹¤ë
    ¹½ʸ:ProxyRequests On|Off
    ¥ǥե©¥ë¥È:ProxyRequests Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ¤³¤ì¤Ï Apache ¤Υե©¥¥ɥץí¥­¥·¥µ¡¼¥ФȤ·¤ƤÎưºî¤ò - ͭ¸ú¤⤷¤¯¤Ï̵¸ú¤ˤ·¤ޤ¹¡£(ProxyRequests ¤ò Off ¤Ë - ÀßÄꤷ¤Ƥ⡢ProxyPass - ¤ÎÀßÄê¤Ï̵¸ú¤ˤʤê¤ޤ»¤ó¡£)

    - -

    Ä̾ï¤Υê¥С¼¥¹¥ץí¥­¥·¤ÎÀßÄê¤Ǥϡ¢¤³¤Υª¥ץ·¥ç¥ó¤Ï Off - ¤ËÀßÄꤷ¤Ƥ¯¤À¤µ¤¤¡£

    - -

    HTTP ¤ä FTP ¥µ¥¤¥ȤؤΥץí¥­¥·¤ε¡ǽ¤òͭ¸ú¤ˤ·¤¿¤¤¾ì¹ç¤ϡ¢ - mod_proxy_http ¤ä mod_proxy_ftp ¤¬ - ¥µ¡¼¥ФËÁȤ߹þ¤ޤì¤Ƥ¤¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    ·ٹð

    -

    ¥µ¡¼¥Фò°ÂÁ´¤ˤ¹¤ë¤ޤÇ ProxyRequests ¤Ïͭ¸ú¤ˤ·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£ - ¥ª¡¼¥ץó¥ץí¥­¥·¥µ¡¼¥ФϤ¢¤ʤ¿¼«¿ȤΥͥåȥ¥¯¤ˤȤäƤ⡢ - ¥¤¥󥿡¼¥ͥåÈÁ´ÂΤˤȤäƤâ´í¸±¤Ǥ¹¡£

    -
    - -
    -
    top
    -

    ProxyTimeout ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¤µ¤줿¥ꥯ¥¨¥¹¥ȤΥͥåȥ¥¯¥¿¥¤¥ॢ¥¦¥È
    ¹½ʸ:ProxyTimeout seconds
    ¥ǥե©¥ë¥È:ProxyTimeout 300
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    ¸ߴ¹À­:Apache 2.0.31 °ʹߤǻÈÍѲÄǽ
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥ桼¥¶¤¬¥ץí¥­¥·¥ꥯ¥¨¥¹¥ȤΥ¿¥¤¥ॢ¥¦¥Ȥò - »ØÄê¤Ǥ­¤ë¤褦¤ˤ·¤ޤ¹¡£¤³¤ì¤ϥϥ󥰤·¤Ƥ·¤ޤ¦Ã٤¤¡¢¤⤷¤¯¤ϵóư¤Î - ²ø¤·¤¤¥µ¡¼¥Ф¬¤¢¤ꡢ¥µ¡¼¥Ф¬¥ǡ¼¥¿¤òÊ֤¹¤ޤǤҤ¿¤¹¤éÂԤÁ³¤±¤ë¤è¤ê¤â - ¥¿¥¤¥ॢ¥¦¥ȤòÊ֤·¤Ƥè¤ê´ˤ䤫¤Ë(ÌõÃí: graceful ¤Ë) - ¼ºÇԤµ¤»¤¿¤¤¾ì¹ç¤ËÌò¤ËΩ¤Á¤ޤ¹¡£

    - -
    -
    top
    -

    ProxyVia ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ץí¥­¥·¤µ¤줿¥ꥯ¥¨¥¹¥ȤÎ Via HTTP ±þÅú¥إåÀ -¤ˤè¤êÄ󶡤µ¤ì¤ë¾ðÊó
    ¹½ʸ:ProxyVia On|Off|Full|Block
    ¥ǥե©¥ë¥È:ProxyVia Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_proxy
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϥץí¥­¥·¤Î Via: HTTP ¥إåÀ¤λÈÍѤò - À©¸椷¤ޤ¹¡£ÁÛÄꤵ¤ì¤Ƥ¤¤ë»Ȥ¤Êý¤ϡ¢¥ץí¥­¥·¥µ¡¼¥Ф¬¤¤¤¯¤Ĥâ·Ҥ¬¤äƤ¤¤ë¤Ȥ­¤Ë - ¥ץí¥­¥·¥ꥯ¥¨¥¹¥ȤÎή¤ì¤òÀ©¸椹¤뤳¤ȤǤ¹¡£Via: ¥إåÀ¹ԤÎ - ÀâÌÀ¤Ï RFC 2616 (HTTP/1.1) - ¤Î 14.45 Àá¤òÆɤó¤Ǥ¯¤À¤µ¤¤¡£

    - -
      -
    • ¥ǥե©¥ë¥ȤÎ Off ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¤ȡ¢ÆÃÊ̤ʽèÍý¤Ï - ¹Ԥʤï¤ì¤ޤ»¤󡣥ꥯ¥¨¥¹¥Ȥä¥ê¥ץ饤¤Ë Via: ¥إåÀ¤¬¤¢¤ì¤С¢ - Êѹ¹¤µ¤줺¤ˤ½¤ΤޤÞÅϤ·¤ޤ¹¡£
    • - -
    • On ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ì¤С¢³ƥꥯ¥¨¥¹¥Ȥȥê¥ץ饤¤Ë - Via: ¹Ԥ¬Äɲ䵤ì¤ޤ¹¡£
    • - -
    • Full ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ì¤С¢Via: ¥إåÀ¤Ï - ¥³¥á¥ó¥ÈÉôʬ¤Ë Apache ¥µ¡¼¥ФΥС¼¥¸¥ç¥ó¤â´ޤà¤褦¤ˤʤê¤ޤ¹¡£
    • - -
    • Block ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ì¤С¢¤¹¤٤ƤΥץí¥­¥·¥ꥯ¥¨¥¹¥Ȥ«¤é - Via: ¥إåÀ¤¬¼è¤ê½ü¤«¤ì¤ޤ¹¡£¿·¤¿¤Ë Via: ¤¬ - À¸À®¤µ¤ì¤뤳¤ȤϤ¢¤ê¤ޤ»¤ó¡£
    • -
    - -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy.html.ja.utf8 b/docs/manual/mod/mod_proxy.html.ja.utf8 new file mode 100644 index 00000000000..001361dd292 --- /dev/null +++ b/docs/manual/mod/mod_proxy.html.ja.utf8 @@ -0,0 +1,1711 @@ + + + + + +mod_proxy - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_proxy

    +
    +

    翻訳済み言語:  en  | + fr  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:HTTP/1.1 プロキシ/ゲートウェイサーバ
    ステータス:Extension
    モジュール識別子:proxy_module
    ソースファイル:mod_proxy.c
    +

    概要

    + +

    警告

    +

    サーバを安全にするまで ProxyRequests は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    + +

    このモジュールは Apache のプロキシ/ゲートウェイ機能を実装しています。 + AJP13 (Apache JServe Protocol version 1.3), + FTP, CONNECT (SSL 用), + HTTP/0.9, HTTP/1.0, HTTP/1.1 + のプロキシ機能を実装しています。これらのプロトコルやその他のプロトコル用の + プロキシ機能を持った、他のモジュールに接続するようにも設定できます。

    + +

    Apache のプロキシ機能は mod_proxy の他に、 + いくつかのモジュールに分割されています: + mod_proxy_http, mod_proxy_ftp, + mod_proxy_ajp, mod_proxy_balancer, + mod_proxy_connect です。ですから、 + 特定のプロキシの機能を使いたい場合は、mod_proxy と + 該当するモジュールをサーバに (コンパイル時に静的に行なうか + LoadModule で動的に読み込むかして) + 組み込む必要があります。

    + +

    これに加えて、他のモジュールによって拡張機能が提供されています。 + キャッシュは mod_cache と関連モジュールで + 提供されています。SSL/TLS で遠隔サーバに接続する機能は + mod_ssl の SSLProxy* ディレクティブで + 提供されています。これらの機能を利用するためには、該当するモジュールを + 組み込んで設定しなければなりません。

    +
    + +
    top
    +
    +

    フォワードプロキシとリバースプロキシ/ゲートウェイ

    +

    Apache は フォワード プロキシとしても、 + リバース プロキシ (別名 ゲートウェイ) としても設定できます。

    + +

    通常の フォワードプロキシ はクライアントと + オリジンサーバ (訳注: コンテンツ生成元のサーバ) + の間に位置する中間サーバです。 + オリジンサーバからコンテンツを取得するために、クライアントは + 行き先をオリジンサーバに指定したリクエストをプロキシに送ります。 + プロキシはオリジンサーバからコンテンツを受け取り、 + 取得したコンテンツをクライアントに返します。 + クライアントがフォワードプロキシ経由で他のサイトにアクセスするには、 + 特別にそのための設定をしなければなりません。

    + +

    フォワードプロキシの一般的な使用方法は、ファイアウォールによって + 制限されている内部のクライアントに、インターネットへのアクセスを + 提供するものです。フォワードプロキシはネットワークの使用量を + 減らすために (mod_cache で提供されている) + キャッシュ機能を用いることもできます。

    + +

    フォワードプロキシは ProxyRequests ディレクティブで + 有効になります。フォワードプロキシを使うと、クライアントは本当の身元を + 隠して任意のサイトにアクセスできるようになります。このため、フォワードプロキシを + 有効にする前に、承認されたクライアントのみがプロキシにアクセスできるように + サーバを安全にすることが重要です。

    + +

    一方 リバースプロキシ (ゲートウェイ) は、 + クライアントから普通のウェブサーバのように見えます。 + クライアント側に特別な設定は必要ありません。 + クライアントはリバースプロキシの名前空間内のコンテンツに対して通常どおりの + リクエストを行ないます。リバースプロキシはリクエストをどこに送れば良いかを判定し、 + あたかも自分自身がオリジンサーバであったかのようにクライアントに + コンテンツを返します。

    + +

    リバースプロキシのよくある利用方法は、インターネットユーザに + ファイアウォールの中にあるサーバにアクセスさせる場合です。 + リバースプロキシは複数のバックエンドサーバへ負荷分散をするために + 使ったり、遅いバックエンドエンドサーバのためにキャッシュ機能を提供したり + するためにも使えます。また、リバースプロキシは複数のサーバを + 同じ URL 空間にまとめるために使うこともできます。

    + +

    リバースプロキシは ProxyPass ディレクティブや + RewriteRule ディレクティブの + [P] フラグを使うことで有効になります。リバースプロキシの + 設定のために ProxyRequests を設定する必要は + ありません。

    +
    top
    +
    +

    基本の例

    + +

    以下の例は手始めの簡単な例です。個々のディレクティブの意味は + それぞれの説明をお読みください。

    + +

    またキャッシュ機能を有効にしたい場合は、mod_cache + の説明を読んでください。

    + +

    リバースプロキシ

    + ProxyPass /foo http://foo.example.com/bar
    + ProxyPassReverse /foo http://foo.example.com/bar +

    + +

    フォワードプロキシ

    + ProxyRequests On
    + ProxyVia On
    +
    + <Proxy *>
    + + Order deny,allow
    + Deny from all
    + Allow from internal.example.com
    +
    + </Proxy> +

    + +
    top
    +
    +

    ワーカー

    +

    プロキシは ワーカー と呼ばれるオブジェクトで + オリジンサーバとの通信パラメータの設定を管理します。 + ふたつの組み込みワーカーが存在します。デフォルトのフォワードプロキシワーカーと + デフォルトのリバースプロキシワーカーです。 + 追加のワーカーを明示的に設定可能です。

    + +

    ふたつのデフォルトワーカーは固定の設定を持ちます。 + リクエストが他のワーカーにマッチしない場合に使われます。 + これらは HTTP のキープアライブもコネクションプーリングも使いません。 + オリジンサーバへの TCP 接続はリクエストのたびに接続と切断をします。

    + +

    明示的に設定するワーカーは、URL で識別されます。 + 通常、ProxyPass + または ProxyPassMatch + をリバースプロキシ設定に使うことで、これらのワーカーを生成および設定します:

    + +

    + ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30 +

    + +

    上記はオリジンサーバの http://backend.example.com + の URL に関連するワーカーを生成します。ワーカーは指定したタイムアウト値を持ちます。 + フォワードプロキシで使われる時、ワーカーは一般に + ProxySet ディレクティブで + 定義します:

    + +

    + ProxySet http://backend.example.com connectiontimeout=5 timeout=30 +

    + +

    または、別の方法として Proxy + と ProxySetでも定義できます:

    + +

    + <Proxy http://backend.example.com>
    + + ProxySet connectiontimeout=5 timeout=30 + + </Proxy> +

    + +

    フォワードモードで明示的に設定したワーカーを使うのは、あまり一般的ではありません。 + なぜなら、通常フォワードプロキシは多くの異なるオリジンサーバと通信するからです。 + もし一部のオリジンサーバを頻繁に利用するなら、それらに対して + 明示的にワーカーを生成するのは有用です。明示的に設定したワーカーは、 + それ自体はフォワードプロキシかリバースプロキシかのコンセプトを持ちません。 + それらはオリジンサーバと通信する共通のコンセプトを抱えています。 + リバースプロキシで使うために ProxyPass + で生成したワーカーは、オリジンサーバへの URL がワーカーの URL にマッチすれば + いつでもフォワードプロキシとして使えます。これは、逆も成り立ちます。

    + +

    ワーカーを識別する URL はそのオリジンサーバの URL です。 + URL は指定したパス部分も含みます:

    + +

    + ProxyPass /examples http://backend.example.com/examples
    + ProxyPass /docs http://backend.example.com/docs +

    + +

    この例はふたつの異なるワーカーを定義しています。 + それぞれ別のコネクションプールと設定を使います。

    + +

    ワーカーの共有

    +

    もしワーカーの URL に重なりがあれば、ワーカーの共有が起きます。 + 重なりとは、ワーカーの URL が、設定ファイル内で後から定義した + 別のワーカーの URL の先頭文字列と部分一致することです。 + 次の例で

    + +

    + ProxyPass /apps http://backend.example.com/ timeout=60
    + ProxyPass /examples http://backend.example.com/examples timeout=10 +

    + +

    ふたつめのワーカーは実際には生成されません。 + その代わり、ひとつめのワーカーを使います。この利点は、ただひとつの + コネクションプールで済む点です。このため、コネクションをより頻繁に再利用できます。 + 後ろのワーカーに明示的に書いた設定のすべてのパラメータと一部の設定のデフォルト値は、 + 最初のワーカーに書いた設定を上書きするのを注意してください。 + これは警告としてログに残ります。上記の例で言えば、/apps + の URL に対するタイムアウト値は、結果として 60 ではなく + 10になるのです。

    + +

    もしワーカーの共有を避けたければ、ワーカーの定義を URL の長さでソートしてください。 + そして、長い URL から並べてください。もしワーカーの共有を最大限にしたいなら、 + 逆順に並べます。ProxyPass + ディレクティブの並びについて、関連する警告も見てください。

    + +
    + +

    明示的に設定するワーカーにはふたつの種類があります: + 直接のワーカー と バランサー (負荷分散) ワーカー です。 + これらは後ほど ProxyPass + ディレクティブの中で説明する重要な設定パラメータを数多くサポートします。 + 同じパラメータは ProxySet + を使っても設定可能です。

    + +

    直接のワーカーで利用できるパラメータはプロトコルに依存します。 + プロトコルはオリジンサーバの URL で指定されます。 + 利用可能なプロトコルは ajp, + ftp, http, scgi です。

    + +

    バランサーワーカーは仮想ワーカーです。直接のワーカーを + リクエストを実際に処理するメンバーとして使います。 + それぞれのバランサーは複数のメンバーを持ちえます。 + リクエストを処理する時、設定した負荷分散のアルゴリズムにもとづき + メンバーのひとつを選択します。

    + +

    ワーカーの URL のプロトコルスキームに balancer + を使うと、バランサワーカーが生成されます。 + バランサーの URL が、バランサワーカーを一意に識別します。 + BalancerMember + を使って、バランサーにメンバーを追加します。

    + +
    top
    +
    +

    プロキシへのアクセス制御

    +

    プロキシへのアクセスは以下のように <Proxy> コンテナの中に + ディレクティブを書くことで制御できます:

    + +

    + <Proxy *>
    + + Order Deny,Allow
    + Deny from all
    + Allow from 192.168.0
    +
    + </Proxy> +

    + +

    アクセス制御のためのディレクティブのより詳しい情報は + mod_authz_host をお読みください。

    + +

    (ProxyRequests ディレクティブを + 使って) フォワードプロキシを設定している場合は、厳しくアクセス + 制限を行なうことが非常に大切です。そうしないと、任意のクライアントが + 身元を明かすことなく任意のホストにアクセスするためにプロキシサーバを使うことが + できてしまいます。これはあなた自身のネットワークにとっても、インターネット + 全体にとっても危険なことです。(ProxyRequests Off にして + ProxyPass ディレクティブを使って) + リバースプロキシを使っている場合には、クライアントはあなたが明示的に + 設定したホストにしかアクセスできないため、フォワードプロキシのとき + ほどアクセス制御に力を注がなくても大丈夫です。

    + +
    top
    +
    +

    遅い起動

    +

    ProxyBlock ディレクティブを使っている場合、 + 後に行うマッチ判定のため、起動時にホストの名前解決をして + IP アドレスをキャッシュします。ホスト名の名前解決の + 速さによっては、数秒 (かそれ以上) かかるかもしれません。

    +
    top
    +
    +

    イントラネットプロキシ

    +

    イントラネットにある Apache プロキシサーバは外部へのリクエストを + 会社のファイアウォールを通して送らなければなりません。(このためには + 個々の scheme についてそれぞれ、ファイアウォールの + プロキシにフォワードされるように + ProxyRemote ディレクティブを + 設定してください)。しかしイントラネット内のリソースにアクセスするときは、 + ファイアウォールを通さないでもアクセスできます。 + どのホストがイントラネットに属し、直接アクセスすべきかを指定するには、 + NoProxy ディレクティブが + 役に立ちます。

    + +

    イントラネット内のユーザは WWW のリクエストでローカルドメインを + 省略することがよくあります。http://somehost.example.com/ + というリクエストの代わりに "http://somehost/" をリクエストしたりします。 + このようなリクエストを受け付け、サーバに設定されているローカルドメインが + 暗黙のうちに使われていると解釈して、単純にリクエストを処理するものも + 商用プロキシサーバの中にはあります。 + サーバが プロキシのサービス用に設定されていて + ProxyDomain ディレクティブが + 使用された場合には、Apache はクライアントにリダイレクト応答を送って、 + 正しい、完全な (訳注: fully qualified) + サーバのアドレスに送ることができます。このように + リダイレクトすると、ユーザのブックマークが正しい完全なホスト名を含む + ことにもなるため、より好ましい方法と言えるでしょう。

    +
    top
    +
    +

    プロトコルの調整

    +

    Keepalive や HTTP/1.1 を適切に実装していないオリジンサーバに対して + mod_proxy がリクエストを送信する場合、 + HTTP/1.0 を使って keepalive を無しにしてリクエストを送るようにする 環境変数が二つあります。これらは SetEnv ディレクティブで設定します。

    + +

    force-proxy-request-1.0 と proxy-nokeepalive + がその環境変数です。

    + +

    + <Location /buggyappserver/>
    + + ProxyPass http://buggyappserver:7001/foo/
    + SetEnv force-proxy-request-1.0 1
    + SetEnv proxy-nokeepalive 1
    +
    + </Location> +

    + +
    top
    +
    +

    リクエストボディ

    + +

    POST メソッドなどのリクエストには、リクエストボディがあります。 + HTTP プロトコル仕様によると、ボディのあるリクエストは chunked + 転送を使うか、Content-Length + ヘッダを送信しなければなりません。 + このようなリクエストをオリジンサーバに送信する場合、 + mod_proxy_http は常に Content-Length + を送ろうと試みます。しかし、ボディが大きく、オリジナルのリクエストで + chunked 転送が使われている場合、上流へのリクエストに + chunked 転送も使われます。 + この挙動は 環境変数で制御できます。 + proxy-sendcl を設定すると、 + 常に Content-Length を送り、最大限の互換性を確保します。 + 逆に proxy-sendchunked を設定すると、 + chunked エンコードを使ってリソース消費を抑えます。

    + +
    top
    +
    +

    リバースプロキシのリクエストヘッダ

    + +

    リバースプロキシとして振る舞う時 (例えば、ProxyPass ディレクティブを使う時) 、 + mod_proxy_http は、オリジンサーバに情報を渡すために + いくつかのリクエストヘッダを追加します。これらのヘッダは以下になります。

    + +
    +
    X-Forwarded-For
    +
    クライアントの IP アドレス。
    +
    X-Forwarded-Host
    +
    オリジナルのホスト名。クライアントが Host + リクエストヘッダで渡す。
    +
    X-Forwarded-Server
    +
    プロキシサーバのホスト名。
    +
    + +

    オリジンサーバ上でこれらのヘッダを扱う時は注意してください。 + と言うのも、オリジナルのリクエストが既に同じヘッダを持っていると、 + ヘッダが一つ以上の値 (コンマで区切られます) を持つ可能性があるからです。 + 例えば、 オリジンサーバ上でオリジナルのクライアントのIPアドレスをログに + 記録するため、ログフォーマットに %{X-Forwarded-For}i を + 指定したとします。この時、リクエストが複数のプロキシを経由していると、 + 複数のアドレスがログに載る可能性があります。

    + +

    ProxyPreserveHost と + ProxyVia ディレクティブ + も参照してください。これらは他のリクエストヘッダに影響を与えます。

    + +
    +
    top
    +

    AllowCONNECT ディレクティブ

    + + + + + + + +
    説明:プロキシを経由して、どのポートに CONNECT +できるかを指定する
    構文:AllowCONNECT port [port] ...
    デフォルト:AllowCONNECT 443 563
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    AllowCONNECT はプロキシの CONNECT + メソッドが接続を許可するポート番号のリストを指定します。 + 今日のブラウザは、https コネクションが要求されていて、 + HTTP 上でのプロキシによるトンネリングができるときに、 + このメソッドを使います。

    + +

    デフォルトの設定では、https のデフォルトポート (443) と + デフォルトの snews ポート (563) が有効になっています。 + このデフォルトを上書きして、リストに記載したポートにのみ接続を許可したい場合、 + AllowCONNECT ディレクティブを使用します。

    + +

    CONNECT を使用するには、mod_proxy_connect + がサーバに組み込まれていなければならないことに注意してください。

    + +
    +
    top
    +

    BalancerMember ディレクティブ

    + + + + + + + +
    説明:ロードバランサのグループにメンバーを追加
    構文:BalancerMember [balancerurl] url [key=value [key=value ...]]
    コンテキスト:ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    互換性:BalancerMember は Apache 2.2 以降でのみ使用可能
    +

    このディレクティブでロードバランサのグループにメンバを追加します。 + <Proxy balancer://...> ディレクティブのコンテナ + 内で使われることが多く、ProxyPass + ディレクティブと共通のキーバリューペアのパラメータを取ります。

    +

    <Proxy balancer://...> ディレクティブの + コンテナ内に書かない場合のみ、 balancerurl 引数が必要です。 これは + ProxyPass ディレクティブで + バランサを定義した時の URL と同じ働きをします。

    + +
    +
    top
    +

    NoProxy ディレクティブ

    + + + + + + +
    説明:直接接続する ホスト、ドメイン、ネットワーク
    構文:NoProxy host [host] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    このディレクティブはイントラネット中の Apache プロキシサーバにのみ + 有用です。NoProxy ディレクティブは空白区切りで、 + サブネット、IP アドレス、ホスト、ドメインのリストを指定します。 + これらのどれかにマッチするホストへのリクエストは ProxyRemote で設定されたプロキシサーバに + フォワードされず、直接処理されます。

    + +

    例

    + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21 +

    + +

    NoProxy ディレクティブの host 引数は + 以下の種類のどれかです:

    + +
    + +
    Domain
    +
    +

    Domain は先頭にピリオドを書いた部分 DNS ドメイン名です。 + 同一 DNS ドメイン及びゾーン (すなわち、ホスト名の末尾がすべて + Domain で終わっているということ) に属するホストのリストを + 表します)。

    + +

    例

    + .com .apache.org. +

    + +

    Domain を Hostname と区別するために (意味的にも構文的にも。DNS ドメインも + DNS の A レコードを持つことができるのです!)、Domain は + 常にピリオドで始まります。

    + +

    注

    +

    ドメイン名の比較は大文字小文字を区別せずに行なわれ、Domain + は常に DNS ツリーのルートから始まるものとみなされます。ですから、 + 次の二つのドメイン .ExAmple.com と + .example.com. (最後のピリオドに注目) は同一であると + みなされます。ドメインの比較は DNS ルックアップなしで行なわれるため、 + サブネットの比較よりもずっと効率的です。

    +
    + + +
    SubNet
    +
    +

    SubNet は数値形式 (ドットで区切られた四つの数字) の + 部分インターネットアドレスです。後にスラッシュと Subnet + の意味のあるビット数を指定するネットマスクとを続けることができます。 + 共通のネットワークインタフェースを使って到達することのできるサブネットを + 表すために使われます。明示的にネットマスクを指定しない場合は + 最後の省略された (もしくは値が 0 の) 数字がマスクを指定します。 + (この場合は、ネットマスクは 8 ビット単位でしか指定できません。) + 例:

    + +
    +
    192.168 もしくは 192.168.0.0
    +
    サブネット 192.168.0.0 と暗黙の 16 ビット有効なネットマスク + (255.255.0.0 というネットマスクの形式で使われることも + あります)
    +
    192.168.112.0/21
    +
    サブネット192.168.112.0/21 と 21 ビット有効な + ネットマスク (255.255.248.0 という形式で使われることも + あります)
    +
    + +

    特別な場合に、32 ビット有効な SubNet は + IPAddr と同等で、 + 0 ビット有効な SubNet (例えば、0.0.0.0/0) は + すべての IP アドレスにマッチする定数 _Default_ と同じです。

    +
    + + +
    IPAddr
    +
    +

    IPAddr は数値形式 (ドットで区切られた四つの数字) の + 完全インターネットアドレスです。通常はこのアドレスはホストを + 表しますが、必ずしもアドレスに対応する DNS ドメイン名があるわけでは + ありません。

    + +

    例

    + 192.168.123.7 +

    + +

    注

    +

    IPAddr は DNS システムにより解決される必要がないので、 + apache の性能が向上するかもしれません。

    +
    + + +
    Hostname
    +
    +

    Hostname は DNS ドメインサービスにより一つもしくは + 複数の IPAddr に解決可能な + 完全な DNS ドメイン名です。これは (Domain + と違って、説明は上記を参照) 論理的なホストを表し、少くとも一つの + IPAddr (もしくは違う + IPAddr のホストのリスト) に解決 + されなければなりません)。

    + +

    例

    + prep.ai.example.com
    + www.apache.org +

    + +

    注

    +

    多くの場合、Hostname の代わりに IPAddr を指定した方が、DNS ルックアップを + 避けることができるため、効率が良くなります。Apache の名前解決は + ネームサーバへの接続が遅い PPP 上の場合などにかなり時間を取られる + ことがあります。

    +

    Hostname の比較は大文字小文字を区別せずに行なわれ、 + Hostname は常に DNS ツリーのルートから始まるものとみなされます。 + ですから、二つのドメイン WWW.ExAmple.com と + www.example.com. (最後のピリオドに注目) は同一であると + みなされます。

    +
    +
    + +

    参照

    + +
    +
    top
    +

    <Proxy> ディレクティブ

    + + + + + + +
    説明:プロキシされるリソースに適用されるコンテナ
    構文:<Proxy wildcard-url> ...</Proxy>
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    <Proxy> セクション中の + ディレクティブはマッチするプロキシされるコンテンツにのみ適用されます。 + シェル形式のワイルドカードが使えます。

    + +

    例えば、次の設定は yournetwork.example.com の + ホストにのみプロキシサーバを経由したアクセスを許可します:

    + +

    + <Proxy *>
    + + Order Deny,Allow
    + Deny from all
    + Allow from yournetwork.example.com
    +
    + </Proxy> +

    + +

    次の例は example.com の foo ディレクトリの + すべてのファイルに対して、プロキシサーバを通して送られたときには + INCLUDES フィルタを通して送るように設定します:

    + +

    + <Proxy http://example.com/foo/*>
    + + SetOutputFilter INCLUDES
    +
    + </Proxy> +

    + + +

    参照

    + +
    +
    top
    +

    ProxyBadHeader ディレクティブ

    + + + + + + + + +
    説明:応答におかしなヘッダがある場合の扱い方を決める
    構文:ProxyBadHeader IsError|Ignore|StartBody
    デフォルト:ProxyBadHeader IsError
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.0.44 以降で使用可能
    +

    ProxyBadHeader ディレクティブは構文的に + 間違ったレスポンスヘッダ (つまり コロンを含まないもの) を受け取ったときに + mod_proxy がどう振る舞うかを決めます。以下の引数を + 取ることができます:

    + +
    +
    IsError
    +
    リクエストを中止して 502 (Bad Gateway) 応答を返す。 + これがデフォルトの動作です。
    + +
    Ignore
    +
    間違ったヘッダ行をそもそも存在しなかったものとして扱う。
    + +
    StartBody
    +
    間違ったヘッダ行を受け取ったら、ヘッダの読み込みを終了して、 + それ以降の残りをボディとして扱う。これはヘッダとボディの間に空行を入れ忘れて + しまっているような、きちんと動作していないバックエンドサーバがあるときに、 + 問題を回避するのに役に立ちます。
    +
    + +
    +
    top
    +

    ProxyBlock ディレクティブ

    + + + + + + +
    説明:プロキシ接続を禁止する語句、ホスト名、ドメインを指定する
    構文:ProxyBlock *|word|host|domain +[word|host|domain] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    ProxyBlock ディレクティブは空白で区切られた + 語句、ホスト名、ドメインのリストを指定します。サイト名にその語句、ホスト名、 + ドメインを含むサイトへの HTTP、HTTPS、FTP によるドキュメントのリクエストは + プロキシサーバにより ブロックされます。プロキシモジュールは + 起動時にホスト名と思しき項目の IP アドレスを調べ、後のテストのために + キャッシュします。これにより、サーバの起動が少し遅くなるかもしれません。

    + +

    Example

    + ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu +

    + +

    rocky.wotsamattau.edu が IP アドレスで参照されたときでも + マッチします。

    + +

    wotsamattau.edu のマッチには wotsamattau + だけでも十分です。

    + +

    + ProxyBlock * +

    + +

    はすべてのサイトへの接続をブロックすることに注意してください。

    + +
    +
    top
    +

    ProxyDomain ディレクティブ

    + + + + + + +
    説明:プロキシされたリクエストのデフォルトのドメイン名
    構文:ProxyDomain Domain
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    このディレクティブはイントラネット内の Apache プロキシサーバにのみ + 有用です。ProxyDomain ディレクティブは + apache プロキシサーバが属するデフォルトのドメインを指定します。 + ドメイン名の無いリクエストを受けた場合、設定された Domain + が追加された同じホストへのリダイレクト応答が返されます。

    + +

    例

    + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21
    + ProxyDomain .example.com +

    + +
    +
    top
    +

    ProxyErrorOverride ディレクティブ

    + + + + + + + + +
    説明:プロキシされたコンテンツのエラーページを上書きする
    構文:ProxyErrorOverride On|Off
    デフォルト:ProxyErrorOverride Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.0 以降で使用可能
    +

    このディレクティブはリバースプロキシを使用していて、 + エンドユーザに送られるエラーページの外見を共通のものにしたいときに + 有用です。このディレクティブは (mod_include の SSI によって) + インクルードされたファイルがエラーコードを取得して、正しく動作を + するようにもします (デフォルトの動作は、プロキシされたサーバの + エラーページの表示で、このディレクティブを有効にすると SSI のエラー + メッセージを表示します)。

    + +

    このディレクティブは informational (1xx), 成功 (2xx), + リダイレクト (3xx) ステータスのレスポンス処理には影響しません。

    + +
    +
    top
    +

    ProxyFtpDirCharset ディレクティブ

    + + + + + + + + +
    説明:プロキシされた FTP (の一覧表示) のキャラクタセットを定義
    構文:ProxyFtpDirCharset character set
    デフォルト:ProxyFtpDirCharset ISO-8859-1
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.2.7 以降で使用可能
    +

    ProxyFtpDirCharset ディレクティブは、 + mod_proxy_ftp が HTML 形式で生成する FTP のディレクトリ一覧 + 画面のキャラクタセットを定義します。

    + +
    +
    top
    +

    ProxyIOBufferSize ディレクティブ

    + + + + + + + +
    説明:内部データスループットバッファのサイズを決定する
    構文:ProxyIOBufferSize bytes
    デフォルト:ProxyIOBufferSize 8192
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    ProxyIOBufferSize ディレクティブは入力と + 出力用の一時メモリとして使われる内部バッファのサイズを調整します。 + サイズは 8192 以下でなければなりません。

    + +

    ほとんどすべての場合、この値を変更する理由はありません。

    + +
    +
    top
    +

    <ProxyMatch> ディレクティブ

    + + + + + + +
    説明:正規表現でのマッチによるプロキシリソース用のディレクティブコンテナ
    構文:<ProxyMatch regex> ...</ProxyMatch>
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    <ProxyMatch> は URL のマッチに + 正規表現 を用いることを除けば + <Proxy> ディレクティブと同じです。

    + +

    参照

    + +
    +
    top
    +

    ProxyMaxForwards ディレクティブ

    + + + + + + + + +
    説明:リクエストがフォワードされるプロキシの最大数
    構文:ProxyMaxForwards number
    デフォルト:ProxyMaxForwards -1
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.0 以降で使用可能; Apache 2.2.7でデフォルト動作が変わりました
    +

    ProxyMaxForwards ディレクティブは + リクエストに Max-Forwards ヘッダが指定されていない場合に + リクエストが通過可能なプロキシの最大数を設定します。これは + プロキシの無限ループや DoS 攻撃を防ぐために設定されるかもしれません。

    + +

    例

    + ProxyMaxForwards 15 +

    + +

    ProxyMaxForwards の設定は、HTTP/1.1 (RFC2616) + に違反します。と言うのも、RFC2616 は、クライアントが Max-Forwards + ヘッダをセットしない時、プロキシが Max-Forwards ヘッダを + セットすることを禁じているからです。 + Apache の初期バージョンは常にセットする可能性がありました。 + ProxyMaxForwards に負数 (デフォルト値の -1 も含む) + を指定すると、HTTP/1.1 準拠の動作になります。しかし、これは無限ループの危険性を残します。

    + +
    +
    top
    +

    ProxyPass ディレクティブ

    + + + + + + +
    説明:リモートサーバをローカルサーバの URL 空間にマップする
    構文:ProxyPass [path] !|url [key=value +key=value ...]] [nocanon] [interpolate]
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    +

    このディレクティブはリモートサーバをローカルサーバの名前空間に + マップできるようにします。ローカルサーバは通常の意味でのプロキシと + しては動作せず、リモートサーバのミラーとして振る舞います。 + ローカルサーバはしばしば リバースプロキシ や ゲートウェイ + と呼ばれます。 + path はローカルの仮想パスの名前です。url は + リモートサーバの部分 URL になり、クエリー文字列を含むことはできません。

    + +
    ProxyPass ディレクティブを + 使っているときは ProxyRequests ディレクティブは通常は + off に設定されているべきです。
    + +

    ローカルサーバのアドレスが http://example.com/ であると + します。すると、

    + +

    + ProxyPass /mirror/foo/ http://backend.example.com/ +

    + +

    と設定すると http://example.com/mirror/foo/bar への + リクエストが内部的に http://backend.example.com/bar への + プロキシリクエストに変換されることになります。

    + +
    +

    もし第一引数が / で終端するならば、第二引数も + / で終端すべきです。逆もまた然りで、第一引数が終端しないならば、 + 第二引数も終端すべきではありません。 + これに反すると、バックエンドサーバ向けに変換されたリクエストは + 必要なスラッシュを欠く可能性があり、バックエンドサーバは期待する結果を返しません。 +

    +
    + +

    サブディレクトリをリバースプロキシしたくないときに ! は + 役に立ちます。例えば、

    + +

    + ProxyPass /mirror/foo/i !
    + ProxyPass /mirror/foo http://backend.example.com +

    + +

    は /mirror/foo/i を 除く + /mirror/foo へのすべてのリクエストを + backend.example.com にプロキシします。

    + +

    ProxyPass ディレクティブの順序

    +

    ProxyPass と + ProxyPassMatch のルールの + 設定は設定ファイル中の順序どおりにチェックされます。 + 最初にマッチしたルールが勝ちます。このため通常は、 + マッチが重なる ProxyPass + ルールは、長い URL が先になるように並べるべきです。 + そうしないと、後に書かれた長い URL にマッチするルールが、 + 先に書かれた短い URL の先頭の部分にマッチしたルールで隠される可能性があります。 + ワーカーの共有とも多少の関係があることにも注意してください。

    + +

    同じ理由で、否定処理も一般的な ProxyPass + ディレクティブの 前に 書くべきです。

    + +
    + +

    Apache HTTP サーバ 2.1 以降、バックエンドサーバとの接続に + プールされたコネクションを使えるようになりました。 + 要求に応じて生成されたコネクションは将来の使用のためにプール内に維持されます。 + プールサイズとその他の設定の制限は ProxyPass + ディレクティブに key=value パラメータで設定します。 + パラメータは後述する表に示します。

    + +

    デフォルトで、mod_proxy は Web サーバの子プロセスが同時に使いうる + 最大数のコネクションを許し維持するようにします。 + この数をデフォルトから減らすには max パラメータを使ってください。 + 生存期間を設定するには ttl パラメータを使ってください。 + ttl 秒を越えて使われていないコネクションは切断されます。 + バックエンドサーバのキープアライブがタイムアウトして、切断されようとしている + コネクションが使われることを防ぐために ttl を使えます。

    + +

    コネクションプールは Web サーバの子プロセスごとに維持されます。 + max やその他の設定は、すべての子プロセスの間で調整はされません。 + ただし、設定により、ただひとつの子プロセスに設定を委ねた場合や + MPM 設計によってはこの限りではありません。

    + +

    例

    + ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300 +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    パラメータデフォルト値説明
    min0コネクションプール内で実際の接続に関連していないエントリの最小数です。 + デフォルト値から変更する必要があるのは、バックエンドとの接続に必要な + ヒープメモリを事前に割り当てるか維持しなければいけない特別な状況のみです。
    max1...nバックエンドサーバとの接続数の最大値です。 + デフォルト値は、使用している MPM のプロセスあたりのスレッド数になっています。 + Prefork MPM では常に 1 で、他の MPM では ThreadsPerChild + ディレクティブで調節できます。
    smaxmaxもしコネクションプール内の接続中エントリが ttl パラメータ + で設定した生存期間より長く未使用のままであれば、 + この指定値を越える分のエントリを解放します。 + もしエントリが関連するコネクションを持てば、接続を閉じます。 + デフォルト値から変更する必要があるとすれば、 + コネクションが生存期間を越えてしまった時に、 + コネクションプール内の該当エントリの解放とコネクションの切断を + より積極的に必要とする特別な場合のみです。
    acquire-設定すると、コネクションプールからフリーのコネクションを取得するために + 待機する待ち時間 (ミリ秒単位) の最大値になります。フリーのコネクションがプールになかった場合は、 + SERVER_BUSY ステータスをクライアントに返します。 +
    connectiontimeouttimeout接続タイムアウトを秒で指定します。 + バックエンドに接続を完了するまでの Apache の待ち時間です。 + 値の最後に ms を書くと、タイムアウトの単位をミリ秒にできます。 +
    disablereuseOff使用後すぐに mod_proxy がバックエンドとの接続を切断してほしい時は、 + このパラメータを有効にすべきです。そうすることで、バックエンドとの + 永続的な接続とプーリングを無効にできます。 + これはいくつかの状況下で役に立ちます。例えば、Apache とバックエンドサーバ + の間にファイアウォールが存在し (プロトコルは問わないとします)、黙って + 接続を切られる場合や、あるいは、バックエンドサーバ自体が DNS で + ラウンドロビンされている場合などです。コネクションプーリングによる再利用を + 無効にするには、このパラメータ値を On にしてください。 +
    flushpacketsoffプロキシモジュールが "chunk" ごとに出力データを自動的に強制送信(フラッシュ) + するかを指定します。 'off' は必要な時だけ強制送信します。 + 'on' はそれぞれの "chunk" データごとに強制送信します。 'auto' は、一定時間待機し、 + 'flushwait' で指定したミリ秒の間、入力データが無ければ強制送信します。 + 現在、このパラメータは AJP でのみ意味があります。 +
    flushwait10'flushpackets' パラメータの値が 'auto' の場合、出力データを強制送信する前に、 + 次の入力をどのぐらい待つかをミリ秒単位で指定します。 +
    keepaliveOff

    バックエンドサーバと Apache の間にファイアーウォールがある場合には、 + このパラメータを使ってください。ファイアウォールは往々にして、 + 非活動状態のコネクションを落とそうとします。 + このフラグは OS に指示して、KEEP_ALIVE メッセージを非活動状態の + コネクションでも送るようにします。これによってファイアウォールによってコネクションが + 落とされることを防げます。keepalive を有効にするには、このプロパティを + On にしてください。

    +

    初期およびその後の TCP キープアライブの間隔は OS のグローバル設定に依存しますが、 + 2 時間以上にしたほうがよいでしょう。有効性を考えると、 + OS で設定した間隔はファイアウォールで使われる閾値より小さくあるべきです。

    +
    lbset0ワーカーが属するロードバランサのクラスタセットを設定します。 + ロードバランサは、より小さい lbset 値を持つメンバーから使おうとします。 +
    ping0この設定により、Web サーバは ajp13 通信でリクエストを送信する前に + CPING を送るようになります。 + パラメータ値は、CPONG リプライを待つ時間を秒単位で指定します。 + この機能は、ハングしたり高負荷状態の Tomcat に起因する問題を回避するために + 追加されました。 また、ajp13 側に ping/pong 機能のサポートが必要です。 + Tomcat は 3.3.2 以降, 4.1.28 以降, 5.0.13 以降が ping/pong 機能を実装しています。 + この機能は、通常利用でのネットワークトラフィックを増やす可能性があり、 + 問題になるかもしれません。しかし、クラスタを形成するノードの一部が + ダウンしたり高負荷になった時にはトラフィックを抑制できる可能性があります。 + 現在、この設定は AJP でのみ意味があります。 + 値の最後に ms を書くと、単位をミリ秒にできます。 +
    loadfactor1ワーカーあたりの負荷係数です。BalancerMember で使います。 + 1 から 100 までの数字でそのワーカーに対する正規化された負荷率を指定します。 +
    redirect-ワーカーのリダイレクション経路です。この値は通常は、 + クラスタから安全にノードを取り除けるように動的にセットされます。 + もし設定すると、セッション ID 無しの全てのリクエストは、 + この値と同じルーティングパラメータを持つ + BalancerMember にリダイレクトされます。 +
    retry60コネクションをプーリングするための、リトライのタイムアウトを秒で + 指定します。バックエンドサーバへのコネクションプーリングが失敗した場合は、 + タイムアウトの期間が過ぎるまで、そのサーバにリクエストをフォワードしません。 + この機能を使うと、バックエンドサーバをメンテナンスのためにシャットダウンし、 + 後でオンラインに復帰させるといったことができます。 + 0 を指定すると、失敗したワーカーへ、タイムアウト無しで常にリトライします。 +
    route-ロードバランサで使われた場合のワーカーのルート値。 + ルート値はセッション ID に付加される値です。 +
    status-一文字でワーカーの初期状態を定義します: 'D' は無効 (disabled)、 + 'S' は停止 (stopped)、 'I' はエラー無視 (ignore-errors)、 + 'H' はホットスタンバイ (hot-standby)、 'E' はエラー状態 (error) です。 + '+' を文字の前に書いて有効にするか (これがデフォルト動作です)、 あるいは + '-' を書いて無効にできます。つまり、 'S-E' の指定は、ワーカーを停止状態 + かつ、エラー状態フラグのクリアを意味します。 +
    timeoutProxyTimeoutコネクションタイムアウトを秒で指定します。 + バックエンドからのデータ受信およびバックエンドへのデータ送信の + Apache の待ち時間です。 +
    ttl-非活動状態のコネクションと、関連するコネクションプール内のエントリの + 生存時間を秒で指定します。いったんこの制限に達すると、 + コネクションはふたたび使われることはありません。 + つまり、コネクションは一定時間後に閉じられます。 +
    + +

    もし ProxyPass ディレクティブのスキームが + balancer:// で始まる場合 (例えば balancer://cluster/、 + パス情報は無視されます)、バックエンドのサーバと実際には通信しない + 仮想ワーカーが生成されます。通信しない代わりに、このワーカーは幾つかの + "本物の" ワーカーの管理をつかさどります。 + この場合、いくつかの特殊パラメータを、この仮想ワーカーに対して設定できます。 + ロードバランス動作のより詳しい情報は、mod_proxy_balancer + を参照してください。 +

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    パラメータデフォルト値説明
    lbmethodbyrequestsBalancer のロードバランス方法。使用するロードバランスの + スケジューリング方法を選びます。処理したリクエストの数で重み付けする + byrequests か、転送量のバイト数で重み付けする + bytraffic か、待機中のリクエスト数で振り分ける + bybusyness を設定できます (Apache HTTP サーバ 2.2.10 以降)。 + デフォルトはbyrequests です。 +
    maxattemptsワーカーの数よりひとつ少ない数。あるいはワーカーがひとつであれば1フェイルオーバーを試みる最大の回数を指定します。 +
    nofailoverOffOn になっていると、ワーカーがエラーを起こしたり + 無効になっている場合にセッションが切れます。 + バックエンドサーバがセッションレプリケーションをサポートしていない場合は、 + On にしてください。 +
    stickysession-バランサーのスティッキーセッション名です。通常はこの値は JSESSIONID + や PHPSESSIONID といったものになりますが、この値は + セッションをサポートするバックエンドのアプリケーションサーバに依存します。 + バックエンドのアプリケーションサーバが、クッキーやURLエンコードID + に異なるセッション名を使う場合(サーブレットコンテナのように)、 + | 文字でふたつの名前を区切ってください。 + 最初の名前がクッキー用で、二番目がURLパス用です。 +
    scolonpathdelimOffOn にセットすると、セミコロン文字 ';' をスティッキーセッション + の別の区切り文字として使えるようになります。 + これは主に mod_jk の動作に合わせるために使います。例えば、 + JSESSIONID=6736bcf34;foo=aabfa のような指定です。 +
    timeout0バランサーのタイムアウトを秒で指定します。 + この値を設定すると、フリーのワーカーを取得するまでの最大待機時間になります。 + デフォルトでは待機しません。 +
    failonstatus-ひとつ、あるいはコンマ区切りの複数の HTTP ステータスコードです。 + この値を設定すると、列挙したステータスコードのどれかをバックエンドが返した時、 + そのワーカーをエラー状態にします。ワーカーのエラーからの回復は + 他のワーカーエラーと同じように動作します。 + Apache HTTP サーバ 2.2.17 以降で使用可能です。 +
    +

    バランサーの設定例

    +

    + ProxyPass /special-area http://special.example.com smax=5 max=10
    + ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    + <Proxy balancer://mycluster>
    + + BalancerMember ajp://1.2.3.4:8009
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=20
    + # Less powerful server, don't send as many requests there,
    + BalancerMember ajp://1.2.3.6:8009 loadfactor=5
    +
    + </Proxy> +

    + +

    ホットスタンバイの設定例です。他のメンバーが利用できない場合のみ + 使われます。

    +

    + ProxyPass / balancer://hotcluster/
    + <Proxy balancer://hotcluster>
    + + BalancerMember ajp://1.2.3.4:8009 loadfactor=1
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=2
    + # The below is the hot standby
    + BalancerMember ajp://1.2.3.6:8009 status=+H
    + ProxySet lbmethod=bytraffic +
    + </Proxy> +

    + +

    通常、mod_proxy は ProxyPass した URL を正規化します。 + しかし、これによりバックエンドの互換性に問題が生じることがあります。 + 特に、PATH_INFO を使っている場合に起きがちです。 + nocanon オプションは正規化を抑制し、URL のパスをそのまま ("raw") + バックエンドに伝えます。これがバックエンドのセキュリティに影響を与える可能性に + 注意してください。と言うのも、プロキシによって提供されていた、 + URL ベースの攻撃への通常の一定の防御を無くすことになるからです。

    + +

    オプショナルな interpolate キーワード (httpd 2.2.9 以降で利用可能) + を ProxyPassInterpolateEnv ディレクティブと + 一緒に使うと、${VARNAME} 形式で、 ProxyPass 設定に環境変数を + 使えるようになります。この時、標準的な CGI 由来の環境変数の多くは + 置換に使えないことに注意してください。そのため、複雑なルールの記述のためには、 + mod_rewrite に頼ることになるでしょう。

    + +

    <Location> セクションの中で使われた場合、最初の引数は + 省略され、ローカルディレクトリは <Location> から取得されます。 + 同じことは <LocationMatch> + セクション内でも起きます。しかし、ProxyPass は正規表現を解釈しないので、 + この状況では代わりに ProxyPassMatch を使う必要があります。

    + +

    このディレクティブは <Directory> や <Files> セクション内では使えません。

    + +

    より柔軟なリバースプロキシの設定が必要な場合は、[P] + フラグ付きの RewriteRule + ディレクティブを参照してください。

    + + +
    +
    top
    +

    ProxyPassInterpolateEnv ディレクティブ

    + + + + + + + + +
    説明:リバースプロキシ設定内での環境変数の使用を有効にする
    構文:ProxyPassInterpolateEnv On|Off
    デフォルト:ProxyPassInterpolateEnv Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.2.9 以降で使用可能
    +

    ProxyPass, ProxyPassReverse, + ProxyPassReverseCookieDomain, + ProxyPassReverseCookiePath の + interpolate 引数と一緒にこのディレクティブを使うと、 + 環境変数を使ってリバースプロキシを動的に設定できます。 + mod_rewrite など他のモジュールで環境変数を設定する想定です。 + ProxyPass ディレクティブ, + ProxyPassReverse ディレクティブ, + ProxyPassReverseCookieDomain ディレクティブ, + ProxyPassReverseCookiePath ディレクティブ + の動作に影響を与え、これらの設定ディレクティブ内の ${varname} の文字列を + 環境変数 varname の値で置き換えます。 + (interpolate オプションがセットされていれば)

    +

    必要にならない限り、このディレクティブは無効にしてください。 + (サーバのパフォーマンスのため)

    + +
    +
    top
    +

    ProxyPassMatch ディレクティブ

    + + + + + + + +
    説明:正規表現を使ってリモートサーバをローカルサーバの URL 空間にマップする
    構文:ProxyPassMatch [regex] !|url [key=value + [key=value ...]]
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.2.5 以降で使用可能
    +

    単純な文字列前方一致ではなく正規表現を用いることを除いて、このディレクティブは + ProxyPass と同じです。 + 指定した正規表現で url に対してマッチを試みます。 + マッチすると、サーバはマッチした丸括弧部分を前方参照の置換に使い、新しい url + にします。

    + +

    ローカルサーバのアドレスが http://example.com/ だとします; + すると

    + +

    + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1 +

    + +

    は、ローカルの http://example.com/foo/bar.gif へのリクエストを + 内部的に http://backend.example.com/foo/bar.gif へのプロキシリクエスト + に変換します。

    +

    注意

    +

    URL 引数は正規表現による置換の 前 でも (当然、置換後でも)、 + URL として解釈できなければいけません。これは使えるマッチに制約をもたらします。 + 例えば、上記の例で

    +

    + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1 +

    +

    と書いたとします。これはサーバ起動時にシンタックスエラーを起こすでしょう。 + これはバグです (ASF bugzilla の PR 46665)。 + 回避策としてマッチ判定を書き換える必要があります:

    +

    + ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1 +

    +
    + +

    サブディレクトリをリバースプロキシしたくないときに ! は + 役に立ちます。

    + +

    <LocationMatch> セクションの中で使われた場合は、 + 最初の引数は省略され、正規表現は <LocationMatch> から取得されます。

    + +

    より柔軟なリバースプロキシの設定が必要な場合は、[P] + フラグ付きの RewriteRule + ディレクティブを参照してください。

    + +
    +

    セキュリティの警告

    +

    ルールの対象 URL の生成には注意してください。あなたのサーバがプロキシ + として振る舞う可能性のある URL に対して、クライアントへの影響があります。 + これによるセキュリティインパクトを考慮してください。URL のうち、スキームとホスト名 + の部分をそれぞれ確実に固定してください。そうでないと、クライアントに不当な影響を + 与えかねません。

    +
    + +
    +
    top
    +

    ProxyPassReverse ディレクティブ

    + + + + + + +
    説明:リバースプロキシされたサーバから送られた HTTP レスポンスヘッダの +URL を調整する
    構文:ProxyPassReverse [path] url +[interpolate]
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    +

    このディレクティブは Apache に HTTP リダイレクト応答の + Location, Content-Location, URI + ヘッダの調整をさせます。これは、Apache がリバースプロキシ (ゲートウェイ) + として使われているときに、リバースプロキシを通らないアクセスを防止するのに重要です。 + このようなアクセスは、リバースプロキシの背後にいるバックエンドサーバへの + HTTP リダイレクトが原因で起きます。

    + +

    上記の特別なリダイレクト用の HTTP レスポンスヘッダのみが書き換えられます。 + Apache は他のレスポンスヘッダを書き換えたり、HTML ページの中の URL 参照を + 書き換えたりすることはありません。つまり、リバースプロキシされた HTML ページ内に + 絶対 URL 参照が存在すると、プロキシを通さずにアクセスする可能性があります。 + HTML の中を見て、URL 参照を書き換えるモジュールに Nick Kew さんの mod_proxy_html があります。

    + +

    path はローカル仮想パスの名前です。url は + リモートサーバの部分 URL です。これらは ProxyPass ディレクティブと同様です。

    + +

    例えば、ローカルサーバのアドレスが http://example.com/ + だとします。すると

    + +

    + ProxyPass /mirror/foo/ http://backend.example.com/
    + ProxyPassReverse /mirror/foo/ http://backend.example.com/
    + ProxyPassReverseCookieDomain backend.example.com public.example.com
    + ProxyPassReverseCookiePath / /mirror/foo/ +

    + +

    という設定をすると、http://example.com/mirror/foo/bar + へのローカルリクエストが http://backend.example.com/bar + へのプロキシリクエストに内部で変換されるだけではありません + (これは ProxyPass の機能です)。backend.example.com + サーバが送るリダイレクトの面倒もみます。http://backend.example.com/bar + が http://backend.example.com/quux にリダイレクトされたとき、 + Apache は HTTP リダイレクト応答をクライアントに送る前に、リダイレクト先を + http://example.com/mirror/foo/quux に変更します。 + URL を構成するのに使われるホスト名は UseCanonicalName の設定に応じて選択されることに + 注意してください。

    + +

    ProxyPassReverse ディレクティブは + 対応する ProxyPass ディレクティブと独立して利用できるので、 + mod_rewrite のプロキシ通過機能 + (RewriteRule ... [P]) と併せて使用することもできます。

    + +

    オプショナルな interpolate キーワード (httpd 2.2.9 以降で利用可能) + を ProxyPassInterpolateEnv ディレクティブと + 一緒に使うと、${VARNAME} 形式で、 ProxyPassReverse 設定に環境変数を + 使えるようになります。

    + +

    <Location> セクションの中で使われた場合は、 + 最初の引数は省略され、ローカルディレクトリは <Location> から取得されます。 + 同じことは <LocationMatch> セクション内でも起きますが、 + おそらく意図どおりに動きません。と言うのも、ProxyPassReverse + が正規表現をそのまま文字列でパスとして解釈しようとするからです。 + もしこのような状況で必要なら、セクションの外で ProxyPassReverse + を指定するか、あるいは別の <Location> セクション内で指定してください。

    + +

    このディレクティブは <Directory> や <Files> セクション内では使えません。

    + +
    +
    top
    +

    ProxyPassReverseCookieDomain ディレクティブ

    + + + + + + +
    説明:リバースプロキシサーバからの Set-Cookie ヘッダの Domain 文字列を +調整する
    構文:ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    +

    使用法は基本的に +ProxyPassReverse と同じですが、 +ヘッダの URL の代わりに Set-Cookie ヘッダ内の +domain 文字列を書き換えます。

    + +
    +
    top
    +

    ProxyPassReverseCookiePath ディレクティブ

    + + + + + + +
    説明:リバースプロキシサーバからの Set-Cookie ヘッダの Path 文字列を +調整する
    構文:ProxyPassReverseCookiePath internal-path +public-path [interpolate]
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    +

    +バックエンドの URL パスがリバースプロキシ上の公開パスにマップされる状況で、 +ProxyPassReverse といっしょに +役立ちます。このディレクティブは Set-Cookie ヘッダ内の +path 文字列を書き換えます。もしクッキーのパスが +internal-path に先頭マッチすれば、クッキーのパスは +public-path に置換されます。 +

    +ProxyPassReverse +での例を使うと、ディレクティブ:

    +

    + ProxyPassReverseCookiePath / /mirror/foo/ +

    +

    は、バックエンドのパスが / (あるいは /example +あるいは実際のところなんでも) のクッキーを /mirror/foo/ +に書き換えます。 +

    + +
    +
    top
    +

    ProxyPreserveHost ディレクティブ

    + + + + + + + + +
    説明:プロキシリクエストに、受け付けた Host HTTP ヘッダを使う
    構文:ProxyPreserveHost On|Off
    デフォルト:ProxyPreserveHost Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.0.31 以降で使用可能
    +

    このオプションが有効になっている場合、ProxyPass + で指定したホスト名の代わりに、受け付けたリクエストの Host: 行を + プロキシ先のホストに送ります。

    + +

    このオプションは通常は Off に設定してください。 + ほとんどの場合、これは大量の名前ベースのバーチャルホスティングを行なっていて、 + 元々の Host ヘッダをバックエンドサーバが解釈する必要のあるときのような、 + 特別な設定が必要な場合にのみ有用です。

    + +
    +
    top
    +

    ProxyReceiveBufferSize ディレクティブ

    + + + + + + + +
    説明:プロキシされる HTTP と FTP 接続のためのネットワークバッファサイズ
    構文:ProxyReceiveBufferSize bytes
    デフォルト:ProxyReceiveBufferSize 0
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    ProxyReceiveBufferSize ディレクティブは + スループットを上げるために明示的に (TCP/IP) ネットワークバッファのサイズを + 設定します。値は 512 以上か、システムのデフォルトのバッファ + サイズを意味する 0 でなければなりません。

    + +

    例

    + ProxyReceiveBufferSize 2048 +

    + +
    +
    top
    +

    ProxyRemote ディレクティブ

    + + + + + + +
    説明:特定のリクエストを扱う時に使われるリモートプロキシを指定する
    構文:ProxyRemote match remote-server
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    このディレクティブはこのプロキシに対するリモートプロキシを定義します。 + match はリモートプロキシがサポートする URL スキーム、 + あるいはリモートプロキシを使うべき URL の一部分、あるいはすべての + リクエストにリモートプロキシが使われることを示す * のどれかになります。 + remote-server はリモートプロキシの部分 URL です。構文:

    + +

    + remote-server = + scheme://hostname[:port] +

    + +

    scheme は実際上リモートサーバとの通信に使われるプロトコルを + 決定します。このモジュールでは http と https + だけがサポートされています。 + https が使われると、HTTP CONNECT メソッドを使って + リクエストはリモートプロキシに転送されます。

    + +

    例

    + ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
    + ProxyRemote * http://cleverproxy.localdomain
    + ProxyRemote ftp http://ftpproxy.mydomain:8080 +

    + +

    最後の例では、プロキシは FTP リクエストを別の HTTP リクエストで包んで + そのようなリクエストを扱える別のプロキシに転送します。

    + +

    このオプションはリバースプロキシの設定もサポートします。 + バックエンドウェブサーバが別のフォワードプロキシの後ろに隠されている場合でも + バックエンドウェブサーバをバーチャルホストの URL 空間に入れることが + できます。

    + +
    +
    top
    +

    ProxyRemoteMatch ディレクティブ

    + + + + + + +
    説明:正規表現でのマッチによるリクエストを扱うリモートプロキシの指定
    構文:ProxyRemoteMatch regex remote-server
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    ProxyRemoteMatch は最初の引数がリクエストされた + URL にマッチする正規表現であることを除けば ProxyRemote ディレクティブと同じです。

    + +
    +
    top
    +

    ProxyRequests ディレクティブ

    + + + + + + + +
    説明:フォワード (標準の) プロキシリクエストを有効にする
    構文:ProxyRequests On|Off
    デフォルト:ProxyRequests Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    これは Apache のフォワードプロキシサーバとしての動作を + 有効もしくは無効にします。(ProxyRequests を Off に + 設定しても、ProxyPass + の設定は無効になりません。)

    + +

    通常のリバースプロキシ/ゲートウェイの設定では、このオプションは Off + に設定してください。

    + +

    HTTP や FTP サイトへのプロキシの機能を有効にしたい場合は、 + mod_proxy_http や mod_proxy_ftp が + サーバに組み込まれていなければなりません。

    + +

    警告

    +

    サーバを安全にするまで ProxyRequests は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    + +

    参照

    + +
    +
    top
    +

    ProxySet ディレクティブ

    + + + + + + + +
    説明:プロキシのバランサやメンバのパラメータをセット
    構文:ProxySet url key=value [key=value ...]
    コンテキスト:ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy
    互換性:ProxySet は Apache 2.2 以降でのみ使用可能
    +

    このディレクティブは、通常は ProxyPass + ディレクティブで行うプロキシのバランサやワーカーに対するパラメータを + 別の方法で設定できるようにします。 + <Proxy balancer url|worker url> + ディレクティブのコンテナ内で使う場合、url 引数は必要ありません。 + 副次的に、それぞれのバランサやワーカーが生成されます。 + ProxyPass ディレクティブではなく、 + RewriteRule でリバースプロキシ + 設定をする時にこのディレクティブは有用です。

    + +

    + <Proxy balancer://hotcluster>
    + + BalancerMember http://www2.example.com:8009 loadfactor=1
    + BalancerMember http://www3.example.com:8009 loadfactor=2
    + ProxySet lbmethod=bytraffic
    +
    + </Proxy> +

    + +

    + <Proxy http://backend>
    + + ProxySet keepalive=On
    +
    + </Proxy> +

    + +

    + ProxySet balancer://foo lbmethod=bytraffic timeout=15 +

    + +

    + ProxySet ajp://backend:7001 timeout=15 +

    + +

    警告

    +

    設定対象がバランサかワーカーかで、パラメータ名が同じでも意味が異なる可能性 + に注意してください。例えば、タイムアウトに関連する上記ふたつの例がそうです。

    +
    + + +
    +
    top
    +

    ProxyStatus ディレクティブ

    + + + + + + + + +
    説明:mod_status でプロキシのロードバランサの状態を表示
    構文:ProxyStatus Off|On|Full
    デフォルト:ProxyStatus Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.2 以降で使用可能
    +

    このディレクティブは mod_status によるサーバステータスのページ + にプロキシのロードバランサの状態を表示するか否かを決めます。

    +

    注意

    +

    Full は On の別名です。

    +
    + + +
    +
    top
    +

    ProxyTimeout ディレクティブ

    + + + + + + + + +
    説明:プロキシされたリクエストのネットワークタイムアウト
    構文:ProxyTimeout seconds
    デフォルト:Timeout の値
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    互換性:Apache 2.0.31 以降で使用可能
    +

    このディレクティブはユーザがプロキシリクエストのタイムアウトを + 指定できるようにします。これはハングしてしまうほど遅い、もしくは挙動の + 怪しいサーバがあり、サーバがデータを返すまでひたすら待ち続けるよりも + タイムアウトを返してより緩やかに(訳注: graceful に) + 失敗させたい場合に役に立ちます。

    + +
    +
    top
    +

    ProxyVia ディレクティブ

    + + + + + + + +
    説明:プロキシされたリクエストの Via HTTP レスポンスヘッダ +により提供される情報
    構文:ProxyVia On|Off|Full|Block
    デフォルト:ProxyVia Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_proxy
    +

    このディレクティブはプロキシの Via: HTTP ヘッダの使用を + 制御します。想定されている使い方は、プロキシサーバがいくつも繋がっているときに + プロキシリクエストの流れを制御することです。Via: ヘッダ行の + 説明は RFC 2616 (HTTP/1.1) + の 14.45 節を読んでください。

    + +
      +
    • デフォルトの Off に設定されていると、特別な処理は + 行なわれません。リクエストやリプライに Via: ヘッダがあれば、 + 変更されずにそのまま渡します。
    • + +
    • On に設定されていれば、各リクエストとリプライに + Via: 行が追加されます。
    • + +
    • Full に設定されていれば、Via: ヘッダは + コメント部分に Apache サーバのバージョンも含むようになります。
    • + +
    • Block に設定されていれば、すべてのプロキシリクエストから + Via: ヘッダが取り除かれます。新たに Via: が + 生成されることはありません。
    • +
    + +
    +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy.xml b/docs/manual/mod/mod_proxy.xml index 4f77d0514c7..809721948a9 100644 --- a/docs/manual/mod/mod_proxy.xml +++ b/docs/manual/mod/mod_proxy.xml @@ -4,12 +4,12 @@ -
    Controlling access to your proxy +
    Workers +

    The proxy manages the configuration of origin servers and their + communication parameters in objects called workers. + There are two built-in workers: the default forward proxy worker and the + default reverse proxy worker. Additional workers can be configured + explicitly.

    + +

    The two default workers have a fixed configuration + and will be used if no other worker matches the request. + They do not use HTTP Keep-Alive or connection pooling. + The TCP connections to the origin server will instead be + opened and closed for each request.

    + +

    Explicitly configured workers are identified by their URL. + They are usually created and configured using + ProxyPass or + ProxyPassMatch when used + for a reverse proxy:

    + + + ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30 + + +

    This will create a worker associated with the origin server URL + http://backend.example.com that will use the given timeout + values. When used in a forward proxy, workers are usually defined + via the ProxySet directive:

    + + + ProxySet http://backend.example.com connectiontimeout=5 timeout=30 + + +

    or alternatively using Proxy + and ProxySet:

    + + + <Proxy http://backend.example.com>
    + + ProxySet connectiontimeout=5 timeout=30 + + </Proxy> +
    + +

    Using explicitly configured workers in the forward mode is + not very common, because forward proxies usually communicate with many + different origin servers. Creating explicit workers for some of the + origin servers can still be useful if they are used very often. + Explicitly configured workers have no concept of forward or reverse + proxying by themselves. They encapsulate a common concept of + communication with origin servers. A worker created by + ProxyPass for use in a + reverse proxy will also be used for forward proxy requests whenever + the URL to the origin server matches the worker URL, and vice versa.

    + +

    The URL identifying a direct worker is the URL of its + origin server including any path components given:

    + + + ProxyPass /examples http://backend.example.com/examples
    + ProxyPass /docs http://backend.example.com/docs +
    + +

    This example defines two different workers, each using a separate + connection pool and configuration.

    + + Worker Sharing +

    Worker sharing happens if the worker URLs overlap, which occurs when + the URL of some worker is a leading substring of the URL of another + worker defined later in the configuration file. In the following example

    + + + ProxyPass /apps http://backend.example.com/ timeout=60
    + ProxyPass /examples http://backend.example.com/examples timeout=10 +
    + +

    the second worker isn't actually created. Instead the first + worker is used. The benefit is, that there is only one connection pool, + so connections are more often reused. Note that all configuration attributes + given explicitly for the later worker and some configuration defaults will + overwrite the configuration given for the first worker. This will be logged + as a warning. In the above example, the resulting timeout value + for the URL /apps will be 10 instead + of 60!

    + +

    If you want to avoid worker sharing, sort your worker definitions + by URL length, starting with the longest worker URLs. If you want to maximize + worker sharing, use the reverse sort order. See also the related warning about + ordering ProxyPass directives.

    + +
    + +

    Explicitly configured workers come in two flavors: + direct workers and (load) balancer workers. + They support many important configuration attributes which are + described below in the ProxyPass + directive. The same attributes can also be set using + ProxySet.

    + +

    The set of options available for a direct worker + depends on the protocol which is specified in the origin server URL. + Available protocols include ajp, + ftp, http and scgi.

    + +

    Balancer workers are virtual workers that use direct workers known + as their members to actually handle the requests. Each balancer can + have multiple members. When it handles a request, it chooses a member + based on the configured load balancing algorithm.

    + +

    A balancer worker is created if its worker URL uses + balancer as the protocol scheme. + The balancer URL uniquely identifies the balancer worker. + Members are added to a balancer using + BalancerMember.

    + +
    + +
    Controlling Access to Your Proxy

    You can control who can access your proxy via the Proxy control block as in the following example:

    @@ -188,105 +297,6 @@
    -
    FTP Proxy - - -
    Why doesn't file type <var>xxx</var> - download via FTP? -

    You probably don't have that particular file type defined as - application/octet-stream in your proxy's mime.types - configuration file. A useful line can be

    - - -
    application/octet-stream   bin dms lha lzh exe class tgz taz
    -
    -

    Alternatively you may prefer to default everything to binary:

    - -
    DefaultType application/octet-stream
    -
    -
    - -
    How can I force an FTP ASCII download of - File <var>xxx</var>? -

    In the rare situation where you must download a specific file using the - FTP ASCII transfer method (while the default transfer is in - binary mode), you can override mod_proxy's - default by suffixing the request with ;type=a to force an - ASCII transfer. (FTP Directory listings are always executed in ASCII mode, - however.)

    -
    - -
    How can I do FTP upload? -

    Currently, only GET is supported for FTP in mod_proxy. You can - of course use HTTP upload (POST or PUT) through an Apache proxy.

    -
    - -
    How can I access FTP files outside - of my home directory? -

    An FTP URI is interpreted relative to the home directory of the user - who is logging in. Alas, to reach higher directory levels you cannot - use /../, as the dots are interpreted by the browser and not actually - sent to the FTP server. To address this problem, the so called Squid - %2f hack was implemented in the Apache FTP proxy; it is a - solution which is also used by other popular proxy servers like the Squid Proxy Cache. By - prepending /%2f to the path of your request, you can make - such a proxy change the FTP starting directory to / (instead - of the home directory). For example, to retrieve the file - /etc/motd, you would use the URL:

    - - - ftp://user@host/%2f/etc/motd - -
    - -
    How can I hide the FTP cleartext password - in my browser's URL line? -

    To log in to an FTP server by username and password, Apache uses - different strategies. In absense of a user name and password in the URL - altogether, Apache sends an anonymous login to the FTP server, - i.e.,

    - - - user: anonymous
    - password: apache_proxy@ -
    - -

    This works for all popular FTP servers which are configured for - anonymous access.

    - -

    For a personal login with a specific username, you can embed the user - name into the URL, like in:

    - - - ftp://username@host/myfile - - -

    If the FTP server asks for a password when given this username (which - it should), then Apache will reply with a 401 (Authorization - required) response, which causes the Browser to pop up the - username/password dialog. Upon entering the password, the connection - attempt is retried, and if successful, the requested resource is - presented. The advantage of this procedure is that your browser does not - display the password in cleartext (which it would if you had used

    - - - ftp://username:password@host/myfile - - -

    in the first place).

    - - Note -

    The password which is transmitted in such a way is not encrypted on - its way. It travels between your browser and the Apache proxy server in - a base64-encoded cleartext string, and between the Apache proxy and the - FTP server as plaintext. You should therefore think twice before - accessing your FTP server via HTTP (or before accessing your personal - files via FTP at all!) When using unsecure channels, an eavesdropper - might intercept your password on its way.

    -
    -
    -
    Slow Startup

    If you're using the ProxyBlock directive, hostnames' IP addresses are looked up @@ -319,10 +329,12 @@

    Protocol Adjustments -

    For circumstances where you have a application server which doesn't - implement keepalives or HTTP/1.1 properly, there are 2 environment - variables which when set send a HTTP/1.0 with no keepalive. These are set - via the SetEnv directive.

    +

    For circumstances where mod_proxy is sending + requests to an origin server that doesn't properly implement + keepalives or HTTP/1.1, there are two environment variables that can force the + request to use HTTP/1.0 with no keepalive. These are set via the + SetEnv directive.

    These are the force-proxy-request-1.0 and proxy-nokeepalive notes.

    @@ -336,8 +348,63 @@ </Location> +
    +
    Request Bodies + +

    Some request methods such as POST include a request body. + The HTTP protocol requires that requests which include a body + either use chunked transfer encoding or send a + Content-Length request header. When passing these + requests on to the origin server, mod_proxy_http + will always attempt to send the Content-Length. But + if the body is large and the original request used chunked + encoding, then chunked encoding may also be used in the upstream + request. You can control this selection using environment variables. Setting + proxy-sendcl ensures maximum compatibility with + upstream servers by always sending the + Content-Length, while setting + proxy-sendchunked minimizes resource usage by using + chunked encoding.

    + +
    + +
    Reverse Proxy Request Headers + +

    When acting in a reverse-proxy mode (using the ProxyPass directive, for example), + mod_proxy_http adds several request headers in + order to pass information to the origin server. These headers + are:

    + +
    +
    X-Forwarded-For
    +
    The IP address of the client.
    +
    X-Forwarded-Host
    +
    The original host requested by the client in the Host + HTTP request header.
    +
    X-Forwarded-Server
    +
    The hostname of the proxy server.
    +
    + +

    Be careful when using these headers on the origin server, since + they will contain more than one (comma-separated) value if the + original request already contained one of these headers. For + example, you can use %{X-Forwarded-For}i in the log + format string of the origin server to log the original clients IP + address, but you may get more than one address if the request + passes through several proxies.

    + +

    See also the ProxyPreserveHost and ProxyVia directives, which control + other request headers.

    + +
    + + Proxy Container for directives applied to proxied resources @@ -376,7 +443,22 @@ </Proxy> + Differences from the Location configuration section +

    A backend URL matches the configuration section if it begins with the + the wildcard-url string, even if the last path segment in the + directive only matches a prefix of the backend URL. For example, + <Proxy http://example.com/foo> matches all of + http://example.com/foo, http://example.com/foo/bar, and + http://example.com/foobar. The matching of the final URL differs + from the behavior of the Location section, which for purposes of this note + treats the final path component as if it ended in a slash.

    +

    For more control over the matching, see ProxyMatch.

    +
    + +ProxyMatch
    @@ -387,18 +469,18 @@ response ProxyBadHeader IsError server configvirtual host -available in Apache 2.0.44 and later +Available in Apache 2.0.44 and later

    The ProxyBadHeader directive determines the - behaviour of mod_proxy if it receives syntactically invalid - header lines (i.e. containing no colon). The following arguments - are possible:

    + behavior of mod_proxy if it receives syntactically invalid + response header lines (i.e. containing no colon) from the origin + server. The following arguments are possible:

    IsError
    Abort the request and end up with a 502 (Bad Gateway) response. This is - the default behaviour.
    + the default behavior.
    Ignore
    Treat bad header lines as if they weren't sent.
    @@ -411,6 +493,22 @@ response + +ProxyFtpDirCharset +Define the character set for proxied FTP listings +ProxyFtpDirCharset character set +ProxyFtpDirCharset ISO-8859-1 +server configvirtual host +directory +Available in Apache 2.2.7 and later + + +

    The ProxyFtpDirCharset directive defines the + character set to be set for FTP directory listings in HTML generated by + mod_proxy_ftp.

    +
    +
    + ProxyMatch Container for directives applied to regular-expression-matched @@ -422,9 +520,10 @@ proxied resources

    The ProxyMatch directive is identical to the Proxy directive, except it matches URLs - using regular expressions.

    + type="section">Proxy directive, except that it matches URLs + using regular expressions.

    +Proxy
    @@ -440,7 +539,7 @@ request

    When enabled, this option will pass the Host: line from the incoming request to the proxied host, instead of the hostname specified in the - ProxyPass line.

    + ProxyPass module="mod_proxy" line.

    This option should normally be turned Off. It is mostly useful in special configurations like proxied mass name-based virtual @@ -462,13 +561,17 @@ request server. (Setting ProxyRequests to Off does not disable use of the ProxyPass directive.)

    -

    In a typical reverse proxy configuration, this option should be set to +

    In a typical reverse proxy or gateway configuration, this + option should be set to Off.

    In order to get the functionality of proxying HTTP or FTP sites, you need also mod_proxy_http or mod_proxy_ftp (or both) present in the server.

    +

    In order to get the functionality of (forward) proxying HTTPS sites, you + need mod_proxy_connect enabled in the server.

    + Warning

    Do not enable proxying with ProxyRequests until you have both to your network and to the Internet at large.

    +Forward and Reverse Proxies/Gateways
    @@ -498,20 +602,21 @@ request

    scheme is effectively the protocol that should be used to - communicate with the remote server; only http is supported by - this module.

    + communicate with the remote server; only http and https + are supported by this module. When using https, the requests + are forwarded through the remote proxy using the HTTP CONNECT method.

    Example - ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
    - ProxyRemote * http://cleversite.com
    - ProxyRemote ftp http://ftpproxy.mydomain.com:8080 + ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
    + ProxyRemote * http://cleverproxy.localdomain
    + ProxyRemote ftp http://ftpproxy.mydomain:8080

    In the last example, the proxy will forward FTP requests, encapsulated as yet another HTTP proxy request, to another proxy which can handle them.

    -

    This option also supports reverse proxy configuration - a backend +

    This option also supports reverse proxy configuration; a backend webserver can be embedded within a virtualhost URL space even if that server is hidden by another forward proxy.

    @@ -527,26 +632,105 @@ expressions

    The ProxyRemoteMatch is identical to the - ProxyRemote directive, except the - first argument is a regular expression match against the requested URL.

    + ProxyRemote directive, except + that the first argument is a + regular expression + match against the requested URL.

    +
    +
    + + +BalancerMember +Add a member to a load balancing group +BalancerMember [balancerurl] url [key=value [key=value ...]] +directory + +BalancerMember is only available in Apache 2.2 + and later. + +

    This directive adds a member to a load balancing group. It can be used + within a <Proxy balancer://...> container + directive and can take any of the key value pairs available to + ProxyPass directives.

    +

    The balancerurl is only needed when not within a + <Proxy balancer://...> + container directive. It corresponds to the url of a balancer defined in + ProxyPass directive.

    +
    +
    + + +ProxySet +Set various Proxy balancer or member parameters +ProxySet url key=value [key=value ...] +directory + +ProxySet is only available in Apache 2.2 + and later. + +

    This directive is used as an alternate method of setting any of the + parameters available to Proxy balancers and workers normally done via the + ProxyPass directive. If used + within a <Proxy balancer url|worker url> + container directive, the url argument is not required. As a side + effect the respective balancer or worker gets created. This can be useful + when doing reverse proxying via a + RewriteRule instead of a + ProxyPass directive.

    + + + <Proxy balancer://hotcluster>
    + + BalancerMember http://www2.example.com:8080 loadfactor=1
    + BalancerMember http://www3.example.com:8080 loadfactor=2
    + ProxySet lbmethod=bytraffic
    +
    + </Proxy> +
    + + + <Proxy http://backend>
    + + ProxySet keepalive=On
    +
    + </Proxy> +
    + + + ProxySet balancer://foo lbmethod=bytraffic timeout=15 + + + + ProxySet ajp://backend:7001 timeout=15 + + + Warning +

    Keep in mind that the same parameter key can have a different meaning + depending whether it is applied to a balancer or a worker, as shown by + the two examples above regarding timeout.

    +
    +
    ProxyPass Maps remote servers into the local server URL-space -ProxyPass [path] !|url [key=value key=value ...]] +ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate] server configvirtual host directory -

    This directive allows remote servers to be mapped into the space of - the local server; the local server does not act as a proxy in the - conventional sense, but appears to be a mirror of the remote - server. path is the name of a local virtual path; url - is a partial URL for the remote server and cannot include a query - string.

    +

    This directive allows remote servers to be mapped into the + space of the local server. The local server does not act as a + proxy in the conventional sense but appears to be a mirror of the + remote server. The local server is often called a reverse + proxy or gateway. The path is the name of + a local virtual path; url is a partial URL for the + remote server and cannot include a query string.

    The ProxyRequests directive should @@ -564,6 +748,30 @@ expressions http://example.com/mirror/foo/bar to be internally converted into a proxy request to http://backend.example.com/bar.

    + +

    If the first argument ends with a trailing /, the second + argument should also end with a trailing /, and vice + versa. Otherwise, the resulting requests to the backend may miss some + needed slashes and do not deliver the expected results. +

    +
    + +

    When used inside a Location section, the first argument is omitted and the local + directory is obtained from the Location. The same will occur inside a + LocationMatch section; + however, ProxyPass does not interpret the regexp as such, so it is necessary + to use ProxyPassMatch in this situation instead.

    + +

    The ProxyPass directive is not supported in Directory or Files sections.

    + +

    If you require a more flexible reverse-proxy configuration, see the + RewriteRule directive with the + [P] flag.

    +

    The ! directive is useful in situations where you don't want to reverse-proxy a subdirectory, e.g.

    @@ -576,27 +784,52 @@ expressions backend.example.com except requests made to /mirror/foo/i.

    - Note -

    Order is important. you need to put the exclusions before the - general ProxyPass directive.

    -
    + Ordering ProxyPass Directives +

    The configured ProxyPass + and ProxyPassMatch + rules are checked in the order of configuration. The first rule that + matches wins. So usually you should sort conflicting + ProxyPass rules starting with the + longest URLs first. Otherwise, later rules for longer URLS will be hidden + by any earlier rule which uses a leading substring of the URL. Note that + there is some relation with worker sharing.

    -

    New in Apache 2.1, is the ability to use pooled connections to a - backend server. Using the key=value parameters it is possible - to tune this connection pooling. The default for a Hard Maximum - for the number of connections is the number of threads per process in the - active MPM. In the Prefork MPM, this is always 1, while with the Worker MPM - it is controlled by the ThreadsPerChild.

    +

    For the same reasons, exclusions must come before the + general ProxyPass directives.

    -

    Setting min will determine how many connections will always - be open to the backend server. Upto the Soft Maximum or smax - number of connections will be created on demand. Any connections above - smax are subject to a time to live or ttl. Apache - will never create more than the Hard Maximum or max connections - to the backend server.

    +
    - - ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300 + Ordering ProxyPass and RewriteRule Directives +

    RewriteRule directives + are evaluated before ProxyPass ones.

    +
    + +

    ProxyPass key=value Parameters

    + +

    In Apache HTTP Server 2.1 and later, mod_proxy supports pooled + connections to a backend server. Connections created on demand + can be retained in a pool for future use. Limits on the pool size + and other settings can be coded on + the ProxyPass directive + using key=value parameters, described in the tables + below.

    + +

    By default, mod_proxy will allow and retain the maximum number of + connections that could be used simultaneously by that web server child + process. Use the max parameter to reduce the number from + the default. Use the ttl parameter to set an optional + time to live; connections which have been unused for at least + ttl seconds will be closed. ttl can be used + to avoid using a connection which is subject to closing because of the + backend server's keep-alive timeout.

    + +

    The pool of connections is maintained per web server child + process, and max and other settings are not coordinated + among all child processes, except when only one child process is allowed + by configuration or MPM design.

    + + Example + ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300 @@ -605,144 +838,361 @@ expressions - + - + - - + + - - - - + + - - - + + + + + + + + - + + + + + + + + + + + + - - - - + - + + + + + +
    Description
    min 0Minumum number of connections that will always - be open to the backend server.
    Minimum number of connection pool entries, unrelated to the + actual number of connections. This only needs to be modified from the + default for special circumstances where heap memory associated with the + backend connections should be preallocated or retained.
    max 1...nHard Maximum number of connections that will be - allowed to the backend server. The default for a Hard Maximum - for the number of connections is the number of threads per process in the - active MPM. In the Prefork MPM, this is always 1, while with the Worker MPM - it is controlled by the ThreadsPerChild. - Apache will never create more than the Hard Maximum connections - to the backend server.
    Maximum number of connections that will be allowed to the + backend server. The default for this limit is the number of threads + per process in the active MPM. In the Prefork MPM, this is always 1; + while with other MPMs, it is controlled by the + ThreadsPerChild directive.
    smax maxUpto the Soft Maximum - number of connections will be created on demand. Any connections above - smax are subject to a time to live or ttl. -
    ttlRetained connection pool entries above this limit are freed + during certain operations if they have been unused for longer than + the time to live, controlled by the ttl parameter. If + the connection pool entry has an associated connection, it will be + closed. This only needs to be modified from the default for special + circumstances where connection pool entries and any associated + connections which have exceeded the time to live need to be freed or + closed more aggressively.
    acquire -Time To Live for the inactive connections above the - smax connections in seconds. Apache will close all - connections that has not been used inside that time period. + If set, this will be the maximum time to wait for a free + connection in the connection pool, in milliseconds. If there are no free + connections in the pool, the Apache will return SERVER_BUSY + status to the client.
    timeoutTimeoutConnection timeout in seconds. - If not set the Apache will wait until the free connection - is available. This directive is used for limiting the number - of connections to the backend server together with max - parameter. +
    connectiontimeouttimeoutConnect timeout in seconds. + The number of seconds Apache waits for the creation of a connection to + the backend to complete. By adding a postfix of ms, the timeout can be + also set in milliseconds.
    acquire-If set this will be the maximum time to wait for a free - connection in the connection pool. If there are no free connections - in the pool the Apache will return SERVER_BUSY status to - the client. +
    disablereuseOffThis parameter should be used when you want to force mod_proxy + to immediately close a connection to the backend after being used, and + thus, disable its persistent connection and pool for that backend. + This helps in various situations where a firewall between Apache and + the backend server (regardless of protocol) tends to silently + drop connections or when backends themselves may be under round- + robin DNS. To disable connection pooling reuse, + set this property value to On. +
    flushpacketsoffDetermines whether the proxy module will auto-flush the output + brigade after each "chunk" of data. 'off' means that it will flush + only when needed; 'on' means after each chunk is sent; and + 'auto' means poll/wait for a period of time and flush if + no input has been received for 'flushwait' milliseconds. + Currently, this is in effect only for AJP. +
    flushwait10The time to wait for additional input, in milliseconds, before + flushing the output brigade if 'flushpackets' is 'auto'.
    keepalive OffThis parameter should be used when you have a firewall between your - Apache and the backend server, who tend to drop inactive connections. +

    This parameter should be used when you have a firewall between your + Apache and the backend server, which tends to drop inactive connections. This flag will tell the Operating System to send KEEP_ALIVE - messages on inactive connections (interval depends on global OS settings, - generally 120ms), and thus prevent the firewall to drop the connection. - To enable keepalive set this property value to On. + messages on inactive connections and thus prevent the firewall from dropping + the connection. + To enable keepalive, set this property value to On.

    +

    The frequency of initial and subsequent TCP keepalive probes + depends on global OS settings, and may be as high as 2 hours. To be useful, + the frequency configured in the OS must be smaller than the threshold used + by the firewall.

    +
    lbset0Sets the load balancer cluster set that the worker is a member + of. The load balancer will try all members of a lower numbered + lbset before trying higher numbered ones. +
    ping0Ping property tells webserver to send a CPING + request on ajp13 connection before forwarding a request. + The parameter is the delay in seconds to wait for the + CPONG reply. + This features has been added to avoid problem with hung and + busy Tomcat's and require ajp13 ping/pong support which has + been implemented on Tomcat 3.3.2+, 4.1.28+ and 5.0.13+. + This will increase the network traffic during the normal operation + which could be an issue, but it will lower the + traffic in case some of the cluster nodes are down or busy. + Currently, this has an effect only for AJP. + By adding a postfix of ms, the delay can be also set in + milliseconds. +
    loadfactor1Worker load factor. Used with BalancerMember. + It is a number between 1 and 100 and defines the normalized weighted + load applied to the worker. +
    redirect-Redirection Route of the worker. This value is usually + set dynamically to enable safe removal of the node from + the cluster. If set, all requests without session id will be + redirected to the BalancerMember that has route parameter + equal to this value.
    retry 60 Connection pool worker retry timeout in seconds. If the connection pool worker to the backend server is in the error state, Apache will not forward any requests to that server until the timeout - expires. This enables to shut down the backend server for maintenance, - and bring it back online later. -
    loadfactor1Worker load factor. Used with BalancerMember. - It is a number between 1 and 100 and defines the normalized weighted - load applied to the worker. + expires. This enables to shut down the backend server for maintenance + and bring it back online later. A value of 0 means always retry workers + in an error state with no timeout.
    route - Route of the worker when used inside load balancer. - The route is a value appended to seesion id. + The route is a value appended to session id.
    redirect
    status -Redirection Route of the worker. This value is usually - set dynamically to enable safe removal of the node from - the cluster. If set all requests without session id will be - redirected to the BalancerMember that has route parametar - equal as this value. + Single letter value defining the initial status of + this worker: 'D' is disabled; 'S' is stopped; 'I' is ignore-errors; + 'H' is hot-standby; and 'E' is in an error state. Status + can be set (which is the default) by prepending with '+' or + cleared by prepending with '-'. + Thus, a setting of 'S-E' sets this worker to Stopped and + clears the in-error flag. +
    timeoutProxyTimeoutConnection timeout in seconds. + The number of seconds Apache waits for data sent by / to the backend. +
    ttl-Time to live for inactive connections and associated connection + pool entries, in seconds. Once reaching this limit, a + connection will not be used again; it will be closed at some + later time.
    -

    If the Proxy directive scheme starts with the - balancer:// then a virtual worker that does not really - communicate with the backend server will be created. Instead it is responsible - for the management of several "real" workers. In that case the special set of - parameters can be add to this virtual worker. +

    If the ProxyPass directive scheme starts with the + balancer:// (eg: balancer://cluster/, + any path information is ignored), then a virtual worker that does not really + communicate with the backend server will be created. Instead, it is responsible + for the management of several "real" workers. In that case, the special set of + parameters can be added to this virtual worker. + See mod_proxy_balancer + for more information about how the balancer works.

    - + + + + + + + - + - - - - - + + + + + + + +
    Parameter Default Description
    lbmethod-byrequests Balancer load-balance method. Select the load-balancing scheduler - method to use. Either requests, to perform weighted - request counting or traffic, to perform weighted - traffic byte count balancing. Default is requests. + method to use. Either byrequests, to perform weighted + request counting; bytraffic, to perform weighted + traffic byte count balancing; or bybusyness + (Apache HTTP Server 2.2.10 and later), to perform pending request + balancing. The default is byrequests. +
    maxattemptsOne less than the number of workers, or 1 with a single worker.Maximum number of failover attempts before giving up. +
    nofailoverOffIf set to On, the session will break if the worker is in + error state or disabled. Set this value to On if backend servers do not + support session replication.
    stickysession - Balancer sticky session name. The value is usually set to something like JSESSIONID or PHPSESSIONID, and it depends on the backend application server that support sessions. + If the backend application server uses different names for cookies + and url encoded id (like servlet containers), use | to to separate them. + The first part is for the cookie; the second for the path.
    nofailover
    scolonpathdelim OffIf set to On the session will break if the worker is in - error state or disabled. Set this value to On if backend servers do not - support session replication. + If set to On, the semi-colon character ';' will be + used as an additional sticky session path deliminator/separator. This + is mainly used to emulate mod_jk's behavior when dealing with paths such + as JSESSIONID=6736bcf34;foo=aabfa
    timeout 0Balancer timeout in seconds. If set this will be the maximum time - to wait for a free worker. Default is not to wait. + Balancer timeout in seconds. If set, this will be the maximum time + to wait for a free worker. The default is to not wait.
    maxattempts1Maximum number of failover attempts before giving up. +
    failonstatus-A single or comma-separated list of HTTP status codes. If set, this will + force the worker into error state when the backend returns any status code + in the list. Worker recovery behaves the same as other worker errors. + Available with Apache HTTP Server 2.2.17 and later. +
    failontimeoutOffIf set, an IO read timeout after a request is sent to the backend will + force the worker into error state. Worker recovery behaves the same as other + worker errors. + Available with Apache HTTP Server 2.2.25 and later. +
    forcerecoveryOnForce the immediate recovery of all workers without considering the + retry parameter of the workers if all workers of a balancer are + in error state. There might be cases where an already overloaded backend + can get into deeper trouble if the recovery of all workers is enforced + without considering the retry parameter of each worker. In this case, + set to Off. + Available with Apache HTTP Server 2.2.23 and later.
    +

    A sample balancer setup:

    - ProxyPass /special-area http://special.example.com/ smax=5 max=10
    - ProxyPass / balancer://mycluster stickysession=jsessionid nofailover=On
    + ProxyPass /special-area http://special.example.com smax=5 max=10
    + ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    <Proxy balancer://mycluster>
    - BalancerMember http://1.2.3.4:8009
    - BalancerMember http://1.2.3.5:8009 smax=10
    - # Less powerful server, don't send as many requests there
    - BalancerMember http://1.2.3.6:8009 smax=1 loadfactor=20
    + BalancerMember ajp://1.2.3.4:8009
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=20
    + # Less powerful server, don't send as many requests there,
    + BalancerMember ajp://1.2.3.6:8009 loadfactor=5
    </Proxy>
    - + +

    Setting up a hot-standby that will only be used if no other + members are available:

    + + ProxyPass / balancer://hotcluster/
    + <Proxy balancer://hotcluster>
    + + BalancerMember ajp://1.2.3.4:8009 loadfactor=1
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=2
    + # The below is the hot standby
    + BalancerMember ajp://1.2.3.6:8009 status=+H
    + ProxySet lbmethod=bytraffic +
    + </Proxy> +
    + +

    Additional ProxyPass Keywords

    + +

    Normally, mod_proxy will canonicalise ProxyPassed URLs. + But this may be incompatible with some backends, particularly those + that make use of PATH_INFO. The optional nocanon + keyword suppresses this and passes the URL path "raw" to the + backend. Note that this keyword may affect the security of your backend, + as it removes the normal limited protection against URL-based attacks + provided by the proxy.

    + +

    The optional interpolate keyword (available in + httpd 2.2.9 and later), in combination with + ProxyPassInterpolateEnv, causes the ProxyPass + to interpolate environment variables, using the syntax + ${VARNAME}. Note that many of the standard CGI-derived + environment variables will not exist when this interpolation happens, + so you may still have to resort to mod_rewrite + for complex rules. Also note that interpolation is not supported + within the scheme portion of a URL. Dynamic determination of the + scheme can be accomplished with mod_rewrite as in the + following example.

    + + +RewriteEngine On + +RewriteCond %{HTTPS} =off +RewriteRule . - [E=protocol:http] +RewriteCond %{HTTPS} =on +RewriteRule . - [E=protocol:https] + +RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P] +ProxyPassReverse /mirror/foo/ http://backend.example.com/ +ProxyPassReverse /mirror/foo/ https://backend.example.com/ + +
    +
    + + +ProxyPassMatch +Maps remote servers into the local server URL-space using regular expressions +ProxyPassMatch [regex] !|url [key=value + [key=value ...]] +server configvirtual host +directory + +available in Apache 2.2.5 and later + + +

    This directive is equivalent to ProxyPass + but makes use of regular expressions instead of simple prefix matching. The + supplied regular expression is matched against the url, and if it + matches, the server will substitute any parenthesized matches into the given + string and use it as a new url.

    + +

    Suppose the local server has address http://example.com/; + then

    + + + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1 + + +

    will cause a local request for + http://example.com/foo/bar.gif to be internally converted + into a proxy request to http://backend.example.com/foo/bar.gif.

    + Note +

    The URL argument must be parsable as a URL before regexp + substitutions (as well as after). This limits the matches you can use. + For instance, if we had used

    + + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1 + +

    in our previous example, it would fail with a syntax error + at server startup. This is a bug (PR 46665 in the ASF bugzilla), + and the workaround is to reformulate the match:

    + + ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1 + +
    + +

    The ! directive is useful in situations where you don't want + to reverse-proxy a subdirectory.

    +

    When used inside a Location section, the first argument is omitted and the local - directory is obtained from the Location.

    + >LocationMatch section, the first argument is omitted and the + regexp is obtained from the LocationMatch.

    If you require a more flexible reverse-proxy configuration, see the RewriteRule directive with the [P] flag.

    + + + Security Warning +

    Take care when constructing the target URL of the rule, considering + the security impact from allowing the client influence over the set of + URLs to which your server will act as a proxy. Ensure that the scheme + and hostname part of the URL is either fixed or does not allow the + client undue influence.

    +
    @@ -750,30 +1200,32 @@ expressions ProxyPassReverse Adjusts the URL in HTTP response headers sent from a reverse proxied server -ProxyPassReverse [path] url +ProxyPassReverse [path] url +[interpolate] server configvirtual host directory

    This directive lets Apache adjust the URL in the Location, - Content-Location and URI headers on HTTP redirect - responses. This is essential when Apache is used as a reverse proxy to avoid - by-passing the reverse proxy because of HTTP redirects on the backend - servers which stay behind the reverse proxy.

    + Content-Location and URI headers on HTTP + redirect responses. This is essential when Apache is used as a + reverse proxy (or gateway) to avoid bypassing the reverse proxy + because of HTTP redirects on the backend servers which stay behind + the reverse proxy.

    Only the HTTP response headers specifically mentioned above will be rewritten. Apache will not rewrite other response headers, nor will it rewrite URL references inside HTML pages. This means that if the proxied content contains absolute URL - references, they will by-pass the proxy. A third-party module + references, they will bypass the proxy. A third-party module that will look inside the HTML and rewrite URL references is Nick Kew's mod_proxy_html.

    -

    path is the name of a local virtual path. url is a - partial URL for the remote server - the same way they are used for the - ProxyPass directive.

    +

    path is the name of a local virtual path; url is a + partial URL for the remote server. These parameters are used the same way as + for the ProxyPass directive.

    For example, suppose the local server has address http://example.com/; then

    @@ -788,25 +1240,41 @@ proxied server

    will not only cause a local request for the http://example.com/mirror/foo/bar to be internally converted into a proxy request to http://backend.example.com/bar - (the functionality ProxyPass provides here). It also takes care - of redirects the server backend.example.com sends: when - http://backend.example.com/bar is redirected by him to - http://backend.example.com/quux Apache adjusts this to + (the functionality which ProxyPass provides here). It also + takes care of redirects which the server backend.example.com + sends when redirecting http://backend.example.com/bar to + http://backend.example.com/quux . Apache adjusts this to http://example.com/mirror/foo/quux before forwarding the HTTP redirect response to the client. Note that the hostname used for constructing the URL is chosen in respect to the setting of the UseCanonicalName directive.

    Note that this ProxyPassReverse directive can - also be used in conjunction with the proxy pass-through feature + also be used in conjunction with the proxy feature (RewriteRule ... [P]) from mod_rewrite because it doesn't depend on a corresponding ProxyPass directive.

    +

    The optional interpolate keyword (available in + httpd 2.2.9 and later), used together with + ProxyPassInterpolateEnv, enables interpolation + of environment variables specified using the format ${VARNAME}. + Note that interpolation is not supported within the scheme portion of a + URL.

    +

    When used inside a Location section, the first argument is omitted and the local directory is obtained from the Location.

    + >Location. The same occurs inside a LocationMatch section, but will probably not work as + intended, as ProxyPassReverse will interpret the regexp literally as a + path; if needed in this situation, specify the ProxyPassReverse outside + the section or in a separate Location section.

    + +

    This directive is not supported in Directory or Files sections.

    @@ -814,7 +1282,8 @@ proxied server ProxyPassReverseCookieDomain Adjusts the Domain string in Set-Cookie headers from a reverse- proxied server -ProxyPassReverseCookieDomain internal-domain public-domain +ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate] server configvirtual host directory @@ -825,19 +1294,35 @@ rewriting headers that are a URL, this rewrites the domain string in Set-Cookie headers.

    + + ProxyPassReverseCookiePath Adjusts the Path string in Set-Cookie headers from a reverse- proxied server -ProxyPassReverseCookiePath internal-path public-path +ProxyPassReverseCookiePath internal-path +public-path [interpolate] server configvirtual host directory -

    Usage is basically similar to -ProxyPassReverse, but instead of -rewriting headers that are a URL, this rewrites the path -string in Set-Cookie headers.

    +

    +Useful in conjunction with +ProxyPassReverse +in situations where backend URL paths are mapped to public paths on the +reverse proxy. This directive rewrites the path string in +Set-Cookie headers. If the beginning of the cookie path matches +internal-path, the cookie path will be replaced with +public-path. +

    +In the example given with +ProxyPassReverse, the directive:

    + + ProxyPassReverseCookiePath / /mirror/foo/ + +

    will rewrite a cookie with backend path / (or +/example or, in fact, anything) to /mirror/foo/. +

    @@ -938,10 +1423,14 @@ connections

    The ProxyIOBufferSize directive adjusts the size - of the internal buffer, which is used as a scratchpad for the data between - input and output. The size must be less or equal 8192.

    + of the internal buffer which is used as a scratchpad for the data between + input and output. The size must be at least 8192.

    + +

    When the mod_proxy_ajp module is used, this value is + aligned to a 1024 byte boundary, and values larger than 65536 are set to + 65536 in accordance with the AJP protocol.

    -

    In almost every case there's no reason to change that value.

    +

    In almost every case, there's no reason to change that value.

    @@ -950,20 +1439,29 @@ connections Maximium number of proxies that a request can be forwarded through ProxyMaxForwards number -ProxyMaxForwards 10 +ProxyMaxForwards -1 server configvirtual host -Available in Apache 2.0 and later +Available in Apache 2.0 and later; + default behaviour changed in 2.2.7

    The ProxyMaxForwards directive specifies the - maximum number of proxies through which a request may pass, if there's no - Max-Forwards header supplied with the request. This is - set to prevent infinite proxy loops, or a DoS attack.

    + maximum number of proxies through which a request may pass if there's no + Max-Forwards header supplied with the request. This may + be set to prevent infinite proxy loops or a DoS attack.

    Example ProxyMaxForwards 15 + +

    Note that setting ProxyMaxForwards is a + violation of the HTTP/1.1 protocol (RFC2616), which forbids a Proxy + setting Max-Forwards if the Client didn't set it. + Earlier Apache versions would always set it. A negative + ProxyMaxForwards value, including the + default -1, gives you protocol-compliant behavior but may + leave you open to loops.

    @@ -984,8 +1482,8 @@ directly ProxyRemote proxy server(s).

    Example - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21 + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21

    The host arguments to the NoProxy @@ -1012,8 +1510,8 @@ directly Note

    Domain name comparisons are done without regard to the case, and Domains are always assumed to be anchored in the root of the - DNS tree, therefore two domains .MyDomain.com and - .mydomain.com. (note the trailing period) are considered + DNS tree; therefore, the two domains .ExAmple.com and + .example.com. (note the trailing period) are considered equal. Since a domain comparison does not involve a DNS lookup, it is much more efficient than subnet comparison.

    @@ -1039,7 +1537,7 @@ directly

    As a degenerate case, a SubNet with 32 valid bits is the - equivalent to an IPAddr, while a SubNet with zero + equivalent to an IPAddr, while a SubNet with zero valid bits (e.g., 0.0.0.0/0) is the same as the constant _Default_, matching any IP address.

    @@ -1070,7 +1568,7 @@ directly of hosts with different IPAddrs).

    Examples - prep.ai.mit.edu
    + prep.ai.example.com
    www.apache.org
    @@ -1082,8 +1580,8 @@ directly link.

    Hostname comparisons are done without regard to the case, and Hostnames are always assumed to be anchored in the root - of the DNS tree, therefore two hosts WWW.MyDomain.com - and www.mydomain.com. (note the trailing period) are + of the DNS tree; therefore, the two hosts WWW.ExAmple.com + and www.example.com. (note the trailing period) are considered equal.

    @@ -1095,13 +1593,13 @@ directly ProxyTimeout Network timeout for proxied requests ProxyTimeout seconds -ProxyTimeout 300 +Value of Timeout server configvirtual host Available in Apache 2.0.31 and later -

    This directive allows a user to specifiy a timeout on proxy requests. +

    This directive allows a user to specify a timeout on proxy requests. This is useful when you have a slow/buggy appserver which hangs, and you would rather just return a timeout and fail gracefully instead of waiting however long it takes the server to return.

    @@ -1124,9 +1622,9 @@ directly will be generated.

    Example - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21
    - ProxyDomain .mycompany.com + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21
    + ProxyDomain .example.com
    @@ -1176,13 +1674,67 @@ header for proxied requests Available in version 2.0 and later -

    This directive is useful for reverse-proxy setups, where you want to +

    This directive is useful for reverse-proxy setups where you want to have a common look and feel on the error pages seen by the end user. This also allows for included files (via mod_include's SSI) to get - the error code and act accordingly (default behavior would display - the error page of the proxied server, turning this on shows the SSI - Error message).

    + the error code and act accordingly. (Default behavior would display + the error page of the proxied server. Turning this on shows the SSI + Error message.)

    + +

    This directive does not affect the processing of informational (1xx), + normal success (2xx), or redirect (3xx) responses.

    +
    + + + +ProxyPassInterpolateEnv +Enable Environment Variable interpolation in Reverse Proxy configurations +ProxyPassInterpolateEnv On|Off +ProxyPassInterpolateEnv Off +server config +virtual host +directory + +Available in httpd 2.2.9 and later + + +

    This directive, together with the interpolate argument to + ProxyPass, ProxyPassReverse, + ProxyPassReverseCookieDomain, and + ProxyPassReverseCookiePath, + enables reverse proxies to be dynamically + configured using environment variables which may be set by + another module such as mod_rewrite. + It affects the ProxyPass, + ProxyPassReverse, + ProxyPassReverseCookieDomain, and + ProxyPassReverseCookiePath directives + and causes them to substitute the value of an environment + variable varname for the string ${varname} + in configuration directives if the interpolate option is set.

    +

    Keep this turned off (for server performance) unless you need it!

    +
    +
    + + +ProxyStatus +Show Proxy LoadBalancer status in mod_status +ProxyStatus Off|On|Full +ProxyStatus Off +server config +virtual host + +Available in version 2.2 and later + + +

    This directive determines whether or not proxy + loadbalancer status data is displayed via the mod_status + server-status page.

    + Note +

    Full is synonymous with On

    +
    +
    diff --git a/docs/manual/mod/mod_proxy.xml.fr b/docs/manual/mod/mod_proxy.xml.fr new file mode 100644 index 00000000000..7f666eece48 --- /dev/null +++ b/docs/manual/mod/mod_proxy.xml.fr @@ -0,0 +1,1962 @@ + + + + + + + + + + + +mod_proxy +Serveur mandataire/passerelle HTTP/1.1 +Extension +mod_proxy.c +proxy_module + + + Avertissement +

    N'activez pas la fonctionnalité de mandataire avec la directive + ProxyRequests avant + d'avoir sécurisé votre serveur. Les serveurs + mandataires ouverts sont dangereux pour votre réseau, + mais aussi pour l'Internet au sens large.

    +
    + +

    Ce module implémente un mandataire/passerelle pour Apache. Il + implémente la fonctionnalité de mandataire pour AJP13 + (Apache JServe Protocol version 1.3), FTP, + CONNECT (pour SSL), HTTP/0.9, + HTTP/1.0, et HTTP/1.1. Le module peut être + configuré pour se connecter aux autres modules mandataires qui + gèrent ces protocoles.

    + +

    Les diverses fonctionnalités de + mandataire d'Apache sont réparties entre plusieurs modules + complémentaires de mod_proxy : + mod_proxy_http, mod_proxy_ftp, + mod_proxy_ajp, mod_proxy_balancer, + et mod_proxy_connect. Ainsi, si vous voulez + utiliser une ou plusieurs fonctionnalités de mandataire + particulières, chargez mod_proxy et le(s) + module(s) approprié(s) dans le serveur (soit statiquement à la + compilation, soit dynamiquement via la directive LoadModule).

    + +

    En outre, d'autres modules fournissent des fonctionnalités + étendues. mod_cache et ses modules associés + fournissent la mise en cache. Les directives SSLProxy* + du module mod_ssl permettent de contacter des + serveurs distants en utilisant le protocole SSL/TLS. Ces modules + additionnels devront être chargés et configurés pour pouvoir + disposer de ces fonctionnalités.

    +
    +mod_cache +mod_proxy_http +mod_proxy_ftp +mod_proxy_connect +mod_proxy_balancer +mod_ssl + +
    Mandataires directs et + mandataires/passerelles inverses +

    Apache peut être configuré dans les deux modes mandataire + direct et mandataire inverse (aussi nommé + mode passerelle).

    + +

    Un mandataire direct standard est un serveur + intermédiaire qui s'intercale entre le client et le serveur + demandé. Pour obtenir un contenu hébergé par + le serveur demandé, le client envoie une requête au + mandataire en nommant le serveur demandé comme + cible, puis le mandataire extrait le contenu depuis le + serveur demandé et le renvoie enfin au client. Le client doit être + configuré de manière appropriée pour pouvoir utiliser le mandataire + direct afin d'accéder à d'autres sites.

    + +

    L'accès à Internet depuis des clients situés derrière un + pare-feu est une utilisation typique du mandataire direct. Le + mandataire direct peut aussi utiliser la mise en cache (fournie + par mod_cache) pour réduire la charge du + réseau.

    + +

    La fonctionnalité de mandataire direct est activée via la + directive ProxyRequests. + Comme les mandataires directs permettent aux clients d'accéder à + des sites quelconques via votre serveur et de dissimuler leur + véritable origine, il est indispensable de sécuriser votre serveur de façon à ce que seuls + les clients autorisés puissent accéder à votre serveur avant + d'activer la fonctionnalité de mandataire direct.

    + +

    Un mandataire inverse (ou passerelle), + quant à lui, apparaît au client comme un serveur web standard. + Aucune configuration particulière du client n'est nécessaire. Le + client adresse ses demandes de contenus ordinaires dans l'espace + de nommage du mandataire inverse. Ce dernier décide alors où + envoyer ces requêtes, et renvoie le contenu au client comme s'il + l'hébergeait lui-même.

    + +

    L'accès des utilisateurs à Internet pour un serveur situé + derrière un pare-feu est une utilisation typique du mandataire + inverse. On peut aussi utiliser les mandataires inverses pour + mettre en oeuvre une répartition de charge entre plusieurs + serveurs en arrière-plan, ou fournir un cache pour un serveur + d'arrière-plan plus lent. Les mandataires inverses peuvent aussi + tout simplement servir à rassembler plusieurs serveurs dans le + même espace de nommage d'URLs.

    + +

    La fonctionnalité de mandataire inverse est activée via la + directive ProxyPass ou + le drapeau [P] de la directive RewriteRule. Il n'est + pas nécessaire de définir ProxyRequests à on pour configurer + un mandataire inverse.

    +
    + +
    Exemples simples + +

    Les exemples ci-dessous illustrent de manière très basique la + mise en oeuvre de la fonctionnalité de mandataire et ne sont là que + pour vous aider à démarrer. Reportez-vous à la documentation de + chaque directive.

    + +

    Si en outre, vous désirez activer la mise en cache, consultez la + documentation de mod_cache.

    + + Mandataire inverse + ProxyPass /foo http://foo.example.com/bar
    + ProxyPassReverse /foo http://foo.example.com/bar +
    + + Mandataire direct + ProxyRequests On
    + ProxyVia On
    +
    + <Proxy *>
    + + Order deny,allow
    + Deny from all
    + Allow from interne.example.com
    +
    + </Proxy> +
    + +
    + +
    Gestionnaires de serveurs (workers) +

    Le mandataire gère la configuration des serveurs originaux, + ainsi que leurs paramètres de communication dans des objets + appelés workers ou Gestionnaires de serveur. Deux + workers intégrés par défaut sont disponibles : le worker de + mandataire direct et le worker de mandataire inverse. Des workers + supplémentaires peuvent être configurés explicitement.

    + +

    Les deux workers par défaut ont une configuration fixe et + seront utilisés si aucun autre worker ne correspond à la requête. + Ils n'utilisent ni les connexions HTTP persistantes, ni les jeux + de connexions. Les connexions TCP vers le serveur original seront + donc ouvertes et fermées pour chaque requête.

    + +

    Les workers configurés explicitement sont identifiés par leur + URL. Dans le cas d'un mandataire inverse, ils sont généralement + créés et configurés via les directives ProxyPass ou ProxyPassMatch :

    + + + ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30 + + +

    Cet exemple crée un worker associé à l'URL du serveur original + http://backend.example.com, qui utilisera les délais + spécifiés. Dans le cas d'un mandataire direct, les workers sont + généralement définis via la directive ProxySet directive :

    + + + ProxySet http://backend.example.com connectiontimeout=5 timeout=30 + + +

    ou encore via une combinaison des directives Proxy et ProxySet :

    + + + <Proxy http://backend.example.com>
    + + ProxySet connectiontimeout=5 timeout=30 + + </Proxy> +
    + +

    L'utilisation de workers configurés explicitement dans le mode + direct n'est pas très courante, car les mandataires directs + communiquent avec de nombreux serveurs originaux. Il est cependant + intéressant de créer des workers explicites pour certains serveurs + originaux si ces derniers sont utilisés très souvent. Les workers + configurés explicitement n'ont en eux-mêmes aucun concept de + mandataire direct ou inverse. Ils encapsulent un concept de + communication commun avec les serveurs originaux. Un worker créé + via la directive ProxyPass pour être utilisé avec un + mandataire inverse, sera aussi utilisé pour les requêtes mandatées + en direct chaque fois que l'URL du serveur original correspondra à + l'URL du worker, et vice versa.

    + +

    L'URL identifiant un worker direct correspond à l'URL de son + serveur original comportant tout élément de chemin éventuel :

    + + + ProxyPass /examples http://backend.example.com/examples
    + ProxyPass /docs http://backend.example.com/docs +
    + +

    Cet exemple définit deux workers différents, chacun d'entre eux + utilisant une configuration et un jeu de connexions séparés.

    + + Partage de worker +

    Le partage de worker se produit lorsque les URLs des workers + se chevauchent, c'est à dire lorsque l'URL d'un worker + correspond à une partie du début de l'URL d'un autre worker + défini plus loin dans le fichier de configuration. Dans + l'exemple suivant,

    + + + ProxyPass /apps http://backend.example.com/ timeout=60
    + ProxyPass /examples http://backend.example.com/examples timeout=10 +
    + +

    le second worker n'est pas vraiment créé. C'est le premier + worker qui est utilisé à sa place. L'avantage de ceci réside + dans le fait qu'il n'y a plus qu'un jeu de connexions, celles-ci + étant donc réutilisées plus souvent. Notez que tous les + attributs de configuration définis explicitement pour le second + worker et certaines valeurs par défaut vont écraser la + configuration définie pour le premier worker, ce qui va + provoquer la journalisation d'un avertissement. Dans l'exemple + précédent, la valeur de délai finale pour l'URL + /apps sera 10 au lieu de 60 !

    + +

    Pour éviter ce partage, classez vos définitions de workers de + l'URL la plus longue à la plus courte. Si au contraire, vous + voulez favoriser ce partage, utilisez l'ordre de classement + inverse. Voir aussi l'avertissement en rapport à propos de + l'ordre de classement des directives ProxyPass.

    + +
    + +

    Les workers configurés explicitement sont de deux sortes : + workers directs et workers à répartition (de + charge). Ils supportent de nombreux attributs de + configuration importants décrits ci-dessous dans la directive + ProxyPass. Tous ces + attributs peuvent aussi être définis via la directive ProxySet.

    + +

    Le jeu d'options disponibles pour un worker direct dépend du + protocole, qui est spécifié dans l'URL du serveur original. Parmi + les protocoles disponibles, on trouve ajp, + ftp, http et scgi.

    + +

    Les workers à répartition sont des workers virtuels qui + utilisent des workers directs considérés comme leurs membres pour + le traitement effectif des requêtes. Chaque répartiteur peut + posséder plusieurs membres. Pour traiter une requête, il choisit + un de ses membres en fonction de l'algorithme de répartition de + charge défini.

    + +

    Un worker à répartition est créé si son URL utilise + balancer comme protocole. L'URL de répartition + identifie de manière unique le worker à répartition. On peut + ajouter des membres à un répartiteur via la directive BalancerMember.

    + +
    + +
    Contrôler l'accès à votre + mandataire +

    Vous pouvez restreindre l'accès à votre mandataire via le bloc + de contrôle Proxy comme dans + l'exemple suivant :

    + + + <Proxy *>
    + + Order Deny,Allow
    + Deny from all
    + Allow from 192.168.0
    +
    + </Proxy> +
    + +

    Pour plus de détails sur les directives de contrôle d'accès, + voir la documentation du module + mod_authz_host.

    + +

    Restreindre l'accès de manière stricte est essentiel si vous + mettez en oeuvre un mandataire direct (en définissant la directive + ProxyRequests à "on"). + Dans le cas contraire, votre serveur pourrait être utilisé par + n'importe quel client pour accéder à des serveurs quelconques, + tout en masquant sa véritable identité. Ceci représente un danger + non seulement pour votre réseau, mais aussi pour l'Internet au + sens large. Dans le cas de la mise en oeuvre d'un mandataire + inverse (en utilisant la directive ProxyPass avec ProxyRequests Off), le contrôle + d'accès est moins critique car les clients ne peuvent contacter + que les serveurs que vous avez spécifiés.

    + +
    + +
    Ralentissement au démarragep +

    Si vous utilisez la directive ProxyBlock, les noms d'hôtes sont résolus en adresses + IP puis ces dernières mises en cache au cours du démarrage + à des fins de tests de comparaisons ultérieurs. Ce processus peut + durer plusieurs secondes (ou d'avantage) en fonction de la vitesse + à laquelle s'effectue la résolution des noms d'hôtes.

    +
    + +
    Mandataire d'Intranet +

    Un serveur mandataire Apache situé à l'intérieur d'un Intranet + doit faire suivre les requêtes destinées à un serveur externe à + travers le pare-feu de l'entreprise (pour ce faire, définissez la + directive ProxyRemote de + façon à ce qu'elle fasse suivre le protocole concerné + vers le mandataire du pare-feu). Cependant, lorsqu'il doit accéder + à des ressources situées dans l'Intranet, il peut se passer du + pare-feu pour accéder aux serveurs. A cet effet, la directive + NoProxy permet de + spécifier quels hôtes appartiennent à l'Intranet et peuvent donc + être accédés directement.

    + +

    Les utilisateurs d'un Intranet ont tendance à oublier le nom du + domaine local dans leurs requêtes WWW, et demandent par exemple + "http://un-serveur/" au lieu de + http://un-serveur.example.com/. Certains serveurs + mandataires commerciaux acceptent ce genre de requête et les + traitent simplement en utilisant un nom de domaine local + implicite. Lorsque la directive ProxyDomain est utilisée et si le + serveur est configuré comme + mandataire, Apache peut renvoyer une réponse de redirection et + ainsi fournir au client l'adresse de serveur correcte, + entièrement qualifiée. C'est la méthode à privilégier car le + fichier des marque-pages de l'utilisateur contiendra alors des + noms de serveurs entièrement qualifiés.

    +
    + +
    Ajustements relatifs au + protocole +

    Pour les cas où mod_proxy envoie des requêtes + vers un serveur qui n'implémente pas correctement les connexions + persistantes ou le protocole HTTP/1.1, il existe deux variables + d'environnement qui permettent de forcer les requêtes à utiliser + le protocole HTTP/1.0 avec connexions non persistantes. Elles + peuvent être définies via la directive SetEnv.

    + +

    Il s'agit des variables force-proxy-request-1.0 et + proxy-nokeepalive.

    + + + <Location /serveur-non-conforme/>
    + + ProxyPass http://serveur-non-conforme:7001/foo/
    + SetEnv force-proxy-request-1.0 1
    + SetEnv proxy-nokeepalive 1
    +
    + </Location> +
    + +
    + +
    Corps de requêtes + +

    Certaines méthodes de requêtes comme POST comportent un corps de + requête. Le protocole HTTP stipule que les requêtes qui comportent + un corps doivent soit utiliser un codage de transmission + fractionnée, soit envoyer un en-tête de requête + Content-Length. Lorsqu'il fait suivre ce genre de + requête vers le serveur demandé, mod_proxy_http + s'efforce toujours d'envoyer l'en-tête Content-Length. + Par contre, si la taille du corps est importante, et si la requête + originale utilise un codage à fractionnement, ce dernier peut aussi + être utilisé dans la requête montante. Ce comportement peut être + contrôlé à l'aide de variables + d'environnement. Ainsi, si elle est définie, la variable + proxy-sendcl assure une compatibilité maximale avec les + serveurs demandés en imposant l'envoi de l'en-tête + Content-Length, alors que + proxy-sendchunked diminue la consommation de ressources + en imposant l'utilisation d'un codage à fractionnement.

    + +
    + +
    En-têtes de requête du mandataire + inverse + +

    Lorsqu'il est configuré en mode mandataire inverse (en utilisant + par exemple la directive ProxyPass), + mod_proxy_http ajoute plusieurs en-têtes de requête + afin de transmettre des informations au serveur demandé. Ces + en-têtes sont les suivants :

    + +
    +
    X-Forwarded-For
    +
    L'adresse IP du client.
    +
    X-Forwarded-Host
    +
    L'hôte d'origine demandé par le client dans l'en-tête de + requête HTTP Host.
    +
    X-Forwarded-Server
    +
    Le nom d'hôte du serveur mandataire.
    +
    + +

    Ces en-têtes doivent être utilisés avec précautions sur le + serveur demandé, car ils contiendront plus d'une valeur (séparées + par des virgules) si la requête original contenait déjà un de ces + en-têtes. Par exemple, vous pouvez utiliser + %{X-Forwarded-For}i dans la chaîne de format du journal + du serveur demandé pour enregistrer les adresses IP des clients + originaux, mais il est possible que vous obteniez plusieurs adresses + si la requête passe à travers plusieurs mandataires.

    + +

    Voir aussi les directives ProxyPreserveHost et ProxyVia directives, qui permettent + de contrôler d'autres en-têtes de requête.

    + +
    + + + +Proxy +Conteneur de directives s'appliquant à des ressources +mandatées +<Proxy url-avec-jokers> ...</Proxy> +server configvirtual host + + + +

    Les directives situées dans une section Proxy ne s'appliquent qu'au contenu + mandaté concerné. Les jokers de style shell sont autorisés.

    + +

    Par exemple, les lignes suivantes n'autoriseront à accéder à un + contenu via votre serveur mandataire que les hôtes appartenant à + votre-reseau.example.com :

    + + + <Proxy *>
    + + Order Deny,Allow
    + Deny from all
    + Allow from votre-reseau.example.com
    +
    + </Proxy> +
    + +

    Dans l'exemple suivant, tous les fichiers du répertoire + foo de example.com seront traités par le + filtre INCLUDES lorsqu'ils seront envoyés par + l'intermédiaire du serveur mandataire :

    + + + <Proxy http://example.com/foo/*>
    + + SetOutputFilter INCLUDES
    +
    + </Proxy> +
    + + Différences avec la section de configuration Location +

    Une URL d'arrière-plan sera concernée par le conteneur Proxy si + elle commence par la url-avec-jokers, même si le + dernier segment de chemin de la directive ne correspond qu'à un + préfixe de segment dee chemin de l'URL d'arrière-plan. Par exemple, <Proxy + http://example.com/foo> correspondra entre autres aux URLs + http://example.com/foo, http://example.com/foo/bar, et + http://example.com/foobar. La correspondance de l'URL finale + diffère du comportement de la section Location qui, pour le cas de cette note, + traitera le segment de chemin final comme s'il se terminait par un + slash.

    +

    Pour un contrôle plus fin de la correspondance des URL, voir la + directive ProxyMatch.

    +
    + +
    +ProxyMatch +
    + + +ProxyBadHeader +Détermine la manière de traiter les lignes d'en-tête +incorrectes d'une réponse +ProxyBadHeader IsError|Ignore|StartBody +ProxyBadHeader IsError +server configvirtual host + +Disponible depuis la version 2.0.44 d'Apache + + +

    La directive ProxyBadHeader permet de + déterminer le comportement de mod_proxy lorsqu'il + reçoit des lignes d'en-tête de réponse dont la syntaxe n'est pas valide (c'est + à dire ne contenant pas de caractère ':') en provenance du serveur + original. Les arguments disponibles sont :

    + +
    +
    IsError
    +
    Annule la requête et renvoie une réponse de code 502 (mauvaise + passerelle). C'est le comportement par défaut.
    + +
    Ignore
    +
    Traite les lignes d'en-tête incorrectes comme si elles n'avaient + pas été envoyées.
    + +
    StartBody
    +
    A la réception de la première ligne d'en-tête incorrecte, les + autres en-têtes sont lus et ce qui reste est traité en tant que + corps. Ceci facilite la prise en compte des serveurs d'arrière-plan + bogués qui oublient d'insérer une ligne vide entre les + en-têtes et le corps.
    +
    +
    +
    + + +ProxyFtpDirCharset +Définit le jeu de caractères des listings FTP +mandatés +ProxyFtpDirCharset jeu-caractères +ProxyFtpDirCharset ISO-8859-1 +server configvirtual host +directory +Disponible depuis la version 2.2.7 d'Apache + + +

    La directive ProxyFtpDirCharset permet de + définir le jeu de caractères à utiliser pour les listings FTP en + HTML générés par mod_proxy_ftp.

    +
    +
    + + +ProxyMatch +Conteneur de directives s'appliquant à des ressources +mandatées correspondant à une expression rationnelle +<ProxyMatch regex> ...</ProxyMatch> +server configvirtual host + + + +

    La directive ProxyMatch est + identique à la directive Proxy, à l'exception qu'elle définit + les URLs auxquelles elle s'applique en utilisant une expression rationnelle.

    +
    +Proxy +
    + + +ProxyPreserveHost +Utilise l'en-tête de requête entrante Host pour la requête +du mandataire +ProxyPreserveHost On|Off +ProxyPreserveHost Off +server configvirtual host + +Disponible depuis la version 2.0.31 d'Apache. + + +

    Lorsqu'elle est activée, cette directive va transmettre l'en-tête + Host: de la requête entrante vers le serveur mandaté, au lieu du nom + d'hôte spécifié par la directive + ProxyPass module="mod_proxy".

    + +

    Cette directive est habituellement définie à Off. + Elle est principalement utile dans les configurations particulières + comme l'hébergement virtuel mandaté en masse à base de nom, où + l'en-tête Host d'origine doit être évalué par le serveur + d'arrière-plan.

    +
    +
    + + +ProxyRequests +Active la fonctionnalité (standard) de mandataire +direct +ProxyRequests On|Off +ProxyRequests Off +server configvirtual host + + + +

    Cette directive permet d'activer/désactiver la fonctionnalité de + serveur mandataire direct d'Apache. Définir ProxyRequests à + Off n'interdit pas l'utilisation de la directive + ProxyPass.

    + +

    Pour une configuration typique de mandataire inverse ou + passerelle, cette directive doit être définie à + Off.

    + +

    Afin d'activer la fonctionnalité de mandataire pour des sites + HTTP et/ou FTP, les modules mod_proxy_http et/ou + mod_proxy_ftp doivent aussi être chargés dans le + serveur.

    + +

    mod_proxy_connect doit être activé pour pouvoir + mandater (en direct) des sites HTTPS.

    + + Avertissement +

    N'activez pas la fonctionnalité de mandataire avec la directive + ProxyRequests avant + d'avoir sécurisé votre serveur. Les serveurs + mandataires ouverts sont dangereux non seulement pour votre + réseau, mais aussi pour l'Internet au sens large.

    +
    +
    +Mandataires/Passerelles directs et +inverses +
    + + +ProxyRemote +Mandataire distant à utiliser pour traiter certaines +requêtes +ProxyRemote comparaison serveur-distant +server configvirtual host + + + +

    Cette directive permet de définir des mandataires distants pour + ce mandataire. comparaison est soit le nom d'un protocole + que supporte le serveur distant, soit une URL partielle pour + laquelle le serveur distant devra être utilisé, soit * + pour indiquer que le serveur distant doit être utilisé pour toutes + les requêtes. serveur-distant est une URL partielle + correspondant au serveur distant. Syntaxe :

    + + + serveur-distant = + protocole://nom-serveur[:port] + + +

    protocole est effectivement le protocole à utiliser + pour communiquer avec le serveur distant ; ce module ne supporte que + http et https. Avec https, + les requêtes sont transmises par le mandataire distant via la + méthode HTTP CONNECT.

    + + Exemple + ProxyRemote http://bons-gars.example.com/ http://gars-mirroirs.example.com:8000
    + ProxyRemote * http://mandataire-intelligent.localdomain
    + ProxyRemote ftp http://mandataire-ftp.mon-domaine:8080 +
    + +

    Dans la dernière ligne de l'exemple, le mandataire va faire + suivre les requêtes FTP, encapsulées dans une autre requête mandatée + HTTP, vers un autre mandataire capable de les traiter.

    + +

    Cette directive supporte aussi les configurations de mandataire + inverse - un serveur web d'arrière-plan peut être intégré dans + l'espace d'URL d'un serveur virtuel, même si ce serveur est caché + par un autre mandataire direct.

    +
    +
    + + +ProxyRemoteMatch +Le mandataire distant à utiliser pour traiter les requêtes +correspondant à une expression rationnelle +ProxyRemoteMatch regex serveur-distant +server configvirtual host + + + +

    La directive ProxyRemoteMatch est + identique à la directive ProxyRemote, à l'exception que le + premier argument est une expression + rationnelle à mettre en correspondance avec l'URL de la + requête.

    +
    +
    + + +BalancerMember +Ajoute un membre à un groupe de répartition de +charge +BalancerMember [balancerurl] url [clé=valeur [clé=valeur ...]] +directory + +Disponible depuis la version 2.2 d'Apache. + +

    Cette directive parmet d'ajouter un membre à un groupe de + répartition de charge. Elle peut se trouver dans un conteneur + <Proxy balancer://...>, et accepte + tous les paramètres de paires clé/valeur que supporte la directive + ProxyPass.

    +

    L'argument balancerurl n'est requis que s'il ne se trouve pas + dèjà dans la directive de conteneur <Proxy + balancer://...>. Il correspond à l'URL d'un + répartiteur de charge défini par une directive ProxyPass.

    +
    +
    + + +ProxySet +Définit différents paramètres relatifs à la répartition de +charge des mandataires et aux membres des groupes de répartition de +charge +ProxySet url clé=valeur [clé=valeur ...] +directory + +ProxySet n'est disponible que depuis la version 2.2 +d'Apache. + +

    Cette directive propose une méthode alternative pour définir tout + paramètre relatif aux répartiteurs de charge et serveurs cibles de + mandataires normalement défini via la directive ProxyPass. Si elle se trouve dans un + conteneur <Proxy url de répartiteur|url de + serveur cible>, l'argument url n'est pas + nécessaire. Comme effet de bord, le répartiteur ou serveur cible respectif + est créé. Ceci peut s'avérer utile pour la mise en oeuvre d'un + mandataire inverse via une directive RewriteRule au lieu de ProxyPass.

    + + + <Proxy balancer://hotcluster>
    + + BalancerMember http://www2.example.com:8080 loadfactor=1
    + BalancerMember http://www3.example.com:8080 loadfactor=2
    + ProxySet lbmethod=bytraffic
    +
    + </Proxy> +
    + + + <Proxy http://backend>
    + + ProxySet keepalive=On
    +
    + </Proxy> +
    + + + ProxySet balancer://foo lbmethod=bytraffic timeout=15 + + + + ProxySet ajp://backend:7001 timeout=15 + + + Avertissement +

    Gardez à l'esprit qu'une même clé de paramètre peut avoir + différentes significations selon qu'elle s'applique à un + répartiteur ou à un serveur cible, et ceci est illustré par les deux + exemples précédents où il est question d'un timeout.

    +
    + +
    +
    + + +ProxyPass +Référencer des serveurs distants depuis +l'espace d'URLs du serveur local +ProxyPass [chemin] !|url [clé=valeur + [clé=valeur ...]] [nocanon] [interpolate] +server configvirtual host +directory + + + +

    Cette directive permet référencer des serveurs distants depuis + l'espace d'URLs du serveur local ; le serveur + local n'agit pas en tant que mandataire au sens conventionnel, mais + plutôt comme miroir du serveur distant. Le serveur local est + souvent nommé mandataire inverse ou + passerelle. L'argument chemin est le nom d'un + chemin virtuel local ; url est une URL partielle pour le + serveur distant et ne doit pas contenir de chaîne d'arguments.

    + + En général, la directive ProxyRequests doit être définie à + off lorsqu'on utilise la directive + ProxyPass. + +

    Supposons que le serveur local a pour adresse + http://example.com/ ; alors la ligne

    + + + ProxyPass /miroir/foo/ http://backend.example.com/ + + +

    va convertir en interne toute requête pour + http://example.com/miroir/foo/bar en une requête + mandatée pour http://backend.example.com/bar.

    + + +

    Si le premier argument se termine par un slash + /, il doit en être de même pour le second argument + et vice versa. Dans le cas contraire, il risque de manquer des + slashes nécessaires dans la requête résultante vers le serveur + d'arrière-plan et les résulats ne seront pas ceux attendus. +

    +
    + +

    Lorsque cette directive est utilisée dans une section Location, le premier + argument est omis et le répertoire local est obtenu à partir de + l'argument de la directive Location. Il en est de même à l'intérieur + d'une section LocationMatch, mais le résultat ne sera + probablement pas celui attendu car ProxyPassReverse va interpréter + l'expression rationnelle littéralement comme un chemin ; si besoin + est dans ce cas, définissez la directive ProxyPassReverse en dehors + de la section, ou dans une section Location séparée.

    + +

    La directive ProxyPass ne peut pas être placée dans une section + Directory ou + Files.

    + +

    Si vous avez besoin d'un configuration de mandataire inverse plus + souple, reportez-vous à la documentaion de la directive RewriteRule et son drapeau + [P].

    + +

    Le drapeau ! permet de soustraire un sous-répertoire + du mandat inverse, comme dans l'exemple suivant :

    + + + ProxyPass /miroir/foo/i !
    + ProxyPass /miroir/foo http://backend.example.com +
    + +

    va mandater toutes les requêtes pour /miroir/foo + vers backend.example.com, sauf les requêtes + pour /miroir/foo/i.

    + + Ordre de classement des directives + ProxyPass +

    Les directives ProxyPass et ProxyPassMatch sont traitées selon + leur ordre d'apparition dans le fichier de configuration. La + première qui correspond s'applique. Ainsi, vous devez classer les + directives ProxyPass qui + peuvent entrer en conflit, de l'URL la plus longue à la plus + courte. Dans le cas contraire, les directives dont l'URL + constitue une partie du début de l'URL de directives + apparaissant plus loin dans la configuration vont occulter ces + dernières. Notez que tout ceci est en relation avec le partage de + worker.

    + +

    Pour les mêmes raisons, les exclusions doivent apparaître + avant les directives ProxyPass + générales.

    + +
    + + Ordre d'évaluation des directives ProxyPass et RewriteRule +

    Les directives RewriteRule + sont évaluées avant les directives ProxyPass.

    ++
    + +

    ProxyPass clé=valeur Paramètres

    + +

    Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte + les jeux de connexions vers un serveur d'arrière-plan. Ainsi, les + connexions créées à la demande peuvent être conservées dans un + jeu pour une utilisation ultérieure. Les limites de la taille + du jeu de connexions et d'autres paramètres peuvent être définis au + niveau de la directive ProxyPass via des + arguments clé=valeur décrits dans les + tables ci-dessous.

    + +

    Par défaut, mod_proxy permettra de conserver le nombre maximum de + connexions pouvant être utilisées simultanément par le processus + enfant concerné du serveur web. Vous pouvez utiliser le paramètre + max pour réduire ce nombre par rapport à la valeur par + défaut. Vous pouvez aussi utiliser le paramètre ttl + pour définir une durée de vie optionnelle ; ainsi, les connections + qui n'ont pas été utilisées au bout de ttl secondes + seront fermées. Le paramètre ttl permet aussi + d'empêcher l'utilisation d'une connexion susceptible d'être fermée + suite à l'expiration de la durée de vie des connexions persistantes + sur le serveur d'arrière-plan.

    + +

    Le jeu de connexions est maintenu au niveau de chaque processus + enfant du serveur web, et max et les autres paramètres + ne font l'objet d'aucune coordination entre les différents processus + enfants, sauf bien sur dans le cas où un seul processus enfant est + permis par la configuration du module multiprocessus.

    + + + ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParamètreDéfautDescription
    min0Nombre minimum d'entrées dans le jeu de connexions, sans + rapport avec le nombre réel de connexions. Ne doit être modifié + par rapport à la valeur par défaut que dans des circonstances + spéciales où la mémoire du tas associée aux connexions + d'arrière-plan doit être préallouée ou conservée.
    max1...nNombre maximum de connexions permises vers le serveur + d'arrière-plan. La valeur par défaut pour cette limite est le + nombre de threads par processus pour le module multiprocessus + actif. Pour le MPM Prefork, la valeur est toujours 1, alors que + pour les autres, on peut la contrôler via la directive + ThreadsPerChild.
    smaxmaxLes entrées conservées du jeu de connexions au dessus de + cette limite sont libérées au cours de certaines opérations si + elles n'ont pas été utilisées au bout de leur durée de vie + définie par le paramètre ttl. Si l'entrée du jeu de + connexions est associée à une connexion, cette dernière sera + alors fermée. Ce paramètre ne doit être modifié par rapport à la + valeur par défaut que dans des circonstances spéciales où les + entrées du jeu de connexions, et toutes connexions associées qui + ont dépassé leur durée de vie doivent être respectivement + libérées ou fermées plus impérativement.
    acquire-Cette clé permet de définir le délai maximum d'attente pour + une connexion libre dans le jeu de connexions, en millisecondes. + S'il n'y a pas de connexion libre dans le jeu, Apache renverra + l'état SERVER_BUSY au client. +
    connectiontimeouttimeoutDélai d'attente d'une connexion en secondes. + La durée en secondes pendant laquelle Apache va attendre pour + l'établissement d'une connexion vers le serveur d'arrière-plan. + Le délai peut être spécifié en millisecondes en ajoutant le + suffixe ms. +
    disablereuseOffVous pouvez utiliser cette clé pour forcer mod_proxy à + fermer immédiatement une connexion vers le serveur + d'arrière-plan après utilisation, et ainsi désactiver le jeu de + connexions permanentes vers ce serveur. Ceci peut s'avérer utile + dans des situations où un pare-feu situé entre Apache et le + serveur d'arrière-plan (quelque soit le protocole) interrompt + des connexions de manière silencieuse, ou lorsque le serveur + d'arrière-plan lui-même est accessible par rotation de DNS + (round-robin DNS). Pour désactiver la réutilisation du jeu de + connexions, définissez cette clé à On. +
    flushpacketsoffPermet de définir si le module mandataire doit vider + automatiquement le tampon de sortie après chaque tronçon de + données. 'off' signifie que le tampon sera vidé si nécessaire, + 'on' que le tampon sera vidé après chaque envoi d'un + tronçon de données, et 'auto' que le tampon sera vidé après un + délai de 'flushwait' millisecondes si aucune entrée n'est reçue. + Actuellement, cette clé n'est supportée que par AJP. +
    flushwait10Le délai d'attente pour une entrée additionnelle, en + millisecondes, avant le vidage du tampon en sortie dans le cas + où 'flushpackets' est à 'auto'. +
    keepaliveOff

    Cette clé doit être utilisée lorsque vous avez un pare-feu + entre Apache httpd et le serveur d'arrière-plan, et si ce dernier tend + à interrompre les connexions inactives. Cette clé va faire en + sorte que le système d'exploitation envoie des messages + KEEP_ALIVE sur chacune des connexions inactives et + ainsi éviter la fermeture de la connexion par le pare-feu. + Pour conserver les connexions persistantes, definissez cette + propriété à On.

    +

    La fréquence de vérification des connexions TCP persistantes + initiale et subséquentes dépend de la configuration globale de l'OS, + et peut atteindre 2 heures. Pour être utile, la fréquence configurée + dans l'OS doit être inférieure au seuil utilisé par le pare-feu.

    +
    lbset0Définit le groupe de répartition de charge dont le serveur cible + est membre. Le répartiteur de charge va essayer tous les membres + d'un groupe de répartition de charge de numéro inférieur avant + d'essayer ceux dont le groupe possède un numéro supérieur. +
    ping0Avec la clé ping, le serveur web envoie une requête + CPING sur la connexion ajp13 avant de rediriger une + requête. La valeur correspond au délai d'attente de la réponse + CPONG. Cette fonctionnalité a été ajoutée afin de + pallier aux problèmes de blocage et de surcharge des serveurs + Tomcat, et nécessite le support de ping/pong ajp13 qui a été + implémenté dans Tomcat 3.3.2+, 4.1.28+ et 5.0.13+. Le trafic + réseau peut s'en trouver augmenté en fonctionnement normal, ce + qui peut poser problème, mais peut s'en trouver diminué dans les + cas où les noeuds de cluster sont arrêtés ou surchargés. Cette + clé n'est actuellement utilisable qu'avec AJP. Le délai peut + aussi être défini en millisecondes en ajoutant le suffixe + ms. +
    loadfactor1Facteur de charge du serveur cible à utiliser avec les + membres d'un groupe de répartition de charge. Il s'agit d'un + nombre entre 1 et 100 définissant le facteur de charge appliqué + au serveur cible. +
    redirect-Route pour la redirection du serveur cible. Cette valeur est en + général définie dynamiquement pour permettre une suppression + sécurisée du noeud du cluster. Si cette clé est définie, toutes + les requêtes sans identifiant de session seront redirigées vers + le membre de groupe de répartition de charge dont la route + correspond à la valeur de la clé. +
    retry60Délai entre deux essais du serveur cible du jeu de connexions en + secondes. Si le serveur cible du jeu de connexions vers le serveur + d'arrière-plan est dans un état d'erreur, Apache ne redirigera + pas de requête vers ce serveur avant l'expiration du délai + spécifié. Ceci permet d'arrêter le serveur d'arrière-plan pour + maintenance, et de le remettre en ligne plus tard. Une valeur de + 0 signifie toujours essayer les serveurs cibles dans un état d'erreur + sans délai. +
    route-La route du serveur cible lorsqu'il est utilisé au sein d'un + répartiteur de charge. La route est une valeur ajoutée à + l'identifiant de session. +
    status-Valeur constituée d'une simple lettre et définissant l'état + initial de ce serveur cible : 'D' correspond à "désactivé", 'S' à + "arrêté", 'I' à "erreurs ignorées", 'H' à "interruption à chaud" + et 'E' à "erreur". Une valeur d'état peut être définie (ce qui + correspond au comportement par défaut) en préfixant la valeur + par '+', ou annulée en préfixant la valeur par '-'. Ainsi, la + valeur 'S-E' définit l'état de ce serveur cible à "arrêté" et supprime + le drapeau "en-erreur". +
    timeoutProxyTimeoutDélai d'attente de la connexion en secondes. Le nombre de + secondes pendant lesquelles Apache attend l'envoi de + données vers le serveur d'arrière-plan. +
    ttl-Durée de vie des connexions inactives et des entrées + associées du jeu de connexions. Lorsque cette limite est + atteinte, la connexion concernée ne sera plus utilisée ; elle + sera ensuite fermée au bout d'un certain temps. +
    + +

    Si l'URL de la directive ProxyPass débute par + balancer:// (par exemple: + balancer://cluster/, toute information relative au + chemin est ignorée), alors un serveur cible virtuel ne communiquant pas + réellement avec le serveur d'arrière-plan sera créé. Celui-ci sera + en fait responsable de la gestion de plusieurs serveurs cibles "réels". Dans + ce cas, un jeu de paramètres particuliers s'applique à ce serveur cible + virtuel. Voir mod_proxy_balancer pour plus + d'informations à propos du fonctionnement du répartiteur de + charge. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParamètreDéfautDescription
    lbmethodbyrequestsMéthode de répartition de charge utilisée. Permet de + sélectionner la méthode de planification de la répartition de + charge à utiliser. La valeur est soit byrequests, + pour effectuer un décompte de requêtes pondérées, soit + bytraffic, pour effectuer une répartition en + fonction du décompte des octets transmis, soit + bybusyness (à partir de la version 2.2.10 du + serveur HTTP Apache), pour effectuer une répartition en + fonction des requêtes en attente. La valeur par défaut est + byrequests. +
    maxattempts1 de moins que le nombre de workers, ou 1 avec un seul + workerNombre maximum d'échecs avant abandon. +
    nofailoverOffSi ce paramètre est défini à On, la session va + s'interrompre si le serveur cible est dans un état d'erreur ou + désactivé. Définissez ce paramètre à On si le serveur + d'arrière-plan ne supporte pas la réplication de session. +
    stickysession-Nom de session persistant du répartiteur. La valeur est + généralement du style JSESSIONID ou + PHPSESSIONID, et dépend du serveur d'application + d'arrière-plan qui supporte les sessions. Si le serveur + d'application d'arrière-plan utilise des noms différents pour + les cookies et les identifiants codés d'URL (comme les + conteneurs de servlet), séparez-les par le caractère '|'. La + première partie contient le cookie et la seconde le chemin. +
    scolonpathdelimOffSi ce paramètre est défini à On, le caractère + ';' sera utilisé comme séparateur de chemin de session + persistante additionnel. Ceci permet principalement de simuler + le comportement de mod_jk lorsqu'on utilise des chemins du style + JSESSIONID=6736bcf34;foo=aabfa. +
    timeout0Délai du répartiteur en secondes. Si ce paramètre est + défini, sa valeur correspond à la durée maximale d'attente pour + un serveur cible libre. Le comportement par défaut est de ne pas + attendre. +
    failonstatus-Un code ou une liste de codes d'état HTTP séparés par des + virgules. S'il est défini, ce paramètre va forcer le worker dans + un état d'erreur lorsque le serveur d'arrière-plan retounera un + code d'état spécifié dans la liste. Le rétablissement du worker + est le même qu'avec les autres erreurs de worker. + Disponible à partir de la version 2.2.17 du serveur HTTP Apache. +
    failontimeoutOffSi ce paramètre est défini à "On", un délai d'attente + dépassé en entrée/sortie après envoi d'une requête au serveur + d'arrière-plan va mettre le processus en état d'erreur. La + sortie de cet état d'erreur se passe de la même façon que pour + les autres erreurs. Disponible à partir de la version 2.2.25 du + serveur HTTP Apache. +
    forcerecoveryOnForce la récupération immédiate de tous les membres du + répartiteur sans tenir compte de leur paramètre de nouvel essai + si tous les membres du répartiteur sont dans un état d'erreur. + Dans certains cas cependant, un serveur d'arrière-plan déjà + surchargé peut voir ses problèmes s'aggraver si la récupération + de tous les membres du répartiteur est forcée sans tenir compte + de leur paramètre de nouvel essai. Dans ce cas, définissez ce + paramètre à Off. Disponible depuis la version + 2.2.23 du serveur HTTP Apache. +
    +

    Exemple de configuration d'un répartiteur

    + + ProxyPass /zone-speciale http://special.example.com smax=5 max=10
    + ProxyPass / balancer://mon-cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    + <Proxy balancer://mon-cluster>
    + + BalancerMember ajp://1.2.3.4:8009
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=20
    + # Serveur moins puissant ; faites-lui traiter moins de requêtes,
    + BalancerMember ajp://1.2.3.6:8009 loadfactor=5
    +
    + </Proxy> +
    + +

    Configuration d'un serveur cible de réserve qui ne sera utilisé que si + aucun autre serveur cible n'est disponible

    + + ProxyPass / balancer://hotcluster/
    + <Proxy balancer://hotcluster>
    + + BalancerMember ajp://1.2.3.4:8009 loadfactor=1
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=2
    + # La ligne suivante configure le serveur cible de réserve
    + BalancerMember ajp://1.2.3.6:8009 status=+H
    + ProxySet lbmethod=bytraffic +
    + </Proxy> +
    + +

    Mots-clés additionnels de ProxyPass

    + +

    Normalement, mod_proxy va mettre sous leur forme canonique les + URLs traitées par ProxyPass. Mais ceci peut être incompatible avec + certains serveurs d'arrière-plan, et en particulier avec ceux qui + utilisent PATH_INFO. Le mot-clé optionnel + nocanon modifie ce comportement et permet de transmettre + le chemin d'URL sous sa forme brute au serveur d'arrière-plan. Notez + que ceci peut affecter la sécurité de votre serveur d'arrière-plan, + car la protection limitée contre les attaques à base d'URL que + fournit le mandataire est alors supprimée.

    + +

    Le mot-clé optionnel interpolate (disponible depuis + httpd 2.2.9), en combinaison avec la directive + ProxyPassInterpolateEnv, permet à ProxyPass + d'interpoler les variables d'environnement à l'aide de la syntaxe + ${VARNAME}. Notez que de nombreuses variables + d'environnement standard dérivées de CGI n'existeront pas lorsque + l'interpolation se produit ; vous devrez alors encore avoir avoir + recours à mod_rewrite pour des règles + complexes. Notez aussi que l'interpolation n'est pas supportée dans + la partie protocole d'une URL. La détermination dynamique du + protocole peut être effectuée à l'aide de + mod_rewrite comme dans l'exemple suivant :

    + + +RewriteEngine On + +RewriteCond %{HTTPS} =off +RewriteRule . - [E=protocol:http] +RewriteCond %{HTTPS} =on +RewriteRule . - [E=protocol:https] + +RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P] +ProxyPassReverse /mirror/foo/ http://backend.example.com/ +ProxyPassReverse /mirror/foo/ https://backend.example.com/ + + +
    +
    + + +ProxyPassMatch +Fait correspondre des serveurs distants dans l'espace d'URL +du serveur local en utilisant des expressions rationnelles +ProxyPassMatch [regex] !|url +[clé=valeur + [clé=valeur ...]] +server configvirtual host +directory + +Disponible depuis la version 2.2.5 +d'Apache + + +

    Cette directive est identique à la directive ProxyPass, mais fait usage des + expressions rationnelles, au lieu d'une simple comparaison de + préfixes. L'expression rationnelle spécifiée est comparée à + l'url, et si elle correspond, le serveur va substituer + toute correspondance entre parenthèses dans la chaîne donnée et + l'utiliser comme nouvelle url.

    + +

    Supposons que le serveur local a pour adresse + http://example.com/ ; alors

    + + + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1 + + +

    va provoquer la conversion interne de la requête locale + http://example.com/foo/bar.gif en une requête mandatée + pour http://backend.example.com/foo/bar.gif.

    + + Note +

    L'argument URL doit pouvoir être interprété en tant qu'URL + avant les substitutions d'expressions rationnelles (et + doit aussi l'être après). Ceci limite les correspondances que vous + pouvez utiliser. Par exemple, si l'on avait utilisé

    + + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1 + +

    dans l'exemple précédent, nous aurions provoqué une erreur de + syntaxe au démarrage du serveur. C'est une bogue (PR 46665 dans + ASF bugzilla), et il est possible de la contourner en reformulant + la correspondance :

    + + ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1 + +
    + +

    Le drapeau ! vous permet de ne pas mandater un + sous-répertoire donné.

    + +

    Lorsque cette directive se situe à l'intérieur d'une section + LocationMatch, + le premier argument est omis et l'expression rationnelle est obtenue + à partir de la directive LocationMatch.

    + +

    Si vous avez besoin d'une configuration de mandataire inverse + plus flexible, reportez-vous à la directive RewriteRule avec le drapeau + [P].

    + + + Avertissement à propos de la sécurité +

    Lors de la construction de l'URL cible de la règle, il convient + de prendre en compte l'impact en matière de sécurité qu'aura le + fait de permettre au client d'influencer le jeu d'URLs pour + lesquelles votre serveur agira en tant que mandataire. + Assurez-vous que la partie protocole://nom-serveur de l'URL soit + fixe, ou ne permette pas au client de l'influencer induement.

    +
    +
    +
    + + +ProxyPassReverse +Ajuste l'URL dans les en-têtes de la réponse HTTP envoyée +par un serveur mandaté en inverse +ProxyPassReverse [chemin] url +[interpolate] +server configvirtual host +directory + + + +

    Cette directive permet de faire en sorte qu'Apache ajuste l'URL + dans les en-têtes Location, + Content-Location et URI des réponses de + redirection HTTP. Ceci est essentiel lorsqu'Apache est utilisé en + tant que mandataire inverse (ou passerelle), afin d'éviter de + court-circuiter le mandataire inverse suite aux redirections HTTP + sur le serveur d'arrière-plan qui restent derrière le mandataire + inverse.

    + +

    Seuls les en-têtes de réponse HTTP spécialement mentionnés + ci-dessus seront réécrits. Apache ne réécrira ni les autres en-têtes + de réponse, ni les références d'URLs dans les pages HTML. Cela + signifie que dans le cas où un contenu mandaté contient des + références à des URLs absolues, elles court-circuiteront le + mandataire. Le module mod_proxy_html + de Nick Kew est un module tiers qui parcourt le code HTML et réécrit + les références d'URL.

    + +

    chemin est le nom d'un chemin virtuel local. + url est une URL partielle pour le serveur distant. Ces + paramètres s'utilisent de la même façon qu'avec la directive ProxyPass.

    + +

    Supposons par exemple que le serveur local a pour adresse + http://example.com/ ; alors

    + + + ProxyPass /miroir/foo/ http://backend.example.com/
    + ProxyPassReverse /miroir/foo/ http://backend.example.com/
    + ProxyPassReverseCookieDomain backend.example.com public.example.com
    + ProxyPassReverseCookiePath / /miroir/foo/ +
    + +

    ne va pas seulement provoquer la conversion interne d'une requête + locale pour http://example.com/miroir/foo/bar en une + requête mandatée pour http://backend.example.com/bar + (la fonctionnalité fournie par ProxyPass). Il va + aussi s'occuper des redirections que le serveur + backend.example.com envoie lorsqu'il redirige + http://backend.example.com/bar vers + http://backend.example.com/quux. Apache + corrige ceci en http://example.com/miroir/foo/quux + avant de faire suivre la redirection HTTP au client. Notez que le + nom d'hôte utilisé pour construire l'URL est choisi en respectant la + définition de la directive UseCanonicalName.

    + +

    Notez que la directive ProxyPassReverse + peut aussi être utilisée en conjonction avec la + fonctionnalité de mandataire (RewriteRule ... [P]) du module + mod_rewrite, car elle ne dépend pas d'une directive + ProxyPass + correspondante.

    + +

    Le mot-clé optionnel interpolate (disponible depuis + httpd 2.2.9), utilisé en combinaison avec la directive + ProxyPassInterpolateEnv, permet + l'interpolation des variables d'environnement spécifiées en + utilisant le format ${VARNAME} Notez que l'interpolation + n'est pas supportée dans la partie protocole d'une URL. +

    + +

    Lorsque cette directive est utilisée dans une section Location, le premier + argument est omis et le répertoire local est obtenu à partir de + l'argument de la directive Location. Il en est de même à l'intérieur + d'une section LocationMatch, mais le résultat ne + correspondra probablement pas à ce que vous attendez, car + ProxyPassReverse interprète l'expression rationnelle littéralement + comme un chemin ; si nécessaire dans cette situation, spécifiez la + directive ProxyPassReverse en dehors de la section, ou dans une + section Location + séparée. +

    + +

    Cette directive ne peut pas être placée dans une section + Directory ou + Files.

    +
    +
    + + +ProxyPassReverseCookieDomain +Ajuste la chaîne correspondant au domaine dans les en-têtes +Set-Cookie en provenance d'un serveur mandaté +ProxyPassReverseCookieDomain domaine-interne +domaine-public [interpolate] +server configvirtual host +directory + + +

    L'utilisation de cette directive est similaire à celle de la +directive ProxyPassReverse, +mais au lieu de réécrire des en-têtes qui contiennent des URLs, elle +réécrit la chaîne correspondant au domaine dans les en-têtes +Set-Cookie.

    +
    +
    + + + +ProxyPassReverseCookiePath +Ajuste la chaîne correspondant au chemin dans les en-têtes +Set-Cookie en provenance d'un serveur mandaté +ProxyPassReverseCookiePath chemin-interne +chemin-public [interpolate] +server configvirtual host +directory + + +

    +Cette directive s'avère utile en conjonction avec la directive +ProxyPassReverse dans les +situations où les chemins d'URL d'arrière-plan correspondent à des +chemins publics sur le mandataire inverse. Cette directive permet de +réécrire la chaîne path dans les en-têtes +Set-Cookie. Si le début du chemin du cookie correspond à +chemin-interne, le chemin du cookie sera remplacé par +chemin-public. +

    +Dans l'exemple fourni avec la directive ProxyPassReverse, la directive :

    + + ProxyPassReverseCookiePath / /mirror/foo/ + +

    va réécrire un cookie possédant un chemin d'arrière-plan / +(ou /example ou en fait tout chemin) +en /mirror/foo/.. +

    +
    +
    + + + +AllowCONNECT +Ports autorisés à se CONNECTer à travers le +mandataire +AllowCONNECT port [port] ... +AllowCONNECT 443 563 +server configvirtual host + + + +

    La directive AllowCONNECT permet de + spécifier une liste de numéros de ports auxquels la méthode de + mandataire CONNECT pourra se connecter. Les navigateurs + d'aujourd'hui utilisent cette méthode dans le cas où une connexion + https est requise et où le tunneling mandataire sur + HTTP est en service.

    + +

    Par défaut, seuls les ports par défauts https (443) + et snews (563) sont pris en compte. Vous pouvez + utiliser la directive AllowCONNECT pour + outrepasser ces valeurs par défaut et n'autoriser les connexions que + vers les ports spécifiés.

    + +

    Notez que le module mod_proxy_connect doit être + chargé dans le serveur pour pouvoir accéder au support de + CONNECT.

    +
    +
    + + +ProxyBlock +Termes, serveurs ou domaines bloqués par le +mandataire +ProxyBlock *|terme|serveur|domaine +[terme|serveur|domaine] ... +server configvirtual host + + + +

    La directive ProxyBlock permet de + spécifier une liste de termes, serveurs et/ou domaines, séparés par + des espaces. Les requêtes de documents HTTP, HTTPS, FTP vers des + sites dont les noms contiennent des termes, noms de serveur ou + domaine correspondants seront bloqués par le serveur + mandataire. La module proxy va aussi tenter de déterminer les + adresses IP des items de la liste qui peuvent correspondre à des + noms d'hôtes au cours du démarrage, et les mettra en cache à des + fins de comparaisons ultérieures. Ceci peut ralentir le démarrage du + serveur.

    + + Exemple + ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu + + +

    rocky.wotsamattau.edu aurait aussi correspondu s'il + avait été spécifié par son adresse IP.

    + +

    Notez que wotsamattau aurait suffi pour correspondre + à wotsamattau.edu.

    + +

    Notez aussi que

    + + + ProxyBlock * + + +

    bloque les connexions vers tous les sites.

    +
    +
    + + +ProxyReceiveBufferSize +Taille du tampon réseau pour les connexions mandatées HTTP +et FTP +ProxyReceiveBufferSize octets +ProxyReceiveBufferSize 0 +server configvirtual host + + + +

    La directive ProxyReceiveBufferSize permet + de spécifier une taille de tampon réseau explicite (TCP/IP) pour les + connexions mandatées HTTP et FTP, afin d'améliorer le débit de + données. Elle doit être supérieure à 512 ou définie à + 0 pour indiquer que la taille de tampon par défaut du + système doit être utilisée.

    + + Exemple + ProxyReceiveBufferSize 2048 + +
    +
    + + +ProxyIOBufferSize +Détermine la taille du tampon interne de transfert de +données +ProxyIOBufferSize octets +ProxyIOBufferSize 8192 +server configvirtual host + + + +

    La directive ProxyIOBufferSize permet + d'ajuster la taille du tampon interne utilisé comme bloc-note pour + les transferts de données entre entrée et sortie. La taille doit + être au minimum égale à 8192 octets.

    + +

    Lorsqu'on utilise mod_proxy_ajp, la valeur + minimale est alignée sur la limite de 1024 octets, et les valeurs + supérieures à 65536 octets sont ramenées à 65536 octets, comme préconisé + par le protocole AJP.

    + +

    Dans la plupart des cas, il n'y a aucune raison de modifier cette + valeur.

    + +
    +
    + + +ProxyMaxForwards +Nombre maximum de mandataires à travers lesquelles une +requête peut être redirigée +ProxyMaxForwards nombre +ProxyMaxForwards -1 +server configvirtual host + +Disponible depuis Apache 2.0 ; comportement par défaut +modifié dans 2.2.7 + + +

    La directive ProxyMaxForwards permet de + spécifier le nombre maximum de mandataires à travers lesquels une + requête peut passer dans le cas où la la requête ne contient pas + d'en-tête Max-Forwards. Ceci permet de se prémunir + contre les boucles infinies de mandataires ou contre les attaques de + type déni de service.

    + + Exemple + ProxyMaxForwards 15 + + +

    Notez que la définition de la directive + ProxyMaxForwards constitue une violation du + protocole HTTP/1.1 (RFC2616), qui interdit à un mandataire de + définir Max-Forwards si le client ne l'a pas fait + lui-même. Les versions précédentes d'Apache la définissaient + systématiquement. Une valeur négative de + ProxyMaxForwards, y compris la valeur par + défaut -1, implique un comportement compatible avec le protocole, + mais vous expose aux bouclages infinis.

    +
    +
    + + +NoProxy +Serveurs, domaines ou réseaux auquels on se connectera +directement +NoProxy domaine [domaine] ... +server configvirtual host + + + +

    Cette directive n'a d'utilité que pour les serveurs mandataires + Apache au sein d'Intranets. La directive + NoProxy permet de spécifier une liste de + sous-réseaux, d'adresses IP, de serveurs et/ou de domaines séparés + par des espaces. Une requête pour un serveur qui correspond à un ou + plusieurs critères sera toujours servie par ce serveur directement, + sans être redirigée vers le(s) serveur(s) mandataire(s) défini(s) par + la directive ProxyRemote.

    + + Exemple + ProxyRemote * http://pare-feu.example.com:81
    + NoProxy .example.com 192.168.112.0/21 +
    + +

    Le type des arguments serveur de la directive + NoProxy appartiennent à la liste suivante + :

    + +
    + +
    Domaine
    +
    +

    Un domaine est ici un nom de domaine DNS partiellement + qualifié précédé d'un point. Il représente une liste de serveurs qui + appartiennent logiquement au même domaine ou à la même zonz DNS + (en d'autres termes, les nom des serveurs se terminent tous par + domaine).

    + + Exemple + .com .apache.org. + + +

    Pour faire la distinction entre domaines et nom d'hôtes (des points de vue à la fois + syntaxique et + sémantique, un domaine DNS pouvant aussi avoir un enregistrement DNS + de type A !), les domaines sont toujours spécifiés en les + préfixant par un point.

    + + Note +

    Les comparaisons de noms de domaines s'effectuent sans tenir + compte de la casse, et les parties droites des Domaines + sont toujours censées correspondre à la racine de l'arborescence + DNS, si bien que les domaines .ExEmple.com et + .example.com. (notez le point à la fin du nom) sont + considérés comme identiques. Comme une comparaison de domaines ne + nécessite pas de recherche DNS, elle est beaucoup plus efficace + qu'une comparaison de sous-réseaux.

    +
    + + +
    Sous-réseau
    +
    +

    Un Sous-réseau est une adresse internet partiellement + qualifiée sous forme numérique (quatre nombres séparés par des + points), optionnellement suivie d'un slash et du masque de + sous-réseau spécifiant le nombre de bits significatifs dans le + Sous-réseau. Il représente un sous-réseau de serveurs qui + peuvent être atteints depuis la même interface réseau. En l'absence + de masque de sous-réseau explicite, il est sous-entendu que les + digits manquants (ou caractères 0) de fin spécifient le masque de + sous-réseau (Dans ce cas, le masque de sous-réseau ne peut être + qu'un multiple de 8). Voici quelques exemples :

    + +
    +
    192.168 ou 192.168.0.0
    +
    le sous-réseau 192.168.0.0 avec un masque de sous-réseau + implicite de 16 bits significatifs (parfois exprimé sous la forme + 255.255.0.0)
    +
    192.168.112.0/21
    +
    le sous-réseau 192.168.112.0/21 avec un masque de + sous-réseau implicite de 21 bits significatifs (parfois exprimé + sous la forme255.255.248.0)
    +
    + +

    Comme cas extrèmes, un Sous-réseau avec un masque de + sous-réseau de 32 bits significatifs est équivalent à une adresse IP, alors qu'un Sous-réseau avec un masque de + sous-réseau de 0 bit significatif (c'est à dire 0.0.0.0/0) est + identique à la constante _Default_, et peut correspondre + à toute adresse IP.

    + + +
    Adresse IP
    +
    +

    Une Adresse IP est une adresse internet pleinement + qualifiée sous forme numérique (quatre nombres séparés par des + points). En général, cette adresse représente un serveur, mais elle + ne doit pas nécessairement correspondre à un nom de domaine DNS.

    + Exemple + 192.168.123.7 + + + Note +

    Une Adresse IP ne nécessite pas de résolution DNS, + et peut ainsi s'avérer plus efficace quant aux performances + d'Apache.

    +
    + + +
    Nom de serveur
    +
    +

    Un Nom de serveur est un nom de domaine DNS pleinement + qualifié qui peut être résolu en une ou plusieurs adresses IP par le + service de noms de domaines DNS. Il représente un hôte logique (par + opposition aux Domaines, voir + ci-dessus), et doit pouvoir être résolu en une ou plusieurs adresses IP (ou souvent en une liste + d'hôtes avec différentes adresses + IP).

    + + Exemples + prep.ai.example.com
    + www.apache.org +
    + + Note +

    Dans de nombreuses situations, il est plus efficace de + spécifier une adresse IP qu'un + Nom de serveur car cela évite d'avoir à effectuer une + recherche DNS. La résolution de nom dans Apache peut prendre un + temps très long lorsque la connexion avec le serveur de noms + utilise une liaison PPP lente.

    +

    Les comparaisons de Nom de serveur s'effectuent sans tenir + compte de la casse, et les parties droites des Noms de serveur + sont toujours censées correspondre à la racine de l'arborescence + DNS, si bien que les domaines WWW.ExEmple.com et + www.example.com. (notez le point à la fin du nom) sont + considérés comme identiques.

    +
    +
    +
    +Problèmes liés au DNS +
    + + +ProxyTimeout +Délai d'attente réseau pour les requêtes +mandatées +ProxyTimeout secondes +Valeur de la directive Timeout +server configvirtual host + +Disponible depuis la version 2.0.31 d'Apache + + +

    Cette directive permet à l'utilisateur de spécifier un délai pour + les requêtes mandatées. Ceci s'avère utile dans le cas d'un serveur + d'applications lent et bogué qui a tendance à se bloquer, et si vous + préférez simplement renvoyer une erreur timeout et abandonner la + connexion en douceur plutôt que d'attendre jusqu'à ce que le serveur + veuille bien répondre.

    +
    +
    + + +ProxyDomain +Nom de domaine par défaut pour les requêtes +mandatées +ProxyDomain Domaine +server configvirtual host + + + +

    Cette directive n'a d'utilité que pour les serveurs mandataires + Apache au sein d'un Intranet. La directive + ProxyDomain permet de spécifier le domaine + par défaut auquel le serveur mandataire apache appartient. Si le + serveur reçoit une requête pour un hôte sans nom de domaine, il va + générer une réponse de redirection vers le même hôte suffixé par le + Domaine spécifié.

    + + Exemple + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21
    + ProxyDomain .example.com +
    +
    +
    + + +ProxyVia +Information fourni dans l'en-tête de réponse HTTP +Via pour les requêtes mandatées +ProxyVia On|Off|Full|Block +ProxyVia Off +server configvirtual host + + + +

    Cette directive permet de contrôler l'utilisation de l'en-tête + HTTP Via: par le mandataire. Le but recherché est de + contrôler le flux des requêtes mandatées tout au long d'une chaîne + de serveurs mandataires. Voir RFC 2616 (HTTP/1.1), + section 14.45 pour une description des lignes d'en-tête + Via:.

    + +
      +
    • Si elle est définie à Off, valeur par défaut, cette + directive n'effectue aucun traitement particulier. Si une requête ou + une réponse contient un en-tête Via:, il est transmis + sans modification.
    • + +
    • Si elle est définie à On, chaque requête ou réponse + se verra ajouter une ligne d'en-tête Via: pour le + serveur courant.
    • + +
    • Si elle est définie à Full, chaque ligne d'en-tête + Via: se verra ajouter la version du serveur Apache sous + la forme d'un champ de commentaire Via:.
    • + +
    • Si elle est définie à Block, chaque requête + mandatée verra ses lignes d'en-tête Via: supprimées. + Aucun nouvel en-tête Via: ne sera généré.
    • +
    +
    +
    + + +ProxyErrorOverride +Outrepasser les pages d'erreur pour les contenus +mandatés +ProxyErrorOverride On|Off +ProxyErrorOverride Off +server configvirtual host + +Disponible depuis la version 2.0 d'Apache + + +

    Cette directive est utile pour les configurations de mandataires + inverses, lorsque vous souhaitez que les pages d'erreur envoyées + aux utilisateurs finaux présentent un aspect homogène. Elle permet + aussi l'inclusion de fichiers (via les SSI de + mod_include) pour obtenir le code d'erreur et agir + en conséquence (le comportement par défaut afficherait la page + d'erreur du serveur mandaté, alors que c'est le message d'erreur SSI + qui sera affiché si cette directive est à "on").

    + +

    Cette directive n'affecte pas le traitement des réponses + informatives (1xx), de type succès normal (2xx), ou de redirection + (3xx).

    +
    +
    + + +ProxyPassInterpolateEnv +Active l'interpolation des variables d'environnement dans +les configurations de mandataires inverses +ProxyPassInterpolateEnv On|Off +ProxyPassInterpolateEnv Off +server config +virtual host +directory + +Disponible depuis la version 2.2.9 d'Apache + + +

    Cette directive, ainsi que l'argument interpolate des + directives ProxyPass, + ProxyPassReverse, + ProxyPassReverseCookieDomain et + ProxyPassReverseCookiePath, permet de + configurer dynamiquement un mandataire inverse à l'aide de + variables d'environnement, ces dernières pouvant être définies par un + autre module comme mod_rewrite. Elle affecte les + directives ProxyPass, + ProxyPassReverse, + ProxyPassReverseCookieDomain, et + ProxyPassReverseCookiePath, en leur indiquant + de remplacer la chaîne ${nom_var} dans les directives + de configuration par la valeur de la variable d'environnement + nom_var (si l'option interpolate est + spécifiée).

    +

    Conservez cette directive à off (pour les performances du + serveur), sauf si vous en avez réellement besoin.

    +
    +
    + + +ProxyStatus +Affiche l'état du répartiteur de charge du mandataire dans +mod_status +ProxyStatus Off|On|Full +ProxyStatus Off +server config +virtual host + +Disponible depuis la version 2.2 d'Apache + + +

    Cette directive permet de spécifier si les données d'état du + répartiteur de charge du mandataire doivent être affichées via la + page d'état du serveur du module mod_status.

    + Note +

    L'argument Full produit le même effet que + l'argument On.

    +
    + +
    +
    + +
    diff --git a/docs/manual/mod/mod_proxy.xml.ja b/docs/manual/mod/mod_proxy.xml.ja index 314304f7795..04db0072db0 100644 --- a/docs/manual/mod/mod_proxy.xml.ja +++ b/docs/manual/mod/mod_proxy.xml.ja @@ -1,15 +1,15 @@ - + - + -
    $B4pK\$NNc(B +
    基本の例 -

    $B0J2<$NNc$O$l$N@bL@$r$*FI$_$/$@$5$$!#(B

    +

    以下の例は手始めの簡単な例です。個々のディレクティブの意味は + それぞれの説明をお読みください。

    -

    $B$^$?%-%c%C%7%e5!G=$rM-8z$K$7$?$$>l9g$O!"(Bmod_cache - $B$N@bL@$rFI$s$G$/$@$5$$!#(B

    +

    またキャッシュ機能を有効にしたい場合は、mod_cache + の説明を読んでください。

    - $B%U%)%o!<%I%W%m%-%7(B + リバースプロキシ + ProxyPass /foo http://foo.example.com/bar
    + ProxyPassReverse /foo http://foo.example.com/bar +
    + + フォワードプロキシ ProxyRequests On
    ProxyVia On

    @@ -140,199 +146,203 @@ </Proxy>
    - $B%j%P!<%9%W%m%-%7(B - ProxyRequests Off
    -
    - <Proxy *>
    - - Order deny,allow
    - Allow from all
    -
    - </Proxy>
    -
    - ProxyPass /foo http://foo.example.com/bar
    - ProxyPassReverse /foo http://foo.example.com/bar -
    -
    $B%W%m%-%7$X$N%"%/%;%9@)8f(B -

    $B%W%m%-%7$N%"%/%;%9$O0J2<$N$h$&$K(B Proxy $B%3%s%F%J$NCf$K(B - $B%G%#%l%/%F%#%V$r=q$/$3$H$G@)8f$G$-$^$9(B:

    +
    ワーカー +

    プロキシは ワーカー と呼ばれるオブジェクトで + オリジンサーバとの通信パラメータの設定を管理します。 + ふたつの組み込みワーカーが存在します。デフォルトのフォワードプロキシワーカーと + デフォルトのリバースプロキシワーカーです。 + 追加のワーカーを明示的に設定可能です。

    - - <Proxy *>
    - - Order Deny,Allow
    - Deny from all
    - Allow from 192.168.0
    -
    - </Proxy> -
    +

    ふたつのデフォルトワーカーは固定の設定を持ちます。 + リクエストが他のワーカーにマッチしない場合に使われます。 + これらは HTTP のキープアライブもコネクションプーリングも使いません。 + オリジンサーバへの TCP 接続はリクエストのたびに接続と切断をします。

    -

    $B%"%/%;%9@)8f$N$?$a$N%G%#%l%/%F%#%V$N$h$j>\$7$$>pJs$O(B - mod_authz_host $B$r$*FI$_$/$@$5$$!#(B

    - -

    (ProxyRequests $B%G%#%l%/%F%#%V$r(B - $B;H$C$F(B) $B%U%)%o!<%I%W%m%-%7$r@_Dj$7$F$$$k>l9g$O!"87$7$/%"%/%;%9(B - $B@)8B$r9T$J$&$3$H$,Hs>o$KBg@Z$G$9!#$=$&$7$J$$$H!"G$0U$N%/%i%$%"%s%H$,(B - $B?H85$rL@$+$9$3$H$J$/G$0U$N%[%9%H$K%"%/%;%9$9$k$?$a$K%5!<%P$r;H$&$3$H$,(B - $B$G$-$F$7$^$$$^$9!#$3$l$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"%$%s%?!<%M%C%H(B - $BA4BN$K$H$C$F$b4m81$J$3$H$G$9!#(B(ProxyRequests Off $B$K$7$F(B - ProxyPass $B%G%#%l%/%F%#%V$r;H$C$F(B) - $B%j%P!<%9%W%m%-%7$r;H$C$F$$$k>l9g$K$O!"%/%i%$%"%s%H$O$"$J$?$,L@<(E*$K(B - $B@_Dj$7$?%[%9%H$K$7$+%"%/%;%9$G$-$J$$$?$a!"%U%)%o!<%I%W%m%-%7$N$H$-(B - $B$[$I%"%/%;%9@)8f$KNO$rCm$,$J$/$F$bBg>fIW$G$9!#(B

    +

    明示的に設定するワーカーは、URL で識別されます。 + 通常、ProxyPass + または ProxyPassMatch + をリバースプロキシ設定に使うことで、これらのワーカーを生成および設定します:

    -
    - -
    FTP $B%W%m%-%7(B - - -
    $B$I$&$7$F%U%!%$%k%?%$%W$,(B <var>xxx</var> - $B$N%U%!%$%k$r(B FTP $B$G%@%&%s%m!<%I$G$-$J$$$N(B? -

    $B$*$=$i$/!"%W%m%-%7$N(B mime.types $B@_Dj%U%!%$%k$G$=$N%U%!%$%k%?%$%W$,(B - application/octet-stream $B$G$"$k$HDj5A$5$l$F$$$J$$$N$G$7$g$&!#(B - $B0J2<$N$h$&$J$b$N$,Lr$KN)$D$+$b$7$l$^$;$s(B:

    - - -
    application/octet-stream   bin dms lha lzh exe class tgz taz
    -
    -

    $BJL$NJ}K!$H$7$F!"$9$Y$F$N%G%U%)%k%H$r%P%$%J%j$K$9$k$3$H$b$G$-$^$9(B:

    -
    DefaultType application/octet-stream
    + ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30
    -
    - -
    $B%U%!%$%k(B <var>xxx</var> $B$r(B FTP $B$N(B ASCII $B%@%&%s%m!<%I(B - $B$K$5$;$k$N$O$I$&$9$l$P$h$$$N(B? -

    $B$^$l$K!"(B($B%G%U%)%k%H$NE>Aw$O(B binary $B%b!<%I$G(B) $BFCDj$N(B - $B%U%!%$%k$N$_(B FTP $B$N(B ASCII $BE>AwJ}K!$r;H$o$J$1$l$P$J$i$J$$(B - $B>l9g$K$O!"%j%/%(%9%H$N:G8e$K(B ;type=a $B$rIU$1$k$3$H$G(B - mod_proxy $B$K(B ASCII $BE>Aw$r$5$;$k$3$H$,$G$-$^$9!#(B - ($B$?$@$7!"(BFTP $B$N%G%#%l%/%H%j0lMw$O>o$K(B ASCII $B%b!<%I$G9T$J$o$l$^$9!#(B)

    -
    - -
    FTP $B$N%"%C%W%m!<%I$O$I$&$9$l$P$h$$$N(B? -

    $B8=;~E@$G$O!"(Bmod_proxy $B$N(B FTP $B%5%]!<%H$O(B GET $B$N$_$G$9!#$b$A$m$s(B - Apache $B$N(B $B%W%m%-%7$r;H$C$F(B HTTP $B$N%"%C%W%m!<%I(B (POST $B$d(B PUT) $B$r(B - $B$9$k$3$H$O$G$-$^$9!#(B

    -
    - -
    $B%[!<%`%G%#%l%/%H%j$N30$N(B FTP $B%U%!%$%k$K(B - $B%"%/%;%9$9$k$K$O$I$&$9$l$P$h$$$N(B? -

    FTP URI $B$O%m%0%$%s$7$F$$$k%f!<%6$N%[!<%`%G%#%l%/%H%j$+$i$N(B - $BAjBP%Q%9$H$7$F07$o$l$^$9!#;DG0$J$3$H$K!"(B/../ $B$O%V%i%&%6$K$h$j2re0L$N%G%#%l%/%H%j$K(B - $BE~C#$9$k$3$H$O$G$-$^$;$s!#$3$NLdBj$r2r7h$9$k$?$a$K!"$$$o$f$k(B - Squid %2f $B%O%C%/(B $B$r(B Apache $B$N(B FTP $B%W%m%-%7$OSquid Proxy $B%-%c%C%7%e(B $B$N$h$&$J(B - $BB>$N$h$/;H$o$l$F$$$k%W%m%-%7%5!<%P$G$b/%2f $B$rIU$1$k$3$H$G!"%W%m%-%7$K(B - FTP $B$N3+;O%G%#%l%/%H%j$r(B ($B%[!<%`%G%#%l%/%H%j$NBe$o$j$K(B) / - $B$KJQ$($k$3$H$,$G$-$^$9!#Nc$($P!"(B/etc/motd $B$r + +

    上記はオリジンサーバの http://backend.example.com + の URL に関連するワーカーを生成します。ワーカーは指定したタイムアウト値を持ちます。 + フォワードプロキシで使われる時、ワーカーは一般に + ProxySet ディレクティブで + 定義します:

    - ftp://user@host/%2f/etc/motd + ProxySet http://backend.example.com connectiontimeout=5 timeout=30 -
    -
    $B%V%i%&%6$N(B URL $BI=<($G(B FTP $B$NJ?J8%Q%9%o!<%I$r(B - $B1#$9$K$O$I$&$9$l$P$h$$$N(B? -

    FTP $B%5!<%P$K%f!<%6L>$H%Q%9%o!<%I$r;H$C$F%m%0%$%s$9$k$?$a$K!"(B - Apache $B$O0[$J$kJ}K!$r;H$$$^$9!#(BURL $B$K%f!<%6L>$H%Q%9%o!<%I$,$^$C$?$/(B - $B$J$$>l9g$O!"(BApache $B$O(B FTP $B%5!<%P$K(B anonymous $B%m%0%$%s$rAw$j$^$9!#(B - $B$D$^$j(B$B!"(B

    +

    または、別の方法として Proxy + と ProxySetでも定義できます:

    - user: anonymous
    - password: apache_proxy@ + <Proxy http://backend.example.com>
    + + ProxySet connectiontimeout=5 timeout=30 + + </Proxy>
    -

    $B$3$l$O(B anonymous $B%"%/%;%9$,@_Dj$5$l$?(B - $B$9$Y$F$N(B FTP $B%5!<%P$KBP$7$FF0:n$7$^$9!#(B

    +

    フォワードモードで明示的に設定したワーカーを使うのは、あまり一般的ではありません。 + なぜなら、通常フォワードプロキシは多くの異なるオリジンサーバと通信するからです。 + もし一部のオリジンサーバを頻繁に利用するなら、それらに対して + 明示的にワーカーを生成するのは有用です。明示的に設定したワーカーは、 + それ自体はフォワードプロキシかリバースプロキシかのコンセプトを持ちません。 + それらはオリジンサーバと通信する共通のコンセプトを抱えています。 + リバースプロキシで使うために ProxyPass + で生成したワーカーは、オリジンサーバへの URL がワーカーの URL にマッチすれば + いつでもフォワードプロキシとして使えます。これは、逆も成り立ちます。

    -

    $B%f!<%6L>$r;H$C$?8D?MJL$N%m%0%$%s$K$O!"(BURL $B$K%f!<%6L>$rF~$l$k$3$H$,(B - $B$G$-$^$9(B:

    +

    ワーカーを識別する URL はそのオリジンサーバの URL です。 + URL は指定したパス部分も含みます:

    - ftp://username@host/myfile + ProxyPass /examples http://backend.example.com/examples
    + ProxyPass /docs http://backend.example.com/docs
    -

    $B$3$N%f!<%6L>$,M?$($i$l$?$H$-$K!"(BFTP $B%5!<%P$,%Q%9%o!<%I$rMW5a$9$l$P(B - ($B$b$A$m$s$=$&$9$Y$-$J$N$G$9$,(B)$B!"(BApache $B$O(B 401 - (Authorization required) $B$rJV$7$^$9!#$3$l$K$h$j!"%V%i%&%6$O%f!<%6L>(B - $B%Q%9%o!<%I$NF~NO%@%$%"%m%0$rI=<($7$^$9!#%Q%9%o!<%I$,F~NO$5$l$?8e!"(B - $B:F$S@\B3$r;n$_!"@.8y$9$l$P%j%/%(%9%H$7$?%j%=!<%9$,I=<($5$l$^$9!#(B - $B$3$NJ}K!$NMxE@$O%V%i%&%6$,%Q%9%o!<%I$rJ?J8$GI=<($7$J$$$3$H$G$9!#(B - ($B$b$7:G=i$+$i(B

    +

    この例はふたつの異なるワーカーを定義しています。 + それぞれ別のコネクションプールと設定を使います。

    + + ワーカーの共有 +

    もしワーカーの URL に重なりがあれば、ワーカーの共有が起きます。 + 重なりとは、ワーカーの URL が、設定ファイル内で後から定義した + 別のワーカーの URL の先頭文字列と部分一致することです。 + 次の例で

    + + + ProxyPass /apps http://backend.example.com/ timeout=60
    + ProxyPass /examples http://backend.example.com/examples timeout=10 +
    + +

    ふたつめのワーカーは実際には生成されません。 + その代わり、ひとつめのワーカーを使います。この利点は、ただひとつの + コネクションプールで済む点です。このため、コネクションをより頻繁に再利用できます。 + 後ろのワーカーに明示的に書いた設定のすべてのパラメータと一部の設定のデフォルト値は、 + 最初のワーカーに書いた設定を上書きするのを注意してください。 + これは警告としてログに残ります。上記の例で言えば、/apps + の URL に対するタイムアウト値は、結果として 60 ではなく + 10になるのです。

    + +

    もしワーカーの共有を避けたければ、ワーカーの定義を URL の長さでソートしてください。 + そして、長い URL から並べてください。もしワーカーの共有を最大限にしたいなら、 + 逆順に並べます。ProxyPass + ディレクティブの並びについて、関連する警告も見てください。

    + +
    + +

    明示的に設定するワーカーにはふたつの種類があります: + 直接のワーカー と バランサー (負荷分散) ワーカー です。 + これらは後ほど ProxyPass + ディレクティブの中で説明する重要な設定パラメータを数多くサポートします。 + 同じパラメータは ProxySet + を使っても設定可能です。

    + +

    直接のワーカーで利用できるパラメータはプロトコルに依存します。 + プロトコルはオリジンサーバの URL で指定されます。 + 利用可能なプロトコルは ajp, + ftp, http, scgi です。

    + +

    バランサーワーカーは仮想ワーカーです。直接のワーカーを + リクエストを実際に処理するメンバーとして使います。 + それぞれのバランサーは複数のメンバーを持ちえます。 + リクエストを処理する時、設定した負荷分散のアルゴリズムにもとづき + メンバーのひとつを選択します。

    + +

    ワーカーの URL のプロトコルスキームに balancer + を使うと、バランサワーカーが生成されます。 + バランサーの URL が、バランサワーカーを一意に識別します。 + BalancerMember + を使って、バランサーにメンバーを追加します。

    + +
    + +
    プロキシへのアクセス制御 +

    プロキシへのアクセスは以下のように Proxy コンテナの中に + ディレクティブを書くことで制御できます:

    - ftp://username:password@host/myfile + <Proxy *>
    + + Order Deny,Allow
    + Deny from all
    + Allow from 192.168.0
    +
    + </Proxy>
    -

    $B$HF~NO$7$?>l9g$K$OI=<($5$l$F$7$^$$$^$9!#(B)

    - - $BCm(B -

    $BAw?.$5$l$k%Q%9%o!<%I$O!"0E9f2=$5$l$FAw$i$l$k$o$1$G$O$"$j$^$;$s!#(B - $B%V%i%&%6$H(B Apache $B%W%m%-%7%5!<%P$O(B base64 $B$GId9f2=$5$l$?(B - $BJ8;zNs$H$7$F!"(BApache $B%W%m%-%7$H(B FTP $B%5!<%P$N4V$OJ?J8$H$7$FAw$i$l$^$9!#(B - $B$G$9$+$i!"(BHTTP $B$r;H$C$F(B HTTP $B$r%"%/%;%9$9$kA0(B ($B$b$7$/$O!"$=$b$=$b(B - $B8D?ME*$J%U%!%$%k$r(B FTP $B$G%"%/%;%9$9$kA0(B) $B$K$h$/9M$($kI,MW$,$"$j$^$9!#(B - $B0BA4$G$J$$DL?.O)$r;H$C$?>l9g$O!"EpD0 - -

    -
    -
    $BCY$$5/F0(B +

    アクセス制御のためのディレクティブのより詳しい情報は + mod_authz_host をお読みください。

    + +

    (ProxyRequests ディレクティブを + 使って) フォワードプロキシを設定している場合は、厳しくアクセス + 制限を行なうことが非常に大切です。そうしないと、任意のクライアントが + 身元を明かすことなく任意のホストにアクセスするためにプロキシサーバを使うことが + できてしまいます。これはあなた自身のネットワークにとっても、インターネット + 全体にとっても危険なことです。(ProxyRequests Off にして + ProxyPass ディレクティブを使って) + リバースプロキシを使っている場合には、クライアントはあなたが明示的に + 設定したホストにしかアクセスできないため、フォワードプロキシのとき + ほどアクセス制御に力を注がなくても大丈夫です。

    + +
    + +
    遅い起動

    ProxyBlock $B%G%#%l%/%F%#%V$r;H$C$F$$$k>l9g!"(B - $B8e$N%F%9%H$N$?$a$K5/F0;~$K%[%9%H$N(B - IP $B%"%I%l%9$,D4$Y$i$l$F%-%c%C%7%e$5$l$^$9!#%[%9%HL>$N%k%C%/%"%C%W$N(B - $BB.$5$K$h$C$F$O!"?tIC(B ($B$+$=$l0J>e(B) $B$+$+$k$+$b$7$l$^$;$s!#(B

    + >ProxyBlock ディレクティブを使っている場合、 + 後に行うマッチ判定のため、起動時にホストの名前解決をして + IP アドレスをキャッシュします。ホスト名の名前解決の + 速さによっては、数秒 (かそれ以上) かかるかもしれません。

    -
    $B%$%s%H%i%M%C%H%W%m%-%7(B -

    $B%$%s%H%i%M%C%H$K$"$k(B Apache $B%W%m%-%7%5!<%P$O30It$X$N%j%/%(%9%H$r(B - $B2qscheme $B$K$D$$$F$=$l$>$l!"%U%!%$%"%&%)!<%k$N(B - $B%W%m%-%7$K%U%)%o!<%I$5$l$k$h$&$K(B - ProxyRemote $B%G%#%l%/%F%#%V$r(B - $B@_Dj$7$F$/$@$5$$(B)$B!#$7$+$7%$%s%H%i%M%C%HFb$N%j%=!<%9$K%"%/%;%9$9$k$H$-$O!"(B - $B%U%!%$%"%&%)!<%k$rDL$5$J$$$G$b%"%/%;%9$G$-$^$9!#(B - $B$I$N%[%9%H$,%$%s%H%i%M%C%H$KB0$7!"D>@\%"%/%;%9$9$Y$-$+$r;XDj$9$k$K$O!"(B - NoProxy $B%G%#%l%/%F%#%V$,(B - $BLr$KN)$A$^$9!#(B

    - -

    $B%$%s%H%i%M%C%HFb$N%f!<%6$O(B WWW $B$N%j%/%(%9%H$G%m!<%+%k%I%a%$%s$r(B - $B>JN,$9$k$3$H$,$h$/$"$j$^$9!#(Bhttp://somehost.example.com/ - $B$H$$$&%j%/%(%9%H$NBe$o$j$K(B "http://somehost/" $B$r%j%/%(%9%H$7$?$j$7$^$9!#(B - $B$3$N$h$&$J%j%/%(%9%H$r&MQ%W%m%-%7%5!<%P$NCf$K$O$"$j$^$9!#(B - $B%5!<%P$,(B $B%W%m%-%7$N%5!<%S%9MQ$K@_Dj$5$l$F$$$F(B - ProxyDomain $B%G%#%l%/%F%#%V$,(B - $B;HMQ$5$l$?>l9g$K$O!"(BApache $B$O%/%i%$%"%s%H$K%j%@%$%l%/%H1~Ez$rAw$C$F!"(B - $B@5$7$$!"40A4$J(B (fully qualified) - $B%5!<%P$N%"%I%l%9$KAw$k$3$H$,$G$-$^$9!#$3$N$h$&$K(B - $B%j%@%$%l%/%H$9$k$H!"%f!<%6$N%V%C%/%^!<%/$,@5$7$$40A4$J%[%9%HL>$r4^$`(B - $B$3$H$K$b$J$k$?$a!"$h$j9%$^$7$$J}K!$H8@$($k$G$7$g$&!#(B

    +
    イントラネットプロキシ +

    イントラネットにある Apache プロキシサーバは外部へのリクエストを + 会社のファイアウォールを通して送らなければなりません。(このためには + 個々の scheme についてそれぞれ、ファイアウォールの + プロキシにフォワードされるように + ProxyRemote ディレクティブを + 設定してください)。しかしイントラネット内のリソースにアクセスするときは、 + ファイアウォールを通さないでもアクセスできます。 + どのホストがイントラネットに属し、直接アクセスすべきかを指定するには、 + NoProxy ディレクティブが + 役に立ちます。

    + +

    イントラネット内のユーザは WWW のリクエストでローカルドメインを + 省略することがよくあります。http://somehost.example.com/ + というリクエストの代わりに "http://somehost/" をリクエストしたりします。 + このようなリクエストを受け付け、サーバに設定されているローカルドメインが + 暗黙のうちに使われていると解釈して、単純にリクエストを処理するものも + 商用プロキシサーバの中にはあります。 + サーバが プロキシのサービス用に設定されていて + ProxyDomain ディレクティブが + 使用された場合には、Apache はクライアントにリダイレクト応答を送って、 + 正しい、完全な fully qualified + サーバのアドレスに送ることができます。このように + リダイレクトすると、ユーザのブックマークが正しい完全なホスト名を含む + ことにもなるため、より好ましい方法と言えるでしょう。

    -
    $B%W%m%H%3%k$ND4@0(B -

    Keepalive $B$d(B HTTP/1.1 $B$rE,@Z$Ku67$G!"(BHTTP/1.0 $B$G(B keepalive $B$rL5$7$K$7$F%j%/%(%9%H$rAw$k$?$a$N(B - $B4D6-JQ?t$,Fs$D$"$j$^$9!#$3$l$i$O(B SetEnv $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#(B

    +
    プロトコルの調整 +

    Keepalive や HTTP/1.1 を適切に実装していないオリジンサーバに対して + mod_proxy がリクエストを送信する場合、 + HTTP/1.0 を使って keepalive を無しにしてリクエストを送るようにする 環境変数が二つあります。これらは SetEnv ディレクティブで設定します。

    -

    force-proxy-request-1.0 $B$H(B proxy-nokeepalive - $B$,$=$N4D6-JQ?t$G$9!#(B

    +

    force-proxy-request-1.0 と proxy-nokeepalive + がその環境変数です。

    <Location /buggyappserver/>
    @@ -343,22 +353,74 @@ </Location>
    +
    +
    リクエストボディ + +

    POST メソッドなどのリクエストには、リクエストボディがあります。 + HTTP プロトコル仕様によると、ボディのあるリクエストは chunked + 転送を使うか、Content-Length + ヘッダを送信しなければなりません。 + このようなリクエストをオリジンサーバに送信する場合、 + mod_proxy_http は常に Content-Length + を送ろうと試みます。しかし、ボディが大きく、オリジナルのリクエストで + chunked 転送が使われている場合、上流へのリクエストに + chunked 転送も使われます。 + この挙動は 環境変数で制御できます。 + proxy-sendcl を設定すると、 + 常に Content-Length を送り、最大限の互換性を確保します。 + 逆に proxy-sendchunked を設定すると、 + chunked エンコードを使ってリソース消費を抑えます。

    + +
    + +
    リバースプロキシのリクエストヘッダ + +

    リバースプロキシとして振る舞う時 (例えば、ProxyPass ディレクティブを使う時) 、 + mod_proxy_http は、オリジンサーバに情報を渡すために + いくつかのリクエストヘッダを追加します。これらのヘッダは以下になります。

    + +
    +
    X-Forwarded-For
    +
    クライアントの IP アドレス。
    +
    X-Forwarded-Host
    +
    オリジナルのホスト名。クライアントが Host + リクエストヘッダで渡す。
    +
    X-Forwarded-Server
    +
    プロキシサーバのホスト名。
    +
    + +

    オリジンサーバ上でこれらのヘッダを扱う時は注意してください。 + と言うのも、オリジナルのリクエストが既に同じヘッダを持っていると、 + ヘッダが一つ以上の値 (コンマで区切られます) を持つ可能性があるからです。 + 例えば、 オリジンサーバ上でオリジナルのクライアントのIPアドレスをログに + 記録するため、ログフォーマットに %{X-Forwarded-For}i を + 指定したとします。この時、リクエストが複数のプロキシを経由していると、 + 複数のアドレスがログに載る可能性があります。

    + +

    ProxyPreserveHost と + ProxyVia ディレクティブ + も参照してください。これらは他のリクエストヘッダに影響を与えます。

    + +
    + + Proxy -$B%W%m%-%7$5$l$k%j%=!<%9$KE,MQ$5$l$k%3%s%F%J(B +プロキシされるリソースに適用されるコンテナ <Proxy wildcard-url> ...</Proxy> server configvirtual host -

    Proxy $B%;%/%7%g%sCf$N(B - $B%G%#%l%/%F%#%V$O%^%C%A$9$k%W%m%-%7$5$l$k%3%s%F%s%D$K$N$_E,MQ$5$l$^$9!#(B - $B%7%'%k7A<0$N%o%$%k%I%+!<%I$,;H$($^$9!#(B

    +

    Proxy セクション中の + ディレクティブはマッチするプロキシされるコンテンツにのみ適用されます。 + シェル形式のワイルドカードが使えます。

    -

    $BNc$($P!"yournetwork.example.com $B$N(B - $B%[%9%H$K$N$_%W%m%-%7%5!<%P$r7PM3$7$?%"%/%;%9$r5v2D$7$^$9(B:

    +

    例えば、次の設定は yournetwork.example.com の + ホストにのみプロキシサーバを経由したアクセスを許可します:

    <Proxy *>
    @@ -370,9 +432,9 @@ </Proxy>
    -

    $Bexample.com $B$N(B foo $B%G%#%l%/%H%j$N(B - $B$9$Y$F$N%U%!%$%k$KBP$7$F!"%W%m%-%7%5!<%P$rDL$7$FAw$i$l$?$H$-$K$O(B - INCLUDES $B%U%#%k%?$rDL$7$FAw$k$h$&$K@_Dj$7$^$9(B:

    +

    次の例は example.com の foo ディレクトリの + すべてのファイルに対して、プロキシサーバを通して送られたときには + INCLUDES フィルタを通して送るように設定します:

    <Proxy http://example.com/foo/*>
    @@ -382,406 +444,719 @@ </Proxy>
    -
    +ProxyMatch
    ProxyBadHeader -$B1~Ez$K$*$+$7$J%X%C%@$,$"$k>l9g$N07$$J}$r7h$a$k(B +応答におかしなヘッダがある場合の扱い方を決める ProxyBadHeader IsError|Ignore|StartBody ProxyBadHeader IsError server configvirtual host -2.0.44 $B0J9_(B +Apache 2.0.44 以降で使用可能 -

    ProxyBadHeader $B%G%#%l%/%F%#%V$O9=J8E*$K(B - $B4V0c$C$?%X%C%@(B ($B$D$^$j(B $B%3%m%s$r4^$^$J$$$b$N(B) $B$rmod_proxy $B$,$I$&?6$kIq$&$+$r7h$a$^$9!#0J2<$N0z?t$r(B - $B +

    ProxyBadHeader ディレクティブは構文的に + 間違ったレスポンスヘッダ (つまり コロンを含まないもの) を受け取ったときに + mod_proxy がどう振る舞うかを決めます。以下の引数を + 取ることができます:

    IsError
    -
    $B%j%/%(%9%H$rCf;_$7$F(B 502 (Bad Gateway) $B1~Ez$rJV$9!#(B - $B$3$l$,%G%U%)%k%H$NF0:n$G$9!#(B
    +
    リクエストを中止して 502 (Bad Gateway) 応答を返す。 + これがデフォルトの動作です。
    Ignore
    -
    $B4V0c$C$?%X%C%@9T$r$=$b$=$bB8:_$7$J$+$C$?$b$N$H$7$F07$&!#(B
    +
    間違ったヘッダ行をそもそも存在しなかったものとして扱う。
    StartBody
    -
    $B4V0c$C$?%X%C%@9T$r +
    間違ったヘッダ行を受け取ったら、ヘッダの読み込みを終了して、 + それ以降の残りをボディとして扱う。これはヘッダとボディの間に空行を入れ忘れて + しまっているような、きちんと動作していないバックエンドサーバがあるときに、 + 問題を回避するのに役に立ちます。
    + +ProxyFtpDirCharset +プロキシされた FTP (の一覧表示) のキャラクタセットを定義 +ProxyFtpDirCharset character set +ProxyFtpDirCharset ISO-8859-1 +server configvirtual host +directory +Apache 2.2.7 以降で使用可能 + + +

    ProxyFtpDirCharset ディレクティブは、 + mod_proxy_ftp が HTML 形式で生成する FTP のディレクトリ一覧 + 画面のキャラクタセットを定義します。

    +
    +
    + ProxyMatch -$B@55,I=8=$G$N%^%C%A$K$h$k%W%m%-%7%j%=!<%9MQ$N%G%#%l%/%F%#%V%3%s%F%J(B +正規表現でのマッチによるプロキシリソース用のディレクティブコンテナ <ProxyMatch regex> ...</ProxyMatch> server configvirtual host -

    ProxyMatch $B$O(B URL $B$N%^%C%A$K(B - $B@55,I=8=$rMQ$$$k$3$H$r=|$$$F(B Proxy $B%G%#%l%/%F%#%V$HF1$8$G$9!#(B

    +

    ProxyMatch は URL のマッチに + 正規表現 を用いることを除けば + Proxy ディレクティブと同じです。

    +Proxy
    ProxyPreserveHost -$B%W%m%-%7%j%/%(%9%H$K!" +プロキシリクエストに、受け付けた Host HTTP ヘッダを使う ProxyPreserveHost On|Off ProxyPreserveHost Off server configvirtual host -Apache 2.0.31 $B0J9_$G;HMQ2DG=(B +Apache 2.0.31 以降で使用可能 -

    $B$3$N%*%W%7%g%s$,M-8z$K$J$C$F$$$k>l9g!"(BProxyPass - $B$G;XDj$7$?%[%9%HL>$NBe$o$j$K!" - -

    $B$3$N%*%W%7%g%s$ODL>o$O(B Off $B$K@_Dj$7$F$/$@$5$$!#(B - $B$[$H$s$I$N>l9g!"$3$l$OBgNL$NL>A0%Y!<%9$N%P!<%A%c%k%[%9%F%#%s%0$r9T$J$C$F$$$F!"(B - $B85!9$N(B Host $B%X%C%@$r%P%C%/%(%s%I%5!<%P$,2rl9g$K$N$_M-MQ$G$9!#(B

    +

    このオプションが有効になっている場合、ProxyPass + で指定したホスト名の代わりに、受け付けたリクエストの Host: 行を + プロキシ先のホストに送ります。

    + +

    このオプションは通常は Off に設定してください。 + ほとんどの場合、これは大量の名前ベースのバーチャルホスティングを行なっていて、 + 元々の Host ヘッダをバックエンドサーバが解釈する必要のあるときのような、 + 特別な設定が必要な場合にのみ有用です。

    ProxyRequests -$B%U%)%o!<%I(B ($BI8=`$N(B) $B%W%m%-%7%j%/%(%9%H$rM-8z$K$9$k(B +フォワード (標準の) プロキシリクエストを有効にする ProxyRequests On|Off ProxyRequests Off server configvirtual host -

    $B$3$l$O(B Apache $B$N%U%)%o!<%I%W%m%-%7%5!<%P$H$7$F$NF0:n$r(B - $BM-8z$b$7$/$OL58z$K$7$^$9!#(B(ProxyRequests $B$r(B Off $B$K(B - $B@_Dj$7$F$b!"(BProxyPass - $B$N@_Dj$OL58z$K$J$j$^$;$s!#(B)

    +

    これは Apache のフォワードプロキシサーバとしての動作を + 有効もしくは無効にします。(ProxyRequests を Off に + 設定しても、ProxyPass + の設定は無効になりません。)

    -

    $BDL>o$N%j%P!<%9%W%m%-%7$N@_Dj$G$O!"$3$N%*%W%7%g%s$O(B Off - $B$K@_Dj$7$F$/$@$5$$!#(B

    +

    通常のリバースプロキシ/ゲートウェイの設定では、このオプションは Off + に設定してください。

    -

    HTTP $B$d(B FTP $B%5%$%H$X$N%W%m%-%7$N5!G=$rM-8z$K$7$?$$>l9g$O!"(B - mod_proxy_http $B$d(B mod_proxy_ftp $B$,(B - $B%5!<%P$KAH$_9~$^$l$F$$$J$1$l$P$J$j$^$;$s!#(B

    +

    HTTP や FTP サイトへのプロキシの機能を有効にしたい場合は、 + mod_proxy_http や mod_proxy_ftp が + サーバに組み込まれていなければなりません。

    - $B7Y9p(B + 警告

    $B%5!<%P$r0BA4$K$9$k(B$B$^$G(B ProxyRequests $B$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B%*!<%W%s%W%m%-%7%5!<%P$O$"$J$?<+?H$N%M%C%H%o!<%/$K$H$C$F$b!"(B - $B%$%s%?!<%M%C%HA4BN$K$H$C$F$b4m81$G$9!#(B

    + >サーバを安全にするまで ProxyRequests は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +フォワードプロキシとリバースプロキシ/ゲートウェイ
    ProxyRemote -$BFCDj$N%j%/%(%9%H$r07$&;~$K;H$o$l$k%j%b!<%H%W%m%-%7$r;XDj$9$k(B +特定のリクエストを扱う時に使われるリモートプロキシを指定する ProxyRemote match remote-server server configvirtual host -

    $B$3$N%G%#%l%/%F%#%V$O$3$N%W%m%-%7$KBP$9$k%j%b!<%H%W%m%-%7$rDj5A$7$^$9!#(B - match $B$O%j%b!<%H%5!<%P$,%5%]!<%H$9$k(B URL $B%9%-!<%`!"(B - $B%j%b!<%H%5!<%P$,;H$&$O$:$N(B URL $B$N0lItJ,!"%5!<%P$,$9$Y$F$N(B - $B%j%/%(%9%H$K;H$o$l$k$3$H$r<($9(B * $B$N$I$l$+$K$J$j$^$9!#(B - remote-server $B$O%j%b!<%H%5!<%P$NItJ,(B URL $B$G$9!#9=J8(B:

    +

    このディレクティブはこのプロキシに対するリモートプロキシを定義します。 + match はリモートプロキシがサポートする URL スキーム、 + あるいはリモートプロキシを使うべき URL の一部分、あるいはすべての + リクエストにリモートプロキシが使われることを示す * のどれかになります。 + remote-server はリモートプロキシの部分 URL です。構文:

    remote-server = scheme://hostname[:port] -

    scheme $B$Oe%j%b!<%H%5!<%P$H$NDL?.$K;H$o$l$k%W%m%H%3%k$r(B - $B7hDj$7$^$9!#$3$N%b%8%e!<%k$G$O(B http $B$@$1$,%5%]!<%H$5$l$F(B - $B$$$^$9!#(B

    +

    scheme は実際上リモートサーバとの通信に使われるプロトコルを + 決定します。このモジュールでは http と https + だけがサポートされています。 + https が使われると、HTTP CONNECT メソッドを使って + リクエストはリモートプロキシに転送されます。

    - $BNc(B - ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
    - ProxyRemote * http://cleversite.com
    - ProxyRemote ftp http://ftpproxy.mydomain.com:8080 + 例 + ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
    + ProxyRemote * http://cleverproxy.localdomain
    + ProxyRemote ftp http://ftpproxy.mydomain:8080
    -

    $B$3$NNc$G$O!"%W%m%-%7$O(B FTP $B%j%/%(%9%H$rJL$N(B HTTP $B%j%/%(%9%H$GJq$s$G(B - $B$=$N$h$&$J%j%/%(%9%H$r07$($kJL$N%W%m%-%7$KE>Aw$7$^$9!#(B

    +

    最後の例では、プロキシは FTP リクエストを別の HTTP リクエストで包んで + そのようなリクエストを扱える別のプロキシに転送します。

    -

    $B$3$N%*%W%7%g%s$O%j%P!<%9%W%m%-%7$N@_Dj$b%5%]!<%H$7$^$9!#(B - $B%5!<%P$,JL$N%U%)%o!<%I%W%m%-%7$N8e$m$K1#$5$l$F$$$k>l9g$G$b(B - $B%P%C%/%(%s%I%&%'%V%5!<%P$r%P!<%A%c%k%[%9%H$N(B URL $B6u4V$KF~$l$k$3$H$,(B - $B$G$-$^$9!#(B

    +

    このオプションはリバースプロキシの設定もサポートします。 + バックエンドウェブサーバが別のフォワードプロキシの後ろに隠されている場合でも + バックエンドウェブサーバをバーチャルホストの URL 空間に入れることが + できます。

    ProxyRemoteMatch -$B@55,I=8=$G$N%^%C%A$K$h$k%j%/%(%9%H$r07$&%j%b!<%H%W%m%-%7$N;XDj(B +正規表現でのマッチによるリクエストを扱うリモートプロキシの指定 ProxyRemoteMatch regex remote-server server configvirtual host -

    ProxyRemoteMatch $B$O:G=i$N0z?t$,%j%/%(%9%H$5$l$?(B - URL $B$K%^%C%A$9$k@55,I=8=$G$"$k$3$H$r=|$1$P(B ProxyRemote $B%G%#%l%/%F%#%V$HF1$8$G$9!#(B

    +

    ProxyRemoteMatch は最初の引数がリクエストされた + URL にマッチする正規表現であることを除けば ProxyRemote ディレクティブと同じです。

    -ProxyPass -$B%j%b!<%H%5!<%P$r%m!<%+%k%5!<%P$N(B URL $B6u4V$K%^%C%W$9$k(B -ProxyPass [path] !|url [key=value key=value ...]] -server configvirtual host -directory +BalancerMember +ロードバランサのグループにメンバーを追加 +BalancerMember [balancerurl] url [key=value [key=value ...]] +directory +BalancerMember は Apache 2.2 以降でのみ使用可能 + +

    このディレクティブでロードバランサのグループにメンバを追加します。 + <Proxy balancer://...> ディレクティブのコンテナ + 内で使われることが多く、ProxyPass + ディレクティブと共通のキーバリューペアのパラメータを取ります。

    +

    <Proxy balancer://...> ディレクティブの + コンテナ内に書かない場合のみ、 balancerurl 引数が必要です。 これは + ProxyPass ディレクティブで + バランサを定義した時の URL と同じ働きをします。

    +
    +
    + +ProxySet +プロキシのバランサやメンバのパラメータをセット +ProxySet url key=value [key=value ...] +directory + +ProxySet は Apache 2.2 以降でのみ使用可能 -

    $B$3$N%G%#%l%/%F%#%V$O%j%b!<%H%5!<%P$r%m!<%+%k%5!<%P$NL>A06u4V$K(B - $B%^%C%W$G$-$k$h$&$K$7$^$9!#%m!<%+%k%5!<%P$ODL>o$N0UL#$G$N%W%m%-%7$H(B - $B$7$F$OF0:n$;$:!"%j%b!<%H%5!<%P$N%_%i!<$H$7$F?6$kIq$$$^$9!#(B - path $B$O%m!<%+%k$N2>A[%Q%9$NL>A0$G$9!#(Burl $B$O(B - $B%j%b!<%H%5!<%P$NItJ,(B URL $B$K$J$j!"%/%(%j! +

    このディレクティブは、通常は ProxyPass + ディレクティブで行うプロキシのバランサやワーカーに対するパラメータを + 別の方法で設定できるようにします。 + <Proxy balancer url|worker url> + ディレクティブのコンテナ内で使う場合、url 引数は必要ありません。 + 副次的に、それぞれのバランサやワーカーが生成されます。 + ProxyPass ディレクティブではなく、 + RewriteRule でリバースプロキシ + 設定をする時にこのディレクティブは有用です。

    - ProxyPass $B%G%#%l%/%F%#%V$r(B - $B;H$C$F$$$k$H$-$O(B ProxyRequests $B%G%#%l%/%F%#%V$ODL>o$O(B - off $B$K@_Dj$5$l$F$$$k$Y$-$G$9!#(B + + <Proxy balancer://hotcluster>
    + + BalancerMember http://www2.example.com:8009 loadfactor=1
    + BalancerMember http://www3.example.com:8009 loadfactor=2
    + ProxySet lbmethod=bytraffic
    +
    + </Proxy> +
    -

    $B%m!<%+%k%5!<%P$N%"%I%l%9$,(B http://example.com/ $B$G$"$k$H(B - $B$7$^$9!#$9$k$H!"(B

    + + <Proxy http://backend>
    + + ProxySet keepalive=On
    +
    + </Proxy> +
    - ProxyPass /mirror/foo/ http://backend.example.com/ + ProxySet balancer://foo lbmethod=bytraffic timeout=15 -

    $B$H@_Dj$9$k$H(B http://example.com/mirror/foo/bar $B$X$N(B - $B%j%/%(%9%H$,FbItE*$K(B http://backend.example.com/bar $B$X$N(B - $B%W%m%-%7%j%/%(%9%H$KJQ49$5$l$k$3$H$K$J$j$^$9!#(B

    + + ProxySet ajp://backend:7001 timeout=15 + + + 警告 +

    設定対象がバランサかワーカーかで、パラメータ名が同じでも意味が異なる可能性 + に注意してください。例えば、タイムアウトに関連する上記ふたつの例がそうです。

    +
    + +
    +
    + + +ProxyPass +リモートサーバをローカルサーバの URL 空間にマップする +ProxyPass [path] !|url [key=value +key=value ...]] [nocanon] [interpolate] +server configvirtual host +directory + -

    $B%5%V%G%#%l%/%H%j$r%j%P!<%9%W%m%-%7$7$?$/$J$$$H$-$K(B ! $B$O(B - $BLr$KN)$A$^$9!#(B$BNc$($P(B$B!"(B

    + +

    このディレクティブはリモートサーバをローカルサーバの名前空間に + マップできるようにします。ローカルサーバは通常の意味でのプロキシと + しては動作せず、リモートサーバのミラーとして振る舞います。 + ローカルサーバはしばしば リバースプロキシ や ゲートウェイ + と呼ばれます。 + path はローカルの仮想パスの名前です。url は + リモートサーバの部分 URL になり、クエリー文字列を含むことはできません。

    + + ProxyPass ディレクティブを + 使っているときは ProxyRequests ディレクティブは通常は + off に設定されているべきです。 + +

    ローカルサーバのアドレスが http://example.com/ であると + します。すると、

    - ProxyPass /mirror/foo/i !
    - ProxyPass /mirror/foo http://backend.example.com + ProxyPass /mirror/foo/ http://backend.example.com/
    -

    $B$O(B /mirror/foo/i $B$r(B$B=|$/(B - /mirror/foo $B$X$N$9$Y$F$N%j%/%(%9%H$r(B - backend.example.com $B$K%W%m%-%7$7$^$9!#(B

    +

    と設定すると http://example.com/mirror/foo/bar への + リクエストが内部的に http://backend.example.com/bar への + プロキシリクエストに変換されることになります。

    - $BCm(B -

    $B=gHV$O=EMW$G$9!#0lHLE*$J(B ProxyPass - $B%G%#%l%/%F%#%V$N(B$BA0$K(B - $B=|30%G%#%l%/%F%#%V$rCV$/I,MW$,$"$j$^$9!#(B

    + +

    もし第一引数が / で終端するならば、第二引数も + / で終端すべきです。逆もまた然りで、第一引数が終端しないならば、 + 第二引数も終端すべきではありません。 + これに反すると、バックエンドサーバ向けに変換されたリクエストは + 必要なスラッシュを欠く可能性があり、バックエンドサーバは期待する結果を返しません。 +

    -

    2.1 $B$N?75!G=$G!"%P%C%/%(%s%I%5!<%P$H$N@\B3$K%W!<%k$5$l$?%3%M%/%7%g%s$r(B - $B;H$($k$h$&$K$J$j$^$7$?!#(Bkey=value $B7A<0$N%Q%i%a!<%?$G(B - $B$3$N%3%M%/%7%g%s%W!<%j%s%0$ND4@0$,$G$-$^$9!#(BHard Maximum - $B$N%G%U%)%k%HCM$O!"M-8z$K$J$C$F$$$k(B MPM $B$G$N%W%m%;%9Ev$?$j$N%9%l%C%I?t$H(B - $BF1$8?t$N%3%M%/%7%g%s?t$G$9!#(Bprefork MPM $B$G$ODL>o$O(B 1 $B$G!"(Bworker MPM $B$G$O(B - ThreadsPerChild $B$GD4@0$5$l$^$9!#(B

    - -

    min $B$N@_Dj$G!"%P%C%/%(%s%I%5!<%P$H$N4V$K2?K\$N%3%M%/%7%g%s$r(B - $B>o;~3+$/$+$,7h$^$j$^$9!#(BSoft Maximum smax $B$N?t$K(B - $BC#$9$k$^$GI,MW$K1~$8$F%3%M%/%7%g%s$O@8@.$5$l$^$9!#(Bsmax - $B$rD6$($??t$N%3%M%/%7%g%s$O!"@8B8;~4V(B ttl $B$G@ZCG$5$l$^$9!#(B - $B%P%C%/%(%s%I%5!<%P$H(B Hard Maximum max $B$N?t0J>e$N%3%M%/%7%g%s$r(B - $B@8@.$9$k$3$H$O$"$j$^$;$s!#(B

    +

    サブディレクトリをリバースプロキシしたくないときに ! は + 役に立ちます。例えば、

    - ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300 + ProxyPass /mirror/foo/i !
    + ProxyPass /mirror/foo http://backend.example.com +
    + +

    は /mirror/foo/i を 除く + /mirror/foo へのすべてのリクエストを + backend.example.com にプロキシします。

    + + ProxyPass ディレクティブの順序 +

    ProxyPass と + ProxyPassMatch のルールの + 設定は設定ファイル中の順序どおりにチェックされます。 + 最初にマッチしたルールが勝ちます。このため通常は、 + マッチが重なる ProxyPass + ルールは、長い URL が先になるように並べるべきです。 + そうしないと、後に書かれた長い URL にマッチするルールが、 + 先に書かれた短い URL の先頭の部分にマッチしたルールで隠される可能性があります。 + ワーカーの共有とも多少の関係があることにも注意してください。

    + +

    同じ理由で、否定処理も一般的な ProxyPass + ディレクティブの 前に 書くべきです。

    + +
    + +

    Apache HTTP サーバ 2.1 以降、バックエンドサーバとの接続に + プールされたコネクションを使えるようになりました。 + 要求に応じて生成されたコネクションは将来の使用のためにプール内に維持されます。 + プールサイズとその他の設定の制限は ProxyPass + ディレクティブに key=value パラメータで設定します。 + パラメータは後述する表に示します。

    + +

    デフォルトで、mod_proxy は Web サーバの子プロセスが同時に使いうる + 最大数のコネクションを許し維持するようにします。 + この数をデフォルトから減らすには max パラメータを使ってください。 + 生存期間を設定するには ttl パラメータを使ってください。 + ttl 秒を越えて使われていないコネクションは切断されます。 + バックエンドサーバのキープアライブがタイムアウトして、切断されようとしている + コネクションが使われることを防ぐために ttl を使えます。

    + +

    コネクションプールは Web サーバの子プロセスごとに維持されます。 + max やその他の設定は、すべての子プロセスの間で調整はされません。 + ただし、設定により、ただひとつの子プロセスに設定を委ねた場合や + MPM 設計によってはこの限りではありません。

    + + 例 + ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300 - - - + + + - + - + - - + + - - - - + + - - - + + + + + + + + - - - - + + + + + - + + + + + + - - + - + + + + + +
    $B%Q%i%a!<%?(B$B%G%U%)%k%HCM(B$B@bL@(B
    パラメータデフォルト値説明
    min 0$B%P%C%/%(%s%I%5!<%P$H$N@\B3$G(B - $B>o$K3+$$$F$$$k%3%M%/%7%g%s?t$N:G>.CM(B
    コネクションプール内で実際の接続に関連していないエントリの最小数です。 + デフォルト値から変更する必要があるのは、バックエンドとの接続に必要な + ヒープメモリを事前に割り当てるか維持しなければいけない特別な状況のみです。
    max 1...n$B%P%C%/%(%s%I%5!<%P$H$N@\B3?t$N(B Hard Maximum - $B%O!<%I%j%_%C%H(B$B!#(B - $B%G%U%)%k%HCM$O!";HMQ$7$F$$$k(B MPM $B$N%W%m%;%9$"$?$j$N%9%l%C%I?t$K$J$C$F$$$^$9!#(B - Prefork MPM $B$G$O>o$K(B 1 $B$G!"(BWorker MPM $B$G$O(B ThreadsPerChild - $B$GD4@a$G$-$^$9!#(BHard Maximum $B0J>e$K%P%C%/%(%s%I%5!<%P$H$N%3%M%/%7%g%s$r(B - $B@8@.$9$k$3$H$O$"$j$^$;$s!#(B
    バックエンドサーバとの接続数の最大値です。 + デフォルト値は、使用している MPM のプロセスあたりのスレッド数になっています。 + Prefork MPM では常に 1 で、他の MPM では ThreadsPerChild + ディレクティブで調節できます。
    smax max$B@\B3?t$N(B Soft Maximum $B%=%U%H%j%_%C%H(B$B$^$G!"(B - $B%3%M%/%7%g%s$OI,MW$K1~$8$F@8@.$5$l$^$9!#(B - smax $B$rD6$($??t$N%3%M%/%7%g%s$O@8B8;~4V(B ttl - $B$G@ZCG$5$l$^$9!#(B -
    ttlもしコネクションプール内の接続中エントリが ttl パラメータ + で設定した生存期間より長く未使用のままであれば、 + この指定値を越える分のエントリを解放します。 + もしエントリが関連するコネクションを持てば、接続を閉じます。 + デフォルト値から変更する必要があるとすれば、 + コネクションが生存期間を越えてしまった時に、 + コネクションプール内の該当エントリの解放とコネクションの切断を + より積極的に必要とする特別な場合のみです。
    acquire -smax $B?t$rD6$($?Hs3hF0>uBV$N%3%M%/%7%g%s$N@8B8;~4V$r!"(B - $BIC$G;XDj$7$^$9!#$3$N4|4VFb$K;HMQ$5$l$J$+$C$?%3%M%/%7%g%s$O!"(B - $BA4$FJD$8$i$l$^$9!#(B + 設定すると、コネクションプールからフリーのコネクションを取得するために + 待機する待ち時間 (ミリ秒単位) の最大値になります。フリーのコネクションがプールになかった場合は、 + SERVER_BUSY ステータスをクライアントに返します。
    timeoutTimeout$B%3%M%/%7%g%s%?%$%`%"%&%H$rIC$G;XDj$7$^$9!#FC$K;XDj$5$l$J$1$l$P!"(B - $B%U%j!<$J%3%M%/%7%g%s$rmax $B%Q%i%a!<%?$H9g$o$;$F;H$&$3$H$G!"%P%C%/%(%s%I%5!<%P$H$N(B - $B@\B3?t$r@)8f$9$k$N$K;H$$$^$9!#(B +
    connectiontimeouttimeout接続タイムアウトを秒で指定します。 + バックエンドに接続を完了するまでの Apache の待ち時間です。 + 値の最後に ms を書くと、タイムアウトの単位をミリ秒にできます。
    acquire-$B@_Dj$9$k$H!"%3%M%/%7%g%s%W!<%k$+$i%U%j!<$N%3%M%/%7%g%s$rl9g$O!"(B - SERVER_BUSY $B%9%F!<%?%9$,%/%i%$%"%s%H$KJV$5$l$^$9!#(B +
    disablereuseOff使用後すぐに mod_proxy がバックエンドとの接続を切断してほしい時は、 + このパラメータを有効にすべきです。そうすることで、バックエンドとの + 永続的な接続とプーリングを無効にできます。 + これはいくつかの状況下で役に立ちます。例えば、Apache とバックエンドサーバ + の間にファイアウォールが存在し (プロトコルは問わないとします)、黙って + 接続を切られる場合や、あるいは、バックエンドサーバ自体が DNS で + ラウンドロビンされている場合などです。コネクションプーリングによる再利用を + 無効にするには、このパラメータ値を On にしてください。 +
    flushpacketsoffプロキシモジュールが "chunk" ごとに出力データを自動的に強制送信(フラッシュ) + するかを指定します。 'off' は必要な時だけ強制送信します。 + 'on' はそれぞれの "chunk" データごとに強制送信します。 'auto' は、一定時間待機し、 + 'flushwait' で指定したミリ秒の間、入力データが無ければ強制送信します。 + 現在、このパラメータは AJP でのみ意味があります。 +
    flushwait10'flushpackets' パラメータの値が 'auto' の場合、出力データを強制送信する前に、 + 次の入力をどのぐらい待つかをミリ秒単位で指定します。
    keepalive Off$B%P%C%/%(%s%I%5!<%P$H(B Apache $B$N4V$K%U%!%$%"!<%&%)!<%k$,$"$k>l9g$K$O!"(B - $B$3$N%Q%i%a!<%?$r;H$C$F$/$@$5$$!#%U%!%$%"%&%)!<%k$O1}!9$K$7$F!"(B - $BHs3hF0>uBV$N%3%M%/%7%g%s$rMn$H$=$&$H$7$^$9!#(B - $B$3$N%U%i%0$O(B OS $B$K;X<($7$F!"(BKEEP_ALIVE $B%a%C%;!<%8$rHs3hF0>uBV$N(B - $B%3%M%/%7%g%s$G$bAw$k$h$&$K$7$^$9(B ($B4V3V$O(B OS $B$N%0%m!<%P%k@_Dj$K0MB8$7!"(B - $BDL>o$O(B 120ms $B4V3V(B) $B!#$3$l$K$h$C$F%U%!%$%"%&%)!<%k$K$h$C$F%3%M%/%7%g%s$,(B - $BMn$H$5$l$k$3$H$rKI$2$^$9!#(Bkeepalive $B$rM-8z$K$9$k$K$O!"$3$N%W%m%Q%F%#$r(B - On $B$K$7$F$/$@$5$$!#(B +

    バックエンドサーバと Apache の間にファイアーウォールがある場合には、 + このパラメータを使ってください。ファイアウォールは往々にして、 + 非活動状態のコネクションを落とそうとします。 + このフラグは OS に指示して、KEEP_ALIVE メッセージを非活動状態の + コネクションでも送るようにします。これによってファイアウォールによってコネクションが + 落とされることを防げます。keepalive を有効にするには、このプロパティを + On にしてください。

    +

    初期およびその後の TCP キープアライブの間隔は OS のグローバル設定に依存しますが、 + 2 時間以上にしたほうがよいでしょう。有効性を考えると、 + OS で設定した間隔はファイアウォールで使われる閾値より小さくあるべきです。

    retry60$B%3%M%/%7%g%s$r%W!<%j%s%0$9$k$?$a$N!"%j%H%i%$$N%?%$%`%"%&%H$rIC$G(B - $B;XDj$7$^$9!#%P%C%/%(%s%I%5!<%P$X$N%3%M%/%7%g%s%W!<%j%s%0$,<:GT$7$?>l9g$O!"(B - $B%?%$%`%"%&%H$N4|4V$,2a$.$k$^$G!"$=$N%5!<%P$K%j%/%(%9%H$r%U%)%o!<%I$7$^$;$s!#(B - $B$3$N5!G=$r;H$&$H!"%P%C%/%(%s%I%5!<%P$r%a%s%F%J%s%9$N$?$a$K%7%c%C%H%@%&%s$7!"(B - $B8e$G%*%s%i%$%s$KI|5"$5$;$k$H$$$C$?$3$H$,$G$-$^$9!#(B +
    lbset0ワーカーが属するロードバランサのクラスタセットを設定します。 + ロードバランサは、より小さい lbset 値を持つメンバーから使おうとします。 +
    ping0この設定により、Web サーバは ajp13 通信でリクエストを送信する前に + CPING を送るようになります。 + パラメータ値は、CPONG リプライを待つ時間を秒単位で指定します。 + この機能は、ハングしたり高負荷状態の Tomcat に起因する問題を回避するために + 追加されました。 また、ajp13 側に ping/pong 機能のサポートが必要です。 + Tomcat は 3.3.2 以降, 4.1.28 以降, 5.0.13 以降が ping/pong 機能を実装しています。 + この機能は、通常利用でのネットワークトラフィックを増やす可能性があり、 + 問題になるかもしれません。しかし、クラスタを形成するノードの一部が + ダウンしたり高負荷になった時にはトラフィックを抑制できる可能性があります。 + 現在、この設定は AJP でのみ意味があります。 + 値の最後に ms を書くと、単位をミリ秒にできます。
    loadfactor 1$B%o!<%+!<$"$?$j$NIi2Y78?t$G$9!#(BBalancerMember $B$G;H$$$^$9!#(B - 1 $B$+$i(B 100 $B$^$G$N?t;z$G$=$N%o!<%+!<$KBP$9$k@55,2=$5$l$?Ii2YN($r;XDj$7$^$9!#(B + ワーカーあたりの負荷係数です。BalancerMember で使います。 + 1 から 100 までの数字でそのワーカーに対する正規化された負荷率を指定します。 +
    redirect-ワーカーのリダイレクション経路です。この値は通常は、 + クラスタから安全にノードを取り除けるように動的にセットされます。 + もし設定すると、セッション ID 無しの全てのリクエストは、 + この値と同じルーティングパラメータを持つ + BalancerMember にリダイレクトされます。 +
    retry60コネクションをプーリングするための、リトライのタイムアウトを秒で + 指定します。バックエンドサーバへのコネクションプーリングが失敗した場合は、 + タイムアウトの期間が過ぎるまで、そのサーバにリクエストをフォワードしません。 + この機能を使うと、バックエンドサーバをメンテナンスのためにシャットダウンし、 + 後でオンラインに復帰させるといったことができます。 + 0 を指定すると、失敗したワーカーへ、タイムアウト無しで常にリトライします。
    route -$B%m!<%I%P%i%s%5$G;H$C$?>l9g!"%o!<%+!<$N%k!<%F%#%s%0$r$7$^$9!#(B - $B%k!<%H$O%;%C%7%g%s(B ID $B$KIU2C$5$l$?CM$K$J$j$^$9!#(B + ロードバランサで使われた場合のワーカーのルート値。 + ルート値はセッション ID に付加される値です。
    redirect
    status -$B%o!<%+!<$N%j%@%$%l%/%7%g%s7PO)$G$9!#$3$NCM$ODL>o$O!"(B - $B0BA4$K%/%i%9%?$+$i%N!<%I$rl9g$O!"(B - $B$3$NCM$HF1$8%k!<%F%#%s%0%Q%i%a!<%?$r;}$D(B - BalancerMember $B$K%j%@%$%l%/%H$5$l$^$9!#(B + 一文字でワーカーの初期状態を定義します: 'D' は無効 (disabled)、 + 'S' は停止 (stopped)、 'I' はエラー無視 (ignore-errors)、 + 'H' はホットスタンバイ (hot-standby)、 'E' はエラー状態 (error) です。 + '+' を文字の前に書いて有効にするか (これがデフォルト動作です)、 あるいは + '-' を書いて無効にできます。つまり、 'S-E' の指定は、ワーカーを停止状態 + かつ、エラー状態フラグのクリアを意味します。 +
    timeoutProxyTimeoutコネクションタイムアウトを秒で指定します。 + バックエンドからのデータ受信およびバックエンドへのデータ送信の + Apache の待ち時間です。 +
    ttl-非活動状態のコネクションと、関連するコネクションプール内のエントリの + 生存時間を秒で指定します。いったんこの制限に達すると、 + コネクションはふたたび使われることはありません。 + つまり、コネクションは一定時間後に閉じられます。
    -

    Proxy $B%G%#%l%/%F%#%V$N%9%-!<%`$,(B balancer:// $B$K$J$C$F$$$k>l9g$O!"(B - $B%P%C%/%(%s%I%5!<%P$HA[%o!<%+!<$,@8@.$5$l$^$9!#(B - $B$3$N%o!<%+!<$O4v$D$+$N(B "$BK\J*$N(B" $B%o!<%+!<$N4IM}$r$D$+$5$I$j$^$9!#(B - $B$3$N>l9g%Q%i%a!<%?$O!"$3$N2>A[%o!<%+!<$KBP$7$F@_Dj$5$l$^$9!#(B +

    もし ProxyPass ディレクティブのスキームが + balancer:// で始まる場合 (例えば balancer://cluster/、 + パス情報は無視されます)、バックエンドのサーバと実際には通信しない + 仮想ワーカーが生成されます。通信しない代わりに、このワーカーは幾つかの + "本物の" ワーカーの管理をつかさどります。 + この場合、いくつかの特殊パラメータを、この仮想ワーカーに対して設定できます。 + ロードバランス動作のより詳しい情報は、mod_proxy_balancer + を参照してください。

    - - - + + + - - + + + + + + + - - + - - - - - + + - +
    $B%Q%i%a!<%?(B$B%G%U%)%k%HCM(B$B@bL@(B
    パラメータデフォルト値説明
    lbmethod-Balancer $B$N%m!<%I%P%i%s%9J}K!!#;HMQ$9$k%m!<%I%P%i%s%9$N(B - $B%9%1%8%e!<%j%s%0J}K!$rA*$S$^$9!#=hM}$7$?%j%/%(%9%H$N?t$G=E$_IU$1$9$k(B - requests $B$+!"E>AwNL$N%P%$%H?t$G=E$_IU$1$9$k(B - traffic $B$r@_Dj$G$-$^$9!#%G%U%)%k%H$O(B - requests $B$G$9!#(B + byrequestsBalancer のロードバランス方法。使用するロードバランスの + スケジューリング方法を選びます。処理したリクエストの数で重み付けする + byrequests か、転送量のバイト数で重み付けする + bytraffic か、待機中のリクエスト数で振り分ける + bybusyness を設定できます (Apache HTTP サーバ 2.2.10 以降)。 + デフォルトはbyrequests です。 +
    maxattemptsワーカーの数よりひとつ少ない数。あるいはワーカーがひとつであれば1フェイルオーバーを試みる最大の回数を指定します。 +
    nofailoverOffOn になっていると、ワーカーがエラーを起こしたり + 無効になっている場合にセッションが切れます。 + バックエンドサーバがセッションレプリケーションをサポートしていない場合は、 + On にしてください。
    stickysession -$B%P%i%s%5!<$N%9%F%#%C%-!<%;%C%7%g%sL>$G$9!#DL>o$O$3$NCM$O(B JSESSIONID - $B$d(B PHPSESSIONID $B$H$$$C$?$b$N$K$J$j$^$9$,!"$3$NCM$O(B - $B%P%C%/%(%s%I%"%W%j%1!<%7%g%s$N%5%]!<%H$9$k%;%C%7%g%s$K0MB8$7$^$9!#(B + バランサーのスティッキーセッション名です。通常はこの値は JSESSIONID + や PHPSESSIONID といったものになりますが、この値は + セッションをサポートするバックエンドのアプリケーションサーバに依存します。 + バックエンドのアプリケーションサーバが、クッキーやURLエンコードID + に異なるセッション名を使う場合(サーブレットコンテナのように)、 + | 文字でふたつの名前を区切ってください。 + 最初の名前がクッキー用で、二番目がURLパス用です。
    nofailover
    scolonpathdelim OffOn $B$K$J$C$F$$$k$H!"%o!<%+!<$,%(%i!<$r5/$3$7$?$j(B - $BL58z$K$J$C$F$$$k>l9g$K%;%C%7%g%s$,@Z$l$^$9!#(B - $B%P%C%/%(%s%I%5!<%P$,%;%C%7%g%s%l%W%j%1!<%7%g%s$r%5%]!<%H$7$F$$$J$$>l9g$O!"(B - On $B$K$7$F$/$@$5$$!#(B + On にセットすると、セミコロン文字 ';' をスティッキーセッション + の別の区切り文字として使えるようになります。 + これは主に mod_jk の動作に合わせるために使います。例えば、 + JSESSIONID=6736bcf34;foo=aabfa のような指定です。
    timeout 0$B%P%i%s%5!<$N%?%$%`%"%&%H$rIC$G;XDj$7$^$9!#(B - $B$3$NCM$r@_Dj$9$k$H!"%U%j!<$N%o!<%+!<$rバランサーのタイムアウトを秒で指定します。 + この値を設定すると、フリーのワーカーを取得するまでの最大待機時間になります。 + デフォルトでは待機しません。
    maxattempts1$B%U%'%$%k%*!<%P!<$r;n$_$k:GBg$N2s?t$r;XDj$7$^$9!#(B +
    failonstatus-ひとつ、あるいはコンマ区切りの複数の HTTP ステータスコードです。 + この値を設定すると、列挙したステータスコードのどれかをバックエンドが返した時、 + そのワーカーをエラー状態にします。ワーカーのエラーからの回復は + 他のワーカーエラーと同じように動作します。 + Apache HTTP サーバ 2.2.17 以降で使用可能です。
    +

    バランサーの設定例

    - ProxyPass /special-area http://special.example.com/ smax=5 max=10
    - ProxyPass / balancer://mycluster stickysession=jsessionid nofailover=On
    + ProxyPass /special-area http://special.example.com smax=5 max=10
    + ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    <Proxy balancer://mycluster>
    - BalancerMember http://1.2.3.4:8009
    - BalancerMember http://1.2.3.5:8009 smax=10
    - # Less powerful server, don't send as many requests there
    - BalancerMember http://1.2.3.6:8009 smax=1 loadfactor=20
    + BalancerMember ajp://1.2.3.4:8009
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=20
    + # Less powerful server, don't send as many requests there,
    + BalancerMember ajp://1.2.3.6:8009 loadfactor=5
    </Proxy>
    +

    ホットスタンバイの設定例です。他のメンバーが利用できない場合のみ + 使われます。

    + + ProxyPass / balancer://hotcluster/
    + <Proxy balancer://hotcluster>
    + + BalancerMember ajp://1.2.3.4:8009 loadfactor=1
    + BalancerMember ajp://1.2.3.5:8009 loadfactor=2
    + # The below is the hot standby
    + BalancerMember ajp://1.2.3.6:8009 status=+H
    + ProxySet lbmethod=bytraffic +
    + </Proxy> +
    + +

    通常、mod_proxy は ProxyPass した URL を正規化します。 + しかし、これによりバックエンドの互換性に問題が生じることがあります。 + 特に、PATH_INFO を使っている場合に起きがちです。 + nocanon オプションは正規化を抑制し、URL のパスをそのまま ("raw") + バックエンドに伝えます。これがバックエンドのセキュリティに影響を与える可能性に + 注意してください。と言うのも、プロキシによって提供されていた、 + URL ベースの攻撃への通常の一定の防御を無くすことになるからです。

    + +

    オプショナルな interpolate キーワード (httpd 2.2.9 以降で利用可能) + を ProxyPassInterpolateEnv ディレクティブと + 一緒に使うと、${VARNAME} 形式で、 ProxyPass 設定に環境変数を + 使えるようになります。この時、標準的な CGI 由来の環境変数の多くは + 置換に使えないことに注意してください。そのため、複雑なルールの記述のためには、 + mod_rewrite に頼ることになるでしょう。

    +

    Location $B%;%/%7%g%s$NCf$G;H$o$l$?>l9g!":G=i$N0z?t$O(B - $B>JN,$5$l!"%m!<%+%k%G%#%l%/%H%j$O(B Location $B$+$i + >Location セクションの中で使われた場合、最初の引数は + 省略され、ローカルディレクトリは Location から取得されます。 + 同じことは LocationMatch + セクション内でも起きます。しかし、ProxyPass は正規表現を解釈しないので、 + この状況では代わりに ProxyPassMatch を使う必要があります。

    + +

    このディレクティブは Directory や Files セクション内では使えません。

    + +

    より柔軟なリバースプロキシの設定が必要な場合は、[P] + フラグ付きの RewriteRule + ディレクティブを参照してください。

    + +
    +
    + + +ProxyPassMatch +正規表現を使ってリモートサーバをローカルサーバの URL 空間にマップする +ProxyPassMatch [regex] !|url [key=value + [key=value ...]] +server configvirtual host +directory + +Apache 2.2.5 以降で使用可能 + + +

    単純な文字列前方一致ではなく正規表現を用いることを除いて、このディレクティブは + ProxyPass と同じです。 + 指定した正規表現で url に対してマッチを試みます。 + マッチすると、サーバはマッチした丸括弧部分を前方参照の置換に使い、新しい url + にします。

    + +

    ローカルサーバのアドレスが http://example.com/ だとします; + すると

    + + + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1 + + +

    は、ローカルの http://example.com/foo/bar.gif へのリクエストを + 内部的に http://backend.example.com/foo/bar.gif へのプロキシリクエスト + に変換します。

    + 注意 +

    URL 引数は正規表現による置換の 前 でも (当然、置換後でも)、 + URL として解釈できなければいけません。これは使えるマッチに制約をもたらします。 + 例えば、上記の例で

    + + ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1 + +

    と書いたとします。これはサーバ起動時にシンタックスエラーを起こすでしょう。 + これはバグです (ASF bugzilla の PR 46665)。 + 回避策としてマッチ判定を書き換える必要があります:

    + + ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1 + +
    + +

    サブディレクトリをリバースプロキシしたくないときに ! は + 役に立ちます。

    -

    $B$h$j=@Fp$J%j%P!<%9%W%m%-%7$N@_Dj$,I,MW$J>l9g$O!"(B[P] - $B%U%i%0IU$-$N(B RewriteRule - $B%G%#%l%/%F%#%V$r;2>H$7$F$/$@$5$$!#(B

    +

    LocationMatch セクションの中で使われた場合は、 + 最初の引数は省略され、正規表現は LocationMatch から取得されます。

    + +

    より柔軟なリバースプロキシの設定が必要な場合は、[P] + フラグ付きの RewriteRule + ディレクティブを参照してください。

    + + + セキュリティの警告 +

    ルールの対象 URL の生成には注意してください。あなたのサーバがプロキシ + として振る舞う可能性のある URL に対して、クライアントへの影響があります。 + これによるセキュリティインパクトを考慮してください。URL のうち、スキームとホスト名 + の部分をそれぞれ確実に固定してください。そうでないと、クライアントに不当な影響を + 与えかねません。

    +
    ProxyPassReverse -$B%j%P!<%9%W%m%-%7$5$l$?%5!<%P$+$iAw$i$l$?(B HTTP $B1~Ez%X%C%@$N(B -URL $B$rD4@0$9$k(B -ProxyPassReverse [path] url +リバースプロキシされたサーバから送られた HTTP レスポンスヘッダの +URL を調整する +ProxyPassReverse [path] url +[interpolate] server configvirtual host directory -

    $B$3$N%G%#%l%/%F%#%V$O(B Apache $B$K(B HTTP $B%j%@%$%l%/%H1~Ez$N(B +

    このディレクティブは Apache に HTTP リダイレクト応答の Location, Content-Location, URI - $B%X%C%@$ND4@0$r$5$;$^$9!#$3$l$O!"(BApache $B$,%j%P!<%9%W%m%-%7$H$7$F;H$o$l$F$$$k(B - $B$H$-$K!"%j%P!<%9%W%m%-%7$rDL$5$J$$$G%"%/%;%9$9$k$3$H$rKI$0$?$a$K(B - $B=EMW$G$9!#$3$l$K$h$j%P%C%/%(%s%I%5!<%P$N(B HTTP $B%j%@%$%l%/%H$,(B - $B%j%P!<%9%W%m%-%7$H%P%C%/%(%s%I$N4V$G07$o$l$k$h$&$K$J$j$^$9!#(B

    - -

    $B%G%#%l%/%F%#%V$GL@<($5$l$F$$$k(B HTTP $B1~Ez%X%C%@$N$_$,=q$-49$($i$l$^$9!#(B - Apache $B$OB>$N1~Ez%X%C%@$r=q$-49$($?$j!"(BHTML $B%Z!<%8$NCf$N(B URL $B;2>H$r(B - $B=q$-49$($?$j$9$k$3$H$O$"$j$^$;$s!#(BHTML $B$NCf$r8+$F!"(BURL $B;2>H$r=q$-49$($k(B - $B%b%8%e!<%k$K(B Nick Kew $B$5$s$N(B + +

    上記の特別なリダイレクト用の HTTP レスポンスヘッダのみが書き換えられます。 + Apache は他のレスポンスヘッダを書き換えたり、HTML ページの中の URL 参照を + 書き換えたりすることはありません。つまり、リバースプロキシされた HTML ページ内に + 絶対 URL 参照が存在すると、プロキシを通さずにアクセスする可能性があります。 + HTML の中を見て、URL 参照を書き換えるモジュールに Nick Kew さんの mod_proxy_html $B$,$"$j$^$9!#(B

    + >mod_proxy_html があります。

    -

    path $B$O%m!<%+%k2>A[%Q%9$NL>A0$G$9!#(Burl $B$O(B - $B%j%b!<%H%5!<%P$NItJ,(B URL $B$G$9!#$3$l$i$O(B ProxyPass $B%G%#%l%/%F%#%V$HF1MM$G$9!#(B

    +

    path はローカル仮想パスの名前です。url は + リモートサーバの部分 URL です。これらは ProxyPass ディレクティブと同様です。

    -

    $BNc$($P!"%m!<%+%k%5!<%P$N%"%I%l%9$,(B http://example.com/ - $B$@$H$7$^$9!#$9$k$H(B

    +

    例えば、ローカルサーバのアドレスが http://example.com/ + だとします。すると

    ProxyPass /mirror/foo/ http://backend.example.com/
    @@ -790,139 +1165,171 @@ URL $B$rD4@0$9$k(B ProxyPassReverseCookiePath / /mirror/foo/
    -

    $B$H$$$&@_Dj$r$9$k$H!"(Bhttp://example.com/mirror/foo/bar - $B$X$N%m!<%+%k%j%/%(%9%H$,(B http://backend.example.com/bar - $B$X$N%W%m%-%7%j%/%(%9%H$KFbIt$G%j%@%$%l%/%H$5$l$k$@$1$G$O$"$j$^$;$s(B - ($B$3$l$O(B ProxyPass $B$N5!G=$G$9(B)$B!#(Bbackend.example.com - $B$,Aw$k%j%@%$%l%/%H$NLLE]$b$_$^$9!#(Bhttp://backend.example.com/bar - $B$,(B http://backend.example.com/quux $B$K%j%@%$%l%/%H$5$l$?$H$-!"(B - Apache $B$O(B HTTP $B%j%@%$%l%/%H1~Ez$r%/%i%$%"%s%H$KAw$kA0$K!"(B - http://example.com/mirror/foo/quux $B$KJQ99$7$^$9!#(B - URL $B$r9=@.$9$k$N$K;H$o$l$k%[%9%HL>$O(B UseCanonicalName $B$N@_Dj$K1~$8$FA*Br$5$l$k$3$H$K(B - $BCm0U$7$F$/$@$5$$!#(B

    - -

    ProxyPassReverse $B%G%#%l%/%F%#%V$O(B - $BBP1~$9$k(B ProxyPass $B%G%#%l%/%F%#%V$K$O0MB8$7$J$$$?$a!"(B - mod_rewrite $B$N%W%m%-%7DL2a5!G=(B - (RewriteRule ... [P]) $B$HJ;$;$F;HMQ$9$k$3$H$,$G$-$^$9!#(B

    +

    という設定をすると、http://example.com/mirror/foo/bar + へのローカルリクエストが http://backend.example.com/bar + へのプロキシリクエストに内部で変換されるだけではありません + (これは ProxyPass の機能です)。backend.example.com + サーバが送るリダイレクトの面倒もみます。http://backend.example.com/bar + が http://backend.example.com/quux にリダイレクトされたとき、 + Apache は HTTP リダイレクト応答をクライアントに送る前に、リダイレクト先を + http://example.com/mirror/foo/quux に変更します。 + URL を構成するのに使われるホスト名は UseCanonicalName の設定に応じて選択されることに + 注意してください。

    + +

    ProxyPassReverse ディレクティブは + 対応する ProxyPass ディレクティブと独立して利用できるので、 + mod_rewrite のプロキシ通過機能 + (RewriteRule ... [P]) と併せて使用することもできます。

    + +

    オプショナルな interpolate キーワード (httpd 2.2.9 以降で利用可能) + を ProxyPassInterpolateEnv ディレクティブと + 一緒に使うと、${VARNAME} 形式で、 ProxyPassReverse 設定に環境変数を + 使えるようになります。

    Location $B%;%/%7%g%s$NCf$G;H$o$l$?>l9g$O!"(B - $B:G=i$N0z?t$O>JN,$5$l!"%m!<%+%k%G%#%l%/%H%j$O(B Location $B$+$i + >Location セクションの中で使われた場合は、 + 最初の引数は省略され、ローカルディレクトリは Location から取得されます。 + 同じことは LocationMatch セクション内でも起きますが、 + おそらく意図どおりに動きません。と言うのも、ProxyPassReverse + が正規表現をそのまま文字列でパスとして解釈しようとするからです。 + もしこのような状況で必要なら、セクションの外で ProxyPassReverse + を指定するか、あるいは別の Location セクション内で指定してください。

    + +

    このディレクティブは Directory や Files セクション内では使えません。

    ProxyPassReverseCookieDomain -$B%j%P!<%9%W%m%-%7%5!<%P$+$i$N(B Set-Cookie $B%X%C%@$N(B Domain $BJ8;zNs$r(B -$BD4@0$9$k(B -ProxyPassReverseCookieDomain internal-domain public-domain +リバースプロキシサーバからの Set-Cookie ヘッダの Domain 文字列を +調整する +ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate] server configvirtual host directory -

    $B;HMQK!$O4pK\E*$K(B -ProxyPassReverse $B$HF1$8$G$9$,!"(B -$B%X%C%@$N(B URL $B$NBe$o$j$K(B Set-Cookie $B%X%C%@$N(B -domain $BJ8;zNs$r=q$-49$($^$9!#(B

    +

    使用法は基本的に +ProxyPassReverse と同じですが、 +ヘッダの URL の代わりに Set-Cookie ヘッダ内の +domain 文字列を書き換えます。

    + ProxyPassReverseCookiePath -Reverse $B%W%m%-%7%5!<%P$+$i$N(B Set-Cookie $B%X%C%@$N(B Path $BJ8;zNs$r(B -$BD4@0$9$k(B -ProxyPassReverseCookiePath internal-path public-path +リバースプロキシサーバからの Set-Cookie ヘッダの Path 文字列を +調整する +ProxyPassReverseCookiePath internal-path +public-path [interpolate] server configvirtual host directory -

    $B;HMQK!$O4pK\E*$K(B -ProxyPassReverse $B$HF1$8$G$9$,!"(B -$B%X%C%@$N(B URL $B$NBe$o$j$K(B Set-Cookie $B%X%C%@$N(B -path $BJ8;zNs$r=q$-49$($^$9!#(B

    +

    +バックエンドの URL パスがリバースプロキシ上の公開パスにマップされる状況で、 +ProxyPassReverse といっしょに +役立ちます。このディレクティブは Set-Cookie ヘッダ内の +path 文字列を書き換えます。もしクッキーのパスが +internal-path に先頭マッチすれば、クッキーのパスは +public-path に置換されます。 +

    +ProxyPassReverse +での例を使うと、ディレクティブ:

    + + ProxyPassReverseCookiePath / /mirror/foo/ + +

    は、バックエンドのパスが / (あるいは /example +あるいは実際のところなんでも) のクッキーを /mirror/foo/ +に書き換えます。 +

    AllowCONNECT -$B%W%m%-%7$r7PM3$7$F!"$I$N%]!<%H$K(B CONNECT -$B$G$-$k$+$r;XDj$9$k(B +プロキシを経由して、どのポートに CONNECT +できるかを指定する AllowCONNECT port [port] ... AllowCONNECT 443 563 server configvirtual host -

    AllowCONNECT $B$O%W%m%-%7$N(B CONNECT - $B%a%=%C%I$,@\B3$r5v2D$9$k%]!<%HHV9f$N%j%9%H$r;XDj$7$^$9!#(B - $B:#F|$N%V%i%&%6$O!"(Bhttps $B%3%M%/%7%g%s$,MW5a$5$l$F$$$F!"(B - HTTP $B>e$G$N%W%m%-%7$K$h$k%H%s%M%j%s%0$,$G$-$k$H$-$K!"(B - $B$3$N%a%=%C%I$r;H$$$^$9!#(B

    - -

    $B%G%U%)%k%H$N@_Dj$G$O!"(Bhttps $B$N%G%U%)%k%H%]!<%H(B (443) $B$H(B - $B%G%U%)%k%H$N(B snews $B%]!<%H(B (563) $B$,M-8z$K$J$C$F$$$^$9!#(B - $B$3$N%G%U%)%k%H$r>e=q$-$7$F!"%j%9%H$K5-:\$7$?%]!<%H$K$N$_@\B3$r5v2D$7$?$$>l9g!"(B - AllowCONNECT $B%G%#%l%/%F%#%V$r;HMQ$7$^$9!#(B

    - -

    CONNECT $B$r;HMQ$9$k$K$O!"(Bmod_proxy_connect - $B$,%5!<%P$KAH$_9~$^$l$F$$$J$1$l$P$J$i$J$$$3$H$KCm0U$7$F$/$@$5$$!#(B

    +

    AllowCONNECT はプロキシの CONNECT + メソッドが接続を許可するポート番号のリストを指定します。 + 今日のブラウザは、https コネクションが要求されていて、 + HTTP 上でのプロキシによるトンネリングができるときに、 + このメソッドを使います。

    + +

    デフォルトの設定では、https のデフォルトポート (443) と + デフォルトの snews ポート (563) が有効になっています。 + このデフォルトを上書きして、リストに記載したポートにのみ接続を許可したい場合、 + AllowCONNECT ディレクティブを使用します。

    + +

    CONNECT を使用するには、mod_proxy_connect + がサーバに組み込まれていなければならないことに注意してください。

    ProxyBlock -$B%W%m%-%7@\B3$r6X;_$9$k8l6g!"%[%9%HL>!"%I%a%$%s$r;XDj$9$k(B +プロキシ接続を禁止する語句、ホスト名、ドメインを指定する ProxyBlock *|word|host|domain [word|host|domain] ... server configvirtual host -

    ProxyBlock $B%G%#%l%/%F%#%V$O6uGr$G6h@Z$i$l$?(B - $B8l6g!"%[%9%HL>!"%I%a%$%s$N%j%9%H$r;XDj$7$^$9!#%5%$%HL>$K$=$N8l6g!"%[%9%HL>!"(B - $B%I%a%$%s$r4^$`%5%$%H$X$N(B HTTP$B!"(BHTTPS$B!"(BFTP $B$K$h$k%I%-%e%a%s%H$N%j%/%(%9%H$O(B - $B%W%m%-%7%5!<%P$K$h$j(B$B%V%m%C%/$5$l$^$9(B$B!#%W%m%-%7%b%8%e!<%k$O(B - $B5/F0;~$K%[%9%HL>$H;W$7$-9`L\$N(B IP $B%"%I%l%9$rD4$Y!"8e$N%F%9%H$N$?$a$K(B - $B%-%c%C%7%e$7$^$9!#$3$l$K$h$j!"%5!<%P$N5/F0$,>/$7CY$/$J$k$+$b$7$l$^$;$s!#(B

    +

    ProxyBlock ディレクティブは空白で区切られた + 語句、ホスト名、ドメインのリストを指定します。サイト名にその語句、ホスト名、 + ドメインを含むサイトへの HTTP、HTTPS、FTP によるドキュメントのリクエストは + プロキシサーバにより ブロックされます。プロキシモジュールは + 起動時にホスト名と思しき項目の IP アドレスを調べ、後のテストのために + キャッシュします。これにより、サーバの起動が少し遅くなるかもしれません。

    Example ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu -

    rocky.wotsamattau.edu $B$,(B IP $B%"%I%l%9$G;2>H$5$l$?$H$-$G$b(B - $B%^%C%A$7$^$9!#(B

    +

    rocky.wotsamattau.edu が IP アドレスで参照されたときでも + マッチします。

    -

    wotsamattau.edu $B$N%^%C%A$K$O(B wotsamattau - $B$@$1$G$b==J,$G$9!#(B

    +

    wotsamattau.edu のマッチには wotsamattau + だけでも十分です。

    ProxyBlock * -

    $B$O$9$Y$F$N%5%$%H$X$N@\B3$r%V%m%C%/$9$k$3$H$KCm0U$7$F$/$@$5$$!#(B

    +

    はすべてのサイトへの接続をブロックすることに注意してください。

    ProxyReceiveBufferSize -$B%W%m%-%7$5$l$k(B HTTP $B$H(B FTP $B@\B3$N$?$a$N%M%C%H%o!<%/%P%C%U%!%5%$%:(B +プロキシされる HTTP と FTP 接続のためのネットワークバッファサイズ ProxyReceiveBufferSize bytes ProxyReceiveBufferSize 0 server configvirtual host -

    ProxyReceiveBufferSize $B%G%#%l%/%F%#%V$O(B - $B%9%k!<%W%C%H$r>e$2$k$?$a$KL@<(E*$K(B (TCP/IP) $B%M%C%H%o!<%/%P%C%U%!$N%5%$%:$r(B - $B@_Dj$7$^$9!#CM$O(B 512 $B0J>e$+!"%7%9%F%`$N%G%U%)%k%H$N%P%C%U%!(B - $B%5%$%:$r0UL#$9$k(B 0 $B$G$J$1$l$P$J$j$^$;$s!#(B

    +

    ProxyReceiveBufferSize ディレクティブは + スループットを上げるために明示的に (TCP/IP) ネットワークバッファのサイズを + 設定します。値は 512 以上か、システムのデフォルトのバッファ + サイズを意味する 0 でなければなりません。

    - $BNc(B + 例 ProxyReceiveBufferSize 2048
    @@ -930,263 +1337,324 @@ URL $B$rD4@0$9$k(B ProxyIOBufferSize -$BFbIt%G!<%?%9%k!<%W%C%H%P%C%U%!$N%5%$%:$r7hDj$9$k(B +内部データスループットバッファのサイズを決定する ProxyIOBufferSize bytes ProxyIOBufferSize 8192 server configvirtual host -

    ProxyIOBufferSize $B%G%#%l%/%F%#%V$OF~NO$H(B - $B=PNOMQ$N0l;~%a%b%j$H$7$F;H$o$l$kFbIt%P%C%U%!$N%5%$%:$rD4@0$7$^$9!#(B - $B%5%$%:$O(B 8192 $B0J2<$G$J$1$l$P$J$j$^$;$s!#(B

    +

    ProxyIOBufferSize ディレクティブは入力と + 出力用の一時メモリとして使われる内部バッファのサイズを調整します。 + サイズは 8192 以下でなければなりません。

    -

    $B$[$H$s$I$9$Y$F$N>l9g!"$3$NCM$rJQ99$9$kM}M3$O$"$j$^$;$s!#(B

    +

    ほとんどすべての場合、この値を変更する理由はありません。

    ProxyMaxForwards -$B%j%/%(%9%H$,%U%)%o!<%I$5$l$k%W%m%-%7$N:GBg?t(B +リクエストがフォワードされるプロキシの最大数 ProxyMaxForwards number -ProxyMaxForwards 10 +ProxyMaxForwards -1 server configvirtual host -Apache 2.0 $B0J9_$G;HMQ2DG=(B +Apache 2.0 以降で使用可能; Apache 2.2.7でデフォルト動作が変わりました -

    ProxyMaxForwards $B%G%#%l%/%F%#%V$O(B - $B%j%/%(%9%H$K(B Max-Forwards $B%X%C%@$,;XDj$5$l$F$$$J$$>l9g$K(B - $B%j%/%(%9%H$,DL2a2DG=$J%W%m%-%7$N:GBg?t$r@_Dj$7$^$9!#$3$l$O(B - $B%W%m%-%7$NL58B%k!<%W$d(B DoS $B967b$rKI$0$?$a$K@_Dj$5$l$F$$$^$9!#(B

    +

    ProxyMaxForwards ディレクティブは + リクエストに Max-Forwards ヘッダが指定されていない場合に + リクエストが通過可能なプロキシの最大数を設定します。これは + プロキシの無限ループや DoS 攻撃を防ぐために設定されるかもしれません。

    - $BNc(B + 例 ProxyMaxForwards 15 + +

    ProxyMaxForwards の設定は、HTTP/1.1 (RFC2616) + に違反します。と言うのも、RFC2616 は、クライアントが Max-Forwards + ヘッダをセットしない時、プロキシが Max-Forwards ヘッダを + セットすることを禁じているからです。 + Apache の初期バージョンは常にセットする可能性がありました。 + ProxyMaxForwards に負数 (デフォルト値の -1 も含む) + を指定すると、HTTP/1.1 準拠の動作になります。しかし、これは無限ループの危険性を残します。

    NoProxy -$BD>@\@\B3$9$k(B $B%[%9%H!"%I%a%$%s!"%M%C%H%o!<%/(B +直接接続する ホスト、ドメイン、ネットワーク NoProxy host [host] ... server configvirtual host -

    $B$3$N%G%#%l%/%F%#%V$O%$%s%H%i%M%C%HCf$N(B Apache $B%W%m%-%7%5!<%P$K$N$_(B - $BM-MQ$G$9!#(BNoProxy $B%G%#%l%/%F%#%V$O6uGr6h@Z$j$G!"(B - $B%5%V%M%C%H!"(BIP $B%"%I%l%9!"%[%9%H!"%I%a%$%s$N%j%9%H$r;XDj$7$^$9!#(B - $B$3$l$i$N$I$l$+$K%^%C%A$9$k%[%9%H$X$N%j%/%(%9%H$O(B ProxyRemote $B$G@_Dj$5$l$?%W%m%-%7%5!<%P$K(B - $B%U%)%o!<%I$5$l$:!"D>@\=hM}$5$l$^$9!#(B

    - - $BNc(B - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21 +

    このディレクティブはイントラネット中の Apache プロキシサーバにのみ + 有用です。NoProxy ディレクティブは空白区切りで、 + サブネット、IP アドレス、ホスト、ドメインのリストを指定します。 + これらのどれかにマッチするホストへのリクエストは ProxyRemote で設定されたプロキシサーバに + フォワードされず、直接処理されます。

    + + 例 + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21
    -

    NoProxy $B%G%#%l%/%F%#%V$N(B host $B0z?t$O(B - $B0J2<$N +

    NoProxy ディレクティブの host 引数は + 以下の種類のどれかです:

    Domain
    -

    Domain $B$O@hF,$K%T%j%*%I$NCe$$$?ItJ,(B DNS $B%I%a%$%sL>$G$9!#(B - $BF10l(B DNS $B%I%a%$%s5Z$S%>!<%s(B ($B$9$J$o$A(B$B!"%[%9%HL>$NKvHx$,$9$Y$F(B - Domain $B$G=*$o$C$F$$$k$H$$$&$3$H(B) $B$KB0$9$k%[%9%H$N%j%9%H$r(B - $BI=$7$^$9(B)$B!#(B

    +

    Domain は先頭にピリオドを書いた部分 DNS ドメイン名です。 + 同一 DNS ドメイン及びゾーン (すなわち、ホスト名の末尾がすべて + Domain で終わっているということ) に属するホストのリストを + 表します)。

    - $BNc(B + 例 .com .apache.org. -

    Domain $B$r(B Hostname $B$H6hJL$9$k$?$a$K(B ($B0UL#E*$K$b9=J8E*$K$b!#(BDNS $B%I%a%$%s$b(B - DNS $B$N(B A $B%l%3!<%I$r;}$D$3$H$,$G$-$k$N$G$9(B!)$B!"(BDomain $B$O(B - $B>o$K%T%j%*%I$G;O$^$j$^$9!#(B

    - - $BCm(B -

    $B%I%a%$%sL>$NHf3S$OBgJ8;z>.J8;z$r6hJL$;$:$K9T$J$o$l!"(BDomain - $B$O>o$K(B DNS $B%D%j!<$N%k!<%H$+$i;O$^$k$b$N$H$_$J$5$l$^$9!#$G$9$+$i!"(B - $B.MyDomain.com $B$H(B - .mydomain.com. ($B:G8e$N%T%j%*%I$KCmL\(B) $B$OF10l$G$"$k$H(B - $B$_$J$5$l$^$9!#%I%a%$%s$NHf3S$O(B DNS $B%k%C%/%"%C%W$J$7$G9T$J$o$l$k$?$a!"(B - $B%5%V%M%C%H$NHf3S$h$j$b$:$C$H8zN(E*$G$9!#(B

    +

    Domain を Hostname と区別するために (意味的にも構文的にも。DNS ドメインも + DNS の A レコードを持つことができるのです!)、Domain は + 常にピリオドで始まります。

    + + 注 +

    ドメイン名の比較は大文字小文字を区別せずに行なわれ、Domain + は常に DNS ツリーのルートから始まるものとみなされます。ですから、 + 次の二つのドメイン .ExAmple.com と + .example.com. (最後のピリオドに注目) は同一であると + みなされます。ドメインの比較は DNS ルックアップなしで行なわれるため、 + サブネットの比較よりもずっと効率的です。

    SubNet
    -

    SubNet $B$O?tCM7A<0(B ($B%I%C%H$G6h@Z$i$l$?;M$D$N?t;z(B) $B$N(B - $BItJ,%$%s%?!<%M%C%H%"%I%l%9$G$9!#8e$K%9%i%C%7%e$H(B Subnet - $B$N0UL#$N$"$k%S%C%H?t$r;XDj$9$k%M%C%H%^%9%/$H$rB3$1$k$3$H$,$G$-$^$9!#(B - $B6&DL$N%M%C%H%o!<%/%$%s%?%U%'!<%9$r;H$C$FE~C#$9$k$3$H$N$G$-$k%5%V%M%C%H$r(B - $BI=$9$?$a$K;H$o$l$^$9!#L@<(E*$K%M%C%H%^%9%/$r;XDj$7$J$$>l9g$O(B - $B:G8e$N>JN,$5$l$?(B ($B$b$7$/$OCM$,(B 0 $B$N(B) $B?t;z$,%^%9%/$r;XDj$7$^$9!#(B - ($B$3$N>l9g$O!"%M%C%H%^%9%/$O(B 8 $B%S%C%HC10L$G$7$+;XDj$G$-$^$;$s!#(B) - $BNc(B:

    +

    SubNet は数値形式 (ドットで区切られた四つの数字) の + 部分インターネットアドレスです。後にスラッシュと Subnet + の意味のあるビット数を指定するネットマスクとを続けることができます。 + 共通のネットワークインタフェースを使って到達することのできるサブネットを + 表すために使われます。明示的にネットマスクを指定しない場合は + 最後の省略された (もしくは値が 0 の) 数字がマスクを指定します。 + (この場合は、ネットマスクは 8 ビット単位でしか指定できません。) + 例:

    -
    192.168 $B$b$7$/$O(B 192.168.0.0
    -
    $B%5%V%M%C%H(B 192.168.0.0 $B$H0EL[$N(B 16 $B%S%C%HM-8z$J%M%C%H%^%9%/(B - (255.255.0.0 $B$H$$$&%M%C%H%^%9%/$N7A<0$G;H$o$l$k$3$H$b(B - $B$"$j$^$9(B)
    +
    192.168 もしくは 192.168.0.0
    +
    サブネット 192.168.0.0 と暗黙の 16 ビット有効なネットマスク + (255.255.0.0 というネットマスクの形式で使われることも + あります)
    192.168.112.0/21
    -
    $B%5%V%M%C%H(B192.168.112.0/21 $B$H(B 21 $B%S%C%HM-8z$J(B - $B%M%C%H%^%9%/(B (255.255.248.0 $B$H$$$&7A<0$G;H$o$l$k$3$H$b(B - $B$"$j$^$9(B)
    +
    サブネット192.168.112.0/21 と 21 ビット有効な + ネットマスク (255.255.248.0 という形式で使われることも + あります)
    -

    $BFCJL$J>l9g$K!"(B32 $B%S%C%HM-8z$J(B SubNet $B$O(B - IPAddr $B$HF1Ey$G!"(B - 0 $B%S%C%HM-8z$J(B SubNet ($BNc$($P(B$B!"(B0.0.0.0/0) $B$O(B - $B$9$Y$F$N(B IP $B%"%I%l%9$K%^%C%A$9$kDj?t(B _Default_ $B$HF1$8$G$9!#(B

    +

    特別な場合に、32 ビット有効な SubNet は + IPAddr と同等で、 + 0 ビット有効な SubNet (例えば、0.0.0.0/0) は + すべての IP アドレスにマッチする定数 _Default_ と同じです。

    IPAddr
    -

    IPAddr $B$O?tCM7A<0(B ($B%I%C%H$G6h@Z$i$l$?;M$D$N?t;z(B) $B$N(B - $B40A4%$%s%?!<%M%C%H%"%I%l%9$G$9!#DL>o$O$3$N%"%I%l%9$O%[%9%H$r(B - $BI=$7$^$9$,!"I,$:$7$b%"%I%l%9$KBP1~$9$k(B DNS $B%I%a%$%sL>$,$"$k$o$1$G$O(B - $B$"$j$^$;$s!#(B

    +

    IPAddr は数値形式 (ドットで区切られた四つの数字) の + 完全インターネットアドレスです。通常はこのアドレスはホストを + 表しますが、必ずしもアドレスに対応する DNS ドメイン名があるわけでは + ありません。

    - $BNc(B + 例 192.168.123.7 - - $BCm(B -

    IPAddr $B$O(B DNS $B%7%9%F%`$K$h$j2r7h$5$l$kI,MW$,$J$$$N$G!"(B - apache $B$N@-G=$,8~>e$9$k$+$b$7$l$^$;$s!#(B

    + + 注 +

    IPAddr は DNS システムにより解決される必要がないので、 + apache の性能が向上するかもしれません。

    Hostname
    -

    Hostname $B$O(B DNS $B%I%a%$%s%5!<%S%9$K$h$j0l$D$b$7$/$O(B - $BJ#?t$N(B IPAddr $B$K2r7h2DG=$J(B - $B40A4$J(B DNS $B%I%a%$%sL>$G$9!#$3$l$O(B (Domain - $B$H0c$C$F!"@bL@$O>e5-$r;2>H(B) $BO@M}E*$J%[%9%H$rI=$7!">/$/$H$b0l$D$N(B - IPAddr ($B$b$7$/$O0c$&(B - IPAddr $B$N%[%9%H$N%j%9%H(B) $B$K2r7h(B - $B$5$l$J$1$l$P$J$j$^$;$s(B)$B!#(B

    - - $BNc(B - prep.ai.mit.edu
    +

    Hostname は DNS ドメインサービスにより一つもしくは + 複数の IPAddr に解決可能な + 完全な DNS ドメイン名です。これは (Domain + と違って、説明は上記を参照) 論理的なホストを表し、少くとも一つの + IPAddr (もしくは違う + IPAddr のホストのリスト) に解決 + されなければなりません)。

    + + 例 + prep.ai.example.com
    www.apache.org
    - $BCm(B -

    $BB?$/$N>l9g!"(BHostname $B$NBe$o$j$K(B IPAddr $B$r;XDj$7$?J}$,!"(BDNS $B%k%C%/%"%C%W$r(B - $BHr$1$k$3$H$,$G$-$k$?$a!"8zN($,NI$/$J$j$^$9!#(BApache $B$NL>A02r7h$O(B - $B%M!<%`%5!<%P$X$N@\B3$,CY$$(B PPP $B>e$N>l9g$J$I$K$+$J$j;~4V$r -

    Hostname $B$NHf3S$OBgJ8;z>.J8;z$r6hJL$;$:$K9T$J$o$l!"(B - Hostname $B$O>o$K(B DNS $B%D%j!<$N%k!<%H$+$i;O$^$k$b$N$H$_$J$5$l$^$9!#(B - $B$G$9$+$i!"Fs$D$N%I%a%$%s(B WWW.MyDomain.com $B$H(B - www.mydomain.com. ($B:G8e$N%T%j%*%I$KCmL\(B) $B$OF10l$G$"$k$H(B - $B$_$J$5$l$^$9!#(B

    + 注 +

    多くの場合、Hostname の代わりに IPAddr を指定した方が、DNS ルックアップを + 避けることができるため、効率が良くなります。Apache の名前解決は + ネームサーバへの接続が遅い PPP 上の場合などにかなり時間を取られる + ことがあります。

    +

    Hostname の比較は大文字小文字を区別せずに行なわれ、 + Hostname は常に DNS ツリーのルートから始まるものとみなされます。 + ですから、二つのドメイン WWW.ExAmple.com と + www.example.com. (最後のピリオドに注目) は同一であると + みなされます。

    -DNS $B$K4X$9$kLdBj(B +DNS に関する問題
    ProxyTimeout -$B%W%m%-%7$5$l$?%j%/%(%9%H$N%M%C%H%o!<%/%?%$%`%"%&%H(B +プロキシされたリクエストのネットワークタイムアウト ProxyTimeout seconds -ProxyTimeout 300 +Timeout の値 server configvirtual host -Apache 2.0.31 $B0J9_$G;HMQ2DG=(B +Apache 2.0.31 以降で使用可能 -

    $B$3$N%G%#%l%/%F%#%V$O%f!<%6$,%W%m%-%7%j%/%(%9%H$N%?%$%`%"%&%H$r(B - $B;XDj$G$-$k$h$&$K$7$^$9!#$3$l$O%O%s%0$7$F$7$^$&CY$$!"$b$7$/$O5sF0$N(B - $B2x$7$$%5!<%P$,$"$j!"%5!<%P$,%G!<%?$rJV$9$^$G$R$?$9$iBT$AB3$1$k$h$j$b(B - $B%?%$%`%"%&%H$rJV$7$F$h$j4K$d$+$K(Bgraceful $B$K(B - $B<:GT$5$;$?$$>l9g$KLr$KN)$A$^$9!#(B

    +

    このディレクティブはユーザがプロキシリクエストのタイムアウトを + 指定できるようにします。これはハングしてしまうほど遅い、もしくは挙動の + 怪しいサーバがあり、サーバがデータを返すまでひたすら待ち続けるよりも + タイムアウトを返してより緩やかにgraceful に + 失敗させたい場合に役に立ちます。

    ProxyDomain -$B%W%m%-%7$5$l$?%j%/%(%9%H$N%G%U%)%k%H$N%I%a%$%sL>(B +プロキシされたリクエストのデフォルトのドメイン名 ProxyDomain Domain server configvirtual host -

    $B$3$N%G%#%l%/%F%#%V$O%$%s%H%i%M%C%HFb$N(B Apache $B%W%m%-%7%5!<%P$K$N$_(B - $BM-MQ$G$9!#(BProxyDomain $B%G%#%l%/%F%#%V$O(B - apache $B%W%m%-%7%5!<%P$,B0$9$k%G%U%)%k%H$N%I%a%$%s$r;XDj$7$^$9!#(B - $B%I%a%$%sL>$NL5$$%j%/%(%9%H$rl9g!"@_Dj$5$l$?(B Domain - $B$,DI2C$5$l$?F1$8%[%9%H$X$N%j%@%$%l%/%H1~Ez$,JV$5$l$^$9!#(B

    - - $BNc(B - ProxyRemote * http://firewall.mycompany.com:81
    - NoProxy .mycompany.com 192.168.112.0/21
    - ProxyDomain .mycompany.com +

    このディレクティブはイントラネット内の Apache プロキシサーバにのみ + 有用です。ProxyDomain ディレクティブは + apache プロキシサーバが属するデフォルトのドメインを指定します。 + ドメイン名の無いリクエストを受けた場合、設定された Domain + が追加された同じホストへのリダイレクト応答が返されます。

    + + 例 + ProxyRemote * http://firewall.example.com:81
    + NoProxy .example.com 192.168.112.0/21
    + ProxyDomain .example.com
    ProxyVia -$B%W%m%-%7$5$l$?%j%/%(%9%H$N(B Via HTTP $B1~Ez%X%C%@(B -$B$K$h$jDs6!$5$l$k>pJs(B +プロキシされたリクエストの Via HTTP レスポンスヘッダ +により提供される情報 ProxyVia On|Off|Full|Block ProxyVia Off server configvirtual host -

    $B$3$N%G%#%l%/%F%#%V$O%W%m%-%7$N(B Via: HTTP $B%X%C%@$N;HMQ$r(B - $B@)8f$7$^$9!#A[Dj$5$l$F$$$k;H$$J}$O!"%W%m%-%7%5!<%P$,$$$/$D$b7R$,$C$F$$$k$H$-$K(B - $B%W%m%-%7%j%/%(%9%H$NN.$l$r@)8f$9$k$3$H$G$9!#(BVia: $B%X%C%@9T$N(B - $B@bL@$O(B このディレクティブはプロキシの Via: HTTP ヘッダの使用を + 制御します。想定されている使い方は、プロキシサーバがいくつも繋がっているときに + プロキシリクエストの流れを制御することです。Via: ヘッダ行の + 説明は RFC 2616 (HTTP/1.1) - $B$N(B 14.45 $B@a$rFI$s$G$/$@$5$$!#(B

    + の 14.45 節を読んでください。

      -
    • $B%G%U%)%k%H$N(B Off $B$K@_Dj$5$l$F$$$k$H!"FCJL$J=hM}$O(B - $B9T$J$o$l$^$;$s!#%j%/%(%9%H$d%j%W%i%$$K(B Via: $B%X%C%@$,$"$l$P!"(B - $BJQ99$5$l$:$K$=$N$^$^EO$7$^$9!#(B
    • +
    • デフォルトの Off に設定されていると、特別な処理は + 行なわれません。リクエストやリプライに Via: ヘッダがあれば、 + 変更されずにそのまま渡します。
    • -
    • On $B$K@_Dj$5$l$F$$$l$P!"3F%j%/%(%9%H$H%j%W%i%$$K(B - Via: $B9T$,DI2C$5$l$^$9!#(B
    • +
    • On に設定されていれば、各リクエストとリプライに + Via: 行が追加されます。
    • -
    • Full $B$K@_Dj$5$l$F$$$l$P!"(BVia: $B%X%C%@$O(B - $B%3%a%s%HItJ,$K(B Apache $B%5!<%P$N%P!<%8%g%s$b4^$`$h$&$K$J$j$^$9!#(B
    • +
    • Full に設定されていれば、Via: ヘッダは + コメント部分に Apache サーバのバージョンも含むようになります。
    • -
    • Block $B$K@_Dj$5$l$F$$$l$P!"$9$Y$F$N%W%m%-%7%j%/%(%9%H$+$i(B - Via: $B%X%C%@$,Via: $B$,(B - $B@8@.$5$l$k$3$H$O$"$j$^$;$s!#(B
    • +
    • Block に設定されていれば、すべてのプロキシリクエストから + Via: ヘッダが取り除かれます。新たに Via: が + 生成されることはありません。
    ProxyErrorOverride -$B%W%m%-%7$5$l$?%3%s%F%s%D$N%(%i!<%Z!<%8$r>e=q$-$9$k(B +プロキシされたコンテンツのエラーページを上書きする ProxyErrorOverride On|Off ProxyErrorOverride Off server configvirtual host -$B%P!<%8%g%s(B 2.0 $B0J9_$G;HMQ2DG=(B +Apache 2.0 以降で使用可能 -

    $B$3$N%G%#%l%/%F%#%V$O%j%P!<%9%W%m%-%7$r;HMQ$7$F$$$F!"(B - $B%(%s%I%f!<%6$KAw$i$l$k%(%i!<%Z!<%8$N308+$r6&DL$N$b$N$K$7$?$$$H$-$K(B - $BM-MQ$G$9!#$3$N%G%#%l%/%F%#%V$O(B (mod_include $B$N(B SSI $B$K$h$C$F(B) - $B%$%s%/%k!<%I$5$l$?%U%!%$%k$,%(%i!<%3!<%I$r +

    このディレクティブはリバースプロキシを使用していて、 + エンドユーザに送られるエラーページの外見を共通のものにしたいときに + 有用です。このディレクティブは (mod_include の SSI によって) + インクルードされたファイルがエラーコードを取得して、正しく動作を + するようにもします (デフォルトの動作は、プロキシされたサーバの + エラーページの表示で、このディレクティブを有効にすると SSI のエラー + メッセージを表示します)。

    + +

    このディレクティブは informational (1xx), 成功 (2xx), + リダイレクト (3xx) ステータスのレスポンス処理には影響しません。

    +
    +
    + + +ProxyPassInterpolateEnv +リバースプロキシ設定内での環境変数の使用を有効にする +ProxyPassInterpolateEnv On|Off +ProxyPassInterpolateEnv Off +server config +virtual host +directory + +Apache 2.2.9 以降で使用可能 + + +

    ProxyPass, ProxyPassReverse, + ProxyPassReverseCookieDomain, + ProxyPassReverseCookiePath の + interpolate 引数と一緒にこのディレクティブを使うと、 + 環境変数を使ってリバースプロキシを動的に設定できます。 + mod_rewrite など他のモジュールで環境変数を設定する想定です。 + ProxyPass ディレクティブ, + ProxyPassReverse ディレクティブ, + ProxyPassReverseCookieDomain ディレクティブ, + ProxyPassReverseCookiePath ディレクティブ + の動作に影響を与え、これらの設定ディレクティブ内の ${varname} の文字列を + 環境変数 varname の値で置き換えます。 + (interpolate オプションがセットされていれば)

    +

    必要にならない限り、このディレクティブは無効にしてください。 + (サーバのパフォーマンスのため)

    +
    +
    + + +ProxyStatus +mod_status でプロキシのロードバランサの状態を表示 +ProxyStatus Off|On|Full +ProxyStatus Off +server config +virtual host + +Apache 2.2 以降で使用可能 + + +

    このディレクティブは mod_status によるサーバステータスのページ + にプロキシのロードバランサの状態を表示するか否かを決めます。

    + 注意 +

    Full は On の別名です。

    +
    +
    diff --git a/docs/manual/mod/mod_proxy.xml.meta b/docs/manual/mod/mod_proxy.xml.meta index 7e1e4da8138..38a79fdda73 100644 --- a/docs/manual/mod/mod_proxy.xml.meta +++ b/docs/manual/mod/mod_proxy.xml.meta @@ -1,12 +1,14 @@ + - + mod_proxy /mod/ .. en - ja + fr + ja diff --git a/docs/manual/mod/mod_proxy_ajp.html b/docs/manual/mod/mod_proxy_ajp.html index 2e2bf126e05..676c8714678 100644 --- a/docs/manual/mod/mod_proxy_ajp.html +++ b/docs/manual/mod/mod_proxy_ajp.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_proxy_ajp.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_proxy_ajp.html.ja.euc-jp +URI: mod_proxy_ajp.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy_ajp.html.en b/docs/manual/mod/mod_proxy_ajp.html.en index b42c63ac865..01d1f3906e9 100644 --- a/docs/manual/mod/mod_proxy_ajp.html.en +++ b/docs/manual/mod/mod_proxy_ajp.html.en @@ -1,25 +1,32 @@ - -mod_proxy_ajp - Apache HTTP Server +mod_proxy_ajp - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_proxy_ajp

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_proxy_ajp

    Available Languages:  en  |  ja 

    @@ -27,8 +34,8 @@ - - + +
    Description:AJP support module for mod_proxy
    Status:Extension
    Module Identifier:proxy_ajp_module
    Source File:proxy_ajp.c
    Module Identifier:proxy_ajp_module
    Source File:mod_proxy_ajp.c
    Compatibility:Available in version 2.1 and later

    Summary

    @@ -46,21 +53,73 @@ large.

    -

    Directives

    -

    This module provides no - directives.

    -

    Topics

    +

    Topics

    See also

    +

    Directives

    +

    This module provides no + directives.

    +

    See also

    +
  • Environment Variable documentation
  • +
    top
    +

    Usage

    +

    This module is used to reverse proxy to a backend application server + (e.g. Apache Tomcat) using the AJP13 protocol. The usage is similar to + an HTTP reverse proxy, but uses the ajp:// prefix:

    + +

    Simple Reverse Proxy

    + ProxyPass /app ajp://backend.example.com:8009/app +

    + +

    Balancers may also be used:

    +

    Balancer Reverse Proxy

    + <Proxy balancer://cluster>
    + + BalancerMember ajp://app1.example.com:8009 loadfactor=1
    + BalancerMember ajp://app2.example.com:8009 loadfactor=2
    + ProxySet lbmethod=bytraffic
    +
    + </Proxy>
    + ProxyPass /app balancer://cluster/app +

    +

    Note that usually no + ProxyPassReverse + directive is necessary. The AJP request includes the original host + header given to the proxy, and the application server can be expected + to generate self-referential headers relative to this host, so no + rewriting is necessary. +

    + +

    The main exception is when the URL path on the proxy differs from that + on the + backend. In this case, a redirect header can be rewritten relative to the + original host URL (not the backend ajp:// URL), for + example:

    +

    Rewriting Proxied Path

    + ProxyPass /apps/foo ajp://backend.example.com:8009/foo
    + ProxyPassReverse /apps/foo http://www.example.com/foo +

    + +

    However, it is usually better to deploy the application on the backend + server at the same path as the proxy rather than to take this approach. +

    +
    top
    +
    +

    Environment Variables

    +

    Environment variables whose names have the prefix AJP_ + are forwarded to the origin server as AJP request attributes + (with the AJP_ prefix removed from the name of the key).

    +
    top
    +

    Overview of the protocol

    The AJP13 protocol is packet-oriented. A binary format was presumably chosen over the more readable plain text for reasons of @@ -78,10 +137,10 @@ the connection can be in one of the following states:

    • Idle
      No request is being handled over this connection.
    • -
    • Assigned
      The connecton is handling a specific request.
    • +
    • Assigned
      The connection is handling a specific request.

    Once a connection is assigned to handle a particular request, the basic - request informaton (e.g. HTTP headers, etc) is sent over the connection in + request information (e.g. HTTP headers, etc) is sent over the connection in a highly condensed form (e.g. common strings are encoded as integers). Details of that format are below in Request Packet Structure. If there is a body to the request (content-length > 0), that is sent in a @@ -97,7 +156,7 @@ been transferred yet. This is necessary because the packets have a fixed maximum size and arbitrary amounts of data can be included the body of a request (for uploaded files, for example). (Note: this is unrelated to - HTTP chunked tranfer). + HTTP chunked transfer).

  • END_RESPONSE
    Finish the request-handling cycle.
  • Each message is accompanied by a differently formatted packet of data. @@ -107,11 +166,7 @@

    Basic Packet Structure

    There is a bit of an XDR heritage to this protocol, but it differs in lots of ways (no 4 byte alignment, for example).

    -

    Byte order: I am not clear about the endian-ness of the individual - bytes. I'm guessing the bytes are little-endian, because that's what - XDR specifies, and I'm guessing that sys/socket library is magically - making that so (on the C side). If anyone with a better knowledge of - socket calls can step in, that would be great.

    +

    AJP13 uses network byte order for all data types.

    There are four data types in the protocol: bytes, booleans, integers and strings.

    @@ -152,11 +207,12 @@ suggest that the maximum payload could be as large as 2^16, in fact, the code sets the maximum to be 8K.

    + - + - + @@ -164,7 +220,7 @@ - + @@ -172,11 +228,12 @@
    Packet Format (Server->Container)Packet Format (Server->Container)
    ByteByte 0 1 24...(n+3)
    ContentsContents 0x12 0x34 Data Length (n)
    + - + - + @@ -184,7 +241,7 @@ - + @@ -199,6 +256,7 @@

    The web server can send the following messages to the servlet container:

    Packet Format (Container->Server)Packet Format (Container->Server)
    ByteByte 0 1 24...(n+3)
    ContentsContents A B Data Length (n)
    + @@ -235,11 +293,12 @@

    To ensure some basic security, the container will only actually do the Shutdown if the request comes from the same machine on which it's hosted.

    -

    The first Data packet is send immediatly after the +

    The first Data packet is send immediately after the Forward Request by the web server.

    The servlet container can send the following types of messages to the webserver:

    Code Type of Packet
    + @@ -283,8 +342,7 @@

    Request Packet Structure

    For messages from the server to the container of type Forward Request:

    -
    -AJP13_FORWARD_REQUEST :=
    +    
    AJP13_FORWARD_REQUEST :=
         prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
         method           (byte)
         protocol         (string)
    @@ -297,25 +355,19 @@ AJP13_FORWARD_REQUEST :=
         num_headers      (integer)
         request_headers *(req_header_name req_header_value)
         attributes      *(attribut_name attribute_value)
    -    request_terminator (byte) OxFF
    -    
    + request_terminator (byte) OxFF

    The request_headers have the following structure: -

    -req_header_name := 
    +    

    req_header_name := 
         sc_req_header_name | (string)  [see below for how this is parsed]
     
     sc_req_header_name := 0xA0xx (integer)
     
    -req_header_value := (string)
    -
    +req_header_value := (string)

    The attributes are optional and have the following structure:

    -
    -attribute_name := sc_a_name | (sc_a_req_attribute string)
    -
    -attribute_value := (string)
    +    
    attribute_name := sc_a_name | (sc_a_req_attribute string)
     
    -    
    +attribute_value := (string)

    Not that the all-important header is content-length, because it determines whether or not the container looks for another packet immediately.

    @@ -404,7 +456,7 @@ attribute_value := (string) header names. If the first byte is not 0xA0, it assumes that the two-byte integer is the length of a string, which is then read in.

    This works on the assumption that no header names will have length - greater than 0x9999 (==0xA000 - 1), which is perfectly + greater than 0x9FFF (==0xA000 - 1), which is perfectly reasonable, though somewhat arbitrary.

    Note:

    The content-length header is extremely @@ -416,28 +468,28 @@ attribute_value := (string)

    Attributes

    The attributes prefixed with a ? (e.g. ?context) are all optional. For each, there is a - single byte code to indicate the type of attribute, and then a string to - give its value. They can be sent in any order (thogh the C code always - sends them in the order listed below). A special terminating code is - sent to signal the end of the list of optional attributes. The list of + single byte code to indicate the type of attribute, and then its value + (string or integer). They can be sent in any order (though the C code + always sends them in the order listed below). A special terminating code + is sent to signal the end of the list of optional attributes. The list of byte codes is:

    Code Type of Packet
    - - + - - - - - - - - - + + + + + + + - - + +
    InformationCode ValueNote
    ?context0x01Not currently implemented +
    InformationCode ValueType Of ValueNote
    ?context0x01-Not currently implemented
    ?servlet_path0x02Not currently implemented +
    ?servlet_path0x02-Not currently implemented
    ?remote_user0x03
    ?auth_type0x04
    ?query_string0x05
    ?jvm_route0x06
    ?ssl_cert0x07
    ?ssl_cipher0x08
    ?ssl_session0x09
    ?req_attribute0x0AName (the name of the +
    ?remote_user0x03String
    ?auth_type0x04String
    ?query_string0x05String
    ?jvm_route0x06String
    ?ssl_cert0x07String
    ?ssl_cipher0x08String
    ?ssl_session0x09String
    ?req_attribute0x0AStringName (the name of the attribute follows)
    ?ssl_key_size0x0B
    are_done0xFFrequest_terminator
    ?ssl_key_size0x0BInteger
    are_done0xFF-request_terminator

    The context and servlet_path are not currently set by the C code, and most of the Java code completely ignores @@ -468,12 +520,11 @@ attribute_value := (string)

    Response Packet Structure

    for messages which the container can send back to the server.

    -
    -AJP13_SEND_BODY_CHUNK :=
    +    
    AJP13_SEND_BODY_CHUNK :=
       prefix_code   3
       chunk_length  (integer)
       chunk        *(byte)
    -
    +  chunk_terminator (byte) Ox00
     
     AJP13_SEND_HEADERS :=
       prefix_code       4
    @@ -496,8 +547,7 @@ AJP13_END_RESPONSE :=
     
     AJP13_GET_BODY_CHUNK :=
       prefix_code       6
    -  requested_length  (integer)
    -    
    + requested_length (integer)

    Details:

    Send Body Chunk

    The chunk is basically binary data, and is sent directly back to the @@ -507,7 +557,7 @@ AJP13_GET_BODY_CHUNK :=

    The status code and message are the usual HTTP things (e.g. 200 and OK). The response header names are encoded the same way the request header names are. See header_encoding above - for details about how the the codes are distinguished from the strings.
    + for details about how the codes are distinguished from the strings.
    The codes for common headers are:

    @@ -528,15 +578,15 @@ AJP13_GET_BODY_CHUNK :=

    End Response

    Signals the end of this request-handling cycle. If the - reuse flag is true (==1), this TCP connection can - now be used to handle new incoming requests. If reuse is false - (anything other than 1 in the actual C code), the connection should + reuse flag is true (anything other than 0 in the actual + C code), this TCP connection can now be used to handle new incoming + requests. If reuse is false (==0), the connection should be closed.

    Get Body Chunk

    The container asks for more data from the request (If the body was too large to fit in the first packet sent over or when the request is - chuncked). The server will send a body packet back with an amount of data + chunked). The server will send a body packet back with an amount of data which is the minimum of the request_length, the maximum send body size (8186 (8 Kbytes - 6)), and the number of bytes actually left to send from the request body.
    @@ -550,7 +600,28 @@ AJP13_GET_BODY_CHUNK :=

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_ajp.html.ja.euc-jp b/docs/manual/mod/mod_proxy_ajp.html.ja.euc-jp deleted file mode 100644 index 9a97d473589..00000000000 --- a/docs/manual/mod/mod_proxy_ajp.html.ja.euc-jp +++ /dev/null @@ -1,542 +0,0 @@ - - - -mod_proxy_ajp - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_proxy_ajp

    -
    -

    Available Languages:  en  | - ja 

    -
    -
    NameCode value
    - - -
    ÀâÌÀ:mod_proxy ¤Ç AJP -¤򥵥ݡ¼¥Ȥ¹¤뤿¤á¤Υ⥸¥塼¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:proxy_ajp_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:proxy_ajp.c
    -

    ³µÍ×

    - -

    Ëܥ⥸¥塼¥ë¤ˤÏ mod_proxy ¤¬ɬÍפǤ¹¡£ - Apache JServ Protocol version 1.3 (°ʹß AJP13) - ¤򥵥ݡ¼¥Ȥ·¤ޤ¹¡£

    - -

    AJP13 ¥ץí¥ȥ³¥ë¤򰷤¨¤ë¤褦¤ˤ¹¤ë¤ˤÏ - mod_proxy ¤È mod_proxy_ajp - ¤򥵡¼¥ФËÁȤ߹þ¤àɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ·ٹð

    -

    °ÂÁ´¤ʥµ¡¼¥Фˤ¹¤ë¤ޤǥץí¥¯¥·µ¡ǽ¤Ïͭ¸ú¤ˤ·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£ - ¥ª¡¼¥ץó¥ץí¥­¥·¥µ¡¼¥ФϤ¢¤ʤ¿¼«¿ȤΥͥåȥ¥¯¤ˤȤäƤ⡢ - ¥¤¥󥿡¼¥ͥåÈÁ´ÂΤˤȤäƤâ´í¸±¤Ǥ¹¡£

    -
    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    -

    ¤³¤Υ⥸¥塼¥ë¤˥ǥ£¥쥯¥ƥ£¥֤Ϥ¢¤ê¤ޤ»¤ó¡£

    -

    ¥ȥԥå¯

    -

    »²¾È

    -
    -
    top
    -
    -

    ¥ץí¥ȥ³¥ë¤γµÍ×

    -

    AJP13 ¥ץí¥ȥ³¥ë¤ϥѥ±¥åȻظþ¤Ǥ¹¡£ - ²ÄÆɤʥץ졼¥ó¥ƥ­¥¹¥ȷÁ¼°¤ǤϤʤ¯¥Х¤¥ʥê·Á¼°¤ˤʤ俤Τϡ¢ - ¤ª¤½¤餯¥ѥե©¡¼¥ޥ󥹾å¤ÎÍýͳ¤ˤè¤ê¤ޤ¹¡£ - ¥¦¥§¥֥µ¡¼¥Фϥµ¡¼¥֥ì¥åȥ³¥ó¥ƥʤÈ TCP ¥³¥ͥ¯¥·¥ç¥ó¤ÇÄ̿®¤·¤ޤ¹¡£ - ¥½¥±¥åÈÀ¸À®¤ϽŤ¤½èÍý¤ʤΤǡ¢Éé²٤򸺤餹¤¿¤á¤ˡ¢¥µ¡¼¥֥ì¥åȥ³¥ó¥ƥʤȤÎ - TCP Àܳ¤ò°ݻý¤·¡¢ʣ¿ô¤Υꥯ¥¨¥¹¥ȡ¦¥쥹¥ݥ󥹽èÍý¥µ¥¤¥¯¥ë¤ËÂФ·¤ưì¤ĤÎ - ¥³¥ͥ¯¥·¥ç¥ó¤ò»Ȥ¤¤ޤ魯¤褦¤ˤʤäƤ¤¤ޤ¹¡£

    -

    ¤¢¤ë¥ꥯ¥¨¥¹¥Ȥ˥³¥ͥ¯¥·¥ç¥󤬳ä¤êÅö¤Ƥé¤ì¤ë¤ȡ¢¤½¤νèÍý¥µ¥¤¥¯¥뤬 - ´°λ¤¹¤ë¤ޤǾ¤Τâ¤Τ˻Ȥï¤ì¤뤳¤ȤϤ¢¤ê¤ޤ»¤ó¡£ - ¤Ĥޤꥳ¥ͥ¯¥·¥ç¥ó¾å¤Ǥϡ¢¥ꥯ¥¨¥¹¥ȤÎƱ»þ½èÍý¤ϹԤï¤ì¤ޤ»¤ó¡£ - ¤³¤Τ¿¤ᡢ¥³¥ͥ¯¥·¥ç¥óξü¤Ǥμ¹Ԥ¹¤륳¡¼¥ɤò´ʷé¤ˤǤ­¤ë°ìÊý¤ǡ¢ - Ʊ»þ¤˳«¤¯¥³¥ͥ¯¥·¥ç¥ó¤Ï¿¤¯¤ʤäƤ¤¤ޤ¹¡£

    -

    ¥µ¡¼¥֥ì¥åȥ³¥ó¥ƥʤؤΥ³¥ͥ¯¥·¥ç¥ó¤򳫤¤¤¿¸å¤ϡ¢¥³¥ͥ¯¥·¥ç¥ó¤ξõÂ֤Ï - ¼¡¤Τɤ줫¤ˤʤê¤ޤ¹:

    -
      -
    • Idle
      ¥³¥ͥ¯¥·¥ç¥ó¾å¤ǽèÍý¤µ¤ì¤Ƥ¤¤ë¥ꥯ¥¨¥¹¥ȤϤ¢¤ê¤ޤ»¤ó¡£
    • -
    • Assigned
      ¥³¥ͥ¯¥·¥ç¥ó¤ϥꥯ¥¨¥¹¥Ȥò½èÍýÃæ¤Ǥ¹¡£
    • -
    -

    ¥³¥ͥ¯¥·¥ç¥ó¤¬ÆÃÄê¤Υꥯ¥¨¥¹¥Ȥ˥¢¥µ¥¤¥󤵤ì¤ë¤ȡ¢´ðËÜŪ¤ʾðÊó (Î㤨¤Ð - HTTP ¥إåÀÅù) ¤¬°µ½̤µ¤줿·Á (Î㤨¤ÐÄ̾ï¤Îʸ»úÎó¤ÏÀ°¿ô¤˥¨¥󥳡¼¥ɤµ¤ì¤ޤ¹) - ¤ÇžÁ÷¤µ¤ì¤ޤ¹¡£¾ܺ٤ϲ¼µ­¤Ρ֥ꥯ¥¨¥¹¥ȥѥ±¥åȤ齤¡פ򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£ - ¥ꥯ¥¨¥¹¥Ȥ˥ܥǥ£¤¬¸ºß (content-length > 0) ¤¹¤ì¤С¢ - ´ðËÜŪ¤ʾðÊó¤Îľ¸å¤ËÊ̥ѥ±¥åȤÇžÁ÷¤µ¤ì¤ޤ¹¡£

    -

    ¤³¤λþÅÀ¤Ǥª¤½¤餯¡¢¥µ¡¼¥֥ì¥åȥ³¥ó¥ƥʤϽèÍý¤򳫻ϤǤ­¤ë¤褦¤ˤʤê¤ޤ¹¡£ - ¤Ǥ¹¤Τǡ¢¼¡¤Υá¥å»¡¼¥¸¤򥦥§¥֥µ¡¼¥ФËÌᤷ¤ÆÃΤ餻¤é¤ì¤ë¤褦¤ˤʤê¤ޤ¹¡£

    -
      -
    • SEND_HEADERS
      ¥֥饦¥¶¤˥إåÀ¤òÁ÷¿®¤·¤ޤ¹¡£
    • -
    • SEND_BODY_CHUNK
      ¥֥饦¥¶¤˥ܥǥ£¥ǡ¼¥¿¤ΥÁ¥ã¥󥯤òÁ÷¤ê¤ޤ¹¡£ -
    • -
    • GET_BODY_CHUNK
      ¥ꥯ¥¨¥¹¥ȤΥǡ¼¥¿¤òÁ´¤Ƽõ¤±¼è¤꽪¤ï¤äƤ¤¤ʤ¤¤Ȥ­¤ˡ¢ - »ĤäƤ¤¤ë¥ǡ¼¥¿¤ò¼õ¤±¼è¤ê¤ޤ¹¡£¥ѥ±¥åȤˤ¢¤ëÄê¤ޤ俺ÇÂ獬¤¢¤ꡢǤ°դÎ - Â礭¤µ¤Υǡ¼¥¿¤¬¥ꥯ¥¨¥¹¥ȤΥܥǥ£¤Ȥ·¤ƴޤޤ줦¤ë¾ì¹ç - (Î㤨¤Хե¡¥¤¥ë¤Υ¢¥åץí¡¼¥ɤξì¹ç) ¤ËɬÍפȤʤê¤ޤ¹¡£ - (Ãí: HTTP ¤ΥÁ¥ã¥ó¥¯žÁ÷¤ȤϴØϢ¤¢¤ê¤ޤ»¤ó¡£)
    • -
    • END_RESPONSE
      ¥ꥯ¥¨¥¹¥ȽèÍý¥µ¥¤¥¯¥ë¤ò½ªλ¤·¤ޤ¹¡£
    • -
    -

    ¸ġ¹¤Υá¥å»¡¼¥¸¤Ϥ½¤줾¤ì°ۤʤë¥ǡ¼¥¿¥ѥ±¥åȷÁ¼°¤ˤʤäƤ¤¤ޤ¹¡£ - ¸å½ҤΡ֥쥹¥ݥ󥹥ѥ±¥åȤ齤¡פ򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    top
    -
    -

    ´ðËܥѥ±¥åȹ½¤

    -

    ¤³¤Υץí¥ȥ³¥ë¤ˤÏ XDR ¤«¤é¼õ¤±·Ѥ¤¤ÀÉôʬ¤¬¾¯¤·¤¢¤ê¤ޤ¹¤¬¡¢¿¤¯¤ÎÅÀ¤Ç - °ۤʤê¤ޤ¹ (Î㤨¤Ð 4 ¥Х¤¥ȥ¢¥饤¥á¥ó¥ȤǤʤ¤¤³¤ȤʤÉ) ¡£

    -

    ¥Х¤¥ȥª¡¼¥À¡¼: ¸ġ¹¤ΥХ¤¥ȤΥ¨¥ó¥ǥ£¥¢¥󤬤ɤ¦¤ʤäƤ¤¤뤫¤ϡ¢ - »ä¤Ͼܤ·¤¯¤ʤ¤¤ΤǤ¹¤¬¡¢¥ê¥ȥ륨¥ó¥ǥ£¥¢¥ó¤ˤʤäƤ¤¤ë¤Ȼפ¤¤ޤ¹¡£ - XDR »ÅÍͤǤ½¤¦¤ʤäƤ¤¤ë¤Τȡ¢ÁÇÀ²¤餷¤¤¤³¤ȤË sys/socket ¥饤¥֥é¥꤬ - (C ¤Ç) ¤½¤¦¤¤¤¦É÷¤ˤǤ­¤Ƥ¤¤ë¤ΤǤ½¤¦¤ʤΤÀ¤Ȼפ¤¤ޤ·¤¿¡£ - ¥½¥±¥åȸƤӽФ·¤ÎÆâÉô¤ˤĤ¤¤Ƥè¤ê¾ܤ·¤¤Êý¤¬¤¤¤é¤ä·¤㤤¤ޤ·¤¿¤顢 - ¤´¶µ¼ø¤¯¤À¤µ¤¤¡£

    -

    ¥ץí¥ȥ³¥ë¤ˤÏ 4 ¤ĤΥǡ¼¥¿¥¿¥¤¥פ¬¤¢¤ê¤ޤ¹: byte, boolean, - integer, string ¤Ǥ¹¡£

    -
    -
    Byte
    ¥Х¤¥Ȱì¤ĤǤ¹¡£
    -
    Boolean
    -
    ¥Х¤¥Ȱì¤Ĥǡ¢1 = true, 0 = false ¤Ǥ¹¡£ - (C ¤Τ褦¤Ë) ÈóÎí¤򿿤Ȥ·¤ư·¤äƤ·¤ޤ¦¤ȡ¢¤¢¤ë¾ì¹ç¤Ïư¤¯¤«¤⤷¤ì¤ޤ»¤󤷡¢ - ư¤«¤ʤ¤¤«¤⤷¤ì¤ޤ»¤ó¡£
    -
    Integer
    -
    0 ¤«¤é 2^16 (32768) ¤ÎÈϰϤοô»ú¡£¹⼡¤Î 2 ¥Х¤¥Ȥ¬ - Àè¤˳ÊǼ¤µ¤ì¤ޤ¹¡£
    -
    String
    -
    ²ÄÊÑŤÎʸ»úÎó (2^16 ¤¬Ĺ¤µ¤ξå¸Â) ¡£Ĺ¤µ¾ðÊó¤Υѥ±¥åÈ 2 ¥Х¤¥Ȥθå¤Ë - ʸ»úÎó (½ªüʸ»ú '\0' ¤ò´ޤà) ¤¬³¤¯·Á¼°¤ǥ¨¥󥳡¼¥ɤµ¤ì¤ޤ¹¡£ - ¥¨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤ëŤµ¾ðÊó¤ϺǸå¤Î '\0' ¤ò¥«¥¦¥ó¥Ȥ·¤ʤ¤ - ¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡½¡½¤³¤ì¤Ï strlen ¤ÈƱÍͤǤ¹¡£ - ¤³¤ì¤é¤νªüʸ»ú¤򥹥­¥åפ¹¤뤿¤á¤ˡ¢¤¢¤ޤê°Ọ̃¤Î̵¤¤¥¤¥󥯥ê¥á¥ó¥Èʸ - ¤򤿤¯¤µ¤ó½񤫤ʤ¤¤Ȥ¤¤±¤ʤ¤¤Τϡ¢ - Java ¤Î¦¤«¤鸫¤ë¤Ⱦ¯¤·ʶ¤é¤路¤¯´¶¤¸¤é¤ì¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - ¤³¤¦¤ʤä¿Íýͳ¤Ϥª¤½¤餯¡¢Servlet ¥³¥ó¥ƥʤ«¤éÊ֤µ¤ì¤ëʸ»úÎó¤òÆɤ߽Ф¹»þ¤ˡ¢ - ¸úΨ¤褯 C ¤Υ³¡¼¥ɤò½񤱤ë¤褦¤ˤ¹¤롽¡½¥µ¡¼¥֥ì¥åȤ«¤éÊ֤µ¤ì¤ë - ʸ»úÎó¤Ï \0 ʸ»ú¤ǽªü¤µ¤ì¤Ƥ¤¤ë¤Τǡ¢C ¤Υ³¡¼¥ɤǤϤ虜¤虜¥³¥ԡ¼¤򤻤º¤ˡ¢ - °ì¤ĤΥХåե¡¤ؤΥê¥ե¡¥ì¥󥹤ò¼è¤ê²󤹤褦¤˽񤯤³¤Ȥ¬¤Ǥ­¤롽¡½ - ¤¿¤á¤À¤Ȼפï¤ì¤ޤ¹¡£ - '\0' ʸ»ú¤¬¤ʤ¤¾ì¹ç¤ϡ¢C ¤ǤÏʸ»úÎó¤ε¬§¤˹礦¤褦¤˥³¥ԡ¼¤·¤ʤ±¤ì¤Ð - ¤¤¤±¤ʤ¯¤ʤäƤ·¤ޤ¤¤ޤ¹¡£
    -
    - -

    ¥ѥ±¥åȥµ¥¤¥º

    -

    ¿¤¯¤Υ³¡¼¥ɤǤ½¤¦¤ʤäƤ¤¤ë¤ΤǤ¹¤¬¡¢¥ѥ±¥åȥµ¥¤¥º¤κÇÂ祵¥¤¥º¤Ï - 8 * 1024 (8K) ¤Ǥ¹¡£¥ѥ±¥åȤμºݤÎŤµ¤ϥإåÀ¤Ë - ¥¨¥󥳡¼¥ɤµ¤ì¤ÆÆþ¤äƤ¤¤ޤ¹¡£

    - -

    ¥ѥ±¥åȥإåÀ

    -

    ¥µ¡¼¥Ф«¤饳¥ó¥ƥʤËÁ÷½Фµ¤ì¤ë¥ѥ±¥åȤÏ 0x1234 ¤ǻϤޤê¤ޤ¹¡£ - ¥³¥ó¥ƥʤ«¤饵¡¼¥ФËÁ÷¤é¤ì¤ë¥ѥ±¥åȤÏ AB (ASCII ¥³¡¼¥É A ¤È - ASCII ¥³¡¼¥É B) ¤ǻϤޤê¤ޤ¹¡£¤³¤ÎÆó¥Х¤¥Ȥθå¤ˡ¢¥ڥ¤¥í¡¼¥ÉŤ¬ (¾嵭¤ηÁ¼°¤Ç) - ³¤­¤ޤ¹¡£¤³¤Τ¿¤ᡢ¥ڥ¤¥í¡¼¥ÉŤκÇÂçÃͤÏ 2^16 ¤ˤǤ­¤ë¤褦¤˻פ¨¤ޤ¹¤¬¡¢ - ¼ºݤˤϥ³¡¼¥ɤǤϺÇÂçÃͤÏ 8K ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£

    - - - - - - - - - - - - - - - - - - - -
    ¥ѥ±¥åȷÁ¼° (Server->Container)
    Byte01234...(n+3)
    Contents0x120x34¥ǡ¼¥¿Ĺ (n)Data
    - - - - - - - - - - - - - - - - - - - -
    ¥ѥ±¥åȷÁ¼° (Container->Server)
    Byte01234...(n+3)
    ContentsAB¥ǡ¼¥¿Ĺ (n)Data
    -

    ¤ۤȤó¤ɤΥѥ±¥åȤǡ¢¥ڥ¤¥í¡¼¥ɤκǽé¤ΥХ¤¥Ȥ¬¥á¥å»¡¼¥¸¤η¿¤򥨥󥳡¼¥É - ¤·¤Ƥ¤¤ޤ¹¡£Î㳰¤ϥµ¡¼¥Ф«¤饳¥ó¥ƥʤËÁ÷¤é¤ì¤ë¥ꥯ¥¨¥¹¥ȥܥǥ£¥ѥ±¥åȤǤ¹ - ¡½¡½¤³¤ì¤é¤Ïɸ½àŪ¤ʥѥ±¥åȷÁ¼° (0x1234 ¤ȥѥ±¥åÈĹ) - ¤Ǥ¹¤¬¡¢¤½¤θå¤Ë³¤¯¥ץì¥ե£¥å¯¥¹¥³¡¼¥ɤ¬¤¢¤ê¤ޤ»¤ó¡£

    -

    ¥¦¥§¥֥µ¡¼¥Фϼ¡¤Υá¥å»¡¼¥¸¤򥵡¼¥֥ì¥åȥ³¥ó¥ƥʤËÁ÷½ФǤ­¤ޤ¹¡£

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ¥³¡¼¥É¥ѥ±¥åȤη¿°Ọ̃
    2Forward Request¥ꥯ¥¨¥¹¥ȽèÍý¥µ¥¤¥¯¥ë¤ò¸å³¤Υǡ¼¥¿¤ȤȤâ¤˳«»Ϥ¹¤롣
    7Shutdown¥¦¥§¥֥µ¡¼¥Ф¬¥³¥ó¥ƥʤˡ¢¥³¥ó¥ƥʤò½ªλ¤¹¤ë¤褦¤ËÅÁ¤¨¤롣
    8Ping¥¦¥§¥֥µ¡¼¥Ф¬¥³¥ó¥ƥʤËÀ©¸æ¤ò¼õ¤±»ý¤Ĥ褦¤ËÅÁ¤¨¤ë - (¥»¥­¥奢¥í¥°¥¤¥ó¥ե§¡¼¥º) ¡£
    10CPing¥¦¥§¥֥µ¡¼¥Ф¬¥³¥ó¥ƥʤË CPong ¤Ç¨º¤˱þÅú¤¹¤ë¤褦¤ËÅÁ¤¨¤롣
    noneData¥µ¥¤¥º (2 ¥Х¤¥È) ¤Ȥ½¤ì¤Ë³¤¯¥ܥǥ£¥ǡ¼¥¿¡£
    -

    ´ðËÜŪ¤ʥ»¥­¥å¥ê¥ƥ£¤ò³ÎÊݤ¹¤뤿¤ᡢ¥ۥ¹¥Ȥµ¤ì¤Ƥ¤¤ë¥ޥ·¥ó¤ÈƱ°ì¤Î - ¥ޥ·¥󤫤é¤Υꥯ¥¨¥¹¥ȤËÂФ·¤ƤΤߡ¢¥³¥ó¥ƥʤϼºݤË Shutdown - ¤ò¼¹Ԥ·¤ޤ¹¡£

    -

    ºǽé¤Î Data ¥ѥ±¥åȤϡ¢Forward Request - ¤Îľ¸å¤˥¦¥§¥֥µ¡¼¥Ф«¤éÁ÷¤é¤ì¤ޤ¹¡£

    -

    ¥µ¡¼¥֥ì¥åȥ³¥ó¥ƥʤϥ¦¥§¥֥µ¡¼¥Фˡ¢¼¡¤Υ¿¥¤¥פΥá¥å»¡¼¥¸¤òÁ÷¤뤳¤Ȥ¬ - ¤Ǥ­¤ޤ¹ :

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ¥³¡¼¥É¥ѥ±¥åȤη¿°Ọ̃
    3Send Body Chunk¥µ¡¼¥֥ì¥åȥ³¥ó¥ƥʤ«¤饦¥§¥֥µ¡¼¥ФË - (¤½¤·¤Ƥª¤½¤餯¤½¤Τޤޥ֥饦¥¶¤Ë)¡¢¥ܥǥ£¤ΥÁ¥ã¥󥯤òÁ÷¤롣
    4Send Headers¥µ¡¼¥֥ì¥åȥ³¥ó¥ƥʤ«¤饦¥§¥֥µ¡¼¥ФË (¤½¤·¤Ƥª¤½¤餯¤½¤Τޤޥ֥饦¥¶¤Ë) - ¥쥹¥ݥ󥹥إåÀ¤òÁ÷¤롣
    5End Response¥쥹¥ݥó¥¹ (¤Ĥޤê¥ꥯ¥¨¥¹¥ȽèÍý¥µ¥¤¥¯¥ë) ½ªλ¤ÎÌܰõ¤òÁ÷¤롣 -
    6Get Body Chunk¤ޤÀÁ´¤ÆžÁ÷¤µ¤ì¤Ƥ¤¤ʤ¤¾ì¹硢»ĤäƤ¤¤ë¥ꥯ¥¨¥¹¥ȤΥǡ¼¥¿¤ò¼õ¤±¼è¤롣 -
    9CPong ±þÅúCPing ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤롣
    -

    ¾嵭¥á¥å»¡¼¥¸¤ϡ¢¤½¤줾¤ìÆâÉô¹½¤¤¬°ۤʤäƤ¤¤ޤ¹¡£¾ܺ٤ϲ¼µ­¤ò¤´Í÷¤¯¤À¤µ¤¤¡£ -

    - -
    top
    -
    -

    ¥ꥯ¥¨¥¹¥ȥѥ±¥åȹ½¤

    -

    ¥µ¡¼¥Ф«¤饳¥ó¥ƥʤØÁ÷¤é¤ì¤ë¥á¥å»¡¼¥¸¤¬ - Forward Request ·¿¤ξì¹ç :

    -
    -AJP13_FORWARD_REQUEST :=
    -    prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
    -    method           (byte)
    -    protocol         (string)
    -    req_uri          (string)
    -    remote_addr      (string)
    -    remote_host      (string)
    -    server_name      (string)
    -    server_port      (integer)
    -    is_ssl           (boolean)
    -    num_headers      (integer)
    -    request_headers *(req_header_name req_header_value)
    -    attributes      *(attribut_name attribute_value)
    -    request_terminator (byte) OxFF
    -    
    -

    request_headers ¤ϼ¡¤Τ褦¤ʹ½¤¤ˤʤäƤ¤¤ޤ¹ : -

    -req_header_name := 
    -    sc_req_header_name | (string)  [see below for how this is parsed]
    -
    -sc_req_header_name := 0xA0xx (integer)
    -
    -req_header_value := (string)
    -
    -

    °À­ ¤ϥª¥ץ·¥ç¥ó¤ǡ¢¼¡¤Τ褦¤ʹ½¤¤򤷤Ƥ¤¤ޤ¹ :

    -
    -attribute_name := sc_a_name | (sc_a_req_attribute string)
    -
    -attribute_value := (string)
    -
    -    
    -

    ¤â¤äȤâ½ÅÍפʥإåÀ¤Ï content-length ¤À¤Ȥ¤¤¦¤³¤ȤË - Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£¥³¥ó¥ƥʤϼ¡¤Υѥ±¥åȤòõ¤¹¤«¤ɤ¦¤«¤ò¡¢ - ¤½¤ì¤򸫤Ʒè¤á¤뤫¤é¤Ǥ¹¡£

    -

    Forward Request Í×ÁǤξܺ٤ÊÀâÌÀ -

    -

    Request prefix

    -

    ¥ꥯ¥¨¥¹¥ȤˤĤ¤¤ƤÏÁ´¤ơ¢¤³¤ÎÃͤÏ 2 ¤ˤʤê¤ޤ¹¡£¾¤Î Prefix ¥³¡¼¥ɤξܺ٤Ï - ¾嵭¤ò¤´Í÷¤¯¤À¤µ¤¤¡£

    - -

    Method

    -

    HTTP ¥᥽¥åɤÏ 1 ¥Х¤¥Ȥ˥¨¥󥳡¼¥ɤµ¤ì¤ޤ¹ :

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Command NameCode
    OPTIONS1
    GET2
    HEAD3
    POST4
    PUT5
    DELETE6
    TRACE7
    PROPFIND8
    PROPPATCH9
    MKCOL10
    COPY11
    MOVE12
    LOCK13
    UNLOCK14
    ACL15
    REPORT16
    VERSION-CONTROL17
    CHECKIN18
    CHECKOUT19
    UNCHECKOUT20
    SEARCH21
    MKWORKSPACE22
    UPDATE23
    LABEL24
    MERGE25
    BASELINE_CONTROL26
    MKACTIVITY27
    -

    º£¸å¤Î ajp13 ¥С¼¥¸¥ç¥ó¤Ǥϡ¢¤³¤ΰìÍ÷¤ˤʤ¤¡¢º£¸åÄɲ䵤ì¤ë¥᥽¥åɤò - Á÷¤뤫¤⤷¤ì¤ޤ»¤ó¡£

    - -

    protocol, req_uri, remote_addr, remote_host, server_name, - server_port, is_ssl

    -

    ¤³¤ì¤é¤Ϥޤµ¤Ëʸ»úÄ̤ê¤Τâ¤ΤǤ¹¡£¤ɤì¤âɬÍפǡ¢¥ꥯ¥¨¥¹¥ȤÎËè²ó¤ˤĤ­ - Á÷¤é¤ì¤ޤ¹¡£

    - -

    Headers

    -

    request_headers ¤ι½¤¤ϼ¡¤Τ褦¤ʤâ¤ΤǤ¹ : - ¤ޤº¥إåÀ¤οô num_headers ¤¬¥¨¥󥳡¼¥ɤµ¤ì¤ޤ¹¡£ - ¼¡¤˥إåÀ̾ req_header_name / ÃÍ req_header_value - ¤ÎÁȤ¬³¤­¤ޤ¹¡£¸úΨ¤Τ¿¤ᡢ°ìÈÌŪ¤ʥإåÀ¤ÏÀ°¿ô¤ǥ¨¥󥳡¼¥ɤ·¤ÆžÁ÷¤·¤ޤ¹¡£ - ¥إåÀ̾¤¬´ðËܥإåÀ¤ΰìÍ÷¤Ë̵¤¤¾ì¹ç¤ϡ¢Ä̾ïÄ̤ê (ʸ»úÎó¤Ȥ·¤ơ¢Ĺ¤µ - ¥ץì¥ե£¥å¯¥¹Éդ­¤Ç) žÁ÷¤µ¤ì¤ޤ¹¡£°ìÈÌŪ¤ʥإåÀ - sc_req_header_name ¤ΰìÍ÷¤Ȥ½¤Υ³¡¼¥ɤϼ¡¤ÎÄ̤ê¤Ǥ¹ - (¤ɤì¤âÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ¹) :

    - - - - - - - - - - - - - - - - - - - -
    ̾Á°¥³¡¼¥ɤÎÃÍ¥³¡¼¥É̾
    accept0xA001SC_REQ_ACCEPT
    accept-charset0xA002SC_REQ_ACCEPT_CHARSET -
    accept-encoding0xA003SC_REQ_ACCEPT_ENCODING -
    accept-language0xA004SC_REQ_ACCEPT_LANGUAGE -
    authorization0xA005SC_REQ_AUTHORIZATION
    connection0xA006SC_REQ_CONNECTION
    content-type0xA007SC_REQ_CONTENT_TYPE
    content-length0xA008SC_REQ_CONTENT_LENGTH
    cookie0xA009SC_REQ_COOKIE
    cookie20xA00ASC_REQ_COOKIE2
    host0xA00BSC_REQ_HOST
    pragma0xA00CSC_REQ_PRAGMA
    referer0xA00DSC_REQ_REFERER
    user-agent0xA00ESC_REQ_USER_AGENT
    -

    ¤³¤ì¤òÆɤ߹þ¤à Java ¤Υ³¡¼¥ɤǤϡ¢ºǽé¤Î 2 ¥Х¤¥ÈÀ°¿ô¤ò¼è¤ê¹þ¤ߡ¢ - Ìܰõ¤ˤʤë¥Х¤¥È '0xA0' ¤Ǥ¢¤ì¤С¢¥إåÀ̾¤ÎÇÛÎó¤Î - ¥¤¥ó¥ǥ寥¹¤ò»Ȥ¤¤ޤ¹¡£ÀèƬ¥Х¤¥Ȥ¬ 0xA0 ¤Ǥʤ¤¾ì¹ç¤ϡ¢ - ÀèƬ 2 ¥Х¤¥ȤÏʸ»úÎóŤòɽ¤¹À°¿ô¤Ǥ¢¤ë¤Ȳò¼ᤷ¡¢Æɤ߹þ¤ߤϤ¸¤á¤ޤ¹¡£

    -

    ¥إåÀ̾¤ÎŤµ¤Ï 0x9999 (==0xA000 -1) °ʾå¤ˤʤé¤ʤ¤¤Ȥ¤¤¦ - ²¾Äê¤β¼¤Ëư¤¤¤Ƥ¤¤ơ¢¾¯¤·¤¢¤¤¤ޤ¤¤Ǥ¹¤¬¹çÍýŪ¤ʵóư¤ˤʤäƤ¤¤ޤ¹¡£

    -

    Ãí:

    - content-length ¥إåÀ¤ϤȤƤâ½ÅÍפǤ¹¡£ - ¸ºߤ·¤Ƥ¤¤ÆÈ󥼥í¤Ǥ¢¤ì¤С¢¥ꥯ¥¨¥¹¥Ȥˤϥܥǥ£¤¬¤¢¤ë (Î㤨¤Ð POST - ¥ꥯ¥¨¥¹¥È) ¤ȿ䬤·¡¢¤½¤Υܥǥ£¤ò¼è¤ê¹þ¤ि¤á¤Ë - ľ¸å¤Υѥ±¥åȤòÆþÎϥ¹¥ȥ꡼¥फ¤éÆɤ߹þ¤ߤϤ¸¤á¤ޤ¹¡£ -
    - -

    °À­

    -

    ? ¥ץì¥ե£¥å¯¥¹¤ǻϤޤë°À­ (Îã ?context) - ¤ϡ£¾Êά²Äǽ¤Ǥ¹¡£¤½¤줾¤ì°À­¤η¿¤򼨤¹ 1 ¥Х¤¥ȤΥ³¡¼¥ɤȡ¢ - ÃͤÎʸ»úÎ󤬳¤­¤ޤ¹¡£ - ¤³¤ì¤é¤ϽçÉÔƱ¤ÇÁ÷¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹ (C ¤Υ³¡¼¥ɤϾï¤˲¼¤ΰìÍ÷½ç¤Ë - Á÷¤ë¤褦¤Ǥ¹¤¬) ¡£ - ¥ª¥ץ·¥ç¥ó¤Î°À­¤Υꥹ¥ȤκǸå¤ˤϡ¢ÆÃÊ̤ʽªλ¥³¡¼¥ɤ¬Á÷¤é¤ì¤ޤ¹¡£ - ¥³¡¼¥ɤΰìÍ÷¤Ï :

    - - - - - - - - - - - - - - -
    InformationCode ValueNote
    ?context0x01̤¼ÂÁõ -
    ?servlet_path0x02̤¼ÂÁõ -
    ?remote_user0x03
    ?auth_type0x04
    ?query_string0x05
    ?jvm_route0x06
    ?ssl_cert0x07
    ?ssl_cipher0x08
    ?ssl_session0x09
    ?req_attribute0x0AName (the name of the - attribute follows)
    ?ssl_key_size0x0B
    are_done0xFFrequest_terminator
    -

    context ¤È servlet_path ¤ϸ½ºߤÎ C ¤Î - ¥³¡¼¥ɤǤϥ»¥åȤµ¤ì¤Ƥ¤¤ޤ»¤󡣤ޤ¿¡¢¤ۤȤó¤ɤÎ Java ¤Υ³¡¼¥ɤǤ⡢ - ¤³¤Υե£¡¼¥ë¥ɤDz¿¤¬Á÷¤é¤ì¤Ƥâ̵»뤵¤ì¤ޤ¹ (¤³¤ì¤é¤Υ³¡¼¥ɤθå¤Ëʸ»úÎó¤¬ - Á÷¤é¤ì¤ë¤Ȳõ¤ì¤ë¤â¤Τ⤢¤ê¤ޤ¹)¡£ - ¤³¤줬¥Х°¤ʤΤ«¡¢ñ¤Ë̤¼ÂÁõ¤ʤΤ«¡¢Îò»ËŪ·аޤǻĤäƤ¤¤륳¡¼¥ɤʤΤ« - ʬ¤«¤ê¤ޤ»¤󤬡¢¥³¥ͥ¯¥·¥ç¥ó¤ÎȤâ¤Ǹ«Åö¤¿¤ê¤ޤ»¤ó¡£

    -

    remote_user ¤È auth_type ¤Ϥª¤½¤餯 - HTTP ¥ì¥٥ë¤Îǧ¾ڤ򻲾Ȥ·¤Ƥ¤¤ơ¢¥ê¥⡼¥ȥ桼¥¶¤Υ桼¥¶̾¤Èǧ¾ڤ˻ÈÍѤ·¤¿ - ¥¿¥¤¥× (Îã Basic, Digest) ¤ˤĤ¤¤Ƥä¤ê¼è¤ꤷ¤ޤ¹¡£

    -

    query_string, ssl_cert, - ssl_cipher, ssl_session - ¤Ï HTTP ¤È HTTPS ¤ÎÂбþ¤¹¤ëÉôʬ¤򻲾Ȥ·¤ޤ¹¡£

    -

    jvm_route ¤ϥ¹¥ƥ£¥å­¡¼¥»¥å·¥ç¥ó¤Υµ¥ݡ¼¥ȡ½¡½ - ¥í¡¼¥ɥХé¥󥹤·¤Ƥ¤¤ëʣ¿ô¤Υµ¡¼¥ÐÃæ¤ÎÆÃÄê¤Î Tomcat ¥¤¥󥹥¿¥󥹤ȡ¢ - ¥桼¥¶¤Υ»¥å·¥ç¥ó¤ȤòɳÉդ±¤뵡ǽ¡½¡½¤˻Ȥï¤ì¤ޤ¹¡£

    -

    ¤³¤δðËܰÀ­°ìÍ÷¤Ë̵¤¤¤â¤ΤˤĤ¤¤Ƥϡ¢req_attribute - ¥³¡¼¥É 0x0A ·Ðͳ¤Ç°À­¤򲿸ĤǤâÁ÷¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - °À­¤Î̾Á°¤ÈÃͤÎʸ»úÎó¤ÎÁȤ򡢤½¤줾¤줳¤Υ³¡¼¥ɤÎľ¸å¤ËÁ÷¤ê¤ޤ¹¡£ - ´Ķ­Êѿô¤Ϥ³¤ÎÊýˡ¤ÇÅÁ¤¨¤é¤ì¤ޤ¹¡£

    -

    ºǸå¤Ë°À­¤¬Á´¤ÆÁ÷¿®¤µ¤줿¸å¤ˡ¢°À­¤νªü¤򼨤¹ 0xFF - ¤¬Á÷½Фµ¤ì¤ޤ¹¡£¤³¤ο®¹æ¤Ï°À­¤ΰìÍ÷¤νª¤ï¤ê¤򼨤¹¤ÈƱ»þ¤ˡ¢¥ꥯ¥¨¥¹¥È - ¥ѥ±¥åȤνªü¤ò¤⼨¤·¤Ƥ¤¤ޤ¹¡£

    - -
    top
    -
    -

    ¥쥹¥ݥ󥹥ѥ±¥åȹ½¤

    -

    ¥³¥ó¥ƥʤ¬¥µ¡¼¥ФËÁ÷¤êÊ֤¹¤³¤ȤΤǤ­¤ë¥á¥å»¡¼¥¸:

    -
    -AJP13_SEND_BODY_CHUNK :=
    -  prefix_code   3
    -  chunk_length  (integer)
    -  chunk        *(byte)
    -
    -
    -AJP13_SEND_HEADERS :=
    -  prefix_code       4
    -  http_status_code  (integer)
    -  http_status_msg   (string)
    -  num_headers       (integer)
    -  response_headers *(res_header_name header_value)
    -
    -res_header_name :=
    -    sc_res_header_name | (string)   [see below for how this is parsed]
    -
    -sc_res_header_name := 0xA0 (byte)
    -
    -header_value := (string)
    -
    -AJP13_END_RESPONSE :=
    -  prefix_code       5
    -  reuse             (boolean)
    -
    -
    -AJP13_GET_BODY_CHUNK :=
    -  prefix_code       6
    -  requested_length  (integer)
    -    
    -

    ¾ܺÙ :

    -

    Send Body Chunk

    -

    ¥Á¥ã¥󥯤ϴðËÜŪ¤ˤϥХ¤¥ʥê¥ǡ¼¥¿¤ǡ¢¥֥饦¥¶¤ËľÀÜÁ÷¤é¤ì¤ޤ¹¡£

    - -

    Send Headers

    -

    ¥¹¥ơ¼¥¿¥¹¥³¡¼¥ɤȥá¥å»¡¼¥¸¤¬Ä̾ï¤Î HTTP ¤ÎÄ̿®¤ˤϤ¢¤ê¤ޤ¹ (Îã - 200 ¤È OK)¡£¥쥹¥ݥ󥹥إåÀ̾¤ϡ¢ - ¥ꥯ¥¨¥¹¥ȥإåÀ̾¤ÈƱÍͤÎÊýˡ¤ǥ¨¥󥳡¼¥ɤµ¤ì¤ޤ¹¡£ - ¥³¡¼¥ɤÈʸ»úÎó¤ÎȽÊÌÊýˡ¤ξܺ٤˴ؤ·¤Ƥϡ¢¾嵭¤Î header_encoding - ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£ - °ìÈÌŪ¤ʥإåÀ¤Υ³¡¼¥ɤÏ :

    - - - - - - - - - - - - - -
    ̾Á°¥³¡¼¥ɤÎÃÍ
    Content-Type0xA001
    Content-Language0xA002
    Content-Length0xA003
    Date0xA004
    Last-Modified0xA005
    Location0xA006
    Set-Cookie0xA007
    Set-Cookie20xA008
    Servlet-Engine0xA009
    Status0xA00A
    WWW-Authenticate0xA00B
    -

    ¥³¡¼¥ɤ«¥إåÀʸ»úÎó¤Îľ¸å¤ˤϡ¢¥إåÀ¤ÎÃͤ¬¥¨¥󥳡¼¥ɤµ¤ì¤ޤ¹¡£

    - -

    End Response

    -

    ¥ꥯ¥¨¥¹¥ȽèÍý¥µ¥¤¥¯¥ë¤νªλ¤òÃΤ餻¤ޤ¹¡£reuse ¥ե饰¤¬¿¿ - (==1) ¤ξì¹硢¸½º߻ÈÍѤ·¤Ƥ¤¤ë TCP ¥³¥ͥ¯¥·¥ç¥ó¤ϼ¡¤ο·¤·¤¤ - ¥ꥯ¥¨¥¹¥Ȥ˻Ȥ¨¤ë¤褦¤ˤʤê¤ޤ¹¡£reuse ¤¬µ¶ (C ¤Υ³¡¼¥ɤǤÏ - 1 °ʳ°¤ÎÁ´¤Æ) ¤ξì¹ç¤ϡ¢¥³¥ͥ¯¥·¥ç¥ó¤òÊĤ¸¤뤳¤Ȥˤʤê¤ޤ¹¡£

    - -

    Get Body Chunk

    -

    (¥ܥǥ£¤Υµ¥¤¥º¤¬Â礭¤¹¤®¤ƺǽé¤Υѥ±¥åȤ˼ý¤ޤé¤ʤ¤¾ì¹ç¤䡢 - ¥ꥯ¥¨¥¹¥Ȥ¬¥Á¥ã¥ó¥¯žÁ÷¤µ¤줿¾ì¹ç¤ʤɤˤϡ¢) ¥³¥ó¥ƥʤϥꥯ¥¨¥¹¥Ȥ«¤é¤Î - ¥ǡ¼¥¿Æɤ߹þ¤ßÍ׵á¤򤷤ޤ¹¡£¥µ¡¼¥Ð¦¤Ϥ½¤ì¤ËÂФ·¤ơ¢ºǾ® - request_length ºÇÂç (8186 (8 Kbytes - 6)) - ¤ÎÈϰϤǡ¢̤žÁ÷¤ǻĤäƤ¤¤ë¥ꥯ¥¨¥¹¥ȥܥǥ£¤ÎÂ礭¤µ¤Υǡ¼¥¿¤ò - Á÷¤êÊ֤·¤ޤ¹¡£
    - ¥ܥǥ£¤ˤ½¤ì°ʾå¥ǡ¼¥¿¤¬»ĤäƤ¤¤ʤ¤¾ì¹ç (¤Ĥޤꥵ¡¼¥֥ì¥åȤ¬ - ¥ܥǥ£¤κǸå¤òͤ¨¤ÆÆɤ߹þ¤⤦¤Ȥ·¤¿¾ì¹ç) ¡¢¥µ¡¼¥ФÏ - ¥ڥ¤¥í¡¼¥ÉĹ 0 ¤Î¶õ¥ѥ±¥åÈ(0x12,0x34,0x00,0x00) - ¤òÁ÷¤êÊ֤·¤ޤ¹¡£

    - -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_ajp.html.ja.utf8 b/docs/manual/mod/mod_proxy_ajp.html.ja.utf8 new file mode 100644 index 00000000000..f48d5e0fd33 --- /dev/null +++ b/docs/manual/mod/mod_proxy_ajp.html.ja.utf8 @@ -0,0 +1,565 @@ + + + + + +mod_proxy_ajp - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_proxy_ajp

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:mod_proxy で AJP +をサポートするためのモジュール
    ステータス:Extension
    モジュール識別子:proxy_ajp_module
    ソースファイル:mod_proxy_ajp.c
    +

    概要

    + +

    本モジュールには mod_proxy が必要です。 + Apache JServ Protocol version 1.3 (以降 AJP13) + をサポートします。

    + +

    AJP13 プロトコルを扱えるようにするには + mod_proxy と mod_proxy_ajp + をサーバに組み込む必要があります。

    + +

    警告

    +

    安全なサーバにするまでプロクシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    +

    トピック

    +

    ディレクティブ

    +

    このモジュールにディレクティブはありません。

    +

    参照

    +
    +
    top
    +
    +

    プロトコルの概要

    +

    AJP13 プロトコルはパケット指向です。 + 可読なプレーンテキスト形式ではなくバイナリ形式になったのは、 + おそらくパフォーマンス上の理由によります。 + ウェブサーバはサーブレットコンテナと TCP コネクションで通信します。 + ソケット生成は重い処理なので、負荷を減らすために、サーブレットコンテナとの + TCP 接続を維持し、複数のリクエスト・レスポンス処理サイクルに対して一つの + コネクションを使いまわすようになっています。

    +

    あるリクエストにコネクションが割り当てられると、その処理サイクルが + 完了するまで他のものに使われることはありません。 + つまりコネクション上では、リクエストの同時処理は行われません。 + このため、コネクション両端での実行するコードを簡潔にできる一方で、 + 同時に開くコネクションは多くなっています。

    +

    サーブレットコンテナへのコネクションを開いた後は、コネクションの状態は + 次のどれかになります:

    +
      +
    • Idle
      コネクション上で処理されているリクエストはありません。
    • +
    • Assigned
      コネクションはリクエストを処理中です。
    • +
    +

    コネクションが特定のリクエストにアサインされると、基本的な情報 (例えば + HTTP ヘッダ等) が圧縮された形 (例えば通常の文字列は整数にエンコードされます) + で転送されます。詳細は下記の「リクエストパケットの構造」を参照してください。 + リクエストにボディが存在 (content-length > 0) すれば、 + 基本的な情報の直後に別パケットで転送されます。

    +

    この時点でおそらく、サーブレットコンテナは処理を開始できるようになります。 + ですので、次のメッセージをウェブサーバに戻して知らせられるようになります。

    +
      +
    • SEND_HEADERS
      ブラウザにヘッダを送信します。
    • +
    • SEND_BODY_CHUNK
      ブラウザにボディデータのチャンクを送ります。 +
    • +
    • GET_BODY_CHUNK
      リクエストのデータを全て受け取り終わっていないときに、 + 残っているデータを受け取ります。パケットにある定まった最大長があり、任意の + 大きさのデータがリクエストのボディとして含まれうる場合 + (例えばファイルのアップロードの場合) に必要となります。 + (注: HTTP のチャンク転送とは関連ありません。)
    • +
    • END_RESPONSE
      リクエスト処理サイクルを終了します。
    • +
    +

    個々のメッセージはそれぞれ異なるデータパケット形式になっています。 + 後述の「レスポンスパケットの構造」を参照してください。

    +
    top
    +
    +

    基本パケット構造

    +

    このプロトコルには XDR から受け継いだ部分が少しありますが、多くの点で + 異なります (例えば 4 バイトアライメントでないことなど) 。

    +

    バイトオーダー: 個々のバイトのエンディアンがどうなっているかは、 + 私は詳しくないのですが、リトルエンディアンになっていると思います。 + XDR 仕様でそうなっているのと、素晴らしいことに sys/socket ライブラリが + (C で) そういう風にできているのでそうなのだと思いました。 + ソケット呼び出しの内部についてより詳しい方がいらっしゃいましたら、 + ご教授ください。

    +

    プロトコルには 4 つのデータタイプがあります: byte, boolean, + integer, string です。

    +
    +
    Byte
    バイト一つです。
    +
    Boolean
    +
    バイト一つで、1 = true, 0 = false です。 + (C のように) 非零を真として扱ってしまうと、ある場合は動くかもしれませんし、 + 動かないかもしれません。
    +
    Integer
    +
    0 から 2^16 (32768) の範囲の数字。高次の 2 バイトが + 先に格納されます。
    +
    String
    +
    可変長の文字列 (2^16 が長さの上限) 。長さ情報のパケット 2 バイトの後に + 文字列 (終端文字 '\0' を含む) が続く形式でエンコードされます。 + エンコードされている長さ情報は最後の '\0' をカウントしない + ことに注意してください――これは strlen と同様です。 + これらの終端文字をスキップするために、あまり意味の無いインクリメント文 + をたくさん書かないといけないのは、 + Java の側から見ると少し紛らわしく感じられるかもしれません。 + こうなった理由はおそらく、Servlet コンテナから返される文字列を読み出す時に、 + 効率よく C のコードを書けるようにする――サーブレットから返される + 文字列は \0 文字で終端されているので、C のコードではわざわざコピーをせずに、 + 一つのバッファへのリファレンスを取り回すように書くことができる―― + ためだと思われます。 + '\0' 文字がない場合は、C では文字列の規則に合うようにコピーしなければ + いけなくなってしまいます。
    +
    + +

    パケットサイズ

    +

    多くのコードでそうなっているのですが、パケットサイズの最大サイズは + 8 * 1024 (8K) です。パケットの実際の長さはヘッダに + エンコードされて入っています。

    + +

    パケットヘッダ

    +

    サーバからコンテナに送出されるパケットは 0x1234 で始まります。 + コンテナからサーバに送られるパケットは AB (ASCII コード A と + ASCII コード B) で始まります。この二バイトの後に、ペイロード長が (上記の形式で) + 続きます。このため、ペイロード長の最大値は 2^16 にできるように思えますが、 + 実際にはコードでは最大値は 8K に設定されています。

    + + + + + + + + + + + + + + + + + + + +
    パケット形式 (Server->Container)
    Byte01234...(n+3)
    Contents0x120x34データ長 (n)Data
    + + + + + + + + + + + + + + + + + + + +
    パケット形式 (Container->Server)
    Byte01234...(n+3)
    ContentsABデータ長 (n)Data
    +

    ほとんどのパケットで、ペイロードの最初のバイトがメッセージの型をエンコード + しています。例外はサーバからコンテナに送られるリクエストボディパケットです + ――これらは標準的なパケット形式 (0x1234 とパケット長) + ですが、その後に続くプレフィックスコードがありません。

    +

    ウェブサーバは次のメッセージをサーブレットコンテナに送出できます。

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    コードパケットの型意味
    2Forward Requestリクエスト処理サイクルを後続のデータとともに開始する。
    7Shutdownウェブサーバがコンテナに、コンテナを終了するように伝える。
    8Pingウェブサーバがコンテナに制御を受け持つように伝える + (セキュアログインフェーズ) 。
    10CPingウェブサーバがコンテナに CPong で即座に応答するように伝える。
    noneDataサイズ (2 バイト) とそれに続くボディデータ。
    +

    基本的なセキュリティを確保するため、ホストされているマシンと同一の + マシンからのリクエストに対してのみ、コンテナは実際に Shutdown + を実行します。

    +

    最初の Data パケットは、Forward Request + の直後にウェブサーバから送られます。

    +

    サーブレットコンテナはウェブサーバに、次のタイプのメッセージを送ることが + できます :

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    コードパケットの型意味
    3Send Body Chunkサーブレットコンテナからウェブサーバに + (そしておそらくそのままブラウザに)、ボディのチャンクを送る。
    4Send Headersサーブレットコンテナからウェブサーバに (そしておそらくそのままブラウザに) + レスポンスヘッダを送る。
    5End Responseレスポンス (つまりリクエスト処理サイクル) 終了の目印を送る。 +
    6Get Body Chunkまだ全て転送されていない場合、残っているリクエストのデータを受け取る。 +
    9CPong 応答CPing リクエストに応答する。
    +

    上記メッセージは、それぞれ内部構造が異なっています。詳細は下記をご覧ください。 +

    + +
    top
    +
    +

    リクエストパケット構造

    +

    サーバからコンテナへ送られるメッセージが + Forward Request 型の場合 :

    +
    AJP13_FORWARD_REQUEST :=
    +    prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST
    +    method           (byte)
    +    protocol         (string)
    +    req_uri          (string)
    +    remote_addr      (string)
    +    remote_host      (string)
    +    server_name      (string)
    +    server_port      (integer)
    +    is_ssl           (boolean)
    +    num_headers      (integer)
    +    request_headers *(req_header_name req_header_value)
    +    attributes      *(attribut_name attribute_value)
    +    request_terminator (byte) OxFF
    +

    request_headers は次のような構造になっています : +

    req_header_name := 
    +    sc_req_header_name | (string)  [see below for how this is parsed]
    +
    +sc_req_header_name := 0xA0xx (integer)
    +
    +req_header_value := (string)
    +

    属性 はオプションで、次のような構造をしています :

    +
    attribute_name := sc_a_name | (sc_a_req_attribute string)
    +
    +attribute_value := (string)
    +

    もっとも重要なヘッダは content-length だということに + 注意してください。コンテナは次のパケットを探すかどうかを、 + それを見て決めるからです。

    +

    Forward Request 要素の詳細な説明 +

    +

    Request prefix

    +

    リクエストについては全て、この値は 2 になります。他の Prefix コードの詳細は + 上記をご覧ください。

    + +

    Method

    +

    HTTP メソッドは 1 バイトにエンコードされます :

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Command NameCode
    OPTIONS1
    GET2
    HEAD3
    POST4
    PUT5
    DELETE6
    TRACE7
    PROPFIND8
    PROPPATCH9
    MKCOL10
    COPY11
    MOVE12
    LOCK13
    UNLOCK14
    ACL15
    REPORT16
    VERSION-CONTROL17
    CHECKIN18
    CHECKOUT19
    UNCHECKOUT20
    SEARCH21
    MKWORKSPACE22
    UPDATE23
    LABEL24
    MERGE25
    BASELINE_CONTROL26
    MKACTIVITY27
    +

    今後の ajp13 バージョンでは、この一覧にない、今後追加されるメソッドを + 送るかもしれません。

    + +

    protocol, req_uri, remote_addr, remote_host, server_name, + server_port, is_ssl

    +

    これらはまさに文字通りのものです。どれも必要で、リクエストの毎回につき + 送られます。

    + +

    Headers

    +

    request_headers の構造は次のようなものです : + まずヘッダの数 num_headers がエンコードされます。 + 次にヘッダ名 req_header_name / 値 req_header_value + の組が続きます。効率のため、一般的なヘッダは整数でエンコードして転送します。 + ヘッダ名が基本ヘッダの一覧に無い場合は、通常通り (文字列として、長さ + プレフィックス付きで) 転送されます。一般的なヘッダ + sc_req_header_name の一覧とそのコードは次の通りです + (どれも大文字小文字を区別します) :

    + + + + + + + + + + + + + + + + + + + +
    名前コードの値コード名
    accept0xA001SC_REQ_ACCEPT
    accept-charset0xA002SC_REQ_ACCEPT_CHARSET +
    accept-encoding0xA003SC_REQ_ACCEPT_ENCODING +
    accept-language0xA004SC_REQ_ACCEPT_LANGUAGE +
    authorization0xA005SC_REQ_AUTHORIZATION
    connection0xA006SC_REQ_CONNECTION
    content-type0xA007SC_REQ_CONTENT_TYPE
    content-length0xA008SC_REQ_CONTENT_LENGTH
    cookie0xA009SC_REQ_COOKIE
    cookie20xA00ASC_REQ_COOKIE2
    host0xA00BSC_REQ_HOST
    pragma0xA00CSC_REQ_PRAGMA
    referer0xA00DSC_REQ_REFERER
    user-agent0xA00ESC_REQ_USER_AGENT
    +

    これを読み込む Java のコードでは、最初の 2 バイト整数を取り込み、 + 目印になるバイト '0xA0' であれば、ヘッダ名の配列の + インデックスを使います。先頭バイトが 0xA0 でない場合は、 + 先頭 2 バイトは文字列長を表す整数であると解釈し、読み込みはじめます。

    +

    ヘッダ名の長さは 0x9999 (==0xA000 -1) 以上にならないという + 仮定の下に動いていて、少しあいまいですが合理的な挙動になっています。

    +

    注:

    + content-length ヘッダはとても重要です。 + 存在していて非ゼロであれば、リクエストにはボディがある (例えば POST + リクエスト) と推測し、そのボディを取り込むために + 直後のパケットを入力ストリームから読み込みはじめます。 +
    + +

    属性

    +

    ? プレフィックスで始まる属性 (例 ?context) + は。省略可能です。それぞれ属性の型を示す 1 バイトのコードと、 + 値の文字列が続きます。 + これらは順不同で送ることができます (C のコードは常に下の一覧順に + 送るようですが) 。 + オプションの属性のリストの最後には、特別な終了コードが送られます。 + コードの一覧は :

    + + + + + + + + + + + + + + +
    InformationCode ValueNote
    ?context0x01未実装 +
    ?servlet_path0x02未実装 +
    ?remote_user0x03
    ?auth_type0x04
    ?query_string0x05
    ?jvm_route0x06
    ?ssl_cert0x07
    ?ssl_cipher0x08
    ?ssl_session0x09
    ?req_attribute0x0AName (the name of the + attribute follows)
    ?ssl_key_size0x0B
    are_done0xFFrequest_terminator
    +

    context と servlet_path は現在の C の + コードではセットされていません。また、ほとんどの Java のコードでも、 + このフィールドで何が送られても無視されます (これらのコードの後に文字列が + 送られると壊れるものもあります)。 + これがバグなのか、単に未実装なのか、歴史的経緯で残っているコードなのか + 分かりませんが、コネクションの両側ともで見当たりません。

    +

    remote_user と auth_type はおそらく + HTTP レベルの認証を参照していて、リモートユーザのユーザ名と認証に使用した + タイプ (例 Basic, Digest) についてやり取りします。

    +

    query_string, ssl_cert, + ssl_cipher, ssl_session + は HTTP と HTTPS の対応する部分を参照します。

    +

    jvm_route はスティッキーセッションのサポート―― + ロードバランスしている複数のサーバ中の特定の Tomcat インスタンスと、 + ユーザのセッションとを紐付ける機能――に使われます。

    +

    この基本属性一覧に無いものについては、req_attribute + コード 0x0A 経由で属性を何個でも送ることができます。 + 属性の名前と値の文字列の組を、それぞれこのコードの直後に送ります。 + 環境変数はこの方法で伝えられます。

    +

    最後に属性が全て送信された後に、属性の終端を示す 0xFF + が送出されます。この信号は属性の一覧の終わりを示すと同時に、リクエスト + パケットの終端をも示しています。

    + +
    top
    +
    +

    レスポンスパケット構造

    +

    コンテナがサーバに送り返すことのできるメッセージ:

    +
    AJP13_SEND_BODY_CHUNK :=
    +  prefix_code   3
    +  chunk_length  (integer)
    +  chunk        *(byte)
    +
    +
    +AJP13_SEND_HEADERS :=
    +  prefix_code       4
    +  http_status_code  (integer)
    +  http_status_msg   (string)
    +  num_headers       (integer)
    +  response_headers *(res_header_name header_value)
    +
    +res_header_name :=
    +    sc_res_header_name | (string)   [see below for how this is parsed]
    +
    +sc_res_header_name := 0xA0 (byte)
    +
    +header_value := (string)
    +
    +AJP13_END_RESPONSE :=
    +  prefix_code       5
    +  reuse             (boolean)
    +
    +
    +AJP13_GET_BODY_CHUNK :=
    +  prefix_code       6
    +  requested_length  (integer)
    +

    詳細 :

    +

    Send Body Chunk

    +

    チャンクは基本的にはバイナリデータで、ブラウザに直接送られます。

    + +

    Send Headers

    +

    ステータスコードとメッセージが通常の HTTP の通信にはあります (例 + 200 と OK)。レスポンスヘッダ名は、 + リクエストヘッダ名と同様の方法でエンコードされます。 + コードと文字列の判別方法の詳細に関しては、上記の header_encoding + を参照してください。 + 一般的なヘッダのコードは :

    + + + + + + + + + + + + + +
    名前コードの値
    Content-Type0xA001
    Content-Language0xA002
    Content-Length0xA003
    Date0xA004
    Last-Modified0xA005
    Location0xA006
    Set-Cookie0xA007
    Set-Cookie20xA008
    Servlet-Engine0xA009
    Status0xA00A
    WWW-Authenticate0xA00B
    +

    コードかヘッダ文字列の直後には、ヘッダの値がエンコードされます。

    + +

    End Response

    +

    リクエスト処理サイクルの終了を知らせます。reuse フラグが真 + (==1) の場合、現在使用している TCP コネクションは次の新しい + リクエストに使えるようになります。reuse が偽 (C のコードでは + 1 以外の全て) の場合は、コネクションを閉じることになります。

    + +

    Get Body Chunk

    +

    (ボディのサイズが大きすぎて最初のパケットに収まらない場合や、 + リクエストがチャンク転送された場合などには、) コンテナはリクエストからの + データ読み込み要求をします。サーバ側はそれに対して、最小 + request_length 最大 (8186 (8 Kbytes - 6)) + の範囲で、未転送で残っているリクエストボディの大きさのデータを + 送り返します。
    + ボディにそれ以上データが残っていない場合 (つまりサーブレットが + ボディの最後を超えて読み込もうとした場合) 、サーバは + ペイロード長 0 の空パケット(0x12,0x34,0x00,0x00) + を送り返します。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_ajp.xml b/docs/manual/mod/mod_proxy_ajp.xml index 326b91d6922..ee85a96c7c5 100644 --- a/docs/manual/mod/mod_proxy_ajp.xml +++ b/docs/manual/mod/mod_proxy_ajp.xml @@ -4,12 +4,12 @@ + - + mod_proxy_ajp /mod/ .. en - ja + ja diff --git a/docs/manual/mod/mod_proxy_balancer.html b/docs/manual/mod/mod_proxy_balancer.html index bca5d274455..8cf8ef65f26 100644 --- a/docs/manual/mod/mod_proxy_balancer.html +++ b/docs/manual/mod/mod_proxy_balancer.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_proxy_balancer.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_proxy_balancer.html.ja.euc-jp +URI: mod_proxy_balancer.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy_balancer.html.en b/docs/manual/mod/mod_proxy_balancer.html.en index 26821299ff2..e7c1eb72e3c 100644 --- a/docs/manual/mod/mod_proxy_balancer.html.en +++ b/docs/manual/mod/mod_proxy_balancer.html.en @@ -1,33 +1,40 @@ - -mod_proxy_balancer - Apache HTTP Server +mod_proxy_balancer - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_proxy_balancer

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_proxy_balancer

    Available Languages:  en  |  ja 

    - - + +
    Description:mod_proxy extension for load balancing
    Status:Extension
    Module Identifier:proxy_balancer_module
    Source File:proxy_balancer.c
    Module Identifier:proxy_balancer_module
    Source File:mod_proxy_balancer.c
    Compatibility:Available in version 2.1 and later

    Summary

    @@ -45,34 +52,88 @@ large.

    -
    top

    Load balancer scheduler algorithm

    -

    At present, there are 2 load balancer scheduler algorithms available - for use: Request Counting and Weighted Traffic Counting. These are controlled - via the lbmethod value of the Balancer definition. See - the Proxy directive for - more information.

    +

    At present, there are 3 load balancer scheduler algorithms available + for use: Request Counting, Weighted Traffic Counting and Pending Request + Counting. These are controlled via the lbmethod value of + the Balancer definition. See the ProxyPass + directive for more information.

    +
    top
    +
    +

    Load balancer stickyness

    + +

    The balancer supports stickyness. When a request is proxied + to some back-end, then all following requests from the same user + should be proxied to the same back-end. Many load balancers implement + this feature via a table that maps client IP addresses to back-ends. + This approach is transparent to clients and back-ends, but suffers + from some problems: unequal load distribution if clients are themselves + hidden behind proxies, stickyness errors when a client uses a dynamic + IP address that changes during a session and loss of stickyness, if the + mapping table overflows.

    +

    The module mod_proxy_balancer implements stickyness + on top of two alternative means: cookies and URL encoding. Providing the + cookie can be either done by the back-end or by the Apache web server + itself. The URL encoding is usually done on the back-end.

    +
    top
    +
    +

    Examples of a balancer configuration

    + +

    Before we dive into the technical details, here's an example of + how you might use mod_proxy_balancer to provide + load balancing between two back-end servers: +

    +

    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80
    + BalancerMember http://192.168.1.51:80
    + </Proxy>
    + ProxyPass /test balancer://mycluster +

    + +

    Another example of how to provide load balancing with stickyness + using mod_headers, even if the back-end server does + not set a suitable session cookie: +

    + +

    + Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" + env=BALANCER_ROUTE_CHANGED
    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80 route=1
    + BalancerMember http://192.168.1.51:80 route=2
    + ProxySet stickysession=ROUTEID
    + </Proxy>
    + ProxyPass /test balancer://mycluster +

    top

    Request Counting Algorithm

    -

    Enabled via lbmethod=requests, the idea behind this +

    Enabled via lbmethod=byrequests, the idea behind this scheduler is that we distribute the requests among the various workers to ensure that each gets their configured share of the number of requests. It works as follows:

    @@ -244,7 +305,7 @@ candidate lbstatus -= total factor

    Weighted Traffic Counting Algorithm

    -

    Enabled via lbmethod=traffic, the idea behind this +

    Enabled via lbmethod=bytraffic, the idea behind this scheduler is very similar to the Request Counting method, with the following changes:

    @@ -275,13 +336,87 @@ candidate lbstatus -= total factor
    top
    -

    Enabling Balancer Manager Support

    +

    Pending Request Counting Algorithm

    + + + +

    Enabled via lbmethod=bybusyness, this scheduler keeps + track of how many requests each worker is assigned at present. A new + request is automatically assigned to the worker with the lowest + number of active requests. This is useful in the case of workers + that queue incoming requests independently of Apache, to ensure that + queue length stays even and a request is always given to the worker + most likely to service it fastest.

    + +

    In the case of multiple least-busy workers, the statistics (and + weightings) used by the Request Counting method are used to break the + tie. Over time, the distribution of work will come to resemble that + characteristic of byrequests.

    + +

    This algorithm is available in Apache HTTP Server 2.2.10 and later.

    + +
    top
    +
    +

    Exported Environment Variables

    + +

    At present there are 6 environment variables exported:

    + +
    + +
    BALANCER_SESSION_STICKY
    +
    +

    This is assigned the stickysession value used for the current + request. It is the name of the cookie or request parameter used for sticky sessions

    +
    + + +
    BALANCER_SESSION_ROUTE
    +
    +

    This is assigned the route parsed from the current + request.

    +
    + + +
    BALANCER_NAME
    +
    +

    This is assigned the name of the balancer used for the current + request. The value is something like balancer://foo.

    +
    + + +
    BALANCER_WORKER_NAME
    +
    +

    This is assigned the name of the worker used for the current request. + The value is something like http://hostA:1234.

    +
    + + +
    BALANCER_WORKER_ROUTE
    +
    +

    This is assigned the route of the worker that will be + used for the current request.

    +
    + + +
    BALANCER_ROUTE_CHANGED
    +
    +

    This is set to 1 if the session route does not match the + worker route (BALANCER_SESSION_ROUTE != BALANCER_WORKER_ROUTE) or the + session does not yet have an established route. This can be used to + determine when/if the client needs to be sent an updated route + when sticky sessions are used.

    +
    +
    + +
    top
    +
    +

    Enabling Balancer Manager Support

    This module requires the service of mod_status. Balancer manager enables dynamic update of balancer members. You can use balancer manager to change the balance - factor or a particular member, or put it in the off line + factor of a particular member, or put it in the off line mode.

    @@ -289,7 +424,7 @@ candidate lbstatus -= total factor
    mod_status and mod_proxy_balancer have to be present in the server.

    -

    To enable load balancer management for browsers from the foo.com +

    To enable load balancer management for browsers from the example.com domain add this code to your httpd.conf configuration file

    @@ -298,19 +433,141 @@ candidate lbstatus -= total factor


    Order Deny,Allow
    Deny from all
    - Allow from .foo.com
    + Allow from .example.com
    </Location>

    You can now access load balancer manager by using a Web browser to access the page http://your.server.name/balancer-manager

    +
    top
    +
    +

    Details on load balancer stickyness

    + +

    When using cookie based stickyness, you need to configure the + name of the cookie that contains the information about which back-end + to use. This is done via the stickysession attribute added + to either ProxyPass or + ProxySet. The name of + the cookie is case-sensitive. The balancer extracts the value of the + cookie and looks for a member worker with route equal + to that value. The route must also be set in either + ProxyPass or + ProxySet. The cookie can either + be set by the back-end, or as shown in the above + example by the Apache web server itself.

    +

    Some back-ends use a slightly different form of stickyness cookie, + for instance Apache Tomcat. Tomcat adds the name of the Tomcat instance + to the end of its session id cookie, separated with a dot (.) + from the session id. Thus if the Apache web server finds a dot in the value + of the stickyness cookie, it only uses the part behind the dot to search + for the route. In order to let Tomcat know about its instance name, you + need to set the attribute jvmRoute inside the Tomcat + configuration file conf/server.xml to the value of the + route of the worker that connects to the respective Tomcat. + The name of the session cookie used by Tomcat (and more generally by Java + web applications based on servlets) is JSESSIONID + (upper case) but can be configured to something else.

    +

    The second way of implementing stickyness is URL encoding. + The web server searches for a query parameter in the URL of the request. + The name of the parameter is specified again using stickysession. + The value of the parameter is used to lookup a member worker with route + equal to that value. Since it is not easy to extract and manipulate all + URL links contained in responses, generally the work of adding the parameters + to each link is done by the back-end generating the content. + In some cases it might be feasible doing + this via the web server using mod_substitute. + This can have negative impact on performance though.

    +

    The Java standards implement URL encoding slightly different. They use + a path info appended to the URL using a semicolon (;) + as the separator and add the session id behind. As in the cookie case, + Apache Tomcat can include the configured jvmRoute in this path + info. To let Apache find this sort of path info, you need to set + scolonpathdelim to On in + ProxyPass or + ProxySet.

    +

    Finally you can support cookies and URL encoding at the same time, by + configuring the name of the cookie and the name of the URL parameter + separated by a vertical bar (|) as in the following example:

    +

    + ProxyPass /test balancer://mycluster stickysession=JSESSIONID|jsessionid scolonpathdelim=On
    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80 route=node1
    + BalancerMember http://192.168.1.51:80 route=node2
    + </Proxy>
    +

    +

    If the cookie and the request parameter both provide routing information + for the same request, the information from the request parameter is used.

    +
    top
    +
    +

    Troubleshooting load balancer stickyness

    + +

    If you experience stickyness errors, e.g. users lose their + application sessions and need to login again, you first want to + check whether this is because the back-ends are sometimes unavailable + or whether your configuration is wrong. To find out about possible + stability problems with the back-ends, check your Apache error log + for proxy error messages.

    +

    To verify your configuration, first check, whether the stickyness + is based on a cookie or on URL encoding. Next step would be logging + the appropriate data in the access log by using an enhanced + LogFormat. + The following fields are useful:

    +
    +
    %{MYCOOKIE}C
    +
    The value contained in the cookie with name MYCOOKIE. + The name should be the same given in the stickysession + attribute.
    +
    %{Set-Cookie}o
    +
    This logs any cookie set by the back-end. You can track, + whether the back-end sets the session cookie you expect, and + to which value it is set.
    +
    %{BALANCER_SESSION_STICKY}e
    +
    The name of the cookie or request parameter used + to lookup the routing information.
    +
    %{BALANCER_SESSION_ROUTE}e
    +
    The route information found in the request.
    +
    %{BALANCER_WORKER_ROUTE}e
    +
    The route of the worker chosen.
    +
    %{BALANCER_ROUTE_CHANGED}e
    +
    Set to 1 if the route in the request + is different from the route of the worker, i.e. + the request couldn't be handled sticky.
    +
    +

    Common reasons for loss of session are session timeouts, + which are usually configurable on the back-end server.

    +

    The balancer also logs detailed information about handling + stickyness to the error log, if the log level is set to + debug or higher. This is an easy way to + troubleshoot stickyness problems, but the log volume might + be to high for production servers under high load.

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_balancer.html.ja.euc-jp b/docs/manual/mod/mod_proxy_balancer.html.ja.euc-jp deleted file mode 100644 index a521cac37e8..00000000000 --- a/docs/manual/mod/mod_proxy_balancer.html.ja.euc-jp +++ /dev/null @@ -1,317 +0,0 @@ - - - -mod_proxy_balancer - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_proxy_balancer

    -
    -

    Available Languages:  en  | - ja 

    -
    - - - - -
    ÀâÌÀ:Éé²Ùʬ»¶¤Τ¿¤á¤Î mod_proxy ³Èĥ
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:proxy_balancer_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:proxy_balancer.c
    ¸ߴ¹À­:2.1 °ʹß
    -

    ³µÍ×

    - -

    Ëܥ⥸¥塼¥ë¤ˤÏ mod_proxy ¤¬ɬÍפǤ¹¡£ - HTTP, FTP ¤È AJP13 - ¥ץí¥ȥ³¥ë¤Υí¡¼¥ɥХé¥󥹵¡ǽ¤ò»ý¤äƤ¤¤ޤ¹¡£

    - -

    ¤Ǥ¹¤«¤顢 ¥í¡¼¥ɥХé¥󥹤òͭ¸ú¤ˤ¹¤ë¾ì¹ç mod_proxy - ¤È mod_proxy_balancer ¤¬¥µ¡¼¥ФËÁȤ߹þ¤ޤì¤Æ - ¤¤¤ʤ±¤ì¤Ф¤¤±¤ޤ»¤ó¡£

    - -

    ·ٹð

    -

    °ÂÁ´¤ʥµ¡¼¥Фˤ¹¤ë¤ޤǥץí¥¯¥·µ¡ǽ¤Ïͭ¸ú¤ˤ·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£ - ¥ª¡¼¥ץó¥ץí¥­¥·¥µ¡¼¥ФϤ¢¤ʤ¿¼«¿ȤΥͥåȥ¥¯¤ˤȤäƤ⡢ - ¥¤¥󥿡¼¥ͥåÈÁ´ÂΤˤȤäƤâ´í¸±¤Ǥ¹¡£

    -
    -
    - -
    top
    -
    -

    ¥í¡¼¥ɥХé¥󥵤Υ¹¥±¥¸¥塼¥é¤Υ¢¥르¥ꥺ¥à

    - -

    ¸½»þÅÀ¤ǤÏ 2 ¼ïÎà¤Υí¡¼¥ɥХé¥󥵥¹¥±¥¸¥塼¥饢¥르¥ꥺ¥फ¤éÁª¤٤ޤ¹¡£ - ¥ꥯ¥¨¥¹¥Ȳó¿ô¤ˤè¤ë¤â¤Î (ÌõÃí: Request Counting) - ¤ȡ¢¥ȥé¥ե£¥å¯Î̤ˤè¤ë¤â¤Î (ÌõÃí: Weighted Traffic Counting) - ¤¬¤¢¤ê¤ޤ¹¡£¥Хé¥󥵤ÎÀßÄê lbmethod Ãͤǡ¢¤ɤÁ¤é¤ò»Ȥ¦¤«»ØÄꤷ¤ޤ¹¡£ - ¾ܺ٤Ï Proxy ¥ǥ£¥쥯¥ƥ£¥֤ò - »²¾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    top
    -
    -

    Request Counting ¥¢¥르¥ꥺ¥à

    - -

    lbmethod=requests ¤Çͭ¸ú¤ˤʤê¤ޤ¹¡£ - ¤³¤Υ¹¥±¥¸¥塼¥é¤ÎÇطʤˤ¢¤ë¹ͤ¨Êý¤ϡ¢Í͡¹¤ʥ¥«¡¼¤¬¤½¤줾¤졢 - ÀßÄꤵ¤ì¤Ƥ¤¤ëʬô¥ꥯ¥¨¥¹¥ȿô¤򤭤Á¤ó¤ȼõ¤±¼è¤ì¤ë¤褦¤ˡ¢ - ¥ꥯ¥¨¥¹¥Ȥ򰷤¦¤Ȥ¤¤¦¹ͤ¨Êý¤Ǥ¹¡£¼¡¤Τ褦¤Ëưº¤ޤ¹:

    - -

    lbfactor ¤ϡ¢¤ɤÎÄøÅ٥¥«¡¼¤˻Żö¤򿶤뤫 - ¤Ĥޤê¥¥«¡¼¤Υ¯¥ª¡¼¥¿¤ò»ؤ·¤ޤ¹¡£¤³¤ÎÃͤÏ "ʬô" - Î̤òɽ¤¹Àµµ¬²½¤µ¤줿ÃͤǤ¹¡£

    - -

    lbstatus ¤ϡ¢¥¥«¡¼¤Υ¯¥ª¡¼¥¿¤òËþ¤¿¤¹¤¿¤á¤Ë - ¤ɤΤ°¤餤µޤ®¤ÇƯ¤«¤ʤ±¤ì¤Фʤé¤ʤ¤¤«¤ò»ؤ·¤ޤ¹¡£

    - -

    ¥¥«¡¼¤ϥí¡¼¥ɥХé¥󥵤Υá¥ó¥Фǡ¢Ä̾ï¤ϡ¢ - ¥µ¥ݡ¼¥Ȥµ¤ì¤ë¥ץí¥ȥ³¥ë¤Τ¦¤Á¤ΰì¤ĤòÄ󶡤·¤Ƥ¤¤ë¥ê¥⡼¥ȥۥ¹¥ȤǤ¹¡£ -

    - -

    ¤ޤº¸ġ¹¤Υ¥«¡¼¤˥¥«¡¼¥¯¥ª¡¼¥¿¤ò³ä¤꿶¤ꡢ¤ɤΥ¥«¡¼¤¬ºǤâµޤ®¤Ç - Ư¤«¤ʤ±¤ì¤Фʤé¤ʤ¤¤« (lbstatus ¤¬ºÇÂç¤Τâ¤Î) ¤òĴ¤٤ޤ¹¡£ - ¼¡¤˻Żö¤򤹤ë¤褦¤ˤ³¤Υ¥«¡¼¤òÁªÂ򤷡¢ÁªÂ򤷤¿¥¥«¡¼¤Î lbstatus - ¤òÁ´ÂΤ˳ä¤꿶¤ä¿¤֤ó¤À¤±º¹¤·°ú¤­¤ޤ¹¡£¤Ǥ¹¤«¤顢lbstatus ¤ÎÁíÎ̤Ï - ·ë²ÌŪ¤ËÊѲ½¤·¤ޤ»¤ó(*)¤·¡¢¥ꥯ¥¨¥¹¥ȤϴüÂÔÄ̤ê¤Ëʬ»¶¤µ¤ì¤ޤ¹¡£

    - -

    ¤¢¤ë¥¥«¡¼¤¬̵¸ú¤ˤʤäƤ⡢¾¤Τâ¤ΤÏÀµ¾ï¤˥¹¥±¥¸¥塼¥뤵¤ì³¤±¤ޤ¹¡£ -

    - -
    for each worker in workers
    -    worker lbstatus += worker lbfactor
    -    total factor    += worker lbfactor
    -    if worker lbstatus > candidate lbstatus
    -        candidate = worker
    -
    -candidate lbstatus -= total factor
    - -

    ¥Хé¥󥵤򼡤Τ褦¤ËÀßÄꤷ¤¿¾ì¹ç:

    - - - - - - - - - - - - - - - - -
    workerabcd
    lbfactor25252525
    lbstatus0000
    - -

    ¤½¤·¤Æ b ¤¬̵¸ú¤ˤʤ俾ì¹硢¼¡¤Τ褦¤ʥ¹¥±¥¸¥塼¥뤬 - ¹Ԥï¤ì¤ޤ¹¡£

    - - - - - - - - - - - - - - - - - - - - - - -
    workerabcd
    lbstatus-5002525
    lbstatus-250-2550
    lbstatus0000
    (repeat)
    - -

    ¤Ĥޤꤳ¤Τ褦¤˥¹¥±¥¸¥塼¥뤵¤ì¤ޤ¹: a c - d a c d a - c d ... ¼¡¤ÎÅÀ¤ËÃí°դ·¤Ƥ¯¤À¤µ¤¤:

    - - - - - - - - - - - -
    workerabcd
    lbfactor25252525
    - -

    ¤³¤εóư¤ϡ¢¼¡¤ÎÀßÄê¤ÈÁ´¤¯Ʊ¤¸¤ˤʤê¤ޤ¹:

    - - - - - - - - - - - -
    workerabcd
    lbfactor1111
    - -

    This is because all values of lbfactor are normalized - with respect to the others. For:

    -

    lbfactor ¤ÏÁ´¤ÆÀµµ¬²½¤µ¤줿¤â¤Τǡ¢ - ¾¤ȤÎÁêÂÐÃͤÀ¤«¤é¤Ǥ¹¡£¼¡¤ÎÀßÄê¤ǤÏ:

    - - - - - - - - - -
    workerabc
    lbfactor141
    - -

    ¥¥«¡¼ b ¤ϡ¢ʿ¶Ѥ·¤ơ¢a ¤È c - ¤Î 4 Çܤοô¤Υꥯ¥¨¥¹¥Ȥò¼õ¤±»ý¤Ĥ³¤Ȥˤʤê¤ޤ¹¡£

    - -

    ¼¡¤Τ褦¤ÊÈóÂоΤÊÀßÄê¤Ǥϡ¢¤³¤¦¤ʤë¤ÈͽÁۤµ¤ì¤ë¤Ǥ·¤礦:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    workerab
    lbfactor7030
     
    lbstatus-3030
    lbstatus40-40
    lbstatus10-10
    lbstatus-2020
    lbstatus-5050
    lbstatus20-20
    lbstatus-1010
    lbstatus-4040
    lbstatus30-30
    lbstatus00
    (repeat)
    - -

    ¥¹¥±¥¸¥塼¥ë¤Ï 10 ¥¹¥±¥¸¥塼¥ë¸å¤˷«¤êÊ֤µ¤졢a 7 ²ó¤È - b 3 ²ó¤ǤޤФé¤ËÁª¤Фì¤ޤ¹¡£

    -
    top
    -
    -

    Weighted Traffic Counting ¥¢¥르¥ꥺ¥à

    - -

    lbmethod=traffic ¤Çͭ¸ú¤ˤʤê¤ޤ¹¡£ - ¤³¤Υ¹¥±¥¸¥塼¥é¤ÎÇطʤˤ¢¤ë¹ͤ¨Êý¤ϡ¢Request Counting - ¤ÈÈó¾ï¤˻÷¤Ƥ¤¤ޤ¹¤¬¡¢¼¡¤ΰ㤤¤¬¤¢¤ê¤ޤ¹:

    - -

    lbfactor ¤Ï ¤ɤì¤À¤±¤ΥХ¤¥ȿô¤Υȥé¥ե£¥å¯Î̤ò¡¢ - ¤³¤Υ¥«¡¼¤˽èÍý¤·¤Ƥâ¤餤¤¿¤¤¤« ¤òɽ¤·¤ޤ¹¡£ - ¤³¤ÎÃͤâƱÍͤËÀµµ¬²½¤µ¤줿Ãͤǡ¢¥¥«¡¼Á´ÂΤΤ¦¤Á¤ǤÎ "ʬô" - Î̤òɽ¸½¤·¤Ƥ¤¤ޤ¹¡£¥ꥯ¥¨¥¹¥ȿô¤òñ½ã¤˿ô¤¨¤ëÂå¤ï¤ê¤ˡ¢ - ¤ɤì¤À¤±¤ÎžÁ÷Î̤ò½èÍý¤·¤¿¤«¤ò¿ô¤¨¤ޤ¹¡£

    - -

    ¼¡¤Τ褦¤˥Хé¥󥵤òÀßÄꤷ¤¿¾ì¹ç:

    - - - - - - - - - -
    workerabc
    lbfactor121
    - -

    b ¤ˤÏ a ¤ä c ¤Î 2 ÇÜ - ½èÍý¤·¤Ƥۤ·¤¤¤Ȥ¤¤¦¤³¤Ȥˤʤê¤ޤ¹¡£ - b ¤Ï 2 ÇܤÎ I/O ¤ò½èÍý¤¹¤ë¤Ȥ¤¤¦°Ọ̃¤ˤʤꡢ - 2 ÇܤΥꥯ¥¨¥¹¥ȿô¤ò½èÍý¤¹¤ë¤Ȥ¤¤¦¤³¤ȤˤϤʤê¤ޤ»¤ó¡£ - ¤Ǥ¹¤«¤é¥ꥯ¥¨¥¹¥Ȥȥ쥹¥ݥ󥹤Υµ¥¤¥º¤¬¡¢ - ½ŤßÉդ±¤ȿ¶¤êʬ¤±¤Υ¢¥르¥ꥺ¥à¤˸ú¤¤¤Ƥ¤¤ޤ¹¡£

    - -
    top
    -
    -

    ¥Хé¥󥵥ޥ͡¼¥¸¥ã¤Υµ¥ݡ¼¥Ȥòͭ¸ú¤ˤ¹¤ë

    - -

    ¤³¤Υ⥸¥塼¥ë¤Ï mod_status ¤Υµ¡¼¥ӥ¹¤ò - ɬÍפȤ·¤ޤ¹¡£ - ¥Хé¥󥵥ޥ͡¼¥¸¥ã¤ò»Ȥ¦¤ȡ¢¥Хé¥󥵤Υá¥ó¥С¼¤ÎưŪ¤ʹ¹¿·¤¬ - ¤Ǥ­¤ޤ¹¡£¥Хé¥󥵥ޥ͡¼¥¸¥ã¤ò»Ȥäơ¢¥Хé¥󥹷¸¿ô (lbfactor) - ¤òÊѹ¹¤·¤¿¤ꡢ¥á¥ó¥С¼¤òÊѹ¹¤·¤¿¤ꡢÆÃÄê¤Υá¥ó¥С¼¤ò - ¥ª¥ե饤¥ó¥⡼¥ɤˤ·¤¿¤ê¤Ǥ­¤ޤ¹¡£

    - -

    ¤Ǥ¹¤«¤顢¥í¡¼¥ɥХé¥󥵴ÉÍýµ¡ǽ¤ò»Ȥ¤¤¿¤±¤ì¤С¢ - mod_status ¤È mod_proxy_balancer - ¤򥵡¼¥ФËÁȤ߹þ¤ޤʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    foo.com ¥ɥᥤ¥ó¤Υ֥饦¥¶¤«¤é¥í¡¼¥ɥХé¥󥵴ÉÍýµ¡ǽ¤ò - »Ȥ¨¤ë¤褦¤ˤ¹¤ë¤ˤϡ¢¼¡¤Τ褦¤ʥ³¡¼¥ɤò httpd.conf - ¤ËÄɲä·¤ޤ¹¡£

    -

    - <Location /balancer-manager>
    - SetHandler balancer-manager
    -
    - Order Deny,Allow
    - Deny from all
    - Allow from .foo.com
    - </Location> -

    - -

    ¤³¤¦¤¹¤ë¤ȡ¢http://your.server.name/balancer-manager - ¤Υڡ¼¥¸·Ðͳ¤ǡ¢¥¦¥§¥֥֥饦¥¶¤«¤é¥í¡¼¥ɥХé¥󥵥ޥ͡¼¥¸¥ã¤Ë - ¥¢¥¯¥»¥¹¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£

    -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_balancer.html.ja.utf8 b/docs/manual/mod/mod_proxy_balancer.html.ja.utf8 new file mode 100644 index 00000000000..736ee089720 --- /dev/null +++ b/docs/manual/mod/mod_proxy_balancer.html.ja.utf8 @@ -0,0 +1,576 @@ + + + + + +mod_proxy_balancer - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_proxy_balancer

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + + +
    説明:負荷分散のための mod_proxy 拡張
    ステータス:Extension
    モジュール識別子:proxy_balancer_module
    ソースファイル:mod_proxy_balancer.c
    互換性:Apache 2.1 以降で使用可能
    +

    概要

    + +

    本モジュールには mod_proxy が必要です。 + 本モジュールは HTTP と FTP と AJP13 + プロトコルのロードバランス機能を持っています。

    + +

    ですから、 ロードバランスを有効にする場合 mod_proxy + と mod_proxy_balancer がサーバに組み込まれて + いなければいけません。

    + +

    警告

    +

    + 安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    + +
    top
    +
    +

    ロードバランサのスケジューラのアルゴリズム

    + +

    現時点では 3 種類のロードバランサスケジューラアルゴリズムから選べます。 + リクエスト回数によるもの (訳注: Request Counting) + 、トラフィック量によるもの (訳注: Weighted Traffic Counting) + と、処理中リクエスト数によるもの (訳注: Pending Request Counting) + とがあります。バランサの設定 lbmethod 値で、どれを使うか指定します。 + 詳細は ProxyPass ディレクティブを + 参照してください。

    +
    top
    +
    +

    ロードバランサのスティッキネス

    + +

    バランサはスティッキネスをサポートします。リクエストがあるバックエンドに + プロキシされた時、続く同じユーザからのリクエストは、すべてその同じバックエンドに + プロキシされるべきです。多くのロードバランサはこの機能をクライアントの + IP アドレスとバックエンドの対応表を持つことで実現します。 + この方法はクライアントにもバックエンドにも透過に動作しますが、 + 次に挙げるいくつかの問題があります。 + もしクライアント自身がプロキシの背後にいる場合、負荷分散が不均一になります。 + もし動的な IP アドレスを持つクライアントのアドレスがセッション中に変わると + スティッキネスは期待どおりに動作しません。 + もし対応表があふれると、スティッキネスが失われます。

    +

    mod_proxy_balancer はスティッキネスを + 2 種類の別手法をもとに実装しています。クッキーと URL エンコーディングのふたつです。 + クッキーはバックエンドもしくは Apache Web サーバ自身により提供されます。 + URL エンコーディングは通常バックエンドにより行われます。

    +
    top
    +
    +

    ロードバランサの設定例

    + +

    技術的な詳細に入る前に例を示します。以下は、2 台のバックエンドサーバを + ロードバランスするための mod_proxy_balancer の使い方の一例です: +

    + +

    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80
    + BalancerMember http://192.168.1.51:80
    + </Proxy>
    + ProxyPass /test balancer://mycluster +

    + +

    別の例として、mod_headers を使ってスティッキネス + を実現するロードバランサの設定例を示します。バックエンドのサーバが + 適切なセッションクッキーをセットしなくても動作します。 +

    + +

    + Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" + env=BALANCER_ROUTE_CHANGED
    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80 route=1
    + BalancerMember http://192.168.1.51:80 route=2
    + ProxySet stickysession=ROUTEID
    + </Proxy>
    + ProxyPass /test balancer://mycluster +

    +
    top
    +
    +

    Request Counting アルゴリズム

    + +

    lbmethod=byrequests で有効になります。 + このスケジューラの背景にある考え方は、様々なワーカーがそれぞれ、 + 設定されている分担リクエスト数をきちんと受け取れるように、 + リクエストを扱うという考え方です。次のように動作します:

    + +

    lbfactor は、どの程度ワーカーに仕事を振るか + つまりワーカーのクオータを指します。この値は "分担" + 量を表す正規化された値です。

    + +

    lbstatus は、ワーカーのクオータを満たすために + どのぐらい急ぎで働かなければならないかを指します。

    + +

    ワーカーはロードバランサのメンバで、通常は、 + サポートされるプロトコルのうちの一つを提供しているリモートホストです。 +

    + +

    まず個々のワーカーにワーカークオータを割り振り、どのワーカーが最も急ぎで + 働かなければならないか (lbstatus が最大のもの) を調べます。 + 次に仕事をするようにこのワーカーを選択し、選択したワーカーの lbstatus + から全ワーカーに割り振ったクオータの合計を引きます。ですから、lbstatus の総量は + 結果的に変化しません(*)し、リクエストは期待通りに分散されます。

    + +

    あるワーカーが無効になっても、他のものは正常にスケジュールされ続けます。 +

    + +
    for each worker in workers
    +    worker lbstatus += worker lbfactor
    +    total factor    += worker lbfactor
    +    if worker lbstatus > candidate lbstatus
    +        candidate = worker
    +
    +candidate lbstatus -= total factor
    + +

    バランサを次のように設定した場合:

    + + + + + + + + + + + + + + + + +
    workerabcd
    lbfactor25252525
    lbstatus0000
    + +

    そして b が無効になった場合、次のようなスケジュールが + 行われます。

    + + + + + + + + + + + + + + + + + + + + + + +
    workerabcd
    lbstatus-5002525
    lbstatus-250-2550
    lbstatus0000
    (repeat)
    + +

    つまりこのようにスケジュールされます: a c + d a c d a + c d ... 次の点に注意してください:

    + + + + + + + + + + + +
    workerabcd
    lbfactor25252525
    + +

    この挙動は、次の設定と全く同じになります:

    + + + + + + + + + + + +
    workerabcd
    lbfactor1111
    + +

    と言うのも、lbfactor の値は全て正規化されたもので、 + 他との相対値だからです。次の設定では:

    + + + + + + + + + +
    workerabc
    lbfactor141
    + +

    ワーカー b は、平均して、a と c + の 4 倍の数のリクエストを受け持つことになります。

    + +

    次のような非対称な設定では、こうなると予想されるでしょう:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    workerab
    lbfactor7030
     
    lbstatus-3030
    lbstatus40-40
    lbstatus10-10
    lbstatus-2020
    lbstatus-5050
    lbstatus20-20
    lbstatus-1010
    lbstatus-4040
    lbstatus30-30
    lbstatus00
    (repeat)
    + +

    スケジュールは 10 スケジュール後に繰り返され、a 7 回と + b 3 回でまばらに選ばれます。

    +
    top
    +
    +

    Weighted Traffic Counting アルゴリズム

    + +

    lbmethod=bytraffic で有効になります。 + このスケジューラの背景にある考え方は、Request Counting + と非常に似ていますが、次の違いがあります:

    + +

    lbfactor は どれだけのバイト数のトラフィック量を、 + このワーカーに処理してもらいたいか を表します。 + この値も同様に正規化された値で、ワーカー全体のうちでの "分担" + 量を表現しています。リクエスト数を単純に数える代わりに、 + どれだけの転送量を処理したかを数えます。

    + +

    次のようにバランサを設定した場合:

    + + + + + + + + + +
    workerabc
    lbfactor121
    + +

    b には a や c の 2 倍 + 処理してほしいということになります。 + b は 2 倍の I/O を処理するという意味になり、 + 2 倍のリクエスト数を処理するということにはなりません。 + ですからリクエストとレスポンスのサイズが、 + 重み付けと振り分けのアルゴリズムに効いています。

    + +
    top
    +
    +

    Pending Request Counting アルゴリズム

    + + + +

    lbmethod=bybusyness で有効になります。このスケジューラは + 現在どのぐらいのリクエストが個々のワーカーにアサインされているかを把握しています。 + 新しいリクエストは、最も処理途中のリクエスト数が少ないワーカーに + 自動的に割り振られます。これは、ワーカーが Apache と無関係に入力リクエストを + キューに溜め込む場合に有効で、キューの長さを同程度に維持しつつも、 + 最も早く処理できそうなワーカーに常にリクエストを割り振ります。

    + +

    複数のワーカーが最少の処理中リクエスト数で並んだ場合、Request Counting + アルゴリズムと同じ統計情報(と重み付け)を使って順番を決めます。 + 時間が経つと、割り振りの割合は byrequests と似たような + 傾向を示すようになるでしょう。

    + +

    このアルゴリズムは Apache HTTP サーバ 2.2.10以降で利用可能です。

    + +
    top
    +
    +

    エクスポートされる環境変数

    + +

    現在、6 つの環境変数がエクスポートされます:

    + +
    + +
    BALANCER_SESSION_STICKY
    +
    +

    現在のリクエストに使われる stickysession 値になります。 + スティッキーセッションのためのクッキー名もしくはリクエストパラメータ名です。

    +
    + + +
    BALANCER_SESSION_ROUTE
    +
    +

    現在のリクエストをパースして得られる route 値です。

    +
    + + +
    BALANCER_NAME
    +
    +

    現在のリクエストが使うバランサ名です。balancer://foo + のような値です。

    +
    + + +
    BALANCER_WORKER_NAME
    +
    +

    現在のリクエストが使うワーカー名です。http://hostA:1234 + のような値です。

    +
    + + +
    BALANCER_WORKER_ROUTE
    +
    +

    現在のリクエストが使うワーカーの route 値です。

    +
    + + +
    BALANCER_ROUTE_CHANGED
    +
    +

    セッションルートとワーカールートが一致しない時 (BALANCER_SESSION_ROUTE != BALANCER_WORKER_ROUTE) + あるいは、セッションがまだルートを確立していない時、値が 1 になります。 + スティッキーセッションを使う時、ルートの更新をクライアントに送る必要があるかを + 判断するためにこの環境変数を使えます。

    +
    +
    + +
    top
    +
    +

    バランサマネージャのサポートを有効にする

    + +

    このモジュールは mod_status のサービスを + 必要とします。 + バランサマネージャを使うと、バランサのメンバーの動的な更新が + できます。バランサマネージャを使って、バランス係数 (lbfactor) + を変更したり、メンバーを変更したり、特定のメンバーを + オフラインモードにしたりできます。

    + +

    ですから、ロードバランサ管理機能を使いたければ、 + mod_status と mod_proxy_balancer + をサーバに組み込まなければなりません。

    + +

    example.com ドメインのブラウザからロードバランサ管理機能を + 使えるようにするには、次のようなコードを httpd.conf + に追加します。

    +

    + <Location /balancer-manager>
    + SetHandler balancer-manager
    +
    + Order Deny,Allow
    + Deny from all
    + Allow from .example.com
    + </Location> +

    + +

    こうすると、http://your.server.name/balancer-manager + のページ経由で、ウェブブラウザからロードバランサマネージャに + アクセスできるようになります。

    +
    top
    +
    +

    ロードバランサのスティッキネスの詳細

    + +

    クッキーをもとにスティッキネスを使う場合、どのバックエンドに割り振るべきか + を決めるクッキーの名前を指定する必要があります。 + クッキー名は ProxyPass または + ProxySet のいずれか + に付与する stickysession 属性で設定します。 + クッキー名は大文字小文字を区別します。 + バランサはそのクッキーの値を取り出し、その値に一致する route 値の + ワーカーを探します。 + route も ProxyPass + または ProxySet + のいずれかに設定しなければいけません。 + クッキーはバックエンドによって設定されるか、あるいは + 上記の 例 のように Apache Web サーバ自身 + によって設定されます。

    +

    バックエンドの中の一部は少し異なる形式のスティッキネスクッキーを使います。 + たとえば Apache Tomcat がそうです。Tomcat は自身のインスタンス名を + セッション ID のクッキーの最後に付け加えます。この時、セッション ID + との区切り文字にドット (.) を使います。 + このため、Apache Web サーバがドットをスティッキネスクッキー値の中に見つけると、 + route を探すためにドット以降の部分のみを使うようにします。 + Tomcat 側で自身のインスタンス名を設定するには、Tomcat の設定ファイル + conf/server.xml の中の jvmRoute 属性に + 指定する必要があります。値はそれぞれの Tomcat に接続するワーカーの + route 値と一致させます。 + Tomcat およびサーブレットベースの Java Web アプリサーバが一般に使う + セッションクッキーの名前は JSESSIONID (すべて大文字) です。 + この名前は設定により変更も可能です。

    +

    スティッキネスを実装するふたつめの手段は URL エンコーディングです。 + Web サーバはリクエストの URL の中からクエリパラメータを探します。 + 探すパラメータ名は同じように stickysession 属性で指定します。 + パラメータ値と一致する route 値のワーカーを探します。 + レスポンスに含まれるすべての URL リンクを探しだし書き換えるのは簡単ではないので、 + 一般にそれぞれのリンクにクエリパラメータを付け加えるのは、 + そのコンテンツを生成したバックエンドの仕事です。 + 時には、mod_substitute を使って Web サーバにこの書き換えを + させるのが可能な場合もあります。 + ただし、パフォーマンスを落とす可能性があります。

    +

    Java 標準は URL エンコーディングを少し異なる形で実装します。 + URL のパス情報をセミコロン (;) で区切って + セッション ID を付け加えます。 + クッキーの場合と同じように、 Apache Tomcat はこのパス情報に + jvmRoute の設定値を含めます。 + Apache にこの種のパス情報を見つけさせるには、 + ProxyPass あるいは + ProxySet の + scolonpathdelim を On にします。

    +

    最後に、クッキーと URL エンコーディングの両方が指定できることを示します。 + 次の例のように、クッキー名と URL パラメータ名を垂直バー (|) + で区切って指定します:

    +

    + ProxyPass /test balancer://mycluster stickysession=JSESSIONID|jsessionid scolonpathdelim=On
    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80 route=node1
    + BalancerMember http://192.168.1.51:80 route=node2
    + </Proxy>
    +

    +

    もし同じリクエストが、クッキーとリクエストパラメータの両方のルーティング情報を + 提供した場合、リクエストパラメータのほうが使われます。

    +
    top
    +
    +

    ロードバランサのスティッキネスのトラブルシューティング

    + +

    もしアプリのセッションが失われてユーザが再ログインしなければいけないなど + スティッキネス関連のエラーに遭遇したら、 + この原因はバックエンドの応答に支障があったせいか、 + あるいは設定ミスによるものかを最初に切り分けたいでしょう。 + バックエンドの安定性に関して起きうる問題を見つけるには、 + Apache のエラーログにプロキシエラーのメッセージがないか確認してください。

    +

    設定が正しいかを確認するには、最初にスティッキネスを + クッキーと URL エンコーディングのどちらで行っているかを確認してください。 + 次に、LogFormat を変更して + アクセスログに適切なデータが残るようにするとよいでしょう。 + 次のフィールドが便利です:

    +
    +
    %{MYCOOKIE}C
    +
    MYCOOKIE という名前のクッキーの値。 + この名前は stickysession 属性の指定値と同じはずです。
    +
    %{Set-Cookie}o
    +
    これによりバックエンドがセットするクッキーをログに出せます。 + バックエンドが期待するセッションクッキーをセットしているかと、 + どんな値がセットされているかを追跡できます。
    +
    %{BALANCER_SESSION_STICKY}e
    +
    ルーティング情報を決めるために使われたクッキー名もしくは + リクエストパラメータ名。
    +
    %{BALANCER_SESSION_ROUTE}e
    +
    リクエスト内に見つかった route 値の情報
    +
    %{BALANCER_WORKER_ROUTE}e
    +
    選択されたワーカーの route 値
    +
    %{BALANCER_ROUTE_CHANGED}e
    +
    リクエストの route 値がワーカーの route 値と異なる場合に + 1 になります。つまり、リクエストはスティッキーとして + 処理されていません。
    +
    +

    セッションが失われる原因でよくあるものは、セッションタイムアウトですが、 + これは通常バックエンドのサーバで変更可能です。

    +

    ログレベルを debug 以上に設定すると、 + バランサはスティッキネス動作の詳細な情報をエラーログに書き出します。 + これはスティッキネスの問題のトラブルシューティングする簡単な手法ですが、 + 高負荷な本番サーバではログの分量が膨大になってしまうかもしれません。

    +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_balancer.xml b/docs/manual/mod/mod_proxy_balancer.xml index ee1e8c757fe..25346af1e75 100644 --- a/docs/manual/mod/mod_proxy_balancer.xml +++ b/docs/manual/mod/mod_proxy_balancer.xml @@ -4,12 +4,12 @@ +
    BALANCER_SESSION_STICKY
    +
    +

    This is assigned the stickysession value used for the current + request. It is the name of the cookie or request parameter used for sticky sessions

    +
    + + +
    BALANCER_SESSION_ROUTE
    +
    +

    This is assigned the route parsed from the current + request.

    +
    + + +
    BALANCER_NAME
    +
    +

    This is assigned the name of the balancer used for the current + request. The value is something like balancer://foo.

    +
    + + +
    BALANCER_WORKER_NAME
    +
    +

    This is assigned the name of the worker used for the current request. + The value is something like http://hostA:1234.

    +
    + + +
    BALANCER_WORKER_ROUTE
    +
    +

    This is assigned the route of the worker that will be + used for the current request.

    +
    + + +
    BALANCER_ROUTE_CHANGED
    +
    +

    This is set to 1 if the session route does not match the + worker route (BALANCER_SESSION_ROUTE != BALANCER_WORKER_ROUTE) or the + session does not yet have an established route. This can be used to + determine when/if the client needs to be sent an updated route + when sticky sessions are used.

    +
    + + +
    + +
    Enabling Balancer Manager Support

    This module requires the service of mod_status. Balancer manager enables dynamic update of balancer members. You can use balancer manager to change the balance - factor or a particular member, or put it in the off line + factor of a particular member, or put it in the off line mode.

    @@ -285,7 +407,7 @@ candidate lbstatus -= total factor mod_status and mod_proxy_balancer have to be present in the server.

    -

    To enable load balancer management for browsers from the foo.com +

    To enable load balancer management for browsers from the example.com domain add this code to your httpd.conf configuration file

    @@ -294,7 +416,7 @@ candidate lbstatus -= total factor
    Order Deny,Allow
    Deny from all
    - Allow from .foo.com
    + Allow from .example.com
    </Location>
    @@ -303,4 +425,104 @@ candidate lbstatus -= total factor http://your.server.name/balancer-manager

    +
    + Details on load balancer stickyness +

    When using cookie based stickyness, you need to configure the + name of the cookie that contains the information about which back-end + to use. This is done via the stickysession attribute added + to either ProxyPass or + ProxySet. The name of + the cookie is case-sensitive. The balancer extracts the value of the + cookie and looks for a member worker with route equal + to that value. The route must also be set in either + ProxyPass or + ProxySet. The cookie can either + be set by the back-end, or as shown in the above + example by the Apache web server itself.

    +

    Some back-ends use a slightly different form of stickyness cookie, + for instance Apache Tomcat. Tomcat adds the name of the Tomcat instance + to the end of its session id cookie, separated with a dot (.) + from the session id. Thus if the Apache web server finds a dot in the value + of the stickyness cookie, it only uses the part behind the dot to search + for the route. In order to let Tomcat know about its instance name, you + need to set the attribute jvmRoute inside the Tomcat + configuration file conf/server.xml to the value of the + route of the worker that connects to the respective Tomcat. + The name of the session cookie used by Tomcat (and more generally by Java + web applications based on servlets) is JSESSIONID + (upper case) but can be configured to something else.

    +

    The second way of implementing stickyness is URL encoding. + The web server searches for a query parameter in the URL of the request. + The name of the parameter is specified again using stickysession. + The value of the parameter is used to lookup a member worker with route + equal to that value. Since it is not easy to extract and manipulate all + URL links contained in responses, generally the work of adding the parameters + to each link is done by the back-end generating the content. + In some cases it might be feasible doing + this via the web server using mod_substitute. + This can have negative impact on performance though.

    +

    The Java standards implement URL encoding slightly different. They use + a path info appended to the URL using a semicolon (;) + as the separator and add the session id behind. As in the cookie case, + Apache Tomcat can include the configured jvmRoute in this path + info. To let Apache find this sort of path info, you need to set + scolonpathdelim to On in + ProxyPass or + ProxySet.

    +

    Finally you can support cookies and URL encoding at the same time, by + configuring the name of the cookie and the name of the URL parameter + separated by a vertical bar (|) as in the following example:

    + + ProxyPass /test balancer://mycluster stickysession=JSESSIONID|jsessionid scolonpathdelim=On
    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80 route=node1
    + BalancerMember http://192.168.1.51:80 route=node2
    + </Proxy>
    +
    +

    If the cookie and the request parameter both provide routing information + for the same request, the information from the request parameter is used.

    +
    + +
    + Troubleshooting load balancer stickyness +

    If you experience stickyness errors, e.g. users lose their + application sessions and need to login again, you first want to + check whether this is because the back-ends are sometimes unavailable + or whether your configuration is wrong. To find out about possible + stability problems with the back-ends, check your Apache error log + for proxy error messages.

    +

    To verify your configuration, first check, whether the stickyness + is based on a cookie or on URL encoding. Next step would be logging + the appropriate data in the access log by using an enhanced + LogFormat. + The following fields are useful:

    +
    +
    %{MYCOOKIE}C
    +
    The value contained in the cookie with name MYCOOKIE. + The name should be the same given in the stickysession + attribute.
    +
    %{Set-Cookie}o
    +
    This logs any cookie set by the back-end. You can track, + whether the back-end sets the session cookie you expect, and + to which value it is set.
    +
    %{BALANCER_SESSION_STICKY}e
    +
    The name of the cookie or request parameter used + to lookup the routing information.
    +
    %{BALANCER_SESSION_ROUTE}e
    +
    The route information found in the request.
    +
    %{BALANCER_WORKER_ROUTE}e
    +
    The route of the worker chosen.
    +
    %{BALANCER_ROUTE_CHANGED}e
    +
    Set to 1 if the route in the request + is different from the route of the worker, i.e. + the request couldn't be handled sticky.
    +
    +

    Common reasons for loss of session are session timeouts, + which are usually configurable on the back-end server.

    +

    The balancer also logs detailed information about handling + stickyness to the error log, if the log level is set to + debug or higher. This is an easy way to + troubleshoot stickyness problems, but the log volume might + be to high for production servers under high load.

    +
    diff --git a/docs/manual/mod/mod_proxy_balancer.xml.ja b/docs/manual/mod/mod_proxy_balancer.xml.ja index b53052872ab..48183fe521f 100644 --- a/docs/manual/mod/mod_proxy_balancer.xml.ja +++ b/docs/manual/mod/mod_proxy_balancer.xml.ja @@ -1,15 +1,15 @@ - + - + +
    BALANCER_SESSION_STICKY
    +
    +

    現在のリクエストに使われる stickysession 値になります。 + スティッキーセッションのためのクッキー名もしくはリクエストパラメータ名です。

    +
    + + +
    BALANCER_SESSION_ROUTE
    +
    +

    現在のリクエストをパースして得られる route 値です。

    +
    + + +
    BALANCER_NAME
    +
    +

    現在のリクエストが使うバランサ名です。balancer://foo + のような値です。

    +
    + + +
    BALANCER_WORKER_NAME
    +
    +

    現在のリクエストが使うワーカー名です。http://hostA:1234 + のような値です。

    +
    + + +
    BALANCER_WORKER_ROUTE
    +
    +

    現在のリクエストが使うワーカーの route 値です。

    +
    + + +
    BALANCER_ROUTE_CHANGED
    +
    +

    セッションルートとワーカールートが一致しない時 (BALANCER_SESSION_ROUTE != BALANCER_WORKER_ROUTE) + あるいは、セッションがまだルートを確立していない時、値が 1 になります。 + スティッキーセッションを使う時、ルートの更新をクライアントに送る必要があるかを + 判断するためにこの環境変数を使えます。

    +
    + + +
    + +
    + バランサマネージャのサポートを有効にする +

    このモジュールは mod_status のサービスを + 必要とします。 + バランサマネージャを使うと、バランサのメンバーの動的な更新が + できます。バランサマネージャを使って、バランス係数 (lbfactor) + を変更したり、メンバーを変更したり、特定のメンバーを + オフラインモードにしたりできます。

    + +

    ですから、ロードバランサ管理機能を使いたければ、 + mod_status と mod_proxy_balancer + をサーバに組み込まなければなりません。

    + +

    example.com ドメインのブラウザからロードバランサ管理機能を + 使えるようにするには、次のようなコードを httpd.conf + に追加します。

    <Location /balancer-manager>
    SetHandler balancer-manager

    Order Deny,Allow
    Deny from all
    - Allow from .foo.com
    + Allow from .example.com
    </Location>
    -

    $B$3$&$9$k$H!"(Bhttp://your.server.name/balancer-manager - $B$N%Z!<%87PM3$G!"%&%'%V%V%i%&%6$+$i%m!<%I%P%i%s%5%^%M!<%8%c$K(B - $B%"%/%;%9$G$-$k$h$&$K$J$j$^$9!#(B

    +

    こうすると、http://your.server.name/balancer-manager + のページ経由で、ウェブブラウザからロードバランサマネージャに + アクセスできるようになります。

    +
    + +
    + ロードバランサのスティッキネスの詳細 +

    クッキーをもとにスティッキネスを使う場合、どのバックエンドに割り振るべきか + を決めるクッキーの名前を指定する必要があります。 + クッキー名は ProxyPass または + ProxySet のいずれか + に付与する stickysession 属性で設定します。 + クッキー名は大文字小文字を区別します。 + バランサはそのクッキーの値を取り出し、その値に一致する route 値の + ワーカーを探します。 + route も ProxyPass + または ProxySet + のいずれかに設定しなければいけません。 + クッキーはバックエンドによって設定されるか、あるいは + 上記の 例 のように Apache Web サーバ自身 + によって設定されます。

    +

    バックエンドの中の一部は少し異なる形式のスティッキネスクッキーを使います。 + たとえば Apache Tomcat がそうです。Tomcat は自身のインスタンス名を + セッション ID のクッキーの最後に付け加えます。この時、セッション ID + との区切り文字にドット (.) を使います。 + このため、Apache Web サーバがドットをスティッキネスクッキー値の中に見つけると、 + route を探すためにドット以降の部分のみを使うようにします。 + Tomcat 側で自身のインスタンス名を設定するには、Tomcat の設定ファイル + conf/server.xml の中の jvmRoute 属性に + 指定する必要があります。値はそれぞれの Tomcat に接続するワーカーの + route 値と一致させます。 + Tomcat およびサーブレットベースの Java Web アプリサーバが一般に使う + セッションクッキーの名前は JSESSIONID (すべて大文字) です。 + この名前は設定により変更も可能です。

    +

    スティッキネスを実装するふたつめの手段は URL エンコーディングです。 + Web サーバはリクエストの URL の中からクエリパラメータを探します。 + 探すパラメータ名は同じように stickysession 属性で指定します。 + パラメータ値と一致する route 値のワーカーを探します。 + レスポンスに含まれるすべての URL リンクを探しだし書き換えるのは簡単ではないので、 + 一般にそれぞれのリンクにクエリパラメータを付け加えるのは、 + そのコンテンツを生成したバックエンドの仕事です。 + 時には、mod_substitute を使って Web サーバにこの書き換えを + させるのが可能な場合もあります。 + ただし、パフォーマンスを落とす可能性があります。

    +

    Java 標準は URL エンコーディングを少し異なる形で実装します。 + URL のパス情報をセミコロン (;) で区切って + セッション ID を付け加えます。 + クッキーの場合と同じように、 Apache Tomcat はこのパス情報に + jvmRoute の設定値を含めます。 + Apache にこの種のパス情報を見つけさせるには、 + ProxyPass あるいは + ProxySet の + scolonpathdelim を On にします。

    +

    最後に、クッキーと URL エンコーディングの両方が指定できることを示します。 + 次の例のように、クッキー名と URL パラメータ名を垂直バー (|) + で区切って指定します:

    + + ProxyPass /test balancer://mycluster stickysession=JSESSIONID|jsessionid scolonpathdelim=On
    + <Proxy balancer://mycluster>
    + BalancerMember http://192.168.1.50:80 route=node1
    + BalancerMember http://192.168.1.51:80 route=node2
    + </Proxy>
    +
    +

    もし同じリクエストが、クッキーとリクエストパラメータの両方のルーティング情報を + 提供した場合、リクエストパラメータのほうが使われます。

    +
    + ロードバランサのスティッキネスのトラブルシューティング +

    もしアプリのセッションが失われてユーザが再ログインしなければいけないなど + スティッキネス関連のエラーに遭遇したら、 + この原因はバックエンドの応答に支障があったせいか、 + あるいは設定ミスによるものかを最初に切り分けたいでしょう。 + バックエンドの安定性に関して起きうる問題を見つけるには、 + Apache のエラーログにプロキシエラーのメッセージがないか確認してください。

    +

    設定が正しいかを確認するには、最初にスティッキネスを + クッキーと URL エンコーディングのどちらで行っているかを確認してください。 + 次に、LogFormat を変更して + アクセスログに適切なデータが残るようにするとよいでしょう。 + 次のフィールドが便利です:

    +
    +
    %{MYCOOKIE}C
    +
    MYCOOKIE という名前のクッキーの値。 + この名前は stickysession 属性の指定値と同じはずです。
    +
    %{Set-Cookie}o
    +
    これによりバックエンドがセットするクッキーをログに出せます。 + バックエンドが期待するセッションクッキーをセットしているかと、 + どんな値がセットされているかを追跡できます。
    +
    %{BALANCER_SESSION_STICKY}e
    +
    ルーティング情報を決めるために使われたクッキー名もしくは + リクエストパラメータ名。
    +
    %{BALANCER_SESSION_ROUTE}e
    +
    リクエスト内に見つかった route 値の情報
    +
    %{BALANCER_WORKER_ROUTE}e
    +
    選択されたワーカーの route 値
    +
    %{BALANCER_ROUTE_CHANGED}e
    +
    リクエストの route 値がワーカーの route 値と異なる場合に + 1 になります。つまり、リクエストはスティッキーとして + 処理されていません。
    +
    +

    セッションが失われる原因でよくあるものは、セッションタイムアウトですが、 + これは通常バックエンドのサーバで変更可能です。

    +

    ログレベルを debug 以上に設定すると、 + バランサはスティッキネス動作の詳細な情報をエラーログに書き出します。 + これはスティッキネスの問題のトラブルシューティングする簡単な手法ですが、 + 高負荷な本番サーバではログの分量が膨大になってしまうかもしれません。

    +
    diff --git a/docs/manual/mod/mod_proxy_balancer.xml.meta b/docs/manual/mod/mod_proxy_balancer.xml.meta index 086a80711d3..fe444274b20 100644 --- a/docs/manual/mod/mod_proxy_balancer.xml.meta +++ b/docs/manual/mod/mod_proxy_balancer.xml.meta @@ -1,12 +1,13 @@ + - + mod_proxy_balancer /mod/ .. en - ja + ja diff --git a/docs/manual/mod/mod_proxy_connect.html b/docs/manual/mod/mod_proxy_connect.html index 315f683c7f2..05c12719b19 100644 --- a/docs/manual/mod/mod_proxy_connect.html +++ b/docs/manual/mod/mod_proxy_connect.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_proxy_connect.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_proxy_connect.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy_connect.html.en b/docs/manual/mod/mod_proxy_connect.html.en index 44765e8a481..aff2270c389 100644 --- a/docs/manual/mod/mod_proxy_connect.html.en +++ b/docs/manual/mod/mod_proxy_connect.html.en @@ -1,33 +1,41 @@ - -mod_proxy_connect - Apache HTTP Server +mod_proxy_connect - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_proxy_connect

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_proxy_connect

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + ja 

    - -
    Description:mod_proxy extension for CONNECT request handling
    Status:Extension
    Module Identifier:proxy_connect_module
    Source File:proxy_connect.c
    +Module Identifier:proxy_connect_module +Source File:mod_proxy_connect.c

    Summary

    This module requires the service of mod_proxy. It provides support for the CONNECT @@ -38,6 +46,11 @@ requests, mod_proxy and mod_proxy_connect have to be present in the server.

    +

    CONNECT is also used, when the server needs to send an HTTPS request + through a forward proxy. In this case the server acts as a CONNECT client. + This functionality is part of mod_proxy and + mod_proxy_connect is not needed in this case.

    +

    Warning

    Do not enable proxying until you have secured your server. Open proxy servers are dangerous both to your network and to the Internet at @@ -51,12 +64,34 @@

    +
    -

    Available Languages:  en 

    -
    +

    Available Languages:  en  | + ja 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_connect.html.ja.utf8 b/docs/manual/mod/mod_proxy_connect.html.ja.utf8 new file mode 100644 index 00000000000..ee614d223f7 --- /dev/null +++ b/docs/manual/mod/mod_proxy_connect.html.ja.utf8 @@ -0,0 +1,96 @@ + + + + + +mod_proxy_connect - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_proxy_connect

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:CONNECT リクエストを扱う +mod_proxy 用の拡張
    ステータス:Extension
    モジュール識別子:proxy_connect_module
    ソースファイル:mod_proxy_connect.c
    +

    概要

    + +

    本モジュールには mod_proxy が必要です。 + CONNECT HTTP メソッドをサポートします。 + このメソッドは主にプロキシに SSL リクエストを通す + (訳注: SSLトンネリング)に使われます。

    + +

    CONNECT リクエストを扱えるようにするには + mod_proxy と mod_proxy_connect + をサーバに組み込む必要があります。

    + +

    警告

    +

    安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    +

    ディレクティブ

    +

    このモジュールにディレクティブはありません。

    +

    参照

    +
    + +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_connect.xml b/docs/manual/mod/mod_proxy_connect.xml index 332ff270326..7a3aee6eeef 100644 --- a/docs/manual/mod/mod_proxy_connect.xml +++ b/docs/manual/mod/mod_proxy_connect.xml @@ -4,12 +4,12 @@ + + + + + +mod_proxy_connect +CONNECT リクエストを扱う +mod_proxy 用の拡張 +Extension +mod_proxy_connect.c +proxy_connect_module + + +

    本モジュールには mod_proxy が必要です。 + CONNECT HTTP メソッドをサポートします。 + このメソッドは主にプロキシに SSL リクエストを通す + SSLトンネリングに使われます。

    + +

    CONNECT リクエストを扱えるようにするには + mod_proxy と mod_proxy_connect + をサーバに組み込む必要があります。

    + + 警告 +

    安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    +AllowCONNECT +mod_proxy + +
    diff --git a/docs/manual/mod/mod_proxy_connect.xml.meta b/docs/manual/mod/mod_proxy_connect.xml.meta index a5847ae1e86..dcc3b7c1a62 100644 --- a/docs/manual/mod/mod_proxy_connect.xml.meta +++ b/docs/manual/mod/mod_proxy_connect.xml.meta @@ -1,11 +1,13 @@ + - + mod_proxy_connect /mod/ .. en + ja diff --git a/docs/manual/mod/mod_proxy_ftp.html b/docs/manual/mod/mod_proxy_ftp.html index a0f912a252b..8b2bd09e247 100644 --- a/docs/manual/mod/mod_proxy_ftp.html +++ b/docs/manual/mod/mod_proxy_ftp.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_proxy_ftp.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_proxy_ftp.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy_ftp.html.en b/docs/manual/mod/mod_proxy_ftp.html.en index 25840d8b660..342e6cad9ec 100644 --- a/docs/manual/mod/mod_proxy_ftp.html.en +++ b/docs/manual/mod/mod_proxy_ftp.html.en @@ -1,33 +1,41 @@ - -mod_proxy_ftp - Apache HTTP Server +mod_proxy_ftp - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_proxy_ftp

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_proxy_ftp

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + ja 

    - -
    Description:FTP support module for mod_proxy
    Status:Extension
    Module Identifier:proxy_ftp_module
    Source File:proxy_ftp.c
    +Module Identifier:proxy_ftp_module +Source File:mod_proxy_ftp.c

    Summary

    This module requires the service of mod_proxy. It provides support for the proxying @@ -44,18 +52,142 @@ large.

    - +
    top
    +
    +

    Why doesn't file type xxx + download via FTP?

    +

    You probably don't have that particular file type defined as + application/octet-stream in your proxy's mime.types + configuration file. A useful line can be

    + +
    application/octet-stream   bin dms lha lzh exe class tgz taz
    +

    Alternatively you may prefer to default everything to binary:

    +
    DefaultType application/octet-stream
    +
    top
    +
    +

    How can I force an FTP ASCII download of + File xxx?

    +

    In the rare situation where you must download a specific file using the + FTP ASCII transfer method (while the default transfer is in + binary mode), you can override mod_proxy's + default by suffixing the request with ;type=a to force an + ASCII transfer. (FTP Directory listings are always executed in ASCII mode, + however.)

    +
    top
    +
    +

    How can I do FTP upload?

    +

    Currently, only GET is supported for FTP in mod_proxy. You can + of course use HTTP upload (POST or PUT) through an Apache proxy.

    +
    top
    +
    +

    How can I access FTP files outside + of my home directory?

    +

    An FTP URI is interpreted relative to the home directory of the user + who is logging in. Alas, to reach higher directory levels you cannot + use /../, as the dots are interpreted by the browser and not actually + sent to the FTP server. To address this problem, the so called Squid + %2f hack was implemented in the Apache FTP proxy; it is a + solution which is also used by other popular proxy servers like the Squid Proxy Cache. By + prepending /%2f to the path of your request, you can make + such a proxy change the FTP starting directory to / (instead + of the home directory). For example, to retrieve the file + /etc/motd, you would use the URL:

    + +

    + ftp://user@host/%2f/etc/motd +

    +
    top
    +
    +

    How can I hide the FTP cleartext password + in my browser's URL line?

    +

    To log in to an FTP server by username and password, Apache uses + different strategies. In absense of a user name and password in the URL + altogether, Apache sends an anonymous login to the FTP server, + i.e.,

    + +

    + user: anonymous
    + password: apache_proxy@ +

    + +

    This works for all popular FTP servers which are configured for + anonymous access.

    + +

    For a personal login with a specific username, you can embed the user + name into the URL, like in:

    +

    + ftp://username@host/myfile +

    + +

    If the FTP server asks for a password when given this username (which + it should), then Apache will reply with a 401 (Authorization + required) response, which causes the Browser to pop up the + username/password dialog. Upon entering the password, the connection + attempt is retried, and if successful, the requested resource is + presented. The advantage of this procedure is that your browser does not + display the password in cleartext (which it would if you had used

    + +

    + ftp://username:password@host/myfile +

    + +

    in the first place).

    + +

    Note

    +

    The password which is transmitted in such a way is not encrypted on + its way. It travels between your browser and the Apache proxy server in + a base64-encoded cleartext string, and between the Apache proxy and the + FTP server as plaintext. You should therefore think twice before + accessing your FTP server via HTTP (or before accessing your personal + files via FTP at all!) When using insecure channels, an eavesdropper + might intercept your password on its way.

    +
    +
    -

    Available Languages:  en 

    -
    +

    Available Languages:  en  | + ja 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_ftp.html.ja.utf8 b/docs/manual/mod/mod_proxy_ftp.html.ja.utf8 new file mode 100644 index 00000000000..28a126d5a89 --- /dev/null +++ b/docs/manual/mod/mod_proxy_ftp.html.ja.utf8 @@ -0,0 +1,194 @@ + + + + + +mod_proxy_ftp - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_proxy_ftp

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:mod_proxy のための FTP サポートモジュール
    ステータス:Extension
    モジュール識別子:proxy_ftp_module
    ソースファイル:mod_proxy_ftp.c
    +

    概要

    + +

    本モジュールには mod_proxy が必要です。 + 本モジュールは FTP サイトへのプロキシ機能を提供します。 + 現状、 FTP サポートは GET メソッドに限定されていることに注意してください。

    + +

    FTP プロキシリクエストを扱うためには、mod_proxy + と mod_proxy_ftpが サーバに組み込まれて + いなければいけません。

    + +

    警告

    +

    + 安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    + +
    top
    +
    +

    なぜファイルタイプ xxx + は FTP ダウンロードできないのでしょう?

    +

    おそらく、プロキシの mime.types 設定ファイルでそのファイルタイプを + application/octet-stream として定義していないのでしょう。 + 以下の行が便利でしょう。

    + +
    application/octet-stream   bin dms lha lzh exe class tgz taz
    +

    デフォルトで全てをバイナリにするのもいいかもしれません:

    +
    DefaultType application/octet-stream
    +
    top
    +
    +

    ファイル xxx を ASCII モードで + FTP ダウンロードさせるにはどうすればいいのでしょう?

    +

    稀に、特定のファイルを FTP の ASCII 転送モードでダウンロードしなければ + ならない場合があります (なお、デフォルトの転送モードは binary です)。 + この場合、リクエストの末尾に ;type=a を加えることで + mod_proxy のデフォルト動作を変更して、 ASCII 転送モードにできます。 + (一方、 FTP のディレクトリ一覧は常に ASCII モードです。)

    +
    top
    +
    +

    FTP アップロードはできますか?

    +

    現状、 mod_proxy は FTP の GET のみサポートしています。 + もちろん、 Apache プロキシで HTTP アップロード (POST または PUT) + はできます。

    +
    top
    +
    +

    ホームディレクトリ外のファイルに FTP + アクセスするにはどうすればよいでしょうか?

    +

    FTP の URI はログイン中のユーザのホームディレクトリの相対パスとして + 解釈されます。より上位のディレクトリに行くために /../ を使っても無駄です。 + と言うのも、ドットふたつはブラウザが解釈するだけで、実際に FTP サーバには + 送られないからです。この問題に対して、 Apache の FTP プロキシは + いわゆる Squid %2f hack を実装しています; + Squid Proxy Cache などの + 他の有名なプロキシサーバも採用している解決方法です。 + リクエストのパスの先頭に /%2f をつけると、これらのプロキシ + は FTP のディレクトリを / 開始にします (ホームディレクトリではなく)。 + 例えば、/etc/motd ファイルを取得するには、次の URL を + 使えばよいでしょう:

    + +

    + ftp://user@host/%2f/etc/motd +

    +
    top
    +
    +

    ブラウザの URL 欄に FTP のパスワードがそのまま + 載らないようにするにはどうすればよいでしょうか?

    +

    FTP サーバにユーザ名とパスワードを使ってログインするために、 Apache + は異なる戦略を使います。 URL にユーザ名もパスワードも無ければ、 Apache + は FTP サーバに匿名 (anonymous) ログインしようとします。 + 例

    + +

    + user: anonymous
    + password: apache_proxy@ +

    + +

    匿名アクセスを設定したすべての有名な FTP サーバでこれは動作します。

    + +

    特定のユーザ名でログインするために、 URL に次のようにユーザ名を埋め込めます:

    + +

    + ftp://username@host/myfile +

    + +

    FTP サーバがこのユーザ名に対してパスワードを求めると (そうあるべきです) 、 + Apache は 401 (Authorization required) レスポンスを返します。 + これによりブラウザはユーザ名とパスワードを求めるダイアログ画面をポップアップします。 + パスワードを入力すると、もう一度接続しなおし、認証が成功すると、 + 要求していたリソースが現れます。このやりとりの利点は、ブラウザがパスワードを + そのまま表示しないことです。もし最初に次の URL を使っていると

    + +

    + ftp://username:password@host/myfile +

    + +

    パスワードがそのまま見えてしまいます。

    + +

    注意

    +

    このように送信するパスワードはネットワーク上は暗号化されません。 + ブラウザと Apache プロキシサーバの間は base64 エンコードした生パスワードで、 + Apache プロキシサーバと FTP サーバの間はプレインテキストです。 + このため、 HTTP 経由で FTP サーバにアクセスする時 (とにかく FTP で個人的な + ファイルにアクセスする時 ) 、倍の慎重さが求められます。 + 安全でないネットワークを使っている場合、経路上でパスワードを盗み取られる + 可能性があります。

    +
    +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_ftp.xml b/docs/manual/mod/mod_proxy_ftp.xml index db6e09ebec3..0a487e75d4e 100644 --- a/docs/manual/mod/mod_proxy_ftp.xml +++ b/docs/manual/mod/mod_proxy_ftp.xml @@ -4,12 +4,12 @@ + +
    How can I force an FTP ASCII download of + File <var>xxx</var>? +

    In the rare situation where you must download a specific file using the + FTP ASCII transfer method (while the default transfer is in + binary mode), you can override mod_proxy's + default by suffixing the request with ;type=a to force an + ASCII transfer. (FTP Directory listings are always executed in ASCII mode, + however.)

    +
    + +
    How can I do FTP upload? +

    Currently, only GET is supported for FTP in mod_proxy. You can + of course use HTTP upload (POST or PUT) through an Apache proxy.

    +
    + +
    How can I access FTP files outside + of my home directory? +

    An FTP URI is interpreted relative to the home directory of the user + who is logging in. Alas, to reach higher directory levels you cannot + use /../, as the dots are interpreted by the browser and not actually + sent to the FTP server. To address this problem, the so called Squid + %2f hack was implemented in the Apache FTP proxy; it is a + solution which is also used by other popular proxy servers like the Squid Proxy Cache. By + prepending /%2f to the path of your request, you can make + such a proxy change the FTP starting directory to / (instead + of the home directory). For example, to retrieve the file + /etc/motd, you would use the URL:

    + + + ftp://user@host/%2f/etc/motd + +
    + +
    How can I hide the FTP cleartext password + in my browser's URL line? +

    To log in to an FTP server by username and password, Apache uses + different strategies. In absense of a user name and password in the URL + altogether, Apache sends an anonymous login to the FTP server, + i.e.,

    + + + user: anonymous
    + password: apache_proxy@ +
    + +

    This works for all popular FTP servers which are configured for + anonymous access.

    + +

    For a personal login with a specific username, you can embed the user + name into the URL, like in:

    + + + ftp://username@host/myfile + + +

    If the FTP server asks for a password when given this username (which + it should), then Apache will reply with a 401 (Authorization + required) response, which causes the Browser to pop up the + username/password dialog. Upon entering the password, the connection + attempt is retried, and if successful, the requested resource is + presented. The advantage of this procedure is that your browser does not + display the password in cleartext (which it would if you had used

    + + + ftp://username:password@host/myfile + + +

    in the first place).

    + + Note +

    The password which is transmitted in such a way is not encrypted on + its way. It travels between your browser and the Apache proxy server in + a base64-encoded cleartext string, and between the Apache proxy and the + FTP server as plaintext. You should therefore think twice before + accessing your FTP server via HTTP (or before accessing your personal + files via FTP at all!) When using insecure channels, an eavesdropper + might intercept your password on its way.

    +
    +
    + + diff --git a/docs/manual/mod/mod_proxy_ftp.xml.ja b/docs/manual/mod/mod_proxy_ftp.xml.ja new file mode 100644 index 00000000000..23ef6648853 --- /dev/null +++ b/docs/manual/mod/mod_proxy_ftp.xml.ja @@ -0,0 +1,143 @@ + + + + + + + + + +mod_proxy_ftp +mod_proxy のための FTP サポートモジュール +Extension +mod_proxy_ftp.c +proxy_ftp_module + + +

    本モジュールには mod_proxy が必要です。 + 本モジュールは FTP サイトへのプロキシ機能を提供します。 + 現状、 FTP サポートは GET メソッドに限定されていることに注意してください。

    + +

    FTP プロキシリクエストを扱うためには、mod_proxy + と mod_proxy_ftpが サーバに組み込まれて + いなければいけません。

    + + 警告 +

    + 安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    +mod_proxy + +
    なぜファイルタイプ <var>xxx</var> + は FTP ダウンロードできないのでしょう? +

    おそらく、プロキシの mime.types 設定ファイルでそのファイルタイプを + application/octet-stream として定義していないのでしょう。 + 以下の行が便利でしょう。

    + + +
    application/octet-stream   bin dms lha lzh exe class tgz taz
    +
    +

    デフォルトで全てをバイナリにするのもいいかもしれません:

    + +
    DefaultType application/octet-stream
    +
    +
    + +
    ファイル <var>xxx</var> を ASCII モードで + FTP ダウンロードさせるにはどうすればいいのでしょう? +

    稀に、特定のファイルを FTP の ASCII 転送モードでダウンロードしなければ + ならない場合があります (なお、デフォルトの転送モードは binary です)。 + この場合、リクエストの末尾に ;type=a を加えることで + mod_proxy のデフォルト動作を変更して、 ASCII 転送モードにできます。 + (一方、 FTP のディレクトリ一覧は常に ASCII モードです。)

    +
    + +
    FTP アップロードはできますか? +

    現状、 mod_proxy は FTP の GET のみサポートしています。 + もちろん、 Apache プロキシで HTTP アップロード (POST または PUT) + はできます。

    +
    + +
    ホームディレクトリ外のファイルに FTP + アクセスするにはどうすればよいでしょうか? +

    FTP の URI はログイン中のユーザのホームディレクトリの相対パスとして + 解釈されます。より上位のディレクトリに行くために /../ を使っても無駄です。 + と言うのも、ドットふたつはブラウザが解釈するだけで、実際に FTP サーバには + 送られないからです。この問題に対して、 Apache の FTP プロキシは + いわゆる Squid %2f hack を実装しています; + Squid Proxy Cache などの + 他の有名なプロキシサーバも採用している解決方法です。 + リクエストのパスの先頭に /%2f をつけると、これらのプロキシ + は FTP のディレクトリを / 開始にします (ホームディレクトリではなく)。 + 例えば、/etc/motd ファイルを取得するには、次の URL を + 使えばよいでしょう:

    + + + ftp://user@host/%2f/etc/motd + +
    + +
    ブラウザの URL 欄に FTP のパスワードがそのまま + 載らないようにするにはどうすればよいでしょうか? +

    FTP サーバにユーザ名とパスワードを使ってログインするために、 Apache + は異なる戦略を使います。 URL にユーザ名もパスワードも無ければ、 Apache + は FTP サーバに匿名 (anonymous) ログインしようとします。 + 例

    + + + user: anonymous
    + password: apache_proxy@ +
    + +

    匿名アクセスを設定したすべての有名な FTP サーバでこれは動作します。

    + +

    特定のユーザ名でログインするために、 URL に次のようにユーザ名を埋め込めます:

    + + + ftp://username@host/myfile + + +

    FTP サーバがこのユーザ名に対してパスワードを求めると (そうあるべきです) 、 + Apache は 401 (Authorization required) レスポンスを返します。 + これによりブラウザはユーザ名とパスワードを求めるダイアログ画面をポップアップします。 + パスワードを入力すると、もう一度接続しなおし、認証が成功すると、 + 要求していたリソースが現れます。このやりとりの利点は、ブラウザがパスワードを + そのまま表示しないことです。もし最初に次の URL を使っていると

    + + + ftp://username:password@host/myfile + + +

    パスワードがそのまま見えてしまいます。

    + + 注意 +

    このように送信するパスワードはネットワーク上は暗号化されません。 + ブラウザと Apache プロキシサーバの間は base64 エンコードした生パスワードで、 + Apache プロキシサーバと FTP サーバの間はプレインテキストです。 + このため、 HTTP 経由で FTP サーバにアクセスする時 (とにかく FTP で個人的な + ファイルにアクセスする時 ) 、倍の慎重さが求められます。 + 安全でないネットワークを使っている場合、経路上でパスワードを盗み取られる + 可能性があります。

    +
    +
    + + +
    diff --git a/docs/manual/mod/mod_proxy_ftp.xml.meta b/docs/manual/mod/mod_proxy_ftp.xml.meta index 2941afd362d..778bc6a91e8 100644 --- a/docs/manual/mod/mod_proxy_ftp.xml.meta +++ b/docs/manual/mod/mod_proxy_ftp.xml.meta @@ -1,11 +1,13 @@ + - + mod_proxy_ftp /mod/ .. en + ja diff --git a/docs/manual/mod/mod_proxy_http.html b/docs/manual/mod/mod_proxy_http.html index 5be291027e7..d244a3efb19 100644 --- a/docs/manual/mod/mod_proxy_http.html +++ b/docs/manual/mod/mod_proxy_http.html @@ -1,3 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_proxy_http.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_proxy_http.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_proxy_http.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy_http.html.en b/docs/manual/mod/mod_proxy_http.html.en index 95ba88fff58..4a7c5a1b2e9 100644 --- a/docs/manual/mod/mod_proxy_http.html.en +++ b/docs/manual/mod/mod_proxy_http.html.en @@ -1,37 +1,46 @@ - -mod_proxy_http - Apache HTTP Server +mod_proxy_http - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_proxy_http

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_proxy_http

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + fr  | + ja 

    - -
    Description:HTTP support module for mod_proxy
    Status:Extension
    Module Identifier:proxy_http_module
    Source File:proxy_http.c
    +Module Identifier:proxy_http_module +Source File:mod_proxy_http.c

    Summary

    This module requires the service of mod_proxy. It provides the features used for - proxying HTTP requests. mod_proxy_http + proxying HTTP and HTTPS requests. mod_proxy_http supports HTTP/0.9, HTTP/1.0 and HTTP/1.1. It does not provide any caching abilities. If you want to set up a caching proxy, you might want to use the additional service of the @@ -47,19 +56,108 @@ large.

    -

    Directives

    +

    Topics

    +

    Directives

    This module provides no directives.

    See also

    - +
    +
    top
    +
    +

    Environment Variables

    +

    In addition to the configuration directives that control the + behaviour of mod_proxy, there are a number of + environment variables that control the HTTP protocol + provider. Environment variables below that don't specify specific values + are enabled when set to any value.

    +
    +
    proxy-sendextracrlf
    +
    Causes proxy to send an extra CR-LF newline on the end of a + request. This is a workaround for a bug in some browsers.
    +
    force-proxy-request-1.0
    +
    Forces the proxy to send requests to the backend as HTTP/1.0 + and disables HTTP/1.1 features.
    +
    proxy-nokeepalive
    +
    Forces the proxy to close the backend connection after + each request.
    +
    proxy-chain-auth
    +
    If the proxy requires authentication, it will read and + consume the proxy authentication credentials sent by the client. + With proxy-chain-auth it will also forward + the credentials to the next proxy in the chain. This may + be necessary if you have a chain of proxies that share + authentication information. Security Warning: + Do not set this unless you know you need it, as it forwards + sensitive information!
    +
    proxy-sendcl
    +
    HTTP/1.0 required all HTTP requests that include a body + (e.g. POST requests) to include a Content-Length + header. This environment variable forces the Apache proxy to + send this header to the backend server, regardless of what the + Client sent to the proxy. It ensures compatibility when + proxying for an HTTP/1.0 or unknown backend. However, it + may require the entire request to be buffered by the proxy, + so it becomes very inefficient for large requests.
    +
    proxy-sendchunks or proxy-sendchunked
    +
    This is the opposite of proxy-sendcl. It allows + request bodies to be sent to the backend using chunked transfer + encoding. This allows the request to be efficiently streamed, + but requires that the backend server supports HTTP/1.1.
    +
    proxy-interim-response
    +
    This variable takes values RFC or + Suppress. Earlier httpd versions would suppress + HTTP interim (1xx) responses sent from the backend. This is + technically a violation of the HTTP protocol. In practice, + if a backend sends an interim response, it may itself be + extending the protocol in a manner we know nothing about, + or just broken. So this is now configurable: set + proxy-interim-response RFC to be fully protocol + compliant, or proxy-interim-response Suppress + to suppress interim responses.
    +
    proxy-initial-not-pooled
    +
    If this variable is set no pooled connection will be reused + if the client connection is an initial connection. This avoids + the "proxy: error reading status line from remote server" error message + caused by the race condition that the backend server closed the + pooled connection after the connection check by the proxy and + before data sent by the proxy reached the backend. It has to be + kept in mind that setting this variable downgrades performance, + especially with HTTP/1.0 clients. +
    +
    +
    -

    Available Languages:  en 

    -
    +

    Available Languages:  en  | + fr  | + ja 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_http.html.fr b/docs/manual/mod/mod_proxy_http.html.fr new file mode 100644 index 00000000000..bb7872f5d5d --- /dev/null +++ b/docs/manual/mod/mod_proxy_http.html.fr @@ -0,0 +1,184 @@ + + + + + +mod_proxy_http - Serveur Apache HTTP Version 2.2 + + + + + + + + +
    <-
    + +
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Module Apache mod_proxy_http

    +
    +

    Langues Disponibles:  en  | + fr  | + ja 

    +
    + + + +
    Description:Module fournissant le support HTTP à +mod_proxy
    Statut:Extension
    Identificateur de Module:proxy_http_module
    Fichier Source:mod_proxy_http.c
    +

    Sommaire

    + +

    Pour pouvoir fonctionner, ce module requiert le + chargement de mod_proxy. Il fournit le support du + mandatement des requêtes HTTP et HTTPS. mod_proxy_http + supporte HTTP/0.9, HTTP/1.0 et HTTP/1.1. Il ne fournit + aucune fonctionnalité de mise en cache. Si vous souhaitez + mettre en oeuvre un mandataire qui assure aussi les fonctions de + mise en cache, vous devez utiliser les services du module + mod_cache.

    + +

    Ainsi, pour pouvoir traiter les requêtes HTTP mandatées, + mod_proxy, et mod_proxy_http + doivent être chargés dans le serveur.

    + +

    Avertissement

    +

    N'activez pas la fonctionnalité de mandataire avant d'avoir sécurisé votre serveur. Les + serveurs mandataires ouverts sont dangereux non seulement pour + votre réseau, mais aussi pour l'Internet au sens large.

    +
    +
    +

    Sujets

    +

    Directives

    +

    Ce module ne fournit aucune directive.

    +

    Voir aussi

    +
    +
    top
    +
    +

    Variables d'environnement

    +

    Outre les directives de configuration qui contrôlent le + comportement de mod_proxy, plusieurs variables + d'environnement permettent de contrôler le fournisseur du + protocole HTTP. Parmi les variables suivantes, celle qui ne + nécessitent pas de valeur particulière sont définies quelle que soit + la valeur qu'on leur affecte.

    +
    +
    proxy-sendextracrlf
    +
    Provoque l'envoi par le mandataire d'une nouvelle ligne + CR-LF supplémentaire à la fin de la requête. Cei constitue un + moyen de contournement d'une bogue de certains + navigateurs.
    +
    force-proxy-request-1.0
    +
    Force le mandataire à envoyer des requêtes vers le serveur + cible selon le protocole HTTP/1.0 et désactive les + fonctionnalités propres à HTTP/1.1.
    +
    proxy-nokeepalive
    +
    Force le mandataire à fermer la connexion avec le serveur + cible après chaque requête.
    +
    proxy-chain-auth
    +
    Si le mandataire requiert une authentification, il va lire + et exploiter les données d'authentification pour mandataire + envoyées par le client. Si proxy-chain-auth est + définie, il va aussi faire suivre ces données vers le + mandataire suivant dans la chaîne. Ceci peut s'avérer nécessaire + si une chaîne de mandataires partagent les informations + d'authentification. + Avertissement concernant la sécurité : + Ne définissez cette variable que si vous êtes sûr d'en avoir + besoin, car elle peut provoquer la divulgation d'informations + sensibles !
    +
    proxy-sendcl
    +
    Avec HTTP/1.0, toutes les requêtes qui possèdent un corps + (par exemple les requêtes POST) doivent comporter un en-tête + Content-Length. Cette variable d'environnement force + le mandataire Apache à envoyer cet en-tête au serveur cible, + sans tenir compte de ce que lui a envoyé le client. Ceci permet + d'assurer la compatibilité lorsqu'on mandate un serveur cible + mettant en oeuvre un protocole de type HTTP/1.0 ou inconnu. Elle + peut cependant nécessiter la mise en tampon de l'intégralité de + la requête par le mandataire, ce qui s'avère très inefficace + pour les requêtes de grande taille.
    +
    proxy-sendchunks ou proxy-sendchunked
    +
    Cette variable constitue l'opposé de + proxy-sendcl. Elle permet la transmission des corps + de requêtes vers le serveur cible en utilisant un codage de + transfert fractionné. Ceci permet une transmission des requêtes + plus efficace, mais nécessite que le serveur cible supporte le + protocole HTTP/1.1.
    +
    proxy-interim-response
    +
    Cette variable peut prendre les valeurs RFC ou + Suppress. Les versions précédentes de httpd + supprimaient les réponses intermédiaires HTTP (1xx) envoyées par + le serveur cible. En pratique, si un serveur cible envoie une + réponse intermédiaire, il se peut qu'il étende lui-même le + protocole d'une manière dont nous n'avons pas connaissance, ou + tout simplement non conforme. Le comportement du mandataire est + donc maintenant configurable : définissez + proxy-interim-response RFC pour être totalement + compatible avec le protocole, ou proxy-interim-response + Suppress pour supprimer les réponses intermédiaires.
    +
    proxy-initial-not-pooled
    +
    Si cette variable est définie, aucune connexion faisant + partie d'un jeu ne sera réutilisée si la connexion client est + une connexion initiale. Ceci permet d'éviter le message d'erreur + "proxy: error reading status line from remote server" causé par + la situation de compétition au cours de laquelle le serveur + cible ferme la connexion du jeu après la vérification de la + connexion par le mandataire, et avant que les données envoyées + par le mandataire n'atteignent le serveur cible. Il faut + cependant garder à l'esprit que la définition de cette variable + dégrade les performances, particulièrement avec les clients + HTTP/1.0. +
    +
    +
    +
    +
    +

    Langues Disponibles:  en  | + fr  | + ja 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_http.html.ja.utf8 b/docs/manual/mod/mod_proxy_http.html.ja.utf8 new file mode 100644 index 00000000000..7ef01f44f92 --- /dev/null +++ b/docs/manual/mod/mod_proxy_http.html.ja.utf8 @@ -0,0 +1,160 @@ + + + + + +mod_proxy_http - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_proxy_http

    +
    +

    翻訳済み言語:  en  | + fr  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:mod_proxy のための HTTP サポートモジュール
    ステータス:Extension
    モジュール識別子:proxy_http_module
    ソースファイル:mod_proxy_http.c
    +

    概要

    + +

    本モジュールには mod_proxy が 必要です。 + 本モジュールは HTTP および HTTPS リクエストのプロキシに使う機能を提供します。 + mod_proxy_http は、 HTTP/0.9 と HTTP/1.0 と HTTP/1.1 + をサポートします。キャッシュ機能は 持ちません。 + キャッシュ機能を持つプロキシを設定したい場合、mod_cache + と組み合わせるのがよいでしょう。

    + +

    HTTP リクエストのプロキシを有効にするには、mod_proxy + と mod_proxy_http がサーバに組み込まれて + いなければいけません。

    + +

    警告

    +

    + 安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    +

    トピック

    +

    ディレクティブ

    +

    このモジュールにディレクティブはありません。

    +

    参照

    +
    +
    top
    +
    +

    環境変数

    +

    mod_proxy の動作を制御する設定ディレクティブ + に加えて、HTTP 動作を制御する多くの 環境変数 があります:

    +
    +
    proxy-sendextracrlf
    +
    プロキシが、リクエストの最後に追加の CR-LF 改行コードを送るように + します。これはいくつかのブラウザにあるバグの回避用です。
    +
    force-proxy-request-1.0
    +
    プロキシがバックエンドに HTTP/1.0 でリクエストを送るようにし、 + HTTP/1.1 の機能を無効にします。
    +
    proxy-nokeepalive
    +
    プロキシがリクエスト終了後にバックエンドとの接続を切るようにします。
    +
    proxy-chain-auth
    +
    プロキシが認証を要求する場合、プロキシはクライアントから送られるユーザ情報で + 認証しますが、ユーザ情報はその先に転送しません。 + proxy-chain-auth を有効にすると、プロキシはユーザ認証情報を + 次のプロキシにも転送します。ユーザ認証を共有しているプロキシを連結している時、 + この動作が必要でしょう。セキュリティ上の警告: + 必要性が分からない限り、この動作を有効にしてはいけません。 + と言うのも、大事な情報を転送してしまうからです。
    +
    proxy-sendcl
    +
    HTTP/1.0 では、ボディのあるリクエスト (例えば POST リクエスト) + はすべて Content-Length ヘッダを持つ必要があります。 + この環境変数で、クライアントがプロキシに送ったのが何であるかに関わらず、 + Apache のプロキシがバックエンドサーバにこのヘッダを送るように強制します。 + これにより、HTTP/1.0 もしくはバージョン不明のバックエンドに転送する時の + 互換性を保証します。しかし、この動作のためにプロキシはリクエストすべてをバッファリング + する必要があるかもしれません。このため、大きなサイズのリクエストで + 非常に非効率になります。
    +
    proxy-sendchunks or proxy-sendchunked
    +
    これは proxy-sendcl の逆です。 + リクエストのボディを chunked 転送エンコーディングでバックエンドに + 送れるようにします。効率的なストリーム転送ができますが、 + バックエンドサーバが HTTP/1.1 をサポートしている必要があります。
    +
    proxy-interim-response
    +
    この環境変数の値は RFC か Suppress です。 + httpd の初期のバージョンはバックエンドからの HTTP interim レスポンス (1xx) + を捨てることがありました。これは技術的には HTTP のプロトコル違反です。 + 実際には、バックエンドが interim レスポンスを返すとしたら、 + そのバックエンドはプロトコルを我々の預かり知らない方法で独自拡張しているか、 + 単におかしいかどちらかでしょう。 + なので、 interim に対する動作を設定で変更可能にしています。 + proxy-interim-response RFC と設定すると、 + プロトコル準拠の動作になります。proxy-interim-response Suppress + と設定すると、 interim レスポンスをプロキシしません。
    +
    proxy-initial-not-pooled
    +
    この環境変数をセットすると、クライアントの最初の接続にはプールした + 接続を使わなくなります。これは競合状態を原因とする + "proxy: error reading status line from remote server" エラーメッセージを + 回避します。競合状態は、プロキシがプールした接続をチェックした後、 + プロキシの送ったデータがバックエンドに到達する前にバックエンドが接続を閉じると発生します。 + この変数をセットすることでパフォーマンスが劣化することを知っておくべきです。 + 特に HTTP/1.0 のクライアントに影響します。 +
    +
    +
    +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_http.xml b/docs/manual/mod/mod_proxy_http.xml index 0d56fa1ad11..44cf03f0f36 100644 --- a/docs/manual/mod/mod_proxy_http.xml +++ b/docs/manual/mod/mod_proxy_http.xml @@ -4,12 +4,12 @@ + + + + + + + +mod_proxy_http +Module fournissant le support HTTP à +mod_proxy +Extension +mod_proxy_http.c +proxy_http_module + + +

    Pour pouvoir fonctionner, ce module requiert le + chargement de mod_proxy. Il fournit le support du + mandatement des requêtes HTTP et HTTPS. mod_proxy_http + supporte HTTP/0.9, HTTP/1.0 et HTTP/1.1. Il ne fournit + aucune fonctionnalité de mise en cache. Si vous souhaitez + mettre en oeuvre un mandataire qui assure aussi les fonctions de + mise en cache, vous devez utiliser les services du module + mod_cache.

    + +

    Ainsi, pour pouvoir traiter les requêtes HTTP mandatées, + mod_proxy, et mod_proxy_http + doivent être chargés dans le serveur.

    + + Avertissement +

    N'activez pas la fonctionnalité de mandataire avant d'avoir sécurisé votre serveur. Les + serveurs mandataires ouverts sont dangereux non seulement pour + votre réseau, mais aussi pour l'Internet au sens large.

    +
    +
    +mod_proxy +mod_proxy_connect + +
    Variables d'environnement +

    Outre les directives de configuration qui contrôlent le + comportement de mod_proxy, plusieurs variables + d'environnement permettent de contrôler le fournisseur du + protocole HTTP. Parmi les variables suivantes, celle qui ne + nécessitent pas de valeur particulière sont définies quelle que soit + la valeur qu'on leur affecte.

    +
    +
    proxy-sendextracrlf
    +
    Provoque l'envoi par le mandataire d'une nouvelle ligne + CR-LF supplémentaire à la fin de la requête. Cei constitue un + moyen de contournement d'une bogue de certains + navigateurs.
    +
    force-proxy-request-1.0
    +
    Force le mandataire à envoyer des requêtes vers le serveur + cible selon le protocole HTTP/1.0 et désactive les + fonctionnalités propres à HTTP/1.1.
    +
    proxy-nokeepalive
    +
    Force le mandataire à fermer la connexion avec le serveur + cible après chaque requête.
    +
    proxy-chain-auth
    +
    Si le mandataire requiert une authentification, il va lire + et exploiter les données d'authentification pour mandataire + envoyées par le client. Si proxy-chain-auth est + définie, il va aussi faire suivre ces données vers le + mandataire suivant dans la chaîne. Ceci peut s'avérer nécessaire + si une chaîne de mandataires partagent les informations + d'authentification. + Avertissement concernant la sécurité : + Ne définissez cette variable que si vous êtes sûr d'en avoir + besoin, car elle peut provoquer la divulgation d'informations + sensibles !
    +
    proxy-sendcl
    +
    Avec HTTP/1.0, toutes les requêtes qui possèdent un corps + (par exemple les requêtes POST) doivent comporter un en-tête + Content-Length. Cette variable d'environnement force + le mandataire Apache à envoyer cet en-tête au serveur cible, + sans tenir compte de ce que lui a envoyé le client. Ceci permet + d'assurer la compatibilité lorsqu'on mandate un serveur cible + mettant en oeuvre un protocole de type HTTP/1.0 ou inconnu. Elle + peut cependant nécessiter la mise en tampon de l'intégralité de + la requête par le mandataire, ce qui s'avère très inefficace + pour les requêtes de grande taille.
    +
    proxy-sendchunks ou proxy-sendchunked
    +
    Cette variable constitue l'opposé de + proxy-sendcl. Elle permet la transmission des corps + de requêtes vers le serveur cible en utilisant un codage de + transfert fractionné. Ceci permet une transmission des requêtes + plus efficace, mais nécessite que le serveur cible supporte le + protocole HTTP/1.1.
    +
    proxy-interim-response
    +
    Cette variable peut prendre les valeurs RFC ou + Suppress. Les versions précédentes de httpd + supprimaient les réponses intermédiaires HTTP (1xx) envoyées par + le serveur cible. En pratique, si un serveur cible envoie une + réponse intermédiaire, il se peut qu'il étende lui-même le + protocole d'une manière dont nous n'avons pas connaissance, ou + tout simplement non conforme. Le comportement du mandataire est + donc maintenant configurable : définissez + proxy-interim-response RFC pour être totalement + compatible avec le protocole, ou proxy-interim-response + Suppress pour supprimer les réponses intermédiaires.
    +
    proxy-initial-not-pooled
    +
    Si cette variable est définie, aucune connexion faisant + partie d'un jeu ne sera réutilisée si la connexion client est + une connexion initiale. Ceci permet d'éviter le message d'erreur + "proxy: error reading status line from remote server" causé par + la situation de compétition au cours de laquelle le serveur + cible ferme la connexion du jeu après la vérification de la + connexion par le mandataire, et avant que les données envoyées + par le mandataire n'atteignent le serveur cible. Il faut + cependant garder à l'esprit que la définition de cette variable + dégrade les performances, particulièrement avec les clients + HTTP/1.0. +
    +
    +
    + +
    diff --git a/docs/manual/mod/mod_proxy_http.xml.ja b/docs/manual/mod/mod_proxy_http.xml.ja new file mode 100644 index 00000000000..2943839f0d7 --- /dev/null +++ b/docs/manual/mod/mod_proxy_http.xml.ja @@ -0,0 +1,110 @@ + + + + + + + + + +mod_proxy_http +mod_proxy のための HTTP サポートモジュール +Extension +mod_proxy_http.c +proxy_http_module + + +

    本モジュールには mod_proxy が 必要です。 + 本モジュールは HTTP および HTTPS リクエストのプロキシに使う機能を提供します。 + mod_proxy_http は、 HTTP/0.9 と HTTP/1.0 と HTTP/1.1 + をサポートします。キャッシュ機能は 持ちません。 + キャッシュ機能を持つプロキシを設定したい場合、mod_cache + と組み合わせるのがよいでしょう。

    + +

    HTTP リクエストのプロキシを有効にするには、mod_proxy + と mod_proxy_http がサーバに組み込まれて + いなければいけません。

    + + 警告 +

    + 安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    +mod_proxy +mod_proxy_connect + +
    環境変数 +

    mod_proxy の動作を制御する設定ディレクティブ + に加えて、HTTP 動作を制御する多くの 環境変数 があります:

    +
    +
    proxy-sendextracrlf
    +
    プロキシが、リクエストの最後に追加の CR-LF 改行コードを送るように + します。これはいくつかのブラウザにあるバグの回避用です。
    +
    force-proxy-request-1.0
    +
    プロキシがバックエンドに HTTP/1.0 でリクエストを送るようにし、 + HTTP/1.1 の機能を無効にします。
    +
    proxy-nokeepalive
    +
    プロキシがリクエスト終了後にバックエンドとの接続を切るようにします。
    +
    proxy-chain-auth
    +
    プロキシが認証を要求する場合、プロキシはクライアントから送られるユーザ情報で + 認証しますが、ユーザ情報はその先に転送しません。 + proxy-chain-auth を有効にすると、プロキシはユーザ認証情報を + 次のプロキシにも転送します。ユーザ認証を共有しているプロキシを連結している時、 + この動作が必要でしょう。セキュリティ上の警告: + 必要性が分からない限り、この動作を有効にしてはいけません。 + と言うのも、大事な情報を転送してしまうからです。
    +
    proxy-sendcl
    +
    HTTP/1.0 では、ボディのあるリクエスト (例えば POST リクエスト) + はすべて Content-Length ヘッダを持つ必要があります。 + この環境変数で、クライアントがプロキシに送ったのが何であるかに関わらず、 + Apache のプロキシがバックエンドサーバにこのヘッダを送るように強制します。 + これにより、HTTP/1.0 もしくはバージョン不明のバックエンドに転送する時の + 互換性を保証します。しかし、この動作のためにプロキシはリクエストすべてをバッファリング + する必要があるかもしれません。このため、大きなサイズのリクエストで + 非常に非効率になります。
    +
    proxy-sendchunks or proxy-sendchunked
    +
    これは proxy-sendcl の逆です。 + リクエストのボディを chunked 転送エンコーディングでバックエンドに + 送れるようにします。効率的なストリーム転送ができますが、 + バックエンドサーバが HTTP/1.1 をサポートしている必要があります。
    +
    proxy-interim-response
    +
    この環境変数の値は RFC か Suppress です。 + httpd の初期のバージョンはバックエンドからの HTTP interim レスポンス (1xx) + を捨てることがありました。これは技術的には HTTP のプロトコル違反です。 + 実際には、バックエンドが interim レスポンスを返すとしたら、 + そのバックエンドはプロトコルを我々の預かり知らない方法で独自拡張しているか、 + 単におかしいかどちらかでしょう。 + なので、 interim に対する動作を設定で変更可能にしています。 + proxy-interim-response RFC と設定すると、 + プロトコル準拠の動作になります。proxy-interim-response Suppress + と設定すると、 interim レスポンスをプロキシしません。
    +
    proxy-initial-not-pooled
    +
    この環境変数をセットすると、クライアントの最初の接続にはプールした + 接続を使わなくなります。これは競合状態を原因とする + "proxy: error reading status line from remote server" エラーメッセージを + 回避します。競合状態は、プロキシがプールした接続をチェックした後、 + プロキシの送ったデータがバックエンドに到達する前にバックエンドが接続を閉じると発生します。 + この変数をセットすることでパフォーマンスが劣化することを知っておくべきです。 + 特に HTTP/1.0 のクライアントに影響します。 +
    +
    +
    + +
    diff --git a/docs/manual/mod/mod_proxy_http.xml.meta b/docs/manual/mod/mod_proxy_http.xml.meta index eb39f10cec5..48cd9192b84 100644 --- a/docs/manual/mod/mod_proxy_http.xml.meta +++ b/docs/manual/mod/mod_proxy_http.xml.meta @@ -1,11 +1,14 @@ + - + mod_proxy_http /mod/ .. en + fr + ja diff --git a/docs/manual/mod/mod_proxy_scgi.html b/docs/manual/mod/mod_proxy_scgi.html new file mode 100644 index 00000000000..fcfcbaa17e3 --- /dev/null +++ b/docs/manual/mod/mod_proxy_scgi.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_proxy_scgi.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_proxy_scgi.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_proxy_scgi.html.en b/docs/manual/mod/mod_proxy_scgi.html.en new file mode 100644 index 00000000000..8890898f6b5 --- /dev/null +++ b/docs/manual/mod/mod_proxy_scgi.html.en @@ -0,0 +1,189 @@ + + + + + +mod_proxy_scgi - Apache HTTP Server Version 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_proxy_scgi

    +
    +

    Available Languages:  en  | + ja 

    +
    + + + + +
    Description:SCGI gateway module for mod_proxy
    Status:Extension
    Module Identifier:proxy_scgi_module
    Source File:mod_proxy_scgi.c
    Compatibility:Available in version 2.2.14 and later
    +

    Summary

    + +

    This module requires the service of mod_proxy. It provides support for the + SCGI protocol, version + 1.

    + +

    Thus, in order to get the ability of handling the SCGI protocol, + mod_proxy and mod_proxy_scgi have to + be present in the server.

    + +

    Warning

    +

    Do not enable proxying until you have secured your server. Open proxy + servers are dangerous both to your network and to the Internet at + large.

    +
    +
    + +
    top
    +
    +

    Examples

    +

    Remember, in order to make the following examples work, you have to + enable mod_proxy and mod_proxy_scgi.

    + +

    Simple gateway

    + ProxyPass /scgi-bin/ scgi://localhost:4000/ +

    + +

    The balanced gateway needs mod_proxy_balancer in + addition to the already mentioned proxy modules.

    + +

    Balanced gateway

    + ProxyPass /scgi-bin/ balancer://somecluster/
    + <Proxy balancer://somecluster/>
    + + BalancerMember scgi://localhost:4000/
    + BalancerMember scgi://localhost:4001/
    +
    + </Proxy> +

    +
    +
    top
    +

    ProxySCGIInternalRedirect Directive

    + + + + + + + +
    Description:Enable or disable internal redirect responses from the +backend
    Syntax:ProxySCGIInternalRedirect On|Off
    Default:ProxySCGIInternalRedirect On
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy_scgi
    +

    The ProxySCGIInternalRedirect enables the backend + to internally redirect the gateway to a different URL. This feature + origins in mod_cgi, which internally redirects the + response, if the response status is OK (200) and + the response contains a Location header and its value starts + with a slash (/). This value is interpreted as a new local + URL the apache internally redirects to.

    + +

    mod_proxy_scgi does the same as + mod_cgi in this regard, except that you can turn off the + feature.

    + +

    Example

    + ProxySCGIInternalRedirect Off +

    + +
    +
    top
    +

    ProxySCGISendfile Directive

    + + + + + + + +
    Description:Enable evaluation of X-Sendfile pseudo response +header
    Syntax:ProxySCGISendfile On|Off|Headername
    Default:ProxySCGISendfile Off
    Context:server config, virtual host, directory
    Status:Extension
    Module:mod_proxy_scgi
    +

    The ProxySCGISendfile directive enables the + SCGI backend to let files serve directly by the gateway. This is useful + performance purposes -- the httpd can use sendfile or other + optimizations, which are not possible if the file comes over the backend + socket.

    +

    The ProxySCGISendfile argument determines the + gateway behaviour:

    +
    +
    Off
    +
    No special handling takes place.
    + +
    On
    +
    The gateway looks for a backend response header called + X-Sendfile and interprets the value as filename to serve. The + header is removed from the final response headers. This is equivalent to + ProxySCGISendfile X-Sendfile.
    + +
    anything else
    +
    Similar to On, but instead of the hardcoded header name + the argument is applied as header name.
    +
    + +

    Example

    + # Use the default header (X-Sendfile)
    + ProxySCGISendfile On
    +
    + # Use a different header
    + ProxySCGISendfile X-Send-Static +

    + +
    +
    +
    +

    Available Languages:  en  | + ja 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_scgi.html.ja.utf8 b/docs/manual/mod/mod_proxy_scgi.html.ja.utf8 new file mode 100644 index 00000000000..715668e734a --- /dev/null +++ b/docs/manual/mod/mod_proxy_scgi.html.ja.utf8 @@ -0,0 +1,188 @@ + + + + + +mod_proxy_scgi - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_proxy_scgi

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    + + + + +
    説明:mod_proxy のための SCGI ゲートウェイモジュール
    ステータス:Extension
    モジュール識別子:proxy_scgi_module
    ソースファイル:mod_proxy_scgi.c
    互換性:Apache 2.2.14 以降で使用可能
    +

    概要

    + +

    本モジュールには mod_proxy が必要です。 + 本モジュールは SCGI protocol, + version 1 をサポートします。

    + +

    SCGI プロトコルを扱うためには、mod_proxy + と mod_proxy_scgiが サーバに組み込まれて + いなければいけません。

    + +

    警告

    +

    + 安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    +

    トピック

    +

    ディレクティブ

    + +

    参照

    +
    +
    top
    +
    +

    例

    +

    以下の例を動かすには、mod_proxy と mod_proxy_scgi + を有効にしなければいけないことを忘れないでください。

    + +

    簡単なゲートウェイ

    + ProxyPass /scgi-bin/ scgi://localhost:4000/ +

    + +

    ロードバランスするゲートウェイには、既に言及したプロキシモジュール + に加えて mod_proxy_balancer が必要です。

    + +

    ロードバランスするゲートウェイ

    + ProxyPass /scgi-bin/ balancer://somecluster/
    + <Proxy balancer://somecluster/>
    + + BalancerMember scgi://localhost:4000/
    + BalancerMember scgi://localhost:4001/
    +
    + </Proxy> +

    +
    +
    top
    +

    ProxySCGIInternalRedirect ディレクティブ

    + + + + + + + +
    説明:バックエンドからの内部的なリダイレクトレスポンスを有効あるいは無効にする
    構文:ProxySCGIInternalRedirect On|Off
    デフォルト:ProxySCGIInternalRedirect On
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy_scgi
    +

    ProxySCGIInternalRedirect で、 + バックエンドが内部的にゲートウェイを別の URL にリダイレクトできるようにします。 + この機能は mod_cgi 起源で、レスポンスステータスが + OK (200) で、かつレスポンスが Location + ヘッダを持ち、かつヘッダ値の先頭がスラッシュ (/) であれば、 + 内部的にリダイレクトします。このヘッダ値が内部的なリダイレクト先の + 新しい URL として解釈されます。

    + +

    機能を無効にしない限り、mod_proxy_scgi は + 上記の点で mod_cgi と同じ動作をします。

    + +

    例

    + ProxySCGIInternalRedirect Off +

    + +
    +
    top
    +

    ProxySCGISendfile ディレクティブ

    + + + + + + + +
    説明:X-Sendfile 疑似レスポンスヘッダの評価を有効にする
    構文:ProxySCGISendfile On|Off|Headername
    デフォルト:ProxySCGISendfile Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
    ステータス:Extension
    モジュール:mod_proxy_scgi
    +

    ProxySCGISendfile ディレクティブを設定すると、 + SCGI バックエンドの代わりにゲートウェイが直接ファイルを転送できるようにします。 + これはパフォーマンス向上のために使えます。 httpd は sendfile + などの最適化を行うことができます。これはバックエンドからソケット経由でファイルを + 受けた時にはできない最適化です。

    +

    ProxySCGISendfile の引数でゲートウェイの動作 + を制御します:

    +
    +
    Off
    +
    特別な動作をしません。
    + +
    On
    +
    ゲートウェイはバックエンドのレスポンスヘッダから X-Sendfile と + 呼ばれるヘッダを探し、その値を転送対象のファイル名と見なします。 + ヘッダは最終的なレスポンスヘッダからは除かれます。 + 次の設定と等価です。 + ProxySCGISendfile X-Sendfile.
    + +
    その他
    +
    On にした場合に似ていますが、ハードコードしたヘッダ名の + 代わりに、引数がヘッダ名として使われます。
    +
    + +

    Example

    + # Use the default header (X-Sendfile)
    + ProxySCGISendfile On
    +
    + # Use a different header
    + ProxySCGISendfile X-Send-Static +

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_scgi.xml b/docs/manual/mod/mod_proxy_scgi.xml new file mode 100644 index 00000000000..cffcad30806 --- /dev/null +++ b/docs/manual/mod/mod_proxy_scgi.xml @@ -0,0 +1,145 @@ + + + + + + + + + +mod_proxy_scgi +SCGI gateway module for mod_proxy +Extension +mod_proxy_scgi.c +proxy_scgi_module +Available in version 2.2.14 and later + + +

    This module requires the service of mod_proxy. It provides support for the + SCGI protocol, version + 1.

    + +

    Thus, in order to get the ability of handling the SCGI protocol, + mod_proxy and mod_proxy_scgi have to + be present in the server.

    + + Warning +

    Do not enable proxying until you have secured your server. Open proxy + servers are dangerous both to your network and to the Internet at + large.

    +
    +
    + +mod_proxy +mod_proxy_balancer + +
    Examples +

    Remember, in order to make the following examples work, you have to + enable mod_proxy and mod_proxy_scgi.

    + + Simple gateway + ProxyPass /scgi-bin/ scgi://localhost:4000/ + + +

    The balanced gateway needs mod_proxy_balancer in + addition to the already mentioned proxy modules.

    + + Balanced gateway + ProxyPass /scgi-bin/ balancer://somecluster/
    + <Proxy balancer://somecluster/>
    + + BalancerMember scgi://localhost:4000/
    + BalancerMember scgi://localhost:4001/
    +
    + </Proxy> +
    +
    + + +ProxySCGISendfile +Enable evaluation of X-Sendfile pseudo response +header +ProxySCGISendfile On|Off|Headername +ProxySCGISendfile Off +server configvirtual host +directory + + +

    The ProxySCGISendfile directive enables the + SCGI backend to let files serve directly by the gateway. This is useful + performance purposes -- the httpd can use sendfile or other + optimizations, which are not possible if the file comes over the backend + socket.

    +

    The ProxySCGISendfile argument determines the + gateway behaviour:

    +
    +
    Off
    +
    No special handling takes place.
    + +
    On
    +
    The gateway looks for a backend response header called + X-Sendfile and interprets the value as filename to serve. The + header is removed from the final response headers. This is equivalent to + ProxySCGISendfile X-Sendfile.
    + +
    anything else
    +
    Similar to On, but instead of the hardcoded header name + the argument is applied as header name.
    +
    + + Example + # Use the default header (X-Sendfile)
    + ProxySCGISendfile On
    +
    + # Use a different header
    + ProxySCGISendfile X-Send-Static +
    +
    +
    + + +ProxySCGIInternalRedirect +Enable or disable internal redirect responses from the +backend +ProxySCGIInternalRedirect On|Off +ProxySCGIInternalRedirect On +server configvirtual host +directory + + +

    The ProxySCGIInternalRedirect enables the backend + to internally redirect the gateway to a different URL. This feature + origins in mod_cgi, which internally redirects the + response, if the response status is OK (200) and + the response contains a Location header and its value starts + with a slash (/). This value is interpreted as a new local + URL the apache internally redirects to.

    + +

    mod_proxy_scgi does the same as + mod_cgi in this regard, except that you can turn off the + feature.

    + + Example + ProxySCGIInternalRedirect Off + +
    +
    + +
    diff --git a/docs/manual/mod/mod_proxy_scgi.xml.ja b/docs/manual/mod/mod_proxy_scgi.xml.ja new file mode 100644 index 00000000000..1cf1b49f7f1 --- /dev/null +++ b/docs/manual/mod/mod_proxy_scgi.xml.ja @@ -0,0 +1,142 @@ + + + + + + + + + +mod_proxy_scgi +mod_proxy のための SCGI ゲートウェイモジュール +Extension +mod_proxy_scgi.c +proxy_scgi_module +Apache 2.2.14 以降で使用可能 + + +

    本モジュールには mod_proxy が必要です。 + 本モジュールは SCGI protocol, + version 1 をサポートします。

    + +

    SCGI プロトコルを扱うためには、mod_proxy + と mod_proxy_scgiが サーバに組み込まれて + いなければいけません。

    + + 警告 +

    + 安全なサーバにするまでプロキシ機能は有効にしないでください。 + オープンプロキシサーバはあなた自身のネットワークにとっても、 + インターネット全体にとっても危険です。

    +
    +
    + +mod_proxy +mod_proxy_balancer + +
    例 +

    以下の例を動かすには、mod_proxy と mod_proxy_scgi + を有効にしなければいけないことを忘れないでください。

    + + 簡単なゲートウェイ + ProxyPass /scgi-bin/ scgi://localhost:4000/ + + +

    ロードバランスするゲートウェイには、既に言及したプロキシモジュール + に加えて mod_proxy_balancer が必要です。

    + + ロードバランスするゲートウェイ + ProxyPass /scgi-bin/ balancer://somecluster/
    + <Proxy balancer://somecluster/>
    + + BalancerMember scgi://localhost:4000/
    + BalancerMember scgi://localhost:4001/
    +
    + </Proxy> +
    +
    + + +ProxySCGISendfile +X-Sendfile 疑似レスポンスヘッダの評価を有効にする +ProxySCGISendfile On|Off|Headername +ProxySCGISendfile Off +server configvirtual host +directory + + +

    ProxySCGISendfile ディレクティブを設定すると、 + SCGI バックエンドの代わりにゲートウェイが直接ファイルを転送できるようにします。 + これはパフォーマンス向上のために使えます。 httpd は sendfile + などの最適化を行うことができます。これはバックエンドからソケット経由でファイルを + 受けた時にはできない最適化です。

    +

    ProxySCGISendfile の引数でゲートウェイの動作 + を制御します:

    +
    +
    Off
    +
    特別な動作をしません。
    + +
    On
    +
    ゲートウェイはバックエンドのレスポンスヘッダから X-Sendfile と + 呼ばれるヘッダを探し、その値を転送対象のファイル名と見なします。 + ヘッダは最終的なレスポンスヘッダからは除かれます。 + 次の設定と等価です。 + ProxySCGISendfile X-Sendfile.
    + +
    その他
    +
    On にした場合に似ていますが、ハードコードしたヘッダ名の + 代わりに、引数がヘッダ名として使われます。
    +
    + + Example + # Use the default header (X-Sendfile)
    + ProxySCGISendfile On
    +
    + # Use a different header
    + ProxySCGISendfile X-Send-Static +
    +
    +
    + + +ProxySCGIInternalRedirect +バックエンドからの内部的なリダイレクトレスポンスを有効あるいは無効にする +ProxySCGIInternalRedirect On|Off +ProxySCGIInternalRedirect On +server configvirtual host +directory + + +

    ProxySCGIInternalRedirect で、 + バックエンドが内部的にゲートウェイを別の URL にリダイレクトできるようにします。 + この機能は mod_cgi 起源で、レスポンスステータスが + OK (200) で、かつレスポンスが Location + ヘッダを持ち、かつヘッダ値の先頭がスラッシュ (/) であれば、 + 内部的にリダイレクトします。このヘッダ値が内部的なリダイレクト先の + 新しい URL として解釈されます。

    + +

    機能を無効にしない限り、mod_proxy_scgi は + 上記の点で mod_cgi と同じ動作をします。

    + + 例 + ProxySCGIInternalRedirect Off + +
    +
    + +
    diff --git a/docs/manual/mod/mod_proxy_scgi.xml.meta b/docs/manual/mod/mod_proxy_scgi.xml.meta new file mode 100644 index 00000000000..21e2abcda05 --- /dev/null +++ b/docs/manual/mod/mod_proxy_scgi.xml.meta @@ -0,0 +1,13 @@ + + + + + mod_proxy_scgi + /mod/ + .. + + + en + ja + + diff --git a/docs/manual/mod/mod_reqtimeout.html b/docs/manual/mod/mod_reqtimeout.html new file mode 100644 index 00000000000..08f5a21fa3c --- /dev/null +++ b/docs/manual/mod/mod_reqtimeout.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_reqtimeout.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_reqtimeout.html.en b/docs/manual/mod/mod_reqtimeout.html.en new file mode 100644 index 00000000000..4acec019bfb --- /dev/null +++ b/docs/manual/mod/mod_reqtimeout.html.en @@ -0,0 +1,198 @@ + + + + + +mod_reqtimeout - Apache HTTP Server Version 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_reqtimeout

    +
    +

    Available Languages:  en 

    +
    + + + + +
    Description:Set timeout and minimum data rate for receiving requests +
    Status:Extension
    Module Identifier:reqtimeout_module
    Source File:mod_reqtimeout.c
    Compatibility:Available in Apache 2.2.15 and later
    +
    +

    Topics

    +

    Directives

    + +
    +
    top
    +
    +

    Examples

    + +
      +
    1. + Allow 10 seconds to receive the request including the headers and + 30 seconds for receiving the request body: + +

      + RequestReadTimeout header=10 body=30 +

      +
    2. + +
    3. + Allow at least 10 seconds to receive the request body. + If the client sends data, increase the timeout by 1 second for every + 1000 bytes received, with no upper limit for the timeout (exept for + the limit given indirectly by + LimitRequestBody): + +

      + RequestReadTimeout body=10,MinRate=1000 +

      +
    4. + +
    5. + Allow at least 10 seconds to receive the request including the headers. + If the client sends data, increase the timeout by 1 second for every + 500 bytes received. But do not allow more than 30 seconds for the + request including the headers: + +

      + RequestReadTimeout header=10-30,MinRate=500 +

      +
    6. + +
    7. + Usually, a server should have both header and body timeouts configured. + If a common configuration is used for http and https virtual hosts, the + timeouts should not be set too low: + +

      + RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500 +

      +
    8. + +
    +
    +
    top
    +

    RequestReadTimeout Directive

    + + + + + + + +
    Description:Set timeout values for receiving request headers and body from client. +
    Syntax:RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +
    Default:Unset; no limit
    Context:server config, virtual host
    Status:Extension
    Module:mod_reqtimeout
    +

    This directive can set various timeouts for receiving the request headers + and the request body from the client. If the client fails to send headers or + body within the configured time, a 408 REQUEST TIME OUT error + is sent.

    + +

    For SSL virtual hosts, the header timeout values include the time needed + to do the initial SSL handshake. If the user's browser is configured to + query certificate revocation lists and the CRL server is not reachable, the + initial SSL handshake may take a significant time until the browser gives up + waiting for the CRL. Therefore the header timeout values should not be set + to very low values for SSL virtual hosts. + The body timeout values include the time needed for SSL renegotiation + (if necessary).

    + +

    When an AcceptFilter is in use + (usually the case on Linux and FreeBSD), the socket is not sent to the + server process before at least one byte (or the whole request for + httpready) is received. The header timeout configured with + RequestReadTimeout is only effective after the server process has + received the socket.

    + +

    For each of the two timeout types (header or body), there are three ways + to specify the timeout: +

    + +
      + +
    • Fixed timeout value:
      + +

      type=timeout

      + +

      The time in seconds allowed for reading all of the request headers or + body, respectively. A value of 0 means no limit.

      +
    • + +
    • Timeout value that is increased when data is + received:
      +

      + type=timeout,MinRate=data_rate +

      + +

      Same as above, but whenever data is received, the timeout value is + increased according to the specified minimum data rate (in bytes per + second).

      +
    • + +
    • Timeout value that is increased when data is received, with an + upper bound:
      +

      + type=timeout-maxtimeout,MinRate=data_rate +

      + +

      Same as above, but the timeout will not be increased above the second + value of the specified timeout range.

      +
    • + +
    + + +
    +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_reqtimeout.xml b/docs/manual/mod/mod_reqtimeout.xml new file mode 100644 index 00000000000..d5f16a96b4d --- /dev/null +++ b/docs/manual/mod/mod_reqtimeout.xml @@ -0,0 +1,156 @@ + + + + + + + + + +mod_reqtimeout +Set timeout and minimum data rate for receiving requests + +Extension +mod_reqtimeout.c +reqtimeout_module +Available in Apache 2.2.15 and later + +
    Examples + +
      +
    1. + Allow 10 seconds to receive the request including the headers and + 30 seconds for receiving the request body: + + + RequestReadTimeout header=10 body=30 + +
    2. + +
    3. + Allow at least 10 seconds to receive the request body. + If the client sends data, increase the timeout by 1 second for every + 1000 bytes received, with no upper limit for the timeout (exept for + the limit given indirectly by + LimitRequestBody): + + + RequestReadTimeout body=10,MinRate=1000 + +
    4. + +
    5. + Allow at least 10 seconds to receive the request including the headers. + If the client sends data, increase the timeout by 1 second for every + 500 bytes received. But do not allow more than 30 seconds for the + request including the headers: + + + RequestReadTimeout header=10-30,MinRate=500 + +
    6. + +
    7. + Usually, a server should have both header and body timeouts configured. + If a common configuration is used for http and https virtual hosts, the + timeouts should not be set too low: + + + RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500 + +
    8. + +
    +
    + + +RequestReadTimeout +Set timeout values for receiving request headers and body from client. + +RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] + +Unset; no limit +server configvirtual host + + + +

    This directive can set various timeouts for receiving the request headers + and the request body from the client. If the client fails to send headers or + body within the configured time, a 408 REQUEST TIME OUT error + is sent.

    + +

    For SSL virtual hosts, the header timeout values include the time needed + to do the initial SSL handshake. If the user's browser is configured to + query certificate revocation lists and the CRL server is not reachable, the + initial SSL handshake may take a significant time until the browser gives up + waiting for the CRL. Therefore the header timeout values should not be set + to very low values for SSL virtual hosts. + The body timeout values include the time needed for SSL renegotiation + (if necessary).

    + +

    When an AcceptFilter is in use + (usually the case on Linux and FreeBSD), the socket is not sent to the + server process before at least one byte (or the whole request for + httpready) is received. The header timeout configured with + RequestReadTimeout is only effective after the server process has + received the socket.

    + +

    For each of the two timeout types (header or body), there are three ways + to specify the timeout: +

    + +
      + +
    • Fixed timeout value:
      + + type=timeout + +

      The time in seconds allowed for reading all of the request headers or + body, respectively. A value of 0 means no limit.

      +
    • + +
    • Timeout value that is increased when data is + received:
      + + type=timeout,MinRate=data_rate + + +

      Same as above, but whenever data is received, the timeout value is + increased according to the specified minimum data rate (in bytes per + second).

      +
    • + +
    • Timeout value that is increased when data is received, with an + upper bound:
      + + type=timeout-maxtimeout,MinRate=data_rate + + +

      Same as above, but the timeout will not be increased above the second + value of the specified timeout range.

      +
    • + +
    + +
    + +
    + +
    diff --git a/docs/manual/mod/mod_reqtimeout.xml.meta b/docs/manual/mod/mod_reqtimeout.xml.meta new file mode 100644 index 00000000000..ac7d1faf4c0 --- /dev/null +++ b/docs/manual/mod/mod_reqtimeout.xml.meta @@ -0,0 +1,12 @@ + + + + + mod_reqtimeout + /mod/ + .. + + + en + + diff --git a/docs/manual/mod/mod_rewrite.html b/docs/manual/mod/mod_rewrite.html index 5b651b93abb..04588836523 100644 --- a/docs/manual/mod/mod_rewrite.html +++ b/docs/manual/mod/mod_rewrite.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_rewrite.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_rewrite.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_rewrite.html.en b/docs/manual/mod/mod_rewrite.html.en index a6d47fb67c5..6baf8caaff0 100644 --- a/docs/manual/mod/mod_rewrite.html.en +++ b/docs/manual/mod/mod_rewrite.html.en @@ -1,51 +1,59 @@ - -mod_rewrite - Apache HTTP Server +mod_rewrite - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_rewrite

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_rewrite

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + fr 

    - - + +
    Description:Provides a rule-based rewriting engine to rewrite requested URLs on the fly
    Status:Extension
    Module Identifier:rewrite_module
    Source File:mod_rewrite.c
    Module Identifier:rewrite_module
    Source File:mod_rewrite.c
    Compatibility:Available in Apache 1.3 and later

    Summary

    This module uses a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly. It supports an unlimited number of rules and an - unlimited number of attached rule conditions for each rule to + unlimited number of attached rule conditions for each rule, to provide a really flexible and powerful URL manipulation mechanism. The URL manipulations can depend on various tests, - for instance server variables, environment variables, HTTP - headers, time stamps and even external database lookups in - various formats can be used to achieve a really granular URL + of server variables, environment variables, HTTP + headers, or time stamps. Even external database lookups in + various formats can be used to achieve highly granular URL matching.

    This module operates on the full URLs (including the path-info part) both in per-server context (httpd.conf) and per-directory context - (.htaccess) and can even generate query-string + (.htaccess) and can generate query-string parts on result. The rewritten result can lead to internal sub-processing, external request redirection or even to an internal proxy throughput.

    @@ -53,7 +61,13 @@ URLs on the fly

    Further details, discussion, and examples, are provided in the detailed mod_rewrite documentation.

    -
    top

    Quoting Special Characters

    @@ -78,7 +90,7 @@ URLs on the fly

    As of Apache 1.3.20, special characters in TestString and Substitution strings can be escaped (that is, treated as normal characters without their - usual special meaning) by prefixing them with a slash ('\') + usual special meaning) by prefixing them with a backslash ('\') character. In other words, you can include an actual dollar-sign character in a Substitution string by using '\$'; this keeps mod_rewrite from trying @@ -96,26 +108,36 @@ URLs on the fly System-view.

    Notice: These variables hold the URI/URL as they were - initially requested, i.e., before any - rewriting. This is important because the rewriting process is + initially requested, that is, before any + rewriting. This is important to note because the rewriting process is primarily used to rewrite logical URLs to physical pathnames.

    -

    Example

    -SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
    +

    Example

    SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
     SCRIPT_FILENAME=/u/rse/.www/index.html
     SCRIPT_URL=/u/rse/
    -SCRIPT_URI=http://en1.engelschall.com/u/rse/
    -
    +SCRIPT_URI=http://en1.engelschall.com/u/rse/
    +
    top
    +
    +

    Rewriting in Virtual Hosts

    + +

    By default, mod_rewrite configuration + settings from the main server context are not inherited by + virtual hosts. To make the main server settings apply to virtual + hosts, you must place the following directives in each <VirtualHost> section:

    + +

    + RewriteEngine On
    + RewriteOptions Inherit +

    top

    Practical Solutions

    For numerous examples of common, and not-so-common, uses for - mod_rewrite, see the Rewrite - Guide, and the Advanced Rewrite - Guide documents.

    + mod_rewrite, see the extended rewrite + documentation.

    top
    @@ -123,90 +145,42 @@ SCRIPT_URI=http://en1.engelschall.com/u/rse/ - +
    Description:Sets the base URL for per-directory rewrites
    Syntax:RewriteBase URL-path
    Default:See usage for information.
    Default:None
    Context:directory, .htaccess
    Override:FileInfo
    Status:Extension
    Module:mod_rewrite
    -

    The RewriteBase directive explicitly - sets the base URL for per-directory rewrites. As you will see - below, RewriteRule - can be used in per-directory config files - (.htaccess). There it will act locally, - i.e., the local directory prefix is stripped at this - stage of processing and your rewriting rules act only on the - remainder. At the end it is automatically added back to the - path. The default setting is; RewriteBase physical-directory-path

    - -

    When a substitution occurs for a new URL, this module has - to re-inject the URL into the server processing. To be able - to do this it needs to know what the corresponding URL-prefix - or URL-base is. By default this prefix is the corresponding - filepath itself. But at most websites URLs are NOT - directly related to physical filename paths, so this - assumption will usually be wrong! There you have to - use the RewriteBase directive to specify the - correct URL-prefix.

    - -
    If your webserver's URLs are not directly -related to physical file paths, you have to use -RewriteBase in every .htaccess -files where you want to use RewriteRule directives. -
    - -

    For example, assume the following per-directory config file:

    - -
    -#
    -#  /abc/def/.htaccess -- per-dir config file for directory /abc/def
    -#  Remember: /abc/def is the physical path of /xyz, i.e., the server
    -#            has a 'Alias /xyz /abc/def' directive e.g.
    -#
    +      

    The RewriteBase directive specifies the + URL prefix to be used for per-directory (htaccess) + RewriteRule directives that substitute a relative + path.

    +

    This directive is required when you use a relative path + in a substitution in per-directory (htaccess) context unless either + of the following conditions are true:

    +
      +
    • The original request, and the substitution, are underneath the + DocumentRoot + (as opposed to reachable by other means, such as + Alias).
    • +
    • The filesystem path to the directory containing the + RewriteRule, suffixed by the relative + substitution is also valid as a URL path on the server + (this is rare).
    • +
    +

    In the example below, RewriteBase is necessary + to avoid rewriting to http://example.com/opt/myapp-1.2.3/welcome.html + since the resource was not relative to the document root. This + misconfiguration would normally cause the server to look for an "opt" + directory under the document root.

    +
    DocumentRoot /var/www/example.com
    +Alias /myapp /opt/myapp-1.2.3
    +<Directory /opt/myapp-1.2.3>
     RewriteEngine On
    -
    -#  let the server know that we were reached via /xyz and not
    -#  via the physical path prefix /abc/def
    -RewriteBase   /xyz
    -
    -#  now the rewriting rules
    -RewriteRule   ^oldstuff\.html$  newstuff.html
    -
    - -

    In the above example, a request to - /xyz/oldstuff.html gets correctly rewritten to - the physical file /abc/def/newstuff.html.

    - -

    For Apache Hackers

    -

    The following list gives detailed information about - the internal processing steps:

    -
    -Request:
    -  /xyz/oldstuff.html
    -
    -Internal Processing:
    -  /xyz/oldstuff.html     -> /abc/def/oldstuff.html  (per-server Alias)
    -  /abc/def/oldstuff.html -> /abc/def/newstuff.html  (per-dir    RewriteRule)
    -  /abc/def/newstuff.html -> /xyz/newstuff.html      (per-dir    RewriteBase)
    -  /xyz/newstuff.html     -> /abc/def/newstuff.html  (per-server Alias)
    -
    -Result:
    -  /abc/def/newstuff.html
    -
    -

    This seems very complicated but is - the correct Apache internal processing, because the - per-directory rewriting comes too late in the - process. So, when it occurs the (rewritten) request - has to be re-injected into the Apache kernel! BUT: - While this seems like a serious overhead, it really - isn't, because this re-injection happens fully - internally to the Apache server and the same - procedure is used by many other operations inside - Apache. So, you can be sure the design and - implementation is correct.

    -
    - +RewriteBase /myapp/ +RewriteRule ^index\.html$ welcome.html +</Directory>
    top
    @@ -222,62 +196,42 @@ Result: Module:mod_rewrite

    The RewriteCond directive defines a - rule condition. Precede a RewriteRule directive with one - or more RewriteCond directives. The following - rewriting rule is only used if its pattern matches the current - state of the URI and if these additional - conditions apply too.

    + rule condition. One or more RewriteCond + can precede a RewriteRule + directive. The following rule is then only used if both + the current state of the URI matches its pattern, and if these conditions are met.

    -

    TestString is a string which can contains the +

    TestString is a string which can contain the following expanded constructs in addition to plain text:

    • RewriteRule backreferences: These are - backreferences of the form - -

      - $N -

      - (0 <= N <= 9) which provide access to the grouped - parts (parenthesis!) of the pattern from the - corresponding RewriteRule directive (the one - following the current bunch of RewriteCond - directives). + backreferences of the form $N + (0 <= N <= 9), which provide access to the grouped + parts (in parentheses) of the pattern, from the + RewriteRule which is subject to the current + set of RewriteCond conditions..
    • -
    • RewriteCond backreferences: These are - backreferences of the form - -

      - %N -

      - (1 <= N <= 9) which provide access to the grouped - parts (parentheses!) of the pattern from the last matched - RewriteCond directive in the current bunch + backreferences of the form %N + (1 <= N <= 9), which provide access to the grouped + parts (again, in parentheses) of the pattern, from the last matched + RewriteCond in the current set of conditions.
    • -
    • RewriteMap expansions: These are - expansions of the form - -

      - ${mapname:key|default} -

      + expansions of the form ${mapname:key|default}. See the documentation for RewriteMap for more details.
    • -
    • Server-Variables: These are variables of the form - -

      %{ NAME_OF_VARIABLE } -

      where NAME_OF_VARIABLE can be a string taken from the following list: @@ -351,15 +305,20 @@ Result: -

      These variables all correspond to the similarly named HTTP MIME-headers, C variables of the Apache server or struct tm fields of the Unix system. Most are documented elsewhere in the Manual or in - the CGI specification. Those that are special to - mod_rewrite include:

      + the CGI specification.

      + +

      SERVER_NAME and SERVER_PORT depend on the values of + UseCanonicalName and + UseCanonicalPhysicalPort + respectively.

      +

      Those that are special to mod_rewrite include those below.

      +
      IS_SUBREQ
      @@ -386,24 +345,30 @@ Result: browser to the server (e.g., "GET /index.html HTTP/1.1"). This does not include any additional headers sent by the - browser. + browser. This value has not been unescaped + (decoded), unlike most other variables below.
      REQUEST_URI
      -
      The resource requested in the HTTP request - line. (In the example above, this would be - "/index.html".)
      +
      The path component of the requested URI, + such as "/index.html". This notably excludes the + query string which is available as as its own variable + named QUERY_STRING.
      REQUEST_FILENAME
      The full local filesystem path to the file or - script matching the request.
      + script matching the request, if this has already + been determined by the server at the time + REQUEST_FILENAME is referenced. Otherwise, + such as when used in virtual host context, the same + value as REQUEST_URI.
      HTTPS
      Will contain the text "on" if the connection is using SSL/TLS, or "off" otherwise. (This variable - can be safely used regardless of whether + can be safely used regardless of whether or not mod_ssl is loaded).
      @@ -411,69 +376,93 @@ Result:
    -

    Special Notes:

    +

    Other things you should be aware of:

      -
    1. The variables SCRIPT_FILENAME and REQUEST_FILENAME - contain the same value, i.e., the value of the +
    2. The variables SCRIPT_FILENAME and REQUEST_FILENAME + contain the same value - the value of the filename field of the internal request_rec structure of the Apache server. - The first name is just the commonly known CGI variable name - while the second is the consistent counterpart to + The first name is the commonly known CGI variable name + while the second is the appropriate counterpart of REQUEST_URI (which contains the value of the - uri field of request_rec).

    3. + uri field of request_rec).

      +

      If a substitution occurred and the rewriting continues, + the value of both variables will be updated accordingly.

      +

      If used in per-server context (i.e., before the + request is mapped to the filesystem) SCRIPT_FILENAME and + REQUEST_FILENAME cannot contain the full local filesystem + path since the path is unknown at this stage of processing. + Both variables will initially contain the value of REQUEST_URI + in that case. In order to obtain the full local filesystem + path of the request in per-server context, use an URL-based + look-ahead %{LA-U:REQUEST_FILENAME} to determine + the final value of REQUEST_FILENAME.

      -
    4. There is the special format: - %{ENV:variable} where variable can be - any environment variable. This is looked-up via internal +
    5. + %{ENV:variable}, where variable can be + any environment variable, is also available. + This is looked-up via internal Apache structures and (if not found there) via getenv() from the Apache server process.
    6. -
    7. There is the special format: - %{SSL:variable} where variable is the +
    8. + %{SSL:variable}, where variable is the name of an SSL environment - variable; this can be used whether or not + variable, can be used whether or not mod_ssl is loaded, but will always expand to the empty string if it is not. Example: %{SSL:SSL_CIPHER_USEKEYSIZE} may expand to - 128.
    9. + 128. These variables are available even without + setting the StdEnvVars option of the + SSLOptions directive. -
    10. There is the special format: - %{HTTP:header} where header can be - any HTTP MIME-header name. This is looked-up from the HTTP - request. Example: %{HTTP:Proxy-Connection} is +
    11. + %{HTTP:header}, where header can be + any HTTP MIME-header name, can always be used to obtain the + value of a header sent in the HTTP request. + Example: %{HTTP:Proxy-Connection} is the value of the HTTP header - ``Proxy-Connection:''.
    12. + ``Proxy-Connection:''. +

      If a HTTP header is used in a condition this header is added to + the Vary header of the response in case the condition evaluates + to true for the request. It is not added if the + condition evaluates to false for the request. Adding the HTTP header + to the Vary header of the response is needed for proper caching.

      +

      It has to be kept in mind that conditions follow a short circuit + logic in the case of the 'ornext|OR' flag + so that certain conditions might not be evaluated at all.

      -
    13. There is the special format - %{LA-U:variable} for look-aheads which perform +
    14. + %{LA-U:variable} can be used for look-aheads which perform an internal (URL-based) sub-request to determine the final - value of variable. Use this when you want to use a - variable for rewriting which is actually set later in an - API phase and thus is not available at the current stage. - For instance when you want to rewrite according to the + value of variable. This can be used to access + variable for rewriting which is not available at the current + stage, but will be set in a later phase. +

      For instance, to rewrite according to the REMOTE_USER variable from within the - per-server context (httpd.conf file) you have - to use %{LA-U:REMOTE_USER} because this - variable is set by the authorization phases which come - after the URL translation phase where mod_rewrite - operates. On the other hand, because mod_rewrite implements + per-server context (httpd.conf file) you must + use %{LA-U:REMOTE_USER} - this + variable is set by the authorization phases, which come + after the URL translation phase (during which mod_rewrite + operates).

      +

      On the other hand, because mod_rewrite implements its per-directory context (.htaccess file) via the Fixup phase of the API and because the authorization phases come before this phase, you just can use - %{REMOTE_USER} there.

    15. + %{REMOTE_USER} in that context.

      -
    16. There is the special format: - %{LA-F:variable} which performs an internal - (filename-based) sub-request to determine the final value - of variable. Most of the time this is the same as +
    17. + %{LA-F:variable} can be used to perform an internal + (filename-based) sub-request, to determine the final value + of variable. Most of the time, this is the same as LA-U above.

    CondPattern is the condition pattern, - i.e., a regular expression which is applied to the - current instance of the TestString, i.e., - TestString is evaluated and then matched against + a regular expression which is applied to the + current instance of the TestString. + TestString is first evaluated, before being matched against CondPattern.

    Remember: CondPattern is a @@ -491,98 +480,99 @@ Result: use one of the following:

      -
    • '<CondPattern' (is lexically - lower)
      - Treats the CondPattern as a plain string and - compares it lexically to TestString. True if - TestString is lexically lower than +
    • '<CondPattern' (lexicographically + precedes)
      + Treats the CondPattern as a plain string and + compares it lexicographically to TestString. True if + TestString lexicographically precedes CondPattern.
    • -
    • '>CondPattern' (is lexically - greater)
      - Treats the CondPattern as a plain string and - compares it lexically to TestString. True if - TestString is lexically greater than +
    • '>CondPattern' (lexicographically + follows)
      + Treats the CondPattern as a plain string and + compares it lexicographically to TestString. True if + TestString lexicographically follows CondPattern.
    • -
    • '=CondPattern' (is lexically +
    • '=CondPattern' (lexicographically equal)
      - Treats the CondPattern as a plain string and - compares it lexically to TestString. True if - TestString is lexically equal to - CondPattern, i.e the two strings are exactly - equal (character by character). If CondPattern - is just "" (two quotation marks) this + Treats the CondPattern as a plain string and + compares it lexicographically to TestString. True if + TestString is lexicographically equal to + CondPattern (the two strings are exactly + equal, character for character). If CondPattern + is "" (two quotation marks) this compares TestString to the empty string.
    • '-d' (is directory)
      Treats the TestString as a pathname and tests - if it exists and is a directory.
    • + whether or not it exists, and is a directory.
    • '-f' (is regular file)
      Treats the TestString as a pathname and tests - if it exists and is a regular file.
    • + whether or not it exists, and is a regular file. -
    • '-s' (is regular file with +
    • '-s' (is regular file, with size)
      - Treats the TestString as a pathname and tests - if it exists and is a regular file with size greater + Treats the TestString as a pathname and tests + whether or not it exists, and is a regular file with size greater than zero.
    • '-l' (is symbolic link)
      - Treats the TestString as a pathname and tests - if it exists and is a symbolic link.
    • + Treats the TestString as a pathname and tests + whether or not it exists, and is a symbolic link.
    • '-x' (has executable permissions)
      Treats the TestString as a pathname and tests - if it exists and has execution permissions. These permissions - are determined depending on the underlying OS.
    • + whether or not it exists, and has executable permissions. + These permissions are determined according to + the underlying OS. -
    • '-F' (is existing file via +
    • '-F' (is existing file, via subrequest)
      - Checks if TestString is a valid file and + Checks whether or not TestString is a valid file, accessible via all the server's currently-configured access controls for that path. This uses an internal - subrequest to determine the check, so use it with care - because it decreases your servers performance!
    • + subrequest to do the check, so use it with care - + it can impact your server's performance! -
    • '-U' (is existing URL via +
    • '-U' (is existing URL, via subrequest)
      - Checks if TestString is a valid URL and + Checks whether or not TestString is a valid URL, accessible via all the server's currently-configured access controls for that path. This uses an internal - subrequest to determine the check, so use it with care - because it decreases your server's performance!

    • + subrequest to do the check, so use it with care - + it can impact your server's performance!

      +

      This flag only returns information about things + like access control, authentication, and authorization. This flag + does not return information about the status code the + configured handler (static file, CGI, proxy, etc.) would have + returned.

    -

    Notice

    +

    Note:

    All of these tests can also be prefixed by an exclamation mark ('!') to negate their meaning.
    - -

    Additionally you can set special flags for - CondPattern by appending

    - -

    +

  • You can also set special flags for + CondPattern by appending [flags] -

    - -

    as the third argument to the RewriteCond - directive. Flags is a comma-separated list of the - following flags:

    + as the third argument to the RewriteCond + directive, where flags is a comma-separated list of any of the + following flags:
    • 'nocase|NC' (no case)
      - This makes the test case-insensitive, i.e., there - is no difference between 'A-Z' and 'a-z' both in the + This makes the test case-insensitive - differences + between 'A-Z' and 'a-z' are ignored, both in the expanded TestString and the CondPattern. This flag is effective only for comparisons between TestString and CondPattern. It has no @@ -591,20 +581,30 @@ Result:
    • 'ornext|OR' (or next condition)
      - Use this to combine rule conditions with a local OR + Use this to combine rule conditions with a local OR instead of the implicit AND. Typical example: -
      -RewriteCond %{REMOTE_HOST}  ^host1.*  [OR]
      -RewriteCond %{REMOTE_HOST}  ^host2.*  [OR]
      -RewriteCond %{REMOTE_HOST}  ^host3.*
      -RewriteRule ...some special stuff for any of these hosts...
      -
      +
      RewriteCond %{REMOTE_HOST}  =host1  [OR]
      +RewriteCond %{REMOTE_HOST}  =host2  [OR]
      +RewriteCond %{REMOTE_HOST}  =host3
      +RewriteRule ...some special stuff for any of these hosts...
      - Without this flag you would have to write the cond/rule - three times. + Without this flag you would have to write the condition/rule + pair three times. +
    • + +
    • 'novary|NV' + (no vary)
      + If a HTTP header is used in the condition, this flag prevents + this header from being added to the Vary header of the response.
      + Using this flag might break proper caching of the response if + the representation of this response varies on the value of this header. + So this flag should be only used if the meaning of the Vary header + is well understood.
    +
  • +

    Example:

    @@ -612,23 +612,24 @@ RewriteRule ...some special stuff for any of these hosts... ``User-Agent:'' header of the request, you can use the following:

    -
    -RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*
    +
    RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla
     RewriteRule  ^/$                 /homepage.max.html  [L]
     
    -RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
    +RewriteCond  %{HTTP_USER_AGENT}  ^Lynx
     RewriteRule  ^/$                 /homepage.min.html  [L]
     
    -RewriteRule  ^/$                 /homepage.std.html  [L]
    -
    +RewriteRule ^/$ /homepage.std.html [L]
    -

    Interpretation: If you use Netscape Navigator as your - browser (which identifies itself as 'Mozilla'), then you - get the max homepage, which includes Frames, etc. - If you use the Lynx browser (which is Terminal-based), then - you get the min homepage, which contains no images, no - tables, etc. If you use any other browser you get - the standard homepage.

    +

    Explanation: If you use a browser which identifies itself + as 'Mozilla' (including Netscape Navigator, Mozilla etc), then you + get the max homepage (which could include frames, or other special + features). + If you use the Lynx browser (which is terminal-based), then + you get the min homepage (which could be a version designed for + easy, text-only browsing). + If neither of these conditions apply (you use any other browser, + or your browser identifies itself as something non-standard), you get + the std (standard) homepage.

    @@ -653,10 +654,15 @@ RewriteRule ^/$ /homepage.std.html [L]

    Use this directive to disable the module instead of commenting out all the RewriteRule directives!

    -

    Note that, by default, rewrite configurations are not - inherited. This means that you need to have a +

    Note that rewrite configurations are not + inherited by virtual hosts. This means that you need to have a RewriteEngine on directive for each virtual host - in which you wish to use it.

    + in which you wish to use rewrite rules.

    + +

    RewriteMap directives of the type prg + are not started during server initialization if they're defined in a + context that does not have RewriteEngine set to + on

    top
    @@ -682,7 +688,7 @@ synchronization - + @@ -705,16 +711,37 @@ processing directive or use RewriteLogLevel 0! +

    The RewriteLog log file format is as + follows:

    + +
    Description:Sets the name of the file used for logging rewrite engine processing
    Syntax:RewriteLog file-path
    Syntax:RewriteLog file-path|pipe
    Context:server config, virtual host
    Status:Extension
    Module:mod_rewrite
    + + + + + + + + + + + +
    Description Example
    Remote host IP address192.168.200.166
    Remote login nameWill usually be "-"
    HTTP user auth nameUsername, or "-" if no auth
    Date and time of request[28/Aug/2009:13:09:09 --0400]
    Virtualhost and virtualhost ID[www.example.com/sid#84a650]
    Request ID, and whether it's a subrequest[rid#9f0e58/subreq]
    Log entry severity level(2)
    Text error messageforcing proxy-throughput with http://127.0.0.1:8080/index.html
    +

    Security

    See the Apache Security Tips -document for details on why your security could be compromised if the +document for details on how your security could be compromised if the directory where logfiles are stored is writable by anyone other than the user that starts the server.

    Example

    -RewriteLog "/usr/local/var/apache/logs/rewrite.log" +# Log to a file:
    +RewriteLog "/usr/local/var/apache/logs/rewrite.log"
    +
    +# Log to a pipe:
    +RewriteLog "|/path/to/parser.pl"

    @@ -782,12 +809,14 @@ Apache 2.0.41 and later }

    -

    When such a construct occurs the map MapName is +

    When such a construct occurs, the map MapName is consulted and the key LookupKey is looked-up. If the key is found, the map-function construct is substituted by SubstValue. If the key is not found then it is substituted by DefaultValue or by the empty string - if no DefaultValue was specified.

    + if no DefaultValue was specified. Empty values + behave as if the key was absent, therefore it is not possible + to distinguish between empty-valued keys and absent keys.

    For example, you might define a RewriteMap as:

    @@ -823,14 +852,12 @@ Apache 2.0.41 and later SubstValue

    -

    Example

    -##
    +

    Example

    ##
     ##  map.txt -- rewriting map
     ##
     
     Ralf.S.Engelschall    rse   # Bastard Operator From Hell
    -Mr.Joe.Average        joe   # Mr. Average
    -
    +Mr.Joe.Average joe # Mr. Average

    RewriteMap real-to-user txt:/path/to/file/map.txt @@ -850,19 +877,17 @@ RewriteMap real-to-user txt:/path/to/file/map.txt alternatives from which the actual returned value is chosen randomly. For example, you might use the following map file and directives to provide a random load balancing between - several back-end server, via a reverse-proxy. Images are sent + several back-end servers, via a reverse-proxy. Images are sent to one of the servers in the 'static' pool, while everything else is sent to one of the 'dynamic' pool.

    Example:

    -

    Rewrite map file

    -##
    +

    Rewrite map file

    ##
     ##  map.txt -- rewriting map
     ##
     
     static   www1|www2|www3|www4
    -dynamic  www5|www6
    -
    +dynamic www5|www6

    Configuration directives

    RewriteMap servers rnd:/path/to/file/map.txt
    @@ -884,37 +909,12 @@ RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L] fast lookups. The type can be sdbm, gdbm, ndbm, or db depending on compile-time settings. If the type is omitted, the - compile-time default will be chosen. You can create such a - file with any DBM tool or with the following Perl - script. Be sure to adjust it to create the appropriate - type of DBM. The example creates an NDBM file.

    - -
    -#!/path/to/bin/perl
    -##
    -##  txt2dbm -- convert txt map to dbm format
    -##
    -
    -use NDBM_File;
    -use Fcntl;
    -
    -($txtmap, $dbmmap) = @ARGV;
    -
    -open(TXT, "<$txtmap") or die "Couldn't open $txtmap!\n";
    -tie (%DB, 'NDBM_File', $dbmmap,O_RDWR|O_TRUNC|O_CREAT, 0644)
    -  or die "Couldn't create $dbmmap!\n";
    +          compile-time default will be chosen.

    -while (<TXT>) { - next if (/^\s*#/ or /^\s*$/); - $DB{$1} = $2 if (/^\s*(\S+)\s+(\S+)/); -} - -untie %DB; -close(TXT); -
    +

    To create a dbm file from a source text file, use the httxt2dbm utility.

    -$ txt2dbm map.txt map.db +$ httxt2dbm -i mapfile.txt -o mapfile.map

    @@ -923,23 +923,25 @@ $ txt2dbm map.txt map.db MapType: int, MapSource: Internal Apache function -

    Here the source is an internal Apache function. - Currently you cannot create your own, but the following - functions already exists:

    +

    Here, the source is an internal Apache function. + Module authors can provide additional internal functions by registering + them with the ap_register_rewrite_mapfunc API. + The functions that are provided by default are: +

    • toupper:
      - Converts the looked up key to all upper case.
    • + Converts the key to all upper case.
    • tolower:
      - Converts the looked up key to all lower case.
    • + Converts the key to all lower case.
    • escape:
      - Translates special characters in the looked up key to + Translates special characters in the key to hex-encodings.
    • unescape:
      - Translates hex-encodings in the looked up key back to + Translates hex-encodings in the key back to special characters.
    @@ -950,15 +952,15 @@ $ txt2dbm map.txt map.db path to valid regular file

    Here the source is a program, not a map file. To - create it you can use the language of your choice, but - the result has to be a executable (i.e., either + create it you can use a language of your choice, but + the result has to be an executable program (either object-code or a script with the magic cookie trick '#!/path/to/interpreter' as the first line).

    -

    This program is started once at startup of the Apache - servers and then communicates with the rewriting engine - over its stdin and stdout +

    This program is started once, when the Apache server + is started, and then communicates with the rewriting engine + via its stdin and stdout file-handles. For each map-function lookup it will receive the key to lookup as a newline-terminated string on stdin. It then has to give back the @@ -969,29 +971,31 @@ $ txt2dbm map.txt map.db program which will implement a 1:1 map (i.e., key == value) could be:

    -
    -#!/usr/bin/perl
    +          

    External rewriting programs are not started if they're defined in a + context that does not have RewriteEngine set to + on.

    + +
    #!/usr/bin/perl
     $| = 1;
     while (<STDIN>) {
         # ...put here any transformations or lookups...
         print $_;
    -}
    -
    +}

    But be very careful:

      -
    1. ``Keep it simple, stupid'' (KISS), because - if this program hangs it will hang the Apache server - when the rule occurs.
    2. +
    3. ``Keep it simple, stupid'' (KISS). + If this program hangs, it will cause Apache to hang + when trying to use the relevant rewrite rule.
    4. -
    5. Avoid one common mistake: never do buffered I/O on - stdout! This will cause a deadloop! Hence - the ``$|=1'' in the above example...
    6. +
    7. A common mistake is to use buffered I/O on + stdout. Avoid this, as it will cause a deadloop! + ``$|=1'' is used above, to prevent this.
    8. -
    9. Use the RewriteLock directive to - define a lockfile mod_rewrite can use to synchronize the - communication to the program. By default no such +
    10. The RewriteLock directive can + be used to define a lockfile which mod_rewrite can use to synchronize + communication with the mapping program. By default no such synchronization takes place.
    @@ -1028,117 +1032,227 @@ later

    The RewriteOptions directive sets some special options for the current per-server or per-directory - configuration. The Option string can be currently only one:

    + configuration. The Option string can currently + only be one of the following:

    inherit
    -
    This forces the current configuration to inherit the - configuration of the parent. In per-virtual-server context +
    + +

    This forces the current configuration to inherit the + configuration of the parent. In per-virtual-server context, this means that the maps, conditions and rules of the main server are inherited. In per-directory context this means that conditions and rules of the parent directory's - .htaccess configuration are inherited.

    + .htaccess configuration are inherited.

    + +
    + Rules inherited from the parent scope are applied + after rules specified in the child scope. +
    + + + +
    AllowAnyURI
    +
    + +

    When RewriteRule + is used in VirtualHost or server context with + version 2.2.23 or later of httpd, mod_rewrite + will only process the rewrite rules if the request URI is a URL-path. This avoids + some security issues where particular rules could allow + "surprising" pattern expansions (see CVE-2011-3368 + and CVE-2011-4317). + To lift the restriction on matching a URL-path, the + AllowAnyURI option can be enabled, and + mod_rewrite will apply the rule set to any + request URI string, regardless of whether that string matches + the URL-path grammar required by the HTTP specification.

    + +
    +

    Security Warning

    + +

    Enabling this option will make the server vulnerable to + security issues if used with rewrite rules which are not + carefully authored. It is strongly recommended + that this option is not used. In particular, beware of input + strings containing the '@' character which could + change the interpretation of the transformed URI, as per the + above CVE names.

    +
    +
    + +
    MergeBase
    +
    + +

    With this option, the value of RewriteBase is copied from where it's explicitly defined + into any sub-directory or sub-location that doesn't define its own + RewriteBase. Not copying + was the default until 2.2.22. In version 2.2.23 copying was the default. + The flag to explicitly control it is available for Apache HTTP + Server 2.2.24 and later.

    +
    +
    top

    RewriteRule Directive

    + PatternSubstitution [flags] -
    Description:Defines rules for the rewriting engine
    Syntax:RewriteRule - Pattern Substitution
    Context:server config, virtual host, directory, .htaccess
    Override:FileInfo
    Status:Extension
    Module:mod_rewrite
    Compatibility:The cookie-flag is available in Apache 2.0.40 and later.

    The RewriteRule directive is the real - rewriting workhorse. The directive can occur more than once. - Each directive then defines one single rewriting rule. The - definition order of these rules is - important, because this order is used when - applying the rules at run-time.

    + rewriting workhorse. The directive can occur more than once, + with each instance defining a single rewrite rule. The + order in which these rules are defined is important - this is the order + in which they will be applied at run-time.

    Pattern is a perl compatible regular - expression which gets applied to the current URL. Here - ``current'' means the value of the URL when this rule gets - applied. This may not be the originally requested URL, - because any number of rules may already have matched and made - alterations to it.

    + expression. On the first RewriteRule it is applied to the (%-decoded) + URL-path of the request; + subsequent patterns are applied to the output of the last matched + RewriteRule.

    + +

    What is matched?

    +

    In VirtualHost context, + The Pattern will initially be matched against the part of the + URL after the hostname and port, and before the query string (e.g. "/app1/index.html").

    + +

    In Directory and htaccess context, + the Pattern will initially be matched against the + filesystem path, after removing the prefix that led the server + to the current RewriteRule (e.g. "app1/index.html" + or "index.html" depending on where the directives are defined).

    + +

    If you wish to match against the hostname, port, or query string, use a + RewriteCond with the + %{HTTP_HOST}, %{SERVER_PORT}, or + %{QUERY_STRING} variables respectively.

    -

    Some hints about the syntax of regular expressions:

    +
    -
    -Text:
    -  .           Any single character
    -  [chars]     Character class: One  of chars
    -  [^chars]    Character class: None of chars
    -  text1|text2 Alternative: text1 or text2
    -
    -Quantifiers:
    -  ?           0 or 1 of the preceding text
    -  *           0 or N of the preceding text (N > 0)
    -  +           1 or N of the preceding text (N > 1)
    -
    -Grouping:
    -  (text)      Grouping of text
    -              (either to set the borders of an alternative or
    -              for making backreferences where the Nth group can 
    -              be used on the RHS of a RewriteRule with $N)
    -
    -Anchors:
    -  ^           Start of line anchor
    -  $           End   of line anchor
    -
    -Escaping:
    -  \char       escape that particular char
    -              (for instance to specify the chars ".[]()" etc.)
    -
    - -

    For more information about regular expressions have a look at the - perl regular expression manpage ("perldoc - perlre"). If you are interested in more detailed - information about regular expressions and their variants - (POSIX regex etc.) have a look at the - following dedicated book on this topic:

    +

    Per-directory Rewrites

    +
      +
    • The rewrite engine may be used in .htaccess files and in <Directory> sections, with some additional +complexity.
    • -

      - Mastering Regular Expressions, 2nd Edition
      - Jeffrey E.F. Friedl
      - O'Reilly & Associates, Inc. 2002
      - ISBN 0-596-00289-0
      -

      +
    • To enable the rewrite engine in this context, you need to set +"RewriteEngine On" and +"Options FollowSymLinks" must be enabled. If your +administrator has disabled override of FollowSymLinks for +a user's directory, then you cannot use the rewrite engine. This +restriction is required for security reasons.
    • + +
    • When using the rewrite engine in .htaccess files the +per-directory prefix (which always is the same for a specific +directory) is automatically removed for the RewriteRule pattern matching +and automatically added after any relative (not starting with a +slash or protocol name) substitution encounters the end of a rule set. +See the RewriteBase +directive for more information regarding what prefix will be added back to +relative substitutions.
    • + +
    • If you wish to match against the full URL-path in a per-directory +(htaccess) RewriteRule, use the %{REQUEST_URI} variable in +a RewriteCond.
    • + +
    • The removed prefix always ends with a slash, meaning the matching occurs against a string which +never has a leading slash. Therefore, a Pattern with ^/ never +matches in per-directory context.
    • + +
    • Although rewrite rules are syntactically permitted in <Location> and <Files> sections, this +should never be necessary and is unsupported.
    • +
    +
    -

    Additionally in mod_rewrite the NOT character - ('!') is a possible pattern prefix. This gives - you the ability to negate a pattern; to say, for instance: +

    For some hints on regular + expressions, see + the mod_rewrite + Introduction.

    + +

    In mod_rewrite, the NOT character + ('!') is also available as a possible pattern + prefix. This enables you to negate a pattern; to say, for instance: ``if the current URL does NOT match this pattern''. This can be used for exceptional cases, where it is easier to match the negative pattern, or as a last default rule.

    -

    Notice

    -When using the NOT character - to negate a pattern you cannot have grouped wildcard - parts in the pattern. This is impossible because when the - pattern does NOT match, there are no contents for the - groups. In consequence, if negated patterns are used, you - cannot use $N in the substitution - string! + +

    Note

    +When using the NOT character to negate a pattern, you cannot include +grouped wildcard parts in that pattern. This is because, when the +pattern does NOT match (ie, the negation matches), there are no +contents for the groups. Thus, if negated patterns are used, you +cannot use $N in the substitution string!
    -

    Substitution of a - rewriting rule is the string which is substituted for (or - replaces) the original URL for which Pattern - matched. Beside plain text you can use

    +

    The Substitution of a + rewrite rule is the string that replaces the original URL-path that + was matched by Pattern. The Substitution may + be a:

    + +
    + +
    file-system path
    + +
    Designates the location on the file-system of the resource + to be delivered to the client. Substitutions are only + treated as a file-system path when the rule is configured in + server (virtualhost) context and the first component of the + path in the substitution is exists in the file-system
    + +
    URL-path
    + +
    A DocumentRoot-relative path to the + resource to be served. Note that mod_rewrite + tries to guess whether you have specified a file-system path + or a URL-path by checking to see if the first segment of the + path exists at the root of the file-system. For example, if + you specify a Substitution string of + /www/file.html, then this will be treated as a + URL-path unless a directory named www + exists at the root or your file-system (or, in the case of + using rewrites in a .htaccess file, relative to + your document root), in which case it will + be treated as a file-system path. If you wish other + URL-mapping directives (such as Alias) to be applied to the + resulting URL-path, use the [PT] flag as + described below.
    + +
    Absolute URL
    + +
    If an absolute URL is specified, + mod_rewrite checks to see whether the + hostname matches the current host. If it does, the scheme and + hostname are stripped out and the resulting path is treated as + a URL-path. Otherwise, an external redirect is performed for + the given URL. To force an external redirect back to the + current host, see the [R] flag below.
    + +
    - (dash)
    + +
    A dash indicates that no substitution should be performed + (the existing path is passed through untouched). This is used + when a flag (see below) needs to be applied without changing + the path.
    + +
    + +

    In addition to plain text, the Substition string can include

      -
    1. back-references $N to the RewriteRule +
    2. back-references ($N) to the RewriteRule pattern
    3. -
    4. back-references %N to the last matched +
    5. back-references (%N) to the last matched RewriteCond pattern
    6. server-variables as in rule condition test-strings @@ -1147,358 +1261,167 @@ When using the NOT character
    7. mapping-function calls (${mapname:key|default})
    -

    Back-references are $N - (N=0..9) identifiers which will be replaced + +

    Back-references are identifiers of the form + $N + (N=0..9), which will be replaced by the contents of the Nth group of the matched Pattern. The server-variables are the same as for the TestString of a RewriteCond directive. The mapping-functions come from the RewriteMap directive and are explained there. - These three types of variables are expanded in the order of - the above list.

    + These three types of variables are expanded in the order above.

    -

    As already mentioned above, all the rewriting rules are - applied to the Substitution (in the order of - definition in the config file). The URL is completely +

    Rewrite rules are applied to the results of previous rewrite + rules, in the order in which they are defined in the config file. + The URL is completely replaced by the Substitution and the - rewriting process goes on until there are no more rules - unless explicitly terminated by a - L flag - see below.

    - -

    There is a special substitution string named - '-' which means: NO - substitution! Sounds silly? No, it is useful to - provide rewriting rules which only match - some URLs but do no substitution, e.g., in - conjunction with the C (chain) flag to be - able to have more than one pattern to be applied before a - substitution occurs.

    - -

    Query String

    -

    The Pattern will not match against the query string. - Instead, you must use a RewriteCond with the - %{QUERY_STRING} variable. You can, however, create - URLs in the substitution string containing a query string - part. Just use a question mark inside the substitution string to - indicate that the following stuff should be re-injected into the - query string. When you want to erase an existing query string, - end the substitution string with just the question mark. To - combine a new query string with an old one, use the - [QSA] flag (see below).

    -
    - -

    Substitution of Absolute URLs

    -

    There is a special feature: - When you prefix a substitution field with - http://thishost[:thisport] - then mod_rewrite automatically strips it - out. This auto-reduction on implicit external redirect - URLs is a useful and important feature when used in - combination with a mapping-function which generates the - hostname part. Have a look at the first example in the - example section below to understand this.

    - -

    Remember: An unconditional external - redirect to your own server will not work with the prefix - http://thishost because of this feature. To - achieve such a self-redirect, you have to use the - R-flag (see below).

    -
    - -

    Additionally you can set special flags for Substitution by - appending

    - -

    - [flags] -

    -

    + rewriting process continues until all rules have been applied, + or it is explicitly terminated by a + L flag, + or other flag which implies immediate termination, such as + F.

    + +

    Modifying the Query String

    +

    By default, the query string is passed through unchanged. You + can, however, create URLs in the substitution string containing + a query string part. Simply use a question mark inside the + substitution string to indicate that the following text should + be re-injected into the query string. When you want to erase an + existing query string, end the substitution string with just a + question mark. To combine new and old query strings, use the + [QSA] flag.

    +
    + +

    Additionally you can set special actions to be performed by + appending [flags] as the third argument to the RewriteRule - directive. Flags is a comma-separated list of the - following flags:

    - -
      -
    • 'chain|C' - (chained with next rule)
      - This flag chains the current rule with the next rule - (which itself can be chained with the following rule, - etc.). This has the following effect: if a rule - matches, then processing continues as usual, i.e., - the flag has no effect. If the rule does - not match, then all following chained - rules are skipped. For instance, use it to remove the - ``.www'' part inside a per-directory rule set - when you let an external redirect happen (where the - ``.www'' part should not to occur!).
    • - -
    • - 'cookie|CO=NAME:VAL:domain[:lifetime[:path]]' - (set cookie)
      - This sets a cookie on the client's browser. The cookie's name - is specified by NAME and the value is - VAL. The domain field is the domain of the - cookie, such as '.apache.org',the optional lifetime - is the lifetime of the cookie in minutes, and the optional - path is the path of the cookie
    • - -
    • - 'env|E=VAR:VAL' - (set environment variable)
      - This forces an environment variable named VAR to - be set to the value VAL, where VAL can - contain regexp backreferences $N and - %N which will be expanded. You can use this - flag more than once to set more than one variable. The - variables can be later dereferenced in many situations, but - usually from within XSSI (via <!--#echo - var="VAR"-->) or CGI (e.g. - $ENV{'VAR'}). Additionally you can dereference - it in a following RewriteCond pattern via - %{ENV:VAR}. Use this to strip but remember - information from URLs.
    • - -
    • 'forbidden|F' (force URL - to be forbidden)
      - This forces the current URL to be forbidden, - i.e., it immediately sends back a HTTP response of - 403 (FORBIDDEN). Use this flag in conjunction with - appropriate RewriteConds to conditionally block some - URLs.
    • - -
    • 'gone|G' (force URL to be - gone)
      - This forces the current URL to be gone, i.e., it - immediately sends back a HTTP response of 410 (GONE). Use - this flag to mark pages which no longer exist as gone.
    • - -
    • - 'handler|H=Content-handler' - (force Content handler)
      - Force the Content-handler of the target file to be - Content-handler. For instance, this can be used to - simulate the mod_alias directive - ScriptAlias which internally forces all files - inside the mapped directory to have a handler of - ``cgi-script''.
    • - -
    • 'last|L' - (last rule)
      - Stop the rewriting process here and don't apply any more - rewriting rules. This corresponds to the Perl - last command or the break command - from the C language. Use this flag to prevent the currently - rewritten URL from being rewritten further by following - rules. For example, use it to rewrite the root-path URL - ('/') to a real one, e.g., - '/e/www/'.
    • - -
    • 'next|N' - (next round)
      - Re-run the rewriting process (starting again with the - first rewriting rule). Here the URL to match is again not - the original URL but the URL from the last rewriting rule. - This corresponds to the Perl next command or - the continue command from the C language. Use - this flag to restart the rewriting process, i.e., - to immediately go to the top of the loop.
      - But be careful not to create an infinite - loop!
    • - -
    • 'nocase|NC' - (no case)
      - This makes the Pattern case-insensitive, - i.e., there is no difference between 'A-Z' and - 'a-z' when Pattern is matched against the current - URL.
    • - -
    • - 'noescape|NE' - (no URI escaping of - output)
      - This flag keeps mod_rewrite from applying the usual URI - escaping rules to the result of a rewrite. Ordinarily, - special characters (such as '%', '$', ';', and so on) - will be escaped into their hexcode equivalents ('%25', - '%24', and '%3B', respectively); this flag prevents this - from being done. This allows percent symbols to appear in - the output, as in -

      - RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] -

      - - which would turn '/foo/zed' into a safe - request for '/bar?arg=P1=zed'. -
    • - -
    • - 'nosubreq|NS' (used only if - no internal - sub-request)
      - This flag forces the rewriting engine to skip a - rewriting rule if the current request is an internal - sub-request. For instance, sub-requests occur internally - in Apache when mod_include tries to find out - information about possible directory default files - (index.xxx). On sub-requests it is not - always useful and even sometimes causes a failure to if - the complete set of rules are applied. Use this flag to - exclude some rules.
      - - -

      Use the following rule for your decision: whenever you - prefix some URLs with CGI-scripts to force them to be - processed by the CGI-script, the chance is high that you - will run into problems (or even overhead) on - sub-requests. In these cases, use this flag.

      -
    • - -
    • - 'proxy|P' (force - proxy)
      - This flag forces the substitution part to be internally - forced as a proxy request and immediately (i.e., - rewriting rule processing stops here) put through the proxy module. You have to make - sure that the substitution string is a valid URI - (e.g., typically starting with - http://hostname) which can be - handled by the Apache proxy module. If not you get an - error from the proxy module. Use this flag to achieve a - more powerful implementation of the ProxyPass directive, - to map some remote stuff into the namespace of the local - server. - -

      Notice: mod_proxy must be enabled in order - to use this flag.

      -
    • - -
    • - 'passthrough|PT' - (pass through to next - handler)
      - This flag forces the rewriting engine to set the - uri field of the internal - request_rec structure to the value of the - filename field. This flag is just a hack to - be able to post-process the output of - RewriteRule directives by - Alias, ScriptAlias, - Redirect, etc. directives from - other URI-to-filename translators. A trivial example to - show the semantics: If you want to rewrite - /abc to /def via the rewriting - engine of mod_rewrite and then - /def to /ghi with - mod_alias: -

      - RewriteRule ^/abc(.*) /def$1 [PT]
      - Alias /def /ghi -

      - If you omit the PT flag then - mod_rewrite will do its job fine, - i.e., it rewrites uri=/abc/... to - filename=/def/... as a full API-compliant - URI-to-filename translator should do. Then - mod_alias comes and tries to do a - URI-to-filename transition which will not work. - -

      Note: You have to use this flag if you want to - intermix directives of different modules which contain - URL-to-filename translators. The typical example - is the use of mod_alias and - mod_rewrite..

      -
    • - -
    • 'qsappend|QSA' - (query string - append)
      - This flag forces the rewriting engine to append a query - string part in the substitution string to the existing one - instead of replacing it. Use this when you want to add more - data to the query string via a rewrite rule.
    • - -
    • 'redirect|R - [=code]' (force redirect)
      - Prefix Substitution with - http://thishost[:thisport]/ (which makes the - new URL a URI) to force a external redirection. If no - code is given a HTTP response of 302 (MOVED - TEMPORARILY) is used. If you want to use other response - codes in the range 300-400 just specify them as a number - or use one of the following symbolic names: - temp (default), permanent, - seeother. Use it for rules which should - canonicalize the URL and give it back to the client, - e.g., translate ``/~'' into - ``/u/'' or always append a slash to - /u/user, etc.
      - - -

      Note: When you use this flag, make - sure that the substitution field is a valid URL! If not, - you are redirecting to an invalid location! And remember - that this flag itself only prefixes the URL with - http://thishost[:thisport]/, rewriting - continues. Usually you also want to stop and do the - redirection immediately. To stop the rewriting you also - have to provide the 'L' flag.

      -
    • - -
    • 'skip|S=num' - (skip next rule(s))
      - This flag forces the rewriting engine to skip the next - num rules in sequence when the current rule - matches. Use this to make pseudo if-then-else constructs: - The last rule of the then-clause becomes - skip=N where N is the number of rules in the - else-clause. (This is not the same as the - 'chain|C' flag!)
    • - -
    • - 'type|T=MIME-type' - (force MIME type)
      - Force the MIME-type of the target file to be - MIME-type. For instance, this can be used to - setup the content-type based on some conditions. - For example, the following snippet allows .php files to - be displayed by mod_php if they are called with - the .phps extension: -

      - RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source] -

      -
    • - - -
    - -

    Note

    Never forget that Pattern is -applied to a complete URL in per-server configuration -files. But in per-directory configuration files, the -per-directory prefix (which always is the same for a specific -directory!) is automatically removed for the pattern matching -and automatically added after the substitution has been -done. This feature is essential for many sorts of rewriting, -because without this prefix stripping you have to match the parent -directory which is not always possible. - -

    There is one exception: If a substitution string - starts with ``http://'' then the directory - prefix will not be added and an - external redirect or proxy throughput (if flag - P is used!) is forced!

    -
    - -

    Note

    - To enable the rewriting engine - for per-directory configuration files you need to set - ``RewriteEngine On'' in these files - and ``Options - FollowSymLinks'' must be enabled. If your - administrator has disabled override of - FollowSymLinks for a user's directory, then - you cannot use the rewriting engine. This restriction is - needed for security reasons. + directive. Flags is a comma-separated list, surround by square + brackets, of any of the flags in the following table. More + details, and examples, for each flag, are available in the Rewrite Flags document.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Flag and syntaxFunction
    BEscape non-alphanumeric characters before applying + the transformation. details ...
    chain|CRule is chained to the following rule. If the rule fails, + the rule(s) chained to it will be skipped. details ...
    cookie|CO=NAME:VALSets a cookie in the client browser. Full syntax is: + CO=NAME:VAL:domain[:lifetime[:path[:secure[:httponly]]]] details ... +
    discardpath|DPICauses the PATH_INFO portion of the rewritten URI to be + discarded. details + ...
    env|E=[!]VAR[:VAL]Causes an environment variable VAR to be set (to the + value VAL if provided). The form !VAR causes + the environment variable VAR to be unset.details ...
    forbidden|FReturns a 403 FORBIDDEN response to the client browser. + details ...
    gone|GReturns a 410 GONE response to the client browser. details ...
    Handler|H=Content-handlerCauses the resulting URI to be sent to the specified + Content-handler for processing. details ...
    last|LStop the rewriting process immediately and don't apply any + more rules. Especially note caveats for per-directory and + .htaccess context. details ...
    next|NRe-run the rewriting process, starting again with the first + rule, using the result of the ruleset so far as a starting + point. details + ...
    nocase|NCMakes the pattern comparison case-insensitive. + details ...
    noescape|NEPrevent mod_rewrite from applying hexcode escaping of + special characters in the result of the rewrite. details ...
    nosubreq|NSCauses a rule to be skipped if the current request is an + internal sub-request. details ...
    proxy|PForce the substitution URL to be internally sent as a proxy + request. details + ...
    passthrough|PTForces the resulting URI to be passed back to the URL + mapping engine for processing of other URI-to-filename + translators, such as Alias or + Redirect. details ...
    qsappend|QSAAppends any query string from the original request URL to + any query string created in the rewrite target.details ...
    redirect|R[=code]Forces an external redirect, optionally with the specified + HTTP status code. details ... +
    skip|S=numTells the rewriting engine to skip the next num + rules if the current rule matches. details ...
    type|T=MIME-typeForce the MIME-type of the target file + to be the specified type. details ...
    + +

    Home directory expansion

    +

    When the substitution string begins with a string +resembling "/~user" (via explicit text or backreferences), mod_rewrite performs +home directory expansion independent of the presence or configuration +of mod_userdir.

    + +

    This expansion does not occur when the PT +flag is used on the RewriteRule +directive.

    -

    Here are all possible substitution combinations and their +

    Here are all possible substitution combinations and their meanings:

    Inside per-server configuration @@ -1510,25 +1433,25 @@ directory which is not always possible.

     Given Rule                                      Resulting Substitution
     ----------------------------------------------  ----------------------------------
    -^/somepath(.*) otherpath$1                      not supported, because invalid!
    +^/somepath(.*) otherpath$1                      invalid, not supported
     
    -^/somepath(.*) otherpath$1  [R]                 not supported, because invalid!
    +^/somepath(.*) otherpath$1  [R]                 invalid, not supported
     
    -^/somepath(.*) otherpath$1  [P]                 not supported, because invalid!
    +^/somepath(.*) otherpath$1  [P]                 invalid, not supported
     ----------------------------------------------  ----------------------------------
     ^/somepath(.*) /otherpath$1                     /otherpath/pathinfo
     
     ^/somepath(.*) /otherpath$1 [R]                 http://thishost/otherpath/pathinfo
                                                     via external redirection
     
    -^/somepath(.*) /otherpath$1 [P]                 not supported, because silly!
    +^/somepath(.*) /otherpath$1 [P]                 doesn't make sense, not supported
     ----------------------------------------------  ----------------------------------
     ^/somepath(.*) http://thishost/otherpath$1      /otherpath/pathinfo
     
     ^/somepath(.*) http://thishost/otherpath$1 [R]  http://thishost/otherpath/pathinfo
                                                     via external redirection
     
    -^/somepath(.*) http://thishost/otherpath$1 [P]  not supported, because silly!
    +^/somepath(.*) http://thishost/otherpath$1 [P]  doesn't make sense, not supported
     ----------------------------------------------  ----------------------------------
     ^/somepath(.*) http://otherhost/otherpath$1     http://otherhost/otherpath/pathinfo
                                                     via external redirection
    @@ -1538,13 +1461,11 @@ directory which is not always possible.
                                                     (the [R] flag is redundant)
     
     ^/somepath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
    -                                                via internal proxy
    -
    + via internal proxy

    Inside per-directory configuration for /somepath
    - (i.e., file .htaccess in dir - /physical/path/to/somepath containing + (/physical/path/to/somepath/.htaccess, with RewriteBase /somepath)
    for request ``GET /somepath/localpath/pathinfo'':

    @@ -1558,21 +1479,21 @@ directory which is not always possible. ^localpath(.*) otherpath$1 [R] http://thishost/somepath/otherpath/pathinfo via external redirection -^localpath(.*) otherpath$1 [P] not supported, because silly! +^localpath(.*) otherpath$1 [P] doesn't make sense, not supported ---------------------------------------------- ---------------------------------- ^localpath(.*) /otherpath$1 /otherpath/pathinfo ^localpath(.*) /otherpath$1 [R] http://thishost/otherpath/pathinfo via external redirection -^localpath(.*) /otherpath$1 [P] not supported, because silly! +^localpath(.*) /otherpath$1 [P] doesn't make sense, not supported ---------------------------------------------- ---------------------------------- ^localpath(.*) http://thishost/otherpath$1 /otherpath/pathinfo ^localpath(.*) http://thishost/otherpath$1 [R] http://thishost/otherpath/pathinfo via external redirection -^localpath(.*) http://thishost/otherpath$1 [P] not supported, because silly! +^localpath(.*) http://thishost/otherpath$1 [P] doesn't make sense, not supported ---------------------------------------------- ---------------------------------- ^localpath(.*) http://otherhost/otherpath$1 http://otherhost/otherpath/pathinfo via external redirection @@ -1582,41 +1503,35 @@ directory which is not always possible. (the [R] flag is redundant) ^localpath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo - via internal proxy -

    - -

    Example:

    - -

    We want to rewrite URLs of the form

    - -

    - / Language /~ - Realname /.../ File -

    - -

    into

    - -

    - /u/ Username /.../ - File . Language -

    - -

    We take the rewrite mapfile from above and save it under - /path/to/file/map.txt. Then we only have to - add the following lines to the Apache server configuration - file:

    - -
    -RewriteLog   /path/to/file/rewrite.log
    -RewriteMap   real-to-user               txt:/path/to/file/map.txt
    -RewriteRule  ^/([^/]+)/~([^/]+)/(.*)$   /u/${real-to-user:$2|nobody}/$3.$1
    -
    + via internal proxy
    -

    Available Languages:  en 

    -
    +

    Available Languages:  en  | + fr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_rewrite.html.fr b/docs/manual/mod/mod_rewrite.html.fr new file mode 100644 index 00000000000..317931cba70 --- /dev/null +++ b/docs/manual/mod/mod_rewrite.html.fr @@ -0,0 +1,1679 @@ + + + + + +mod_rewrite - Serveur Apache HTTP Version 2.2 + + + + + + + + +
    <-
    + +
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Module Apache mod_rewrite

    +
    +

    Langues Disponibles:  en  | + fr 

    +
    + + + + +
    Description:Ce module fournit un moteur de réécriture à base de +règles permettant de réécrire les URLs des requêtes +à la volée
    Statut:Extension
    Identificateur de Module:rewrite_module
    Fichier Source:mod_rewrite.c
    Compatibilité:Disponible à partir de la version 1.3 +d'Apache
    +

    Sommaire

    + +

    Ce module utilise un moteur de réécriture à base de règles + (basé sur un interpréteur d'expressions rationnelles) pour + réécrire les URLs des requêtes à la volée. Il accepte un nombre + illimité de règles, ainsi q'un nombre illimité de conditions + attachées à chaque règle, fournissant ainsi un mécanisme de + manipulation d'URL vraiment souple et puissant. Les manipulations + d'URL peuvent dépendre de nombreux tests, des variables du + serveur, des variables d'environnement, des en-têtes HTTP ou de + l'horodatage. On peut même lancer des requêtes vers une base de + données externe sous divers formats, afin d'obtenir une + sélection d'URL très fine.

    + +

    Ce module agit sur l'ensemble de l'URL (la partie concernant + le chemin incluse) au niveau du serveur + (httpd.conf) mais aussi au niveau du répertoire + (.htaccess), et peut générer des parties de chaîne + de requête comme résultat. Le résultat de la réécriture peut + renvoyer vers un sous-traitement interne, une redirection vers + une requête externe, ou même vers le flux d'un proxy interne.

    + +

    Vous trouverez d'avantage de détails, discussions et exemples + dans la + documentation détaillée + sur mod_rewrite.

    +
    + +
    top
    +
    +

    Marquage des caractères spéciaux

    + +

    Depuis Apache 1.3.20, les caractères spéciaux dans les + chaînes de test et les chaînes de Substitution + peuvent être échappés (c'est à dire traités comme des caractères + normaux sans tenir compte de leur signification en tant que + caractère spécial), en les faisant précéder d'un caractère + anti-slash ('\'). En d'autres termes, vous pouvez inclure un + véritable signe "dollar" dans une chaîne de Substitution + en utilisant '\$' ; ceci empêche mod_rewrite de le + traiter comme une référence arrière.

    +
    top
    +
    +

    Variables d'environnement

    + +

    Ce module conserve le contenu de deux variables d'environnement + CGI/SSI additionnelles (non standards) nommées + SCRIPT_URL et SCRIPT_URI. Celles-ci + contiennent l'adresse logique vue du Web + de la ressource concernée, tandis que les variables CGI/SSI + standards SCRIPT_NAME et + SCRIPT_FILENAME contiennent l'adresse + physique de la ressource vue du système.

    + +

    Note : ces variables conservent l'URI/URL telle qu'elle + était à l'arrivée de la requête, c'est à dire + avant tout processus de réécriture. Il est important de + le savoir car le processus de réécriture est principalement + utilisé pour réécrire des URLs logiques en chemins physiques.

    + +

    Exemple

    SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
    +SCRIPT_FILENAME=/u/rse/.www/index.html
    +SCRIPT_URL=/u/rse/
    +SCRIPT_URI=http://en1.engelschall.com/u/rse/
    + +
    top
    +
    +

    Réécriture et hôtes virtuels

    + +

    Par défaut, les hôtes virtuels n'héritent pas de la + configuration de mod_rewrite telle qu'elle est + définie dans le contexte du serveur principal. Pour que la + configuration du serveur principal s'applique aux hôtes virtuels, + vous devez insérez les directives suivantes dans chaque section + <VirtualHost> :

    + +

    + RewriteEngine On
    + RewriteOptions Inherit +

    +
    top
    +
    +

    Solutions pratiques

    + +

    Vous trouverez de nombreux exemples d'utilisation courante (et + moins courante) de mod_rewrite dans la documentation spécifique à la réécriture.

    + +
    +
    top
    +

    Directive RewriteBase

    + + + + + + + + +
    Description:Définit l'URL de base pour les réécritures au niveau +répertoire
    Syntaxe:RewriteBase chemin_URL
    Défaut:None
    Contexte:répertoire, .htaccess
    AllowOverride:FileInfo
    Statut:Extension
    Module:mod_rewrite
    +

    La directive RewriteBase permet de + spécifier le préfixe d'URL à utiliser dans un contexte de + répertoire (htaccess) pour les directives + RewriteRule qui réécrivent vers un chemin + relatif.

    +

    Cette directive est obligatoire si vous utilisez un + chemin relatif dans une substitution, et dans un contexte de + répertoire (htaccess), sauf si au moins une de ces conditions est + vérifiée :

    +
      +
    • La requête initiale, ainsi que la substitution, sont dans + la DocumentRoot (c'est à + dire que pour y accéder, il n'est pas nécessaire d'utiliser + une directive telle qu'Alias).
    • +
    • Le chemin du système de fichiers vers le répertoire + contenant la RewriteRule, suffixé par + la substitution relative est aussi valide en tant qu'URL sur + le serveur (ce qui est rare).
    • +
    + +

    Dans l'exemple ci-dessous, la directive +RewriteBase est nécessaire afin d'éviter une +réécriture en http://example.com/opt/myapp-1.2.3/welcome.html car la +ressource n'était pas relative à la racine des documents. Cette erreur +de configuration aurait conduit le serveur à rechercher un répertoire +"opt" à la racine des documents.

    + +
    DocumentRoot /var/www/example.com
    +Alias /myapp /opt/myapp-1.2.3
    +<Directory /opt/myapp-1.2.3>
    +RewriteEngine On
    +RewriteBase /myapp/
    +RewriteRule ^index\.html$  welcome.html 
    +</Directory>
    + +
    +
    top
    +

    Directive RewriteCond

    + + + + + + + +
    Description:Définit une condition qui devra être satisfaite pour que +la réécriture soit effectuée +
    Syntaxe: RewriteCond + chaîne_de_test expression_de_comparaison
    Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
    AllowOverride:FileInfo
    Statut:Extension
    Module:mod_rewrite
    +

    La directive RewriteCond définit une + condition d'application d'une certaine règle. Une ou plusieurs + directives RewriteCond peuvent précéder + une directive + RewriteRule. La règle + qui suit n'est appliquée que si l'état actuel de l'URI + correspond à son modèle, et si les conditions sont satisfaites.

    + +

    chaîne_de_test est une chaîne de caractères qui peut + contenir, en plus du plein texte, les constructions étendues + suivantes :

    + +
      +
    • + références arrières de règle de réécriture : + ce sont des références arrières de la forme + $N (0 <= N <= 9), qui + donnent accès aux parties groupées (entre parenthèses) du + modèle tiré de la RewriteRule assujettie au + jeu de conditions concerné. +
    • +
    • + Références arrières de condition de réécriture + : ce sont des références arrières de la forme + %N (1 <= N <= 9), qui + donnent accès aux parties groupées (là aussi entre + parenthèses) du modèle de la dernière condition satisfaite + du jeu de conditions concerné. +
    • +
    • + extensions de table de réécriture : + ce sont des extensions de la forme ${nomTable:clé|défaut}. Voir + la documentation de + RewriteMap pour plus de détails. +
    • +
    • + Variables du serveur : + ce sont des variables de la forme + %{ NOM_DE_VARIABLE + } + %{ NOM_DE_VARIABLE + } où NOM_DE_VARIABLE + peut être une chaîne de caractères faisant partie de la + liste suivante : + + + + + + + + + + + + + + + + + + + + + + + + +
      En-têtes HTTP : connexion & requête: +
      + HTTP_USER_AGENT
      + HTTP_REFERER
      + HTTP_COOKIE
      + HTTP_FORWARDED
      + HTTP_HOST
      + HTTP_PROXY_CONNECTION
      + HTTP_ACCEPT
      +
      + REMOTE_ADDR
      + REMOTE_HOST
      + REMOTE_PORT
      + REMOTE_USER
      + REMOTE_IDENT
      + REQUEST_METHOD
      + SCRIPT_FILENAME
      + PATH_INFO
      + QUERY_STRING
      + AUTH_TYPE
      +
      +
      variables internes au serveur : date et heure : spéciaux :
      + DOCUMENT_ROOT
      + SERVER_ADMIN
      + SERVER_NAME
      + SERVER_ADDR
      + SERVER_PORT
      + SERVER_PROTOCOL
      + SERVER_SOFTWARE
      +
      + TIME_YEAR
      + TIME_MON
      + TIME_DAY
      + TIME_HOUR
      + TIME_MIN
      + TIME_SEC
      + TIME_WDAY
      + TIME
      +
      + API_VERSION
      + THE_REQUEST
      + REQUEST_URI
      + REQUEST_FILENAME
      + IS_SUBREQ
      + HTTPS
      +
      + +

      Toutes ces variables correspondent nom pour nom aux + en-têtes MIME HTTP, aux variables C du serveur Apache + ou aux champs struct tm du système Unix. + La plupart sont documentées dans une autre partie du + manuel ou dans la spécification CGI.

      + +

      SERVER_NAME et SERVER_PORT dépendent respectivement + des valeurs des directives UseCanonicalName et UseCanonicalPhysicalPort.

      + +

      Parmi les variables + spécifiques à mod_rewrite, ou trouve les suivantes :

      +
      +
      +
      IS_SUBREQ
      + +
      Contiendra le texte "true" si la requête en cours + de traitement est une sous-requête, "false" dans le + cas contraire. Une sous-requête est générée quand un + module a besoin de se référer à des fichiers ou URIs + addidionnels pour pouvoir mener à bien sa tâche.
      + +
      API_VERSION
      + +
      Il s'agit de la version de l'API des modules + Apache (l'interface interne entre le serveur et les + modules) dans la construction actuelle de httpd, + telle qu'elle est définie dans include/ap_mmn.h. La + version de l'API des modules correspond à la version + d'Apache utilisée (pour Apache 1.3.14, par exemple, + la version de l'API sera 19990320:10), mais cette + information intéresse principalement les + développeurs de modules.
      + +
      THE_REQUEST
      + +
      La ligne de requête HTTP complète envoyée par le + navigateur au serveur (par exemple, "GET + /index.html HTTP/1.1"), à l'exclusion de tout + en-tête ajouté par le navigateur. Cette + valeur n'a pas été déséchappée (décodée), à la + différence de la plupart des variables suivantes.
      + +
      REQUEST_URI
      + +
      La partie chemin de l'URI de la requête, comme + "/index.html". En particulier, ceci exclut la chaîne + de paramètres qui est quant à elle disponible via sa + propre variable QUERY_STRING.
      + +
      REQUEST_FILENAME
      + +
      Le chemin complet local au système de fichiers + du fichier ou du script correspondant + à la requête, s'il a déjà été déterminé par le serveur + au moment où on y fait référence. Dans le cas + contraire, et en particulier dans le cas d'un serveur + virtuel, REQUEST_FILENAME contient la + valeur de REQUEST_URI.
      + +
      HTTPS
      + +
      Contiendra le texte "on" si la connexion + utilise SSL/TLS, "off" dans le cas contraire + (L'utilisation de cette variable est pertinente, + indépendamment du fait que mod_ssl + soit chargé ou non).
      + +
      +
      +
    • +
    + +

    Autres points à connaître :

    + +
      +
    1. Les variables SCRIPT_FILENAME et REQUEST_FILENAME ont la + même valeur - celle du champ filename de la + structure interne du serveur Apache request_rec. + Le premier nom est bien connu en tant que variable CGI, + alors que le second est équivalent à REQUEST_URI (qui contient + la valeur du champ uri de la structure + request_rec).

      +

      Si une substitution survient, et si la réécriture se + poursuit, la valeur des deux variables est mise à jour en + conséquence.

      +

      Dans un contexte de serveur principal (c'est à dire avant que + la requête n'ait été mise en relation avec le système de + fichiers), SCRIPT_FILENAME et REQUEST_FILENAME ne peuvent pas + contenir le chemin local entier dans le système de fichiers, car + celui-ci n'a pas encore été déterminé à ce stade du traitement. + Les deux variables contiennent alors la valeur de REQUEST_URI. + Pour obtenir le chemin local entier associé à la requête dans le + système de fichiers + dans un contexte de serveur principal, utilisez une recherche + avant %{LA-U:REQUEST_FILENAME} pour déterminer la + valeur finale de REQUEST_FILENAME.

    2. + + +
    3. On peut aussi utiliser %{ENV:variable}, où + variable peut être remplacé par toute variable + d'environnement. Ces variables sont recherchées dans les + structures internes d'Apache, et (si elles n'y figurent pas) + via getenv() depuis le processus du serveur + Apache.
    4. + +
    5. Que mod_ssl soit chargé ou non, on peut + utiliser %{SSL:variable}, où variable + peut être remplacé par le nom d'une + variable + d'environnement SSL, mais la valeur produite sera toujours + une chaîne de caractères vide si mod_ssl n'est + pas chargé. Exemple : + %{SSL:SSL_CIPHER_USEKEYSIZE} peut correspondre + à 128. Ces variables sont + disponibles même si l'option StdEnvVars de la + directive SSLOptions n'a + pas été définie.
    6. + +
    7. Pour obtenir la valeur d'un en-tête contenu dans une requête + HTTP, on peut toujours utiliser %{HTTP:header}, + où header peut être remplacé par tout nom d'en-tête + MIME HTTP. Exemple : %{HTTP:Proxy-Connection} est + la valeur de l'en-tête HTTP ``Proxy-Connection:''. +

      Si une condition contient un en-tête HTTP, il est ajouté à + l'en-tête Vary de la réponse dans le cas où la condition est + évaluée à true pour la requête. Dans le cas contraire, il n'est + pas ajouté. L'ajout de l'en-tête HTTP à + l'en-tête Vary de la réponse s'avère nécessaire pour une mise + en cache correcte.

      +

      Il faut garder à l'esprit que les conditions suivent une + logique de court-circuit en cas de présence du drapeau + 'ornext|OR', si bien que + certaines d'entre elles sont susceptibles de ne pas être + évaluées du tout.

    8. + +
    9. On peut utiliser %{LA-U:variable} pour les + recherches en avant qui effectuent une sous-requête interne + (basée sur l'URL), pour déterminer la valeur finale de + variable. Cela peut servir à accéder à une variable + (nécessaire pour une réécriture) qui n'est pas disponible dans + la situation présente, mais le sera dans une phase ultérieure. +

      Par exemple, pour effectuer une réécriture qui tient compte + de la variable REMOTE_USER dans un contexte + niveau serveur (fichier httpd.conf), vous devez + utiliser %{LA-U:REMOTE_USER} ; cette variable est + définie au cours des phases d'autorisation, qui interviennent + après la phase de traduction de l'URL (pendant + laquelle agit mod_rewrite).

      +

      Par contre, comme mod_rewrite implémente son contexte + niveau répertoire (fichier .htaccess) via la + phase Fixup de l'API, et comme les phases d'autorisation + interviennent avant cette phase, vous ne pouvez + utiliser %{REMOTE_USER} que + dans le contexte niveau serveur.

    10. + +
    11. On peut utiliser %{LA-F:variable} pour + effectuer une sous-requête interne (basée sur un nom de + fichier), pour déterminer la valeur finale de + variable. La plupart du temps, elle est identique à + LA-U vue précédemment.
    12. +
    + +

    expression_de_comparaison est une expression + rationnelle qui est appliquée à l'instance actuelle de + chaîne_de_test. chaîne_de_test est d'abord + évaluée, puis comparée à + l'expression_de_comparaison.

    + +

    A savoir : + expression_de_comparaison est une + expression rationnelle compatible perl avec + quelques extensions :

    + +
      +
    1. Vous pouvez préfixer l'expression avec un caractère + '!' (point d'exclamation) pour indiquer une + expression de non-correspondance.
    2. + +
    3. Il existe certaines variantes spéciales + d'expressions de comparaison. A la place d'une + expression rationnelle, vous pouvez utiliser : + +
        +
      • '<expression' (inférieur au sens + lexicographique)
        + Traite l'expression comme une chaîne de + caractères et la compare lexicographiquement à + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est inférieure au sens + lexicographique à l'expression.
      • + +
      • '>expression' (supérieur au sens + lexicographique)
        + Traite l'expression comme une chaîne de + caractères et la compare lexicographiquement à + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est supérieure au sens + lexicographique à l'expression.
      • + +
      • '=expression' (égal au sens + lexicographique)
        + Traite l'expression comme une chaîne de + caractères et la compare lexicographiquement à + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est égale au sens + lexicographique à l'expression (les deux chaînes + sont exactement identiques, caractère pour caractère). Si + expression est "" (deux guillemets), + chaîne_de_test est comparée à la chaîne vide.
      • + +
      • '-d' (est un + répertoire)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un répertoire.
      • + +
      • '-f' (est un + fichier régulier)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un fichier régulier.
      • + +
      • '-s' (est un fichier régulier d'une + certaine taille)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un fichier régulier + dont la taille est supérieure à zéro.
      • + +
      • '-l' (est un + lien symbolique)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un lien + symbolique.
      • + +
      • '-x' (a le droit + d'exécussion)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et a le droit d'exécution. Ce droit est + déterminé en accord avec le système d'exploitation + sous-jacent.
      • + +
      • '-F' (test de l'existence d'un fichier + via une sous-requête)
        + Vérifie si chaîne_de_test est un fichier valide, + accessible à travers tous les contrôles d'accès du serveur + actuellement configurés pour ce chemin. C'est une + sous-requête interne qui effectue cette vérification - à + utiliser avec précautions car les performances du serveur + peuvent s'en trouver affectées !
      • + +
      • '-U' (test de l'existence d'une URL + via une sous-requête)
        + Vérifie si chaîne_de_test est une URL valide, + accessible à travers tous les contrôles d'accès du serveur + actuellement configurés pour ce chemin. C'est une + sous-requête interne qui effectue cette vérification - à + utiliser avec précautions car les performances du serveur + peuvent s'en trouver affectées !

        +

        Ce drapeau ne renvoie que des informations + concernant le contrôle d'accès, l'authentification et + l'autorisation. Il ne renvoie pas d'informations + concernant le code d'état que le gestionnaire configuré + (static file, CGI, proxy, etc...) aurait, quant à lui, + retourné.

      • +
      + +

      Note :

      + Tous ces tests peuvent aussi être préfixés par un point + d'exclamation ('!') pour inverser leur signification. +
      +
    4. + +
    5. Vous pouvez aussi définir certains drapeaux pour + l'expression_de_comparaison en ajoutant ces + [drapeaux] + comme troisième argument de la directive + RewriteCond, où drapeaux est un + sous-ensemble séparé par des virgules des drapeaux suivants : + +
        +
      • 'nocase|NC' + (no case)
        + Rend le test insensible à la casse - il n'est pas fait de + distinction entre majuscules et minuscules, à la fois dans le + développement de chaîne_de_test et dans + expression_de_comparaison. Ce drapeau n'est pris en + compte que lors d'une comparaison entre chaîne_de_test + et expression_de_comparaison. Il ne l'est pas pour les + vérification par sous-requêtes ou sur le système de + fichiers.
      • + +
      • + 'ornext|OR' + (ou condition suivante)
        + Permet de chaîner les conditions de règles avec un OU au + lieu du AND implicite. Exemple typique : + +
        RewriteCond %{REMOTE_HOST}  ^hote1  [OR]
        +RewriteCond %{REMOTE_HOST}  ^hote2  [OR]
        +RewriteCond %{REMOTE_HOST}  ^hote3
        +RewriteRule ...règles concernant tous ces hôtes...
        + + Sans ce drapeau, les paires + condition/règle devraient être écrites trois fois. +
      • + +
      • 'novary|NV' + (no vary)
        + Si la condition contient un en-tête HTTP, ce drapeau empêche + ce dernier d'être ajouté à l'en-tête Vary de la réponse.
        + L'utilisation de ce drapeau peut provoquer une mise en cache + incorrecte de la réponse, si la représentation de cette réponse + varie avec la valeur de l'en-tête considéré. Ce drapeau ne + devrait donc être utilisé que si l'on maîtrise parfaitement le + fonctionnement de l'en-tête Vary. +
      • +
      +
    6. +
    + +

    Exemple :

    + +

    Pour réécrire la page d'accueil d'un site en fonction de + l'en-tête ``User-Agent:'' de la requête, vous + pouvez utiliser ce qui suit :

    + +
    RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla
    +RewriteRule  ^/$                 /homepage.max.html  [L]
    +
    +RewriteCond  %{HTTP_USER_AGENT}  ^Lynx
    +RewriteRule  ^/$                 /homepage.min.html  [L]
    +
    +RewriteRule  ^/$                 /homepage.std.html  [L]
    + +

    Explications : si vous utilisez un navigateur + (Netscape Navigator, Mozilla etc) qui s'identifie comme + 'Mozilla', vous accèderez à la page d'accueil max (qui + peut contenir des frames, ou d'autres ressources + particulières). + Si vous utilisez le navigateur Lynx (qui est un navigateur + basé sur le texte), vous accèderez à une page d'accueil min + (qui peut être une version conçue pour une navigation simple + basée sur le texte). + Si aucune de ces conditions n'est satisfaite (vous utilisez tout + autre navigateur, ou votre navigateur s'identifie de manière non + standard), vous accèderez à la page d'accueil std + (standard).

    + + +
    +
    top
    +

    Directive RewriteEngine

    + + + + + + + + +
    Description:Active ou désactive l'exécution du +moteur de réécriture
    Syntaxe:RewriteEngine on|off
    Défaut:RewriteEngine off
    Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
    AllowOverride:FileInfo
    Statut:Extension
    Module:mod_rewrite
    + +

    La directive RewriteEngine active ou + désactive l'exécution du moteur de réécriture. Si sa valeur est + off, ce module n'exécutera aucun traitement et ne + mettra pas à jour les variables d'environnement + SCRIPT_URx.

    + +

    Pour désactiver le module, il vaut mieux utiliser cette + directive que commenter toutes les directives RewriteRule !

    + +

    Notez que les hôtes virtuels n'héritent pas des + configurations de réécriture. Ceci implique que vous devez + insérer une directive RewriteEngine on dans chaque + hôte virtuel pour lequel vous souhaitez utiliser des règles + de réécriture.

    + +

    Les directives RewriteMap du type + prg ne sont pas prises en compte au cours de + l'initialisation du serveur si elle ont été définies dans un + contexte où la directive RewriteEngine n'a + pas été définie à on.

    + +
    +
    top
    +

    Directive RewriteLock

    + + + + + + +
    Description:Définit le nom du fichier verrou utilisé pour la +synchronisation de RewriteMap
    Syntaxe:RewriteLock chemin du fichier verrou
    Contexte:configuration du serveur
    Statut:Extension
    Module:mod_rewrite
    +

    Cette directive définit le nom du fichier utilisé comme + fichier verrou de synchronisation nécessaire à mod_rewrite pour + communiquer avec les programmes liés à RewriteMap. Définissez ce + fichier verrou dans un chemin local (et non sur un montage NFS) + si vous voulez utiliser un programme de comparaison pour la + réécriture. Il n'est pas nécessaire pour les autres types de + comparaison pour la réécriture.

    + +
    +
    top
    +

    Directive RewriteLog

    + + + + + + +
    Description:Définit le nom du fichier utilisé pour la journalisation +des traitements du moteur de réécriture
    Syntaxe:RewriteLog chemin du fichier journal|redirection vers un pipe
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_rewrite
    +

    La directive RewriteLog définit le nom + du fichier dans lequel le serveur journalise tout processus de + réécriture qu'il effectue. Si le nom ne commence pas par un + slash ('/'), il est considéré comme relatif à la + Racine du serveur. Cette directive ne doit apparaître + qu'une seule fois dans la configuration du serveur.

    + +
    Il est déconseillé de positionner + chemin du fichier journal à /dev/null + pour désactiver la journalisation des processus de réécriture, + car même si le moteur de réécriture n'envoie plus sa sortie + dans un fichier, il continue à créer un fichier journal en + interne, ce qui va avoir pour effet de ralentir le + serveur sans fournir aucun avantage à l'administrateur ! + Pour désactiver la journalisation, vous pouvez + soit supprimer ou commenter la directive + RewriteLog, soit utiliser + RewriteLogLevel 0 ! +
    + +

    Le format de fichier journal RewriteLog se + présente comme suit :

    + + + + + + + + + + + + + +
    Description Exemple
    Adresse IP de l'hôte distant192.168.200.166
    Nom de login didtanten général "-"
    nom d'authentification de l'utilisateur HTTPnom +d'utilisateur, ou "-" si non authentifié
    Date et heure de la requête[28/Aug/2009:13:09:09 --0400]
    Serveur virtuel et son identifiant[www.example.com/sid#84a650]
    Identifiant de la requête et indication éventuelle qu'il s'agit +d'une sous-requête[rid#9f0e58/subreq]
    Niveau de sévérité de l'entrée du journal(2)
    Message d'erreur au format texteforcing proxy-throughput with http://127.0.0.1:8080/index.html
    + + +

    Sécurité

    + +Se référer au document +Conseils à propos +de la sécurité dans Apache pour plus de détails sur la manière +dont votre sécurité pourrait être compromise si le répertoire où se +trouvent les fichiers journaux est inscriptible par quiconque +autre que l'utilisateur qui démarre le serveur. +
    + +

    Exemple

    +# Journalisation dans un fichier :
    +RewriteLog "/usr/local/var/apache/logs/rewrite.log"
    +
    +# Journalisation redirigée vers un pipe:
    +RewriteLog "|/path/to/parser.pl" +

    + + +
    +
    top
    +

    Directive RewriteLogLevel

    + + + + + + + +
    Description:Définit la verbosité du fichier journal utilisé +par le moteur de réécriture
    Syntaxe:RewriteLogLevel niveau
    Défaut:RewriteLogLevel 0
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_rewrite
    +

    La directive RewriteLogLevel définit + le niveau de verbosité du fichier journal de réécriture. Le + niveau par défaut 0 signifie aucune journalisation, tandis que + 9 ou plus signifie que pratiquement toutes les actions sont + journalisées.

    + +

    Pour désactiver la journalisation des actions de réécriture, + positionnez simplement niveau à 0. Ceci désactive + toute journalisation des actions de réécriture.

    + +
    Utiliser une valeur élevée pour niveau va ralentir + considérablement votre serveur Apache ! N'utilisez une + journalisation de la réécriture à un niveau + supérieur à 2 qu'à des fins de débogage ! +
    + +

    Exemple

    +RewriteLogLevel 3 +

    + + +
    +
    top
    +

    Directive RewriteMap

    + + + + + + + +
    Description:Définit une fonction de mise en correspondance pour la +recherche de mots-clés
    Syntaxe:RewriteMap nom_de_la_correspondance type_de_correspondance:source_de_la_correspondance +
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_rewrite
    Compatibilité:Il est possible de choisir entre plusieurs types de +bases de données depuis la version 2.0.41 d'Apache
    +

    La directive RewriteMap définit une + Table de correspondance pour la réécriture que les + fonctions de mise en correspondance + peuvent utiliser dans les chaînes de substitution des règles + pour insérer/substituer des champs en recherchant des mots-clés. + La source utilisée pour cette recherche peut être de plusieurs + types.

    + +

    nom de la + correspondance est le nom de la table de correspondance + et servira à spécifier une fonction de mise en correspondance + pour les chaînes de substitution d'une règle de réécriture selon + une des constructions suivantes :

    + +

    + ${ nom de la + correspondance : + mot-clé }
    + ${ nom de la + correspondance : + mot-clé | valeur par défaut + }
    +

    + +

    Lorsqu'une telle construction est rencontrée, la table de + correspondance Nom de la correspondance est consultée + et la clé mot-clé recherchée. Si la clé est trouvée, la + construction est remplacée par + la valeur de remplacement. Si la clé n'est pas trouvée, + elle est remplacée par la valeur par défaut, ou par une + chaîne vide si aucune valeur par défaut n'est + spécifiée. La valeur vide se comporte comme si la + clé était absente ; il est donc impossible de distinguer une + valeur vide d'une absence de clé.

    + +

    Par exemple, vous pouvez définir une directive + RewriteMap comme suit

    + +

    + RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt +

    + +

    Vous pourrez ensuite utiliser cette table dans une + directive RewriteRule comme suit :

    + +

    + RewriteRule ^/ex/(.*) ${map-exemple:$1} +

    + +

    Les combinaisons suivantes pour type_de_correspondance + et source_de_la_correspondance + peuvent être utilisées :

    + +
      +
    • + Format texte standard
      + type de correspondance : txt, source de la + correspondance : chemin du système de fichiers Unix vers un + fichier régulier valide + +

      Il s'agit de la mise en oeuvre standard de la table de + correspondance pour la réécriture où + source_de_la_correspondance est un fichier ASCII + dont les différentes lignes sont soit des lignes vides, soit + des lignes de commentaires (commençant par un caractère "#"), + soit des paires de valeurs (une seule paire + par ligne) comme suit :

      + +

      + mot-clé + valeur de remplacement +

      + +

      Exemple

      ##
      +##  map.txt -- table de correspondance pour la réécriture
      +##
      +
      +Ralf.S.Engelschall    rse   # Bastard Operator From Hell
      +(traduction à votre convenance)
      +Mr.Joe.Average        joe   # Mr. Average
      + +

      +RewriteMap real-to-user txt:/chemin/vers/fichier/map.txt +

      +
    • + +
    • + Format texte avec valeurs aléatoires
      + type de correspondance: rnd, + source de la correspondance : chemin du système de fichiers + Unix vers un fichier régulier valide + +

      Ce format se différencie du format texte standard + précédent par l'ajout d'un traitement supplémentaire : en + plus de la recherche de clés, le fichier est interprété en + tenant compte de la présence éventuelle dans les valeurs de + remplacement de caractères ``|'' signifiant + ``ou''. En d'autres termes, ces caractères ``|'' + permettent de spécifier un jeu de valeurs parmi lesquelles + la valeur de retour sera choisie aléatoirement. Par exemple, + vous pouvez utiliser les fichier de correspondance et + directives suivants pour mettre en oeuvre une répartition de + charge aléatoire entre plusieurs serveurs en arrière-plan, + via un mandataire inverse. Les images sont envoyées à un des + serveurs de l'ensemble "statique", tandis que tout le + reste est envoyé à un des serveurs de l'ensemble + "dynamique".

      +

      Exemple:

      + +

      Fichier de correspondances pour la réécriture

      ##
      +##  map.txt -- correspondances pour la réécriture
      +##
      +
      +static   www1|www2|www3|www4
      +dynamic  www5|www6
      + +

      Directives de configuration

      +RewriteMap serveurs rnd:/chemin/vers/fichier/map.txt
      +
      +RewriteRule ^/(.*\.(png|gif|jpg)) http://${serveurs:static}/$1 +[NC,P,L]
      +RewriteRule ^/(.*) http://${serveurs:dynamic}/$1 [P,L] +

      +
    • + +
    • + Fichier à accès direct (Hash file)
      + type de correspondance : + dbm[=type], source de la + correspondance : chemin du système de fichiers Unix vers un + fichier régulier valide + +

      Ici, la source de la correspondance est un fichier binaire + au format DBM contenant les mêmes données qu'un fichier au + format Plein texte, mais selon une représentation + particulière optimisée en vue d'une recherche très rapide. + Le type peut être sdbm, gdbm, ndbm, ou db selon la + configuration à la compilation + . Si type est omis, la valeur retenue + sera la valeur par défaut définie à la compilation.

      + +

      La création du fichier dbm à partir d'un fichier texte + s'effectue à l'aide de l'utilitaire httxt2dbm.

      + +

      +$ httxt2dbm -i fichier-source.txt -o fichier-dbm.map +

      +
    • + +
    • + Fonction interne
      + type de la correspondance : int, + source de la correspondance : fonction interne à Apache + +

      Ici, la source de la correspondance est une fonction + interne à Apache. Les développeurs de modules peuvent + fournir des fonctions internes supplémentaires en les + enregistrant via l'API + ap_register_rewrite_mapfunc. Les fonctions + fournies par défaut sont :

      + +
        +
      • toupper:
        + Convertit tous les caractères de la clé en majuscules.
      • + +
      • tolower:
        + Convertit tous les caractères de la clé en minuscules.
      • + +
      • escape:
        + Traduit les caractères spéciaux que contient la clé en + séquences hexadécimales.
      • + +
      • unescape:
        + Reconvertit les séquences hexadécimales que contient la + clé en caractères spéciaux.
      • +
      +
    • + +
    • + Programme de réécriture externe
      + type de la correspondance : prg, + source de la correspondance : + chemin du système de fichiers Unix vers un + fichier régulier valide + +

      Ici, la source n'est pas un fichier de correspondances, + mais un programme. Pour le créer, vous pouvez utiliser le + langage de votre choix, mais le programme doit être un + exécutable (soit du code objet, soit un script + contenant le fameux + "#!/chemin/vers/interpréteur" au début de sa + première ligne).

      + +

      Ce programme est lancé une seule fois au démarrage du + serveur Apache, puis communique avec le moteur de réécriture + via ses entrée et sortie standards (stdin + et stdout). A chaque recherche effectuée par la + fonction de correspondance, il reçoit sur son entrée standard + la clé à rechercher sous la forme d'une chaîne de caractères + terminée par le caractère "nouvelle ligne". Il doit ensuite + renvoyer sur sa sortie standard la valeur recherchée sous + la forme d'une chaîne de caractères terminée par le caractère + "nouvelle ligne", ou la chaîne de quatre + caractères ``NULL'' en cas d'échec + (c'est à dire + si aucune valeur ne correspond à la clé fournie). Voici un + exemple de ce pourrait être un programme trivial qui + implémenterait une correspondance 1:1 (c'est à dire, + clé == valeur) :

      + +

      Les programmes de réécriture externes ne seront pas lancés + s'ils ont été définis dans un contexte où la directive + RewriteEngine n'a pas été définie à + on.

      + +
      #!/usr/bin/perl
      +$| = 1;
      +while (<STDIN>) {
      +    # ...insérer ici le code de transformation ou de recherche...
      +    print $_;
      +}
      + +

      Mais soyez très prudent :

      + +
        +
      1. ``Ce programme doit être simple, basique'' + (MERCI). + Si ce programme se bloque, il bloquera aussi Apache + lorsqu'il tentera d'utiliser la règle de réécriture + correspondante.
      2. + +
      3. L'utilisation d'entrées/sorties avec tampon sur + stdout est une erreur courante. Ceci est à + proscrire sous peine de créer une boucle infernale ! Pour + éviter ceci, on utilise ``$|=1'' comme dans + l'exemple ci-dessus.
      4. + +
      5. On peut définir la directive RewriteLock pour spécifier + un fichier verrou que mod_rewrite pourra utiliser pour + synchroniser les communications avec le programme de + correspondance. Par défaut, aucune synchronisation de ce + type n'est mise en oeuvre.
      6. +
      +
    • + + +
    +

    La directive RewriteMap peut + apparaître plusieurs fois. Utilisez une directive + RewriteMap par fonction de correspondance + pour déclarer son fichier de correspondance pour la réécriture. + Bien que vous ne puissiez pas déclarer une + table de correspondance dans un contexte de répertoire, vous + pouvez bien entendu utiliser cette table dans un + contexte de répertoire.

    + +

    Note

    En ce qui concerne les fichiers au format DBM +et plein texte, les clés de recherches sont mises en cache en interne +jusqu'à ce que le mtime (date de modification) du fichier +soit modifié, ou que le serveur soit redémarré. Ainsi, certaines +fonctions de correspondance dans les règles peuvent être utilisées pour +chaque requête. Cela ne pose pas problème, car la +recherche externe n'intervient qu'une seule fois ! +
    + + +
    +
    top
    +

    Directive RewriteOptions

    + + + + + + + + +
    Description:Configure certaines options spéciales +pour le moteur de réécriture
    Syntaxe:RewriteOptions Options
    Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
    AllowOverride:FileInfo
    Statut:Extension
    Module:mod_rewrite
    Compatibilité:MaxRedirects n'est plus disponible depuis +la version version 2.1
    + +

    La directive RewriteOptions définit + certaines options spéciales pour la configuration au niveau du + serveur ou du répertoire. La chaîne de caractères Option + ne peut actuellement prendre qu'une des valeurs suivantes :

    + +
    +
    inherit
    +
    + +

    Ceci force la configuration locale à hériter de la + configuration du niveau supérieur. Dans le contexte des hôtes + virtuels, cela signifie que les correspondances, conditions et + règles du serveur principal sont héritées. Dans le contexte des + répertoires, cela signifie que les conditions et règles de la + configuration .htaccess du répertoire parent sont + héritées.

    + +
    + Les règles héritées du niveau parent sont appliquées + after après les règles spécifiées dans le niveau + enfant. +
    + +
    + +
    AllowAnyURI
    +
    + +

    A partir de la version 2.2.23 de httpd, lorsqu'une directive + RewriteRule est + utilisée dans un contexte de serveur virtuel ou de + serveur principal, mod_rewrite ne la traitera que + si l'URI de la requête correspond à un chemin d'URL. Ceci permet + d'éviter certains problèmes de sécurité où certaines règles + peuvent permettre l'expansion de modèles inattendus (voir CVE-2011-3368 + et CVE-2011-4317). + Pour lever cette restriction, on peut activer l'option + AllowAnyURI, et mod_rewrite va alors + appliquer le jeu de règles à tout URI de requête, sans vérifier si + la chaîne respecte la grammaire des chemins d'URL définie dans la + spécification HTTP.

    + +
    +

    Avertissement en matière de sécurité

    + +

    L'activation de cette option expose le serveur à des + problèmes de sécurité si les règles de réécriture n'ont pas été + rédigées avec soin. Il est donc fortement + recommandé de ne pas utiliser cette option. En + particulier, prenez garde aux chaînes d'entrée contenant le + caractère '@' qui peut modifier l'interprétation de + l'URI transformé, comme indiqué dans les CVE ci-dessus.

    +
    +
    + +
    MergeBase
    +
    + +

    Avec cette option, la valeur de RewriteBase est copiée depuis une + origine explicitement définie dans tout sous-répertoire qui ne + définit pas sa propre RewriteBase. Par défaut, jusqu'à + la version 2.2.22, cette valeur n'était pas copiée, alors qu'elle + l'était avec la version 2.2.23 du serveur HTTP Apache. Le drapeau + permettant de contrôler explicitement ce comportement est + disponible depuis la version 2.2.24.

    +
    +
    + + +
    +
    top
    +

    Directive RewriteRule

    + + + + + + + +
    Description:Définit les règles pour le moteur de réécriture
    Syntaxe:RewriteRule + Modèle Substitution [drapeaux]
    Contexte:configuration du serveur, serveur virtuel, répertoire, .htaccess
    AllowOverride:FileInfo
    Statut:Extension
    Module:mod_rewrite
    +

    La directive RewriteRule est le + véritable cheval de trait de la réécriture. La directive peut + apparaître plusieurs fois, chaque instance définissant une + règle de réécriture particulière. L'ordre dans lequel ces règles + sont définies est important - il s'agit de l'ordre dans lequel + les règles seront appliquées au cours du processus de + réécriture.

    + +

    Modèle est une + expression rationnelle + compatible perl. Dans la première règle de réécriture, + l'expression est comparée au + chemin de l'URL de la + requête (%-decoded) ; les expressions suivantes sont comparées à la sortie de + la dernière règle de réécriture qui a été appliquée.

    + +

    Qu'est-ce qui est comparé ?

    + +

    Dans un contexte de serveur virtuel VirtualHost, le modèle est tout + d'abord comparé à la portion de l'URL située entre le nom d'hôte + éventuellement accompagné du port, et la chaîne de paramètres (par + exemple "/app1/index.html").

    + +

    Dans les contextes de répertoire Directory et htaccess, le + modèle est tout d'abord comparé au chemin du système + de fichiers, après suppression du préfixe ou chemin de base + ayant conduit à la règle RewriteRule (par + exemple "app1/index.html" ou + "index.html" selon l'endroit où les directives sont définies).

    + +

    Si vous voulez effectuer une comparaison en tenant compte du + nom d'hôte, du port ou de la chaîne de paramètres, utilisez une + directive RewriteCond + comportant les variables + %{HTTP_HOST}, %{SERVER_PORT}, ou + %{QUERY_STRING}.

    + +
    + +

    Réécritures dans un contexte de répertoire

    +
      +
    • L'utilisation du moteur de réécriture dans les +fichiers .htaccess et les sections +<Directory> est un peu plus +complexe.
    • + +
    • Pour activer le moteur de réécriture dans ces contextes, vous devez +définir "RewriteEngine On" et +"Options FollowSymLinks". Si l'administrateur a désactivé +la possibilité de modifier l'option FollowSymLinks au +niveau du répertoire d'un utilisateur, vous ne pouvez pas utiliser le +moteur de réécriture. Cette restriction a été instaurée à des fins de +sécurité.
    • + +
    • Lorsqu'on utilise le moteur de réécriture dans un fichier +.htaccess, le chemin de base du répertoire courant (qui est +toujours le même pour ce même répertoire) est automatiquement +supprimé au cours de la comparaison avec le modèle de la règle +de réécriture, et automatiquement ajouté lorsqu'une +substitution relative (ne débutant pas par un slash ou un nom de +protocole) arrive à la fin d'un jeu de règles. Voir la directive +RewriteBase pour plus de +détails à propos de l'ajout du préfixe après les substitutions +relatives.
    • + +
    • Si vous souhaitez effectuer une comparaison en prenant en compte +l'intégralité du +chemin de l'URL dans un contexte de répertoire (htaccess), vous devez +utiliser la variable %{REQUEST_URI} dans la directive +RewriteCond.
    • + +
    • Le prefixe supprimé se termine toujours par un slash, ce qui +signifie que la comparaison s'effectue avec une chaîne qui ne comporte +jamais de slash de début. Ainsi, un modèle contenant +^/ ne correspondra jamais dans un contexte de répertoire.
    • + +
    • Bien que les règles de réécriture soient permises du point de vue de +la syntaxe dans les sections <Location> et <Files>, elles n'y sont pas prises en compte, et +n'y sont à priori d'aucune utilité.
    • +
    +
    + +

    Pour quelques conseils à propos des expressions rationnelles, voir le + document Introduction à + mod_rewrite.

    + +

    Dans mod_rewrite, on peut aussi utiliser le caractère NON + ('!') comme préfixe de modèle. Ceci vous permet + d'inverser la signification d'un modèle, soit pour dire + ``si l'URL considérée ne correspond PAS à + ce modèle''. Le caractère NON peut donc être utilisé à + titre exceptionnel, lorsqu'il est plus simple d'effectuer une + comparaison avec le modèle inversé, ou dans la dernière règle + par défaut.

    + +

    Note

    +Si vous utilisez le caractère NON pour inverser la signification d'un +modèle, vous ne pouvez pas inclure de parties génériques groupées dans +le modèle. Ceci est dû au fait que, lorsque le modèle ne correspond +pas (autrement dit, sa négation correspond), les groupes sont vides. +Ainsi, si vous utilisez des modèles inversés, vous ne pouvez +pas vous référer aux groupes par $N dans la chaîne de +substitution ! +
    + +

    Dans une règle de réécriture, + Substitution est la chaîne + de caractères qui remplace le chemin de l'URL original qui + correspondait au Modèle. Substitution peut + être :

    + +
    + +
    un chemin du système de fichiers
    + +
    Il indique alors la localisation dans le système de + fichiers de la ressource qui doit être envoyée au + client. Les substitutions ne sont traitées en tant que chemin du + système de fichiers que si les règles sont définies dans un + contexte de serveur (virtualhost), et si le premier élément de ce + chemin existe dans le système de fichiers.
    + +
    chemin d'URL
    + +
    Un chemin relatif à la valeur de DocumentRoot vers la ressource qui + doit être servie. Notez que mod_rewrite + essaie de deviner si vous avez spécifié un chemin du système + de fichiers ou un chemin d'URL en vérifiant si la première + partie du chemin existe à la racine du système de fichiers. + Par exemple, si vous avez spécifié comme chaîne de + Substitution /www/file.html, cette + dernière sera traitée comme un chemin d'URL à moins + qu'un répertoire nommé www n'existe à la racine + de votre système de fichiers (ou dans le cas d'une + réécriture au sein d'un fichier .htaccess, + relativement à la racine des documents), auquel cas la chaîne de + substitution sera traitée comme un chemin du système de + fichiers. Si vous désirez que d'autres directives de + correspondance d'URL (comme la directive Alias) soient appliquées au + chemin d'URL résultant, utilisez le drapeau [PT] + comme décrit ci-dessous.
    + +
    URL absolue
    + +
    Si une URL absolue est spécifiée, + mod_rewrite vérifie si le nom d'hôte + correspond à celui de l'hôte local. Si c'est le cas, le + protocole et le nom d'hôte sont supprimés, et ce qui reste est + traité comme un chemin d'URL. Dans le cas contraire, une + redirection externe vers l'URL indiquée est effectuée. Pour + forcer une redirection externe vers l'hôte local, voir le + drapeau [R] ci-dessous.
    + +
    - (tiret)
    + +
    Un tiret indique qu'aucune substitution ne doit être + effectuée (le chemin considéré est transmis sans changement). + Ceci est utile quand un drapeau doit être appliqué sans + modifier le chemin (voir ci-dessous).
    + +
    + +

    En plus du texte, la chaîne Substition peut + comporter :

    + +
      +
    1. des références arrières ($N) vers le modèle + d'une directive RewriteRule
    2. + +
    3. des références arrières (%N) vers le dernier + modèle d'une directive RewriteCond qui correspondait
    4. + +
    5. des variables du serveur comme dans les chaînes de test de + condition d'une règle (%{VARNAME})
    6. + +
    7. des appels de + fonctions de comparaison + (${nom correspondance:clé|défaut})
    8. +
    + +

    Les références arrières sont des identificateurs de la forme + $N (N=0..9), qui + seront remplacés par le contenu du Nème groupe + du Modèle qui correspondait. Les variables du serveur + sont les mêmes que dans la Chaîne de test d'une + directive RewriteCond. Les fonctions de comparaison + sont issues de la directive RewriteMap dans la + section de laquelle elles sont décrites. Ces trois types de + variables sont évaluées dans l'ordre ci-dessus.

    + +

    Chaque règle de réécriture s'applique au résultat de la règle + précédente, selon l'ordre dans lequel elles ont été définies dans + le fichier de configuration. L'URL est intégralement + remplacée par la chaîne de Substitution et le + processus de réécriture se poursuit jusqu'à ce que toutes les + règles aient été appliquées, ou qu'il soit explicitement stoppé + par un drapeau L, + ou par un autre drapeau qui implique un arrêt immédiat, comme + F.

    + +

    Modifier la chaîne de requête

    +

    Par défaut, la chaîne de requête est transmise sans + modification. Vous pouvez cependant créer dans la chaîne de + substitution des URLs dont une partie constitue une chaîne de + requête. Pour cela, ajoutez simplement un point d'interrogation + dans la chaîne de substitution pour indiquer que le texte qui + suit doit être réinjecté dans la chaîne de requête. Pour + supprimer une chaîne de requête, terminez simplement la chaîne de + substitution par un point d'interrogation. Pour combiner les + nouvelles chaînes de requête avec les anciennes, utilisez le + drapeau [QSA].

    +
    + +

    En outre, vous pouvez spécifier des actions spéciales à effectuer en ajoutant + des + [drapeaux] + comme troisième argument de la directive + RewriteRule. Flags est une liste de valeurs + déparées par des virgules, délimitée par des crochets, choisies + parmi les drapeaux de la table suivante. Vous trouverez plus de + détails et d'exemples, pour chaque drapeau, dans la documentation sur les drapeaux de + réécriture.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Drapeaux et syntaxeFonction
    BEchappe les caractères non-alphanumériques avant + d'appliquer la transformation. détails ...
    chain|CLa règle est chaînée avec la règle suivante. Si la règle + échoue, la ou les règles avec lesquelles elle est est chaînée + seront sautées. détails ...
    cookie|CO=NAME:VALDéfinit un cookie au niveau du navigateur client. La syntaxe + complète est : + CO=NAME:VAL:domain[:lifetime[:path[:secure[:httponly]]]] details ... + détails ... +
    discardpath|DPISupprime la partie PATH_INFO de l'URI réécrit. détails + ...
    env|E=[!]VAR[:VAL]Définit la variable d'environnement VAR (à la valeur + VAL si elle est fournie). La variante !VAR + annule la définition de la variable VAR.détails ...
    forbidden|FRenvoie une réponse 403 FORBIDDEN au navigateur client. + détails ...
    gone|GRenvoie un message d'erreur 410 GONE au navigateur client. détails ...
    Handler|H=Gestionnaire de contenuL'URI résultant est envoyé au Gestionnaire de + contenu pour traitement. détails ...
    last|LArrête le processus de réécriture immédiatement et n'applique + plus aucune règle. Prêtez une attention particulière aux mises + en garde concernant les contextes de niveau répertoire et + .htaccess. détails ...
    next|NRéexécute le processus de réécriture à partir de la première + règle, en utilisant le résultat du jeu de règles, sous réserve + qu'il y ait un point de départ. détails + ...
    nocase|NCRend la comparaison entre modèles insensible à la casse. + détails ...
    noescape|NEEmpêche mod_rewrite d'effectuer un échappement hexadécimal + des caractères spéciaux dans le résultat de la réécriture. détails ...
    nosubreq|NSLa règle est sautée si la requête courante est une + sous-requête interne. détails ...
    proxy|PForce l'envoi en interne de l'URL de substitution en tant + que requête mandataire. détails + ...
    passthrough|PTL'URI résultant est repassé au moteur de mise en + correspondance des URLs pour y être traité par d'autres + traducteurs URI-vers-nom de fichier, comme Alias ou + Redirect. détails ...
    qsappend|QSAAjoute toute chaîne de paramètres présente dans l'URL de la + requête originale à toute chaîne de paramètres créée dans la + cible de réécriture. détails ...
    qsdiscard|QSDSupprime toute chaîne de paramètres de l'URI entrant. détails + ...
    redirect|R[=code]Force une redirection externe, avec un code de statut HTTP + optionnel. détails ... +
    skip|S=nombreSi la règle courante s'applique, le moteur de réécriture + doit sauter les nombre règles suivantes. détails ...
    type|T=MIME-typeForce l'attribution du Type-MIME + spécifié au fichier cible. détails ...
    + +

    Développement du répertoire home

    +

    Quand la chaîne de substitution commence par quelque chose comme +"/~user" (de manière explicite ou par références arrières), mod_rewrite +développe le répertoire home sans tenir compte de la présence ou de la +configuration du module mod_userdir.

    + +

    Ce développement n'est pas effectué si le drapeau PT est +utilisé dans la directive RewriteRule

    +
    + +

    Voici toutes les combinaisons de substitution et leurs + significations :

    + +

    Dans la configuration au niveau du serveur principal + (httpd.conf)
    + pour la requête ``GET + /chemin/infochemin'':

    +

    + +
    +Règle                          Résultat de la substitution
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) autre-chemin$1                      non valide, non supporté
    +
    +^/chemin(.*) autre-chemin$1  [R]                 non valide, non supporté
    +
    +^/chemin(.*) autre-chemin$1  [P]                 non valide, non supporté
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) /autre-chemin$1                     /autre-chemin/infochemin
    +
    +^/chemin(.*) /autre-chemin$1 [R]                 http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^/chemin(.*) /autre-chemin$1 [P]                 n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) http://cet-hôte/autre-chemin$1      /autre-chemin/infochemin
    +
    +^/chemin(.*) http://cet-hôte/autre-chemin$1 [R]  http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^/chemin(.*) http://cet-hôte/autre-chemin$1 [P]  n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) http://autre hôte/autre-chemin$1     http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^/chemin(.*) http://autre hôte/autre-chemin$1 [R] http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +                                                (le drapeau [R] est
    +						redondant)
    +
    +^/chemin(.*) http://autre hôte/autre-chemin$1 [P] http://autre hôte/autre-chemin/infochemin
    +                                                via un mandataire interne
    + +

    Dans une configuration de niveau répertoire pour + /chemin
    + (/chemin/physique/vers/chemin/.htacccess, avec + RewriteBase /chemin)
    + pour la requête ``GET + /chemin/chemin-local/infochemin'':

    +

    + +
    +Règle                          Résultat de la substitution
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) autre-chemin$1                      /chemin/autre-chemin/infochemin
    +
    +^chemin-local(.*) autre-chemin$1  [R]                 http://cet-hôte/chemin/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) autre-chemin$1  [P]                 n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) /autre-chemin$1                     /autre-chemin/infochemin
    +
    +^chemin-local(.*) /autre-chemin$1 [R]                 http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) /autre-chemin$1 [P]                 n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) http://cet-hôte/autre-chemin$1      /autre-chemin/infochemin
    +
    +^chemin-local(.*) http://cet-hôte/autre-chemin$1 [R]  http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) http://cet-hôte/autre-chemin$1 [P]  n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) http://autre hôte/autre-chemin$1     http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) http://autre hôte/autre-chemin$1 [R] http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +                                                (le drapeau [R] est
    +						redondant)
    +
    +^chemin-local(.*) http://autre hôte/autre-chemin$1 [P] http://autre hôte/autre-chemin/infochemin
    +                                                via un mandataire interne
    + +
    +
    +
    +

    Langues Disponibles:  en  | + fr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_rewrite.xml b/docs/manual/mod/mod_rewrite.xml index 5a10508521b..87817a87f41 100644 --- a/docs/manual/mod/mod_rewrite.xml +++ b/docs/manual/mod/mod_rewrite.xml @@ -4,12 +4,12 @@ + + + + + + + +mod_rewrite + +Ce module fournit un moteur de réécriture à base de +règles permettant de réécrire les URLs des requêtes +à la volée + +Extension +mod_rewrite.c +rewrite_module +Disponible à partir de la version 1.3 +d'Apache + + +

    Ce module utilise un moteur de réécriture à base de règles + (basé sur un interpréteur d'expressions rationnelles) pour + réécrire les URLs des requêtes à la volée. Il accepte un nombre + illimité de règles, ainsi q'un nombre illimité de conditions + attachées à chaque règle, fournissant ainsi un mécanisme de + manipulation d'URL vraiment souple et puissant. Les manipulations + d'URL peuvent dépendre de nombreux tests, des variables du + serveur, des variables d'environnement, des en-têtes HTTP ou de + l'horodatage. On peut même lancer des requêtes vers une base de + données externe sous divers formats, afin d'obtenir une + sélection d'URL très fine.

    + +

    Ce module agit sur l'ensemble de l'URL (la partie concernant + le chemin incluse) au niveau du serveur + (httpd.conf) mais aussi au niveau du répertoire + (.htaccess), et peut générer des parties de chaîne + de requête comme résultat. Le résultat de la réécriture peut + renvoyer vers un sous-traitement interne, une redirection vers + une requête externe, ou même vers le flux d'un proxy interne.

    + +

    Vous trouverez d'avantage de détails, discussions et exemples + dans la + documentation détaillée + sur mod_rewrite.

    +
    + +Drapeaux des règles de réécriture + + +
    Marquage des caractères spéciaux + +

    Depuis Apache 1.3.20, les caractères spéciaux dans les + chaînes de test et les chaînes de Substitution + peuvent être échappés (c'est à dire traités comme des caractères + normaux sans tenir compte de leur signification en tant que + caractère spécial), en les faisant précéder d'un caractère + anti-slash ('\'). En d'autres termes, vous pouvez inclure un + véritable signe "dollar" dans une chaîne de Substitution + en utilisant '\$' ; ceci empêche mod_rewrite de le + traiter comme une référence arrière.

    +
    + +
    Variables d'environnement + +

    Ce module conserve le contenu de deux variables d'environnement + CGI/SSI additionnelles (non standards) nommées + SCRIPT_URL et SCRIPT_URI. Celles-ci + contiennent l'adresse logique vue du Web + de la ressource concernée, tandis que les variables CGI/SSI + standards SCRIPT_NAME et + SCRIPT_FILENAME contiennent l'adresse + physique de la ressource vue du système.

    + +

    Note : ces variables conservent l'URI/URL telle qu'elle + était à l'arrivée de la requête, c'est à dire + avant tout processus de réécriture. Il est important de + le savoir car le processus de réécriture est principalement + utilisé pour réécrire des URLs logiques en chemins physiques.

    + +Exemple +
    +SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
    +SCRIPT_FILENAME=/u/rse/.www/index.html
    +SCRIPT_URL=/u/rse/
    +SCRIPT_URI=http://en1.engelschall.com/u/rse/
    +
    +
    + +
    + +
    Réécriture et hôtes virtuels + +

    Par défaut, les hôtes virtuels n'héritent pas de la + configuration de mod_rewrite telle qu'elle est + définie dans le contexte du serveur principal. Pour que la + configuration du serveur principal s'applique aux hôtes virtuels, + vous devez insérez les directives suivantes dans chaque section + VirtualHost :

    + + + RewriteEngine On
    + RewriteOptions Inherit +
    +
    + +
    Solutions pratiques + +

    Vous trouverez de nombreux exemples d'utilisation courante (et + moins courante) de mod_rewrite dans la documentation spécifique à la réécriture.

    + +
    + + +RewriteEngine +Active ou désactive l'exécution du +moteur de réécriture +RewriteEngine on|off +RewriteEngine off +server configvirtual host +directory.htaccess +FileInfo + + + +

    La directive RewriteEngine active ou + désactive l'exécution du moteur de réécriture. Si sa valeur est + off, ce module n'exécutera aucun traitement et ne + mettra pas à jour les variables d'environnement + SCRIPT_URx.

    + +

    Pour désactiver le module, il vaut mieux utiliser cette + directive que commenter toutes les directives RewriteRule !

    + +

    Notez que les hôtes virtuels n'héritent pas des + configurations de réécriture. Ceci implique que vous devez + insérer une directive RewriteEngine on dans chaque + hôte virtuel pour lequel vous souhaitez utiliser des règles + de réécriture.

    + +

    Les directives RewriteMap du type + prg ne sont pas prises en compte au cours de + l'initialisation du serveur si elle ont été définies dans un + contexte où la directive RewriteEngine n'a + pas été définie à on.

    +
    + +
    + + +RewriteOptions +Configure certaines options spéciales +pour le moteur de réécriture +RewriteOptions Options +server configvirtual host +directory.htaccess +FileInfo +MaxRedirects n'est plus disponible depuis +la version version 2.1 + + +

    La directive RewriteOptions définit + certaines options spéciales pour la configuration au niveau du + serveur ou du répertoire. La chaîne de caractères Option + ne peut actuellement prendre qu'une des valeurs suivantes :

    + +
    +
    inherit
    +
    + +

    Ceci force la configuration locale à hériter de la + configuration du niveau supérieur. Dans le contexte des hôtes + virtuels, cela signifie que les correspondances, conditions et + règles du serveur principal sont héritées. Dans le contexte des + répertoires, cela signifie que les conditions et règles de la + configuration .htaccess du répertoire parent sont + héritées.

    + + + Les règles héritées du niveau parent sont appliquées + after après les règles spécifiées dans le niveau + enfant. + + +
    + +
    AllowAnyURI
    +
    + +

    A partir de la version 2.2.23 de httpd, lorsqu'une directive + RewriteRule est + utilisée dans un contexte de serveur virtuel ou de + serveur principal, mod_rewrite ne la traitera que + si l'URI de la requête correspond à un chemin d'URL. Ceci permet + d'éviter certains problèmes de sécurité où certaines règles + peuvent permettre l'expansion de modèles inattendus (voir CVE-2011-3368 + et CVE-2011-4317). + Pour lever cette restriction, on peut activer l'option + AllowAnyURI, et mod_rewrite va alors + appliquer le jeu de règles à tout URI de requête, sans vérifier si + la chaîne respecte la grammaire des chemins d'URL définie dans la + spécification HTTP.

    + + + Avertissement en matière de sécurité + +

    L'activation de cette option expose le serveur à des + problèmes de sécurité si les règles de réécriture n'ont pas été + rédigées avec soin. Il est donc fortement + recommandé de ne pas utiliser cette option. En + particulier, prenez garde aux chaînes d'entrée contenant le + caractère '@' qui peut modifier l'interprétation de + l'URI transformé, comme indiqué dans les CVE ci-dessus.

    +
    +
    + +
    MergeBase
    +
    + +

    Avec cette option, la valeur de RewriteBase est copiée depuis une + origine explicitement définie dans tout sous-répertoire qui ne + définit pas sa propre RewriteBase. Par défaut, jusqu'à + la version 2.2.22, cette valeur n'était pas copiée, alors qu'elle + l'était avec la version 2.2.23 du serveur HTTP Apache. Le drapeau + permettant de contrôler explicitement ce comportement est + disponible depuis la version 2.2.24.

    +
    +
    + +
    + +
    + + +RewriteLog +Définit le nom du fichier utilisé pour la journalisation +des traitements du moteur de réécriture +RewriteLog chemin du fichier journal|redirection vers un pipe +server configvirtual host + + + +

    La directive RewriteLog définit le nom + du fichier dans lequel le serveur journalise tout processus de + réécriture qu'il effectue. Si le nom ne commence pas par un + slash ('/'), il est considéré comme relatif à la + Racine du serveur. Cette directive ne doit apparaître + qu'une seule fois dans la configuration du serveur.

    + + Il est déconseillé de positionner + chemin du fichier journal à /dev/null + pour désactiver la journalisation des processus de réécriture, + car même si le moteur de réécriture n'envoie plus sa sortie + dans un fichier, il continue à créer un fichier journal en + interne, ce qui va avoir pour effet de ralentir le + serveur sans fournir aucun avantage à l'administrateur ! + Pour désactiver la journalisation, vous pouvez + soit supprimer ou commenter la directive + RewriteLog, soit utiliser + RewriteLogLevel 0 ! + + +

    Le format de fichier journal RewriteLog se + présente comme suit :

    + + + + + + + + + + + + + +
    Description Exemple
    Adresse IP de l'hôte distant192.168.200.166
    Nom de login didtanten général "-"
    nom d'authentification de l'utilisateur HTTPnom +d'utilisateur, ou "-" si non authentifié
    Date et heure de la requête[28/Aug/2009:13:09:09 --0400]
    Serveur virtuel et son identifiant[www.example.com/sid#84a650]
    Identifiant de la requête et indication éventuelle qu'il s'agit +d'une sous-requête[rid#9f0e58/subreq]
    Niveau de sévérité de l'entrée du journal(2)
    Message d'erreur au format texteforcing proxy-throughput with http://127.0.0.1:8080/index.html
    + + +Sécurité + +Se référer au document +Conseils à propos +de la sécurité dans Apache pour plus de détails sur la manière +dont votre sécurité pourrait être compromise si le répertoire où se +trouvent les fichiers journaux est inscriptible par quiconque +autre que l'utilisateur qui démarre le serveur. + + +Exemple +# Journalisation dans un fichier :
    +RewriteLog "/usr/local/var/apache/logs/rewrite.log"
    +
    +# Journalisation redirigée vers un pipe:
    +RewriteLog "|/path/to/parser.pl" +
    + +
    + +
    + + +RewriteLogLevel +Définit la verbosité du fichier journal utilisé +par le moteur de réécriture +RewriteLogLevel niveau +RewriteLogLevel 0 +server configvirtual host + + + +

    La directive RewriteLogLevel définit + le niveau de verbosité du fichier journal de réécriture. Le + niveau par défaut 0 signifie aucune journalisation, tandis que + 9 ou plus signifie que pratiquement toutes les actions sont + journalisées.

    + +

    Pour désactiver la journalisation des actions de réécriture, + positionnez simplement niveau à 0. Ceci désactive + toute journalisation des actions de réécriture.

    + + Utiliser une valeur élevée pour niveau va ralentir + considérablement votre serveur Apache ! N'utilisez une + journalisation de la réécriture à un niveau + supérieur à 2 qu'à des fins de débogage ! + + +Exemple +RewriteLogLevel 3 + + +
    + +
    + + +RewriteLock +Définit le nom du fichier verrou utilisé pour la +synchronisation de RewriteMap +RewriteLock chemin du fichier verrou +server config + + +

    Cette directive définit le nom du fichier utilisé comme + fichier verrou de synchronisation nécessaire à mod_rewrite pour + communiquer avec les programmes liés à RewriteMap. Définissez ce + fichier verrou dans un chemin local (et non sur un montage NFS) + si vous voulez utiliser un programme de comparaison pour la + réécriture. Il n'est pas nécessaire pour les autres types de + comparaison pour la réécriture.

    +
    + +
    + + +RewriteMap +Définit une fonction de mise en correspondance pour la +recherche de mots-clés +RewriteMap nom_de_la_correspondance type_de_correspondance:source_de_la_correspondance + +server configvirtual host + +Il est possible de choisir entre plusieurs types de +bases de données depuis la version 2.0.41 d'Apache + + +

    La directive RewriteMap définit une + Table de correspondance pour la réécriture que les + fonctions de mise en correspondance + peuvent utiliser dans les chaînes de substitution des règles + pour insérer/substituer des champs en recherchant des mots-clés. + La source utilisée pour cette recherche peut être de plusieurs + types.

    + +

    nom de la + correspondance est le nom de la table de correspondance + et servira à spécifier une fonction de mise en correspondance + pour les chaînes de substitution d'une règle de réécriture selon + une des constructions suivantes :

    + +

    + ${ nom de la + correspondance : + mot-clé }
    + ${ nom de la + correspondance : + mot-clé | valeur par défaut + }
    +

    + +

    Lorsqu'une telle construction est rencontrée, la table de + correspondance Nom de la correspondance est consultée + et la clé mot-clé recherchée. Si la clé est trouvée, la + construction est remplacée par + la valeur de remplacement. Si la clé n'est pas trouvée, + elle est remplacée par la valeur par défaut, ou par une + chaîne vide si aucune valeur par défaut n'est + spécifiée. La valeur vide se comporte comme si la + clé était absente ; il est donc impossible de distinguer une + valeur vide d'une absence de clé.

    + +

    Par exemple, vous pouvez définir une directive + RewriteMap comme suit

    + + + RewriteMap map-exemple txt:/chemin/vers/fichier/map.txt + + +

    Vous pourrez ensuite utiliser cette table dans une + directive RewriteRule comme suit :

    + + + RewriteRule ^/ex/(.*) ${map-exemple:$1} + + +

    Les combinaisons suivantes pour type_de_correspondance + et source_de_la_correspondance + peuvent être utilisées :

    + +
      +
    • + Format texte standard
      + type de correspondance : txt, source de la + correspondance : chemin du système de fichiers Unix vers un + fichier régulier valide + +

      Il s'agit de la mise en oeuvre standard de la table de + correspondance pour la réécriture où + source_de_la_correspondance est un fichier ASCII + dont les différentes lignes sont soit des lignes vides, soit + des lignes de commentaires (commençant par un caractère "#"), + soit des paires de valeurs (une seule paire + par ligne) comme suit :

      + +

      + mot-clé + valeur de remplacement +

      + +Exemple +
      +##
      +##  map.txt -- table de correspondance pour la réécriture
      +##
      +
      +Ralf.S.Engelschall    rse   # Bastard Operator From Hell
      +(traduction à votre convenance)
      +Mr.Joe.Average        joe   # Mr. Average
      +
      +
      + + +RewriteMap real-to-user txt:/chemin/vers/fichier/map.txt + +
    • + +
    • + Format texte avec valeurs aléatoires
      + type de correspondance: rnd, + source de la correspondance : chemin du système de fichiers + Unix vers un fichier régulier valide + +

      Ce format se différencie du format texte standard + précédent par l'ajout d'un traitement supplémentaire : en + plus de la recherche de clés, le fichier est interprété en + tenant compte de la présence éventuelle dans les valeurs de + remplacement de caractères ``|'' signifiant + ``ou''. En d'autres termes, ces caractères ``|'' + permettent de spécifier un jeu de valeurs parmi lesquelles + la valeur de retour sera choisie aléatoirement. Par exemple, + vous pouvez utiliser les fichier de correspondance et + directives suivants pour mettre en oeuvre une répartition de + charge aléatoire entre plusieurs serveurs en arrière-plan, + via un mandataire inverse. Les images sont envoyées à un des + serveurs de l'ensemble "statique", tandis que tout le + reste est envoyé à un des serveurs de l'ensemble + "dynamique".

      +

      Exemple:

      + +Fichier de correspondances pour la réécriture +
      +##
      +##  map.txt -- correspondances pour la réécriture
      +##
      +
      +static   www1|www2|www3|www4
      +dynamic  www5|www6
      +
      +
      + +Directives de configuration +RewriteMap serveurs rnd:/chemin/vers/fichier/map.txt
      +
      +RewriteRule ^/(.*\.(png|gif|jpg)) http://${serveurs:static}/$1 +[NC,P,L]
      +RewriteRule ^/(.*) http://${serveurs:dynamic}/$1 [P,L] +
      +
    • + +
    • + Fichier à accès direct (Hash file)
      + type de correspondance : + dbm[=type], source de la + correspondance : chemin du système de fichiers Unix vers un + fichier régulier valide + +

      Ici, la source de la correspondance est un fichier binaire + au format DBM contenant les mêmes données qu'un fichier au + format Plein texte, mais selon une représentation + particulière optimisée en vue d'une recherche très rapide. + Le type peut être sdbm, gdbm, ndbm, ou db selon la + configuration à la compilation + . Si type est omis, la valeur retenue + sera la valeur par défaut définie à la compilation.

      + +

      La création du fichier dbm à partir d'un fichier texte + s'effectue à l'aide de l'utilitaire httxt2dbm.

      + + +$ httxt2dbm -i fichier-source.txt -o fichier-dbm.map + +
    • + +
    • + Fonction interne
      + type de la correspondance : int, + source de la correspondance : fonction interne à Apache + +

      Ici, la source de la correspondance est une fonction + interne à Apache. Les développeurs de modules peuvent + fournir des fonctions internes supplémentaires en les + enregistrant via l'API + ap_register_rewrite_mapfunc. Les fonctions + fournies par défaut sont :

      + +
        +
      • toupper:
        + Convertit tous les caractères de la clé en majuscules.
      • + +
      • tolower:
        + Convertit tous les caractères de la clé en minuscules.
      • + +
      • escape:
        + Traduit les caractères spéciaux que contient la clé en + séquences hexadécimales.
      • + +
      • unescape:
        + Reconvertit les séquences hexadécimales que contient la + clé en caractères spéciaux.
      • +
      +
    • + +
    • + Programme de réécriture externe
      + type de la correspondance : prg, + source de la correspondance : + chemin du système de fichiers Unix vers un + fichier régulier valide + +

      Ici, la source n'est pas un fichier de correspondances, + mais un programme. Pour le créer, vous pouvez utiliser le + langage de votre choix, mais le programme doit être un + exécutable (soit du code objet, soit un script + contenant le fameux + "#!/chemin/vers/interpréteur" au début de sa + première ligne).

      + +

      Ce programme est lancé une seule fois au démarrage du + serveur Apache, puis communique avec le moteur de réécriture + via ses entrée et sortie standards (stdin + et stdout). A chaque recherche effectuée par la + fonction de correspondance, il reçoit sur son entrée standard + la clé à rechercher sous la forme d'une chaîne de caractères + terminée par le caractère "nouvelle ligne". Il doit ensuite + renvoyer sur sa sortie standard la valeur recherchée sous + la forme d'une chaîne de caractères terminée par le caractère + "nouvelle ligne", ou la chaîne de quatre + caractères ``NULL'' en cas d'échec + (c'est à dire + si aucune valeur ne correspond à la clé fournie). Voici un + exemple de ce pourrait être un programme trivial qui + implémenterait une correspondance 1:1 (c'est à dire, + clé == valeur) :

      + +

      Les programmes de réécriture externes ne seront pas lancés + s'ils ont été définis dans un contexte où la directive + RewriteEngine n'a pas été définie à + on.

      + + +
      +#!/usr/bin/perl
      +$| = 1;
      +while (<STDIN>) {
      +    # ...insérer ici le code de transformation ou de recherche...
      +    print $_;
      +}
      +
      +
      + +

      Mais soyez très prudent :

      + +
        +
      1. ``Ce programme doit être simple, basique'' + (MERCI). + Si ce programme se bloque, il bloquera aussi Apache + lorsqu'il tentera d'utiliser la règle de réécriture + correspondante.
      2. + +
      3. L'utilisation d'entrées/sorties avec tampon sur + stdout est une erreur courante. Ceci est à + proscrire sous peine de créer une boucle infernale ! Pour + éviter ceci, on utilise ``$|=1'' comme dans + l'exemple ci-dessus.
      4. + +
      5. On peut définir la directive RewriteLock pour spécifier + un fichier verrou que mod_rewrite pourra utiliser pour + synchroniser les communications avec le programme de + correspondance. Par défaut, aucune synchronisation de ce + type n'est mise en oeuvre.
      6. +
      +
    • + + +
    +

    La directive RewriteMap peut + apparaître plusieurs fois. Utilisez une directive + RewriteMap par fonction de correspondance + pour déclarer son fichier de correspondance pour la réécriture. + Bien que vous ne puissiez pas déclarer une + table de correspondance dans un contexte de répertoire, vous + pouvez bien entendu utiliser cette table dans un + contexte de répertoire.

    + +Note En ce qui concerne les fichiers au format DBM +et plein texte, les clés de recherches sont mises en cache en interne +jusqu'à ce que le mtime (date de modification) du fichier +soit modifié, ou que le serveur soit redémarré. Ainsi, certaines +fonctions de correspondance dans les règles peuvent être utilisées pour +chaque requête. Cela ne pose pas problème, car la +recherche externe n'intervient qu'une seule fois ! + + +
    +
    + + +RewriteBase +Définit l'URL de base pour les réécritures au niveau +répertoire +RewriteBase chemin_URL +None +directory.htaccess + +FileInfo + + +

    La directive RewriteBase permet de + spécifier le préfixe d'URL à utiliser dans un contexte de + répertoire (htaccess) pour les directives + RewriteRule qui réécrivent vers un chemin + relatif.

    +

    Cette directive est obligatoire si vous utilisez un + chemin relatif dans une substitution, et dans un contexte de + répertoire (htaccess), sauf si au moins une de ces conditions est + vérifiée :

    +
      +
    • La requête initiale, ainsi que la substitution, sont dans + la DocumentRoot (c'est à + dire que pour y accéder, il n'est pas nécessaire d'utiliser + une directive telle qu'Alias).
    • +
    • Le chemin du système de fichiers vers le répertoire + contenant la RewriteRule, suffixé par + la substitution relative est aussi valide en tant qu'URL sur + le serveur (ce qui est rare).
    • +
    + +

    Dans l'exemple ci-dessous, la directive +RewriteBase est nécessaire afin d'éviter une +réécriture en http://example.com/opt/myapp-1.2.3/welcome.html car la +ressource n'était pas relative à la racine des documents. Cette erreur +de configuration aurait conduit le serveur à rechercher un répertoire +"opt" à la racine des documents.

    + + +
    +DocumentRoot /var/www/example.com
    +Alias /myapp /opt/myapp-1.2.3
    +<Directory /opt/myapp-1.2.3>
    +RewriteEngine On
    +RewriteBase /myapp/
    +RewriteRule ^index\.html$  welcome.html 
    +</Directory>
    +
    +
    +
    + +
    + + +RewriteCond +Définit une condition qui devra être satisfaite pour que +la réécriture soit effectuée + + RewriteCond + chaîne_de_test expression_de_comparaison +server configvirtual host +directory.htaccess +FileInfo + + +

    La directive RewriteCond définit une + condition d'application d'une certaine règle. Une ou plusieurs + directives RewriteCond peuvent précéder + une directive + RewriteRule. La règle + qui suit n'est appliquée que si l'état actuel de l'URI + correspond à son modèle, et si les conditions sont satisfaites.

    + +

    chaîne_de_test est une chaîne de caractères qui peut + contenir, en plus du plein texte, les constructions étendues + suivantes :

    + +
      +
    • + références arrières de règle de réécriture : + ce sont des références arrières de la forme + $N (0 <= N <= 9), qui + donnent accès aux parties groupées (entre parenthèses) du + modèle tiré de la RewriteRule assujettie au + jeu de conditions concerné. +
    • +
    • + Références arrières de condition de réécriture + : ce sont des références arrières de la forme + %N (1 <= N <= 9), qui + donnent accès aux parties groupées (là aussi entre + parenthèses) du modèle de la dernière condition satisfaite + du jeu de conditions concerné. +
    • +
    • + extensions de table de réécriture : + ce sont des extensions de la forme ${nomTable:clé|défaut}. Voir + la documentation de + RewriteMap pour plus de détails. +
    • +
    • + Variables du serveur : + ce sont des variables de la forme + %{ NOM_DE_VARIABLE + } + %{ NOM_DE_VARIABLE + } où NOM_DE_VARIABLE + peut être une chaîne de caractères faisant partie de la + liste suivante : + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      En-têtes HTTP : connexion & requête:
      + HTTP_USER_AGENT
      + HTTP_REFERER
      + HTTP_COOKIE
      + HTTP_FORWARDED
      + HTTP_HOST
      + HTTP_PROXY_CONNECTION
      + HTTP_ACCEPT
      +
      + REMOTE_ADDR
      + REMOTE_HOST
      + REMOTE_PORT
      + REMOTE_USER
      + REMOTE_IDENT
      + REQUEST_METHOD
      + SCRIPT_FILENAME
      + PATH_INFO
      + QUERY_STRING
      + AUTH_TYPE
      +
      variables internes au serveur : date et heure : spéciaux :
      + DOCUMENT_ROOT
      + SERVER_ADMIN
      + SERVER_NAME
      + SERVER_ADDR
      + SERVER_PORT
      + SERVER_PROTOCOL
      + SERVER_SOFTWARE
      +
      + TIME_YEAR
      + TIME_MON
      + TIME_DAY
      + TIME_HOUR
      + TIME_MIN
      + TIME_SEC
      + TIME_WDAY
      + TIME
      +
      + API_VERSION
      + THE_REQUEST
      + REQUEST_URI
      + REQUEST_FILENAME
      + IS_SUBREQ
      + HTTPS
      +
      + +

      Toutes ces variables correspondent nom pour nom aux + en-têtes MIME HTTP, aux variables C du serveur Apache + ou aux champs struct tm du système Unix. + La plupart sont documentées dans une autre partie du + manuel ou dans la spécification CGI.

      + +

      SERVER_NAME et SERVER_PORT dépendent respectivement + des valeurs des directives UseCanonicalName et UseCanonicalPhysicalPort.

      + +

      Parmi les variables + spécifiques à mod_rewrite, ou trouve les suivantes :

      + +
      +
      IS_SUBREQ
      + +
      Contiendra le texte "true" si la requête en cours + de traitement est une sous-requête, "false" dans le + cas contraire. Une sous-requête est générée quand un + module a besoin de se référer à des fichiers ou URIs + addidionnels pour pouvoir mener à bien sa tâche.
      + +
      API_VERSION
      + +
      Il s'agit de la version de l'API des modules + Apache (l'interface interne entre le serveur et les + modules) dans la construction actuelle de httpd, + telle qu'elle est définie dans include/ap_mmn.h. La + version de l'API des modules correspond à la version + d'Apache utilisée (pour Apache 1.3.14, par exemple, + la version de l'API sera 19990320:10), mais cette + information intéresse principalement les + développeurs de modules.
      + +
      THE_REQUEST
      + +
      La ligne de requête HTTP complète envoyée par le + navigateur au serveur (par exemple, "GET + /index.html HTTP/1.1"), à l'exclusion de tout + en-tête ajouté par le navigateur. Cette + valeur n'a pas été déséchappée (décodée), à la + différence de la plupart des variables suivantes.
      + +
      REQUEST_URI
      + +
      La partie chemin de l'URI de la requête, comme + "/index.html". En particulier, ceci exclut la chaîne + de paramètres qui est quant à elle disponible via sa + propre variable QUERY_STRING.
      + +
      REQUEST_FILENAME
      + +
      Le chemin complet local au système de fichiers + du fichier ou du script correspondant + à la requête, s'il a déjà été déterminé par le serveur + au moment où on y fait référence. Dans le cas + contraire, et en particulier dans le cas d'un serveur + virtuel, REQUEST_FILENAME contient la + valeur de REQUEST_URI.
      + +
      HTTPS
      + +
      Contiendra le texte "on" si la connexion + utilise SSL/TLS, "off" dans le cas contraire + (L'utilisation de cette variable est pertinente, + indépendamment du fait que mod_ssl + soit chargé ou non).
      + +
      +
      +
    • +
    + +

    Autres points à connaître :

    + +
      +
    1. Les variables SCRIPT_FILENAME et REQUEST_FILENAME ont la + même valeur - celle du champ filename de la + structure interne du serveur Apache request_rec. + Le premier nom est bien connu en tant que variable CGI, + alors que le second est équivalent à REQUEST_URI (qui contient + la valeur du champ uri de la structure + request_rec).

      +

      Si une substitution survient, et si la réécriture se + poursuit, la valeur des deux variables est mise à jour en + conséquence.

      +

      Dans un contexte de serveur principal (c'est à dire avant que + la requête n'ait été mise en relation avec le système de + fichiers), SCRIPT_FILENAME et REQUEST_FILENAME ne peuvent pas + contenir le chemin local entier dans le système de fichiers, car + celui-ci n'a pas encore été déterminé à ce stade du traitement. + Les deux variables contiennent alors la valeur de REQUEST_URI. + Pour obtenir le chemin local entier associé à la requête dans le + système de fichiers + dans un contexte de serveur principal, utilisez une recherche + avant %{LA-U:REQUEST_FILENAME} pour déterminer la + valeur finale de REQUEST_FILENAME.

    2. + + +
    3. On peut aussi utiliser %{ENV:variable}, où + variable peut être remplacé par toute variable + d'environnement. Ces variables sont recherchées dans les + structures internes d'Apache, et (si elles n'y figurent pas) + via getenv() depuis le processus du serveur + Apache.
    4. + +
    5. Que mod_ssl soit chargé ou non, on peut + utiliser %{SSL:variable}, où variable + peut être remplacé par le nom d'une + variable + d'environnement SSL, mais la valeur produite sera toujours + une chaîne de caractères vide si mod_ssl n'est + pas chargé. Exemple : + %{SSL:SSL_CIPHER_USEKEYSIZE} peut correspondre + à 128. Ces variables sont + disponibles même si l'option StdEnvVars de la + directive SSLOptions n'a + pas été définie.
    6. + +
    7. Pour obtenir la valeur d'un en-tête contenu dans une requête + HTTP, on peut toujours utiliser %{HTTP:header}, + où header peut être remplacé par tout nom d'en-tête + MIME HTTP. Exemple : %{HTTP:Proxy-Connection} est + la valeur de l'en-tête HTTP ``Proxy-Connection:''. +

      Si une condition contient un en-tête HTTP, il est ajouté à + l'en-tête Vary de la réponse dans le cas où la condition est + évaluée à true pour la requête. Dans le cas contraire, il n'est + pas ajouté. L'ajout de l'en-tête HTTP à + l'en-tête Vary de la réponse s'avère nécessaire pour une mise + en cache correcte.

      +

      Il faut garder à l'esprit que les conditions suivent une + logique de court-circuit en cas de présence du drapeau + 'ornext|OR', si bien que + certaines d'entre elles sont susceptibles de ne pas être + évaluées du tout.

    8. + +
    9. On peut utiliser %{LA-U:variable} pour les + recherches en avant qui effectuent une sous-requête interne + (basée sur l'URL), pour déterminer la valeur finale de + variable. Cela peut servir à accéder à une variable + (nécessaire pour une réécriture) qui n'est pas disponible dans + la situation présente, mais le sera dans une phase ultérieure. +

      Par exemple, pour effectuer une réécriture qui tient compte + de la variable REMOTE_USER dans un contexte + niveau serveur (fichier httpd.conf), vous devez + utiliser %{LA-U:REMOTE_USER} ; cette variable est + définie au cours des phases d'autorisation, qui interviennent + après la phase de traduction de l'URL (pendant + laquelle agit mod_rewrite).

      +

      Par contre, comme mod_rewrite implémente son contexte + niveau répertoire (fichier .htaccess) via la + phase Fixup de l'API, et comme les phases d'autorisation + interviennent avant cette phase, vous ne pouvez + utiliser %{REMOTE_USER} que + dans le contexte niveau serveur.

    10. + +
    11. On peut utiliser %{LA-F:variable} pour + effectuer une sous-requête interne (basée sur un nom de + fichier), pour déterminer la valeur finale de + variable. La plupart du temps, elle est identique à + LA-U vue précédemment.
    12. +
    + +

    expression_de_comparaison est une expression + rationnelle qui est appliquée à l'instance actuelle de + chaîne_de_test. chaîne_de_test est d'abord + évaluée, puis comparée à + l'expression_de_comparaison.

    + +

    A savoir : + expression_de_comparaison est une + expression rationnelle compatible perl avec + quelques extensions :

    + +
      +
    1. Vous pouvez préfixer l'expression avec un caractère + '!' (point d'exclamation) pour indiquer une + expression de non-correspondance.
    2. + +
    3. Il existe certaines variantes spéciales + d'expressions de comparaison. A la place d'une + expression rationnelle, vous pouvez utiliser : + +
        +
      • '<expression' (inférieur au sens + lexicographique)
        + Traite l'expression comme une chaîne de + caractères et la compare lexicographiquement à + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est inférieure au sens + lexicographique à l'expression.
      • + +
      • '>expression' (supérieur au sens + lexicographique)
        + Traite l'expression comme une chaîne de + caractères et la compare lexicographiquement à + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est supérieure au sens + lexicographique à l'expression.
      • + +
      • '=expression' (égal au sens + lexicographique)
        + Traite l'expression comme une chaîne de + caractères et la compare lexicographiquement à + chaîne_de_test. La condition est satisfaite si + chaîne_de_test est égale au sens + lexicographique à l'expression (les deux chaînes + sont exactement identiques, caractère pour caractère). Si + expression est "" (deux guillemets), + chaîne_de_test est comparée à la chaîne vide.
      • + +
      • '-d' (est un + répertoire)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un répertoire.
      • + +
      • '-f' (est un + fichier régulier)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un fichier régulier.
      • + +
      • '-s' (est un fichier régulier d'une + certaine taille)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un fichier régulier + dont la taille est supérieure à zéro.
      • + +
      • '-l' (est un + lien symbolique)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et s'il s'agit d'un lien + symbolique.
      • + +
      • '-x' (a le droit + d'exécussion)
        + Traite chaîne_de_test comme un chemin et vérifie + s'il existe ou pas, et a le droit d'exécution. Ce droit est + déterminé en accord avec le système d'exploitation + sous-jacent.
      • + +
      • '-F' (test de l'existence d'un fichier + via une sous-requête)
        + Vérifie si chaîne_de_test est un fichier valide, + accessible à travers tous les contrôles d'accès du serveur + actuellement configurés pour ce chemin. C'est une + sous-requête interne qui effectue cette vérification - à + utiliser avec précautions car les performances du serveur + peuvent s'en trouver affectées !
      • + +
      • '-U' (test de l'existence d'une URL + via une sous-requête)
        + Vérifie si chaîne_de_test est une URL valide, + accessible à travers tous les contrôles d'accès du serveur + actuellement configurés pour ce chemin. C'est une + sous-requête interne qui effectue cette vérification - à + utiliser avec précautions car les performances du serveur + peuvent s'en trouver affectées !

        +

        Ce drapeau ne renvoie que des informations + concernant le contrôle d'accès, l'authentification et + l'autorisation. Il ne renvoie pas d'informations + concernant le code d'état que le gestionnaire configuré + (static file, CGI, proxy, etc...) aurait, quant à lui, + retourné.

      • +
      + +Note : + Tous ces tests peuvent aussi être préfixés par un point + d'exclamation ('!') pour inverser leur signification. + +
    4. + +
    5. Vous pouvez aussi définir certains drapeaux pour + l'expression_de_comparaison en ajoutant ces + [drapeaux] + comme troisième argument de la directive + RewriteCond, où drapeaux est un + sous-ensemble séparé par des virgules des drapeaux suivants : + +
        +
      • 'nocase|NC' + (no case)
        + Rend le test insensible à la casse - il n'est pas fait de + distinction entre majuscules et minuscules, à la fois dans le + développement de chaîne_de_test et dans + expression_de_comparaison. Ce drapeau n'est pris en + compte que lors d'une comparaison entre chaîne_de_test + et expression_de_comparaison. Il ne l'est pas pour les + vérification par sous-requêtes ou sur le système de + fichiers.
      • + +
      • + 'ornext|OR' + (ou condition suivante)
        + Permet de chaîner les conditions de règles avec un OU au + lieu du AND implicite. Exemple typique : + + +
        +RewriteCond %{REMOTE_HOST}  ^hote1  [OR]
        +RewriteCond %{REMOTE_HOST}  ^hote2  [OR]
        +RewriteCond %{REMOTE_HOST}  ^hote3
        +RewriteRule ...règles concernant tous ces hôtes...
        +
        +
        + + Sans ce drapeau, les paires + condition/règle devraient être écrites trois fois. +
      • + +
      • 'novary|NV' + (no vary)
        + Si la condition contient un en-tête HTTP, ce drapeau empêche + ce dernier d'être ajouté à l'en-tête Vary de la réponse.
        + L'utilisation de ce drapeau peut provoquer une mise en cache + incorrecte de la réponse, si la représentation de cette réponse + varie avec la valeur de l'en-tête considéré. Ce drapeau ne + devrait donc être utilisé que si l'on maîtrise parfaitement le + fonctionnement de l'en-tête Vary. +
      • +
      +
    6. +
    + +

    Exemple :

    + +

    Pour réécrire la page d'accueil d'un site en fonction de + l'en-tête ``User-Agent:'' de la requête, vous + pouvez utiliser ce qui suit :

    + + +
    +RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla
    +RewriteRule  ^/$                 /homepage.max.html  [L]
    +
    +RewriteCond  %{HTTP_USER_AGENT}  ^Lynx
    +RewriteRule  ^/$                 /homepage.min.html  [L]
    +
    +RewriteRule  ^/$                 /homepage.std.html  [L]
    +
    +
    + +

    Explications : si vous utilisez un navigateur + (Netscape Navigator, Mozilla etc) qui s'identifie comme + 'Mozilla', vous accèderez à la page d'accueil max (qui + peut contenir des frames, ou d'autres ressources + particulières). + Si vous utilisez le navigateur Lynx (qui est un navigateur + basé sur le texte), vous accèderez à une page d'accueil min + (qui peut être une version conçue pour une navigation simple + basée sur le texte). + Si aucune de ces conditions n'est satisfaite (vous utilisez tout + autre navigateur, ou votre navigateur s'identifie de manière non + standard), vous accèderez à la page d'accueil std + (standard).

    + +
    + +
    + + +RewriteRule +Définit les règles pour le moteur de réécriture +RewriteRule + Modèle Substitution [drapeaux] +server configvirtual host +directory.htaccess +FileInfo + + +

    La directive RewriteRule est le + véritable cheval de trait de la réécriture. La directive peut + apparaître plusieurs fois, chaque instance définissant une + règle de réécriture particulière. L'ordre dans lequel ces règles + sont définies est important - il s'agit de l'ordre dans lequel + les règles seront appliquées au cours du processus de + réécriture.

    + +

    Modèle est une + expression rationnelle + compatible perl. Dans la première règle de réécriture, + l'expression est comparée au + chemin de l'URL de la + requête (%-decoded) ; les expressions suivantes sont comparées à la sortie de + la dernière règle de réécriture qui a été appliquée.

    + +Qu'est-ce qui est comparé ? + +

    Dans un contexte de serveur virtuel VirtualHost, le modèle est tout + d'abord comparé à la portion de l'URL située entre le nom d'hôte + éventuellement accompagné du port, et la chaîne de paramètres (par + exemple "/app1/index.html").

    + +

    Dans les contextes de répertoire Directory et htaccess, le + modèle est tout d'abord comparé au chemin du système + de fichiers, après suppression du préfixe ou chemin de base + ayant conduit à la règle RewriteRule (par + exemple "app1/index.html" ou + "index.html" selon l'endroit où les directives sont définies).

    + +

    Si vous voulez effectuer une comparaison en tenant compte du + nom d'hôte, du port ou de la chaîne de paramètres, utilisez une + directive RewriteCond + comportant les variables + %{HTTP_HOST}, %{SERVER_PORT}, ou + %{QUERY_STRING}.

    + +
    + +Réécritures dans un contexte de répertoire +
      +
    • L'utilisation du moteur de réécriture dans les +fichiers .htaccess et les sections +Directory est un peu plus +complexe.
    • + +
    • Pour activer le moteur de réécriture dans ces contextes, vous devez +définir "RewriteEngine On" et +"Options FollowSymLinks". Si l'administrateur a désactivé +la possibilité de modifier l'option FollowSymLinks au +niveau du répertoire d'un utilisateur, vous ne pouvez pas utiliser le +moteur de réécriture. Cette restriction a été instaurée à des fins de +sécurité.
    • + +
    • Lorsqu'on utilise le moteur de réécriture dans un fichier +.htaccess, le chemin de base du répertoire courant (qui est +toujours le même pour ce même répertoire) est automatiquement +supprimé au cours de la comparaison avec le modèle de la règle +de réécriture, et automatiquement ajouté lorsqu'une +substitution relative (ne débutant pas par un slash ou un nom de +protocole) arrive à la fin d'un jeu de règles. Voir la directive +RewriteBase pour plus de +détails à propos de l'ajout du préfixe après les substitutions +relatives.
    • + +
    • Si vous souhaitez effectuer une comparaison en prenant en compte +l'intégralité du +chemin de l'URL dans un contexte de répertoire (htaccess), vous devez +utiliser la variable %{REQUEST_URI} dans la directive +RewriteCond.
    • + +
    • Le prefixe supprimé se termine toujours par un slash, ce qui +signifie que la comparaison s'effectue avec une chaîne qui ne comporte +jamais de slash de début. Ainsi, un modèle contenant +^/ ne correspondra jamais dans un contexte de répertoire.
    • + +
    • Bien que les règles de réécriture soient permises du point de vue de +la syntaxe dans les sections Location et Files, elles n'y sont pas prises en compte, et +n'y sont à priori d'aucune utilité.
    • +
    +
    + +

    Pour quelques conseils à propos des expressions rationnelles, voir le + document Introduction à + mod_rewrite.

    + +

    Dans mod_rewrite, on peut aussi utiliser le caractère NON + ('!') comme préfixe de modèle. Ceci vous permet + d'inverser la signification d'un modèle, soit pour dire + ``si l'URL considérée ne correspond PAS à + ce modèle''. Le caractère NON peut donc être utilisé à + titre exceptionnel, lorsqu'il est plus simple d'effectuer une + comparaison avec le modèle inversé, ou dans la dernière règle + par défaut.

    + +Note +Si vous utilisez le caractère NON pour inverser la signification d'un +modèle, vous ne pouvez pas inclure de parties génériques groupées dans +le modèle. Ceci est dû au fait que, lorsque le modèle ne correspond +pas (autrement dit, sa négation correspond), les groupes sont vides. +Ainsi, si vous utilisez des modèles inversés, vous ne pouvez +pas vous référer aux groupes par $N dans la chaîne de +substitution ! + + +

    Dans une règle de réécriture, + Substitution est la chaîne + de caractères qui remplace le chemin de l'URL original qui + correspondait au Modèle. Substitution peut + être :

    + +
    + +
    un chemin du système de fichiers
    + +
    Il indique alors la localisation dans le système de + fichiers de la ressource qui doit être envoyée au + client. Les substitutions ne sont traitées en tant que chemin du + système de fichiers que si les règles sont définies dans un + contexte de serveur (virtualhost), et si le premier élément de ce + chemin existe dans le système de fichiers.
    + +
    chemin d'URL
    + +
    Un chemin relatif à la valeur de DocumentRoot vers la ressource qui + doit être servie. Notez que mod_rewrite + essaie de deviner si vous avez spécifié un chemin du système + de fichiers ou un chemin d'URL en vérifiant si la première + partie du chemin existe à la racine du système de fichiers. + Par exemple, si vous avez spécifié comme chaîne de + Substitution /www/file.html, cette + dernière sera traitée comme un chemin d'URL à moins + qu'un répertoire nommé www n'existe à la racine + de votre système de fichiers (ou dans le cas d'une + réécriture au sein d'un fichier .htaccess, + relativement à la racine des documents), auquel cas la chaîne de + substitution sera traitée comme un chemin du système de + fichiers. Si vous désirez que d'autres directives de + correspondance d'URL (comme la directive Alias) soient appliquées au + chemin d'URL résultant, utilisez le drapeau [PT] + comme décrit ci-dessous.
    + +
    URL absolue
    + +
    Si une URL absolue est spécifiée, + mod_rewrite vérifie si le nom d'hôte + correspond à celui de l'hôte local. Si c'est le cas, le + protocole et le nom d'hôte sont supprimés, et ce qui reste est + traité comme un chemin d'URL. Dans le cas contraire, une + redirection externe vers l'URL indiquée est effectuée. Pour + forcer une redirection externe vers l'hôte local, voir le + drapeau [R] ci-dessous.
    + +
    - (tiret)
    + +
    Un tiret indique qu'aucune substitution ne doit être + effectuée (le chemin considéré est transmis sans changement). + Ceci est utile quand un drapeau doit être appliqué sans + modifier le chemin (voir ci-dessous).
    + +
    + +

    En plus du texte, la chaîne Substition peut + comporter :

    + +
      +
    1. des références arrières ($N) vers le modèle + d'une directive RewriteRule
    2. + +
    3. des références arrières (%N) vers le dernier + modèle d'une directive RewriteCond qui correspondait
    4. + +
    5. des variables du serveur comme dans les chaînes de test de + condition d'une règle (%{VARNAME})
    6. + +
    7. des appels de + fonctions de comparaison + (${nom correspondance:clé|défaut})
    8. +
    + +

    Les références arrières sont des identificateurs de la forme + $N (N=0..9), qui + seront remplacés par le contenu du Nème groupe + du Modèle qui correspondait. Les variables du serveur + sont les mêmes que dans la Chaîne de test d'une + directive RewriteCond. Les fonctions de comparaison + sont issues de la directive RewriteMap dans la + section de laquelle elles sont décrites. Ces trois types de + variables sont évaluées dans l'ordre ci-dessus.

    + +

    Chaque règle de réécriture s'applique au résultat de la règle + précédente, selon l'ordre dans lequel elles ont été définies dans + le fichier de configuration. L'URL est intégralement + remplacée par la chaîne de Substitution et le + processus de réécriture se poursuit jusqu'à ce que toutes les + règles aient été appliquées, ou qu'il soit explicitement stoppé + par un drapeau L, + ou par un autre drapeau qui implique un arrêt immédiat, comme + F.

    + + Modifier la chaîne de requête +

    Par défaut, la chaîne de requête est transmise sans + modification. Vous pouvez cependant créer dans la chaîne de + substitution des URLs dont une partie constitue une chaîne de + requête. Pour cela, ajoutez simplement un point d'interrogation + dans la chaîne de substitution pour indiquer que le texte qui + suit doit être réinjecté dans la chaîne de requête. Pour + supprimer une chaîne de requête, terminez simplement la chaîne de + substitution par un point d'interrogation. Pour combiner les + nouvelles chaînes de requête avec les anciennes, utilisez le + drapeau [QSA].

    +
    + +

    En outre, vous pouvez spécifier des actions spéciales à effectuer en ajoutant + des + [drapeaux] + comme troisième argument de la directive + RewriteRule. Flags est une liste de valeurs + déparées par des virgules, délimitée par des crochets, choisies + parmi les drapeaux de la table suivante. Vous trouverez plus de + détails et d'exemples, pour chaque drapeau, dans la documentation sur les drapeaux de + réécriture.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Drapeaux et syntaxeFonction
    BEchappe les caractères non-alphanumériques avant + d'appliquer la transformation. détails ...
    chain|CLa règle est chaînée avec la règle suivante. Si la règle + échoue, la ou les règles avec lesquelles elle est est chaînée + seront sautées. détails ...
    cookie|CO=NAME:VALDéfinit un cookie au niveau du navigateur client. La syntaxe + complète est : + CO=NAME:VAL:domain[:lifetime[:path[:secure[:httponly]]]] details ... + détails ... +
    discardpath|DPISupprime la partie PATH_INFO de l'URI réécrit. détails + ...
    env|E=[!]VAR[:VAL]Définit la variable d'environnement VAR (à la valeur + VAL si elle est fournie). La variante !VAR + annule la définition de la variable VAR.détails ...
    forbidden|FRenvoie une réponse 403 FORBIDDEN au navigateur client. + détails ...
    gone|GRenvoie un message d'erreur 410 GONE au navigateur client. détails ...
    Handler|H=Gestionnaire de contenuL'URI résultant est envoyé au Gestionnaire de + contenu pour traitement. détails ...
    last|LArrête le processus de réécriture immédiatement et n'applique + plus aucune règle. Prêtez une attention particulière aux mises + en garde concernant les contextes de niveau répertoire et + .htaccess. détails ...
    next|NRéexécute le processus de réécriture à partir de la première + règle, en utilisant le résultat du jeu de règles, sous réserve + qu'il y ait un point de départ. détails + ...
    nocase|NCRend la comparaison entre modèles insensible à la casse. + détails ...
    noescape|NEEmpêche mod_rewrite d'effectuer un échappement hexadécimal + des caractères spéciaux dans le résultat de la réécriture. détails ...
    nosubreq|NSLa règle est sautée si la requête courante est une + sous-requête interne. détails ...
    proxy|PForce l'envoi en interne de l'URL de substitution en tant + que requête mandataire. détails + ...
    passthrough|PTL'URI résultant est repassé au moteur de mise en + correspondance des URLs pour y être traité par d'autres + traducteurs URI-vers-nom de fichier, comme Alias ou + Redirect. détails ...
    qsappend|QSAAjoute toute chaîne de paramètres présente dans l'URL de la + requête originale à toute chaîne de paramètres créée dans la + cible de réécriture. détails ...
    qsdiscard|QSDSupprime toute chaîne de paramètres de l'URI entrant. détails + ...
    redirect|R[=code]Force une redirection externe, avec un code de statut HTTP + optionnel. détails ... +
    skip|S=nombreSi la règle courante s'applique, le moteur de réécriture + doit sauter les nombre règles suivantes. détails ...
    type|T=MIME-typeForce l'attribution du Type-MIME + spécifié au fichier cible. détails ...
    + +Développement du répertoire home +

    Quand la chaîne de substitution commence par quelque chose comme +"/~user" (de manière explicite ou par références arrières), mod_rewrite +développe le répertoire home sans tenir compte de la présence ou de la +configuration du module mod_userdir.

    + +

    Ce développement n'est pas effectué si le drapeau PT est +utilisé dans la directive RewriteRule

    +
    + +

    Voici toutes les combinaisons de substitution et leurs + significations :

    + +

    Dans la configuration au niveau du serveur principal + (httpd.conf)
    + pour la requête ``GET + /chemin/infochemin'':

    +

    + +
    +Règle                          Résultat de la substitution
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) autre-chemin$1                      non valide, non supporté
    +
    +^/chemin(.*) autre-chemin$1  [R]                 non valide, non supporté
    +
    +^/chemin(.*) autre-chemin$1  [P]                 non valide, non supporté
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) /autre-chemin$1                     /autre-chemin/infochemin
    +
    +^/chemin(.*) /autre-chemin$1 [R]                 http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^/chemin(.*) /autre-chemin$1 [P]                 n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) http://cet-hôte/autre-chemin$1      /autre-chemin/infochemin
    +
    +^/chemin(.*) http://cet-hôte/autre-chemin$1 [R]  http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^/chemin(.*) http://cet-hôte/autre-chemin$1 [P]  n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^/chemin(.*) http://autre hôte/autre-chemin$1     http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^/chemin(.*) http://autre hôte/autre-chemin$1 [R] http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +                                                (le drapeau [R] est
    +						redondant)
    +
    +^/chemin(.*) http://autre hôte/autre-chemin$1 [P] http://autre hôte/autre-chemin/infochemin
    +                                                via un mandataire interne
    +
    + +

    Dans une configuration de niveau répertoire pour + /chemin
    + (/chemin/physique/vers/chemin/.htacccess, avec + RewriteBase /chemin)
    + pour la requête ``GET + /chemin/chemin-local/infochemin'':

    +

    + +
    +Règle                          Résultat de la substitution
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) autre-chemin$1                      /chemin/autre-chemin/infochemin
    +
    +^chemin-local(.*) autre-chemin$1  [R]                 http://cet-hôte/chemin/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) autre-chemin$1  [P]                 n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) /autre-chemin$1                     /autre-chemin/infochemin
    +
    +^chemin-local(.*) /autre-chemin$1 [R]                 http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) /autre-chemin$1 [P]                 n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) http://cet-hôte/autre-chemin$1      /autre-chemin/infochemin
    +
    +^chemin-local(.*) http://cet-hôte/autre-chemin$1 [R]  http://cet-hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) http://cet-hôte/autre-chemin$1 [P]  n'a pas lieu d'être, non supporté
    +----------------------------------------------  ----------------------------------
    +^chemin-local(.*) http://autre hôte/autre-chemin$1     http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +
    +^chemin-local(.*) http://autre hôte/autre-chemin$1 [R] http://autre hôte/autre-chemin/infochemin
    +                                                via redirection externe
    +                                                (le drapeau [R] est
    +						redondant)
    +
    +^chemin-local(.*) http://autre hôte/autre-chemin$1 [P] http://autre hôte/autre-chemin/infochemin
    +                                                via un mandataire interne
    +
    +
    +
    +
    diff --git a/docs/manual/mod/mod_rewrite.xml.meta b/docs/manual/mod/mod_rewrite.xml.meta index bffdea71d6c..decc0a7b1e8 100644 --- a/docs/manual/mod/mod_rewrite.xml.meta +++ b/docs/manual/mod/mod_rewrite.xml.meta @@ -1,11 +1,13 @@ + - + mod_rewrite /mod/ .. en + fr diff --git a/docs/manual/mod/mod_setenvif.html b/docs/manual/mod/mod_setenvif.html index 0a1cf29b65a..4e52a0258ea 100644 --- a/docs/manual/mod/mod_setenvif.html +++ b/docs/manual/mod/mod_setenvif.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_setenvif.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_setenvif.html.ja.euc-jp +URI: mod_setenvif.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_setenvif.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_setenvif.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_setenvif.html.en b/docs/manual/mod/mod_setenvif.html.en index 6114ce1a98d..d5582b2bd3d 100644 --- a/docs/manual/mod/mod_setenvif.html.en +++ b/docs/manual/mod/mod_setenvif.html.en @@ -1,43 +1,52 @@ - -mod_setenvif - Apache HTTP Server +mod_setenvif - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_setenvif

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_setenvif

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    - -
    Description:Allows the setting of environment variables based on characteristics of the request
    Status:Base
    Module Identifier:setenvif_module
    Source File:mod_setenvif.c
    +Module Identifier:setenvif_module +Source File:mod_setenvif.c

    Summary

    The mod_setenvif module allows you to set - environment variables according to whether different aspects of + internal environment variables according to whether different aspects of the request match regular expressions you specify. These environment variables can be used by other parts of the server - to make decisions about actions to be taken.

    + to make decisions about actions to be taken, as well as becoming + available to CGI scripts and SSI pages.

    The directives are considered in the order they appear in the configuration files. So more complex sequences can be used, @@ -59,7 +68,7 @@ on characteristics of the request

    See also

    +
    top

    BrowserMatch Directive

    @@ -102,9 +111,6 @@ respect to case Override:FileInfo Status:Base Module:mod_setenvif -Compatibility:Apache 1.2 and - above (in Apache 1.2 this directive was found in the - now-obsolete mod_browser module)

    The BrowserMatchNoCase directive is @@ -141,7 +147,7 @@ respect to case

    The SetEnvIf directive defines environment variables based on attributes of the request. The - attribute specified in the first argument can be one of four + attribute specified in the first argument can be one of three things:

      @@ -173,7 +179,10 @@ respect to case
    1. Request_URI - the resource requested on the HTTP request line -- generally the portion of the URL - following the scheme and host portion without the query string
    2. + following the scheme and host portion without the query string. See + the RewriteCond + directive of mod_rewrite for extra information on + how to match your query string. @@ -187,21 +196,11 @@ this manner. 'Earlier' means that they were defined at a broader scope Environment variables will be considered only if there was no match among request characteristics and a regular expression was not used for the attribute. - -
    3. - A reference to an extension of an SSL client certificate, located by - its object id oid. - If a non-SSL request, or in absense of the configured oid, - no variable will be set. If the oid is found multiple times, - the individual strings will be concatenated, separated by a comma ','. - The oid should reference a string-valued extension. -
    -

    The second argument (regex) is a Perl compatible regular expression. -This is similar to a POSIX.2 egrep-style regular expression. -If the regex matches against the attribute, -then the remainder of the arguments are evaluated.

    +

    The second argument (regex) is a regular expression. If the regex +matches against the attribute, then the remainder of the +arguments are evaluated.

    The rest of the arguments give the names of variables to set, and optionally values to which they should be set. These take the form @@ -229,12 +228,10 @@ of

    SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
    SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
    :
    - SetEnvIf Referer www\.mydomain\.com intra_site_referral
    + SetEnvIf Referer www\.mydomain\.example\.com intra_site_referral
    :
    SetEnvIf object_is_image xbm XBIT_PROCESSING=1
    :
    - SetEnvIf OID("2.16.840.1.113730.1.13") "(.*)" NetscapeComment=$1
    - :
    SetEnvIf ^TS* ^[a-z].* HAVE_TS

    @@ -242,11 +239,7 @@ of

    object_is_image if the request was for an image file, and the fourth sets intra_site_referral if the referring page was somewhere on the - www.mydomain.com Web site.

    - -

    The sixth example will set the NetscapeComment - environment variable to the string found in the corresponding - SSL client certificate field (if found).

    + www.mydomain.example.com Web site.

    The last example will set environment variable HAVE_TS if the request contains any headers that @@ -272,7 +265,6 @@ without respect to case Override:FileInfo Status:Base Module:mod_setenvif -Compatibility:Apache 1.3 and above

    The SetEnvIfNoCase is semantically identical to @@ -294,8 +286,30 @@ without respect to case

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_setenvif.html.ja.euc-jp b/docs/manual/mod/mod_setenvif.html.ja.euc-jp deleted file mode 100644 index 8725b3ba857..00000000000 --- a/docs/manual/mod/mod_setenvif.html.ja.euc-jp +++ /dev/null @@ -1,280 +0,0 @@ - - - -mod_setenvif - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_setenvif

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥ȤÎÆÃħ¤˴ð¤Ť¤¤¿´Ķ­Êѿô¤ÎÀßÄê¤ò²Äǽ¤ˤ¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:setenvif_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_setenvif.c
    -

    ³µÍ×

    - - -

    mod_setenvif - ¥⥸¥塼¥ë¤ϡ¢¥ꥯ¥¨¥¹¥ȤΤ¢¤ë¦Ì̤¬»ØÄꤵ¤줿Àµµ¬ɽ¸½ - ¤˹礦¤«¤ɤ¦¤«¤ˤè¤äƴĶ­Êѿô¤òÀßÄꤹ¤뵡ǽ¤òÄ󶡤·¤ޤ¹¡£ - ¤³¤ì¤é¤δĶ­Êѿô¤ò»ÈÍѤ·¤ơ¢¥µ¡¼¥Фξ¤ÎÉôʬ¤¬¤ɤΤ褦¤Êưºî¤򤹤뤫¤ò - ·èÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤³¤Υ⥸¥塼¥뤬Ä󶡤¹¤ë¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ÀßÄê¥ե¡¥¤¥ë¤˸½¤ì¤ë½çÈ֤ËŬÍѤµ¤ì¤ޤ¹¡£ - ¤½¤ì¤ò»Ȥäơ¢¼¡¤ÎÎã¤Τ褦¤ˤè¤êʣ»¨¤ÊÀßÄê¤򤹤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¥֥饦¥¶¤¬ mozilla ¤ǤϤ¢¤뤱¤ì¤ɡ¢MSIE ¤ǤϤʤ¤¤Ȥ­¤Ë - netscape ¤òÀßÄꤷ¤ޤ¹¡£

    -

    - BrowserMatch ^Mozilla netscape
    - BrowserMatch MSIE !netscape
    -

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    »²¾È

    -
    - -
    top
    -

    BrowserMatch ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:HTTP User-Agent ¤˴ð¤Ť¤¤ƴĶ­Êѿô¤òÀßÄꤹ¤ë -
    ¹½ʸ:BrowserMatch regex [!]env-variable[=value] -[[!]env-variable[=value]] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_setenvif
    -

    BrowserMatch ¤Ï - SetEnvIf ¥ǥ£¥쥯¥ƥ£¥֤Î - ÆÃÎã¤ǡ¢User-Agent HTTP ¥ꥯ¥¨¥¹¥ȥإåÀ¤˴ð¤Ť¤¤Æ - ´Ķ­Êѿô¤òÀßÄꤷ¤ޤ¹¡£°ʲ¼¤Î 2 ¹Ԥθú²̤ÏƱ¤¸¤ˤʤê¤ޤ¹:

    - -

    - BrowserMatchNoCase Robot is_a_robot
    - SetEnvIfNoCase User-Agent Robot is_a_robot
    -

    - -

    ¤½¤Î¾¤ÎÎã:

    -

    - BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
    - BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
    - BrowserMatch MSIE !javascript
    -

    - -
    -
    top
    -

    BrowserMatchNoCase ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:HTTP User-Agent ¤˴ð¤Ť¤¤ÆÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¤Ë -´Ķ­Êѿô¤òÀßÄꤹ¤ë
    ¹½ʸ:BrowserMatchNoCase regex [!]env-variable[=value] - [[!]env-variable[=value]] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_setenvif
    ¸ߴ¹À­:Apache 1.2 °ʹß - (Apache 1.2 ¤ǤϤ³¤Υǥ£¥쥯¥ƥ£¥֤Ϥ⤦ÍѤ¤¤é¤ì¤Ƥ¤¤ʤ¤ - mod_browser ¥⥸¥塼¥ë¤ˤ¢¤ê¤ޤ·¤¿)
    - -

    BrowserMatchNoCase ¥ǥ£¥쥯¥ƥ£¥֤Ï - °Ọ̃Ū¤ˤÏ BrowserMatch ¥ǥ£¥쥯¥ƥ£¥֤È - Ʊ¤¸¤Ǥ¹¡£¤¿¤À¤·¡¢¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ʤ¤ - ¥ޥåÁ¥󥰤ò¹Ԥʤ¤¤ޤ¹¡£Î㤨¤Ð:

    - -

    - BrowserMatchNoCase mac platform=macintosh
    - BrowserMatchNoCase win platform=windows
    -

    - -

    BrowserMatch ¥ǥ£¥쥯¥ƥ£¥֤È - BrowserMatchNoCase ¥ǥ£¥쥯¥ƥ£¥֤Ï - SetEnvIf ¥ǥ£¥쥯¥ƥ£¥֤È - SetEnvIfNoCase ¥ǥ£¥쥯¥ƥ£¥֤Î - ÆÃÎã¤Ǥ¹¡£°ʲ¼¤Î 2 ¹Ԥθú²̤ÏƱ¤¸¤Ǥ¹:

    - -

    - BrowserMatchNoCase Robot is_a_robot
    - SetEnvIfNoCase User-Agent Robot is_a_robot
    -

    - -
    -
    top
    -

    SetEnvIf ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥ȤΰÀ­¤˴ð¤Ť¤¤ƴĶ­Êѿô¤òÀßÄꤹ¤ë -
    ¹½ʸ:SetEnvIf attribute - regex [!]env-variable[=value] - [[!]env-variable[=value]] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_setenvif
    -

    SetEnvIf - ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥ꥯ¥¨¥¹¥ȤΰÀ­¤˴ð¤Ť¤¤ƴĶ­Êѿô¤òÄêµÁ¤·¤ޤ¹¡£ - ºǽé¤ΰú¿ô¤ǻØÄê¤Ǥ­¤ë attribute ¤ϰʲ¼¤λ°¤ĤΤɤ줫¤Ǥ¹:

    - -
      -
    1. HTTP ¥ꥯ¥¨¥¹¥ȥإåÀ¥ե£¡¼¥ë¥É (¾ܤ·¤¤¾ðÊó¤Ï RFC 2616 ¤ò - »²¾Ȥ·¤Ƥ¯¤À¤µ¤¤)¡£Î㤨¤С¢Host, - User-Agent, Referer, - Accept-Language ¤Ǥ¹¡£¥ꥯ¥¨¥¹¥ȥإåÀ¤ν¸¹ç¤򸽤¹¤¿¤á¤Ë - Àµµ¬ɽ¸½¤ò»Ȥ¦¤³¤Ȥâ¤Ǥ­¤ޤ¹¡£
    2. - -
    3. °ʲ¼¤Υꥯ¥¨¥¹¥ȤΰìÉôʬ¤Τɤ줫: - -
        -
      • Remote_Host - - ¥ꥯ¥¨¥¹¥Ȥò¹ԤʤäƤ¤¤륯¥饤¥¢¥ó¥ȤΥۥ¹¥È̾ (¤⤷¤¢¤ì¤Ð)
      • - -
      • Remote_Addr - - ¥ꥯ¥¨¥¹¥Ȥò¹ԤʤäƤ¤¤륯¥饤¥¢¥ó¥ȤÎ IP ¥¢¥ɥ쥹
      • - -
      • Server_Addr - - ¥ꥯ¥¨¥¹¥Ȥò¼õ¤±¼è¤ä¿¥µ¡¼¥ФÎ IP ¥¢¥ɥ쥹 - (2.0.43 °ʹߤΤß)
      • - -
      • Request_Method - - »ÈÍѤµ¤ì¤Ƥ¤¤ë¥᥽¥åÉ̾ (GET, POST - ¤ʤÉ)
      • - -
      • Request_Protocol - - ¥ꥯ¥¨¥¹¥Ȥ¬¹Ԥʤï¤줿¥ץí¥ȥ³¥ë¤Î̾Á°¤ȥС¼¥¸¥ç¥ó - (Î㤨¤Ð¡¢"HTTP/0.9", "HTTP/1.1" ¤ʤɡ£)
      • - -
      • Request_URI - - URL ¤Υ¹¥­¡¼¥à¤ȥۥ¹¥Ȥθå¤ÎÉôʬ
      • -
      -
    4. - -
    5. ¥ꥯ¥¨¥¹¥ȤȴØϢÉդ±¤é¤ì¤ë´Ķ­Êѿô¤Υꥹ¥ȡ£¤³¤ì¤ˤè¤ê -SetEnvIf ¥ǥ£¥쥯¥ƥ£¥֤¬°ÊÁ°¤ΥޥåÁ¤ηë²̤ò -»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£¤³¤ÎÊýˡ¤Υƥ¹¥ȤǤÏÁ°¤ÎÉôʬ¤ˤ¢¤ë -SetEnvIf[NoCase] ¤ηë²̤Τߤò»ÈÍѲÄǽ¤Ǥ¹¡£¡ÖÁ°¡פȤϡ¢ -¤è¤깭¤¤ÈϰϤËÂФ·¤ÆÄêµÁ¤µ¤ì¤Ƥ¤¤ë (¥µ¡¼¥ÐÁ´ÂΤΤ褦¤Ë) ¤«¡¢¸½ºߤΥǥ£¥쥯¥ƥ£¥֤Î -ÈϰϤǤè¤êÁ°¤ÎÉôʬ¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤뤫¡¢¤Ȥ¤¤¦¤³¤ȤǤ¹¡£ -´Ķ­Êѿô¤Ǥ¢¤ë²ÄǽÀ­¤ϡ¢¥ꥯ¥¨¥¹¥ȤÎÆÃÀ­¤ËÂФ¹¤ë¥ޥåÁ¤¬¸ºߤ»¤º¡¢ -attribute ¤ËÀµµ¬ɽ¸½¤¬»Ȥï¤ì¤ʤ«¤ä¿¤Ȥ­¤ˤΤ߹Í褵¤ì¤ޤ¹¡£
    6. -
    - -

    Æó¤ÄÌܤΰú¿ô (regex) ¤Ï Perl ¸ߴ¹¤ÎÀµµ¬ɽ¸½¤Ǥ¹¡£ -¤³¤ì¤Ï POSIX.2 ¤Î egrep ·Á¼°¤ÎÀµµ¬ɽ¸½¤Ȼ÷¤Ƥ¤¤ޤ¹¡£regex ¤¬ -attribute ¤˥ޥåÁ¤¹¤ë¾ì¹ç¤ϡ¢»Ĥê¤ΰú¿ô¤¬ɾ²Á¤µ¤ì¤ޤ¹¡£

    - -

    »Ĥê¤ΰú¿ô¤ÏÀßÄꤹ¤ëÊѿô¤Î̾Á°¤ǡ¢ÀßÄꤵ¤ì¤ëÃͤò»ØÄꤹ¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£ -¤³¤ì¤ϡ¢

    - -
      -
    1. varname
    2. - -
    3. !varname
    4. - -
    5. varname=value
    6. -
    - -

    ¤Τɤ줫¤ηÁ¼°¤ˤʤê¤ޤ¹¡£

    - -

    ºǽé¤ηÁ¼°¤Ǥϡ¢ÃͤÏ "1" ¤ËÀßÄꤵ¤ì¤ޤ¹¡£ - Æó¤ÄÌܤϤ⤷Ãͤ¬ÄêµÁ¤µ¤ì¤Ƥ¤¤ì¤Ф½¤ì¤ò¼è¤ê½ü¤­¤ޤ¹¡£ - »°¤ÄÌܤÏÊѿô¤ò value ¤ÎͿ¤¨¤é¤줿ÃͤËÀßÄꤷ¤ޤ¹¡£ - 2.0.51 °ʹߤǤϡ¢regex Æâ¤Ë $1..$9 - ¤¬¸ºߤ¹¤ì¤Ф½¤ì¤òǧ¼±¤·¡¢regex ¤ÎÂбþ¤¹¤ë´ݳç¸̤ǰϤޤ줿Éôʬ¤Ç - Ãִ¹¤·¤ޤ¹¡£

    - -

    Îã:

    - - SetEnvIf Request_URI "\.gif$" object_is_image=gif
    - SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
    - SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
    - :
    - SetEnvIf Referer www\.mydomain\.com intra_site_referral
    - :
    - SetEnvIf object_is_image xbm XBIT_PROCESSING=1
    - :
    - SetEnvIf ^TS* ^[a-z].* HAVE_TS
    -

    - -

    ½é¤á¤λ°¤Ĥϥꥯ¥¨¥¹¥Ȥ¬²èÁü¤Ǥ¢¤ë¤Ȥ­¤˴Ķ­Êѿô - object_is_image ¤òÀßÄꤷ¤ޤ¹¡£»ͤÄÌܤÏ - »²¾ȸµ¤Υڡ¼¥¸¤¬¥¦¥§¥֥µ¥¤¥È www.mydomain.com ¤ˤ¢¤ë¤Ȥ­¤Ë - intra_site_referral ¤òÀßÄꤷ¤ޤ¹¡£

    - -

    ºǸå¤ÎÎã¤ϡ¢¥ꥯ¥¨¥¹¥ȤË "TS" ¤ǻϤޤꡢÃͤ¬½¸¹ç [a-z] ¤Τɤ줫¤Ç - »Ϥޤë¥إåÀ¤¬¤¢¤ë¤Ȥ­¤Ë HAVE_TS ¤òÀßÄꤷ¤ޤ¹¡£

    - -

    »²¾È

    - -
    -
    top
    -

    SetEnvIfNoCase ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥ȤΰÀ­¤˴ð¤Ť¤¤ÆÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¤˴Ķ­Êѿô¤òÀßÄꤹ¤ë
    ¹½ʸ:SetEnvIfNoCase attribute regex - [!]env-variable[=value] - [[!]env-variable[=value]] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:FileInfo
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_setenvif
    ¸ߴ¹À­:Apache 1.3 °ʹß
    - -

    SetEnvIfNoCase ¤ϰỌ̃Ū¤ˤÏ - SetEnvIf ¥ǥ£¥쥯¥ƥ£¥֤È - Ʊ¤¸¤Ǥ¹¡£°㤤¤ϡ¢Àµµ¬ɽ¸½¤ΥޥåÁ¥󥰤¬Âçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ʤ¤¤Ç - ¹Ԥʤï¤ì¤뤳¤ȤǤ¹¡£Î㤨¤Ð:

    - -

    - SetEnvIfNoCase Host Apache\.Org site=apache -

    - -

    ¤³¤ì¤Ï HTTP ¥ꥯ¥¨¥¹¥ȥإåÀ¤˥ե£¡¼¥ë¥É Host: ¤¬ - ¤¢¤ꡢ¤½¤ÎÃͤ¬ Apache.Org ¤ä apache.org¡¢ - ¤½¤Î¾¤ÎÂçʸ»ú¾®ʸ»ú¤ÎÁȤ߹ç¤碌¤Ǥ¢¤ä¿¤Ȥ­¤Ë site - ´Ķ­Êѿô¤ò "apache" ¤ËÀßÄꤷ¤ޤ¹¡£

    - - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_setenvif.html.ja.utf8 b/docs/manual/mod/mod_setenvif.html.ja.utf8 new file mode 100644 index 00000000000..45c60a896c4 --- /dev/null +++ b/docs/manual/mod/mod_setenvif.html.ja.utf8 @@ -0,0 +1,310 @@ + + + + + +mod_setenvif - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_setenvif

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:リクエストの特徴に基づいた環境変数の設定を可能にする
    ステータス:Base
    モジュール識別子:setenvif_module
    ソースファイル:mod_setenvif.c
    +

    概要

    + + +

    mod_setenvif + モジュールは、リクエストのある側面が指定された正規表現 + に合うかどうかによって環境変数を設定する機能を提供します。 + これらの環境変数を使用して、サーバの他の部分がどのような動作をするかを + 決定することができます。

    + +

    このモジュールが提供するディレクティブは、 + 設定ファイルに現れる順番に適用されます。 + それを使って、次の例のようにより複雑な設定をすることができます。 + これは、ブラウザが mozilla ではあるけれど、MSIE ではないときに + netscape を設定します。

    +

    + BrowserMatch ^Mozilla netscape
    + BrowserMatch MSIE !netscape
    +

    +
    + + +
    top
    +

    BrowserMatch ディレクティブ

    + + + + + + + +
    説明:HTTP User-Agent に基づいて環境変数を設定する +
    構文:BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_setenvif
    +

    BrowserMatch は + SetEnvIf ディレクティブの + 特例で、User-Agent HTTP リクエストヘッダに基づいて + 環境変数を設定します。以下の 2 行の効果は同じになります:

    + +

    + BrowserMatchNoCase Robot is_a_robot
    + SetEnvIfNoCase User-Agent Robot is_a_robot
    +

    + +

    その他の例:

    +

    + BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
    + BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
    + BrowserMatch MSIE !javascript
    +

    + +
    +
    top
    +

    BrowserMatchNoCase ディレクティブ

    + + + + + + + +
    説明:HTTP User-Agent に基づいて大文字小文字を区別せずに +環境変数を設定する
    構文:BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_setenvif
    + +

    BrowserMatchNoCase ディレクティブは + 意味的には BrowserMatch ディレクティブと + 同じです。ただし、このディレクティブは大文字小文字を区別しない + マッチングを行ないます。例えば:

    + +

    + BrowserMatchNoCase mac platform=macintosh
    + BrowserMatchNoCase win platform=windows
    +

    + +

    BrowserMatch ディレクティブと + BrowserMatchNoCase ディレクティブは + SetEnvIf ディレクティブと + SetEnvIfNoCase ディレクティブの + 特例です。以下の 2 行の効果は同じです:

    + +

    + BrowserMatchNoCase Robot is_a_robot
    + SetEnvIfNoCase User-Agent Robot is_a_robot
    +

    + +
    +
    top
    +

    SetEnvIf ディレクティブ

    + + + + + + + +
    説明:リクエストの属性に基づいて環境変数を設定する +
    構文:SetEnvIf attribute + regex [!]env-variable[=value] + [[!]env-variable[=value]] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_setenvif
    +

    SetEnvIf + ディレクティブは、リクエストの属性に基づいて環境変数を定義します。 + 最初の引数で指定できる attribute は以下の三つのどれかです:

    + +
      +
    1. HTTP リクエストヘッダフィールド (詳しい情報は RFC 2616 を + 参照してください)。例えば、Host, + User-Agent, Referer, + Accept-Language です。リクエストヘッダの集合を表すために + 正規表現を使うこともできます。
    2. + +
    3. 以下のリクエストの一部分のどれか: + +
        +
      • Remote_Host - + リクエストを行なっているクライアントのホスト名 (もしあれば)
      • + +
      • Remote_Addr - + リクエストを行なっているクライアントの IP アドレス
      • + +
      • Server_Addr - + リクエストを受け取ったサーバの IP アドレス + (2.0.43 以降のみ)
      • + +
      • Request_Method - + 使用されているメソッド名 (GET, POST + など)
      • + +
      • Request_Protocol - + リクエストが行なわれたプロトコルの名前とバージョン + (例えば、"HTTP/0.9", "HTTP/1.1" など。)
      • + +
      • Request_URI - + URL のスキームとホストの後の部分
      • +
      +
    4. + +
    5. リクエストと関連付けられる環境変数のリスト。これにより +SetEnvIf ディレクティブが以前のマッチの結果を +使うことができるようになります。この方法のテストでは前の部分にある +SetEnvIf[NoCase] の結果のみを使用可能です。「前」とは、 +より広い範囲に対して定義されている (サーバ全体のように) か、現在のディレクティブの +範囲でより前の部分で定義されているか、ということです。 +環境変数である可能性は、リクエストの特性に対するマッチが存在せず、 +attribute に正規表現が使われなかったときにのみ考慮されます。
    6. +
    + +

    二つ目の引数 (regex) は 正規表現です。 +regex が attribute にマッチする場合は、 +残りの引数が評価されます。

    + +

    残りの引数は設定する変数の名前で、設定される値を指定することもできます。 +これは、

    + +
      +
    1. varname
    2. + +
    3. !varname
    4. + +
    5. varname=value
    6. +
    + +

    のどれかの形式になります。

    + +

    最初の形式では、値は "1" に設定されます。 + 二つ目はもし値が定義されていればそれを取り除きます。 + 三つ目は変数を value の与えられた値に設定します。 + 2.0.51 以降では、value 内に $1..$9 + が存在すればそれを認識し、regex の対応する丸括弧で囲まれた部分で + 置換します。

    + +

    例:

    + + SetEnvIf Request_URI "\.gif$" object_is_image=gif
    + SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
    + SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
    + :
    + SetEnvIf Referer www\.mydomain\.com intra_site_referral
    + :
    + SetEnvIf object_is_image xbm XBIT_PROCESSING=1
    + :
    + SetEnvIf ^TS* ^[a-z].* HAVE_TS
    +

    + +

    初めの三つはリクエストが画像であるときに環境変数 + object_is_image を設定します。四つ目は + 参照元のページがウェブサイト www.mydomain.com にあるときに + intra_site_referral を設定します。

    + +

    最後の例は、リクエストに "TS" で始まり、値が集合 [a-z] のどれかで + 始まるヘッダがあるときに HAVE_TS を設定します。

    + +

    参照

    + +
    +
    top
    +

    SetEnvIfNoCase ディレクティブ

    + + + + + + + +
    説明:リクエストの属性に基づいて大文字小文字を区別せずに環境変数を設定する
    構文:SetEnvIfNoCase attribute regex + [!]env-variable[=value] + [[!]env-variable[=value]] ...
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:FileInfo
    ステータス:Base
    モジュール:mod_setenvif
    + +

    SetEnvIfNoCase は意味的には + SetEnvIf ディレクティブと + 同じです。違いは、正規表現のマッチングが大文字小文字を区別しないで + 行なわれることです。例えば:

    + +

    + SetEnvIfNoCase Host Apache\.Org site=apache +

    + +

    これは HTTP リクエストヘッダにフィールド Host: が + あり、その値が Apache.Org や apache.org、 + その他の大文字小文字の組み合わせであったときに site + 環境変数を "apache" に設定します。

    + + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_setenvif.html.ko.euc-kr b/docs/manual/mod/mod_setenvif.html.ko.euc-kr index 7844be95a34..80cd92cbd94 100644 --- a/docs/manual/mod/mod_setenvif.html.ko.euc-kr +++ b/docs/manual/mod/mod_setenvif.html.ko.euc-kr @@ -1,30 +1,40 @@ - -mod_setenvif - Apache HTTP Server +mod_setenvif - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_setenvif

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_setenvif

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -55,7 +65,7 @@

    Âü°í

    +
    top

    BrowserMatch Áö½þî

    @@ -95,8 +105,6 @@
    -
    ¼³¸í:¿äûÀÇ ¼º°ݿ¡ µû¶ó ȯ°溯¼ö ¼³Á¤À» º¯°æÇѴÙ
    »óÅÂ:Base
    ¸ðµâ¸í:setenvif_module
    Override ¿ɼÇ:FileInfo
    »óÅÂ:Base
    ¸ðµâ:mod_setenvif
    Áö¿ø:¾ÆÆÄġ 1.2 À̻ó (¾ÆÆÄġ 1.2¿¡¼­ ÀÌ Áö½þî´Â ÇöÀç - ¾ø¾îÁø mod_browser ¸ðµ⿡ À־ú´Ù)

    BrowserMatchNoCase Áö½þî´Â BrowserMatch Áö½þî¿Í @@ -232,7 +240,6 @@ Override ¿ɼÇ:FileInfo »óÅÂ:Base ¸ðµâ:mod_setenvif -Áö¿ø:¾ÆÆÄġ 1.3 ÀÌÈÄ

    SetEnvIfNoCase´Â Àǹ̻ó SetEnvIf Áö½þî¿Í °°Áö¸¸, @@ -250,8 +257,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_setenvif.html.tr.utf8 b/docs/manual/mod/mod_setenvif.html.tr.utf8 new file mode 100644 index 00000000000..ece786ee054 --- /dev/null +++ b/docs/manual/mod/mod_setenvif.html.tr.utf8 @@ -0,0 +1,303 @@ + + + + + +mod_setenvif - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_setenvif

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + + + +
    Açıklama:Ortam değişkenlerinin isteğin özelliklerine uygun olarak atanmasını sağlar
    Durum:Temel
    Modül Betimleyici:setenvif_module
    Kaynak Dosyası:mod_setenvif.c
    +

    Özet

    + + +

    mod_setenvif modülü, dahili ortam değişkenlerinin, + isteğin farklı bileşenlerinin belirttiğiniz düzenli ifade ile eşleşmesine + bağlı olarak atanmasını mümkün kılar. Bu ortam değişkenleri, CGI + betiklerinde ve SSI sayfalarında da kullanılabilir hale gelmenin yanı sıra + sunucunun çeşitli kısımlarında yapılacak eylemlere karar verirken + kullanılabilirler.

    + +

    Yönergeler yapılandırma dosyasında yer aldıkları sıraya göre ele + alınırlar. Böylece daha karmaşık dizilimler kullanılabilir, bu örnekteki + tarayıcı Mozilla ise netscape ortam değişkeni atanmakta, + MSIE ise atanmamaktadır.

    + +

    + BrowserMatch ^Mozilla netscape
    + BrowserMatch MSIE !netscape
    +

    +
    + + +
    top
    +

    BrowserMatch Yönergesi

    + + + + + + + +
    Açıklama:Ortam değişkenlerini HTTP kullanıcı arayüzüne göre belirler. +
    Sözdizimi:BrowserMatch düzifd [!]ort-değişkeni[=değer] +[[!]ort-değişkeni[=değer]] ...
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:FileInfo
    Durum:Temel
    Modül:mod_setenvif
    +

    BrowserMatch yönergesi SetEnvIf yönergesinin özel bir halidir + ve ortam değişkenlerine User-Agent HTTP istek başlığının + değerine göre atama yapar. Aşağıdaki iki satır aynı etkiye sahiptir:

    + +

    + BrowserMatchNoCase Robot is_a_robot
    + SetEnvIfNoCase User-Agent Robot is_a_robot
    +

    + +

    Başka örnekler:

    + +

    + BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
    + BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
    + BrowserMatch MSIE !javascript
    +

    + +
    +
    top
    +

    BrowserMatchNoCase Yönergesi

    + + + + + + + +
    Açıklama:Ortam değişkenlerini HTTP kullanıcı arayüzünün harf büyüklüğüne +duyarsız eşleşmelerine bağlı olarak belirler.
    Sözdizimi:BrowserMatchNoCase düzifd [!]ort-değişkeni[=değer] +[[!]ort-değişkeni[=değer]] ...
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:FileInfo
    Durum:Temel
    Modül:mod_setenvif
    + +

    BrowserMatchNoCase yönergesi sözdizimsel ve + anlamsal olarak BrowserMatch yönergesinin eşdeğeridir. + Ancak, eşleşmelerde harf büyüklüğüne duyarsızdır. Örnek:

    + +

    + BrowserMatchNoCase mac platform=macintosh
    + BrowserMatchNoCase win platform=windows
    +

    + +

    BrowserMatch ve + BrowserMatchNoCase yönergeleri SetEnvIf ve SetEnvIfNoCase yönergelerinin özel + halleridir. Bu bakımda aşağıdaki iki satır aynı etkiye sahiptir:

    + +

    + BrowserMatchNoCase Robot is_a_robot
    + SetEnvIfNoCase User-Agent Robot is_a_robot
    +

    + +
    +
    top
    +

    SetEnvIf Yönergesi

    + + + + + + + +
    Açıklama:Ortam değişkenlerini isteğin özniteliklerine göre atar. +
    Sözdizimi:SetEnvIf öznitelik + düzifd [!]ort-değişkeni[=değer] + [[!]ort-değişkeni[=değer]] ...
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:FileInfo
    Durum:Temel
    Modül:mod_setenvif
    +

    SetEnvIf yönergesi ortam değişkenlerini isteğin + özniteliklerine göre tanımlar. İlk bileşen olarak belirtilen + öznitelik şu üç şeyden biri olabilir:

    + +
      +
    1. Bir HTTP istek başlığı alanı (ayrıntılı bilgi için bak: RFC2616); + örneğin: Host, User-Agent, + Referer ve Accept-Language. Bir düzenli + ifade kullanılarak birden fazla istek başlığı belirtilebilir.
    2. + +
    3. İsteğin aşağıdaki bileşenlerinden biri: +
        +
      • Remote_Host - isteği yapan istemcinin konak ismi + (varsa)
      • + +
      • Remote_Addr -isteği yapan istemcinin IP adresi
      • + +
      • Server_Addr - isteği alan sunucunun IP adresi + (sadece 2.0.43 sonrası sürümler için)
      • + +
      • Request_Method - kullanılan yöntemin ismi + (GET, POST, vs.)
      • + +
      • Request_Protocol - İsteğin yapıldığı protokolün + ismi ve numarası ("HTTP/0.9", "HTTP/1.1" gibi)
      • + +
      • Request_URI - HTTP istek satırında belirtilen + özkaynak; genellikle sorgu dizgesi olmaksızın şema ve konak ismini + içeren bir URL parçasıdır. Sorgu dizgeleriyle eşleşmeler hakkında + ayrıntılı bilgi edinmek için mod_rewrite + modülünün RewriteCond + yönergesinin açıklamasına bakınız.
      • +
      +
    4. + +
    5. İstek ile evvelce ilişkilendirilmiş bir ortam değişkeninin ismi. Bu + sayede önceki bir eşleşmenin sonucuna karşı yeni bir sınama yapma + imkanı ortaya çıkar. Böyle bir sınama için sadece evvelce + SetEnvIf[NoCase] yönergeleri ile yapılmış atamalardaki + ortam değişkenleri kullanılabilir. ‘Evvelce’ derken, sunucu genelinde + veya bölüm içinde bu yönergeden önce yer alan + SetEnvIf[NoCase] yönerge satırları kastedilmektedir. + Ortam değişkenlerinin dikkate alınabilmesi için istek öznitelikleri + arasında hiçbir eşleşme olmaması ve öznitelik + olarak bir düzenli ifade belirtilmemiş olması gerekir.
    6. +
    + +

    İkinci bileşen (düzifd) bir düzenli ifadedir. düzifd + ile öznitelik eşleştiği takdirde yönergenin kalan + bileşenleri değerlendirmeye alınır.

    + +

    Kalan bileşenler atanacak ortam değişkenlerinin isimleri ve isteğe + bağlı olarak bunlara atanacak değerlerden oluşur. Bunlar şöyle + belirtilebilir:

    + +
      +
    1. değişken-adı veya
    2. + +
    3. !değişken-adı ya da
    4. + +
    5. değişken-adı=değer
    6. +
    + +

    İlk biçemde değişkene "1" değeri atanır. İkincisinde atanmış bir + değişken atanmamış yapılır. Üçüncüsünde ise değişkene belirtilen + değer bire bir atanır. 2.0.52 sürümünden itibaren + parantezli düzenli ifadelerin sonuçları ile değiştirilmek üzere + value içinde $1..$9 + gösterimleri tanınmaktadır.

    + +

    Örnek:

    + SetEnvIf Request_URI "\.gif$" nesne_bir_resim=gif
    + SetEnvIf Request_URI "\.jpg$" nesne_bir_resim=jpg
    + SetEnvIf Request_URI "\.xbm$" nesne_bir_resim=xbm
    + :
    + SetEnvIf Referer belgeler\.alanismi\.mesela\.dom dahili_site_istendi
    + :
    + SetEnvIf object_is_image xbm XBIT_PROCESSING=1
    + :
    + SetEnvIf ^TS* ^[a-z].* TS_VAR
    +

    + +

    İlk üçünde istek bir resim dosyası için yapılmışsa + nesne_bir_resim ortam değişkeni atanmakta, dördüncüsünde + istenen sayfa belgeler.alanismi.mesela.dom adlı sitede + bulunuyorsa dahili_site_istendi ortam değişkeni + atanmaktadır.

    + +

    Son örnekte ise istekte "TS" ile başlayıp [a-z] arasındaki + karakterlerle devam eden bir başlık alanı varsa TS_VAR + ortam değişkeni atanmaktadır.

    + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    SetEnvIfNoCase Yönergesi

    + + + + + + + +
    Açıklama:Ortam değişkenlerini isteğin özniteliklerinde harf büyüklüğüne +bağlı olmaksızın yapılmış tanımlara göre atar.
    Sözdizimi:SetEnvIfNoCase öznitelik + düzifd [!]ort-değişkeni[=değer] + [[!]ort-değişkeni[=değer]] ...
    Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
    Geçersizleştirme:FileInfo
    Durum:Temel
    Modül:mod_setenvif
    +

    SetEnvIfNoCase yönergesi sözdizimsel ve anlamsal + olarak SetEnvIf + yönergesinin eşdeğeridir. Ancak, eşleşmelerde harf büyüklüğüne + duyarsızdır. Örnek:

    + +

    + SetEnvIfNoCase Host Apache\.Org site=apache +

    + +

    Burada, Host: HTTP istek başlığında + Apache.Org, apache.org veya harf büyüklüğünce + farklı benzerleri belirtilmişse site ortam değişkenine + "apache" değeri atanmaktadır.

    + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_setenvif.xml b/docs/manual/mod/mod_setenvif.xml index 5949d1db5a7..145a9431f80 100644 --- a/docs/manual/mod/mod_setenvif.xml +++ b/docs/manual/mod/mod_setenvif.xml @@ -4,12 +4,12 @@ + + - + mod_setenvif /mod/ .. @@ -9,5 +10,6 @@ en ja ko + tr diff --git a/docs/manual/mod/mod_setenvif.xml.tr b/docs/manual/mod/mod_setenvif.xml.tr new file mode 100644 index 00000000000..6b46f98aace --- /dev/null +++ b/docs/manual/mod/mod_setenvif.xml.tr @@ -0,0 +1,266 @@ + + + + + + + + + + +mod_setenvif +Ortam değişkenlerinin isteğin özelliklerine uygun olarak atanmasını sağlar +Base +mod_setenvif.c +setenvif_module + + + + +

    mod_setenvif modülü, dahili ortam değişkenlerinin, + isteğin farklı bileşenlerinin belirttiğiniz düzenli ifade ile eşleşmesine + bağlı olarak atanmasını mümkün kılar. Bu ortam değişkenleri, CGI + betiklerinde ve SSI sayfalarında da kullanılabilir hale gelmenin yanı sıra + sunucunun çeşitli kısımlarında yapılacak eylemlere karar verirken + kullanılabilirler.

    + +

    Yönergeler yapılandırma dosyasında yer aldıkları sıraya göre ele + alınırlar. Böylece daha karmaşık dizilimler kullanılabilir, bu örnekteki + tarayıcı Mozilla ise netscape ortam değişkeni atanmakta, + MSIE ise atanmamaktadır.

    + + + BrowserMatch ^Mozilla netscape
    + BrowserMatch MSIE !netscape
    +
    +
    + +Apache’de Ortam Değişkenleri + + +BrowserMatch +Ortam değişkenlerini HTTP kullanıcı arayüzüne göre belirler. + +BrowserMatch düzifd [!]ort-değişkeni[=değer] +[[!]ort-değişkeni[=değer]] ... +server config +virtual hostdirectory +.htaccess +FileInfo + + +

    BrowserMatch yönergesi SetEnvIf yönergesinin özel bir halidir + ve ortam değişkenlerine User-Agent HTTP istek başlığının + değerine göre atama yapar. Aşağıdaki iki satır aynı etkiye sahiptir:

    + + + BrowserMatchNoCase Robot is_a_robot
    + SetEnvIfNoCase User-Agent Robot is_a_robot
    +
    + +

    Başka örnekler:

    + + + BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
    + BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
    + BrowserMatch MSIE !javascript
    +
    +
    +
    + + +BrowserMatchNoCase +Ortam değişkenlerini HTTP kullanıcı arayüzünün harf büyüklüğüne +duyarsız eşleşmelerine bağlı olarak belirler. +BrowserMatchNoCase düzifd [!]ort-değişkeni[=değer] +[[!]ort-değişkeni[=değer]] ... +server config +virtual hostdirectory +.htaccess +FileInfo + + + +

    BrowserMatchNoCase yönergesi sözdizimsel ve + anlamsal olarak BrowserMatch yönergesinin eşdeğeridir. + Ancak, eşleşmelerde harf büyüklüğüne duyarsızdır. Örnek:

    + + + BrowserMatchNoCase mac platform=macintosh
    + BrowserMatchNoCase win platform=windows
    +
    + +

    BrowserMatch ve + BrowserMatchNoCase yönergeleri SetEnvIf ve SetEnvIfNoCase yönergelerinin özel + halleridir. Bu bakımda aşağıdaki iki satır aynı etkiye sahiptir:

    + + + BrowserMatchNoCase Robot is_a_robot
    + SetEnvIfNoCase User-Agent Robot is_a_robot
    +
    +
    +
    + + +SetEnvIf +Ortam değişkenlerini isteğin özniteliklerine göre atar. + +SetEnvIf öznitelik + düzifd [!]ort-değişkeni[=değer] + [[!]ort-değişkeni[=değer]] ... +server config +virtual hostdirectory +.htaccess +FileInfo + + +

    SetEnvIf yönergesi ortam değişkenlerini isteğin + özniteliklerine göre tanımlar. İlk bileşen olarak belirtilen + öznitelik şu üç şeyden biri olabilir:

    + +
      +
    1. Bir HTTP istek başlığı alanı (ayrıntılı bilgi için bak: RFC2616); + örneğin: Host, User-Agent, + Referer ve Accept-Language. Bir düzenli + ifade kullanılarak birden fazla istek başlığı belirtilebilir.
    2. + +
    3. İsteğin aşağıdaki bileşenlerinden biri: +
        +
      • Remote_Host - isteği yapan istemcinin konak ismi + (varsa)
      • + +
      • Remote_Addr -isteği yapan istemcinin IP adresi
      • + +
      • Server_Addr - isteği alan sunucunun IP adresi + (sadece 2.0.43 sonrası sürümler için)
      • + +
      • Request_Method - kullanılan yöntemin ismi + (GET, POST, vs.)
      • + +
      • Request_Protocol - İsteğin yapıldığı protokolün + ismi ve numarası ("HTTP/0.9", "HTTP/1.1" gibi)
      • + +
      • Request_URI - HTTP istek satırında belirtilen + özkaynak; genellikle sorgu dizgesi olmaksızın şema ve konak ismini + içeren bir URL parçasıdır. Sorgu dizgeleriyle eşleşmeler hakkında + ayrıntılı bilgi edinmek için mod_rewrite + modülünün RewriteCond + yönergesinin açıklamasına bakınız.
      • +
      +
    4. + +
    5. İstek ile evvelce ilişkilendirilmiş bir ortam değişkeninin ismi. Bu + sayede önceki bir eşleşmenin sonucuna karşı yeni bir sınama yapma + imkanı ortaya çıkar. Böyle bir sınama için sadece evvelce + SetEnvIf[NoCase] yönergeleri ile yapılmış atamalardaki + ortam değişkenleri kullanılabilir. ‘Evvelce’ derken, sunucu genelinde + veya bölüm içinde bu yönergeden önce yer alan + SetEnvIf[NoCase] yönerge satırları kastedilmektedir. + Ortam değişkenlerinin dikkate alınabilmesi için istek öznitelikleri + arasında hiçbir eşleşme olmaması ve öznitelik + olarak bir düzenli ifade belirtilmemiş olması gerekir.
    6. +
    + +

    İkinci bileşen (düzifd) bir düzenli ifadedir. düzifd + ile öznitelik eşleştiği takdirde yönergenin kalan + bileşenleri değerlendirmeye alınır.

    + +

    Kalan bileşenler atanacak ortam değişkenlerinin isimleri ve isteğe + bağlı olarak bunlara atanacak değerlerden oluşur. Bunlar şöyle + belirtilebilir:

    + +
      +
    1. değişken-adı veya
    2. + +
    3. !değişken-adı ya da
    4. + +
    5. değişken-adı=değer
    6. +
    + +

    İlk biçemde değişkene "1" değeri atanır. İkincisinde atanmış bir + değişken atanmamış yapılır. Üçüncüsünde ise değişkene belirtilen + değer bire bir atanır. 2.0.52 sürümünden itibaren + parantezli düzenli ifadelerin sonuçları ile değiştirilmek üzere + value içinde $1..$9 + gösterimleri tanınmaktadır.

    + + Örnek: + SetEnvIf Request_URI "\.gif$" nesne_bir_resim=gif
    + SetEnvIf Request_URI "\.jpg$" nesne_bir_resim=jpg
    + SetEnvIf Request_URI "\.xbm$" nesne_bir_resim=xbm
    + :
    + SetEnvIf Referer belgeler\.alanismi\.mesela\.dom dahili_site_istendi
    + :
    + SetEnvIf object_is_image xbm XBIT_PROCESSING=1
    + :
    + SetEnvIf ^TS* ^[a-z].* TS_VAR
    +
    + +

    İlk üçünde istek bir resim dosyası için yapılmışsa + nesne_bir_resim ortam değişkeni atanmakta, dördüncüsünde + istenen sayfa belgeler.alanismi.mesela.dom adlı sitede + bulunuyorsa dahili_site_istendi ortam değişkeni + atanmaktadır.

    + +

    Son örnekte ise istekte "TS" ile başlayıp [a-z] arasındaki + karakterlerle devam eden bir başlık alanı varsa TS_VAR + ortam değişkeni atanmaktadır.

    +
    + +Apache’de Ortam Değişkenleri belgesinde +daha fazla örnek bulunabilir. +
    + + +SetEnvIfNoCase +Ortam değişkenlerini isteğin özniteliklerinde harf büyüklüğüne +bağlı olmaksızın yapılmış tanımlara göre atar. +SetEnvIfNoCase öznitelik + düzifd [!]ort-değişkeni[=değer] + [[!]ort-değişkeni[=değer]] ... +server config +virtual hostdirectory +.htaccess +FileInfo + + +

    SetEnvIfNoCase yönergesi sözdizimsel ve anlamsal + olarak SetEnvIf + yönergesinin eşdeğeridir. Ancak, eşleşmelerde harf büyüklüğüne + duyarsızdır. Örnek:

    + + + SetEnvIfNoCase Host Apache\.Org site=apache + + +

    Burada, Host: HTTP istek başlığında + Apache.Org, apache.org veya harf büyüklüğünce + farklı benzerleri belirtilmişse site ortam değişkenine + "apache" değeri atanmaktadır.

    +
    +
    +
    diff --git a/docs/manual/mod/mod_so.html b/docs/manual/mod/mod_so.html index 1053634fd3f..451b67ee9b1 100644 --- a/docs/manual/mod/mod_so.html +++ b/docs/manual/mod/mod_so.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_so.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_so.html.ja.euc-jp +URI: mod_so.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_so.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_so.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_so.html.en b/docs/manual/mod/mod_so.html.en index de971a85368..6b822148252 100644 --- a/docs/manual/mod/mod_so.html.en +++ b/docs/manual/mod/mod_so.html.en @@ -1,35 +1,43 @@ - -mod_so - Apache HTTP Server +mod_so - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_so

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_so

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    - - + +
    Description:Loading of executable code and modules into the server at start-up or restart time
    Status:Extension
    Module Identifier:so_module
    Source File:mod_so.c
    Module Identifier:so_module
    Source File:mod_so.c
    Compatibility:This is a Base module (always included) on Windows

    Summary

    @@ -50,15 +58,15 @@ Windows load or compile into Apache 2.0.

    -
    top

    Creating Loadable Modules for Windows

    @@ -183,8 +191,30 @@ of active modules

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_so.html.ja.euc-jp b/docs/manual/mod/mod_so.html.ja.euc-jp deleted file mode 100644 index c89f3a1774f..00000000000 --- a/docs/manual/mod/mod_so.html.ja.euc-jp +++ /dev/null @@ -1,190 +0,0 @@ - - - -mod_so - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_so

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - - -
    ÀâÌÀ:µ¯ư»þ¤äºƵ¯ư»þ¤˼¹ԥ³¡¼¥ɤȥ⥸¥塼¥ë¤򥵡¼¥Ф˥í¡¼¥ɤ¹¤ë -
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:so_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_so.c
    ¸ߴ¹À­:¤³¤Υ⥸¥塼¥ë¤Ï Window ¤ǤÏ (¾ï¤˴ޤޤì¤Ƥ¤¤ë) Base -¥⥸¥塼¥ë¤Ǥ¹
    -

    ³µÍ×

    - - -

    ¤¤¤¯¤Ĥ«¤Υª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤Ǥϡ¢¥µ¡¼¥Фκƥ³¥ó¥ѥ¤¥ë¤򤹤ëÂå¤ï¤ê¤ˡ¢ - ¤³¤Υ⥸¥塼¥ë¤ò»ÈÍѤ·¤Æ - ưŪ¶¦ͭ¥ª¥֥¸¥§¥¯¥È - (DSO) µ¡¹½¤ˤè¤ꡢ¼¹Իþ¤Ë Apache ¤˥⥸¥塼¥ë¤òÆɤ߹þ¤ޤ»¤뤳¤Ȥ¬ - ¤Ǥ­¤ޤ¹¡£

    - -

    Unix ¾å¤Ǥϡ¢Æɤ߹þ¤ޤì¤륳¡¼¥ɤÏÄ̾ï¤϶¦ͭ¥ª¥֥¸¥§¥¯¥ȥե¡¥¤¥ë - (ÉáÄÌ .so ¤Ȥ¤¤¦³Èĥ»Ҥ¬Éդ¤¤Ƥ¤¤ޤ¹) ¤«¤é¤Ǥ¹¡£ - Windows ¾å¤ǤϤ³¤Υ⥸¥塼¥ë¤γÈĥ»ҤÏ .so ¤« .dll - ¤Ǥ¹¡£

    - -

    ·ٹð

    -

    Apache 1.3 ¤Υ⥸¥塼¥ë¤òľÀÜ Apache 2.0 ¤ǻȤ¦¤³¤ȤϤǤ­¤ޤ»¤ó - ¡½ ¥⥸¥塼¥ë¤Ï Apache 2.0 ÍѤËưŪ¤˥í¡¼¥ɤµ¤ì¤뤫¡¢ - ľÀÜÁȤ߹þ¤ޤì¤뤿¤á¤˽¤Àµ¤µ¤ì¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    -
    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    ¥ȥԥå¯

    -
      -
    • Windows ÍѤΥí¡¼¥ɲÄǽ¤ʥ⥸¥塼¥ë¤òºîÀ®¤¹¤ë
    • -
    -
    top
    -
    -

    Windows ÍѤΥí¡¼¥ɲÄǽ¤ʥ⥸¥塼¥ë¤òºîÀ®¤¹¤ë

    - -

    Ãí

    -

    Apache 1.3.15 ¤È 2.0 ¤ȤÇ Windows ¤Υ⥸¥塼¥ë̾¤ηÁ¼°¤ÏÊѹ¹¤µ¤ì¤ޤ·¤¿ - ¡½ ¥⥸¥塼¥ë¤Ï mod_foo.so ¤Ȥ¤¤¦̾Á°¤ˤʤê¤ޤ·¤¿¡£

    - -

    ¤ޤÀ mod_so ¤Ç ApacheModuleFoo.dll ¤Ȥ¤¤¦̾Á°¤Υ⥸¥塼¥ë¤â - ¥í¡¼¥ɤµ¤ì¤ޤ¹¤¬¡¢¿·¤·¤¤̾Á°¤ÎÉդ±Êý¤ò»Ȥ¦Êý¤¬¹¥¤ޤì¤ޤ¹¡£¥⥸¥塼¥ë¤ò - 2.0 ÍѤ˰ܿ¢¤·¤Ƥ¤¤ë¤ΤǤ¢¤ì¤С¢2.0 ¤ν¬´·¤˹礦¤褦¤Ë̾Á°¤ò - ½¤Àµ¤·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Apache ¤Υ⥸¥塼¥ë API ¤Ï UNIX ¤È Windows ´֤ǤÏÊѹ¹¤µ¤ì¤Ƥ¤¤ޤ»¤ó¡£ - ¿¤¯¤Υ⥸¥塼¥ë¤ÏÁ´¤¯Êѹ¹¤ʤ·¡¢¤⤷¤¯¤ϴÊñ¤ÊÊѹ¹¤ˤè¤ê Windows - ¤Ǽ¹ԤǤ­¤ë¤褦¤ˤʤê¤ޤ¹¡£¤¿¤À¤·¡¢¤½¤ì°ʳ°¤Î Windows ¤ˤÏ̵¤¤ Unix - ¥¢¡¼¥­¥ƥ¯¥Á¥㡼¤ε¡ǽ¤˰͸¤·¤¿¥⥸¥塼¥ë¤Ïưº¤ޤ»¤ó¡£

    - -

    ¥⥸¥塼¥뤬¼ºݤËưº¤ë¤Ȥ­¤ϡ¢ - Æó¤ĤÎÊýˡ¤ΤɤÁ¤餫¤ǥµ¡¼¥ФËÄɲ乤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤ޤº¡¢Unix - ¤ÈƱÍͤ˥µ¡¼¥Ф˥³¥ó¥ѥ¤¥뤷¤ÆÁȤ߹þ¤ळ¤Ȥ¬¤Ǥ­¤ޤ¹¡£Windows - ÍѤÎ Apache ¤Ï Unix ÍѤÎ Apache ¤ˤ¢¤ë Configure - ¥ץí¥°¥é¥ब¤¢¤ê¤ޤ»¤ó¤Τǡ¢¥⥸¥塼¥ë¤Υ½¡¼¥¹¥ե¡¥¤¥ë¤ò - ApacheCore ¥ץí¥¸¥§¥¯¥ȥե¡¥¤¥ë¤ËÄɲä·¡¢¥·¥ó¥ܥë¤ò - os\win32\modules.c ¥ե¡¥¤¥ë¤ËÄɲ乤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    Æó¤ÄÌܤϥ⥸¥塼¥ë¤ò DLL ¤Ȥ·¤ƥ³¥ó¥ѥ¤¥뤹¤ëÊýˡ¤Ǥ¹¡£ - DLL ¤϶¦ͭ¥饤¥֥é¥ê¤ǡ¢¼¹Իþ¤Ë - LoadModule - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤ꥵ¡¼¥ФËÆɤ߹þ¤ळ¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤³¤ì¤é¤Υ⥸¥塼¥ë - DLL ¤Ϥ½¤ΤޤÞÇÛÉۤ¹¤뤳¤Ȥ¬²Äǽ¤ǡ¢¥µ¡¼¥Фòºƥ³¥ó¥ѥ¤¥뤹¤뤳¤Ȥʤ¯¡¢Windows - ÍѤÎ Apache ¤Τ¹¤٤ƤΥ¤¥󥹥ȡ¼¥ë¤Ǽ¹Ԥ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¥⥸¥塼¥ë DLL ¤òºîÀ®¤¹¤뤿¤á¤ˤϡ¢ - ¥⥸¥塼¥ë¤κîÀ®¤˾®¤µ¤ÊÊѹ¹¤ò¹Ԥʤ¦ɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤Ĥޤꡢ¥⥸¥塼¥ë¤Υ쥳¡¼¥É (¤³¤ì¤ϸå¤ǺîÀ®¤µ¤ì¤ޤ¹¡£ - °ʲ¼¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤) ¤¬ DLL ¤«¤饨¥¯¥¹¥ݡ¼¥Ȥµ¤ì¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - ¤³¤ì¤ò¹Ԥʤ¦¤ˤϡ¢AP_MODULE_DECLARE_DATA (Apache - ¤ΥإåÀ¥ե¡¥¤¥ë¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ޤ¹) ¤ò¥⥸¥塼¥ë¤Υ⥸¥塼¥ë¥쥳¡¼¥É - ÄêµÁ¤ÎÉôʬ¤ËÄɲä·¤Ƥ¯¤À¤µ¤¤¡£¤¿¤Ȥ¨¤С¢¥⥸¥塼¥ë¤Ë

    -

    - module foo_module; -

    - -

    ¤¬¤¢¤ë¤Ȥ¹¤ë¤ȡ¢¤½¤ì¤򼡤Τâ¤ΤÇÃ֤­´¹¤¨¤Ƥ¯¤À¤µ¤¤¡£

    -

    - module AP_MODULE_DECLARE_DATA foo_module; -

    - -

    Unix ¾å¤Ǥ⤳¤Υ⥸¥塼¥ë¤ò - Êѹ¹̵¤·¤ǻȤ¤³¤±¤é¤ì¤ë¤褦¤ˡ¢¤³¤Υޥ¯¥í¤Ï Windows - ¾å¤ǤΤ߸úÎϤò»ý¤Á¤ޤ¹¡£.DEF - ¥ե¡¥¤¥ë¤ÎÊý¤òÎɤ¯ÃΤäƤ¤¤ë¤Ȥ¤¤¦¾ì¹ç¤ϡ¢ - Âå¤ï¤ê¤ˤ½¤ì¤ò»Ȥäƥ⥸¥塼¥ë¥쥳¡¼¥ɤò - ¥¨¥¯¥¹¥ݡ¼¥Ȥ¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    -

    ¤µ¤¢¡¢¤¢¤ʤ¿¤Υ⥸¥塼¥ë¤Î DLL ¤òºîÀ®¤·¤ޤ·¤礦¡£¤³¤ì¤ò¡¢ - libhttpd.lib ¶¦ͭ¥饤¥֥é¥꤬¥³¥ó¥ѥ¤¥뤵¤줿¤Ȥ­¤˺îÀ®¤µ¤줿 - ibhttpd.lib ¥¨¥¯¥¹¥ݡ¼¥ȥ饤¥֥é¥ê¤ȥê¥󥯤·¤Ƥ¯¤À¤µ¤¤¡£¤³¤λþ¤ˡ¢ - Apache ¤ΥإåÀ¥ե¡¥¤¥뤬Àµ¤·¤¤°ÌÃ֤ˤ¢¤ë¤褦¤ˡ¢ - ¥³¥ó¥ѥ¤¥é¤ÎÀßÄê¤òÊѤ¨¤ëɬÍפ¬¤¢¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - ¤³¤Υ饤¥֥é¥ê¤ϥµ¡¼¥Х롼¥ȤÎ modules ¥ǥ£¥쥯¥ȥê¤ˤ¢¤ê¤ޤ¹¡£ - ¥ӥë¥ɴĶ­¤¬Àµ¤·¤¯ÀßÄꤵ¤ì¤ë¤褦¤ˡ¢´û¸¤Υ⥸¥塼¥ëÍѤÎ .dsp ¤ò - ¼è¤äƤ¯¤ë¤Τ¬°ìÈÖÎɤ¤¤Ǥ·¤礦¡£¤⤷¤¯¤ϡ¢¤¢¤ʤ¿¤Î .dsp ¤È - ¥³¥ó¥ѥ¤¥é¤ȥê¥󥯤Υª¥ץ·¥ç¥ó¤òÈæ³Ӥ¹¤롢¤Ȥ¤¤¦¤â¤ΤǤâÎɤ¤¤Ǥ¹¡£

    - -

    ¤³¤ì¤Ç DLL ÈǤΥ⥸¥塼¥뤬ºîÀ®¤µ¤ì¤Ƥ¤¤ë¤Ϥº¤Ǥ¹¡£ - ¥µ¡¼¥Х롼¥ȤÎ modules - ¥ǥ£¥쥯¥ȥê¤˥⥸¥塼¥ë¤òÃ֤¤¤ơ¢ - LoadModule - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ䯯ɤ߹þ¤ó¤Ǥ¯¤À¤µ¤¤¡£

    -
    -
    top
    -

    LoadFile ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:»ØÄꤵ¤줿¥ª¥֥¸¥§¥¯¥ȥե¡¥¤¥ë¤ä¥饤¥֥é¥ê¤ò¥ê¥󥯤¹¤ë
    ¹½ʸ:LoadFile filename [filename] ...
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_so
    - -

    LoadFile ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥µ¡¼¥Ф¬µ¯ư¤µ¤줿¤Ȥ­¤äºƵ¯ư¤µ¤줿¤Ȥ­¤ˡ¢ - »ØÄꤵ¤줿¥ª¥֥¸¥§¥¯¥ȥե¡¥¤¥ë¤ä¥饤¥֥é¥ê¤ò¥ê¥󥯤·¤ޤ¹¡£ - ¤³¤ì¤ϥ⥸¥塼¥뤬ưº¤뤿¤á¤ËɬÍפˤʤ뤫¤⤷¤ì¤ʤ¤ÄɲäÎ - ¥³¡¼¥ɤòÆɤ߹þ¤ि¤á¤˻ÈÍѤµ¤ì¤ޤ¹¡£Filename ¤ÏÀäÂХѥ¹¤«¡¢ServerRoot ¤«¤é¤ÎÁêÂХѥ¹¤Ǥ¹¡£

    - -

    Îã:

    - -

    LoadFile libexec/libxmlparse.so

    - - -
    -
    top
    -

    LoadModule ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥ª¥֥¸¥§¥¯¥ȥե¡¥¤¥ë¤ä¥饤¥֥é¥ê¤ò¥ê¥󥯤·¡¢»ÈÍѥ⥸¥塼¥ë¤Î -¥ꥹ¥ȤËÄɲ乤ë
    ¹½ʸ:LoadModule module filename
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_so
    - -

    LoadModule ¥ǥ£¥쥯¥ƥ£¥֤Ï filename - ¤Ȥ¤¤¦¥ª¥֥¸¥§¥¯¥ȥե¡¥¤¥뤪¤è¤ӥ饤¥֥é¥ê¤ò¥ê¥󥯤·¡¢module - ¤Ȥ¤¤¦̾Á°¤Υ⥸¥塼¥ë¤ι½¤¤򥢥¯¥ƥ£¥֤ʥ⥸¥塼¥ë¤Υꥹ¥ȤËÄɲä·¤ޤ¹¡£ - Module ¤ϥե¡¥¤¥ëÃæ¤Î module - ·¿¤γ°ÉôÊѿô¤Î̾Á°¤ǡ¢¥⥸¥塼¥ë¤Υɥ­¥å¥á¥ó¥ȤË - ¥⥸¥塼¥뼱Ê̻Ò¤Ȥ·¤ƽ񤫤ì¤Ƥ¤¤ë¤â¤ΤǤ¹¡£Îã :

    - -

    - LoadModule status_module modules/mod_status.so -

    - -

    ¤³¤ì¤Ï ServerRoot ¤Î modules ¥µ¥֥ǥ£¥쥯¥ȥ꤫¤é»ØÄꤵ¤줿̾Á°¤Î - ¥⥸¥塼¥ë¤ò¥í¡¼¥ɤ·¤ޤ¹¡£

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_so.html.ja.utf8 b/docs/manual/mod/mod_so.html.ja.utf8 new file mode 100644 index 00000000000..44cd11d2002 --- /dev/null +++ b/docs/manual/mod/mod_so.html.ja.utf8 @@ -0,0 +1,220 @@ + + + + + +mod_so - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_so

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    + + + + +
    説明:起動時や再起動時に実行コードとモジュールをサーバにロードする +
    ステータス:Extension
    モジュール識別子:so_module
    ソースファイル:mod_so.c
    互換性:このモジュールは Window では (常に含まれている) Base +モジュールです
    +

    概要

    + + +

    いくつかのオペレーティングシステムでは、サーバの再コンパイルをする代わりに、 + このモジュールを使用して + 動的共有オブジェクト + (DSO) 機構により、実行時に Apache にモジュールを読み込ませることが + できます。

    + +

    Unix 上では、読み込まれるコードは通常は共有オブジェクトファイル + (普通 .so という拡張子が付いています) からです。 + Windows 上ではこのモジュールの拡張子は .so か .dll + です。

    + +

    警告

    +

    Apache 1.3 のモジュールを直接 Apache 2.0 で使うことはできません + ― モジュールは Apache 2.0 用に動的にロードされるか、 + 直接組み込まれるために修正されなければなりません。

    +
    +
    +

    トピック

    +
      +
    • Windows 用のロード可能なモジュールを作成する
    • +

    ディレクティブ

    + +
    +
    top
    +
    +

    Windows 用のロード可能なモジュールを作成する

    + +

    注

    +

    Apache 1.3.15 と 2.0 とで Windows のモジュール名の形式は変更されました + ― モジュールは mod_foo.so という名前になりました。

    + +

    まだ mod_so で ApacheModuleFoo.dll という名前のモジュールも + ロードされますが、新しい名前の付け方を使う方が好まれます。モジュールを + 2.0 用に移植しているのであれば、2.0 の習慣に合うように名前を + 修正してください。

    + +

    Apache のモジュール API は UNIX と Windows 間では変更されていません。 + 多くのモジュールは全く変更なし、もしくは簡単な変更により Windows + で実行できるようになります。ただし、それ以外の Windows には無い Unix + アーキテクチャーの機能に依存したモジュールは動作しません。

    + +

    モジュールが実際に動作するときは、 + 二つの方法のどちらかでサーバに追加することができます。まず、Unix + と同様にサーバにコンパイルして組み込むことができます。Windows + 用の Apache は Unix 用の Apache にある Configure + プログラムがありませんので、モジュールのソースファイルを + ApacheCore プロジェクトファイルに追加し、シンボルを + os\win32\modules.c ファイルに追加する必要があります。

    + +

    二つ目はモジュールを DLL としてコンパイルする方法です。 + DLL は共有ライブラリで、実行時に + LoadModule + ディレクティブによりサーバに読み込むことができます。これらのモジュール + DLL はそのまま配布することが可能で、サーバを再コンパイルすることなく、Windows + 用の Apache のすべてのインストールで実行することができます。

    + +

    モジュール DLL を作成するためには、 + モジュールの作成に小さな変更を行なう必要があります。 + つまり、モジュールのレコード (これは後で作成されます。 + 以下を参照してください) が DLL からエクスポートされなければなりません。 + これを行なうには、AP_MODULE_DECLARE_DATA (Apache + のヘッダファイルで定義されています) をモジュールのモジュールレコード + 定義の部分に追加してください。たとえば、モジュールに

    +

    + module foo_module; +

    + +

    があるとすると、それを次のもので置き換えてください。

    +

    + module AP_MODULE_DECLARE_DATA foo_module; +

    + +

    Unix 上でもこのモジュールを + 変更無しで使い続けられるように、このマクロは Windows + 上でのみ効力を持ちます。.DEF + ファイルの方を良く知っているという場合は、 + 代わりにそれを使ってモジュールレコードを + エクスポートすることもできます。

    +

    さあ、あなたのモジュールの DLL を作成しましょう。これを、 + libhttpd.lib 共有ライブラリがコンパイルされたときに作成された + ibhttpd.lib エクスポートライブラリとリンクしてください。この時に、 + Apache のヘッダファイルが正しい位置にあるように、 + コンパイラの設定を変える必要があるかもしれません。 + このライブラリはサーバルートの modules ディレクトリにあります。 + ビルド環境が正しく設定されるように、既存のモジュール用の .dsp を + 取ってくるのが一番良いでしょう。もしくは、あなたの .dsp と + コンパイラとリンクのオプションを比較する、というものでも良いです。

    + +

    これで DLL 版のモジュールが作成されているはずです。 + サーバルートの modules + ディレクトリにモジュールを置いて、 + LoadModule + ディレクティブを使って読み込んでください。

    +
    +
    top
    +

    LoadFile ディレクティブ

    + + + + + + +
    説明:指定されたオブジェクトファイルやライブラリをリンクする
    構文:LoadFile filename [filename] ...
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_so
    + +

    LoadFile ディレクティブは、サーバが起動されたときや再起動されたときに、 + 指定されたオブジェクトファイルやライブラリをリンクします。 + これはモジュールが動作するために必要になるかもしれない追加の + コードを読み込むために使用されます。Filename は絶対パスか、ServerRoot からの相対パスです。

    + +

    例:

    + +

    LoadFile libexec/libxmlparse.so

    + + +
    +
    top
    +

    LoadModule ディレクティブ

    + + + + + + +
    説明:オブジェクトファイルやライブラリをリンクし、使用モジュールの +リストに追加する
    構文:LoadModule module filename
    コンテキスト:サーバ設定ファイル
    ステータス:Extension
    モジュール:mod_so
    + +

    LoadModule ディレクティブは filename + というオブジェクトファイルおよびライブラリをリンクし、module + という名前のモジュールの構造をアクティブなモジュールのリストに追加します。 + Module はファイル中の module + 型の外部変数の名前で、モジュールのドキュメントに + モジュール識別子として書かれているものです。例 :

    + +

    + LoadModule status_module modules/mod_status.so +

    + +

    これは ServerRoot の modules サブディレクトリから指定された名前の + モジュールをロードします。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_so.html.ko.euc-kr b/docs/manual/mod/mod_so.html.ko.euc-kr index 65ee9c679b0..0be99482c72 100644 --- a/docs/manual/mod/mod_so.html.ko.euc-kr +++ b/docs/manual/mod/mod_so.html.ko.euc-kr @@ -1,29 +1,37 @@ - -mod_so - Apache HTTP Server +mod_so - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_so

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_so

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    @@ -48,15 +56,15 @@ ¸ðµâÀ» ¼öÁ¤Çؾß ÇѴÙ.

    -
    top

    À©µµ¿ìÁ¼­ ÀоîµéÀÏ ¸ðµâ ¸¸µé±â

    @@ -167,8 +175,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_so.html.tr.utf8 b/docs/manual/mod/mod_so.html.tr.utf8 new file mode 100644 index 00000000000..cdc91f27e93 --- /dev/null +++ b/docs/manual/mod/mod_so.html.tr.utf8 @@ -0,0 +1,224 @@ + + + + + +mod_so - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_so

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    +
    ¼³¸í:½ÃÀÛÇҶ§ ȤÀº Àç½ÃÀÛÇҶ§ ½ÇÇడ´ÉÇÑ Äڵå¿Í ¸ðµâÀ» ¼­¹ö·Î ÀоîµéÀδÙ
    + + + +
    Açıklama:Modüllerin ve çalıştırılabilir kodun sunucunun başlatılması veya +yeniden başlatılması sırasında yüklenmesini sağlar.
    Durum:Eklenti
    Modül Betimleyici:so_module
    Kaynak Dosyası:mod_so.c
    Uyumluluk:Windows için bu bir temel modüldür (sunucu bunu daima içerir).
    +

    Özet

    + + +

    Seçilen işletim sistemleri üzerinde bu modül Apache’nin yeniden + derlenmesini gerektirmeden modüllerin Devingen + Paylaşımlı Nesne (DSO) mekanizması üzerinden kullanılabilmesini + sağlar.

    + +

    Unix’te yüklenen kod genellikle paylaşımlı nesne dosyalarından + (.so uzantılı dosyalar), Windows’ta ise ya .so + ya da .dll uzantılı dosyalardan gelir.

    + +

    Uyarı

    +

    Apache 1.3 modülleri Apache 2.0’da doğrudan kullanılamazlar - modül ya + devingen olarak yüklenecek hale getirilmeli ya da Apache 2.0’ın içinde + derlenmelidir.

    +
    +
    + +
    top
    +
    +

    Yüklenebilir Modüllerin Windows için Oluşturulması

    + + +

    Bilginize

    +

    Windows için modül isimlendirme biçemi Apache 1.3.15 ve 2.0 + sürümlerinde değişmiştir; modüllere artık mod_filanca.so biçeminde isim + verilmektedir.

    + +

    mod_so modülü ApacheModuleFoo.dll biçeminde + isimlendirilmiş modülleri hala yüklemekteyse de yeni adlandırma uzlaşımı + tercih edilmelidir. Yüklenebilir modülleri 2.0’a dönüştürüyorsanız, + lütfen isimlerini de 2.0 uzlaşımına uygun hale getiriniz.

    + +

    Apache modül programlama arayüzü Unix ve Windows sürümleri arasında + değişiklik göstermez. Unix için kullanılan çoğu modül hiç değişiklik + yapmadan ya da çok küçük bir değişiklikle Windows’ta da çalışmaktadır. + Çalışmayanlar Unix platformunun sahip olduğu ancak Windows platformunun + sahip olmadığı nitelikleri kullanan modüllerdir.

    + +

    Bir modül Windows’ta çalıştığı zaman, sunucuya iki şekilde + yüklenebilir. Unix’te olduğu gibi, doğrudan sunucunun içinde + derlenebilir. Windows için hazırlanan Apache paketi, Unix için geçerli + olan Configure betiğini içermediğinden modülün kaynak + dosyası ApacheCore proje dosyasına, sembolleri de + os\win32\modules.c dosyasına eklenmelidir.

    + +

    İkinci yol ise modülü bir paylaşımlı kütüphane olarak çalışma anında + LoadModule yönergesi ile yüklemek + için bir DLL olarak derlemektir. Bu DLL modüller dağıtılabilir ve + sunucuyu yeniden derlemek gerekmeksizin her Windows için Apache + kurulumunda çalışabilir.

    + +

    Bir modül DLL’i oluşturmak için modülün kaynak dosyasında küçük bir + değişiklik yapmak gerekir: Modül kaydının daha sonra oluşturulacak olan + DLL’den ihraç edilebilmesi gerekir (aşağıya bakınız). Bunu yapmak için + modülün modül kaydı tanımına (Apache başlık dosyalarında tanımlanmış + olan) AP_MODULE_DECLARE_DATA eklenmelidir. Örneğin, + modülünüz

    + +

    + module foo_module; +

    + +

    diye bir satır içeriyorsa bunu,

    + +

    + module AP_MODULE_DECLARE_DATA foo_module; +

    + +

    olarak değiştirmelisiniz. Bunun yalnız Windows üzerinde etkili olduğunu + ve Unix için modül kodunda bir değişiklik gerekmediğini unutmayınız. + Ayrıca, .DEF dosyaları hakkında bilgi sahibi iseniz modül + kodunda değişiklik yapmak yerine modül kaydını bu yöntemle de ihraç + edebilirsiniz.

    + +

    Artık modülü içeren bir DLL oluşturmaya hazırsınız. Bunu, libhttpd.dll + paylaşımlı kütüphanesi derlenirken oluşturulan libhttpd.lib ihraç + kütüphanesi ile ilintilemeniz gerekecektir. Ayrıca, Apache başlık + dosyalarının doğru konumlandığından emin olmak için derleyici + seçeneklerinde değişiklik yapmanız gerekebilir. Bu kütüphaneyi + sunucunuzun kök dizini altındaki modules dizininde + bulabilirsiniz. En iyisi derleme ortamının doğru yapılandırıldığından + emin olmak için ya ağaçta mevcut modüllerden birinin .dsp + dosyasını gaspedersiniz ya da kendi .dsp dosyanızın + ilintileme seçenekleriyle derleyicininkileri karşılaştırırsınız.

    + +

    Artık modülünüzün DLL sürümünü oluşturmalısınız. DLL’i sunucunuzun kök + dizininin altında bulunan modules dizinine yerleştirdikten + sonra LoadModule yönergesi ile sunucunuza + yükleyebilirsiniz.

    + +
    +
    top
    +

    LoadFile Yönergesi

    + + + + + + +
    Açıklama:Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler. +
    Sözdizimi:LoadFile dosya-ismi [dosya-ismi] ...
    Bağlam:sunucu geneli
    Durum:Eklenti
    Modül:mod_so
    + +

    LoadFile yönergesi ismi belirtilen kütüphaneleri + veya nesne dosyalarını sunucu başlatılırken veya yeniden başlatılırken + sunucu ile ilintiler. Yönerge, bazı modüllerin çalışması sırasında + gereken ek kodların yüklenmesi için kullanılır. + dosya-ismi olarak mutlak bir dosya yolu + belirtilebileceği gibi ServerRoot’a + göreli bir dosya yolu da belirtilebilir.

    + +

    Örnek:

    + +

    LoadFile libexec/libxmlparse.so

    + + +
    +
    top
    +

    LoadModule Yönergesi

    + + + + + + +
    Açıklama:Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler +ve etkin modül listesine ekler.
    Sözdizimi:LoadModule modül dosya-ismi
    Bağlam:sunucu geneli
    Durum:Eklenti
    Modül:mod_so
    +

    LoadModule yönergesi + dosya-ismi ile belirtilen nesne dosyasını veya + kütüphaneyi sunucu ile ilintiler ve etkin modül listesine belirtilen + modül ismiyle ekler. modül, + modülün kaynak dosyasında module türündeki tek harici + değişkenin ismi olup modül belgelerinde Modül Betimleyici olarak + geçer. Örneğin,

    + +

    + LoadModule status_module modules/mod_status.so +

    + +

    satırı ile ismi belirtilen dosya ServerRoot dizini altındaki + modules alt dizininden yüklenir.

    + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_so.xml b/docs/manual/mod/mod_so.xml index 34e77d57fed..dbd9fa66934 100644 --- a/docs/manual/mod/mod_so.xml +++ b/docs/manual/mod/mod_so.xml @@ -4,12 +4,12 @@ + + - + mod_so /mod/ .. @@ -9,5 +10,6 @@ en ja ko + tr diff --git a/docs/manual/mod/mod_so.xml.tr b/docs/manual/mod/mod_so.xml.tr new file mode 100644 index 00000000000..07beaa9966d --- /dev/null +++ b/docs/manual/mod/mod_so.xml.tr @@ -0,0 +1,184 @@ + + + + + + + + + + +mod_so +Modüllerin ve çalıştırılabilir kodun sunucunun başlatılması veya +yeniden başlatılması sırasında yüklenmesini sağlar. +Extension +mod_so.c +so_module +Windows için bu bir temel modüldür (sunucu bunu daima içerir). + + + +

    Seçilen işletim sistemleri üzerinde bu modül Apache’nin yeniden + derlenmesini gerektirmeden modüllerin Devingen + Paylaşımlı Nesne (DSO) mekanizması üzerinden kullanılabilmesini + sağlar.

    + +

    Unix’te yüklenen kod genellikle paylaşımlı nesne dosyalarından + (.so uzantılı dosyalar), Windows’ta ise ya .so + ya da .dll uzantılı dosyalardan gelir.

    + + Uyarı +

    Apache 1.3 modülleri Apache 2.0’da doğrudan kullanılamazlar - modül ya + devingen olarak yüklenecek hale getirilmeli ya da Apache 2.0’ın içinde + derlenmelidir.

    +
    +
    + +
    + Yüklenebilir Modüllerin Windows için Oluşturulması + + Bilginize +

    Windows için modül isimlendirme biçemi Apache 1.3.15 ve 2.0 + sürümlerinde değişmiştir; modüllere artık mod_filanca.so biçeminde isim + verilmektedir.

    + +

    mod_so modülü ApacheModuleFoo.dll biçeminde + isimlendirilmiş modülleri hala yüklemekteyse de yeni adlandırma uzlaşımı + tercih edilmelidir. Yüklenebilir modülleri 2.0’a dönüştürüyorsanız, + lütfen isimlerini de 2.0 uzlaşımına uygun hale getiriniz.

    + +

    Apache modül programlama arayüzü Unix ve Windows sürümleri arasında + değişiklik göstermez. Unix için kullanılan çoğu modül hiç değişiklik + yapmadan ya da çok küçük bir değişiklikle Windows’ta da çalışmaktadır. + Çalışmayanlar Unix platformunun sahip olduğu ancak Windows platformunun + sahip olmadığı nitelikleri kullanan modüllerdir.

    + +

    Bir modül Windows’ta çalıştığı zaman, sunucuya iki şekilde + yüklenebilir. Unix’te olduğu gibi, doğrudan sunucunun içinde + derlenebilir. Windows için hazırlanan Apache paketi, Unix için geçerli + olan Configure betiğini içermediğinden modülün kaynak + dosyası ApacheCore proje dosyasına, sembolleri de + os\win32\modules.c dosyasına eklenmelidir.

    + +

    İkinci yol ise modülü bir paylaşımlı kütüphane olarak çalışma anında + LoadModule yönergesi ile yüklemek + için bir DLL olarak derlemektir. Bu DLL modüller dağıtılabilir ve + sunucuyu yeniden derlemek gerekmeksizin her Windows için Apache + kurulumunda çalışabilir.

    + +

    Bir modül DLL’i oluşturmak için modülün kaynak dosyasında küçük bir + değişiklik yapmak gerekir: Modül kaydının daha sonra oluşturulacak olan + DLL’den ihraç edilebilmesi gerekir (aşağıya bakınız). Bunu yapmak için + modülün modül kaydı tanımına (Apache başlık dosyalarında tanımlanmış + olan) AP_MODULE_DECLARE_DATA eklenmelidir. Örneğin, + modülünüz

    + + + module foo_module; + + +

    diye bir satır içeriyorsa bunu,

    + + + module AP_MODULE_DECLARE_DATA foo_module; + + +

    olarak değiştirmelisiniz. Bunun yalnız Windows üzerinde etkili olduğunu + ve Unix için modül kodunda bir değişiklik gerekmediğini unutmayınız. + Ayrıca, .DEF dosyaları hakkında bilgi sahibi iseniz modül + kodunda değişiklik yapmak yerine modül kaydını bu yöntemle de ihraç + edebilirsiniz.

    + +

    Artık modülü içeren bir DLL oluşturmaya hazırsınız. Bunu, libhttpd.dll + paylaşımlı kütüphanesi derlenirken oluşturulan libhttpd.lib ihraç + kütüphanesi ile ilintilemeniz gerekecektir. Ayrıca, Apache başlık + dosyalarının doğru konumlandığından emin olmak için derleyici + seçeneklerinde değişiklik yapmanız gerekebilir. Bu kütüphaneyi + sunucunuzun kök dizini altındaki modules dizininde + bulabilirsiniz. En iyisi derleme ortamının doğru yapılandırıldığından + emin olmak için ya ağaçta mevcut modüllerden birinin .dsp + dosyasını gaspedersiniz ya da kendi .dsp dosyanızın + ilintileme seçenekleriyle derleyicininkileri karşılaştırırsınız.

    + +

    Artık modülünüzün DLL sürümünü oluşturmalısınız. DLL’i sunucunuzun kök + dizininin altında bulunan modules dizinine yerleştirdikten + sonra LoadModule yönergesi ile sunucunuza + yükleyebilirsiniz.

    + +
    + + +LoadFile +Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler. + +LoadFile dosya-ismi [dosya-ismi] ... + +server config + + + + +

    LoadFile yönergesi ismi belirtilen kütüphaneleri + veya nesne dosyalarını sunucu başlatılırken veya yeniden başlatılırken + sunucu ile ilintiler. Yönerge, bazı modüllerin çalışması sırasında + gereken ek kodların yüklenmesi için kullanılır. + dosya-ismi olarak mutlak bir dosya yolu + belirtilebileceği gibi ServerRoot’a + göreli bir dosya yolu da belirtilebilir.

    + +

    Örnek:

    + + LoadFile libexec/libxmlparse.so + +
    +
    + + +LoadModule +Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler +ve etkin modül listesine ekler. +LoadModule modül dosya-ismi + +server config + + + +

    LoadModule yönergesi + dosya-ismi ile belirtilen nesne dosyasını veya + kütüphaneyi sunucu ile ilintiler ve etkin modül listesine belirtilen + modül ismiyle ekler. modül, + modülün kaynak dosyasında module türündeki tek harici + değişkenin ismi olup modül belgelerinde Modül Betimleyici olarak + geçer. Örneğin,

    + + + LoadModule status_module modules/mod_status.so + + +

    satırı ile ismi belirtilen dosya ServerRoot dizini altındaki + modules alt dizininden yüklenir.

    +
    + +
    +
    + diff --git a/docs/manual/mod/mod_speling.html b/docs/manual/mod/mod_speling.html index bcda93f53c9..7cc8d4ee000 100644 --- a/docs/manual/mod/mod_speling.html +++ b/docs/manual/mod/mod_speling.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_speling.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_speling.html.ja.euc-jp +URI: mod_speling.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_speling.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_speling.html.en b/docs/manual/mod/mod_speling.html.en index 7076bdec5e4..57502f7afce 100644 --- a/docs/manual/mod/mod_speling.html.en +++ b/docs/manual/mod/mod_speling.html.en @@ -1,25 +1,32 @@ - -mod_speling - Apache HTTP Server +mod_speling - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_speling

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_speling

    Available Languages:  en  |  ja  | @@ -29,8 +36,8 @@ users might have entered by ignoring capitalization and by allowing up to one misspelling Status:Extension -Module Identifier:speling_module -Source File:mod_speling.c +Module Identifier:speling_module +Source File:mod_speling.c

    Summary

    @@ -64,10 +71,27 @@ allowing up to one misspelling
    +
    + +
    top
    +

    CheckCaseOnly Directive

    + + + + + + + + +
    Description:Limits the action of the speling module to case corrections
    Syntax:CheckCaseOnly on|off
    Default:CheckCaseOnly Off
    Context:server config, virtual host, directory, .htaccess
    Override:Options
    Status:Extension
    Module:mod_speling
    +

    When set, this directive limits the action of the spelling correction to lower/upper case changes. + Other potential corrections are not performed.

    + +
    top

    CheckSpelling Directive

    @@ -122,7 +146,28 @@ of Apache 1.3, it is part of the Apache distribution. Prior to Apache

    Available Languages:  en  |  ja  |  ko 

    - +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_speling.html.ja.euc-jp b/docs/manual/mod/mod_speling.html.ja.euc-jp deleted file mode 100644 index 36edf05ec48..00000000000 --- a/docs/manual/mod/mod_speling.html.ja.euc-jp +++ /dev/null @@ -1,127 +0,0 @@ - - - -mod_speling - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_speling

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -
    - - -
    ÀâÌÀ:¥桼¥¶¤¬ÆþÎϤ·¤¿¤Ǥ¢¤í¤¦´ְã¤ä¿ URL ¤ò¡¢ -Âçʸ»ú¾®ʸ»ú¤ζèÊ̤ò̵»뤹¤뤳¤ȤȰì¤İʲ¼¤ÎÄ֤ê´ְ㤤¤òµöÍƤ¹¤뤳¤ȤÇ -½¤Àµ¤ò»î¤ߤë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:speling_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_speling.c
    -

    ³µÍ×

    - - -

    ¥ꥯ¥¨¥¹¥ȤÎÄ֤꤬´ְã¤äƤ¤¤¿¤ꡢ - Âçʸ»ú¾®ʸ»ú¤¬°ã¤äƤ¤¤¿¤ꤹ¤뤿¤á¤ˡ¢Apache ¤Υ³¥¢¥µ¡¼¥Ф¬ - ¥ɥ­¥å¥á¥ó¥ȤؤΥꥯ¥¨¥¹¥ȤؤαþÅú¤òÀµ¤·¤¯Ä󶡤Ǥ­¤ʤ¤¤³¤Ȥ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤Υ⥸¥塼¥ë¤ϡ¢¾¤Τ¹¤٤ƤΥ⥸¥塼¥뤬¤¢¤­¤é¤᤿¸å¤Ǥ¢¤ä¿¤Ȥ·¤Ƥ⡢ - ¥ꥯ¥¨¥¹¥Ȥ˹礦¥ɥ­¥å¥á¥ó¥Ȥ򸫤Ĥ±¤褦¤Ȥ¹¤뤳¤Ȥˤè¤ꤳ¤ÎÌäÂê¤Î - ²ò·è¤ò»î¤ߤޤ¹¡£¤³¤Υ⥸¥塼¥ë¤ϥꥯ¥¨¥¹¥Ȥµ¤줿¥ǥ£¥쥯¥ȥê¤ˤ¢¤ë - ¤½¤줾¤ì¤Υɥ­¥å¥á¥ó¥ȤÎ̾Á°¤ȡ¢¥ꥯ¥¨¥¹¥Ȥµ¤줿¥ɥ­¥å¥á¥ó¥ȤÎ̾Á°¤Ȥò - Âçʸ»ú¾®ʸ»ú¤ζèÊ̤ò̵»뤷¡¢°ìʸ»ú¤ޤǤÎ - Ä֤ê¤δְ㤤 (ʸ»ú¤ÎÁÞÆþ/¾Êά/Îٹ礦ʸ»ú¤ÎÃִ¹¡¢´ְã¤ä¿ʸ»ú) - ¤òµö²Ĥ·¤ÆÈæ³Ӥ¹¤뤳¤Ȥˤè¤ꡢÌÜŪ¤òãÀ®¤·¤褦¤Ȥ·¤ޤ¹¡£ - ¤³¤ÎÊýˡ¤ǥꥯ¥¨¥¹¥Ȥ˹礦¥ɥ­¥å¥á¥ó¥ȤΰìÍ÷¤¬ºîÀ®¤µ¤ì¤ޤ¹¡£

    - -

    ¥ǥ£¥쥯¥ȥê¤򥹥­¥ã¥󤷤¿¸å¤ˡ¢

    - -
      -
    • ŬÀڤʥɥ­¥å¥á¥ó¥Ȥ¬¸«¤Ĥ«¤é¤ʤ«¤ä¿¾ì¹硢 - Apache ¤Ϥ¤¤Ĥâ¤ÈƱ¤¸¤褦¤˽èÍý¤򤷡¢ - ¡֥ɥ­¥å¥á¥ó¥Ȥ¬¸«¤Ĥ«¤é¤ʤ¤¡פȤ¤¤¦¥¨¥顼¤òÊ֤·¤ޤ¹¡£
    • - -
    • ¥ꥯ¥¨¥¹¥Ȥˡ֤ۤȤó¤ɡ׹礦¥ɥ­¥å¥á¥ó¥Ȥ¬°ì¤ĤÀ¤±¸«¤Ĥ«¤ä¿¾ì¹硢 - ¤½¤줬¥ê¥À¥¤¥쥯¥ȱþÅú¤Ȥ·¤ÆÊ֤µ¤ì¤ޤ¹¡£
    • - -
    • ¤褯»÷¤¿¥ɥ­¥å¥á¥ó¥Ȥ¬ʣ¿ô¸«¤Ĥ«¤ä¿¾ì¹硢 - ¤½¤Υꥹ¥Ȥ¬¥¯¥饤¥¢¥ó¥ȤËÊ֤µ¤졢 - ¥¯¥饤¥¢¥ó¥Ȥ¬Àµ¤·¤¤¸õÊä¤òÁªÂò¤Ǥ­¤ë¤褦¤ˤ·¤ޤ¹¡£
    • -
    - -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -
    - -
    top
    -

    CheckSpelling ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - - -
    ÀâÌÀ:spelling ¥⥸¥塼¥ë¤ò»ÈÍѤ¹¤ë¤褦¤ˤ¹¤ë
    ¹½ʸ:CheckSpelling on|off
    ¥ǥե©¥ë¥È:CheckSpelling Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:Options
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_speling
    ¸ߴ¹À­:CheckSpelling ¤Ï Apache 1.1 ¤ǤÏÊÌÇÛÉۤΥ⥸¥塼¥ë¤ǡ¢ -Âçʸ»ú¾®ʸ»ú¤δְ㤤¤Τߤε¡ǽ¤Ǥ·¤¿¡£Apache 1.3 ¤Ç Apache ¤ÎÇÛÉۤË -´ޤޤì¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£Apache 1.3.2 ¤è¤êÁ°¤ǤÏ CheckSpelling -¥ǥ£¥쥯¥ƥ£¥֤ϡ֥µ¡¼¥Сפȡ֥С¼¥Á¥ã¥ë¥ۥ¹¥ȡץ³¥ó¥ƥ­¥¹¥ȤǤΤß -»ÈÍѲÄǽ¤Ǥ·¤¿
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÄ֤êÍѤΥ⥸¥塼¥ë¤ò»ÈÍѤ¹¤뤫¤ɤ¦¤«¤ò - ·è¤á¤ޤ¹¡£»ÈÍѻþ¤ˤϡ¢°ʲ¼¤Τ³¤Ȥò³Ф¨¤Ƥª¤¤¤Ƥ¯¤À¤µ¤¤

    - -
      -
    • Ʊ»þ¤ˤ¿¤¯¤µ¤ó¤ÎÄ֤ê¤ÎÄûÀµ¤ò¹Ԥʤï¤ʤ±¤ì¤Фʤé¤ʤ¤¤Ȥ­¤ϡ¢ - ¤½¤Τ¿¤á¤˹Ԥʤï¤ì¤ë¥ǥ£¥쥯¥ȥê¤Υ¹¥­¥ã¥󤬥µ¡¼¥ФÎÀ­ǽ¤Ë - ±ƶÁ¤òͿ¤¨¤ޤ¹¡£
    • - -
    • ¥ɥ­¥å¥á¥ó¥ȤÎÃæ¤ËÄ֤ê¤ΡÖÄûÀµ¡פˤè¤ê - °տޤ»¤º¹ç¤äƤ·¤ޤ¦¤褦¤ʽÅÍפʥե¡¥¤¥뤬¤ʤ¤¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£ -
    • - -
    • ¥⥸¥塼¥ë¤ϥ桼¥¶̾¤ÎÄ֤ê¤δְ㤤 - (http://my.host/~apahce/ ¤Τ褦¤Ë) - ¤òÄûÀµ¤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£ - ÄûÀµ¤Ǥ­¤ë¤Τϥե¡¥¤¥ë̾¤ȥǥ£¥쥯¥ȥê̾¤À¤±¤Ǥ¹¡£
    • - -
    • Ä֤ê¤ÎÄûÀµ¤Ï¸ºߤ¹¤ë¥ե¡¥¤¥ë¤˸·̩¤ËŬÍѤµ¤ì¤ޤ¹¤Τǡ¢ - <Location /status> - ¤ϥͥ´¥·¥¨¡¼¥·¥ç¥ó¤ηë²̤Υե¡¥¤¥ë "/stats.html" - ¤Ȥ·¤ƴְã¤äư·¤ï¤ì¤뤫¤⤷¤ì¤ޤ»¤ó¡£
    • -
    - - -

    DAV ¤¬ͭ¸ú¤ʥǥ£¥쥯¥ȥê¤ǤÏ - mod_speling ¤Ïͭ¸ú¤ˤ·¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£ - ¿·¤·¤¯ºîÀ®¤·¤¿¥꥽¡¼¥¹̾¤ò´û¤Ë¸ºߤ¹¤ë¥ե¡¥¤¥ë̾¤ˡֽ¤Àµ¡פ·¤褦¤Ȥ¹¤롢 - Î㤨¤С¢¿·µ¬¥ɥ­¥å¥á¥ó¥È doc43.html ¤¬´û¤Ë¸ºߤ¹¤ë - doc34.html ¤˥ê¥À¥¤¥쥯¥Ȥµ¤ì¤ơ¢ - ´üÂԤȤϰ㤦µóư¤ˤʤ뤫¤é¤Ǥ¹¡£

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_speling.html.ja.utf8 b/docs/manual/mod/mod_speling.html.ja.utf8 new file mode 100644 index 00000000000..ab3ee699b4b --- /dev/null +++ b/docs/manual/mod/mod_speling.html.ja.utf8 @@ -0,0 +1,173 @@ + + + + + +mod_speling - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_speling

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:ユーザが入力したであろう間違った URL を、 +大文字小文字の区別を無視することと一つ以下の綴り間違いを許容することで +修正を試みる
    ステータス:Extension
    モジュール識別子:speling_module
    ソースファイル:mod_speling.c
    +

    概要

    + + +

    リクエストの綴りが間違っていたり、 + 大文字小文字が違っていたりするために、Apache のコアサーバが + ドキュメントへのリクエストへの応答を正しく提供できないことがあります。 + このモジュールは、他のすべてのモジュールがあきらめた後であったとしても、 + リクエストに合うドキュメントを見つけようとすることによりこの問題の + 解決を試みます。このモジュールはリクエストされたディレクトリにある + それぞれのドキュメントの名前と、リクエストされたドキュメントの名前とを + 大文字小文字の区別を無視し、一文字までの + 綴りの間違い (文字の挿入/省略/隣合う文字の置換、間違った文字) + を許可して比較することにより、目的を達成しようとします。 + この方法でリクエストに合うドキュメントの一覧が作成されます。

    + +

    ディレクトリをスキャンした後に、

    + +
      +
    • 適切なドキュメントが見つからなかった場合、 + Apache はいつもと同じように処理をし、 + 「ドキュメントが見つからない」というエラーを返します。
    • + +
    • リクエストに「ほとんど」合うドキュメントが一つだけ見つかった場合、 + それがリダイレクト応答として返されます。
    • + +
    • よく似たドキュメントが複数見つかった場合、 + そのリストがクライアントに返され、 + クライアントが正しい候補を選択できるようにします。
    • +
    + +
    +

    ディレクティブ

    + +
    + +
    top
    +

    CheckCaseOnly ディレクティブ

    + + + + + + + + +
    説明:Limits the action of the speling module to case corrections
    構文:CheckCaseOnly on|off
    デフォルト:CheckCaseOnly Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Options
    ステータス:Extension
    モジュール:mod_speling

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    CheckSpelling ディレクティブ

    + + + + + + + + + +
    説明:spelling モジュールを使用するようにする
    構文:CheckSpelling on|off
    デフォルト:CheckSpelling Off
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:Options
    ステータス:Extension
    モジュール:mod_speling
    互換性:CheckSpelling は Apache 1.1 では別配布のモジュールで、 +大文字小文字の間違いのみの機能でした。Apache 1.3 で Apache の配布に +含まれるようになりました。Apache 1.3.2 より前では CheckSpelling +ディレクティブは「サーバ」と「バーチャルホスト」コンテキストでのみ +使用可能でした
    +

    このディレクティブは綴り用のモジュールを使用するかどうかを + 決めます。使用時には、以下のことを覚えておいてください

    + +
      +
    • 同時にたくさんの綴りの訂正を行なわなければならないときは、 + そのために行なわれるディレクトリのスキャンがサーバの性能に + 影響を与えます。
    • + +
    • ドキュメントの中に綴りの「訂正」により + 意図せず合ってしまうような重要なファイルがないようにしてください。 +
    • + +
    • モジュールはユーザ名の綴りの間違い + (http://my.host/~apahce/ のように) + を訂正することはできません。 + 訂正できるのはファイル名とディレクトリ名だけです。
    • + +
    • 綴りの訂正は存在するファイルに厳密に適用されますので、 + <Location /status> + はネゴシエーションの結果のファイル "/stats.html" + として間違って扱われるかもしれません。
    • +
    + + +

    DAV が有効なディレクトリでは + mod_speling は有効にしないでください。 + 新しく作成したリソース名を既に存在するファイル名に「修正」しようとする、 + 例えば、新規ドキュメント doc43.html が既に存在する + doc34.html にリダイレクトされて、 + 期待とは違う挙動になるからです。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_speling.html.ko.euc-kr b/docs/manual/mod/mod_speling.html.ko.euc-kr index 14df147dded..cc95eff2e4d 100644 --- a/docs/manual/mod/mod_speling.html.ko.euc-kr +++ b/docs/manual/mod/mod_speling.html.ko.euc-kr @@ -1,30 +1,39 @@ - -mod_speling - Apache HTTP Server +mod_speling - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_speling

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_speling

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -57,10 +66,24 @@

    Áö½þîµé

    -
    + +
    top
    +
    ¼³¸í:»ç¿ëÀڰ¡ ´ë¼ҹ®Àڸ¦ À߸ø »ç¿ëÇϰųª ¸ÂÃã¹ýÀÌ Ʋ¸®´Â °ÍÀ» Çѹø±îÁö Çã¿ëÇϿ© À߸øµÈ URLÀ» °íġ·Á°í ½õµÇѴÙ
    »óÅÂ:Extension
    + + + + + + + +
    ¼³¸í:Limits the action of the speling module to case corrections
    ¹®¹ý:CheckCaseOnly on|off
    ±⺻°ª:CheckCaseOnly Off
    »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤, °¡»óȣ½ºƮ, directory, .htaccess
    Override ¿ɼÇ:Options
    »óÅÂ:Extension
    ¸ðµâ:mod_speling

    The documentation for this directive has + not been translated yet. Please have a look at the English + version.

    top

    CheckSpelling Áö½þî

    @@ -112,7 +135,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    - +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_speling.xml b/docs/manual/mod/mod_speling.xml index 58af9d89745..f53a2637bd3 100644 --- a/docs/manual/mod/mod_speling.xml +++ b/docs/manual/mod/mod_speling.xml @@ -4,12 +4,12 @@ + -

    DAV $B$,M-8z$J%G%#%l%/%H%j$G$O(B - mod_speling $B$OM-8z$K$7$J$$$G$/$@$5$$!#(B - $B?7$7$/:n@.$7$?%j%=!<%9L>$r4{$KB8:_$9$k%U%!%$%kL>$K!V=$@5!W$7$h$&$H$9$k!"(B - $BNc$($P!"?75,%I%-%e%a%s%H(B doc43.html $B$,4{$KB8:_$9$k(B - doc34.html $B$K%j%@%$%l%/%H$5$l$F!"(B - $B4|BT$H$O0c$&5sF0$K$J$k$+$i$G$9!#(B

    +

    DAV が有効なディレクトリでは + mod_speling は有効にしないでください。 + 新しく作成したリソース名を既に存在するファイル名に「修正」しようとする、 + 例えば、新規ドキュメント doc43.html が既に存在する + doc34.html にリダイレクトされて、 + 期待とは違う挙動になるからです。

    diff --git a/docs/manual/mod/mod_speling.xml.ko b/docs/manual/mod/mod_speling.xml.ko index 9b8da069334..c92d5ba0fb8 100644 --- a/docs/manual/mod/mod_speling.xml.ko +++ b/docs/manual/mod/mod_speling.xml.ko @@ -1,15 +1,15 @@ - + - + mod_speling /mod/ .. en - ja - ko + ja + ko diff --git a/docs/manual/mod/mod_ssl.html b/docs/manual/mod/mod_ssl.html index 1b692ba64ea..003e75557c5 100644 --- a/docs/manual/mod/mod_ssl.html +++ b/docs/manual/mod/mod_ssl.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_ssl.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_ssl.html.en b/docs/manual/mod/mod_ssl.html.en index 5fa606763e6..a5b5120ab46 100644 --- a/docs/manual/mod/mod_ssl.html.en +++ b/docs/manual/mod/mod_ssl.html.en @@ -1,33 +1,40 @@ - -mod_ssl - Apache HTTP Server +mod_ssl - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_ssl

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_ssl

    Available Languages:  en 

    - -
    Description:Strong cryptography using the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols
    Status:Extension
    Module Identifier:ssl_module
    Source File:mod_ssl.c
    +Module Identifier:ssl_module +Source File:mod_ssl.c

    Summary

    This module provides SSL v2/v3 and TLS v1 support for the Apache @@ -40,7 +47,11 @@ to provide the cryptography engine.

    Further details, discussion, and examples are provided in the SSL documentation.

    -
    top

    Environment Variables

    -

    This module provides a lot of SSL information as additional environment -variables to the SSI and CGI namespace. The generated variables are listed in -the table below. For backward compatibility the information can +

    This module can be configured to provide several items of SSL information +as additional environment variables to the SSI and CGI namespace. This +information is not provided by default for performance reasons. (See +SSLOptions StdEnvVars, below.) The generated variables +are listed in the table below. For backward compatibility the information can be made available under different names, too. Look in the Compatibility chapter for details on the compatibility variables.

    @@ -102,7 +121,7 @@ compatibility variables.

    Description: HTTPS flag HTTPS is being used. -SSL_PROTOCOL string The SSL protocol version (SSLv2, SSLv3, TLSv1) +SSL_PROTOCOL string The SSL protocol version (SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2) SSL_SESSION_ID string The hex-encoded SSL session id SSL_CIPHER string The cipher specification name SSL_CIPHER_EXPORT string true if cipher is an export cipher @@ -136,6 +155,7 @@ compatibility variables.

    SSL_SERVER_A_SIG string Algorithm used for the signature of server's certificate SSL_SERVER_A_KEY string Algorithm used for the public key of server's certificate SSL_SERVER_CERT string PEM-encoded server certificate +SSL_TLS_SNI string Contents of the SNI TLS extension (if supplied with ClientHello)

    x509 specifies a component of an X.509 DN; one of @@ -169,6 +189,9 @@ provided. Information about this function is provided in the

    +

    These formats even work without setting the StdEnvVars +option of the SSLOptions +directive.

    top

    SSLCACertificateFile Directive

    @@ -211,8 +234,7 @@ The files in this directory have to be PEM-encoded and are accessed through hash filenames. So usually you can't just place the Certificate files there: you also have to create symbolic links named hash-value.N. And you should always make sure this directory -contains the appropriate symbolic links. Use the Makefile which -comes with mod_ssl to accomplish this task.

    +contains the appropriate symbolic links.

    Example

    SSLCACertificatePath /usr/local/apache2/conf/ssl.crt/

    @@ -277,9 +299,7 @@ details.

    through hash filenames. So usually you can't just place the Certificate files there: you also have to create symbolic links named hash-value.N. And you should always make sure -this directory contains the appropriate symbolic links. Use the -Makefile which comes with mod_ssl to accomplish this -task.

    +this directory contains the appropriate symbolic links.

    Example

    SSLCADNRequestPath /usr/local/apache2/conf/ca-names.crt/

    @@ -326,8 +346,7 @@ The files in this directory have to be PEM-encoded and are accessed through hash filenames. So usually you have not only to place the CRL files there. Additionally you have to create symbolic links named hash-value.rN. And you should always make sure this directory -contains the appropriate symbolic links. Use the Makefile which -comes with mod_ssl to accomplish this task.

    +contains the appropriate symbolic links.

    Example

    SSLCARevocationPath /usr/local/apache2/conf/ssl.crl/

    @@ -346,7 +365,7 @@ SSLCARevocationPath /usr/local/apache2/conf/ssl.crl/ This directive sets the optional all-in-one file where you can assemble the certificates of Certification Authorities (CA) which form the certificate chain of the server certificate. This starts with the issuing CA -certificate of of the server certificate and can range up to the root CA +certificate of the server certificate and can range up to the root CA certificate. Such a file is simply the concatenation of the various PEM-encoded CA Certificate files, usually in certificate chain order.

    @@ -358,10 +377,10 @@ authentication. Because although placing a CA certificate of the server certificate chain into SSLCACertificatePath has the same effect for the certificate chain construction, it has the side-effect that client certificates issued by this same CA certificate are also -accepted on client authentication. That's usually not one expect.

    +accepted on client authentication.

    But be careful: Providing the certificate chain works only if you are using a -single (either RSA or DSA) based server certificate. If you are +single RSA or DSA based server certificate. If you are using a coupled RSA+DSA certificate pair, this will work only if actually both certificates use the same certificate chain. Else the browsers will be confused in this situation.

    @@ -378,14 +397,51 @@ SSLCertificateChainFile /usr/local/apache2/conf/ssl.crt/ca.crt Context:server config, virtual host Status:Extension Module:mod_ssl +Compatibility:ECC support is available in Apache 2.2.26 and later

    -This directive points to the PEM-encoded Certificate file for the server and -optionally also to the corresponding RSA or DSA Private Key file for it -(contained in the same file). If the contained Private Key is encrypted the -Pass Phrase dialog is forced at startup time. This directive can be used up to -two times (referencing different filenames) when both a RSA and a DSA based -server certificate is used in parallel.

    +This directive points to a file with certificate data in PEM format. +At a minimum, the file must include an end-entity (leaf) certificate. +The directive can be used up to three times (referencing different filenames) +when an RSA, a DSA, and an ECC based server certificate is used in parallel. +

    + +

    +Custom DH parameters and an EC curve name for ephemeral keys, +can be added to end of the first file configured using +SSLCertificateFile. +This is supported in version 2.2.30 or later. +Such parameters can be generated using the commands +openssl dhparam and openssl ecparam. +The parameters can be added as-is to the end of the first +certificate file. Only the first file can be used for custom +parameters, as they are applied independently of the authentication +algorithm type. +

    + +

    +Finally the the end-entity certificate's private key can also be +added to the certificate file instead of using a separate +SSLCertificateKeyFile +directive. This practice is highly discouraged. If the private +key is encrypted, the pass phrase dialog is forced at startup time. +

    + +
    +

    DH parameter interoperability with primes > 1024 bit

    +

    +Beginning with version 2.2.30, mod_ssl makes use of +standardized DH parameters with prime lengths of 2048, 3072, 4096, 6144 and +8192 bits (from RFC 3526), +and hands them out to clients based on the length of the certificate's RSA/DSA +key. +With Java-based clients in particular (Java 7 or earlier), this may lead +to handshake failures - see this +FAQ answer for working around +such issues. +

    +
    +

    Example

    SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt

    @@ -399,20 +455,25 @@ SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt Context:server config, virtual host Status:Extension Module:mod_ssl +Compatibility:ECC support is available in Apache 2.2.26 and later

    -This directive points to the PEM-encoded Private Key file for the -server. If the Private Key is not combined with the Certificate in the -SSLCertificateFile, use this additional directive to -point to the file with the stand-alone Private Key. When -SSLCertificateFile is used and the file -contains both the Certificate and the Private Key this directive need -not be used. But we strongly discourage this practice. Instead we -recommend you to separate the Certificate and the Private Key. If the -contained Private Key is encrypted, the Pass Phrase dialog is forced -at startup time. This directive can be used up to two times -(referencing different filenames) when both a RSA and a DSA based -private key is used in parallel.

    +This directive points to the PEM-encoded private key file for the +server. If the contained private key is encrypted, the pass phrase +dialog is forced at startup time.

    + +

    +The directive can be used up to three times (referencing different filenames) +when an RSA, a DSA, and an ECC based private key is used in parallel. For each +SSLCertificateKeyFile +directive, there must be a matching SSLCertificateFile +directive.

    + +

    +The private key may also be combined with the certificate in the file given by +SSLCertificateFile, but this practice +is highly discouraged.

    +

    Example

    SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key

    @@ -436,7 +497,7 @@ consisting of OpenSSL cipher specifications to configure the Cipher Suite the client is permitted to negotiate in the SSL handshake phase. Notice that this directive can be used both in per-server and per-directory context. In per-server context it applies to the standard SSL handshake when a connection -is established. In per-directory context it forces a SSL renegotation with the +is established. In per-directory context it forces a SSL renegotiation with the reconfigured Cipher Suite after the HTTP request was read but before the HTTP response is sent.

    @@ -512,10 +573,19 @@ together with prefixes to form the cipher-spec. Available prefixes are:

    • none: add cipher to list
    • -
    • +: add ciphers to list and pull them to current location in list
    • +
    • +: move matching ciphers to the current location in list
    • -: remove cipher from list (can be added later again)
    • !: kill cipher from list completely (can not be added later again)
    + +
    +

    aNULL, eNULL and EXP +ciphers are always disabled

    +

    Beginning with version 2.2.30, null and export-grade +ciphers are always disabled, as mod_ssl unconditionally prepends any supplied +cipher suite string with !aNULL:!eNULL:!EXP: at initialization.

    +
    +

    A simpler way to look at all of this is to use the ``openssl ciphers -v'' command which provides a nice way to successively create the correct cipher-spec string. The default cipher-spec string @@ -525,16 +595,14 @@ authenticate, i.e. for SSL only the Anonymous Diffie-Hellman ciphers. Next, use ciphers using RC4 and RSA. Next include the high, medium and then the low security ciphers. Finally pull all SSLv2 and export ciphers to the end of the list.

    -
    -$ openssl ciphers -v 'ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP'
    +
    $ openssl ciphers -v 'ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP'
     NULL-SHA                SSLv3 Kx=RSA      Au=RSA  Enc=None      Mac=SHA1
     NULL-MD5                SSLv3 Kx=RSA      Au=RSA  Enc=None      Mac=MD5
     EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
     ...                     ...               ...     ...           ...
     EXP-RC4-MD5             SSLv3 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export
     EXP-RC2-CBC-MD5         SSLv2 Kx=RSA(512) Au=RSA  Enc=RC2(40)   Mac=MD5  export
    -EXP-RC4-MD5             SSLv2 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export
    -
    +EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export

    The complete list of particular RSA & DH ciphers for SSL is given in Table 2.

    Example

    SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW @@ -575,6 +643,26 @@ SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW EXP-ADH-RC4-MD5 SSLv3 DH(512) None RC4(40) MD5 export +

    +
    top
    +

    SSLCompression Directive

    + + + + + + + + +
    Description:Enable compression on the SSL level
    Syntax:SSLCompression on|off
    Default:SSLCompression off
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    Compatibility:Available in httpd 2.2.24 and later, if using OpenSSL 0.9.8 or later; +virtual host scope available if using OpenSSL 1.0.0 or later. +The default used to be on in versions 2.2.24 to 2.2.25.
    +

    This directive allows to enable compression on the SSL level.

    +
    +

    Enabling compression causes security issues in most setups (the so called +CRIME attack).

    +
    +
    top

    SSLCryptoDevice Directive

    @@ -585,7 +673,8 @@ SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW Context:server config Status:Extension Module:mod_ssl -Compatibility:Available if mod_ssl is built using -DSSL_ENGINE_EXPERIMENTAL +Compatibility:Available in Apache 2.1 and later, if using -engine flavor of OpenSSL + 0.9.6, or OpenSSL 0.9.7 or later

    This directive enables use of a cryptographic hardware accelerator @@ -615,8 +704,8 @@ SSLCryptoDevice ubsec

    This directive toggles the usage of the SSL/TLS Protocol Engine. This -is usually used inside a <VirtualHost> section to enable SSL/TLS for a -particular virtual host. By default the SSL/TLS Protocol Engine is +should be used inside a <VirtualHost> section to enable SSL/TLS for a +that virtual host. By default the SSL/TLS Protocol Engine is disabled for both the main server and all configured virtual hosts.

    Example

    <VirtualHost _default_:443>
    @@ -624,17 +713,45 @@ SSLEngine on
    ...
    </VirtualHost>

    -

    New in Apache 2.1, SSLEngine can be set to -optional. This enables support for +

    In Apache 2.1 and later, SSLEngine can be set to +optional. This enables support for RFC 2817, Upgrading to TLS Within HTTP/1.1. At this time no web browsers support RFC 2817.

    +
    +
    top
    +

    SSLFIPS Directive

    + + + + + + + +
    Description:SSL FIPS mode Switch
    Syntax:SSLFIPS on|off
    Default:SSLFIPS off
    Context:server config
    Status:Extension
    Module:mod_ssl
    +

    +This directive toggles the usage of the SSL library FIPS_mode flag. +It must be set in the global server context and cannot be configured +with conflicting settings (SSLFIPS on followed by SSLFIPS off or +similar). The mode applies to all SSL library operations. +

    +

    +If httpd was compiled against an SSL library which did not support +the FIPS_mode flag, SSLFIPS on will fail. Refer to the +FIPS 140-2 Security Policy document of the SSL provider library for +specific requirements to use mod_ssl in a FIPS 140-2 approved mode +of operation; note that mod_ssl itself is not validated, but may be +described as using FIPS 140-2 validated cryptographic module, when +all components are assembled and operated under the guidelines imposed +by the applicable Security Policy. +

    +
    top

    SSLHonorCipherOrder Directive

    - + @@ -647,6 +764,48 @@ server's preference will be used instead.

    SSLHonorCipherOrder on

    + +
    top
    +
    Description:Option to prefer the server's cipher preference order
    Syntax:SSLHonorCiperOrder flag
    Syntax:SSLHonorCipherOrder flag
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    + + + + + + + +
    Description:Option to enable support for insecure renegotiation
    Syntax:SSLInsecureRenegotiation flag
    Default:SSLInsecureRenegotiation off
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    Compatibility:Available in httpd 2.2.15 and later, if using OpenSSL 0.9.8m or later
    +

    As originally specified, all versions of the SSL and TLS protocols +(up to and including TLS/1.2) were vulnerable to a Man-in-the-Middle +attack +(CVE-2009-3555) +during a renegotiation. This vulnerability allowed an attacker to +"prefix" a chosen plaintext to the HTTP request as seen by the web +server. A protocol extension was developed which fixed this +vulnerability if supported by both client and server.

    + +

    If mod_ssl is linked against OpenSSL version 0.9.8m +or later, by default renegotiation is only supported with +clients supporting the new protocol extension. If this directive is +enabled, renegotiation will be allowed with old (unpatched) clients, +albeit insecurely.

    + +

    Security warning

    +

    If this directive is enabled, SSL connections will be vulnerable to +the Man-in-the-Middle prefix attack as described +in CVE-2009-3555.

    +
    + +

    Example

    +SSLInsecureRenegotiation on +

    + +

    The SSL_SECURE_RENEG environment variable can be used +from an SSI or CGI script to determine whether secure renegotiation is +supported for a given SSL connection.

    + +
    top

    SSLMutex Directive

    @@ -665,7 +824,7 @@ exclusion of operations which have to be done in a synchronized way between the pre-forked Apache server processes. This directive can only be used in the global server context because it's only useful to have one global mutex. This directive is designed to closely match the -AcceptMutex directive

    +AcceptMutex directive.

    The following Mutex types are available:

      @@ -680,29 +839,29 @@ The following Mutex types are available:

      This is an elegant Mutex variant where a Posix Semaphore is used when possible. It is only available when the underlying platform - and APR supports it.

      + and APR supports it.

    • sysvsem

      This is a somewhat elegant Mutex variant where a SystemV IPC Semaphore is used when possible. It is possible to "leak" SysV semaphores if processes crash before the semaphore is removed. It is only available when the underlying platform - and APR supports it.

    • + and APR supports it.

    • sem

      This directive tells the SSL Module to pick the "best" semaphore implementation available to it, choosing between Posix and SystemV IPC, in that order. It is only - available when the underlying platform and APR supports at least one of the 2.

    • + available when the underlying platform and APR supports at least one of the 2.

    • pthread

      This directive tells the SSL Module to use Posix thread mutexes. It is only available - if the underlying platform and APR supports it.

    • + if the underlying platform and APR supports it.

    • fcntl:/path/to/mutex

      This is a portable Mutex variant where a physical (lock-)file and the fcntl() - fucntion are used as the Mutex. + function are used as the Mutex. Always use a local disk filesystem for /path/to/mutex and never a file residing on a NFS- or AFS-filesystem. It is only available when the underlying platform - and APR supports it. Note: Internally, the Process ID (PID) of the + and APR supports it. Note: Internally, the Process ID (PID) of the Apache parent process is automatically appended to /path/to/mutex to make it unique, so you don't have to worry about conflicts yourself. Notice that this type of mutex is not available @@ -713,17 +872,17 @@ The following Mutex types are available:

      This is similar to the fcntl:/path/to/mutex method with the exception that the flock() function is used to provide file locking. It is only available when the underlying platform - and APR supports it.

    • + and APR supports it.

    • file:/path/to/mutex

      This directive tells the SSL Module to pick the "best" file locking implementation available to it, choosing between fcntl and flock, - in that order. It is only available when the underlying platform and APR supports + in that order. It is only available when the underlying platform and APR supports at least one of the 2.

    • default | yes

      This directive tells the SSL Module to pick the default locking implementation - as determined by the platform and APR.

    • + as determined by the platform and APR.

    Example

    SSLMutex file:/usr/local/apache/logs/ssl_mutex @@ -761,13 +920,6 @@ The available options are:

    rather expensive operation. So one usually enables this option for CGI and SSI requests only.

    -
  • CompatEnvVars -

    - When this option is enabled, additional CGI/SSI environment variables are - created for backward compatibility to other Apache SSL solutions. Look in - the Compatibility chapter for details - on the particular variables generated.

    -
  • ExportCertData

    When this option is enabled, additional CGI/SSI environment variables are @@ -824,7 +976,7 @@ The available options are:

    Example

    SSLOptions +FakeBasicAuth -StrictRequire
    <Files ~ "\.(cgi|shtml)$">
    - SSLOptions +StdEnvVars +CompatEnvVars -ExportCertData
    + SSLOptions +StdEnvVars -ExportCertData
    <Files>

    @@ -885,12 +1037,12 @@ query can be done in two ways which can be configured by Here an external program is configured which is called at startup for each encrypted Private Key file. It is called with two arguments (the first is of the form ``servername:portnumber'', the second is either - ``RSA'' or ``DSA''), which indicate for which - server and algorithm it has to print the corresponding Pass Phrase to - stdout. The intent is that this external program first runs - security checks to make sure that the system is not compromised by an - attacker, and only when these checks were passed successfully it provides - the Pass Phrase.

    + ``RSA'', ``DSA'', or ``ECC''), which + indicate for which server and algorithm it has to print the corresponding + Pass Phrase to stdout. The intent is that this external + program first runs security checks to make sure that the system is not + compromised by an attacker, and only when these checks were passed + successfully it provides the Pass Phrase.

    Both these security checks, and the way the Pass Phrase is determined, can be as complex as you like. Mod_ssl just defines the interface: an @@ -928,32 +1080,41 @@ The available (case-insensitive) protocols are:

  • SSLv2

    This is the Secure Sockets Layer (SSL) protocol, version 2.0. It is the - original SSL protocol as designed by Netscape Corporation.

  • + original SSL protocol as designed by Netscape Corporation. Though its + use has been deprecated, because of weaknesses in the security of the protocol.

  • SSLv3

    - This is the Secure Sockets Layer (SSL) protocol, version 3.0. It is the - successor to SSLv2 and the currently (as of February 1999) de-facto - standardized SSL protocol from Netscape Corporation. It's supported by + This is the Secure Sockets Layer (SSL) protocol, version 3.0, from + the Netscape Corporation. + It is the successor to SSLv2 and the predecessor to TLSv1. It's supported by almost all popular browsers.

  • TLSv1

    - This is the Transport Layer Security (TLS) protocol, version 1.0. It is the - successor to SSLv3 and currently (as of February 1999) still under - construction by the Internet Engineering Task Force (IETF). It's still - not supported by any popular browsers.

  • + This is the Transport Layer Security (TLS) protocol, version 1.0. + It is the successor to SSLv3 and is defined in + RFC 2246.

    + +
  • TLSv1.1 (when using OpenSSL 1.0.1 and later) +

    + A revision of the TLS 1.0 protocol, as defined in + RFC 4346.

  • + +
  • TLSv1.2 (when using OpenSSL 1.0.1 and later) +

    + A revision of the TLS 1.1 protocol, as defined in + RFC 5246.

  • All

    - This is a shortcut for ``+SSLv2 +SSLv3 +TLSv1'' and a - convinient way for enabling all protocols except one when used in - combination with the minus sign on a protocol as the example above - shows.

  • + This is a shortcut for ``+SSLv2 +SSLv3 +TLSv1'' or + - when using OpenSSL 1.0.1 and later - + ``+SSLv2 +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2'', respectively.

    Example

    -# enable SSLv3 and TLSv1, but not SSLv2
    -SSLProtocol all -SSLv2 +# enable SSLv3 and all available TLSv1 flavors, but not SSLv2
    +SSLProtocol All -SSLv2

    @@ -998,8 +1159,7 @@ The files in this directory have to be PEM-encoded and are accessed through hash filenames. So usually you can't just place the Certificate files there: you also have to create symbolic links named hash-value.N. And you should always make sure this directory -contains the appropriate symbolic links. Use the Makefile which -comes with mod_ssl to accomplish this task.

    +contains the appropriate symbolic links.

    Example

    SSLProxyCACertificatePath /usr/local/apache2/conf/ssl.crt/

    @@ -1046,12 +1206,53 @@ The files in this directory have to be PEM-encoded and are accessed through hash filenames. So usually you have not only to place the CRL files there. Additionally you have to create symbolic links named hash-value.rN. And you should always make sure this directory -contains the appropriate symbolic links. Use the Makefile which -comes with mod_ssl to accomplish this task.

    +contains the appropriate symbolic links.

    Example

    SSLProxyCARevocationPath /usr/local/apache2/conf/ssl.crl/

    +
    +
    top
    +

    SSLProxyCheckPeerCN Directive

    + + + + + + + +
    Description:Whether to check the remote server certificates CN field +
    Syntax:SSLProxyCheckPeerCN on|off
    Default:SSLProxyCheckPeerCN off
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    +

    +This directive sets whether the remote server certificates CN field is +compared against the hostname of the request URL. If both are not equal +a 502 status code (Bad Gateway) is sent. +

    +

    Example

    +SSLProxyCheckPeerCN on +

    + +
    +
    top
    +

    SSLProxyCheckPeerExpire Directive

    + + + + + + + +
    Description:Whether to check if remote server certificate is expired +
    Syntax:SSLProxyCheckPeerExpire on|off
    Default:SSLProxyCheckPeerExpire off
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    +

    +This directive sets whether it is checked if the remote server certificate +is expired or not. If the check fails a 502 status code (Bad Gateway) is +sent. +

    +

    Example

    +SSLProxyCheckPeerExpire on +

    +
    top

    SSLProxyCipherSuite Directive

    @@ -1084,7 +1285,14 @@ for additional information.

    This directive toggles the usage of the SSL/TLS Protocol Engine for proxy. This is usually used inside a <VirtualHost> section to enable SSL/TLS for proxy usage in a particular virtual host. By default the SSL/TLS Protocol Engine is -disabled for proxy image both for the main server and all configured virtual hosts.

    +disabled for proxy both for the main server and all configured virtual hosts.

    + +

    Note that the SSLProxyEngine directive should not, in +general, be included in a virtual host that will be acting as a +forward proxy (using <Proxy> or <ProxyRequest> directives. +SSLProxyEngine is not required to enable a forward proxy server to +proxy SSL/TLS requests.

    +

    Example

    <VirtualHost _default_:443>
    SSLProxyEngine on
    @@ -1092,6 +1300,38 @@ SSLProxyEngine on
    </VirtualHost>

    +
    +
    top
    +

    SSLProxyMachineCertificateChainFile Directive

    + + + + + + + + +
    Description:File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    Syntax:SSLProxyMachineCertificateChainFile filename
    Context:server config
    Override:Not applicable
    Status:Extension
    Module:mod_ssl
    Compatibility:Available in Apache 2.2.23 and later
    +

    +This directive sets the all-in-one file where you keep the certificate chain +for all of the client certs in use. This directive will be needed if the +remote server presents a list of CA certificates that are not direct signers +of one of the configured client certificates. +

    +

    +This referenced file is simply the concatenation of the various PEM-encoded +certificate files. Upon startup, each client certificate configured will +be examined and a chain of trust will be constructed. +

    +

    Security warning

    +

    If this directive is enabled, all of the certificates in the file will be +trusted as if they were also in +SSLProxyCACertificateFile.

    +
    +

    Example

    +SSLProxyMachineCertificateChainFile /usr/local/apache2/conf/ssl.crt/proxyCA.pem +

    +
    top

    SSLProxyMachineCertificateFile Directive

    @@ -1137,9 +1377,7 @@ keys used for authentication of the proxy server to remote servers.

    The files in this directory must be PEM-encoded and are accessed through hash filenames. Additionally, you must create symbolic links named hash-value.N. And you should always make sure this -directory contains the appropriate symbolic links. Use the Makefile which -comes with mod_ssl to accomplish this task. -

    +directory contains the appropriate symbolic links.

    Currently there is no support for encrypted private keys

    @@ -1175,19 +1413,32 @@ for additional information. Description:Type of remote server Certificate verification Syntax:SSLProxyVerify level Default:SSLProxyVerify none -Context:server config, virtual host, directory, .htaccess -Override:AuthConfig +Context:server config, virtual host Status:Extension Module:mod_ssl -

    -This directive sets the Certificate verification level for the remote server -Authentication. Notice that this directive can be used both in per-server and -per-directory context. In per-server context it applies to the remote server -authentication process used in the standard SSL handshake when a connection is -established. In per-directory context it forces a SSL renegotation with the -reconfigured remote server verification level after the HTTP request was read but -before the HTTP response is sent.

    + +

    When a proxy is configured to forward requests to a remote SSL +server, this directive can be used to configure certificate +verification of the remote server.

    + +
    +

    Note that even when certificate verification is enabled, +mod_ssl does not check whether the +commonName (hostname) attribute of the server certificate +matches the hostname used to connect to the server. In other words, +the proxy does not guarantee that the SSL connection to the backend +server is "secure" beyond the fact that the certificate is signed by +one of the CAs configured using the +SSLProxyCACertificatePath and/or +SSLProxyCACertificateFile directives. +In order to get this check done please have a look at +SSLProxyCheckPeerCN and +SSLProxyCheckPeerExpire directives which are off by +default. +

    +
    +

    The following levels are available for level:

      @@ -1218,19 +1469,14 @@ SSLProxyVerify require Certificate verification Syntax:SSLProxyVerifyDepth number Default:SSLProxyVerifyDepth 1 -Context:server config, virtual host, directory, .htaccess +Context:server config, virtual host Override:AuthConfig Status:Extension Module:mod_ssl

      This directive sets how deeply mod_ssl should verify before deciding that the -remote server does not have a valid certificate. Notice that this directive can be -used both in per-server and per-directory context. In per-server context it -applies to the client authentication process used in the standard SSL -handshake when a connection is established. In per-directory context it forces -a SSL renegotation with the reconfigured remote server verification depth after the -HTTP request was read but before the HTTP response is sent.

      +remote server does not have a valid certificate.

      The depth actually is the maximum number of intermediate certificate issuers, i.e. the number of CA certificates which are max allowed to be followed while @@ -1265,11 +1511,11 @@ in the global server context because the PRNG is a global facility.

      The following source variants are available:

      • builtin -

        This is the always available builtin seeding source. It's usage +

        This is the always available builtin seeding source. Its usage consumes minimum CPU cycles under runtime and hence can be always used without drawbacks. The source used for seeding the PRNG contains of the current time, the current process id and (when applicable) a randomly - choosen 1KB extract of the inter-process scoreboard structure of Apache. + chosen 1KB extract of the inter-process scoreboard structure of Apache. The drawback is that this is not really a strong source and at startup time (where the scoreboard is still not available) this source just produces a few bytes of entropy. So you should always, at least for the @@ -1285,7 +1531,7 @@ The following source variants are available:

        the first argument). Use this especially at startup time, for instance with an available /dev/random and/or /dev/urandom devices (which usually exist on modern Unix - derivates like FreeBSD and Linux).

        + derivatives like FreeBSD and Linux).

        But be careful: Usually /dev/random provides only as much entropy data as it actually has, i.e. when you request 512 bytes of @@ -1300,9 +1546,9 @@ The following source variants are available:

        On some platforms like FreeBSD one can even control how the entropy is actually generated, i.e. by which system interrupts. More details one can find under rndcontrol(8) on those platforms. Alternatively, when - your system lacks such a random device, you can use tool + your system lacks such a random device, you can use a tool like EGD - (Entropy Gathering Daemon) and run it's client program with the + (Entropy Gathering Daemon) and run its client program with the exec:/path/to/program/ variant (see below) or use egd:/path/to/egd-socket (see below).

      • @@ -1338,6 +1584,36 @@ SSLRandomSeed connect file:/dev/random
        SSLRandomSeed connect file:/dev/urandom 1024

    +
    +
    top
    +

    SSLRenegBufferSize Directive

    + + + + + + + + +
    Description:Set the size for the SSL renegotiation buffer
    Syntax:SSLRenegBufferSize bytes
    Default:SSLRenegBufferSize 131072
    Context:directory, .htaccess
    Override:AuthConfig
    Status:Extension
    Module:mod_ssl
    + +

    If an SSL renegotiation is required in per-location context, for +example, any use of SSLVerifyClient in a Directory or +Location block, then mod_ssl must buffer any HTTP +request body into memory until the new SSL handshake can be performed. +This directive can be used to set the amount of memory that will be +used for this buffer.

    + +

    +Note that in many configurations, the client sending the request body +will be untrusted so a denial of service attack by consumption of +memory must be considered when changing this configuration setting. +

    + +

    Example

    +SSLRenegBufferSize 262144 +

    +
    top

    SSLRequire Directive

    @@ -1365,8 +1641,7 @@ containing any number of access checks.

    The expression must match the following syntax (given as a BNF grammar notation):

    -
    -expr     ::= "true" | "false"
    +
    expr     ::= "true" | "false"
                | "!" expr
                | expr "&&" expr
                | expr "||" expr
    @@ -1395,8 +1670,7 @@ word     ::= digit
     digit    ::= [0-9]+
     cstring  ::= "..."
     variable ::= "%{" varname "}"
    -function ::= funcname "(" funcargs ")"
    -
    +function ::= funcname "(" funcargs ")"

    while for varname any variable from Table 3 can be used. Finally for funcname the following functions are available:

    @@ -1412,8 +1686,8 @@ function ::= funcname "(" funcargs ")" representation and then evaluated in a second step. Actually, in Global and Per-Server Class context expression is parsed at startup time and at runtime only the machine representation is executed. For Per-Directory -context this is different: here expression has to be parsed and -immediately executed for every request.

    +context, specifically in a .htaccess context, this is different: here +expression has to be parsed and immediately executed for every request.

    Example

    SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
    and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
    @@ -1429,8 +1703,7 @@ checked, until a match is found.

    Standard CGI/1.0 and Apache variables:

    -
    -HTTP_USER_AGENT        PATH_INFO             AUTH_TYPE
    +
    HTTP_USER_AGENT        PATH_INFO             AUTH_TYPE
     HTTP_REFERER           QUERY_STRING          SERVER_SOFTWARE
     HTTP_COOKIE            REMOTE_HOST           API_VERSION
     HTTP_FORWARDED         REMOTE_IDENT          TIME_YEAR
    @@ -1442,11 +1715,9 @@ THE_REQUEST            SERVER_PORT           TIME_SEC
     REQUEST_METHOD         SERVER_PROTOCOL       TIME_WDAY
     REQUEST_SCHEME         REMOTE_ADDR           TIME
     REQUEST_URI            REMOTE_USER           ENV:variablename
    -REQUEST_FILENAME
    -
    +REQUEST_FILENAME

    SSL-related variables:

    -
    -HTTPS                  SSL_CLIENT_M_VERSION   SSL_SERVER_M_VERSION
    +
    HTTPS                  SSL_CLIENT_M_VERSION   SSL_SERVER_M_VERSION
                            SSL_CLIENT_M_SERIAL    SSL_SERVER_M_SERIAL
     SSL_PROTOCOL           SSL_CLIENT_V_START     SSL_SERVER_V_START
     SSL_SESSION_ID         SSL_CLIENT_V_END       SSL_SERVER_V_END
    @@ -1482,8 +1753,7 @@ SSL_VERSION_INTERFACE  SSL_CLIENT_S_DN_OU     SSL_SERVER_S_DN_OU
                            SSL_CLIENT_A_KEY       SSL_SERVER_A_KEY
                            SSL_CLIENT_CERT        SSL_SERVER_CERT
                            SSL_CLIENT_CERT_CHAIN_n
    -                       SSL_CLIENT_VERIFY
    -
    + SSL_CLIENT_VERIFY SSL_TLS_SNI
    top
    @@ -1527,7 +1797,7 @@ OpenSSL already caches the SSL session information locally. But because modern clients request inlined images and other data via parallel requests (usually up to four parallel requests are common) those requests are served by different pre-forked server processes. Here an inter-process cache -helps to avoid unneccessary session handshakes.

    +helps to avoid unnecessary session handshakes.

    The following four storage types are currently supported:

      @@ -1586,16 +1856,109 @@ in the Session Cache Context:server config, virtual host Status:Extension Module:mod_ssl +Compatibility:Applies also to RFC 5077 TLS session resumption in Apache 2.2.28 and later

      This directive sets the timeout in seconds for the information stored in the -global/inter-process SSL Session Cache and the OpenSSL internal memory cache. +global/inter-process SSL Session Cache, the OpenSSL internal memory cache and +for sessions resumed by TLS session resumption (RFC 5077). It can be set as low as 15 for testing, but should be set to higher values like 300 in real life.

      Example

      SSLSessionCacheTimeout 600

      +
    +
    top
    +

    SSLSessionTicketKeyFile Directive

    + + + + + + + +
    Description:Persistent encryption/decryption key for TLS session tickets
    Syntax:SSLSessionTicketKeyFile file-path
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    Compatibility:Available in httpd 2.2.30 and later, if using OpenSSL 0.9.8h or later
    +

    Optionally configures a secret key for encrypting and decrypting +TLS session tickets, as defined in +RFC 5077. +Primarily suitable for clustered environments where TLS sessions information +should be shared between multiple nodes. For single-instance httpd setups, +it is recommended to not configure a ticket key file, but to +rely on (random) keys generated by mod_ssl at startup, instead.

    +

    The ticket key file must contain 48 bytes of random data, +preferrably created from a high-entropy source. On a Unix-based system, +a ticket key file can be created as follows:

    + +

    +dd if=/dev/random of=/path/to/file.tkey bs=1 count=48 +

    + +

    Ticket keys should be rotated (replaced) on a frequent basis, +as this is the only way to invalidate an existing session ticket - +OpenSSL currently doesn't allow to specify a limit for ticket lifetimes. +A new ticket key only gets used after restarting the web server. +All existing session tickets become invalid after a restart.

    + +
    +

    The ticket key file contains sensitive keying material and should +be protected with file permissions similar to those used for +SSLCertificateKeyFile.

    +
    + +
    +
    top
    +

    SSLSessionTickets Directive

    + + + + + + + + +
    Description:Enable or disable use of TLS session tickets
    Syntax:SSLSessionTickets on|off
    Default:SSLSessionTickets on
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    Compatibility:Available in httpd 2.2.30 and later, if using OpenSSL 0.9.8f +or later.
    +

    This directive allows to enable or disable the use of TLS session tickets +(RFC 5077).

    +
    +

    TLS session tickets are enabled by default. Using them without restarting +the web server with an appropriate frequency (e.g. daily) compromises perfect +forward secrecy.

    +
    + +
    +
    top
    +

    SSLStrictSNIVHostCheck Directive

    + + + + + + + + +
    Description:Whether to allow non SNI clients to access a name based virtual +host. +
    Syntax:SSLStrictSNIVHostCheck on|off
    Default:SSLStrictSNIVHostCheck off
    Context:server config, virtual host
    Status:Extension
    Module:mod_ssl
    Compatibility:Available in Apache 2.2.12 and later
    +

    +This directive sets whether a non SNI client is allowed to access a name based +virtual host. If set to on in the non default name based virtual +host, non SNI clients are not allowed to access this particular virtual host. +If set to on in the default name based virtual host, non SNI +clients are not allowed to access any name based virtual host belonging to +this IP / port combination. +

    + +

    +This option is only available if httpd was compiled against an SNI capable +version of OpenSSL. +

    + +

    Example

    +SSLStrictSNIVHostCheck on +

    +
    top

    SSLUserName Directive

    @@ -1616,7 +1979,7 @@ string. In particular, this may cause the environment variable any of the SSL environment variables.

    Note that this directive has no effect if the -FakeBasic option is used (see SSLOptions).

    +FakeBasicAuth option is used (see SSLOptions).

    Example

    SSLUserName SSL_CLIENT_S_DN_CN @@ -1639,7 +2002,7 @@ This directive sets the Certificate verification level for the Client Authentication. Notice that this directive can be used both in per-server and per-directory context. In per-server context it applies to the client authentication process used in the standard SSL handshake when a connection is -established. In per-directory context it forces a SSL renegotation with the +established. In per-directory context it forces a SSL renegotiation with the reconfigured client verification level after the HTTP request was read but before the HTTP response is sent.

    @@ -1683,7 +2046,7 @@ clients don't have a valid certificate. Notice that this directive can be used both in per-server and per-directory context. In per-server context it applies to the client authentication process used in the standard SSL handshake when a connection is established. In per-directory context it forces -a SSL renegotation with the reconfigured client verification depth after the +a SSL renegotiation with the reconfigured client verification depth after the HTTP request was read but before the HTTP response is sent.

    The depth actually is the maximum number of intermediate certificate issuers, @@ -1701,7 +2064,28 @@ SSLVerifyDepth 10

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_ssl.xml b/docs/manual/mod/mod_ssl.xml index e35b9a53833..d3f4d37051d 100644 --- a/docs/manual/mod/mod_ssl.xml +++ b/docs/manual/mod/mod_ssl.xml @@ -4,12 +4,12 @@ - + mod_ssl /mod/ .. diff --git a/docs/manual/mod/mod_status.html b/docs/manual/mod/mod_status.html index 64e6ac3d256..065e8e12285 100644 --- a/docs/manual/mod/mod_status.html +++ b/docs/manual/mod/mod_status.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_status.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_status.html.ja.euc-jp +URI: mod_status.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_status.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_status.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_status.html.en b/docs/manual/mod/mod_status.html.en index 2bf745f2978..26ce45a317e 100644 --- a/docs/manual/mod/mod_status.html.en +++ b/docs/manual/mod/mod_status.html.en @@ -1,35 +1,43 @@ - -mod_status - Apache HTTP Server +mod_status - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_status

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_status

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    - -
    Description:Provides information on server activity and performance
    Status:Base
    Module Identifier:status_module
    Source File:mod_status.c
    +Module Identifier:status_module +Source File:mod_status.c

    Summary

    The Status module allows a server administrator to find out @@ -65,26 +73,27 @@ performance

  • The current hosts and requests being processed (*)
  • -

    A compile-time option must be used to display the details - marked "(*)" as the instrumentation required for obtaining - these statistics does not exist within standard Apache.

    +

    The lines marked "(*)" are only available if + ExtendedStatus + is On.

    -
    top

    Enabling Status Support

    -

    To enable status reports only for browsers from the foo.com +

    To enable status reports only for browsers from the example.com domain add this code to your httpd.conf configuration file

    @@ -93,7 +102,7 @@ performance
    Order Deny,Allow
    Deny from all
    - Allow from .foo.com
    + Allow from .example.com
    </Location>

    @@ -150,13 +159,73 @@ later. The collection of extended status information can slow down the server.

    +
    +
    top
    +

    SeeRequestTail Directive

    + + + + + + + + +
    Description:Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    Syntax:SeeRequestTail On|Off
    Default:SeeRequestTail Off
    Context:server config
    Status:Base
    Module:mod_status
    Compatibility:Available in Apache 2.2.7 and later.
    +

    mod_status with ExtendedStatus On + displays the actual request being handled. + For historical purposes, only 63 characters of the request + are actually stored for display purposes. This directive + controls whether the 1st 63 characters are stored (the previous + behavior and the default) or if the last 63 characters are. This + is only applicable, of course, if the length of the request is + 64 characters or greater.

    + +

    If Apache is handling GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1 mod_status displays as follows: +

    + + + + + + + + + + +
    Off (default)GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples
    Onorage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1
    + +

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_status.html.ja.euc-jp b/docs/manual/mod/mod_status.html.ja.euc-jp deleted file mode 100644 index 819cf367796..00000000000 --- a/docs/manual/mod/mod_status.html.ja.euc-jp +++ /dev/null @@ -1,154 +0,0 @@ - - - -mod_status - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_status

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥µ¡¼¥Фγèư¾õ¶·¤ÈÀ­ǽ¤˴ؤ¹¤ë¾ðÊó¤òÄ󶡤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:status_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_status.c
    -

    ³µÍ×

    - -

    ¤³¤Î Status ¥⥸¥塼¥ë¤ˤè¤ꥵ¡¼¥дÉÍý¼Ԥϥµ¡¼¥Ф¬¤ɤΤ¯¤餤 - ¤ÎÀ­ǽ¤Çưº¤Ƥ¤¤뤫¤òÃΤ뤳¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£ - ¸½»þÅÀ¤ǤΥµ¡¼¥ФÎÅý·׾ðÊó¤òÆɤߤ䤹¤¤·Á¼°¤Ǹ½¤·¤¿ HTML ¥ڡ¼¥¸¤¬ - ɽ¼¨¤µ¤ì¤ޤ¹¡£ɬÍפǤ¢¤ì¤С¢¤³¤Υڡ¼¥¸¤ϼ«ưŪ¤˥ê¥եì¥å·¥夵¤»¤ë - ¤³¤Ȥâ¤Ǥ­¤ޤ¹ (¸ߴ¹À­¤Τ¢¤ë¥֥饦¥¶¤ò»ÈÍѤ·¤Ƥ¤¤ë¾ì¹ç)¡£ - Ê̤ˡ¢¸½»þÅÀ¤ǤΥµ¡¼¥ФξõÂ֤òñ½ã¤ʵ¡³£Æɤ߼è¤ê²Äǽ¤ʥꥹ¥ȤÇ - ¸½¤¹¥ڡ¼¥¸¤⤢¤ê¤ޤ¹¡£

    - -

    ɽ¼¨¤µ¤ì¤ë¾ðÊó¤Ï:

    - -
      -
    • ¥ꥯ¥¨¥¹¥Ȥ򰷤äƤ¤¤ë¥¥«¡¼¤οô
    • - -
    • ¥¢¥¤¥ɥë (ÌõÃí: ¥ꥯ¥¨¥¹¥Ȥ򰷤äƤ¤¤ʤ¤) ¥¥«¡¼¤οô
    • - -
    • ³ƥ¥«¡¼¤ξõÂ֡¢¥¥«¡¼¤¬°·¤ä¿¥ꥯ¥¨¥¹¥Ȥοô¡¢ - ¥¥«¡¼¤¬Á÷¤ä¿Áí¥Х¤¥ȿô (*)
    • - -
    • Áí¥¢¥¯¥»¥¹¿ô¤ÈÁí¥Х¤¥ȿô (*)
    • - -
    • ¥µ¡¼¥Ф¬µ¯ư¤⤷¤¯¤ϺƵ¯ư¤µ¤줿»þ¹ï¤Èưº¤Ƥ¤¤ë»þ´Ö
    • - -
    • ʿ¶ѤÎ 1 É䢤¿¤ê¤Υꥯ¥¨¥¹¥ȿô¡¢1 É䢤¿¤ê¤ÎÁ÷¤é¤줿¥Х¤¥ȿô¡¢ - ¥ꥯ¥¨¥¹¥Ȥ¢¤¿¤ê¤ΥХ¤¥ȿô (*)
    • - -
    • ³ƥ¥«¡¼¤È Apache Á´ÂΤǻÈÍѤµ¤ì¤Ƥ¤¤ë CPU ¤γä¹ç (*)
    • - -
    • ¸½»þÅÀ¤Υۥ¹¥ȤȽèÍý¤µ¤ì¤Ƥ¤¤ë¥ꥯ¥¨¥¹¥È (*)
    • -
    - -

    "(*)" ¤ÎÉդ¤¤Ƥ¤¤ë¾ðÊó¤òɽ¼¨¤¹¤뤿¤á¤ˤϥ³¥ó¥ѥ¤¥ë»þ¤Υª¥ץ·¥ç¥ó - ¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£¤³¤ì¤é¤ÎÅý·׾ðÊó¤òÆÀ¤뤿¤á¤ËɬÍפÊ - ¥³¡¼¥ɤÏɸ½à¤Î Apache ¤ˤϴޤޤì¤Ƥ¤¤ޤ»¤ó¡£

    -
    - -
    top
    -
    -

    Status ¤ò»ÈÍѲÄǽ¤ˤ¹¤ë

    - - -

    foo.com ¥ɥᥤ¥󤫤é¤Υ֥饦¥¶¤ΤߤËÂФ·¤Æ - ¥¹¥ơ¼¥¿¥¹¤ÎÊó¹ð¤ò»ÈÍѲÄǽ¤ˤ¹¤ë¤ˤÏ - °ʲ¼¤Υ³¡¼¥ɤò httpd.conf ÀßÄê¥ե¡¥¤¥ë¤ËÄɲä·¤ޤ¹

    -

    - <Location /server-status>
    - SetHandler server-status
    -
    - Order Deny,Allow
    - Deny from all
    - Allow from .foo.com
    - </Location> -

    - -

    ¤³¤ì¤ǡ¢¥µ¡¼¥ФÎÅý·׾ðÊó¤򥦥§¥֥֥饦¥¶¤ò»ȤäÆ - http://your.server.name/server-status ¤򥢥¯¥»¥¹¤¹¤뤳¤Ȥˤè¤ê - ÃΤ뤳¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£

    -
    top
    -
    -

    ¼«ư¹¹¿·

    - - -

    ¥֥饦¥¶¤¬¡֥ê¥ե쥷¥å¡׵¡ǽ¤򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ì¤С¢¥¹¥ơ¼¥¿¥¹¥ڡ¼¥¸¤ò - ¼«ưŪ¤˹¹¿·¤¹¤ë¤褦¤ˤǤ­¤ޤ¹¡£N ÉÃËè¤˹¹¿·¤µ¤»¤뤿¤á¤ˤÏ - http://your.server.name/server-status?refresh=N - ¤Ȥ¤¤¦¥ڡ¼¥¸¤򥢥¯¥»¥¹¤·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    top
    -
    -

    µ¡³£Æɤ߼è¤ê²Äǽ¤ʥ¹¥ơ¼¥¿¥¹¥ե¡¥¤¥ë

    - - -

    http://your.server.name/server-status?auto ¤ò - ¥¢¥¯¥»¥¹¤¹¤뤳¤Ȥˤè¤ꡢ¥¹¥ơ¼¥¿¥¹¥ե¡¥¤¥ë¤ε¡³£Æɤ߼è¤ê²Äǽ¤ʥС¼¥¸¥ç¥ó¤ò - ÆÀ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤³¤ì¤ϼ«ưŪ¤˼¹Ԥµ¤ì¤ë¤Ȥ­¤ËÊØÍø¤Ǥ¹¡£ - Apache ¤Î /support ¥ǥ£¥쥯¥ȥê¤ˤ¢¤ë - Perl ¥ץí¥°¥é¥à log_server_status ¤򸫤Ƥ¯¤À¤µ¤¤¡£

    - -
    - mod_status ¤¬¥µ¡¼¥ФËÁȤ߹þ¤ޤì¤Ƥ¤¤ë - ¾ì¹硢¥ϥó¥ɥé¤ε¡ǽ¤ϥǥ£¥쥯¥ȥêËè¤Υե¡¥¤¥ë - (¤¹¤ʤï¤Á¡¢.htaccess) ¤â´ޤह¤٤ƤΠ- ÀßÄê¥ե¡¥¤¥ë¤ǻÈÍѲÄǽ¤ˤʤ뤳¤ȤˤÏÃí°դ򤷤Ƥª¤¯ɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¥µ¥¤¥Ȥˤè¤äƤϥ»¥­¥å¥ê¥ƥ£¤˴ؤ¹¤ë˾¤ޤ·¤¯¤ʤ¤·ë²̤ò - ¤⤿¤餹¤³¤Ȥ¬¤¢¤뤫¤⤷¤ì¤ޤ»¤ó¡£ -
    - -
    -
    top
    -

    ExtendedStatus ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:³ƥꥯ¥¨¥¹¥ȤËÂФ·¤ƳÈĥ¥¹¥ơ¼¥¿¥¹¾ðÊó¤òÊݸ¤¹¤ë
    ¹½ʸ:ExtendedStatus On|Off
    ¥ǥե©¥ë¥È:ExtendedStatus Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_status
    ¸ߴ¹À­:ExtendedStatus ¤Ï Apache 1.3.2 °ʹߤǤΤ߻ÈÍѲÄǽ
    -

    ¤³¤ÎÀßÄê¤ϥµ¡¼¥ÐÁ´ÂΤËÂФ·¤ÆŬÍѤµ¤졢¥С¼¥Á¥ã¥ë¥ۥ¹¥ÈËè¤Ë - Êѹ¹¤¹¤뤳¤ȤϤǤ­¤ޤ»¤󡣳Èĥ¥¹¥ơ¼¥¿¥¹¾ðÊó¤μý½¸¤ϥµ¡¼¥ФÎ - ưºî¤òÃ٤¯¤¹¤뤳¤Ȥ¬¤¢¤ê¤ޤ¹¡£

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_status.html.ja.utf8 b/docs/manual/mod/mod_status.html.ja.utf8 new file mode 100644 index 00000000000..90e210e49cd --- /dev/null +++ b/docs/manual/mod/mod_status.html.ja.utf8 @@ -0,0 +1,225 @@ + + + + + +mod_status - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_status

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:サーバの活動状況と性能に関する情報を提供する
    ステータス:Base
    モジュール識別子:status_module
    ソースファイル:mod_status.c
    +

    概要

    + +

    この Status モジュールによりサーバ管理者はサーバがどのくらい + の性能で動作しているかを知ることができるようになります。 + 現時点でのサーバの統計情報を読みやすい形式で表した HTML ページが + 表示されます。必要であれば、このページは自動的にリフレッシュさせる + こともできます (互換性のあるブラウザを使用している場合)。 + 別に、現時点でのサーバの状態を単純な機械読み取り可能なリストで + 表すページもあります。

    + +

    表示される情報は:

    + +
      +
    • リクエストを扱っているワーカーの数
    • + +
    • アイドル (訳注: リクエストを扱っていない) ワーカーの数
    • + +
    • 各ワーカーの状態、ワーカーが扱ったリクエストの数、 + ワーカーが送った総バイト数 (*)
    • + +
    • 総アクセス数と総バイト数 (*)
    • + +
    • サーバが起動もしくは再起動された時刻と動作している時間
    • + +
    • 平均の 1 秒あたりのリクエスト数、1 秒あたりの送られたバイト数、 + リクエストあたりのバイト数 (*)
    • + +
    • 各ワーカーと Apache 全体で使用されている CPU の割合 (*)
    • + +
    • 現時点のホストと処理されているリクエスト (*)
    • +
    + +

    "(*)" の付いている情報を表示するには + ExtendedStatus + が On になっている必要があります。

    +
    + +
    top
    +
    +

    Status を使用可能にする

    + + +

    example.com ドメインからのブラウザのみに対して + ステータスの報告を使用可能にするには + 以下のコードを httpd.conf 設定ファイルに追加します

    +

    + <Location /server-status>
    + SetHandler server-status
    +
    + Order Deny,Allow
    + Deny from all
    + Allow from .example.com
    + </Location> +

    + +

    これで、サーバの統計情報をウェブブラウザを使って + http://your.server.name/server-status をアクセスすることにより + 知ることができるようになります。

    +
    top
    +
    +

    自動更新

    + + +

    ブラウザが「リフレッシュ」機能をサポートしていれば、ステータスページを + 自動的に更新するようにできます。N 秒毎に更新させるためには + http://your.server.name/server-status?refresh=N + というページをアクセスしてください。

    + +
    top
    +
    +

    機械読み取り可能なステータスファイル

    + + +

    http://your.server.name/server-status?auto を + アクセスすることにより、ステータスファイルの機械読み取り可能なバージョンを + 得ることができます。これは自動的に実行されるときに便利です。 + Apache の /support ディレクトリにある + Perl プログラム log_server_status を見てください。

    + +
    + mod_status がサーバに組み込まれている + 場合、ハンドラの機能はディレクトリ毎のファイル + (すなわち、.htaccess) も含むすべての + 設定ファイルで使用可能になることには注意をしておく必要があります。 + これは、サイトによってはセキュリティに関する望ましくない結果を + もたらすことがあるかもしれません。 +
    + +
    +
    top
    +

    ExtendedStatus ディレクティブ

    + + + + + + + + +
    説明:各リクエストに対して拡張ステータス情報を保存する
    構文:ExtendedStatus On|Off
    デフォルト:ExtendedStatus Off
    コンテキスト:サーバ設定ファイル
    ステータス:Base
    モジュール:mod_status
    互換性:ExtendedStatus は Apache 1.3.2 以降でのみ使用可能
    +

    この設定はサーバ全体に対して適用され、バーチャルホスト毎に + 変更することはできません。拡張ステータス情報の収集はサーバの + 動作を遅くすることがあります。

    + +
    +
    top
    +

    SeeRequestTail ディレクティブ

    + + + + + + + + +
    説明:リクエストの最初の 63 文字か最後の 63 文字 +のどちらを mod_status が表示するかを決める
    構文:SeeRequestTail On|Off
    デフォルト:SeeRequestTail Off
    コンテキスト:サーバ設定ファイル
    ステータス:Base
    モジュール:mod_status
    互換性:Apache 2.2.7 以降
    +

    ExtendedStatus On に設定すると mod_status + は処理中のリクエスト(訳注: の文字列)を表示します。 + 歴史的な理由で、リクエストのうちの63文字だけが表示用に記録されます。 + このディレクティブで、最初の63文字を記録する(従来からの動作、 + そして現在もデフォルト)か、最後の63文字を記録するかを決めます。 + もちろん、リクエストの長さが64文字以上のときに効果があります + (訳注: 63文字以下だと結果的に同じ動作)。

    + +

    Apache が GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1 というリクエストを扱っているとき、 mod_status は以下のように表示します: +

    + + + + + + + + + + +
    Off (デフォルト)GET /disk1/storage/apache/htdocs/images/imagestore1/food/fruits
    Onorage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1
    + + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_status.html.ko.euc-kr b/docs/manual/mod/mod_status.html.ko.euc-kr index 4c11d758db8..a7c87f9765f 100644 --- a/docs/manual/mod/mod_status.html.ko.euc-kr +++ b/docs/manual/mod/mod_status.html.ko.euc-kr @@ -1,30 +1,40 @@ - -mod_status - Apache HTTP Server +mod_status - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_status

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_status

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -62,16 +72,17 @@

    ǥÁØ ¾ÆÆÄġ¿¡´Â "(*)"·Î ǥ½ÃÇÑ Åë°踦 ¾òÀ» ¼ö ¾ø´Ù. ÀÌ Á¤º¸¸¦ º¸·Á¸é ÄÄÆÄÀϽà ¿ɼÇÀ» »ç¿ëÇؾß ÇѴÙ.

    -
    top

    Status »ç¿ëÇϱâ

    @@ -137,12 +148,49 @@ ¼ö ¾ø´Ù. Àڼ¼ÇÑ »óÅ Á¤º¸¸¦ ¸ðÀ¸¸é ¼­¹ö°¡ ´À·ÁÁú ¼ö ÀִÙ.

    +
    top
    +
    ¼³¸í:¼­¹ö Ȱµ¿°ú ¼º´ɿ¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇѴÙ
    »óÅÂ:Base
    ¸ðµâ¸í:status_module
    + + + + + + + +
    ¼³¸í:Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    ¹®¹ý:SeeRequestTail On|Off
    ±⺻°ª:SeeRequestTail Off
    »ç¿ëÀå¼Ò:Áּ­¹ö¼³Á¤
    »óÅÂ:Base
    ¸ðµâ:mod_status
    Áö¿ø:Available in Apache 2.2.7 and later.

    The documentation for this directive has + not been translated yet. Please have a look at the English + version.

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_status.html.tr.utf8 b/docs/manual/mod/mod_status.html.tr.utf8 new file mode 100644 index 00000000000..8d3e1d74a15 --- /dev/null +++ b/docs/manual/mod/mod_status.html.tr.utf8 @@ -0,0 +1,225 @@ + + + + + +mod_status - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_status

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + + + +
    Açıklama:Sunucu etkinliği ve başarımı hakkında bilgi sağlar.
    Durum:Temel
    Modül Betimleyici:status_module
    Kaynak Dosyası:mod_status.c
    +

    Özet

    + +

    mod_status modülü, sunucu yöneticisinin, HTTP sunucusunun + ne kadar başarılı olduğu hakkında bilgi edinmesini sağlar. Bilgiler, + kolayca okunabilen bir HTML sayfası olarak sunulur ve o anki sunucu + istatistiklerinden oluşur. Gerekirse sayfa kendiliğinden tazelenebilir + (uyumlu bir tarayıcı gerekir). Diğer sayfa o anki sunucu durumunu makine + tarafından okunabilen biçimde listeler.

    + +

    Sunulan bilgiler şunlardır:

    + +
      +
    • İstekleri sunan çocuk süreç sayısı
    • + +
    • Boştaki çocuk süreçlerin sayısı
    • + +
    • Her çocuk sürecin durumu, çocuk sürecin işleme tabi tuttuğu istek + sayısı ve sunduğu bayt sayısı (*)
    • + +
    • Toplam erişim sayısı ve sunulan toplam bayt sayısı (*)
    • + +
    • Sunucunun kaç kere başlatıldığı/yeniden başlatıldığı ve ne kadar + zamandır çalışmakta olduğu
    • + +
    • Saniyedeki ortalama istek sayısı, saniyedeki bayt sayısı ve istek + başına ortalama bayt sayısı (*)
    • + +
    • Apache tarafınan toplamda ve her çocuk süreç tarafından ayrı ayrı + kullanılan o anki işlemci zamanı yüzdesi (*)
    • + +
    • O an işlem görmekte olan konakların ve isteklerin sayısı (*)
    • +
    + +

    "(*)" imli bilgiler sadece ExtendedStatus yönergesinin değeri On olduğu + takdirde mevcuttur.

    +
    + +
    top
    +
    +

    Durum Bilgisi Desteğinin Etkinleştirilmesi

    + + +

    Durum raporları, sadece mesela.dom alanından ve sadece tarayıcılar için + etkin kılınmak istenirse httpd.conf dosyasına şu satırlar + eklenebilir:

    + +

    + <Location /server-status>
    + + SetHandler server-status
    +
    + Order Deny,Allow
    + Deny from all
    + Allow from .mesela.dom
    +
    + </Location> +

    + +

    Sunucu istatistiklerine tarayıcınızla erişmek isterseniz, + http://sunucunuzun.ismi.buraya/server-status + şeklinde bir istek yapabilirsiniz.

    +
    top
    +
    +

    Sayfanın Tazelenmesi

    + + +

    Tarayıcınız “tazeleme” yeteneğine sahipse durum sayfası düzenli + aralıklarla güncellenecektir. Sayfanın N saniyede bir güncellenmesini + isterseniz isteği şöyle yapabilirsiniz:
    + http://sunucunuzun.ismi.buraya/server-status?refresh=N

    + +
    top
    +
    +

    Makine Tarafından Okunabilen Durum Dosyası

    + + +

    Durum dosyasının makine tarafından okunabilen sürümüne + http://sunucunuzun.ismi.buraya/server-status?auto + şeklinde bir istek yaparak erişebilirsiniz. Bu, kendiliğinden çalıştığı + takdirde yararlıdır; Apache dağıtımının /support dizininde + bulunan log_server_status isimli perl betiğine bakınız.

    + +

    Güvenlik

    + mod_status sunucu içinde derlendiği takdirde + istatistikleri raporlama yeteneği dizin içi yapılandırma dosyaları + (.htaccess gibi) dahil tüm yapılandırma dosyaları + için kullanılabilir olacaktır. Bu durum güvenlik ile ilgili olarak + siteniz için içinden çıkılması güç durumlara yol açabilir (çapanoğlu + durumu).
    + +
    +
    top
    +

    ExtendedStatus Yönergesi

    + + + + + + + + +
    Açıklama:Her istekte ek durum bilgisinin toplanmasını sağlar. +
    Sözdizimi:ExtendedStatus On|Off
    Öntanımlı:ExtendedStatus Off
    Bağlam:sunucu geneli
    Durum:Temel
    Modül:mod_status
    Uyumluluk:Apache 1.3.2 ve sonrasında mevcuttur.
    +

    Bu ayarlama sunucunun tamamını etkiler ve sanal konaklar için ayrı ayrı + etkin kılınamaz veya iptal edilemez. Ek durum bilgisinin toplanması + sunucuyu yavaşlatabilir.

    + +
    +
    top
    +

    SeeRequestTail Yönergesi

    + + + + + + + + +
    Açıklama:İsteğin kendisi 63 karakterden uzun olduğunda, isteğin ilk 63 +karakterinin mi yoksa son 63 karakterinin mi gösterileceğini belirler. +
    Sözdizimi:SeeRequestTail On|Off
    Öntanımlı:SeeRequestTail Off
    Bağlam:sunucu geneli
    Durum:Temel
    Modül:mod_status
    Uyumluluk:Apache 2.2.7 ve sonrasında mevcuttur.
    +

    mod_status, ExtendedStatus On olduğunda + isteğin kendisini de gösterir. Tarihsel nedenlerle, göstermek için + isteğin sadece 63 karakteri saklanır. Bu yönerge ilk 63 karakterin mi + yoksa son 63 karakterin mi saklanacağını belirtmek için kullanılır. Bu, + elbette, istek 64 karakterlik veya daha uzunsa uygulanır.

    + +

    Apache şöyle bir istek alsaydı:
    GET  + /disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg  + HTTP/1.1
    mod_status bu isteği şöyle gösterirdi: +

    + + + + + + + + + + +
    Off (öntanımlı)GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples
    Onorage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1
    + + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_status.xml b/docs/manual/mod/mod_status.xml index f1bcb330f04..719d4b45489 100644 --- a/docs/manual/mod/mod_status.xml +++ b/docs/manual/mod/mod_status.xml @@ -4,12 +4,12 @@ + mod_status -$B%5!<%P$N3hF0>u67$H@-G=$K4X$9$k>pJs$rDs6!$9$k(B +サーバの活動状況と性能に関する情報を提供する Base mod_status.c status_module -

    $B$3$N(B Status $B%b%8%e!<%k$K$h$j%5!<%P4IM}pJs$rFI$_$d$9$$7A<0$G8=$7$?(B HTML $B%Z!<%8$,(B - $BI=<($5$l$^$9!#I,MW$G$"$l$P!"$3$N%Z!<%8$O<+F0E*$K%j%U%l%C%7%e$5$;$k(B - $B$3$H$b$G$-$^$9(B ($B8_49@-$N$"$k%V%i%&%6$r;HMQ$7$F$$$k>l9g(B)$B!#(B - $BJL$K!"8=;~E@$G$N%5!<%P$N>uBV$rC1=c$J5!3#FI$_ +

    この Status モジュールによりサーバ管理者はサーバがどのくらい + の性能で動作しているかを知ることができるようになります。 + 現時点でのサーバの統計情報を読みやすい形式で表した HTML ページが + 表示されます。必要であれば、このページは自動的にリフレッシュさせる + こともできます (互換性のあるブラウザを使用している場合)。 + 別に、現時点でのサーバの状態を単純な機械読み取り可能なリストで + 表すページもあります。

    -

    $BI=<($5$l$k>pJs$O(B:

    +

    表示される情報は:

      -
    • $B%j%/%(%9%H$r07$C$F$$$k%o!<%+!<$N?t(B
    • +
    • リクエストを扱っているワーカーの数
    • -
    • $B%"%$%I%k(B ($BLuCm(B: $B%j%/%(%9%H$r07$C$F$$$J$$(B) $B%o!<%+!<$N?t(B
    • +
    • アイドル リクエストを扱っていない ワーカーの数
    • -
    • $B3F%o!<%+!<$N>uBV!"%o!<%+!<$,07$C$?%j%/%(%9%H$N?t!"(B - $B%o!<%+!<$,Aw$C$?Am%P%$%H?t(B (*)
    • +
    • 各ワーカーの状態、ワーカーが扱ったリクエストの数、 + ワーカーが送った総バイト数 (*)
    • -
    • $BAm%"%/%;%9?t$HAm%P%$%H?t(B (*)
    • +
    • 総アクセス数と総バイト数 (*)
    • -
    • $B%5!<%P$,5/F0$b$7$/$O:F5/F0$5$l$?;~9o$HF0:n$7$F$$$k;~4V(B
    • +
    • サーバが起動もしくは再起動された時刻と動作している時間
    • -
    • $BJ?6Q$N(B 1 $BIC$"$?$j$N%j%/%(%9%H?t!"(B1 $BIC$"$?$j$NAw$i$l$?%P%$%H?t!"(B - $B%j%/%(%9%H$"$?$j$N%P%$%H?t(B (*)
    • +
    • 平均の 1 秒あたりのリクエスト数、1 秒あたりの送られたバイト数、 + リクエストあたりのバイト数 (*)
    • -
    • $B3F%o!<%+!<$H(B Apache $BA4BN$G;HMQ$5$l$F$$$k(B CPU $B$N3d9g(B (*)
    • +
    • 各ワーカーと Apache 全体で使用されている CPU の割合 (*)
    • -
    • $B8=;~E@$N%[%9%H$H=hM}$5$l$F$$$k%j%/%(%9%H(B (*)
    • +
    • 現時点のホストと処理されているリクエスト (*)
    -

    "(*)" $B$NIU$$$F$$$k>pJs$rI=<($9$k$?$a$K$O%3%s%Q%$%k;~$N%*%W%7%g%s(B - $B$r;HMQ$9$kI,MW$,$"$j$^$9!#$3$l$i$NE}7W>pJs$rF@$k$?$a$KI,MW$J(B - $B%3!<%I$OI8=`$N(B Apache $B$K$O4^$^$l$F$$$^$;$s!#(B

    +

    "(*)" の付いている情報を表示するには + ExtendedStatus + が On になっている必要があります。

    - Status $B$r;HMQ2DG=$K$9$k(B + Status を使用可能にする -

    foo.com $B%I%a%$%s$+$i$N%V%i%&%6$N$_$KBP$7$F(B - $B%9%F!<%?%9$NJs9p$r;HMQ2DG=$K$9$k$K$O(B - $B0J2<$N%3!<%I$r(B httpd.conf $B@_Dj%U%!%$%k$KDI2C$7$^$9(B

    +

    example.com ドメインからのブラウザのみに対して + ステータスの報告を使用可能にするには + 以下のコードを httpd.conf 設定ファイルに追加します

    <Location /server-status>
    SetHandler server-status

    Order Deny,Allow
    Deny from all
    - Allow from .foo.com
    + Allow from .example.com
    </Location>
    -

    $B$3$l$G!"%5!<%P$NE}7W>pJs$r%&%'%V%V%i%&%6$r;H$C$F(B - http://your.server.name/server-status $B$r%"%/%;%9$9$k$3$H$K$h$j(B - $BCN$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B

    +

    これで、サーバの統計情報をウェブブラウザを使って + http://your.server.name/server-status をアクセスすることにより + 知ることができるようになります。

    - $B<+F099?7(B -

    $B%V%i%&%6$,!V%j%U%l%7%e!W5!G=$r%5%]!<%H$7$F$$$l$P!"%9%F!<%?%9%Z!<%8$r(B - $B<+F0E*$K99?7$9$k$h$&$K$G$-$^$9!#(BN $BICKh$K99?7$5$;$k$?$a$K$O(B + 自動更新 +

    ブラウザが「リフレッシュ」機能をサポートしていれば、ステータスページを + 自動的に更新するようにできます。N 秒毎に更新させるためには http://your.server.name/server-status?refresh=N - $B$H$$$&%Z!<%8$r%"%/%;%9$7$F$/$@$5$$!#(B

    + というページをアクセスしてください。

    - $B5!3#FI$_<h$j2DG=$J%9%F!<%?%9%U%!%$%k(B -

    http://your.server.name/server-status?auto $B$r(B - $B%"%/%;%9$9$k$3$H$K$h$j!"%9%F!<%?%9%U%!%$%k$N5!3#FI$_/support $B%G%#%l%/%H%j$K$"$k(B - Perl $B%W%m%0%i%`(B log_server_status $B$r8+$F$/$@$5$$!#(B

    + 機械読み取り可能なステータスファイル +

    http://your.server.name/server-status?auto を + アクセスすることにより、ステータスファイルの機械読み取り可能なバージョンを + 得ることができます。これは自動的に実行されるときに便利です。 + Apache の /support ディレクトリにある + Perl プログラム log_server_status を見てください。

    - mod_status $B$,%5!<%P$KAH$_9~$^$l$F$$$k(B - $B>l9g!"%O%s%I%i$N5!G=$O%G%#%l%/%H%j(B$BKh(B$B$N%U%!%$%k(B - ($B$9$J$o$A(B$B!"(B.htaccess) $B$b4^$`(B$B$9$Y$F(B$B$N(B - $B@_Dj%U%!%$%k$G;HMQ2DG=$K$J$k$3$H$K$OCm0U$r$7$F$*$/I,MW$,$"$j$^$9!#(B - $B$3$l$O!"%5%$%H$K$h$C$F$O%;%-%e%j%F%#$K4X$9$kK>$^$7$/$J$$7k2L$r(B - $B$b$?$i$9$3$H$,$"$k$+$b$7$l$^$;$s!#(B + mod_status がサーバに組み込まれている + 場合、ハンドラの機能はディレクトリ毎のファイル + (すなわち、.htaccess) も含むすべての + 設定ファイルで使用可能になることには注意をしておく必要があります。 + これは、サイトによってはセキュリティに関する望ましくない結果を + もたらすことがあるかもしれません。
    @@ -118,18 +118,57 @@ ExtendedStatus -$B3F%j%/%(%9%H$KBP$7$F3HD%%9%F!<%?%9>pJs$rJ]B8$9$k(B +各リクエストに対して拡張ステータス情報を保存する ExtendedStatus On|Off ExtendedStatus Off server config -ExtendedStatus $B$O(B Apache 1.3.2 $B0J9_$G$N$_;HMQ2DG=(B +ExtendedStatus は Apache 1.3.2 以降でのみ使用可能 -

    $B$3$N@_Dj$O%5!<%PA4BN$KBP$7$FE,MQ$5$l!"%P!<%A%c%k%[%9%HKh$K(B - $BJQ99$9$k$3$H$O$G$-$^$;$s!#3HD%%9%F!<%?%9>pJs$N<}=8$O%5!<%P$N(B - $BF0:n$rCY$/$9$k$3$H$,$"$j$^$9!#(B

    +

    この設定はサーバ全体に対して適用され、バーチャルホスト毎に + 変更することはできません。拡張ステータス情報の収集はサーバの + 動作を遅くすることがあります。

    + + +SeeRequestTail +リクエストの最初の 63 文字か最後の 63 文字 +のどちらを mod_status が表示するかを決める +SeeRequestTail On|Off +SeeRequestTail Off +server config +Apache 2.2.7 以降 + + +

    ExtendedStatus On に設定すると mod_status + は処理中のリクエストの文字列を表示します。 + 歴史的な理由で、リクエストのうちの63文字だけが表示用に記録されます。 + このディレクティブで、最初の63文字を記録する(従来からの動作、 + そして現在もデフォルト)か、最後の63文字を記録するかを決めます。 + もちろん、リクエストの長さが64文字以上のときに効果があります + 63文字以下だと結果的に同じ動作。

    + +

    Apache が GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1 というリクエストを扱っているとき、 mod_status は以下のように表示します: +

    + + + + + + + + + + +
    Off (デフォルト)GET /disk1/storage/apache/htdocs/images/imagestore1/food/fruits
    Onorage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1
    + +
    + +
    + diff --git a/docs/manual/mod/mod_status.xml.ko b/docs/manual/mod/mod_status.xml.ko index 08ba7e2cb17..6a92d792c54 100644 --- a/docs/manual/mod/mod_status.xml.ko +++ b/docs/manual/mod/mod_status.xml.ko @@ -1,15 +1,15 @@ - + - + mod_status /mod/ .. en - ja - ko + ja + ko + tr diff --git a/docs/manual/mod/mod_status.xml.tr b/docs/manual/mod/mod_status.xml.tr new file mode 100644 index 00000000000..88d88557d6f --- /dev/null +++ b/docs/manual/mod/mod_status.xml.tr @@ -0,0 +1,181 @@ + + + + + + + + + + +mod_status +Sunucu etkinliği ve başarımı hakkında bilgi sağlar. +Base +mod_status.c +status_module + + + +

    mod_status modülü, sunucu yöneticisinin, HTTP sunucusunun + ne kadar başarılı olduğu hakkında bilgi edinmesini sağlar. Bilgiler, + kolayca okunabilen bir HTML sayfası olarak sunulur ve o anki sunucu + istatistiklerinden oluşur. Gerekirse sayfa kendiliğinden tazelenebilir + (uyumlu bir tarayıcı gerekir). Diğer sayfa o anki sunucu durumunu makine + tarafından okunabilen biçimde listeler.

    + +

    Sunulan bilgiler şunlardır:

    + +
      +
    • İstekleri sunan çocuk süreç sayısı
    • + +
    • Boştaki çocuk süreçlerin sayısı
    • + +
    • Her çocuk sürecin durumu, çocuk sürecin işleme tabi tuttuğu istek + sayısı ve sunduğu bayt sayısı (*)
    • + +
    • Toplam erişim sayısı ve sunulan toplam bayt sayısı (*)
    • + +
    • Sunucunun kaç kere başlatıldığı/yeniden başlatıldığı ve ne kadar + zamandır çalışmakta olduğu
    • + +
    • Saniyedeki ortalama istek sayısı, saniyedeki bayt sayısı ve istek + başına ortalama bayt sayısı (*)
    • + +
    • Apache tarafınan toplamda ve her çocuk süreç tarafından ayrı ayrı + kullanılan o anki işlemci zamanı yüzdesi (*)
    • + +
    • O an işlem görmekte olan konakların ve isteklerin sayısı (*)
    • +
    + +

    "(*)" imli bilgiler sadece ExtendedStatus yönergesinin değeri On olduğu + takdirde mevcuttur.

    +
    + +
    + Durum Bilgisi Desteğinin Etkinleştirilmesi + +

    Durum raporları, sadece mesela.dom alanından ve sadece tarayıcılar için + etkin kılınmak istenirse httpd.conf dosyasına şu satırlar + eklenebilir:

    + + + <Location /server-status>
    + + SetHandler server-status
    +
    + Order Deny,Allow
    + Deny from all
    + Allow from .mesela.dom
    +
    + </Location> +
    + +

    Sunucu istatistiklerine tarayıcınızla erişmek isterseniz, + http://sunucunuzun.ismi.buraya/server-status + şeklinde bir istek yapabilirsiniz.

    +
    + +
    + + Sayfanın Tazelenmesi +

    Tarayıcınız “tazeleme” yeteneğine sahipse durum sayfası düzenli + aralıklarla güncellenecektir. Sayfanın N saniyede bir güncellenmesini + isterseniz isteği şöyle yapabilirsiniz:
    + http://sunucunuzun.ismi.buraya/server-status?refresh=N

    + +
    + +
    + + Makine Tarafından Okunabilen Durum Dosyası +

    Durum dosyasının makine tarafından okunabilen sürümüne + http://sunucunuzun.ismi.buraya/server-status?auto + şeklinde bir istek yaparak erişebilirsiniz. Bu, kendiliğinden çalıştığı + takdirde yararlıdır; Apache dağıtımının /support dizininde + bulunan log_server_status isimli perl betiğine bakınız.

    + + Güvenlik + mod_status sunucu içinde derlendiği takdirde + istatistikleri raporlama yeteneği dizin içi yapılandırma dosyaları + (.htaccess gibi) dahil tüm yapılandırma dosyaları + için kullanılabilir olacaktır. Bu durum güvenlik ile ilgili olarak + siteniz için içinden çıkılması güç durumlara yol açabilir (çapanoğlu + durumu). + +
    + + + +ExtendedStatus +Her istekte ek durum bilgisinin toplanmasını sağlar. + +ExtendedStatus On|Off +ExtendedStatus Off +server config +Apache 1.3.2 ve sonrasında mevcuttur. + +

    Bu ayarlama sunucunun tamamını etkiler ve sanal konaklar için ayrı ayrı + etkin kılınamaz veya iptal edilemez. Ek durum bilgisinin toplanması + sunucuyu yavaşlatabilir.

    +
    + +
    + + +SeeRequestTail +İsteğin kendisi 63 karakterden uzun olduğunda, isteğin ilk 63 +karakterinin mi yoksa son 63 karakterinin mi gösterileceğini belirler. + +SeeRequestTail On|Off +SeeRequestTail Off +server config +Apache 2.2.7 ve sonrasında mevcuttur. + + +

    mod_status, ExtendedStatus On olduğunda + isteğin kendisini de gösterir. Tarihsel nedenlerle, göstermek için + isteğin sadece 63 karakteri saklanır. Bu yönerge ilk 63 karakterin mi + yoksa son 63 karakterin mi saklanacağını belirtmek için kullanılır. Bu, + elbette, istek 64 karakterlik veya daha uzunsa uygulanır.

    + +

    Apache şöyle bir istek alsaydı:
    GET  + /disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg  + HTTP/1.1
    mod_status bu isteği şöyle gösterirdi: +

    + + + + + + + + + + +
    Off (öntanımlı)GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples
    Onorage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1
    + +
    + +
    + +
    + diff --git a/docs/manual/mod/mod_substitute.html b/docs/manual/mod/mod_substitute.html new file mode 100644 index 00000000000..4d0f620a72a --- /dev/null +++ b/docs/manual/mod/mod_substitute.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_substitute.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_substitute.html.en b/docs/manual/mod/mod_substitute.html.en new file mode 100644 index 00000000000..7bc724122b0 --- /dev/null +++ b/docs/manual/mod/mod_substitute.html.en @@ -0,0 +1,157 @@ + + + + + +mod_substitute - Apache HTTP Server Version 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_substitute

    +
    +

    Available Languages:  en 

    +
    + + + + +
    Description:Perform search and replace operations on response bodies
    Status:Extension
    Module Identifier:substitute_module
    Source File:mod_substitute.c
    Compatibility:Available in Apache 2.2.7 and later
    +

    Summary

    + +

    mod_substitute provides a mechanism to perform + both regular expression and fixed string substitutions on + response bodies.

    +
    + + +
    top
    +

    Substitute Directive

    + + + + + + + +
    Description:Pattern to filter the response content
    Syntax:Substitute s/pattern/substitution/[infq]
    Context:directory, .htaccess
    Override:FileInfo
    Status:Extension
    Module:mod_substitute
    +

    The Substitute directive specifies a + search and replace pattern to apply to the response body.

    + +

    The meaning of the pattern can be modified by using any + combination of these flags:

    + +
    +
    i
    +
    Perform a case-insensitive match.
    +
    n
    +
    By default the pattern is treated as a regular expression. + Using the n flag forces the pattern to be treated + as a fixed string.
    +
    f
    +
    The f flag causes mod_substitute to flatten the + result of a substitution allowing for later substitutions to + take place on the boundary of this one. This is the default.
    +
    q
    +
    The q flag causes mod_substitute to not + flatten the buckets after each substitution. This can + result in much faster response and a decrease in memory + utilization, but should only be used if there is no possibility + that the result of one substitution will ever match a pattern + or regex of a subsequent one.
    +
    + +

    Example

    + <Location /> + + AddOutputFilterByType SUBSTITUTE text/html
    + Substitute s/foo/bar/ni
    +
    + </Location> +

    + +

    If either the pattern or the substitution contain a slash + character then an alternative delimiter should be used:

    + +

    Example of using an alternate delimiter

    + <Location /> + + AddOutputFilterByType SUBSTITUTE text/html
    + Substitute "s|<BR */?>|<br />|i" +
    + </Location> +

    + +
    +
    top
    +

    SubstituteInheritBefore Directive

    + + + + + + + + + +
    Description:Change the merge order of inherited patterns
    Syntax:SubstituteInheritBefore on|off
    Default:SubstituteInheritBefore off
    Context:directory, .htaccess
    Override:FileInfo
    Status:Extension
    Module:mod_substitute
    Compatibility:Available in httpd 2.2.32 and later
    +

    Whether to apply the inherited Substitute + patterns first (on), or after the ones of the current + context (off). + SubstituteInheritBefore is itself inherited, + hence contexts that inherit it (those that don't specify their own + SubstituteInheritBefore value) will apply the + closest defined merge order.

    + +
    +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_substitute.xml b/docs/manual/mod/mod_substitute.xml new file mode 100644 index 00000000000..5818a8b0365 --- /dev/null +++ b/docs/manual/mod/mod_substitute.xml @@ -0,0 +1,117 @@ + + + + + + + + + +mod_substitute +Perform search and replace operations on response bodies +Extension +mod_substitute.c +substitute_module +Available in Apache 2.2.7 and later + + +

    mod_substitute provides a mechanism to perform + both regular expression and fixed string substitutions on + response bodies.

    +
    + + +Substitute +Pattern to filter the response content +Substitute s/pattern/substitution/[infq] +directory +.htaccess +FileInfo + + +

    The Substitute directive specifies a + search and replace pattern to apply to the response body.

    + +

    The meaning of the pattern can be modified by using any + combination of these flags:

    + +
    +
    i
    +
    Perform a case-insensitive match.
    +
    n
    +
    By default the pattern is treated as a regular expression. + Using the n flag forces the pattern to be treated + as a fixed string.
    +
    f
    +
    The f flag causes mod_substitute to flatten the + result of a substitution allowing for later substitutions to + take place on the boundary of this one. This is the default.
    +
    q
    +
    The q flag causes mod_substitute to not + flatten the buckets after each substitution. This can + result in much faster response and a decrease in memory + utilization, but should only be used if there is no possibility + that the result of one substitution will ever match a pattern + or regex of a subsequent one.
    +
    + + Example + <Location /> + + AddOutputFilterByType SUBSTITUTE text/html
    + Substitute s/foo/bar/ni
    +
    + </Location> +
    + +

    If either the pattern or the substitution contain a slash + character then an alternative delimiter should be used:

    + + Example of using an alternate delimiter + <Location /> + + AddOutputFilterByType SUBSTITUTE text/html
    + Substitute "s|<BR */?>|<br />|i" +
    + </Location> +
    +
    +
    + + +SubstituteInheritBefore +Change the merge order of inherited patterns +SubstituteInheritBefore on|off +SubstituteInheritBefore off +directory +.htaccess +FileInfo +Available in httpd 2.2.32 and later + + +

    Whether to apply the inherited Substitute + patterns first (on), or after the ones of the current + context (off). + SubstituteInheritBefore is itself inherited, + hence contexts that inherit it (those that don't specify their own + SubstituteInheritBefore value) will apply the + closest defined merge order.

    +
    +
    + +
    diff --git a/docs/manual/mod/mod_substitute.xml.meta b/docs/manual/mod/mod_substitute.xml.meta new file mode 100644 index 00000000000..f9dbd2933f9 --- /dev/null +++ b/docs/manual/mod/mod_substitute.xml.meta @@ -0,0 +1,12 @@ + + + + + mod_substitute + /mod/ + .. + + + en + + diff --git a/docs/manual/mod/mod_suexec.html b/docs/manual/mod/mod_suexec.html index 4be81b750b7..7bf30c42b72 100644 --- a/docs/manual/mod/mod_suexec.html +++ b/docs/manual/mod/mod_suexec.html @@ -1,11 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_suexec.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_suexec.html.ja.euc-jp +URI: mod_suexec.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_suexec.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_suexec.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_suexec.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_suexec.html.en b/docs/manual/mod/mod_suexec.html.en index 0c009008fc1..785a68c8cc9 100644 --- a/docs/manual/mod/mod_suexec.html.en +++ b/docs/manual/mod/mod_suexec.html.en @@ -1,35 +1,44 @@ - -mod_suexec - Apache HTTP Server +mod_suexec - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_suexec

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_suexec

    Available Languages:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    - - + +
    Description:Allows CGI scripts to run as a specified user and Group
    Status:Extension
    Module Identifier:suexec_module
    Source File:mod_suexec.c
    Module Identifier:suexec_module
    Source File:mod_suexec.c
    Compatibility:Available in Apache 2.0 and later

    Summary

    @@ -43,12 +52,12 @@ and Group

    See also

    +
    top

    SuexecUserGroup Directive

    - + @@ -58,9 +67,9 @@ later.
    Description:User and group permissions for CGI programs
    Description:User and group for CGI programs to run as
    Syntax:SuexecUserGroup User Group
    Context:server config, virtual host
    Status:Extension

    The SuexecUserGroup directive allows you to specify a user and group for CGI programs to run as. Non-CGI - requests are still processes with the user specified in the User - directive. This directive replaces the Apache 1.3 configuration of - using the User and Group directives inside of VirtualHosts.

    + requests are still processed with the user specified in the User directive. This directive replaces + the Apache 1.3 configuration of using the User and + Group directives inside of VirtualHosts.

    Example

    @@ -68,13 +77,40 @@ later.

    +

    See also

    +

    Available Languages:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_suexec.html.fr b/docs/manual/mod/mod_suexec.html.fr new file mode 100644 index 00000000000..36c58eec7a7 --- /dev/null +++ b/docs/manual/mod/mod_suexec.html.fr @@ -0,0 +1,124 @@ + + + + + +mod_suexec - Serveur Apache HTTP Version 2.2 + + + + + + + + +
    <-
    + +
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Module Apache mod_suexec

    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + + + + +
    Description:Permet l'exécution des scripts CGI sous l'identité des utilisateur et +groupe spécifiés
    Statut:Extension
    Identificateur de Module:suexec_module
    Fichier Source:mod_suexec.c
    Compatibilité:Disponible depuis la version 2.0 d'Apache
    +

    Sommaire

    + +

    Ce module permet, en s'interfaçant avec le binaire + suexec, l'exécution des scripts CGI avec les + identifiants utilisateur et groupe spécifiés.

    +
    +

    Directives

    + +

    Voir aussi

    +
    + +
    top
    +

    Directive SuexecUserGroup

    + + + + + + + +
    Description:L'utilisateur et le groupe sous lesquels les programmes CGI +doivent s'exécuter
    Syntaxe:SuexecUserGroup Utilisateur Groupe
    Contexte:configuration du serveur, serveur virtuel
    Statut:Extension
    Module:mod_suexec
    Compatibilité:Disponible depuis la version 2.0 d'Apache
    +

    La directive SuexecUserGroup permet de + spécifier l'utilisateur et le groupe sous les identifiants desquels les programmes + CGI doivent s'exécuter. Les requêtes non CGI seront toujours + traitées avec l'utilisateur spécifié par la directive User. Cette directive remplace + l'utilisation des directives User et Group + à l'intérieur d'un serveur virtuel dans la configuration d'Apache + 1.3.

    + +

    Exemple

    + + SuexecUserGroup nobody nogroup +

    + + +

    Voir aussi

    + +
    +
    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_suexec.html.ja.euc-jp b/docs/manual/mod/mod_suexec.html.ja.euc-jp deleted file mode 100644 index 0ca50b58c1d..00000000000 --- a/docs/manual/mod/mod_suexec.html.ja.euc-jp +++ /dev/null @@ -1,79 +0,0 @@ - - - -mod_suexec - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_suexec

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - - -
    ÀâÌÀ:»ØÄꤵ¤줿¥桼¥¶¤ȥ°¥롼¥פÇ CGI ¥¹¥¯¥ê¥ץȤò¼¹Ԥ¹¤ë
    ¥¹¥ơ¼¥¿¥¹:³Èĥ
    ¥⥸¥塼¥뼱Ê̻Ò:suexec_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_suexec.c
    ¸ߴ¹À­:Apache 2.0 °ʹߤǻÈÍѲÄǽ
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤È suexec ¥µ¥ݡ¼¥ȥץí¥°¥é¥à - ¤ˤè¤ꡢCGI ¥¹¥¯¥ê¥ץȤ¬»ØÄꤵ¤줿¥桼¥¶¤ȥ°¥롼¥פÇ - ¼¹Ԥµ¤ì¤ë¤褦¤ˤǤ­¤ޤ¹¡£

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -

    »²¾È

    -
    - -
    top
    -

    SuexecUserGroup ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:CGI ¥ץí¥°¥é¥à¤Υ桼¥¶¥ѡ¼¥ߥå·¥ç¥󡢥°¥롼¥ץѡ¼¥ߥå·¥ç¥ó
    ¹½ʸ:SuexecUserGroup User Group
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:³Èĥ
    ¥⥸¥塼¥ë:mod_suexec
    ¸ߴ¹À­:SuexecUserGroup ¤Ï 2.0 °ʹߤǤΤ߻ÈÍѲÄǽ¡£
    -

    SuexecUserGroup ¥ǥ£¥쥯¥ƥ£¥֤Ï CGI ¥ץí¥°¥é¥à - ¤¬¼¹Ԥµ¤ì¤ë¥桼¥¶¤ȥ°¥롼¥פò»ØÄê¤Ǥ­¤ë¤褦¤ˤ·¤ޤ¹¡£CGI °ʳ°¤Î - ¥ꥯ¥¨¥¹¥ȤÏ User ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄꤵ¤줿¥桼¥¶¤ΤޤޤǽèÍý¤µ¤ì¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï Apache 1.3 ¤ˤª¤±¤ë VirtualHosts ¤ÎÃæ¤Ç - User ¥ǥ£¥쥯¥ƥ£¥֤È Group ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¦ÍÑˡ¤ÎÂå¤ï¤ê¤ˤʤê¤ޤ¹¡£

    - -

    Îã

    - - SuexecUserGroup nobody nogroup -

    - - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_suexec.html.ja.utf8 b/docs/manual/mod/mod_suexec.html.ja.utf8 new file mode 100644 index 00000000000..f37907122b9 --- /dev/null +++ b/docs/manual/mod/mod_suexec.html.ja.utf8 @@ -0,0 +1,115 @@ + + + + + +mod_suexec - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_suexec

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + + +
    説明:指定されたユーザとグループで CGI スクリプトを実行する
    ステータス:Extension
    モジュール識別子:suexec_module
    ソースファイル:mod_suexec.c
    互換性:Apache 2.0 以降で使用可能
    +

    概要

    + +

    このモジュールと suexec サポートプログラム + により、CGI スクリプトが指定されたユーザとグループで + 実行されるようにできます。

    +
    +

    ディレクティブ

    + +

    参照

    +
    + +
    top
    +

    SuexecUserGroup ディレクティブ

    + + + + + + + +
    説明:CGI プログラムのユーザパーミッション、グループパーミッション
    構文:SuexecUserGroup User Group
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Extension
    モジュール:mod_suexec
    互換性:SuexecUserGroup は 2.0 以降でのみ使用可能。
    +

    SuexecUserGroup ディレクティブは CGI プログラム + が実行されるユーザとグループを指定できるようにします。CGI 以外の + リクエストは User ディレクティブで指定されたユーザのままで処理されます。 + このディレクティブは Apache 1.3 における VirtualHosts の中で + User ディレクティブと Group ディレクティブを使う用法の代わりになります。

    + +

    例

    + + SuexecUserGroup nobody nogroup +

    + + +
    +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_suexec.html.ko.euc-kr b/docs/manual/mod/mod_suexec.html.ko.euc-kr index b16a6a7ce2e..20ae9b9b5a8 100644 --- a/docs/manual/mod/mod_suexec.html.ko.euc-kr +++ b/docs/manual/mod/mod_suexec.html.ko.euc-kr @@ -1,29 +1,38 @@ - -mod_suexec - Apache HTTP Server +mod_suexec - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_suexec

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_suexec

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -45,7 +54,7 @@

    Âü°í

    +
    top

    SuexecUserGroup Áö½þî

    @@ -73,9 +82,32 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_suexec.html.tr.utf8 b/docs/manual/mod/mod_suexec.html.tr.utf8 new file mode 100644 index 00000000000..1d05b67bbf3 --- /dev/null +++ b/docs/manual/mod/mod_suexec.html.tr.utf8 @@ -0,0 +1,118 @@ + + + + + +mod_suexec - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_suexec

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + + + + +
    Açıklama:CGI betiklerinin belli bir kullanıcı ve grubun aidiyetinde +çalışmasını mümkün kılar.
    Durum:Eklenti
    Modül Betimleyici:suexec_module
    Kaynak Dosyası:mod_suexec.c
    Uyumluluk:Apache 2.0 ve sonrasında mevcuttur.
    +

    Özet

    + +

    Bu modül suexec programı ile birlikte CGI + betiklerinin belli bir kullanıcı ve grubun aidiyetinde çalışmasını + mümkün kılar.

    +
    +

    Yönergeler

    + +

    Ayrıca bakınız:

    +
    + +
    top
    +

    SuexecUserGroup Yönergesi

    + + + + + + + +
    Açıklama:CGI betiklerini çalıştıracak kullanıcı ve grup belirtilir. +
    Sözdizimi:SuexecUserGroup Kullanıcı Grup
    Bağlam:sunucu geneli, sanal konak
    Durum:Eklenti
    Modül:mod_suexec
    Uyumluluk:Apache 2.0 ve sonrasında mevcuttur.
    +

    SuexecUserGroup yönergesi CGI programlarını + çalıştıracak kullanıcı ve grubu belirtmeye yarar. CGI harici istekler + hala User yönergesinde + belirtilen kullanıcı tarafından yerine getirilir. Bu yönerge, Apache + 1.3 yapılandırmasında sanal konak bölümlerindeki User ve + Group yönergelerinin yerini almak üzere tasarlanmıştır.

    + +

    Örnek

    + + SuexecUserGroup nobody nogroup +

    + + +

    Ayrıca bakınız:

    + +
    +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_suexec.xml b/docs/manual/mod/mod_suexec.xml index 6a911e145b7..f101b2af9d4 100644 --- a/docs/manual/mod/mod_suexec.xml +++ b/docs/manual/mod/mod_suexec.xml @@ -4,12 +4,12 @@ + + + + + + + +mod_suexec +Permet l'exécution des scripts CGI sous l'identité des utilisateur et +groupe spécifiés +Extension +mod_suexec.c +suexec_module +Disponible depuis la version 2.0 d'Apache + + + +

    Ce module permet, en s'interfaçant avec le binaire + suexec, l'exécution des scripts CGI avec les + identifiants utilisateur et groupe spécifiés.

    +
    + +Support de SuEXEC + + + +SuexecUserGroup +L'utilisateur et le groupe sous lesquels les programmes CGI +doivent s'exécuter +SuexecUserGroup Utilisateur Groupe +server config +virtual host +Disponible depuis la version 2.0 d'Apache + + +

    La directive SuexecUserGroup permet de + spécifier l'utilisateur et le groupe sous les identifiants desquels les programmes + CGI doivent s'exécuter. Les requêtes non CGI seront toujours + traitées avec l'utilisateur spécifié par la directive User. Cette directive remplace + l'utilisation des directives User et Group + à l'intérieur d'un serveur virtuel dans la configuration d'Apache + 1.3.

    + + + Exemple + SuexecUserGroup nobody nogroup + + +
    +Suexec +
    +
    + diff --git a/docs/manual/mod/mod_suexec.xml.ja b/docs/manual/mod/mod_suexec.xml.ja index 6d69bb76d30..13b70ea816b 100644 --- a/docs/manual/mod/mod_suexec.xml.ja +++ b/docs/manual/mod/mod_suexec.xml.ja @@ -1,15 +1,15 @@ - + - + + - + mod_suexec /mod/ .. en - ja + fr + ja ko + tr diff --git a/docs/manual/mod/mod_suexec.xml.tr b/docs/manual/mod/mod_suexec.xml.tr new file mode 100644 index 00000000000..a9d1baeb5da --- /dev/null +++ b/docs/manual/mod/mod_suexec.xml.tr @@ -0,0 +1,73 @@ + + + + + + + + + + +mod_suexec +CGI betiklerinin belli bir kullanıcı ve grubun aidiyetinde +çalışmasını mümkün kılar. +Extension +mod_suexec.c +suexec_module +Apache 2.0 ve sonrasında mevcuttur. + + + +

    Bu modül suexec programı ile birlikte CGI + betiklerinin belli bir kullanıcı ve grubun aidiyetinde çalışmasını + mümkün kılar.

    +
    + +SuEXEC Desteği + + + +SuexecUserGroup +CGI betiklerini çalıştıracak kullanıcı ve grup belirtilir. + +SuexecUserGroup Kullanıcı Grup +server config +virtual host +Apache 2.0 ve sonrasında mevcuttur. + + +

    SuexecUserGroup yönergesi CGI programlarını + çalıştıracak kullanıcı ve grubu belirtmeye yarar. CGI harici istekler + hala User yönergesinde + belirtilen kullanıcı tarafından yerine getirilir. Bu yönerge, Apache + 1.3 yapılandırmasında sanal konak bölümlerindeki User ve + Group yönergelerinin yerini almak üzere tasarlanmıştır.

    + + + Örnek + SuexecUserGroup nobody nogroup + + +
    +Suexec +
    +
    + diff --git a/docs/manual/mod/mod_unique_id.html b/docs/manual/mod/mod_unique_id.html index 1dae85cfd3c..b8be353acc7 100644 --- a/docs/manual/mod/mod_unique_id.html +++ b/docs/manual/mod/mod_unique_id.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_unique_id.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_unique_id.html.ja.euc-jp +URI: mod_unique_id.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_unique_id.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_unique_id.html.en b/docs/manual/mod/mod_unique_id.html.en index 8c8da6d930d..a6d4184abdb 100644 --- a/docs/manual/mod/mod_unique_id.html.en +++ b/docs/manual/mod/mod_unique_id.html.en @@ -1,25 +1,32 @@ - -mod_unique_id - Apache HTTP Server +mod_unique_id - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_unique_id

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_unique_id

    Available Languages:  en  |  ja  | @@ -28,8 +35,8 @@ - -
    Description:Provides an environment variable with a unique identifier for each request
    Status:Extension
    Module Identifier:unique_id_module
    Source File:mod_unique_id.c
    +Module Identifier:unique_id_module +Source File:mod_unique_id.c

    Summary

    @@ -42,13 +49,13 @@ identifier for each request useful for various reasons which are beyond the scope of this document.

    -

    Directives

    -

    This module provides no - directives.

    -

    Topics

    +

    Topics

    +

    Directives

    +

    This module provides no + directives.

    +
    top

    Theory

    @@ -92,7 +99,10 @@ identifier for each request

    Given those assumptions, at a single point in time we can identify any httpd process on any machine in the cluster from all other httpd processes. The machine's IP address and the pid - of the httpd process are sufficient to do this. So in order to + of the httpd process are sufficient to do this. A httpd process + can handle multiple requests simultaneously if you use a + multi-threaded MPM. In order to identify threads, we use a thread + index Apache httpd uses internally. So in order to generate unique identifiers for requests we need only distinguish between different points in time.

    @@ -162,11 +172,13 @@ identifier for each request even still, if you're running NTP then your UTC time will be correct very shortly after reboot.

    +

    The UNIQUE_ID environment variable is - constructed by encoding the 112-bit (32-bit IP address, 32 bit - pid, 32 bit time stamp, 16 bit counter) quadruple using the + constructed by encoding the 144-bit (32-bit IP address, 32 bit + pid, 32 bit time stamp, 16 bit counter, 32 bit thread index) + quadruple using the alphabet [A-Za-z0-9@-] in a manner similar to MIME - base64 encoding, producing 19 characters. The MIME base64 + base64 encoding, producing 24 characters. The MIME base64 alphabet is actually [A-Za-z0-9+/] however + and / need to be specially encoded in URLs, which makes them less desirable. All values are @@ -187,13 +199,12 @@ identifier for each request and can otherwise use the same alphabet and bit length. Since the time stamps are essentially an increasing sequence, it's sufficient to have a flag second in which all machines - in the cluster stop serving and request, and stop using the old + in the cluster stop serving any request, and stop using the old encoding format. Afterwards they can resume requests and begin issuing the new encodings.

    This we believe is a relatively portable solution to this - problem. It can be extended to multithreaded systems like - Windows NT, and can grow with future needs. The identifiers + problem. The identifiers generated have essentially an infinite life-time because future identifiers can be made longer as required. Essentially no communication is required between machines in the cluster (only @@ -210,7 +221,28 @@ identifier for each request

    Available Languages:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_unique_id.html.ja.euc-jp b/docs/manual/mod/mod_unique_id.html.ja.euc-jp deleted file mode 100644 index c14b4e44caf..00000000000 --- a/docs/manual/mod/mod_unique_id.html.ja.euc-jp +++ /dev/null @@ -1,214 +0,0 @@ - - - -mod_unique_id - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_unique_id

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¤½¤줾¤ì¤Υꥯ¥¨¥¹¥ȤËÂФ¹¤ë°ì°դʼ±Ê̻ҤÎÆþ¤ä¿´Ķ­Êѿô¤ò -Ä󶡤¹¤ë
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:unique_id_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_unique_id.c
    -

    ³µÍ×

    - - -

    ¤³¤Υ⥸¥塼¥ë¤ÏÈó¾ï¤ËÀ©¸¤µ¤줿¾ò·ﲼ¤ǡ¢ - ¤½¤줾¤ì¤Υꥯ¥¨¥¹¥Ȥˡ֤¹¤٤ơפΥꥯ¥¨¥¹¥ȤËÂФ·¤Æ - °ì°դ˷è¤ޤ뤳¤Ȥ¬Êݾڤµ¤ì¤Ƥ¤¤ëËâˡ¤Υȡ¼¥¯¥ó¤òÄ󶡤·¤ޤ¹¡£ - ¤³¤ΰì°դʼ±Ê̻Ҥϡ¢ŬÀڤËÀßÄꤵ¤줿¥¯¥饹¥¿¤ǤÏʣ¿ô¤Î - ¥ޥ·¥ó¤δ֤Ǥµ¤¨¤â°ì°դˤʤê¤ޤ¹¡£¤½¤줾¤ì¤Υꥯ¥¨¥¹¥ȤËÂФ·¤ƴĶ­Êѿô - UNIQUE_ID ¤˼±Ê̻Ҥ¬ÀßÄꤵ¤ì¤ޤ¹¡£ - °ì°դʼ±Ê̻Ҥ¬ÊØÍø¤ÊÍýͳ¤Ϥ¤¤í¤¤¤í¤¢¤ê¤ޤ¹¤¬¡¢ - ¤³¤Υɥ­¥å¥á¥ó¥ȤÎÌÜŪ¤«¤é¤ϳ°¤ì¤뤿¤ᡢ¤³¤³¤ǤÏÀâÌÀ¤·¤ޤ»¤ó¡£

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    -

    ¤³¤Υ⥸¥塼¥ë¤˥ǥ£¥쥯¥ƥ£¥֤Ϥ¢¤ê¤ޤ»¤ó¡£

    -

    ¥ȥԥå¯

    -
    -
    top
    -
    -

    ÍýÏÀ

    - - -

    ¤ޤº¤Ϥ¸¤á¤ˡ¢Apache ¥µ¡¼¥Ф¬ Unix - ¥ޥ·¥ó¤ǤɤΤ褦¤Ëưºî¤򤹤뤫¤ò´Êñ¤ËÀâÌÀ¤·¤ޤ¹¡£ - ¤³¤ε¡ǽ¤ϸ½»þÅÀ¤ǤÏ Windows NT ¤Ǥϥµ¥ݡ¼¥Ȥµ¤ì¤Ƥ¤¤ޤ»¤ó¡£ - Unix ¥ޥ·¥ó¤ǤÏ Apache ¤Ϥ¤¤¯¤Ĥ«¤λҥץí¥»¥¹¤òºîÀ®¤·¡¢ - ¤½¤λҥץí¥»¥¹¤¬°ì¤Ĥº¤ĥꥯ¥¨¥¹¥Ȥò½èÍý¤·¤ޤ¹¡£¤½¤줾¤ì¤λҥץí¥»¥¹¤ϡ¢ - À¸¸´ü´ÖÃæ¤Ëʣ¿ô¤Υꥯ¥¨¥¹¥Ȥ򰷤¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤εÄÏÀ¤Ǥϻҥץí¥»¥¹´֤ǤϰìÀڥǡ¼¥¿¤ò¶¦ͭ¤·¤ʤ¤¤³¤Ȥˤ·¤ޤ¹¡£ - °ʸ塢¤³¤λҥץí¥»¥¹¤Τ³¤Ȥò httpd ¥ץí¥»¥¹ ¤ȸƤӤޤ¹¡£

    - -

    ¤¢¤ʤ¿¤Υ¦¥§¥֥µ¥¤¥ȤˤϤ¢¤ʤ¿¤¬´ÉÍý¤¹¤뤤¤¯¤Ĥ«¤Υޥ·¥󤬤¢¤ë¤Ȥ·¤ޤ¹¡£ - ¤½¤ì¤é¤ò¤ޤȤá¤ƥ¯¥饹¥¿¤ȸƤ֤³¤Ȥˤ·¤ޤ¹¡£¤½¤줾¤ì¤Υޥ·¥ó¤Ïʣ¿ô¤Î - Apache ¤ò¼¹Ԥ¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤餹¤٤Ƥò¤ޤȤ᤿¤â¤Τ¬¡ֱ§Ãè¡פǤ¢¤ë¤ȹͤ¨¤é¤ì¤ޤ¹¡£ - ¤¤¤¯¤Ĥ«¤β¾Äê¤β¼¤ǡ¢¥¯¥饹¥¿¤Υޥ·¥ó´֤¬¤¿¤¯¤µ¤óÄ̿®¤򤹤뤳¤Ȥʤ¯¡¢ - ¤³¤α§Ãè¤ÎÃæ¤Ǥ½¤줾¤ì¤Υꥯ¥¨¥¹¥Ȥ˰ì°դʼ±Ê̻ҤòÀ¸À®¤Ǥ­¤뤳¤Ȥ򼨤·¤ޤ¹¡£ -

    - -

    ¥¯¥饹¥¿¤ˤ¢¤ë¥ޥ·¥ó¤ϰʲ¼¤ÎÍ׵á¤򸫤¿¤µ¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - (¥ޥ·¥󤬰ì¤ĤÀ¤±¤À¤Ȥ·¤Ƥ⡢NTP ¤ǻþ·פò¹ç¤碌¤ëÊý¤¬Îɤ¤¤Ǥ¹¡£)

    - -
      -
    • NTP ¤ä¾¤Υͥåȥ¥¯¾å¤ǻþ´֤ò¹ç¤碌¤ë¥ץí¥ȥ³¥ë¤ˤè¤äÆ - ³ƥޥ·¥ó¤λþ´֤ÎƱ´ü¤¬¼è¤é¤ì¤Ƥ¤¤뤳¤ȡ£
    • - -
    • ¥⥸¥塼¥뤬¥ۥ¹¥È̾¤ò°ú¤¤¤ư㤦 IP - ¥¢¥ɥ쥹¤ò¼õ¤±¼è¤뤳¤Ȥ¬¤Ǥ­¤ë¤褦¤ˡ¢ - ¥¯¥饹¥¿¤Τ½¤줾¤ì¤Υޥ·¥ó¤Υۥ¹¥È̾¤¬°㤦¤³¤ȡ£
    • -
    - -

    ¥ª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤ˤª¤¤¤Ƥϡ¢pid (¥ץí¥»¥¹ ID) ¤¬ - 32 ¥ӥåȤÎÈϰÏÆâ¤Ǥ¢¤뤳¤Ȥò²¾Äꤷ¤ޤ¹¡£¥ª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤Î - pid ¤¬ 32 ¥ӥåȤòͤ¨¤ë¾ì¹ç¤ϡ¢´Êñ¤ʽ¤Àµ¤ǤϤ¢¤ê¤ޤ¹¤¬¡¢ - ¥³¡¼¥ɤòÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ¤³¤ì¤é¤β¾Ä꤬Ëþ¤¿¤µ¤ì¤Ƥ¤¤ë¤ȡ¢¤¢¤ë»þÅÀ¤ˤª¤¤¤ơ¢ - ¥¯¥饹¥¿Æâ¤ΤɤΥޥ·¥ó¤ΤɤÎ httpd - ¥ץí¥»¥¹¤Ǥ⡢°ì°դËƱÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤³¤ì¤ϥޥ·¥ó¤Î IP - ¥¢¥ɥ쥹¤È httpd ¥ץí¥»¥¹¤Î pid ¤ǽ½ʬ¤˹Ԥʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢¥ꥯ¥¨¥¹¥Ȥ˰ì°դʼ±Ê̻ҤòÀ¸À®¤¹¤뤿¤á¤ˤϡ¢ - »þ¹ï¤ò¶èÊ̤¹¤ëɬÍפ¬¤¢¤ë¤À¤±¤Ǥ¹¡£

    - -

    »þ¹ï¤ò¶èÊ̤¹¤뤿¤á¤ˡ¢Unix ¤Υ¿¥¤¥ॹ¥¿¥ó¥× (UTC ¤Î 1970 ǯ - 1 ·î 1 Æü¤«¤é¤ÎÉÿô) ¤ȡ¢16 ¥ӥåȤΥ«¥¦¥󥿤ò»Ȥ¤¤ޤ¹¡£ - ¥¿¥¤¥ॹ¥¿¥ó¥פÎγÅ٤ϰìÉäǤ¹¤Τǡ¢°ìÉô֤Î 65536 - ¤ޤǤÎÃͤòɽ¸½¤¹¤뤿¤á¤˥«¥¦¥󥿤ò»ÈÍѤ·¤ޤ¹¡£»ͤĤÎÃÍ - ( ip_addr, pid, time_stamp, counter ) ¤dzÆ httpd - ¥ץí¥»¥¹¤ǰìÉäδ֤Ë 65536 ¥ꥯ¥¨¥¹¥Ȥò¿ô¤¨¤¢¤²¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - »þ´֤¬·ФĤÈ pid ¤¬ºÆÍøÍѤµ¤ì¤ë¤Ȥ¤¤¦ÌäÂ꤬¤¢¤ê¤ޤ¹¤¬¡¢ - ¤³¤ÎÌäÂê¤ò²ò·褹¤뤿¤á¤˥«¥¦¥󥿤¬»ÈÍѤµ¤ì¤ޤ¹¡£

    - -

    httpd ¤λҥץí¥»¥¹¤¬ºîÀ®¤µ¤ì¤ë¤ȡ¢¥«¥¦¥󥿤Ï - (¤½¤λþÅÀ¤Υޥ¤¥¯¥íÉà ¡à 10) modulo 65536 ¤ǽé´ü²½¤µ¤ì¤ޤ¹ - (¤³¤μ°¤Ϥ¤¤¯¤Ĥ«¤Υ·¥¹¥ƥà¤ˤ¢¤롢¥ޥ¤¥¯¥íÉäÎ - ¥¿¥¤¥ޤβ¼°̥ӥåȤ¬°ۤʤë¤Ȥ¤¤¦ÌäÂê¤ò²ò·褹¤뤿¤á¤ËÁª¤Фì¤ޤ·¤¿)¡£ - °ì°դʼ±Ê̻Ҥ¬À¸À®¤µ¤줿¤Ȥ­¡¢»ÈÍѤµ¤ì¤륿¥¤¥ॹ¥¿¥ó¥פÏ - ¥¦¥§¥֥µ¡¼¥Ф˥ꥯ¥¨¥¹¥Ȥ¬ÅþÃ夷¤¿»þ¹ï¤ˤʤê¤ޤ¹¡£ - ¥«¥¦¥󥿤ϼ±Ê̻Ҥ¬À¸À®¤µ¤ì¤뤿¤ӤËÁý²ä·¤ޤ¹ - (¤¢¤դ줿¾ì¹ç¤Ï 0 ¤ËÌá¤ê¤ޤ¹)¡£

    - -

    ¥«¡¼¥ͥë¤ϥץí¥»¥¹¤ò¥ե©¡¼¥¯¤¹¤ë¤ȡ¢¤½¤줾¤ì¤Υץí¥»¥¹¤Τ¿¤á¤Ë - pid ¤òÀ¸À®¤·¤ޤ¹¡£pid ¤Ϸ«¤êÊ֤µ¤ì¤뤳¤Ȥ¬µö²Ĥµ¤ì¤Ƥ¤¤ޤ¹ - (pid ¤ÎÃͤÏ¿¤¯¤Î Unix ¤ǤÏ 16 ¥ӥåȤǤ¹¤¬¡¢¿·¤·¤¤¥·¥¹¥ƥà¤ǤÏ - 32 ¥ӥåȤ˳Èĥ¤µ¤ì¤Ƥ¤¤ޤ¹)¡£ - ¤Ǥ¹¤«¤顢¤¢¤ëÄøÅ٤λþ´֤¬·в᤹¤ë¤ÈƱ¤¸ pid ¤¬ºƤӻÈÍѤµ¤ì¤ޤ¹¡£ - ¤·¤«¤·¡¢°ìÉÃÆâ¤˺ƻÈÍѤµ¤ì¤ʤ±¤ì¤С¢ - »ͤĤÎÃͤΰì°ÕÀ­¤ÏÊݤ¿¤ì¤ޤ¹¡£¤Ĥޤꡢ²桹¤ϥ·¥¹¥ƥब°ìÉôÖ - ¤Ë 65536 ¸ĤΥץí¥»¥¹¤òµ¯ư¤·¤ʤ¤¤Ȳ¾Äꤷ¤Ƥ¤¤ޤ¹ (¤¤¤¯¤Ĥ«¤Î Unix - ¤ǤÏ 32768 ¥ץí¥»¥¹¤Ǥ¹¤¬¡¢¤½¤ì¤Ǥ¹¤é¤ۤȤó¤ɤ¢¤êÆÀ¤ʤ¤¤Ǥ·¤礦)¡£

    - -

    ²¿¤餫¤ÎÍýͳ¤ǡ¢Ʊ¤¸»þ¹郎·«¤êÊ֤µ¤줿¤Ȥ·¤ޤ·¤礦¡£ - ¤Ĥޤꡢ¥·¥¹¥ƥà¤λþ·פ¬¶¸¤äƤ¤¤ơ¢¤⤦°ìÅٲáµî¤λþ¹ï¤ˤʤäƤ·¤ޤä¿ - (¤⤷¤¯¤Ͽʤߤ¹¤®¤Ƥ¤¤¿¤Ȥ­¤ˡ¢ - Àµ¤·¤¤»þ¹ï¤ËÌᤷ¤¿¤¿¤á¤˺ƤӾ­Íè¤λþ¹ï¤ˤʤäƤ·¤ޤä¿) ¤Ȥ·¤ޤ¹¡£ - ¤³¤ξì¹硢pid ¤ȥ¿¥¤¥ॹ¥¿¥ó¥פ¬ºƻÈÍѤµ¤ì¤뤳¤Ȥ¬´Êñ¤˼¨¤µ¤ì¤ޤ¹¡£ - ¥«¥¦¥󥿽é´ü²½ÍѤδؿô¤ϡ¢¤³¤ÎÌäÂê¤βóÈò¤ò¼ê½õ¤±¤·¤褦¤ÈÁªÂ򤵤ì¤Ƥ¤¤ޤ¹¡£ - ËÜÅö¤ϥ«¥¦¥󥿤νé´ü²½¤򤹤뤿¤á¤˥é¥ó¥À¥à¤ʿô»ú¤ò»Ȥ¤¤¿¤¤¤ΤǤ¹¤¬¡¢ - ¤ۤȤó¤ɤΥ·¥¹¥ƥà¤ǤϴÊñ¤˻ÈÍѤǤ­¤ë¿ô¤Ï̵¤¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤ - (¤¹¤ʤï¤Á¡¢rand ()¤ϻȤ¨¤ޤ»¤ó¡£rand () ¤ˤÏ seed - ¤òͿ¤¨¤ëɬÍפ¬¤¢¤ꡢseed ¤ˤϻþ¹ï¤ò»Ȥ¨¤ޤ»¤󡣰ìÉÃñ°̤Ǥϡ¢ - ¤½¤λþ¹ï¤Ϥ¹¤Ǥ˷«¤êÊ֤µ¤ì¤Ƥ¤¤뤫¤é¤Ǥ¹)¡£ - ¤³¤ì¤ϡ¢´°àú¤ÊÂкö¤ǤϤ¢¤ê¤ޤ»¤ó¡£

    - -

    ¤³¤ÎÂкö¤ϤɤΤ¯¤餤¸ú²̤¬¤¢¤ë¤Ǥ·¤礦¤«? - ¤³¤³¤Ǥϡ¢¥ޥ·¥󷲤ÎÃæ¤ΰì¤ĤϺÇÂç¤ǰìÉäË 500 - ¥ꥯ¥¨¥¹¥Ȥ򰷤¦¤Ȳ¾Äꤷ¤ޤ¹ (¤³¤ì¤ò½񤤤Ƥ¤¤ë»þÅÀ¤ǤÏÂÅÅö¤ʾ帤Ǥ¹¡£ - Ä̾亮¥¹¥ƥब¤¹¤뤳¤ȤÏÀÅŪ¤ʥե¡¥¤¥ë¤ò¼è¤ê¤À¤¹¤À¤±¤ǤϤ¢¤ê¤ޤ»¤󤫤é)¡£ - ¤½¤ì¤ò¹Ԥʤ¦¤¿¤á¤ˡ¢¤½¤Υޥ·¥ó¤ÏʹԤ·¤ÆÍè¤륯¥饤¥¢¥ó¥Ȥοô¤Ë - ±þ¤¸¤¿¿ô¤λҥץí¥»¥¹¤òÍ׵ᤷ¤ޤ¹¡£ - ¤·¤«¤·¤ʤ¬¤顢Èá´ÑŪ¤˹ͤ¨¤ơ¢°ì¤Ĥλҥץí¥»¥¹¤¬°ìÉäË 500 - ¥ꥯ¥¨¥¹¥Ȥ򰷤¨¤ë¤Ȥ·¤ޤ¹¡£¤½¤¦¤¹¤ë¤ȡ¢(°ìÉäÎÀºÅ٤ˤª¤¤¤Æ) - »þ¹郎Ʊ¤¸»þ¤򷫤êÊ֤¹¤ȡ¢¤³¤λҥץí¥»¥¹¤¬¥«¥¦¥󥿤ÎÃͤòºƤӻȤ¤¡¢ - °ì°ÕÀ­¤¬²õ¤ì¤ë²ÄǽÀ­¤¬ 1.5% ¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤ÏÈó¾ï¤ËÈá´ÑŪ¤ÊÎã¤ǡ¢¼ÂÀ¤³¦¤ÎÃͤǤϡ¢¤ۤȤó¤ɵ¯¤³¤ꤽ¤¦¤ˤ¢¤ê¤ޤ»¤ó¡£ - ¤½¤ì¤Ǥ⤳¤줬µ¯¤³¤ë²ÄǽÀ­¤Τ¢¤ë¤褦¤ʥ·¥¹¥ƥà¤ʤ顢 - (¥ץí¥°¥é¥ॳ¡¼¥ɤòÊԽ¸¤·¤Æ) - ¥«¥¦¥󥿤ò 32 ¥ӥåȤˤ¹¤ë¤Τ¬Îɤ¤¤Ǥ·¤礦¡£ -

    - -

    ¥µ¥ޡ¼¥¿¥¤¥à¤ˤè¤ê»þ·פ¬¡ÖÌᤵ¤ì¤ë¡פ³¤Ȥ򵤤ˤ·¤Ƥ¤¤ë¿ͤ¬ - ¤¤¤뤫¤⤷¤ì¤ޤ»¤󡣤³¤³¤ǻÈÍѤµ¤ì¤ë»þ´֤Ï UTC ¤Ǥ¢¤ꡢ - ¤½¤ì¤ϡ־ï¤ˡ׿ʤà¤ΤǤ³¤³¤ǤÏÌäÂê¤ˤʤê¤ޤ»¤ó¡£x86 ¾å¤Î Unix - ¤Ϥ³¤ξò·ï¤òËþ¤¿¤¹¤¿¤á¤ËŬÀڤÊÀßÄ꤬ɬÍפ«¤⤷¤ì¤ʤ¤¤³¤ȤË - Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£¥ޥ¶¡¼¥ܡ¼¥ɤλþ·פÏ UTC ¤ˤʤäƤ¤¤ơ¢ - ¾¤λþ´֤Ϥ½¤³¤«¤éŬÀڤËÊäÀµ¤µ¤ì¤뤳¤Ȥò²¾Äê¤Ǥ­¤ë¤褦¤Ë - ÀßÄꤵ¤ì¤ʤ±¤ì¤Фʤê¤ޤ»¤󡣤½¤Τ褦¤ʾì¹ç¤Ǥµ¤¨¡¢NTP - ¤ò»ȤäƤ¤¤ë¤ʤé¤Хê¥֡¼¥ȸå¤ˤ¹¤°Àµ¤·¤¤ UTC ¤λþ´֤ˤʤë¤Ǥ·¤礦¡£

    - -

    UNIQUE_ID ´Ķ­Êѿô¤Ï 112 ¥ӥåÈ (32 ¥ӥåÈ IP - ¥¢¥ɥ쥹¡¢32 ¥ӥåÈ pid, 32 ¥ӥåȥ¿¥¤¥ॹ¥¿¥ó¥ס¢16 - ¥ӥåȥ«¥¦¥󥿤λͤĤÎÁÈ) ¤򥢥ë¥ե¡¥٥åÈ [A-Za-z0-9@-] - ¤òÍѤ¤¤Æ MIME ¤Î base64 Éä¹沽¤ÈƱÍͤÎÊýˡ¤ˤè¤êÉä¹沽¤·¡¢19 - ¤Îʸ»ú¤òÀ¸À®¤¹¤뤳¤Ȥˤè¤êºîÀ®¤µ¤ì¤ޤ¹¡£MIME ¤Î base64 - ¤Υ¢¥ë¥ե¡¥٥åȤϼºݤÏ [A-Za-z0-9+/] ¤Ǥ¹¤¬¡¢ - + ¤È / ¤ȤÏ URL - ¤ǤÏÆÃÊ̤ÊÉä¹沽¤¬ɬÍפʤΤǡ¢¤¢¤ޤê˾¤ޤ·¤¯¤¢¤ê¤ޤ»¤ó¡£ - Á´¤ƤÎÃͤϥͥåȥ¥¯¥Х¤¥ȥª¡¼¥À¤ÇÉä¹沽¤µ¤ì¤ޤ¹¤Τǡ¢ - É乿¤ϰã¤ä¿¥Х¤¥ȥª¡¼¥À¤Υ¢¡¼¥­¥ƥ¯¥Á¥ã´֤ÇÈæ³ӲÄǽ¤Ǥ¹¡£ - ¼ºݤÎÉä¹沽¤νçÈ֤Ï: ¥¿¥¤¥ॹ¥¿¥ó¥ס¢IP ¥¢¥ɥ쥹¡¢pid, - ¥«¥¦¥󥿤Ǥ¹¡£¤³¤νç¤ˤÏÌÜŪ¤¬¤¢¤ê¤ޤ¹¤¬¡¢ - ¥¢¥ץꥱ¡¼¥·¥ç¥ó¤ÏÉ乿¤ò²òÀϤ¹¤ë¤٤­¤ǤϤʤ¤¤³¤Ȥò¶¯Ĵ¤·¤Ƥª¤­¤ޤ¹¡£ - ¥¢¥ץꥱ¡¼¥·¥ç¥ó¤ÏÉä¹沽¤µ¤줿 UNIQUE_ID - Á´ÂΤòƩ²áŪ¤ʥȡ¼¥¯¥ó¤Ȥ·¤ư·¤¦¤٤­¤Ǥ¹¡£ - UNIQUE_ID ¤Ï¾¤Î UNIQUE_ID - ¤ȤÎÅù²ÁÀ­¤òĴ¤٤뤿¤á¤À¤±¤ˤΤ߻ÈÍѤǤ­¤ޤ¹¡£

    - -

    ¤³¤νçÈ֤Ͼ­Í衢´û¸¤Î UNIQUE_ID - ¤Υǡ¼¥¿¥١¼¥¹¤Ȥξׯͤò¿´Çۤ¹¤뤳¤Ȥʤ¯É乿¤òÊѹ¹¤¹¤뤳¤Ȥ¬ - ²Äǽ¤ˤʤë¤褦¤ËÁªÂ򤷤Ƥ¤¤ޤ¹¡£ - ¿·¤·¤¤É乿¤ϥ¿¥¤¥ॹ¥¿¥ó¥פòºǽé¤ÎÍ×ÁǤȤ·¤ƻĤ¹¤Τ¬˾¤ޤ·¤¯¡¢ - ¤½¤ì°ʳ°¤ÏƱ¤¸¥¢¥ë¥ե¡¥٥åȤȥӥåÈŤò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¥¿¥¤¥ॹ¥¿¥ó¥פÏËܼÁŪ¤ËÁý²÷ÏÎó¤Ǥ¹¤Τǡ¢ - ¥¯¥饹¥¿¤ÎÁ´¤ƤΥޥ·¥󤬥ꥯ¥¨¥¹¥Ȥȥµ¡¼¥е¡ǽ¤òÄä»ߤ·¤ơ¢ - ¸Ť¤Éä¹沽Êý¼°¤ò»ÈÍѤ¹¤ë¤Τò¤ä¤á¤ë¥ե饰É䬤¢¤ì¤н½ʬ¤Ǥ¹¡£ - ¤½¤θå¤ϡ¢¥ꥯ¥¨¥¹¥ȤòºƳ«¤·¡¢ - ¿·¤·¤¤É乿¤òȯ¹Ԥ¹¤뤳¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£

    - -

    ²桹¤Ϥ³¤줬¡¢ - ¤³¤ÎÌäÂê¤ËÂФ¹¤ëÈæ³ÓŪ°ܿ¢À­¤ι⤤²ò·èˡ¤À¤ȹͤ¨¤Ƥ¤¤ޤ¹¡£ - Windows NT ¤Τ褦¤ʥޥë¥Á¥¹¥ì¥åɤΥ·¥¹¥ƥà¤˳Èĥ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¤·¡¢ - ¾­ÍèɬÍפˤʤì¤Фµ¤é¤ËÁý¤䤹¤³¤Ȥâ¤Ǥ­¤ޤ¹¡£ - ID ¤ÏɬÍפ˱þ¤¸¤ÆĹ¤¯¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¤Τǡ¢À¸À®¤µ¤줿 ID - ¤ϼ¼Á¾塢̵¸¤Ëͭ¸ú¤Ǥ¹¡£¤ޤ¿¡¢¥¯¥饹¥¿¤Υޥ·¥ó´֤ÎÄ̿®¤â»ö¼¾åɬÍפʤ¯ - (NTP ¤ˤè¤ëƱ´ü¤Τߤ¬ɬÍפǡ¢¤³¤ì¤ϥª¡¼¥ХإåɤϤ¢¤ޤꤢ¤ê¤ޤ»¤ó)¡¢httpd - ¥ץí¥»¥¹´֤ÎÄ̿®¤âɬÍפ¢¤ê¤ޤ»¤ó (Ä̿®¤ϥ«¡¼¥ͥë¤ˤè¤ê³ä¤êÅö¤Ƥé¤줿 - pid ¤ÎÃͤˤè¤ê°ÅÌۤÎÆâ¤˹Ԥʤï¤Ƥ¤¤ޤ¹)¡£ - ¤µ¤é¤˸¤é¤줿¾õ¶·²¼¤Ǥϡ¢ID ¤Ϥµ¤é¤Ëû¤¯¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¤¬¡¢ - ¤è¤ê¿¤¯¤ξðÊó¤ò²¾Äꤹ¤ëɬÍפ¬¤ǤƤ­¤ޤ¹ (Î㤨¤С¢32 ¥ӥåÈ - IP ¥¢¥ɥ쥹¤ϤɤΥµ¥¤¥Ȥˤª¤¤¤Ƥâ²á¾ê¤ʾðÊó¤Ǥ¹¤¬¡¢ - ¤½¤ì¤ÎÂå¤ï¤ê¤ˤʤë°ܿ¢À­¤Τ¢¤ë¤â¤ΤϤ¢¤ê¤ޤ»¤ó)¡£

    -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_unique_id.html.ja.utf8 b/docs/manual/mod/mod_unique_id.html.ja.utf8 new file mode 100644 index 00000000000..29e3f886e76 --- /dev/null +++ b/docs/manual/mod/mod_unique_id.html.ja.utf8 @@ -0,0 +1,246 @@ + + + + + +mod_unique_id - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_unique_id

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:それぞれのリクエストに対する一意な識別子の入った環境変数を +提供する
    ステータス:Extension
    モジュール識別子:unique_id_module
    ソースファイル:mod_unique_id.c
    +

    概要

    + + +

    このモジュールは非常に制限された条件下で、 + それぞれのリクエストに「すべて」のリクエストに対して + 一意に決まることが保証されている魔法のトークンを提供します。 + この一意な識別子は、適切に設定されたクラスタでは複数の + マシンの間でさえも一意になります。それぞれのリクエストに対して環境変数 + UNIQUE_ID に識別子が設定されます。 + 一意な識別子が便利な理由はいろいろありますが、 + このドキュメントの目的からは外れるため、ここでは説明しません。

    +
    +

    トピック

    +

    ディレクティブ

    +

    このモジュールにディレクティブはありません。

    +
    +
    top
    +
    +

    理論

    + + +

    まずはじめに、Apache サーバが Unix + マシンでどのように動作をするかを簡単に説明します。 + この機能は現時点では Windows NT ではサポートされていません。 + Unix マシンでは Apache はいくつかの子プロセスを作成し、 + その子プロセスが一つずつリクエストを処理します。それぞれの子プロセスは、 + 生存期間中に複数のリクエストを扱うことができます。 + この議論では子プロセス間では一切データを共有しないことにします。 + 以後、この子プロセスのことを httpd プロセス と呼びます。

    + +

    あなたのウェブサイトにはあなたが管理するいくつかのマシンがあるとします。 + それらをまとめてクラスタと呼ぶことにします。それぞれのマシンは複数の + Apache を実行することもできます。 + これらすべてをまとめたものが「宇宙」であると考えられます。 + いくつかの仮定の下で、クラスタのマシン間がたくさん通信をすることなく、 + この宇宙の中でそれぞれのリクエストに一意な識別子を生成できることを示します。 +

    + +

    クラスタにあるマシンは以下の要求を見たさなければなりません。 + (マシンが一つだけだとしても、NTP で時計を合わせる方が良いです。)

    + +
      +
    • NTP や他のネットワーク上で時間を合わせるプロトコルによって + 各マシンの時間の同期が取られていること。
    • + +
    • モジュールがホスト名を引いて違う IP + アドレスを受け取ることができるように、 + クラスタのそれぞれのマシンのホスト名が違うこと。
    • +
    + +

    オペレーティングシステムにおいては、pid (プロセス ID) が + 32 ビットの範囲内であることを仮定します。オペレーティングシステムの + pid が 32 ビットを超える場合は、簡単な修正ではありますが、 + コードを変更する必要があります。

    + +

    これらの仮定が満たされていると、ある時点において、 + クラスタ内のどのマシンのどの httpd + プロセスでも、一意に同定することができます。これはマシンの IP + アドレスと httpd プロセスの pid で十分に行なうことができます。 + ですから、リクエストに一意な識別子を生成するためには、 + 時刻を区別する必要があるだけです。

    + +

    時刻を区別するために、Unix のタイムスタンプ (UTC の 1970 年 + 1 月 1 日からの秒数) と、16 ビットのカウンタを使います。 + タイムスタンプの粒度は一秒ですので、一秒間の 65536 + までの値を表現するためにカウンタを使用します。四つの値 + ( ip_addr, pid, time_stamp, counter ) で各 httpd + プロセスで一秒の間に 65536 リクエストを数えあげることができます。 + 時間が経つと pid が再利用されるという問題がありますが、 + この問題を解決するためにカウンタが使用されます。

    + +

    httpd の子プロセスが作成されると、カウンタは + (その時点のマイクロ秒 ÷ 10) modulo 65536 で初期化されます + (この式はいくつかのシステムにある、マイクロ秒の + タイマの下位ビットが異なるという問題を解決するために選ばれました)。 + 一意な識別子が生成されたとき、使用されるタイムスタンプは + ウェブサーバにリクエストが到着した時刻になります。 + カウンタは識別子が生成されるたびに増加します + (あふれた場合は 0 に戻ります)。

    + +

    カーネルはプロセスをフォークすると、それぞれのプロセスのために + pid を生成します。pid は繰り返されることが許可されています + (pid の値は多くの Unix では 16 ビットですが、新しいシステムでは + 32 ビットに拡張されています)。 + ですから、ある程度の時間が経過すると同じ pid が再び使用されます。 + しかし、一秒内に再使用されなければ、 + 四つの値の一意性は保たれます。つまり、我々はシステムが一秒間 + に 65536 個のプロセスを起動しないと仮定しています (いくつかの Unix + では 32768 プロセスですが、それですらほとんどあり得ないでしょう)。

    + +

    何らかの理由で、同じ時刻が繰り返されたとしましょう。 + つまり、システムの時計が狂っていて、もう一度過去の時刻になってしまった + (もしくは進みすぎていたときに、 + 正しい時刻に戻したために再び将来の時刻になってしまった) とします。 + この場合、pid とタイムスタンプが再使用されることが簡単に示されます。 + カウンタ初期化用の関数は、この問題の回避を手助けしようと選択されています。 + 本当はカウンタの初期化をするためにランダムな数字を使いたいのですが、 + ほとんどのシステムでは簡単に使用できる数は無いことに注意してください + (すなわち、rand ()は使えません。rand () には seed + を与える必要があり、seed には時刻を使えません。一秒単位では、 + その時刻はすでに繰り返されているからです)。 + これは、完璧な対策ではありません。

    + +

    この対策はどのくらい効果があるでしょうか? + ここでは、マシン群の中の一つは最大で一秒に 500 + リクエストを扱うと仮定します (これを書いている時点では妥当な上限です。 + 通常システムがすることは静的なファイルを取りだすだけではありませんから)。 + それを行なうために、そのマシンは並行して来るクライアントの数に + 応じた数の子プロセスを要求します。 + しかしながら、悲観的に考えて、一つの子プロセスが一秒に 500 + リクエストを扱えるとします。そうすると、(一秒の精度において) + 時刻が同じ時を繰り返すと、この子プロセスがカウンタの値を再び使い、 + 一意性が壊れる可能性が 1.5% あります。 + これは非常に悲観的な例で、実世界の値では、ほとんど起こりそうにありません。 + それでもこれが起こる可能性のあるようなシステムなら、 + (プログラムコードを編集して) + カウンタを 32 ビットにするのが良いでしょう。 +

    + +

    サマータイムにより時計が「戻される」ことを気にしている人が + いるかもしれません。ここで使用される時間は UTC であり、 + それは「常に」進むのでここでは問題になりません。x86 上の Unix + はこの条件を満たすために適切な設定が必要かもしれないことに + 注意してください。マザーボードの時計は UTC になっていて、 + 他の時間はそこから適切に補正されることを仮定できるように + 設定されなければなりません。そのような場合でさえ、NTP + を使っているならばリブート後にすぐ正しい UTC の時間になるでしょう。

    + +

    UNIQUE_ID 環境変数は 112 ビット (32 ビット IP + アドレス、32 ビット pid, 32 ビットタイムスタンプ、16 + ビットカウンタの四つの組) をアルファベット [A-Za-z0-9@-] + を用いて MIME の base64 符号化と同様の方法により符号化し、19 + の文字を生成することにより作成されます。MIME の base64 + のアルファベットは実際は [A-Za-z0-9+/] ですが、 + + と / とは URL + では特別な符号化が必要なので、あまり望ましくありません。 + 全ての値はネットワークバイトオーダで符号化されますので、 + 符号は違ったバイトオーダのアーキテクチャ間で比較可能です。 + 実際の符号化の順番は: タイムスタンプ、IP アドレス、pid, + カウンタです。この順には目的がありますが、 + アプリケーションは符号を解析するべきではないことを強調しておきます。 + アプリケーションは符号化された UNIQUE_ID + 全体を透過的なトークンとして扱うべきです。 + UNIQUE_ID は他の UNIQUE_ID + との等価性を調べるためだけにのみ使用できます。

    + +

    この順番は将来、既存の UNIQUE_ID + のデータベースとの衝突を心配することなく符号を変更することが + 可能になるように選択しています。 + 新しい符号はタイムスタンプを最初の要素として残すのが望ましく、 + それ以外は同じアルファベットとビット長を使うことができます。 + タイムスタンプは本質的に増加系列ですので、 + クラスタの全てのマシンがリクエストとサーバ機能を停止して、 + 古い符号化方式を使用するのをやめるフラグ秒があれば十分です。 + その後は、リクエストを再開し、 + 新しい符号を発行することができるようになります。

    + +

    我々はこれが、 + この問題に対する比較的移植性の高い解決法だと考えています。 + Windows NT のようなマルチスレッドのシステムに拡張することができますし、 + 将来必要になればさらに増やすこともできます。 + ID は必要に応じて長くすることができますので、生成された ID + は実質上、無限に有効です。また、クラスタのマシン間の通信も事実上必要なく + (NTP による同期のみが必要で、これはオーバヘッドはあまりありません)、httpd + プロセス間の通信も必要ありません (通信はカーネルにより割り当てられた + pid の値により暗黙の内に行なわています)。 + さらに限られた状況下では、ID はさらに短くすることができますが、 + より多くの情報を仮定する必要がでてきます (例えば、32 ビット + IP アドレスはどのサイトにおいても過剰な情報ですが、 + それの代わりになる移植性のあるものはありません)。

    +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_unique_id.html.ko.euc-kr b/docs/manual/mod/mod_unique_id.html.ko.euc-kr index cab790011cd..621e8bf4707 100644 --- a/docs/manual/mod/mod_unique_id.html.ko.euc-kr +++ b/docs/manual/mod/mod_unique_id.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_unique_id - Apache HTTP Server +mod_unique_id - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_unique_id

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_unique_id

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | @@ -42,12 +49,12 @@ UNIQUE_ID¸¦ ¼³Á¤ÇѴÙ. À¯ÀÏÇÑ ½ĺ°Àڴ ¿©·¯°¡Áö ¿뵵·Î »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ¼³¸íÀº ÀÌ ¹®¼­ÀÇ ¹üÀ§¸¦ ³Ѿ´Ù.

    -

    Áö½þîµé

    -

    ÀÌ ¸ðµ⿡´Â Áö½þ ¾ø½À´ϴÙ.

    -

    ÁÖÁ¦

    +

    ÁÖÁ¦

    +

    Áö½þîµé

    +

    ÀÌ ¸ðµ⿡´Â Áö½þ ¾ø½À´ϴÙ.

    +
    top

    À̷Ð

    @@ -185,7 +192,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_unique_id.xml b/docs/manual/mod/mod_unique_id.xml index 47ece54a27d..df76ae7b8fe 100644 --- a/docs/manual/mod/mod_unique_id.xml +++ b/docs/manual/mod/mod_unique_id.xml @@ -4,12 +4,12 @@

    The UNIQUE_ID environment variable is - constructed by encoding the 112-bit (32-bit IP address, 32 bit - pid, 32 bit time stamp, 16 bit counter) quadruple using the + constructed by encoding the 144-bit (32-bit IP address, 32 bit + pid, 32 bit time stamp, 16 bit counter, 32 bit thread index) + quadruple using the alphabet [A-Za-z0-9@-] in a manner similar to MIME - base64 encoding, producing 19 characters. The MIME base64 + base64 encoding, producing 24 characters. The MIME base64 alphabet is actually [A-Za-z0-9+/] however + and / need to be specially encoded in URLs, which makes them less desirable. All values are @@ -177,13 +182,12 @@ identifier for each request and can otherwise use the same alphabet and bit length. Since the time stamps are essentially an increasing sequence, it's sufficient to have a flag second in which all machines - in the cluster stop serving and request, and stop using the old + in the cluster stop serving any request, and stop using the old encoding format. Afterwards they can resume requests and begin issuing the new encodings.

    This we believe is a relatively portable solution to this - problem. It can be extended to multithreaded systems like - Windows NT, and can grow with future needs. The identifiers + problem. The identifiers generated have essentially an infinite life-time because future identifiers can be made longer as required. Essentially no communication is required between machines in the cluster (only diff --git a/docs/manual/mod/mod_unique_id.xml.ja b/docs/manual/mod/mod_unique_id.xml.ja index 6dda3486234..8835c054ba4 100644 --- a/docs/manual/mod/mod_unique_id.xml.ja +++ b/docs/manual/mod/mod_unique_id.xml.ja @@ -1,15 +1,15 @@ - + - + + - + mod_unique_id /mod/ .. en - ja + ja ko diff --git a/docs/manual/mod/mod_userdir.html b/docs/manual/mod/mod_userdir.html index 897ef83289a..b6960e7bef1 100644 --- a/docs/manual/mod/mod_userdir.html +++ b/docs/manual/mod/mod_userdir.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_userdir.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_userdir.html.ja.euc-jp +URI: mod_userdir.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_userdir.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mod_userdir.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_userdir.html.en b/docs/manual/mod/mod_userdir.html.en index f9c836108d1..d0f5e174aa5 100644 --- a/docs/manual/mod/mod_userdir.html.en +++ b/docs/manual/mod/mod_userdir.html.en @@ -1,34 +1,42 @@ - -mod_userdir - Apache HTTP Server +mod_userdir - Apache HTTP Server Version 2.2 - - + + + +

    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_userdir

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_userdir

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    - -
    Description:User-specific directories
    Status:Base
    Module Identifier:userdir_module
    Source File:mod_userdir.c
    +Module Identifier:userdir_module +Source File:mod_userdir.c

    Summary

    This module allows user-specific directories to be accessed using the @@ -44,13 +52,14 @@ Filesystem

  • public_html tutorial
  • -
    +
    top

    UserDir Directive

    - + @@ -88,88 +97,118 @@ tutorialUserdir directive, the argument is treated as a filename pattern, and is used to turn the name into a directory specification. A request for - http://www.foo.com/~bob/one/two.html will be + http://www.example.com/~bob/one/two.html will be translated to:

    -
    Description:Location of the user-specific directories
    Syntax:UserDir directory-filename
    Syntax:UserDir directory-filename [directory-filename] ... +
    Context:server config, virtual host
    Status:Base
    Module:mod_userdir
    - - - - - -
    UserDir directive usedTranslated path
    UserDir public_html~bob/public_html/one/two.html
    UserDir /usr/web/usr/web/bob/one/two.html
    UserDir /home/*/www/home/bob/www/one/two.html
    - -

    The following directives will send redirects to the client:

    - - - - - - - -
    UserDir directive usedTranslated path
    UserDir http://www.foo.com/usershttp://www.foo.com/users/bob/one/two.html
    UserDir -http://www.foo.com/*/usrhttp://www.foo.com/bob/usr/one/two.html
    UserDir -http://www.foo.com/~*/http://www.foo.com/~bob/one/two.html
    - -
    + + + + + + + + + +
    UserDir directive usedTranslated path
    UserDir public_html~bob/public_html/one/two.html
    UserDir /usr/web/usr/web/bob/one/two.html
    UserDir /home/*/www/home/bob/www/one/two.html
    + +

    The following directives will send redirects to the client:

    + + + + + + + + + + +
    UserDir directive usedTranslated path
    UserDir http://www.example.com/usershttp://www.example.com/users/bob/one/two.html
    UserDir http://www.example.com/*/usrhttp://www.example.com/bob/usr/one/two.html
    UserDir http://www.example.com/~*/http://www.example.com/~bob/one/two.html
    + +
    Be careful when using this directive; for instance, "UserDir ./" would map "/~root" to "/" - which is probably undesirable. It is strongly recommended that your configuration include a "UserDir disabled root" declaration. See also the Directory directive and the Security Tips page for more information. -
    +
    -

    Additional examples:

    +

    Additional examples:

    -

    To allow a few users to have UserDir directories, but -not anyone else, use the following:

    +

    To allow a few users to have UserDir directories, but + not anyone else, use the following:

    -

    -UserDir disabled
    -UserDir enabled user1 user2 user3 -

    +

    + UserDir disabled
    + UserDir enabled user1 user2 user3 +

    -

    To allow most users to have UserDir directories, but -deny this to a few, use the following:

    +

    To allow most users to have UserDir directories, but + deny this to a few, use the following:

    -

    -UserDir enabled
    -UserDir disabled user4 user5 user6 -

    +

    + UserDir disabled user4 user5 user6 +

    -

    It is also possible to specify alternative user directories. -If you use a command like:

    -

    -Userdir public_html /usr/web http://www.foo.com/ -

    -

    With a request for http://www.foo.com/~bob/one/two.html, will try to -find the page at ~bob/public_html/one/two.html first, then -/usr/web/bob/one/two.html, and finally it will send a redirect -to http://www.foo.com/bob/one/two.html.

    -

    If you add a redirect, it must be the last alternative in the list. -Apache cannot determine if the redirect succeeded or not, so if you have -the redirect earlier in the list, that will always be the alternative -that is used.

    +

    It is also possible to specify alternative user directories. + If you use a command like:

    -

    User directory substitution is not active by default in versions -2.1.4 and later. In earlier versions, UserDir public_html -was assumed if no UserDir -directive was present.

    +

    + Userdir public_html /usr/web http://www.example.com/ +

    + +

    With a request for + http://www.example.com/~bob/one/two.html, will try to + find the page at ~bob/public_html/one/two.html first, then + /usr/web/bob/one/two.html, and finally it will send a + redirect to http://www.example.com/bob/one/two.html.

    + +

    If you add a redirect, it must be the last alternative in the list. + Apache cannot determine if the redirect succeeded or not, so if you have + the redirect earlier in the list, that will always be the alternative + that is used.

    + +

    User directory substitution is not active by default in versions + 2.1.4 and later. In earlier versions, UserDir public_html + was assumed if no UserDir + directive was present.

    See also

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_userdir.html.ja.euc-jp b/docs/manual/mod/mod_userdir.html.ja.euc-jp deleted file mode 100644 index bab775e9faf..00000000000 --- a/docs/manual/mod/mod_userdir.html.ja.euc-jp +++ /dev/null @@ -1,185 +0,0 @@ - - - -mod_userdir - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_userdir

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - - -
    ÀâÌÀ:¥桼¥¶ÀìÍѤΥǥ£¥쥯¥ȥê¤òÄó¶¡ -
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥뼱Ê̻Ò:userdir_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_userdir.c
    -

    ³µÍ×

    - -

    ¤³¤Υ⥸¥塼¥ë¤ϡ¢ -http://example.com/~user/ -¹½ʸ¤ò»Ȥäƥ桼¥¶ÀìÍѥǥ£¥쥯¥ȥê¤˥¢¥¯¥»¥¹¤Ǥ­¤ë¤褦¤ˤ·¤ޤ¹¡£

    -
    - - -
    top
    -

    UserDir ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - -
    ÀâÌÀ:¥桼¥¶ÀìÍѥǥ£¥쥯¥ȥê¤ΰÌÃÖ
    ¹½ʸ:UserDir directory-filename
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    ¥¹¥ơ¼¥¿¥¹:Base
    ¥⥸¥塼¥ë:mod_userdir
    - -

    UserDir ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¥桼¥¶¤Υɥ­¥å¥á¥ó¥ȤؤΥꥯ¥¨¥¹¥Ȥò¼õ¤±¤¿»þ¤˻Ȥ¦ - ¥桼¥¶¤Υۡ¼¥à¥ǥ£¥쥯¥ȥêÃæ¤Ρ¢¼ºݤΥǥ£¥쥯¥ȥê¤ò - ÀßÄꤷ¤ޤ¹¡£ - directory-filename ¤ˤϼ¡¤Τɤ줫¤ò»ØÄꤷ¤ޤ¹:

    - -
      -
    • ¥ǥ£¥쥯¥ȥê̾¤«²¼¤˼¨¤¹¤褦¤ʥѥ¿¡¼¥ó¡£
    • - -
    • disabled ¥­¡¼¥¥ɡ£ - enabled ¥­¡¼¥¥É (²¼µ­»²¾È) ¤ÇÌÀ¼¨Ū¤Ë - »ØÄꤵ¤줿¥桼¥¶°ʳ°¤Î - Á´¤ƤÎ¥桼¥¶̾-¥ǥ£¥쥯¥ȥêÊѴ¹¤ò - ¤·¤ʤ¤¤褦¤ˤ·¤ޤ¹¡£
    • - -
    • disabled ¥­¡¼¥¥ɤȡ¢¥¹¥ڡ¼¥¹¶èÀڤê¤Υ桼¥¶̾¥ꥹ¥ȡ£ - ¤³¤Υꥹ¥ÈÃæ¤˴ޤޤì¤ë¥桼¥¶̾¤ËÂФ·¤Ƥϡ¢¤¿¤Ȥ¨ - enabled Àá¤ˤ¢¤ä¿¤Ȥ·¤Ƥ⡢ - ·褷¤Æ¥ǥ£¥쥯¥ȥêÊѴ¹¤ϹԤï¤ì¤ޤ»¤ó¡£
    • - -
    • enebled ¥­¡¼¥¥ɤȥ¹¥ڡ¼¥¹¶èÀڤê¤Υ桼¥¶̾¥ꥹ¥ȡ£ - Á´ÂΤǤÏÊѴ¹¤¬̵¸ú¤ˤʤäƤ¤¤¿¤Ȥ¤¤¿¤Ȥ·¤Ƥ⡢ - ¤³¤ì¤é¤Υ桼¥¶̾¤ˤϥǥ£¥쥯¥ȥêÊѴ¹¤¬¹Ԥï¤ì¤ޤ¹¡£ - ¤¿¤À¤·¡¢disabled Àá¤ˤ⤢¤ì¤ÐÊѴ¹¤Ϥµ¤ì¤ޤ»¤ó¡£ -
    • -
    - -

    ¤⤷ enabled ¤â disabled - ¥­¡¼¥¥ɤâ UserDir ¤˸½¤ï¤ì¤Ƥ¤¤ʤ±¤ì¤С¢ - °ú¿ô¤ϥե¡¥¤¥ë̾¥ѥ¿¡¼¥ó¤Ȥ·¤ư·¤ï¤졢 - ̾Á°¤«¤é¥ǥ£¥쥯¥ȥê¤ؤÎÊѴ¹¤λØÄê¤ò¹Ԥʤ¦»þ¤˻Ȥï¤ì¤ޤ¹¡£ - http://www.foo.com/~bob/one/two.html - ¤ؤΥꥯ¥¨¥¹¥Ȥϼ¡¤Τ褦¤ËÊѴ¹¤µ¤ì¤ޤ¹:

    - - - - - - - -
    UserDir ¥ǥ£¥쥯¥ƥ£¥ÖÊѴ¹¸å¤Υѥ¹
    UserDir public_html~bob/public_html/one/two.html
    UserDir /usr/web/usr/web/bob/one/two.html
    UserDir /home/*/www/home/bob/www/one/two.html
    - -

    ¼¡¤Υǥ£¥쥯¥ƥ£¥֤ϥ¯¥饤¥¢¥ó¥ȤËÂФ·¤ƥê¥À¥¤¥쥯¥Ȥò - Á÷¿®¤·¤ޤ¹:

    - - - - - - - -
    UserDir ¥ǥ£¥쥯¥ƥ£¥ÖÊѴ¹¸å¤Υѥ¹
    UserDir http://www.foo.com/usershttp://www.foo.com/users/bob/one/two.html
    UserDir -http://www.foo.com/*/usrhttp://www.foo.com/bob/usr/one/two.html
    UserDir -http://www.foo.com/~*/http://www.foo.com/~bob/one/two.html
    - -
    - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»Ȥ¦¤Ȥ­¤ÏÃí°դ·¤Ƥ¯¤À¤µ¤¤; - "UserDir ./" ¤Ï - "/~root" ¤«¤é "/" ¤إޥåפ·¤ޤ¹¤¬¡¢ - ¤³¤ì¤Ï˾¤ޤ·¤¤ưºî¤ǤϤʤ¤¤Ǥ·¤礦¡£ - "UserDir disabled root" Àë¸À¤ò - ÀßÄê¤ÎÃæ¤˴ޤá¤Ƥª¤¯¤³¤Ȥ򶯤¯¤ªÁ¦¤ᤷ¤ޤ¹¡£ - ÄɲþðÊó¤Ë Directory - ¥ǥ£¥쥯¥ƥ£¥֤ä - ¥»¥­¥å¥ê¥ƥ£ - Tips ¤Υڡ¼¥¸¤⤴Í÷²¼¤µ¤¤¡£ -
    - -

    ÄɲäÎÎã:

    - -

    ¾¯¿ô¤Υ桼¥¶¤Τߤ¬ UserDir -¥ǥ£¥쥯¥ȥê¤òÍøÍѤ·¡¢¤½¤ì°ʳ°¤ˤÏÍøÍѤµ¤»¤¿¤¯¤ʤ¤¾ì¹ç¤Ï -¼¡¤ò»Ȥ¤¤ޤ·¤礦:

    - -

    -UserDir disabled
    -UserDir enabled user1 user2 user3 -

    - -

    ÂçÉôʬ¤Υ桼¥¶¤Ï UserDir ¥ǥ£¥쥯¥ȥê¤òÍøÍѤ¹¤뤱¤ì¤ɡ¢ -¾¯¿ô¤οͤÏÉԵö²Ĥˤ·¤¿¤¤¾ì¹ç¤ϡ¢¼¡¤ò»Ȥ¤¤ޤ·¤礦:

    - -

    -UserDir enabled
    -UserDir disabled user4 user5 user6 -

    - -

    ¾¤Υ桼¥¶¥ǥ£¥쥯¥ȥê¤ò»ØÄꤹ¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£ -¼¡¤Τ褦¤ʥ³¥ޥó¥ɤò»Ȥ¦¤È:

    - -

    -Userdir public_html /usr/web http://www.foo.com/ -

    - -

    http://www.foo.com/~bob/one/two.html ¤ؤΥꥯ¥¨¥¹¥ȤϤޤº -~bob/public_html/one/two.html ¤Υڡ¼¥¸¤òĴ¤١¢¤½¤μ¡¤Ë -/usr/web/bob/one/two.html ¤òĴ¤١¢ºǸå¤Ë http://www.foo.com/bob/one/two.html -¤ؤΥê¥À¥¤¥쥯¥ȤòÁ÷¤ê¤ޤ¹¡£

    - -

    ¥ê¥À¥¤¥쥯¥Ȥò²ä¨¤ë¾ì¹ç¤ϡ¢¥ꥹ¥ȤκǸå¤ÎÁªÂò»è¤Ǥʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ -Apache ¤ϥê¥À¥¤¥쥯¥Ȥ¬À®¸ù¤¹¤뤫¤ɤ¦¤«¤ò·è¤á¤뤳¤ȤϤǤ­¤ޤ»¤ó¤Τǡ¢ -¥ꥹ¥ȤÎÁ°¤ÎÊý¤˥ê¥À¥¤¥쥯¥Ȥò½񤯤ȡ¢¤½¤줬ɬ¤º»ÈÍѤµ¤ì¤ëÁªÂò»è¤Ë -¤ʤäƤ·¤ޤ¤¤ޤ¹¡£

    - -

    2.1.4 °ʹߤǤϡ¢¥桼¥¶¥ǥ£¥쥯¥ȥêÃִ¹µ¡ǽ¤ϥǥե©¥ë¥ȤǤϵ¯ư¤·¤ޤ»¤ó¡£ -¤½¤ì°ÊÁ°¤ΥС¼¥¸¥ç¥ó¤Ǥϡ¢UserDir -¥ǥ£¥쥯¥ƥ£¥֤¬¸ºߤ·¤ʤ±¤ì¤С¢UserDir public_html -¤Ǥ¢¤ë¤Ȳ¾Äꤵ¤ì¤Ƥ¤¤ޤ·¤¿¡£

    - - -

    »²¾È

    - -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_userdir.html.ja.utf8 b/docs/manual/mod/mod_userdir.html.ja.utf8 new file mode 100644 index 00000000000..c71057e73c0 --- /dev/null +++ b/docs/manual/mod/mod_userdir.html.ja.utf8 @@ -0,0 +1,219 @@ + + + + + +mod_userdir - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_userdir

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:ユーザ専用のディレクトリを提供 +
    ステータス:Base
    モジュール識別子:userdir_module
    ソースファイル:mod_userdir.c
    +

    概要

    + +

    このモジュールは、 +http://example.com/~user/ +構文を使ってユーザ専用ディレクトリにアクセスできるようにします。

    +
    + + +
    top
    +

    UserDir ディレクティブ

    + + + + + + +
    説明:ユーザ専用ディレクトリの位置
    構文:UserDir directory-filename
    コンテキスト:サーバ設定ファイル, バーチャルホスト
    ステータス:Base
    モジュール:mod_userdir
    + +

    UserDir ディレクティブは、 + ユーザのドキュメントへのリクエストを受けた時に使う + ユーザのホームディレクトリ中の、実際のディレクトリを + 設定します。 + directory-filename には次のどれかを指定します:

    + +
      +
    • ディレクトリ名か下に示すようなパターン。
    • + +
    • disabled キーワード。 + enabled キーワード (下記参照) で明示的に + 指定されたユーザ以外の + 全てのユーザ名-ディレクトリ変換を + しないようにします。
    • + +
    • disabled キーワードと、スペース区切りのユーザ名リスト。 + このリスト中に含まれるユーザ名に対しては、たとえ + enabled 節にあったとしても、 + 決してディレクトリ変換は行われません。
    • + +
    • enabled キーワードとスペース区切りのユーザ名リスト。 + 全体では変換が無効になっていたとしても、 + これらのユーザ名にはディレクトリ変換が行われます。 + ただし、disabled 節にもあれば変換はされません。 +
    • +
    + +

    もし enabled も disabled + キーワードも UserDir に現われていなければ、 + 引数はファイル名パターンとして扱われ、 + 名前からディレクトリへの変換の指定を行なう時に使われます。 + http://www.foo.com/~bob/one/two.html + へのリクエストは次のように変換されます:

    + + + + + + + +
    UserDir ディレクティブ変換後のパス
    UserDir public_html~bob/public_html/one/two.html
    UserDir /usr/web/usr/web/bob/one/two.html
    UserDir /home/*/www/home/bob/www/one/two.html
    + +

    次のディレクティブはクライアントに対してリダイレクトを + 送信します:

    + + + + + + + +
    UserDir ディレクティブ変換後のパス
    UserDir http://www.foo.com/usershttp://www.foo.com/users/bob/one/two.html
    UserDir +http://www.foo.com/*/usrhttp://www.foo.com/bob/usr/one/two.html
    UserDir +http://www.foo.com/~*/http://www.foo.com/~bob/one/two.html
    + +
    + このディレクティブを使うときは注意してください; + "UserDir ./" は + "/~root" から "/" へマップしますが、 + これは望ましい動作ではないでしょう。 + "UserDir disabled root" 宣言を + 設定の中に含めておくことを強くお薦めします。 + 追加情報に Directory + ディレクティブや + セキュリティ + Tips のページもご覧下さい。 +
    + +

    追加の例:

    + +

    少数のユーザのみが UserDir +ディレクトリを利用し、それ以外には利用させたくない場合は +次を使いましょう:

    + +

    +UserDir disabled
    +UserDir enabled user1 user2 user3 +

    + +

    大部分のユーザは UserDir ディレクトリを利用するけれど、 +少数の人は不許可にしたい場合は、次を使いましょう:

    + +

    +UserDir enabled
    +UserDir disabled user4 user5 user6 +

    + +

    他のユーザディレクトリを指定することもできます。 +次のようなコマンドを使うと:

    + +

    +Userdir public_html /usr/web http://www.foo.com/ +

    + +

    http://www.foo.com/~bob/one/two.html へのリクエストはまず +~bob/public_html/one/two.html のページを調べ、その次に +/usr/web/bob/one/two.html を調べ、最後に http://www.foo.com/bob/one/two.html +へのリダイレクトを送ります。

    + +

    リダイレクトを加える場合は、リストの最後の選択肢でなければなりません。 +Apache はリダイレクトが成功するかどうかを決めることはできませんので、 +リストの前の方にリダイレクトを書くと、それが必ず使用される選択肢に +なってしまいます。

    + +

    2.1.4 以降では、ユーザディレクトリ置換機能はデフォルトでは起動しません。 +それ以前のバージョンでは、UserDir +ディレクティブが存在しなければ、UserDir public_html +であると仮定されていました。

    + + +

    参照

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_userdir.html.ko.euc-kr b/docs/manual/mod/mod_userdir.html.ko.euc-kr index 3df232c4117..bc22aa8c8a8 100644 --- a/docs/manual/mod/mod_userdir.html.ko.euc-kr +++ b/docs/manual/mod/mod_userdir.html.ko.euc-kr @@ -1,29 +1,37 @@ - -mod_userdir - Apache HTTP Server +mod_userdir - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_userdir

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_userdir

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -45,7 +53,7 @@
  • URLÀ» ÆÄÀϽýºÅۿ¡ ´ëÀÀ
  • public_html ÅõÅ丮¾ó
  • -
    +
    top

    UserDir Áö½þî

    @@ -154,8 +162,30 @@ http://www.foo.com/bob/one/two.html

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_userdir.html.tr.utf8 b/docs/manual/mod/mod_userdir.html.tr.utf8 new file mode 100644 index 00000000000..d5836789ba1 --- /dev/null +++ b/docs/manual/mod/mod_userdir.html.tr.utf8 @@ -0,0 +1,210 @@ + + + + + +mod_userdir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_userdir

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + + + +
    Açıklama:Kullanıcılara özel dizinler
    Durum:Temel
    Modül Betimleyici:userdir_module
    Kaynak Dosyası:mod_userdir.c
    +

    Özet

    + +

    Bu modül kullanıcılara özel dizinlere + http://mesela.dom/~kullanıcı/ sözdizimi kullanılarak + erişilebilmesini mümkün kılar.

    +
    +

    Yönergeler

    + +

    Ayrıca bakınız:

    +
    + +
    top
    +

    UserDir Yönergesi

    + + + + + + +
    Açıklama:Kullanıcıya özel dizinlerin yeri
    Sözdizimi:UserDir dizin [dizin] ...
    Bağlam:sunucu geneli, sanal konak
    Durum:Temel
    Modül:mod_userdir
    + +

    UserDir yönergesi, bir kullanıcıya ait bir + belge için bir istek yapıldığında, isteğin kullanıcının ev dizininde + bulunan belli bir dizinden karşılanmasını sağlar. + dizin olarak şunlar belirtilebilir:

    + +
      +
    • Dizinin ismi veya aşağıdakiler gibi bir kalıp.
    • + +
    • disabled anahtar sözcüğü. enabled anahtar + sözcüğü ile sonradan etkin kılınmadıkça tüm kullanıcı-dizin + dönüşümlerini iptal eder (aşağıya bakınız).
    • + +
    • disabled anahtar sözcüğünü takibeden boşluk ayraçlı + kullanıcı isimleri listesi. Bu listede yer alan kullanıcı isimlerine, + sonradan bir enabled listesinde görünse bile, dizin + dönüşümleri asla uygulanmaz.
    • + +
    • enabled anahtar sözcüğünü takibeden boşluk ayraçlı + kullanıcı isimleri listesi. Genel bir iptal sözkonusu olsa bile, + kullanıcı ismi bir disabled listesinde yer almadıkça, bu + listede yer alan dizinlere dönüşüm uygulanır.
    • +
    + +

    Userdir yönergesinde ne enabled ne de + disabled varsa, argüman bir dosya ismi kalıbı olarak ele + alınır ve kullanıcı belge kök dizininin yolunu oluşturmakta kullanılır. + http://mesela.dom/~ali/bir/iki.html şöyle dönüştürülür:

    + + + + + + + + + + +
    Kullanılan UserDir yönergesi    Elde edilen yol
    UserDir public_html~ali/public_html/bir/iki.html
    UserDir /usr/siteler/usr/siteler/ali/bir/iki.html
    UserDir /home/*/htdocs/home/ali/htdocs/bir/iki.html
    + +

    Aşağıdaki yönergelerle istemciye gönderilecek yönlendirmeler:

    + + + + + + + + + + +
    Kullanılan UserDir yönergesi    Elde edilen yönlendirme
    UserDir http://mesela.dom/usershttp://mesela.dom/users/ali/bir/iki.html
    UserDir http://mesela.dom/*/usrhttp://mesela.dom/ali/usr/bir/iki.html
    UserDir http://mesela.dom/~*/http://mesela.dom/~ali/bir/iki.html
    + +
    + Bu yönergeyi kullanırken dikkatli olun; örneğin, "UserDir + ./" şeklinde bir atama "/~root" isteklerini + "/" dizinine yönlendirir ki bu elbette istenmez. Bu + bakımdan yapılandırmanızda mutlaka bir "UserDir disabled + root" satırının yer almasını tavsiye ederiz. Daha fazla bilgi + için Directory yönergesine ve Güvenlik İpuçları sayfasına + bakınız. +
    + +

    Diğer örnekler:

    + +

    Bir kaç kullanıcı hariç kalan herkesin UserDir + dizinlerini iptal etmek için şunu yapabilirsiniz:

    + +

    + UserDir disabled
    + UserDir enabled birey1 birey2 birey3 +

    + +

    Bir kaç kullanıcı hariç kalan herkesin UserDir + dizinlerini etkin kılmak için şunu yapabilirsiniz:

    + +

    + UserDir disabled birey4 birey5 birey6 +

    + +

    Birden fazla dizin belirtmek de mümkündür:

    + +

    + Userdir public_html /usr/siteler http://mesela.dom/ +

    + +

    Bu örneğe göre, http://mesela.dom/~ali/bir/iki.html + şeklinde bir istek alındığında sunucu önce + http://mesela.dom/~ali/bir/iki.html yönlendirmesini + deneyecektir. Onu bulamazsa isteği + /usr/siteler/ali/bir/iki.html dosyasını arayacak onu da + bulamazsa istemciyi http://mesela.dom/ali/bir/iki.html + adresine yönlendirecektir.

    + +

    Argüman listesine bir yönlendirme ekleyecekseniz, bu, listenin son + elemanı olmalıdır. Apache yönlendirmenin başarılı sonuç verip + vermediğini bilemeyecektir. Bu bakımdan, listede bu yönlendirmeden + sonra bir yönlendirme daha bulunması daha iyi olacaktır.

    + +

    Kullanıcı dizini dönüşümü Apache 2.1.4 sürümü ve sonrasında öntanımlı + olarak etkin değildir. Daha önceki sürümlerde bir UserDir yönergesinin yokluğunda + UserDir public_html öntanımlıydı.

    + + +

    Ayrıca bakınız:

    + +
    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_userdir.xml b/docs/manual/mod/mod_userdir.xml index 5b479703e06..87630df2082 100644 --- a/docs/manual/mod/mod_userdir.xml +++ b/docs/manual/mod/mod_userdir.xml @@ -4,12 +4,12 @@ + + - + mod_userdir /mod/ .. en - ja + ja ko + tr diff --git a/docs/manual/mod/mod_userdir.xml.tr b/docs/manual/mod/mod_userdir.xml.tr new file mode 100644 index 00000000000..19b7dabc82c --- /dev/null +++ b/docs/manual/mod/mod_userdir.xml.tr @@ -0,0 +1,172 @@ + + + + + + + + + + +mod_userdir +Kullanıcılara özel dizinler +Base +mod_userdir.c +userdir_module + + +

    Bu modül kullanıcılara özel dizinlere + http://mesela.dom/~kullanıcı/ sözdizimi kullanılarak + erişilebilmesini mümkün kılar.

    +
    + + + URL’lerin Dosya Sistemi ile Eşleştirilmesi + + + + public_html eğitmeni + + + + +UserDir +Kullanıcıya özel dizinlerin yeri +UserDir dizin [dizin] ... +server config virtual +host + + + +

    UserDir yönergesi, bir kullanıcıya ait bir + belge için bir istek yapıldığında, isteğin kullanıcının ev dizininde + bulunan belli bir dizinden karşılanmasını sağlar. + dizin olarak şunlar belirtilebilir:

    + +
      +
    • Dizinin ismi veya aşağıdakiler gibi bir kalıp.
    • + +
    • disabled anahtar sözcüğü. enabled anahtar + sözcüğü ile sonradan etkin kılınmadıkça tüm kullanıcı-dizin + dönüşümlerini iptal eder (aşağıya bakınız).
    • + +
    • disabled anahtar sözcüğünü takibeden boşluk ayraçlı + kullanıcı isimleri listesi. Bu listede yer alan kullanıcı isimlerine, + sonradan bir enabled listesinde görünse bile, dizin + dönüşümleri asla uygulanmaz.
    • + +
    • enabled anahtar sözcüğünü takibeden boşluk ayraçlı + kullanıcı isimleri listesi. Genel bir iptal sözkonusu olsa bile, + kullanıcı ismi bir disabled listesinde yer almadıkça, bu + listede yer alan dizinlere dönüşüm uygulanır.
    • +
    + +

    Userdir yönergesinde ne enabled ne de + disabled varsa, argüman bir dosya ismi kalıbı olarak ele + alınır ve kullanıcı belge kök dizininin yolunu oluşturmakta kullanılır. + http://mesela.dom/~ali/bir/iki.html şöyle dönüştürülür:

    + + + + + + + + + + +
    Kullanılan UserDir yönergesi    Elde edilen yol
    UserDir public_html~ali/public_html/bir/iki.html
    UserDir /usr/siteler/usr/siteler/ali/bir/iki.html
    UserDir /home/*/htdocs/home/ali/htdocs/bir/iki.html
    + +

    Aşağıdaki yönergelerle istemciye gönderilecek yönlendirmeler:

    + + + + + + + + + + +
    Kullanılan UserDir yönergesi    Elde edilen yönlendirme
    UserDir http://mesela.dom/usershttp://mesela.dom/users/ali/bir/iki.html
    UserDir http://mesela.dom/*/usrhttp://mesela.dom/ali/usr/bir/iki.html
    UserDir http://mesela.dom/~*/http://mesela.dom/~ali/bir/iki.html
    + + + Bu yönergeyi kullanırken dikkatli olun; örneğin, "UserDir + ./" şeklinde bir atama "/~root" isteklerini + "/" dizinine yönlendirir ki bu elbette istenmez. Bu + bakımdan yapılandırmanızda mutlaka bir "UserDir disabled + root" satırının yer almasını tavsiye ederiz. Daha fazla bilgi + için Directory yönergesine ve Güvenlik İpuçları sayfasına + bakınız. + + +

    Diğer örnekler:

    + +

    Bir kaç kullanıcı hariç kalan herkesin UserDir + dizinlerini iptal etmek için şunu yapabilirsiniz:

    + + + UserDir disabled
    + UserDir enabled birey1 birey2 birey3 +
    + +

    Bir kaç kullanıcı hariç kalan herkesin UserDir + dizinlerini etkin kılmak için şunu yapabilirsiniz:

    + + + UserDir disabled birey4 birey5 birey6 + + +

    Birden fazla dizin belirtmek de mümkündür:

    + + + Userdir public_html /usr/siteler http://mesela.dom/ + + +

    Bu örneğe göre, http://mesela.dom/~ali/bir/iki.html + şeklinde bir istek alındığında sunucu önce + http://mesela.dom/~ali/bir/iki.html yönlendirmesini + deneyecektir. Onu bulamazsa isteği + /usr/siteler/ali/bir/iki.html dosyasını arayacak onu da + bulamazsa istemciyi http://mesela.dom/ali/bir/iki.html + adresine yönlendirecektir.

    + +

    Argüman listesine bir yönlendirme ekleyecekseniz, bu, listenin son + elemanı olmalıdır. Apache yönlendirmenin başarılı sonuç verip + vermediğini bilemeyecektir. Bu bakımdan, listede bu yönlendirmeden + sonra bir yönlendirme daha bulunması daha iyi olacaktır.

    + +

    Kullanıcı dizini dönüşümü Apache 2.1.4 sürümü ve sonrasında öntanımlı + olarak etkin değildir. Daha önceki sürümlerde bir UserDir yönergesinin yokluğunda + UserDir public_html öntanımlıydı.

    + +
    + + + public_html eğitmeni + + +
    +
    + + diff --git a/docs/manual/mod/mod_usertrack.html b/docs/manual/mod/mod_usertrack.html index 0d24c8e0df0..63ee8b409a8 100644 --- a/docs/manual/mod/mod_usertrack.html +++ b/docs/manual/mod/mod_usertrack.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_usertrack.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_usertrack.html.en b/docs/manual/mod/mod_usertrack.html.en index f7b81ac63e1..cff00da1551 100644 --- a/docs/manual/mod/mod_usertrack.html.en +++ b/docs/manual/mod/mod_usertrack.html.en @@ -1,25 +1,32 @@ - -mod_usertrack - Apache HTTP Server +mod_usertrack - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_usertrack

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_usertrack

    Available Languages:  en 

    @@ -27,8 +34,8 @@ Clickstream logging of user activity on a site Status:Extension -Module Identifier:usertrack_module -Source File:mod_usertrack.c +Module Identifier:usertrack_module +Source File:mod_usertrack.c

    Summary

    Previous releases of Apache have included a module which @@ -38,7 +45,11 @@ tracking" module, mod_usertrack. This module has been simplified and new directives added.

    -
    top

    Logging

    @@ -79,8 +86,7 @@ CustomLog logs/clickstream "%{cookie}n %r %t"

    (the following is from message <022701bda43d$9d32bbb0$1201a8c0@christian.office.sane.com> in the new-httpd archives)

    -
    -From: "Christian Allen" <christian@sane.com>
    +
    From: "Christian Allen" <christian@sane.com>
     Subject: Re: Apache Y2K bug in mod_usertrack.c
     Date: Tue, 30 Jun 1998 11:41:56 -0400
     
    @@ -109,8 +115,7 @@ Summary:  Mozilla 3.x and up understands two digit dates up until "37"
     (2037).  Mozilla 4.x understands up until at least "50" (2050) in 2-digit
     form, but also understands 4-digit years, which can probably reach up until
     9999.  Your best bet for sending a long-life cookie is to send it for some
    -time late in the year "37".
    -
    +time late in the year "37".
    top
    @@ -130,7 +135,21 @@ time late in the year "37".

    The domain string must begin with a dot, and must include at least one embedded dot. That is, - ".foo.com" is legal, but "foo.bar.com" and ".com" are not.

    + .example.com is legal, but foo.example.com and + .com are not.

    + +
    Most browsers in use today will not allow cookies to be set + for a two-part top level domain, such as .co.uk, + although such a domain ostensibly fulfills the requirements + above.
    + + These domains are equivalent to top level domains such as + .com, and allowing such cookies may be a security + risk. Thus, if you are under a two-part top level domain, you + should still use your actual domain, as you would with any other top + level domain (for example, use .foo.co.uk). +
    +
    top
    @@ -202,9 +221,10 @@ time late in the year "37". current cookie syntax. -

    Not all clients can understand all of these formats. but you +

    Not all clients can understand all of these formats, but you should use the newest one that is generally acceptable to your - users' browsers.

    + users' browsers. At the time of writing, most browsers only fully + support CookieStyle Netscape.

    top
    @@ -218,19 +238,41 @@ time late in the year "37". Status:Extension Module:mod_usertrack -

    When the user track module is compiled in, and - "CookieTracking on" is set, Apache will start sending a +

    When mod_usertrack is loaded, and + CookieTracking on is set, Apache will send a user-tracking cookie for all new requests. This directive can be used to turn this behavior on or off on a per-server or - per-directory basis. By default, compiling mod_usertrack will - not activate cookies.

    + per-directory basis. By default, enabling + mod_usertrack will not + activate cookies.

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_usertrack.xml b/docs/manual/mod/mod_usertrack.xml index 31eace67869..5b63bca546d 100644 --- a/docs/manual/mod/mod_usertrack.xml +++ b/docs/manual/mod/mod_usertrack.xml @@ -4,12 +4,12 @@ - + mod_usertrack /mod/ .. diff --git a/docs/manual/mod/mod_version.html b/docs/manual/mod/mod_version.html index ee3abd15565..03cb2547262 100644 --- a/docs/manual/mod/mod_version.html +++ b/docs/manual/mod/mod_version.html @@ -1,10 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_version.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mod_version.html.ja.euc-jp +URI: mod_version.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mod_version.html.ko.euc-kr Content-Language: ko diff --git a/docs/manual/mod/mod_version.html.en b/docs/manual/mod/mod_version.html.en index ffa6e34e422..e17ad0e9704 100644 --- a/docs/manual/mod/mod_version.html.en +++ b/docs/manual/mod/mod_version.html.en @@ -1,25 +1,32 @@ - -mod_version - Apache HTTP Server +mod_version - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_version

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_version

    Available Languages:  en  |  ja  | @@ -27,9 +34,9 @@

    - - -
    Description:Version dependent configuration
    Status:Extension
    Module Identifier:version_module
    Source File:mod_version.c
    Compatibility:Available in version 2.1 and later
    +Module Identifier:version_module +Source File:mod_version.c +Compatibility:Available in version 2.0.56 and later

    Summary

    This module is designed for the use in test suites and large @@ -58,7 +65,7 @@

    -
    +
    top

    <IfVersion> Directive

    @@ -104,8 +111,9 @@ </IfVersion>

    -

    Besides the numerical comparison it is possible to match a regular - expression against the httpd version. There are two ways to write it:

    +

    Besides the numerical comparison it is possible to match a + regular expression + against the httpd version. There are two ways to write it:

    @@ -144,7 +152,28 @@

    Available Languages:  en  |  ja  |  ko 

    - +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_version.html.ja.euc-jp b/docs/manual/mod/mod_version.html.ja.euc-jp deleted file mode 100644 index a9c33f7ff47..00000000000 --- a/docs/manual/mod/mod_version.html.ja.euc-jp +++ /dev/null @@ -1,148 +0,0 @@ - - - -mod_version - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache ¥⥸¥塼¥ë mod_version

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -
    operatordescription
    = or ==
    - - - -
    ÀâÌÀ:¥С¼¥¸¥ç¥ó°Í¸¤ÎÀßÄê
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥뼱Ê̻Ò:version_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mod_version.c
    ¸ߴ¹À­:¥С¼¥¸¥ç¥ó 2.1 °ʹß
    -

    ³µÍ×

    - -

    Í͡¹¤ʥС¼¥¸¥ç¥ó¤Î httpd ¤ΰۤʤëÀßÄê¤򰷤¦¤³¤Ȥˤʤ롢 - ¥ƥ¹¥ȥ¹¥¤¡¼¥ȤäÂ絬Ìϥͥåȥ¥¯¤ǤλÈÍѤΤ¿¤á¤ËÀ߷פµ¤ì¤Ƥ¤¤ޤ¹¡£ - ¤³¤Υ⥸¥塼¥ë¤Ͽ·¤·¤¤¥³¥ó¥ƥÊ ¡½ <IfVersion> ¤ò - Ä󶡤·¤ޤ¹¡£¤³¤ì¤ò»Ȥ¦¤ȡ¢¿ô»ú¤ÎÈæ³ӤäÀµµ¬ɽ¸½¤ˤè¤ë½ÀÆð¤Ê - ¥С¼¥¸¥ç¥ó¥Á¥§¥å¯¤¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ¹¡£

    - -

    Îã

    - <IfVersion 2.1.0>
    - - # current httpd version is exactly 2.1.0
    -
    - </IfVersion>
    -
    - <IfVersion >= 2.2>
    - - # use really new features :-)
    -
    - </IfVersion> -

    - -

    ¾ܺ٤ϰʲ¼¤òÆɤó¤Ǥ¯¤À¤µ¤¤¡£

    -
    -

    ¥ǥ£¥쥯¥ƥ£¥Ö

    - -
    - -
    top
    -

    <IfVersion> ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥С¼¥¸¥ç¥ó°Í¸¤ÎÀßÄê¤òÆþ¤ì¤ë
    ¹½ʸ:<IfVersion [[!]operator] version> ... -</IfVersion>
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë, ¥С¼¥Á¥ã¥ë¥ۥ¹¥È, ¥ǥ£¥쥯¥ȥê, .htaccess
    ¾å½ñ¤­:All
    ¥¹¥ơ¼¥¿¥¹:Extension
    ¥⥸¥塼¥ë:mod_version
    -

    <IfVersion> ¤Ï httpd ¤ΥС¼¥¸¥ç¥ó - ¤¬´ð½à¤òËþ¤¿¤·¤¿¤Ȥ­¤ˤΤ߼¹Ԥµ¤»¤¿¤¤¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥߤޤ¹¡£ - Ä̾ï¤Î (¿ôÃÍ) Èæ³ӤΤȤ­¤Ï version °ú¿ô¤Ï - major[.minor[.patch]] ¤Ȥ¤¤¦ - ·Á¼°¡¢Î㤨¤С¢2.1.0 ¤ä 2.2 ¤Ȥʤê¤ޤ¹¡£ - minor ¤È patch ¤ϾÊά²Äǽ¤Ǥ¹¡£¾Êά¤µ¤줿¾ì¹ç¤ϡ¢ - 0 ¤ò»ØÄꤷ¤¿¤â¤ΤȤߤʤµ¤ì¤ޤ¹¡£Èæ³Ӥˤϼ¡¤οôÃÍ operator ¤ò - »ØÄê¤Ǥ­¤ޤ¹:

    - - - - - - - - - - - - -
    operatorÀâÌÀ
    = ¤È ==Ʊ¤¸ httpd ¥С¼¥¸¥ç¥ó
    >¤è¤êÂ礭¤¤ httpd ¥С¼¥¸¥ç¥ó
    >=»ØÄê°ʾå¤Î httpd ¥С¼¥¸¥ç¥ó
    <»ØÄê̤Ëþ¤Î httpd ¥С¼¥¸¥ç¥ó
    <=»ØÄê°ʲ¼¤Î httpd ¥С¼¥¸¥ç¥ó
    - -

    Îã

    - <IfVersion >= 2.1>
    - - # this happens only in versions greater or
    - # equal 2.1.0.
    -
    - </IfVersion> -

    - -

    ¿ôÃÍÈæ³Ӥ˲䨤ơ¢http ¤ΥС¼¥¸¥ç¥óÈֹæ¤ËÂФ·¤ÆÀµµ¬ɽ¸½¤ˤè¤ë - ¥ޥåÁ¥󥰤¬¤Ǥ­¤ޤ¹¡£Æó¼ïÎà¤νñ¤­Êý¤¬¤¢¤ê¤ޤ¹:

    - - - - - - -
    operatorÀâÌÀ
    = or ==version ¤Ï - /regex/ ·Á¼°
    ~version ¤Ï - regex ·Á¼°
    - -

    Îã

    - <IfVersion = /^2.1.[01234]$/>
    - - # e.g. workaround for buggy versions - - </IfVersion> -

    - -

    ¥ޥåÁ¥󥰤ÎÈÝÄê¤òɽ¸½¤¹¤뤿¤á¤ˡ¢¤¹¤٤ƤΥª¥ڥ졼¥¿¤ÏÁ°¤Ë - ´¶òÉä (!)¤òÉդ±¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    - <IfVersion !~ ^2.1.[01234]$>
    - - # not for those versions
    -
    - </IfVersion> -

    - -

    operator ¤¬¾Êά¤µ¤줿¤Ȥ­¤Ï = ¤È - ¤ߤʤµ¤ì¤ޤ¹¡£

    - -
    - -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mod_version.html.ja.utf8 b/docs/manual/mod/mod_version.html.ja.utf8 new file mode 100644 index 00000000000..926c8a26b45 --- /dev/null +++ b/docs/manual/mod/mod_version.html.ja.utf8 @@ -0,0 +1,177 @@ + + + + + +mod_version - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュール mod_version

    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    + + + + +
    説明:バージョン依存の設定
    ステータス:Extension
    モジュール識別子:version_module
    ソースファイル:mod_version.c
    互換性:Apache 2.0.56 以降で使用可能
    +

    概要

    + +

    様々なバージョンの httpd の異なる設定を扱うことになる、 + テストスイートや大規模ネットワークでの使用のために設計されています。 + このモジュールは新しいコンテナ ― <IfVersion> を + 提供します。これを使うと、数字の比較や正規表現による柔軟な + バージョンチェックができるようになります。

    + +

    例

    + <IfVersion 2.1.0>
    + + # current httpd version is exactly 2.1.0
    +
    + </IfVersion>
    +
    + <IfVersion >= 2.2>
    + + # use really new features :-)
    +
    + </IfVersion> +

    + +

    詳細は以下を読んでください。

    +
    +

    ディレクティブ

    + +
    + +
    top
    +

    <IfVersion> ディレクティブ

    + + + + + + + +
    説明:バージョン依存の設定を入れる
    構文:<IfVersion [[!]operator] version> ... +</IfVersion>
    コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
    上書き:All
    ステータス:Extension
    モジュール:mod_version
    +

    <IfVersion> は httpd のバージョン + が基準を満たしたときにのみ実行させたいディレクティブを囲みます。 + 通常の (数値) 比較のときは version 引数は + major[.minor[.patch]] という + 形式、例えば、2.1.0 や 2.2 となります。 + minor と patch は省略可能です。省略された場合は、 + 0 を指定したものとみなされます。比較には次の数値 operator を + 指定できます:

    + + + + + + + + + + + + +
    operator説明
    = と ==同じ httpd バージョン
    >より大きい httpd バージョン
    >=指定以上の httpd バージョン
    <指定未満の httpd バージョン
    <=指定以下の httpd バージョン
    + +

    例

    + <IfVersion >= 2.1>
    + + # this happens only in versions greater or
    + # equal 2.1.0.
    +
    + </IfVersion> +

    + +

    数値比較に加えて、http のバージョン番号に対して + 正規表現 による + マッチングができます。二種類の書き方があります:

    + + + + + + +
    operator説明
    = or ==version は + /regex/ 形式
    ~version は + regex 形式
    + +

    例

    + <IfVersion = /^2.1.[01234]$/>
    + + # e.g. workaround for buggy versions + + </IfVersion> +

    + +

    マッチングの否定を表現するために、すべてのオペレータは前に + 感嘆符 (!)を付けることができます:

    + +

    + <IfVersion !~ ^2.1.[01234]$>
    + + # not for those versions
    +
    + </IfVersion> +

    + +

    operator が省略されたときは = と + みなされます。

    + +
    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_version.html.ko.euc-kr b/docs/manual/mod/mod_version.html.ko.euc-kr index 5e16b8f5414..438a34718a3 100644 --- a/docs/manual/mod/mod_version.html.ko.euc-kr +++ b/docs/manual/mod/mod_version.html.ko.euc-kr @@ -1,25 +1,32 @@ - -mod_version - Apache HTTP Server +mod_version - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    -

    ¾ÆÆÄġ ¸ðµâ mod_version

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ ¸ðµâ mod_version

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | @@ -60,7 +67,7 @@

    -
    +
    top

    <IfVersion> Áö½þî

    @@ -144,7 +151,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_version.xml b/docs/manual/mod/mod_version.xml index e96a2de3f02..1e8ae427b2e 100644 --- a/docs/manual/mod/mod_version.xml +++ b/docs/manual/mod/mod_version.xml @@ -4,12 +4,12 @@ + + - + mod_version /mod/ .. diff --git a/docs/manual/mod/mod_vhost_alias.html b/docs/manual/mod/mod_vhost_alias.html index 75b549250c3..62ad4bdf81c 100644 --- a/docs/manual/mod/mod_vhost_alias.html +++ b/docs/manual/mod/mod_vhost_alias.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mod_vhost_alias.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: mod_vhost_alias.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mod_vhost_alias.html.en b/docs/manual/mod/mod_vhost_alias.html.en index 4908ae64c51..e15b8d930f6 100644 --- a/docs/manual/mod/mod_vhost_alias.html.en +++ b/docs/manual/mod/mod_vhost_alias.html.en @@ -1,33 +1,41 @@ - -mod_vhost_alias - Apache HTTP Server +mod_vhost_alias - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache Module mod_vhost_alias

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Module mod_vhost_alias

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + tr 

    - -
    Description:Provides for dynamically configured mass virtual hosting
    Status:Extension
    Module Identifier:vhost_alias_module
    Source File:mod_vhost_alias.c
    +Module Identifier:vhost_alias_module +Source File:mod_vhost_alias.c

    Summary

    This module creates dynamically configured virtual hosts, by @@ -50,23 +58,23 @@ hosting

    -
    top

    Directory Name Interpolation

    @@ -305,8 +313,30 @@ a given virtual host
    -

    Available Languages:  en 

    -
    +

    Available Languages:  en  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mod_vhost_alias.html.tr.utf8 b/docs/manual/mod/mod_vhost_alias.html.tr.utf8 new file mode 100644 index 00000000000..4a4f4cba8f0 --- /dev/null +++ b/docs/manual/mod/mod_vhost_alias.html.tr.utf8 @@ -0,0 +1,334 @@ + + + + + +mod_vhost_alias - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Modülü mod_vhost_alias

    +
    +

    Mevcut Diller:  en  | + tr 

    +
    + + + +
    Açıklama:Kitlesel sanal konakların devingen olarak yapılandırılmasını +sağlar
    Durum:Eklenti
    Modül Betimleyici:vhost_alias_module
    Kaynak Dosyası:mod_vhost_alias.c
    +

    Özet

    + +

    Bu modül, hangi dosyaların sunulacağını saptamak için dosya yolunun + parçası olarak HTTP isteğinin Host: başlığının ve/veya IP + adresinin kullanılmasını mümkün kılarak devingen yapılandırmalı sanal + konaklar oluşturur. Böylece benzer yapılandırmaya sahip çok büyük sayıda + sanal konak kullanımı kolaşlaşır.

    + +

    Bilginize

    +

    URI’leri dosya isimlerine dönüştürmek için mod_alias + veya mod_userdir kullanılmışsa bunlar + mod_vhost_alias yönergeleri tarafından aşağıda + açıklandığı gibi geçersiz kılınırlar. Örneğin, aşağıdaki yapılandırma + her durumda /cgi-bin/script.pl betiğini + /usr/local/apache2/cgi-bin/script.pl betiğine eşleyecektir:

    + +

    + ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
    + VirtualScriptAlias /nerede/bilinmiyor/%0/cgi-bin/ +

    +
    +
    + +
    top
    +
    +

    Dizin İsimlerinin Elde Edilmesi

    + + +

    Bu modüldeki tüm yönergeler bir dizgeyi bir dosya yoluna dönüştürerek + çalışırlar. Dönüşüm dizgesi (bundan sonra “isim” diyeceğiz) ya sunucu + ismi olur (bunun nasıl belirlendiğini öğrenmek için UseCanonicalName yönergesine bakınız) ya da + sunucu üzerindeki sanal konağın IP adresi olur. Dönüşümü, + printf’inkilerin benzeri birkaç biçem belirteci + denetler:

    + + + + + + + + + + + + +
    %%Bir % imi yerleştirir.
    %pSanal konağın IP adresini yerleştirir.
    %N.Mİsmin parçalarını yerleştirir.
    + +

    N ve M ismin alt dizgelerini belirtmek için + kullanılır. N, ismin noktalarla ayrılmış bileşenlerinden + seçim yaparken M, N ile seçilen parçadan + karakter seçmekte kullanılır. M isteğe bağlı olup mevcut + olmaması halinde öntanımlı olarak sıfırdır. Noktanın varlığı + M’nin varlığına bağlıdır. Dönüşüm şöyle uygulanır:

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    0ismin tamamı
    1ilk parça
    2ikinci parça
    -1son parça
    -2sondan bir önceki parça
    2+ikinci parça ve sonraki parçaların hepsi
    -2+sondan bir önceki parça ve daha önceki parçaların hepsi
    1+ ve -1+0 ile aynı
    + +

    N veya M parça sayısından büyükse dönüşüm + dizgesi sadece alt çizgi karakterini içerir.

    + +
    top
    +
    +

    Örnekler

    + + +

    Sunucu yapılandırma dosyanızda isme dayalı sanal konaklar için + aşağıdaki yönergeler kullanılıyor olsun:

    + +

    + UseCanonicalName Off
    + VirtualDocumentRoot /usr/local/apache/sankonlar/%0 +

    + +

    http://mesela.dom/dizin/dosya.html için yapılan bir istek + /usr/local/apache/sankonlar/mesela.dom/dizin/dosya.html + dosyası ile yerine getirilecektir.

    + +

    Çok büyük sayıda sanal konak için sankonlar dizininin + boyutlarını küçük tutmak amacıyla dosyalar düzenlenebilir. Bunu + yapılandırma dosyanızda şöyle yapabilirsiniz:

    + +

    + UseCanonicalName Off
    + VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2 +

    + +

    http://falan.filan.mesela.dom/dizin/dosya.html için + yapılan bir istek + /usr/local/apache/sankonlar/mesela.dom/f/i/l/filan/dizin/dosya.html + ile yerine getirilecektir.

    + +

    Bu sefer de parçaları ismin sonundan toplayalım:

    + +

    + VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.-1/%2.-2/%2.-3/%2 +

    + +

    Bu durumda istek + /usr/local/apache/sankonlar/mesela.dom/n/a/l/filan/dizin/dosya.html + ile karşılanırdı.

    + +

    Şöyle bir şey de yapabilirsiniz:

    + +

    + VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2.4+ +

    + +

    Bu örnek için istek + /usr/local/apache/sankonlar/mesela.dom/f/i/l/an/dizin/dosya.html + dosyasından karşılanırdı.

    + +

    IP’ye dayalı sanal konaklar için yapılandırma dosyanızda şu satırlar + olabilirdi:

    + +

    + UseCanonicalName DNS
    + VirtualDocumentRootIP + /usr/local/apache/sankonlar/%1/%2/%3/%4/belgeler
    + VirtualScriptAliasIP /usr/local/apache/sankonlar/%1/%2/%3/%4/cgi-bin +

    + +

    http://falan.filan.mesela.dom/dizin/dosya.html için + yapılan bir istek eğer falan.filan.mesela.dom’un IP adresi + 10.20.30.40 olsaydı, + /usr/local/apache/sankonlar/10/20/30/40/belgeler/dizin/dosya.html + dosyası ile karşılanırdı. + http://falan.filan.mesela.dom/cgi-bin/betik.pl için yapılan + bir istek ise + /usr/local/apache/sankonlar/10/20/30/40/cgi-bin/betik.pl + betiğinin çalıştırılması ile sağlanırdı.

    + +

    Bir VirtualDocumentRoot yönergesinin . + karakterini içermesini isterseniz, bir biçem belirteci ile karışıklığa + sebep olmaksızın bunu şöyle sağlayabilirsiniz:

    + +

    + VirtualDocumentRoot /usr/local/apache/sankonlar/%2.0.%3.0 +

    + +

    Bu durumda http://falan.filan.mesela.dom/dizin/dosya.html + için yapılan bir istek + /usr/local/apache/sankonlar/filan.mesela/dizin/dosya.html + dosyası ile karşılanacaktır.

    + +

    LogFormat yönergesinin + %V ve %A biçem belirteçleri bu modülle + birlikte kullanıldığında çok yararlı olurlar.

    +
    +
    top
    +

    VirtualDocumentRoot Yönergesi

    + + + + + + + +
    Açıklama:Bir sanal konağın belge kök dizinini devingen olarak yapılandırır. +
    Sözdizimi:VirtualDocumentRoot hesaplanan-dizin|none
    Öntanımlı:VirtualDocumentRoot none
    Bağlam:sunucu geneli, sanal konak
    Durum:Eklenti
    Modül:mod_vhost_alias
    + +

    VirtualDocumentRoot yönergesi sunucu ismine göre + belgelerin bulunacağı yeri Apache’nin saptamasını sağlar. + hesaplanan-dizin’in dönüşüm sonucu DocumentRoot yönergesinin değeriymiş gibi + belge ağacının kök dizini olarak kullanılır. + hesaplanan-dizin yerine none + belirtilmişse VirtualDocumentRoot iptal edilmiş + olur. Bu yönerge VirtualDocumentRootIP yönergesinin kullanıldığı bağlamda + yer alamaz.

    + + +
    +
    top
    +

    VirtualDocumentRootIP Yönergesi

    + + + + + + + +
    Açıklama:Bir sanal konağın belge kök dizinini devingen olarak yapılandırır. +
    Sözdizimi:VirtualDocumentRootIP hesaplanan-dizin|none
    Öntanımlı:VirtualDocumentRootIP none
    Bağlam:sunucu geneli, sanal konak
    Durum:Eklenti
    Modül:mod_vhost_alias
    + +

    VirtualDocumentRootIP yönergesi, dizinin + saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP + adresini kullanması dışında VirtualDocumentRoot gibidir.

    + +
    +
    top
    +

    VirtualScriptAlias Yönergesi

    + + + + + + + +
    Açıklama:Bir sanal konağın CGI dizinini devingen olarak yapılandırır. +
    Sözdizimi:VirtualScriptAlias hesaplanan-dizin|none
    Öntanımlı:VirtualScriptAlias none
    Bağlam:sunucu geneli, sanal konak
    Durum:Eklenti
    Modül:mod_vhost_alias
    + +

    VirtualScriptAlias yönergesi, CGI betiklerinin + bulunacağı yeri Apache’nin saptamasını sağlamak bakımından VirtualDocumentRoot yönergesinin + yaptığını yapar. /cgi-bin/ ile başlayan istekler için ise + ScriptAlias yönergesinin + yaptığını yapar.

    + + +
    +
    top
    +

    VirtualScriptAliasIP Yönergesi

    + + + + + + + +
    Açıklama:Bir sanal konağın CGI dizinini devingen olarak yapılandırır. +
    Sözdizimi:VirtualScriptAliasIP hesaplanan-dizin|none
    Öntanımlı:VirtualScriptAliasIP none
    Bağlam:sunucu geneli, sanal konak
    Durum:Eklenti
    Modül:mod_vhost_alias
    + +

    VirtualScriptAliasIP yönergesi, dizinin + saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP + adresini kullanması dışında VirtualScriptAlias gibidir.

    + + +
    +
    +
    +

    Mevcut Diller:  en  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_vhost_alias.xml b/docs/manual/mod/mod_vhost_alias.xml index a378e17fc4e..b1111817eac 100644 --- a/docs/manual/mod/mod_vhost_alias.xml +++ b/docs/manual/mod/mod_vhost_alias.xml @@ -4,12 +4,12 @@ - + mod_vhost_alias /mod/ .. en + tr diff --git a/docs/manual/mod/mod_vhost_alias.xml.tr b/docs/manual/mod/mod_vhost_alias.xml.tr new file mode 100644 index 00000000000..ce935661365 --- /dev/null +++ b/docs/manual/mod/mod_vhost_alias.xml.tr @@ -0,0 +1,305 @@ + + + + + + + + + + +mod_vhost_alias +Kitlesel sanal konakların devingen olarak yapılandırılmasını +sağlar +Extension +mod_vhost_alias.c +vhost_alias_module + + +

    Bu modül, hangi dosyaların sunulacağını saptamak için dosya yolunun + parçası olarak HTTP isteğinin Host: başlığının ve/veya IP + adresinin kullanılmasını mümkün kılarak devingen yapılandırmalı sanal + konaklar oluşturur. Böylece benzer yapılandırmaya sahip çok büyük sayıda + sanal konak kullanımı kolaşlaşır.

    + + Bilginize +

    URI’leri dosya isimlerine dönüştürmek için mod_alias + veya mod_userdir kullanılmışsa bunlar + mod_vhost_alias yönergeleri tarafından aşağıda + açıklandığı gibi geçersiz kılınırlar. Örneğin, aşağıdaki yapılandırma + her durumda /cgi-bin/script.pl betiğini + /usr/local/apache2/cgi-bin/script.pl betiğine eşleyecektir:

    + + + ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
    + VirtualScriptAlias /nerede/bilinmiyor/%0/cgi-bin/ +
    +
    +
    + +UseCanonicalName +Devingen olarak Yapılandırılan Kitlesel +Sanal Barındırma + +
    + Dizin İsimlerinin Elde Edilmesi + +

    Bu modüldeki tüm yönergeler bir dizgeyi bir dosya yoluna dönüştürerek + çalışırlar. Dönüşüm dizgesi (bundan sonra “isim” diyeceğiz) ya sunucu + ismi olur (bunun nasıl belirlendiğini öğrenmek için UseCanonicalName yönergesine bakınız) ya da + sunucu üzerindeki sanal konağın IP adresi olur. Dönüşümü, + printf’inkilerin benzeri birkaç biçem belirteci + denetler:

    + + + + + + + + + + + + +
    %%Bir % imi yerleştirir.
    %pSanal konağın IP adresini yerleştirir.
    %N.Mİsmin parçalarını yerleştirir.
    + +

    N ve M ismin alt dizgelerini belirtmek için + kullanılır. N, ismin noktalarla ayrılmış bileşenlerinden + seçim yaparken M, N ile seçilen parçadan + karakter seçmekte kullanılır. M isteğe bağlı olup mevcut + olmaması halinde öntanımlı olarak sıfırdır. Noktanın varlığı + M’nin varlığına bağlıdır. Dönüşüm şöyle uygulanır:

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    0ismin tamamı
    1ilk parça
    2ikinci parça
    -1son parça
    -2sondan bir önceki parça
    2+ikinci parça ve sonraki parçaların hepsi
    -2+sondan bir önceki parça ve daha önceki parçaların hepsi
    1+ ve -1+0 ile aynı
    + +

    N veya M parça sayısından büyükse dönüşüm + dizgesi sadece alt çizgi karakterini içerir.

    + +
    + +
    + Örnekler + +

    Sunucu yapılandırma dosyanızda isme dayalı sanal konaklar için + aşağıdaki yönergeler kullanılıyor olsun:

    + + + UseCanonicalName Off
    + VirtualDocumentRoot /usr/local/apache/sankonlar/%0 +
    + +

    http://mesela.dom/dizin/dosya.html için yapılan bir istek + /usr/local/apache/sankonlar/mesela.dom/dizin/dosya.html + dosyası ile yerine getirilecektir.

    + +

    Çok büyük sayıda sanal konak için sankonlar dizininin + boyutlarını küçük tutmak amacıyla dosyalar düzenlenebilir. Bunu + yapılandırma dosyanızda şöyle yapabilirsiniz:

    + + + UseCanonicalName Off
    + VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2 +
    + +

    http://falan.filan.mesela.dom/dizin/dosya.html için + yapılan bir istek + /usr/local/apache/sankonlar/mesela.dom/f/i/l/filan/dizin/dosya.html + ile yerine getirilecektir.

    + +

    Bu sefer de parçaları ismin sonundan toplayalım:

    + + + VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.-1/%2.-2/%2.-3/%2 + + +

    Bu durumda istek + /usr/local/apache/sankonlar/mesela.dom/n/a/l/filan/dizin/dosya.html + ile karşılanırdı.

    + +

    Şöyle bir şey de yapabilirsiniz:

    + + + VirtualDocumentRoot /usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2.4+ + + +

    Bu örnek için istek + /usr/local/apache/sankonlar/mesela.dom/f/i/l/an/dizin/dosya.html + dosyasından karşılanırdı.

    + +

    IP’ye dayalı sanal konaklar için yapılandırma dosyanızda şu satırlar + olabilirdi:

    + + + UseCanonicalName DNS
    + VirtualDocumentRootIP + /usr/local/apache/sankonlar/%1/%2/%3/%4/belgeler
    + VirtualScriptAliasIP /usr/local/apache/sankonlar/%1/%2/%3/%4/cgi-bin +
    + +

    http://falan.filan.mesela.dom/dizin/dosya.html için + yapılan bir istek eğer falan.filan.mesela.dom’un IP adresi + 10.20.30.40 olsaydı, + /usr/local/apache/sankonlar/10/20/30/40/belgeler/dizin/dosya.html + dosyası ile karşılanırdı. + http://falan.filan.mesela.dom/cgi-bin/betik.pl için yapılan + bir istek ise + /usr/local/apache/sankonlar/10/20/30/40/cgi-bin/betik.pl + betiğinin çalıştırılması ile sağlanırdı.

    + +

    Bir VirtualDocumentRoot yönergesinin . + karakterini içermesini isterseniz, bir biçem belirteci ile karışıklığa + sebep olmaksızın bunu şöyle sağlayabilirsiniz:

    + + + VirtualDocumentRoot /usr/local/apache/sankonlar/%2.0.%3.0 + + +

    Bu durumda http://falan.filan.mesela.dom/dizin/dosya.html + için yapılan bir istek + /usr/local/apache/sankonlar/filan.mesela/dizin/dosya.html + dosyası ile karşılanacaktır.

    + +

    LogFormat yönergesinin + %V ve %A biçem belirteçleri bu modülle + birlikte kullanıldığında çok yararlı olurlar.

    +
    + + +VirtualDocumentRoot +Bir sanal konağın belge kök dizinini devingen olarak yapılandırır. + +VirtualDocumentRoot hesaplanan-dizin|none +VirtualDocumentRoot none + +server config +virtual host + + + + +

    VirtualDocumentRoot yönergesi sunucu ismine göre + belgelerin bulunacağı yeri Apache’nin saptamasını sağlar. + hesaplanan-dizin’in dönüşüm sonucu DocumentRoot yönergesinin değeriymiş gibi + belge ağacının kök dizini olarak kullanılır. + hesaplanan-dizin yerine none + belirtilmişse VirtualDocumentRoot iptal edilmiş + olur. Bu yönerge VirtualDocumentRootIP yönergesinin kullanıldığı bağlamda + yer alamaz.

    + +
    +
    + + +VirtualDocumentRootIP +Bir sanal konağın belge kök dizinini devingen olarak yapılandırır. + +VirtualDocumentRootIP hesaplanan-dizin|none +VirtualDocumentRootIP none + +server config +virtual host + + + + +

    VirtualDocumentRootIP yönergesi, dizinin + saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP + adresini kullanması dışında VirtualDocumentRoot gibidir.

    +
    +
    + + +VirtualScriptAlias +Bir sanal konağın CGI dizinini devingen olarak yapılandırır. + +VirtualScriptAlias hesaplanan-dizin|none +VirtualScriptAlias none + +server config +virtual host + + + + +

    VirtualScriptAlias yönergesi, CGI betiklerinin + bulunacağı yeri Apache’nin saptamasını sağlamak bakımından VirtualDocumentRoot yönergesinin + yaptığını yapar. /cgi-bin/ ile başlayan istekler için ise + ScriptAlias yönergesinin + yaptığını yapar.

    + +
    +
    + + +VirtualScriptAliasIP +Bir sanal konağın CGI dizinini devingen olarak yapılandırır. + +VirtualScriptAliasIP hesaplanan-dizin|none +VirtualScriptAliasIP none + +server config +virtual host + + + + +

    VirtualScriptAliasIP yönergesi, dizinin + saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP + adresini kullanması dışında VirtualScriptAlias gibidir.

    + +
    + +
    +
    + diff --git a/docs/manual/mod/module-dict.html b/docs/manual/mod/module-dict.html index 61d6c0f9537..d00e7b5800f 100644 --- a/docs/manual/mod/module-dict.html +++ b/docs/manual/mod/module-dict.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: module-dict.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: module-dict.html.ja.euc-jp +URI: module-dict.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: module-dict.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: module-dict.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/module-dict.html.en b/docs/manual/mod/module-dict.html.en index 1801086180d..9fd61384c5f 100644 --- a/docs/manual/mod/module-dict.html.en +++ b/docs/manual/mod/module-dict.html.en @@ -1,26 +1,34 @@ - -Terms Used to Describe Modules - Apache HTTP Server +Terms Used to Describe Modules - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Terms Used to Describe Modules

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Terms Used to Describe Modules

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    This document describes the terms that are used to describe @@ -31,7 +39,7 @@

  • Source File
  • Module Identifier
  • Compatibility
  • -
    +
    top

    Description

    @@ -110,8 +118,30 @@

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/module-dict.html.ja.euc-jp b/docs/manual/mod/module-dict.html.ja.euc-jp deleted file mode 100644 index 11517298a0e..00000000000 --- a/docs/manual/mod/module-dict.html.ja.euc-jp +++ /dev/null @@ -1,119 +0,0 @@ - - - -Apache ¥⥸¥塼¥ë¤βòÀâ¤ǻÈÍѤ¹¤ëÍѸì - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    Apache ¥⥸¥塼¥ë¤βòÀâ¤ǻÈÍѤ¹¤ëÍѸì

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    ¤³¤Îʸ½ñ¤Ï Apache ¤γÆ ¥⥸¥塼¥ë ¤òÀâÌÀ¤¹¤뤿¤á¤Ë - »Ȥï¤ì¤Ƥ¤¤ëÍѸì¤òÀâÌÀ¤·¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ÀâÌÀ

    - -

    ¥⥸¥塼¥ë¤ÎÌÜŪ¤Îû¤¤ÀâÌÀ¡£

    -
    top
    -
    -

    ¥¹¥ơ¼¥¿¥¹

    - -

    ¤³¤ì¤ϡ¢¤½¤Υ⥸¥塼¥뤬 Apache - ¥¦¥§¥֥µ¡¼¥Фˤɤ줯¤餤̩ÀܤËÁȤ߹þ¤ޤì¤Ƥ¤¤뤫¤򼨤·¤ޤ¹¡£ - ¸À¤¤´¹¤¨¤ì¤С¢¥⥸¥塼¥ë¤òÁȤ߹þ¤ߡ¢¤½¤ε¡ǽ¤òÍøÍѤ¹¤뤿¤á¤ˡ¢ - ¥µ¡¼¥Фòºƥ³¥ó¥ѥ¤¥뤹¤ëɬÍפ¬¤¢¤뤫¤⤷¤ì¤ʤ¤¤Ȥ¤¤¦¤³¤Ȥ򼨤·¤ޤ¹¡£ - ¤³¤Î°À­¤¬¼è¤êÆÀ¤ëÃͤϰʲ¼¤Τâ¤ΤǤ¹:

    -
    -
    MPM
    - -
    ¥¹¥ơ¼¥¿¥¹¤¬ "MPM" ¤Υ⥸¥塼¥ë¤Ï¥ޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë¤Ǥ¹¡£ - ¾¤μïÎà¤Υ⥸¥塼¥ë¤Ȥϰã¤äơ¢Apache ¤Ͼï¤Ë MPM ¤ò°ì¤ĤÀ¤± - »ÈÍѤ·³¤±¤ޤ¹¡£¤³¤μïÎà¤Υ⥸¥塼¥ë¤ϴðËÜŪ¤ʥꥯ¥¨¥¹¥Ȥΰ·¤¤¤È - ¥ǥ£¥¹¥ѥåÁ¤ò¹Ԥʤ¤¤ޤ¹¡£
    - -
    Base
    - -
    ¥¹¥ơ¼¥¿¥¹¤¬ "Base" - ¤Υ⥸¥塼¥ë¤ϡ¢¥ǥե©¥ë¥Ȥǥ³¥ó¥ѥ¤¥뤵¤ì¤Ƥ虜¤虜ÀßÄ꤫¤é - ¥⥸¥塼¥ë¤òºï½ü¤·¤Ƥ¤¤ʤ¤¸¤ꡢÄ̾ï¤ÏÍøÍѲÄǽ¤Ǥ¹¡£ -
    - -
    Extension
    - -
    ¥¹¥ơ¼¥¿¥¹¤¬ "Extension" ¤Υ⥸¥塼¥ë¤ϡ¢ - ¥ǥե©¥ë¥ȤǤϥ³¥ó¥ѥ¤¥뤵¤줺¡¢¥µ¡¼¥ФˤâÆɤ߹þ¤ޤì¤ޤ»¤ó¡£ - ¤½¤Υ⥸¥塼¥ë¤Ȥ½¤ε¡ǽ¤òͭ¸ú¤ˤ¹¤ë¤ˤϡ¢ - ¥µ¡¼¥Фò¥ӥë¥ɤ¹¤뤿¤á¤ÎÀßÄê¤òÊѹ¹¤·¤ơ¢Apache - ¤òºƥ³¥ó¥ѥ¤¥뤹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£
    -
    Experimental
    - -
    ¥¹¥ơ¼¥¿¥¹¤¬ "Experimental" ¤Υ⥸¥塼¥ë¤ϡ¢ - Apache ÇÛÉÛʪ¤ËƱº­¤µ¤ì¤Ƥ¤¤ޤ¹¤¬¡¢ - »ÈÍѤ¹¤ë¾ì¹ç¤ϼ«¸ÊÀÕǤ¤ǹԤʤ¦ɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤½¤Υ⥸¥塼¥ë¤ϡ¢¥ɥ­¥å¥á¥ó¥ȤⴰÀ®¤˸þ¤±¤ƺîÀ®Ãæ¤Ǥ¹¤·¡¢ - ¥µ¥ݡ¼¥Ȥµ¤ì¤ë¤Ƥ¤¤ë¤Ȥϸ¤ê¤ޤ»¤ó¡£
    -
    External
    - -
    ¥¹¥ơ¼¥¿¥¹¤¬ "External" ¤Υ⥸¥塼¥ë¤ϡ¢´ðËÜ Apache - ÇÛÉۤËƱº­¤µ¤ì¤ޤ»¤ó ("¥µ¡¼¥ɥѡ¼¥ƥ£¡¼¥⥸¥塼¥ë")¡£ - ¤½¤Τ¿¤ᡢ²桹¤ËÀÕǤ¤Ϥ¢¤ê¤ޤ»¤󤷡¢ - ¤½¤Υ⥸¥塼¥ë¤Υµ¥ݡ¼¥Ȥ⤷¤Ƥ¤¤ޤ»¤ó¡£
    -
    -
    top
    -
    -

    ¥½¡¼¥¹¥ե¡¥¤¥ë

    - -

    ¤³¤ì¤Ïñ½ã¤ˡ¢ - ¤½¤Υ⥸¥塼¥ë¤ËɬÍפʥ³¡¼¥ɤò´ޤॽ¡¼¥¹¥ե¡¥¤¥ë¤Î̾Á°¤òÎóµ󤷤¿¤â¤ΤǤ¹¡£ - ¤³¤ì¤ϡ¢<IfModule> - ¥ǥ£¥쥯¥ƥ£¥֤ǻÈÍѤµ¤ì¤ë̾Á°¤Ǥ⤢¤ê¤ޤ¹¡£ -

    -
    top
    -
    -

    ¥⥸¥塼¥뼱Ê̻Ò

    - -

    ¤³¤Îʸ»úÎó¤ϡ¢¥⥸¥塼¥ë¤ÎưŪÆɤ߹þ¤ߤò¹Ԥʤ¦¤Ȥ­¤˻ÈÍѤ¹¤ë LoadModule - ¥ǥ£¥쥯¥ƥ£¥֤ˤª¤¤¤ƻÈÍѤµ¤ì¤ë¥⥸¥塼¥ë¤μ±Ê̻ҤǤ¹¡£ - ¾ܤ·¤¯½񤯤ȡ¢¥½¡¼¥¹¥ե¡¥¤¥ëÆâ¤Î module ¥¿¥¤¥פγ°ÉôÊѿô¤Î̾Á°¤Ǥ¹¡£ -

    -
    top
    -
    -

    ¸ߴ¹À­

    - -

    ¤¢¤ë¥⥸¥塼¥뤬 Apache ¥С¼¥¸¥ç¥ó 2 - ¤ÎÇÛÉۤ˴ޤޤì¤Ƥ¤¤ʤ«¤ä¿¾ì¹硢 - ¤½¤Υ⥸¥塼¥뤬ƳÆþ¤µ¤줿¥С¼¥¸¥ç¥󤬤³¤³¤˽񤫤ì¤Ƥ¤¤ޤ¹¡£ - ¤ޤ¿¡¢¥⥸¥塼¥뤬ÆÃÄê¤Υץé¥åȥե©¡¼¥à¤ˤΤ߸ºߤ¹¤ë¤Ȥ­¤â - ¾ܺ٤Ϥ³¤³¤˽񤫤ì¤Ƥ¤¤ޤ¹¡£

    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/module-dict.html.ja.utf8 b/docs/manual/mod/module-dict.html.ja.utf8 new file mode 100644 index 00000000000..6ab359cae62 --- /dev/null +++ b/docs/manual/mod/module-dict.html.ja.utf8 @@ -0,0 +1,149 @@ + + + + + +Apache モジュールの解説で使用する用語 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache モジュールの解説で使用する用語

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    + +

    この文書は Apache の各 モジュール を説明するために + 使われている用語を説明します。

    +
    + +
    top
    +
    +

    説明

    + +

    モジュールの目的の短い説明。

    +
    top
    +
    +

    ステータス

    + +

    これは、そのモジュールが Apache + ウェブサーバにどれくらい密接に組み込まれているかを示します。 + 言い換えれば、モジュールを組み込み、その機能を利用するために、 + サーバを再コンパイルする必要があるかもしれないということを示します。 + この属性が取り得る値は以下のものです:

    +
    +
    MPM
    + +
    ステータスが "MPM" のモジュールはマルチプロセッシングモジュールです。 + 他の種類のモジュールとは違って、Apache は常に MPM を一つだけ + 使用し続けます。この種類のモジュールは基本的なリクエストの扱いと + ディスパッチを行ないます。
    + +
    Base
    + +
    ステータスが "Base" + のモジュールは、デフォルトでコンパイルされてわざわざ設定から + モジュールを削除していない限り、通常は利用可能です。 +
    + +
    Extension
    + +
    ステータスが "Extension" のモジュールは、 + デフォルトではコンパイルされず、サーバにも読み込まれません。 + そのモジュールとその機能を有効にするには、 + サーバをビルドするための設定を変更して、Apache + を再コンパイルする必要があります。
    +
    Experimental
    + +
    ステータスが "Experimental" のモジュールは、 + Apache 配布物に同梱されていますが、 + 使用する場合は自己責任で行なう必要があります。 + そのモジュールは、ドキュメントも完成に向けて作成中ですし、 + サポートされるているとは限りません。
    +
    External
    + +
    ステータスが "External" のモジュールは、基本 Apache + 配布に同梱されません ("サードパーティーモジュール")。 + そのため、我々に責任はありませんし、 + そのモジュールのサポートもしていません。
    +
    +
    top
    +
    +

    ソースファイル

    + +

    これは単純に、 + そのモジュールに必要なコードを含むソースファイルの名前を列挙したものです。 + これは、<IfModule> + ディレクティブで使用される名前でもあります。 +

    +
    top
    +
    +

    モジュール識別子

    + +

    この文字列は、モジュールの動的読み込みを行なうときに使用する LoadModule + ディレクティブにおいて使用されるモジュールの識別子です。 + 詳しく書くと、ソースファイル内の module タイプの外部変数の名前です。 +

    +
    top
    +
    +

    互換性

    + +

    あるモジュールが Apache バージョン 2 + の配布に含まれていなかった場合、 + そのモジュールが導入されたバージョンがここに書かれています。 + また、モジュールが特定のプラットフォームにのみ存在するときも + 詳細はここに書かれています。

    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/module-dict.html.ko.euc-kr b/docs/manual/mod/module-dict.html.ko.euc-kr index 3a6bc48f663..5b24f4a61ff 100644 --- a/docs/manual/mod/module-dict.html.ko.euc-kr +++ b/docs/manual/mod/module-dict.html.ko.euc-kr @@ -1,26 +1,34 @@ - -¸ðµâÀ» ¼³¸íÇϱâÀ§ÇØ »ç¿ëÇÑ ¿ë¾îµé - Apache HTTP Server +¸ðµâÀ» ¼³¸íÇϱâÀ§ÇØ »ç¿ëÇÑ ¿ë¾îµé - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¸ðµâÀ» ¼³¸íÇϱâÀ§ÇØ »ç¿ëÇÑ ¿ë¾îµé

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¸ðµâÀ» ¼³¸íÇϱâÀ§ÇØ »ç¿ëÇÑ ¿ë¾îµé

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ¾ÆÆÄġ ¸ðµâÀ» ¼³¸íÇϱâÀ§ÇØ @@ -31,7 +39,7 @@

  • ¼ҽºÆÄÀÏ
  • ¸ðµâ¸í
  • Áö¿ø
  • -
    +
    top

    ¼³¸í

    @@ -102,8 +110,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/module-dict.html.tr.utf8 b/docs/manual/mod/module-dict.html.tr.utf8 new file mode 100644 index 00000000000..46e2364ca3f --- /dev/null +++ b/docs/manual/mod/module-dict.html.tr.utf8 @@ -0,0 +1,119 @@ + + + + + +Modülleri Tanımlamakta Kullanılan Terimler - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Modülleri Tanımlamakta Kullanılan Terimler

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + +

    Bu belgede Apache modüllerini tanımlarken kullanılan terimler açıklanmıştır.

    +
    + +
    top
    +
    +

    Açıklama

    + +

    Modülün kullanım amacının kısa bir açıklaması.

    +
    top
    +
    +

    Durum

    + +

    Modülün Apache HTTP sunucusuna ne kadar sıkı bağlı olduğunu belirtir. Başka bir deyişle, modüle ve işlevselliğine erişim kazanmak için sunucuyu yeniden derlemek gerekip gerekmediği ile ilgili durumu belirtir. Bu özniteliğin olası değerleri şunlardır:

    + +
    +
    MPM
    + +
    “MPM” durumlu bir modül bir Çok Süreçlilik Modülüdür. Diğer modül türlerinin aksine, sunucunun kullandığı MPM modülü sayısı birden fazla olamaz. Bu modül türü temelde sunucuya gelen isteklerin ele alınmasından ve öldürülmesinden sorumludur.
    + +
    Temel
    + +
    “Temel” durumuyla etiketlenmiş bir modül öntanımlı olarak olarak derlenir ve sunucuya öntanımlı olarak yüklenir. Bu bakımdan derleme öncesi paket yapılandırması sırasında modülün derlenmemesi özellikle istenmedikçe bu modül derlenecek ve sunucuya yüklenecektir.
    + +
    Eklenti
    + +
    “Eklenti” durumundaki bir modül normal olarak derlenmez ve sunucuya yüklenmez. Modülü ve işlevselliğini etkin kılmak için sunucunun derleme öncesi paket yapılandırması sırasında modülün derleneceğini açıkça belirttikten sonra gerekirse yeniden derlemeniz gerekir.
    + +
    Deneysel
    + +
    “Deneysel” durumu modülün Apache sunucusunun bir parçası olarak kabul edildiğini ancak modülü denemenin tamamen sizin insiyatifinize bırakıldığı anlamına gelir. Böyle bir modül her şeyiyle belgelenmiştir fakat gerektiği gibi desteklenmemiştir.
    + +
    Harici
    + +
    “Harici” durumu temel Apache dağıtımında bulunmayan (“üçüncü parti”) modüller için kullanılır. Böyle modüller için sorumluluk kabul etmediğimiz gibi bunları desteklemiyoruz.
    +
    +
    top
    +
    +

    Kaynak Dosyası

    + +

    Karşısına modül kodunu içeren kaynak dosyasının ismi yazılır. Bu isim ayrıca <IfModule> yönergesi tarafından da kullanılır.

    +
    top
    +
    +

    Modül Betimleyici

    + +

    Modüller devingen olarak yüklenirken LoadModule yönergesinde kullanmak için modülü betimleyen dizgedir. Aslında, kaynak dosyasında module türündeki harici değişkenin ismidir.

    +
    top
    +
    +

    Uyumluluk

    + +

    Eğer modül Apache’nin 2. sürüm dağıtımının özgün parçası değilse söz konusu sürüm burada belirtilir. Ayrıca, modülün kullanımı belli platformlarla sınırlıysa bunun ayrıntıları da burada belirtilir.

    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/module-dict.xml b/docs/manual/mod/module-dict.xml index cec5db15fa5..ed6e06b3005 100644 --- a/docs/manual/mod/module-dict.xml +++ b/docs/manual/mod/module-dict.xml @@ -4,12 +4,12 @@ + + - + module-dict /mod/ .. @@ -9,5 +10,6 @@ en ja ko + tr diff --git a/docs/manual/mod/module-dict.xml.tr b/docs/manual/mod/module-dict.xml.tr new file mode 100644 index 00000000000..f0c82083e94 --- /dev/null +++ b/docs/manual/mod/module-dict.xml.tr @@ -0,0 +1,79 @@ + + + + + + + + + + Modülleri Tanımlamakta Kullanılan Terimler + + +

    Bu belgede Apache modüllerini tanımlarken kullanılan terimler açıklanmıştır.

    +
    + +
    Açıklama + +

    Modülün kullanım amacının kısa bir açıklaması.

    +
    + +
    Durum + +

    Modülün Apache HTTP sunucusuna ne kadar sıkı bağlı olduğunu belirtir. Başka bir deyişle, modüle ve işlevselliğine erişim kazanmak için sunucuyu yeniden derlemek gerekip gerekmediği ile ilgili durumu belirtir. Bu özniteliğin olası değerleri şunlardır:

    + +
    +
    MPM
    + +
    “MPM” durumlu bir modül bir Çok Süreçlilik Modülüdür. Diğer modül türlerinin aksine, sunucunun kullandığı MPM modülü sayısı birden fazla olamaz. Bu modül türü temelde sunucuya gelen isteklerin ele alınmasından ve öldürülmesinden sorumludur.
    + +
    Temel
    + +
    “Temel” durumuyla etiketlenmiş bir modül öntanımlı olarak olarak derlenir ve sunucuya öntanımlı olarak yüklenir. Bu bakımdan derleme öncesi paket yapılandırması sırasında modülün derlenmemesi özellikle istenmedikçe bu modül derlenecek ve sunucuya yüklenecektir.
    + +
    Eklenti
    + +
    “Eklenti” durumundaki bir modül normal olarak derlenmez ve sunucuya yüklenmez. Modülü ve işlevselliğini etkin kılmak için sunucunun derleme öncesi paket yapılandırması sırasında modülün derleneceğini açıkça belirttikten sonra gerekirse yeniden derlemeniz gerekir.
    + +
    Deneysel
    + +
    “Deneysel” durumu modülün Apache sunucusunun bir parçası olarak kabul edildiğini ancak modülü denemenin tamamen sizin insiyatifinize bırakıldığı anlamına gelir. Böyle bir modül her şeyiyle belgelenmiştir fakat gerektiği gibi desteklenmemiştir.
    + +
    Harici
    + +
    “Harici” durumu temel Apache dağıtımında bulunmayan (“üçüncü parti”) modüller için kullanılır. Böyle modüller için sorumluluk kabul etmediğimiz gibi bunları desteklemiyoruz.
    +
    +
    + +
    Kaynak Dosyası + +

    Karşısına modül kodunu içeren kaynak dosyasının ismi yazılır. Bu isim ayrıca IfModule yönergesi tarafından da kullanılır.

    +
    + +
    Modül Betimleyici + +

    Modüller devingen olarak yüklenirken LoadModule yönergesinde kullanmak için modülü betimleyen dizgedir. Aslında, kaynak dosyasında module türündeki harici değişkenin ismidir.

    +
    + +
    Uyumluluk + +

    Eğer modül Apache’nin 2. sürüm dağıtımının özgün parçası değilse söz konusu sürüm burada belirtilir. Ayrıca, modülün kullanımı belli platformlarla sınırlıysa bunun ayrıntıları da burada belirtilir.

    +
    + +
    diff --git a/docs/manual/mod/mpm_common.html b/docs/manual/mod/mpm_common.html index f76c5828c52..059c2662c78 100644 --- a/docs/manual/mod/mpm_common.html +++ b/docs/manual/mod/mpm_common.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mpm_common.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -6,6 +8,10 @@ Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mpm_common.html.ja.euc-jp +URI: mpm_common.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 + +URI: mpm_common.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mpm_common.html.de b/docs/manual/mod/mpm_common.html.de index 402c96a33a2..6f6be9773e4 100644 --- a/docs/manual/mod/mpm_common.html.de +++ b/docs/manual/mod/mpm_common.html.de @@ -1,33 +1,41 @@ - -mpm_common - Apache HTTP Server +mpm_common - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP-Server > Dokumentation > Version 2.2 > Module
    -

    Allgemeine Direktiven der Apache-MPMs

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Allgemeine Direktiven der Apache-MPMs

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - ja 

    + ja  | + tr 

    -
    Diese Übersetzung ist möglicherweise - nicht mehr aktuell. Bitte prüfen Sie die englische Version auf - die neuesten Änderungen.
    +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.
    Beschreibung:Eine Sammlung von Direktiven, die in mehr als einem Multi-Processing-Modul (MPM) implementiert sind.
    Status:MPM
    @@ -35,8 +43,10 @@ +
    top

    AcceptMutex-Direktive

    @@ -75,16 +86,16 @@ verwendet, welche Anfragen an Netzwerk-Sockets entgegennehmen. Vor Apache 2.0 war diese Methode nur zur Kompilierungszeit einstellbar. Die optimale Methode ist sehr stark von der Architektur und - Plattform abhängig. Lesen Sie bitte Perfomance-Hinweise für + Plattform abhängig. Lesen Sie bitte Perfomance-Hinweise für weitere Details.

    Wenn die Direktive auf Default eingestellt ist, dann - wird die zur Kompilierungszeit gewählte Voreinstellung verwendet. - Weitere mögliche Methoden sind unten angegeben. Beachten Sie, dass - nicht alle Methoden auf allen Plattformen verfügbar sind. Wird - eine Methode angegeben, die nicht verfügbar ist, dann wird + wird die zur Kompilierungszeit gewählte Voreinstellung verwendet. + Weitere mögliche Methoden sind unten angegeben. Beachten Sie, dass + nicht alle Methoden auf allen Plattformen verfügbar sind. Wird + eine Methode angegeben, die nicht verfügbar ist, dann wird eine Nachricht in das Fehlerprotokoll geschrieben, welche die - verfügbaren Methoden auflistet.

    + verfügbaren Methoden auflistet.

    flock
    @@ -100,7 +111,7 @@ implementieren.
    pthread
    -
    verwendet gemäß der POSIX-Thread-Spezifikation +
    verwendet gemäß der POSIX-Thread-Spezifikation implementierte POSIX-Mutexe.
    sysvsem
    @@ -108,53 +119,66 @@ implementieren.
    -

    Um die bei der Kompilierung gewählte Voreinstellung für - Ihr System herauszufinden, können Sie Ihr LogLevel auf debug setzen. Dann wird der +

    Um die bei der Kompilierung gewählte Voreinstellung für + Ihr System herauszufinden, können Sie Ihr LogLevel auf debug setzen. Dann wird der voreingestellte AcceptMutex ins ErrorLog geschrieben.

    Warnung

    Auf den meisten Systemen stoppt der Server mit der Beantwortung von - Anfragen, wenn die Option pthread ausgewählt wurde und - ein Kindprozess unkontrolliert endet während er den - AcceptCntl-Mutex hält. In diesem Fall muss der Server + Anfragen, wenn die Option pthread ausgewählt wurde und + ein Kindprozess unkontrolliert endet während er den + AcceptCntl-Mutex hält. In diesem Fall muss der Server manuell neu gestartet werden, um wieder weiter zu arbeiten.

    Eine Ausnahme stellt Solaris dar, da es einen Mechanismus anbietet, den - der Apache verwendet und der üblicherweise die Freigabe des Mutex - erlaubt, nachdem ein Kindprozess, der gerade einen Mutex hält, - abgestürzt ist.

    + der Apache verwendet und der üblicherweise die Freigabe des Mutex + erlaubt, nachdem ein Kindprozess, der gerade einen Mutex hält, + abgestürzt ist.

    Wenn Ihr System die Funktion - pthread_mutexattr_setrobust_np() bereitstellt, können + pthread_mutexattr_setrobust_np() bereitstellt, können Sie wahrscheinlich die Option pthread problemlos verwenden.

    top
    +

    ChrootDir-Direktive

    + + + + + + + + +
    Beschreibung:Directory for apache to run chroot(8) after startup.
    Syntax:ChrootDir /path/to/directory
    Voreinstellung:none
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:event, prefork, worker
    Kompatibilität:Available in Apache 2.2.10 and later

    Die Dokumentation zu dieser Direktive wurde + noch nicht übersetzt. Bitte schauen Sie in die englische + Version.

    +
    top

    CoreDumpDirectory-Direktive

    - +
    Beschreibung:Verzeichnis, in das der Apache zu wechseln versucht, bevor er einen Hauptspeicherauszug erstellt
    Syntax:CoreDumpDirectory Verzeichnis
    Voreinstellung:Für die Voreinstellung siehe Beschreibung
    Voreinstellung:Für die Voreinstellung siehe Beschreibung
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker

    Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln - versucht, bevor er einen Hauptspeicherauszug (Anm.d.Ü.: einen + versucht, bevor er einen Hauptspeicherauszug (Anm.d.Ü.: einen so genannten Core-Dump) erstellt. Die Voreinstellung ist das ServerRoot-Verzeichnis. Da dieses - jedoch nicht für den Benutzer beschreibbar sein soll, unter dem - der Server läuft, werden normalerweise keine - Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen - einen Hauptspeicherauszug haben möchten, können Sie + jedoch nicht für den Benutzer beschreibbar sein soll, unter dem + der Server läuft, werden normalerweise keine + Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen + einen Hauptspeicherauszug haben möchten, können Sie ihn mit dieser Direktive an einem anderen Ort ablegen lassen.

    -

    Hauptspeicherauszüge unter Linux

    +

    Hauptspeicherauszüge unter Linux

    Wenn Apache als root startet und zu einem anderen Benutzer - wechselt, deaktiviert der Linux-Kernel Hauptspeicherauszüge + wechselt, deaktiviert der Linux-Kernel Hauptspeicherauszüge auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux - 2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszüge wieder, + 2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszüge wieder, jedoch nur dann, wenn Sie explizit CoreDumpDirectory konfigurieren.

    @@ -170,13 +194,13 @@ Ausnahmefehler behandeln lassen kann Kontext:Serverkonfiguration Status:MPM Modul:leader, perchild, prefork, threadpool, worker -Kompatibilität:Verfügbar seit Version 2.0.49 +Kompatibilität:Verfügbar seit Version 2.0.49 -

    Diese Direktive ist aus Sicherheitsgründen nur verfügbar, +

    Diese Direktive ist aus Sicherheitsgründen nur verfügbar, wenn der Server mit der Option --enable-exception-hook konfiguriert wurde. Sie aktiviert einen Hook, der es externen Modulen - erlaubt, sich dort einzuhängen und nach dem Absturz eines - Kindprozesses noch Aktionen durchzuführen.

    + erlaubt, sich dort einzuhängen und nach dem Absturz eines + Kindprozesses noch Aktionen durchzuführen.

    Es existieren bereits zwei Module, mod_whatkilledus und mod_backtrace, welche diesen Hook verwenden. Weitere @@ -184,6 +208,20 @@ Ausnahmefehler behandeln lassen kann

    top
    +

    GracefulShutdownTimeout-Direktive

    + + + + + + + + +
    Beschreibung:Specify a timeout after which a gracefully shutdown server +will exit.
    Syntax:GracefulShutDownTimeout seconds
    Voreinstellung:GracefulShutDownTimeout 0
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:prefork, worker, event
    Kompatibilität:Available in version 2.2 and later

    Die Dokumentation zu dieser Direktive wurde + noch nicht übersetzt. Bitte schauen Sie in die englische + Version.

    +
    top

    Group-Direktive

    - +
    Beschreibung:Benutzergruppe, unter welcher der Server Anfragen @@ -193,15 +231,15 @@ Ausnahmefehler behandeln lassen kann
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, leader, mpmt_os2, perchild, prefork, threadpool, worker
    Kompatibilität:Seit Apache 2.0 nur in der globalen Server-Konfiguration - gültig
    Kompatibilität:Seit Apache 2.0 nur in der globalen Server-Konfiguration + gültig

    Die Direktive Group bestimmt die Benutzergruppe, unter welcher der Server Anfragen beantwortet. Um diese Direktive zu verwenden, muss der Server als root gestartet werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten, - wird er nicht zur angegebenen Gruppe wechseln können und statt - dessen weiter mit der Gruppe des ursprünglichen Benutzers + wird er nicht zur angegebenen Gruppe wechseln können und statt + dessen weiter mit der Gruppe des ursprünglichen Benutzers laufen. Unix-Gruppe kann sein:

    @@ -218,8 +256,8 @@ Ausnahmefehler behandeln lassen kann

    Es wird empfohlen, dass Sie eine neue Gruppe speziell zum Betrieb des Servers erstellen. Einige Administratoren verwenden den Benutzer - nobody. Dies ist jedoch nicht immer möglich - oder gewünscht.

    + nobody. Dies ist jedoch nicht immer möglich + oder gewünscht.

    Sicherheit

    Setzen Sie Group (oder User) nicht auf root, @@ -229,14 +267,14 @@ Ausnahmefehler behandeln lassen kann

    Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von <VirtualHost> - wird nicht länger unterstützt. Benutzen Sie SuexecUserGroup um Ihren Server - für suexec einzurichten.

    + wird nicht länger unterstützt. Benutzen Sie SuexecUserGroup um Ihren Server + für suexec einzurichten.

    Anmerkung

    Obwohl die Direktive Group in den MPMs beos und mpmt_os2 existiert, ist - sie dort tatsächlich eine Leeranweisung und exisitert nur - aus Kompatibilitätsgründen.

    + sie dort tatsächlich eine Leeranweisung und exisitert nur + aus Kompatibilitätsgründen.

    @@ -248,15 +286,15 @@ Ausnahmefehler behandeln lassen kann Kontext:Serverkonfiguration Status:MPM Modul:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker -Kompatibilität:Seit Apache 2.0 vorgeschrieben +Kompatibilität:Seit Apache 2.0 vorgeschrieben

    Die Direktive Listen weist den Apache an, nur an den angegebenen IP-Adressen oder Ports zu lauschen. - Standardmäßig antwortet er auf alle Anfragen an allen + Standardmäßig antwortet er auf alle Anfragen an allen IP-Interfaces. Listen ist nun eine notwendige Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist, - wird der Server-Start fehlschlagen. Dies ist eine Änderung - gegenüber früheren Versionen des Apache.

    + wird der Server-Start fehlschlagen. Dies ist eine Änderung + gegenüber früheren Versionen des Apache.

    Die Direktive Listen weist den Server an, ankommende Anfragen am angegebenen Port oder der @@ -265,10 +303,10 @@ Ausnahmefehler behandeln lassen kann Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben sind, dann lauscht der Server am angegeben Port und Interface.

    -

    Es können mehrere Listen-Anweisungen +

    Es können mehrere Listen-Anweisungen verwendet werden, um eine Reihe von Adressen und Port anzugeben, an denen gelauscht werden soll. Der Server antwortet auf Anfragen von - jedem der aufgeführten Adressen und Ports.

    + jedem der aufgeführten Adressen und Ports.

    Um beispielsweise den Server Verbindungen an den beiden Ports 80 und 8000 annehmen zu lassen, verwenden Sie:

    @@ -286,17 +324,17 @@ Ausnahmefehler behandeln lassen kann Listen 192.170.2.5:8000

    -

    IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige +

    IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige Klammern eingeschlossen werden:

    - Listen [fe80::a00:20ff:fea7:ccea]:80 + Listen [2001:db8::a00:20ff:fea7:ccea]:80

    -

    Fehlermöglichkeit

    - Mehrere Listen-Direktiven für gleiche - IP-Adresse und Port führen zur Fehlermeldung - Address already in use (Anm.d.Ü.: Adresse schon in +

    Fehlermöglichkeit

    + Mehrere Listen-Direktiven für gleiche + IP-Adresse und Port führen zur Fehlermeldung + Address already in use (Anm.d.Ü.: Adresse schon in Benutzung).
    @@ -310,7 +348,7 @@ Ausnahmefehler behandeln lassen kann
    top

    ListenBackLog-Direktive

    - @@ -318,23 +356,23 @@ Ausnahmefehler behandeln lassen kann
    Beschreibung:Maximale Länge der Warteschlange schwebender +
    Beschreibung:Maximale Länge der Warteschlange schwebender Verbindungen
    Syntax:ListenBacklog backlog
    Voreinstellung:ListenBacklog 511
    Status:MPM
    Modul:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
    -

    Die maximale Länge der Warteschlange schwebender Verbindungen. - Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll, - auf einigen System kann es jedoch gewünscht sein, diesen Wert bei - TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des +

    Die maximale Länge der Warteschlange schwebender Verbindungen. + Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll, + auf einigen System kann es jedoch gewünscht sein, diesen Wert bei + TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des backlog-Parameters der Systemfunktion listen(2).

    Der Wert wird vom Betriebssystem oft auf eine niedrigere Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem. Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten, - was für backlog angegeben ist, jedoch einen Wert basierend auf der - Angabe (normalerweiseweise jedoch größer als diese) verwenden.

    + was für backlog angegeben ist, jedoch einen Wert basierend auf der + Angabe (normalerweiseweise jedoch größer als diese) verwenden.

    top

    LockFile-Direktive

    - @@ -347,20 +385,20 @@ entgegengenommenen AnfragenAcceptMutex-Einstellungen fcntl oder flock verwendet wird. Die Anweisung sollte normalerweise bei der Voreinstellung belassen werden. - Der Hauptgrund, sie zu ändern, ist, wenn das + Der Hauptgrund, sie zu ändern, ist, wenn das logs-Verzeichnis auf einem per NFS-eingebundenen Laufwerk liegt, da die Lock-Datei auf einer lokalen Platte abgelegt sein - muss. Die PID (Anm.d.Ü.: Prozess-ID) des - Hauptserverprozesses wird automatisch an den Dateinamen angehängt.

    + muss. Die PID (Anm.d.Ü.: Prozess-ID) des + Hauptserverprozesses wird automatisch an den Dateinamen angehängt.

    Sicherheit

    -

    Es ist am besten, die Ablage in einem allgemein (Anm.d.Ü.: für +

    Es ist am besten, die Ablage in einem allgemein (Anm.d.Ü.: für jedermann) beschreibbaren Verzeichnis wie /var/tmp zu vermeiden, da - ein Denial-of-Servide-Angriff gestartet werden könnte und der - Server am Start gehindert werden könnte, indem eine Lock-Datei + ein Denial-of-Servide-Angriff gestartet werden könnte und der + Server am Start gehindert werden könnte, indem eine Lock-Datei mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen - versuchen würde.

    + versuchen würde.

    Siehe auch

    @@ -374,34 +412,34 @@ entgegengenommenen Anfragen - +
    Beschreibung:Ablageort der Lock-Datei für die Serialisierung von +
    Beschreibung:Ablageort der Lock-Datei für die Serialisierung von entgegengenommenen Anfragen
    Syntax:LockFile Dateiname
    Voreinstellung:LockFile logs/accept.lock
    Beschreibung:Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen gestartet wird
    Syntax:MaxClients Anzahl
    Voreinstellung:Für Details siehe Beschreibung
    Voreinstellung:Für Details siehe Beschreibung
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, leader, prefork, threadpool, worker

    Die Direktive MaxClients setzt die Grenze - für die Anzahl gleichzeitig bedienter Anfragen. Jeder - Verbindungsversuch oberhalb der MaxClients-Begrenzung wird üblicherweise in eine + für die Anzahl gleichzeitig bedienter Anfragen. Jeder + Verbindungsversuch oberhalb der MaxClients-Begrenzung wird üblicherweise in eine Warteschlange gestellt, bis zu einer Anzahl basierend auf der ListenBacklog-Anweisung. Sobald ein Kindprozess am Ende einer anderen Anfrage freigegeben wird, wird die Verbindung bedient.

    -

    Für Server ohne Thread-Unterstützung (z.B. +

    Für Server ohne Thread-Unterstützung (z.B. prefork) wird MaxClients als maximale Anzahl der Kindprozesse verstanden, die zur Bedienung von Anfragen gestartet werden. Die Voreinstellung ist 256. Um - diesen Wert zu erhöhen, muss auch ServerLimit angehoben werden.

    + diesen Wert zu erhöhen, muss auch ServerLimit angehoben werden.

    -

    Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern +

    Bei Servern mit Thread-Unterstützung und bei Hybrid-Servern (z.B. beos oder worker) begrenzt MaxClients die Gesamtzahl der Threads, - die für die Bedienung von Anfragen verfügbar sind. - Die Voreinstellung für beos ist 50. + die für die Bedienung von Anfragen verfügbar sind. + Die Voreinstellung für beos ist 50. Bei Hybrid-MPMs ist die Voreinstellung 16 (ServerLimit) multipliziert mit dem Wert 25 (ThreadsPerChild). Um MaxClients - auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert, - müssen Sie daher auch ServerLimit anheben.

    + auf einen Wert zu erhöhen, der mehr als 16 Prozesse erfordert, + müssen Sie daher auch ServerLimit anheben.

    top
    @@ -419,14 +457,14 @@ entgegengenommenen Anfragen

    Die Direktive MaxMemFree gibt die maximale Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten darf, ohne free() aufzurufen. Wenn keine Angabe gemacht wird, - oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.

    + oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.

    top

    MaxRequestsPerChild-Direktive

    - + @@ -434,14 +472,14 @@ entgegengenommenen Anfragen
    Beschreibung:Obergrenze für die Anzahl von Anfragen, die ein einzelner - Kindprozess während seines Lebens bearbeitet
    Beschreibung:Obergrenze für die Anzahl von Anfragen, die ein einzelner + Kindprozess während seines Lebens bearbeitet
    Syntax:MaxRequestsPerChild number
    Voreinstellung:MaxRequestsPerChild 10000
    Kontext:Serverkonfiguration
    Modul:leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker

    Die Direktive MaxRequestsPerChild legt die - Grenze für die Anzahl von Anfragen fest, die ein einzelner - Kinprozess während seines Lebens bearbeitet. Nach + Grenze für die Anzahl von Anfragen fest, die ein einzelner + Kinprozess während seines Lebens bearbeitet. Nach MaxRequestsPerChild Anfragen stirbt der Kindprozess. Wenn MaxRequestsPerChild 0 ist, endet der Prozess niemals.

    Abweichende Voreinstellungen

    -

    Die Voreinstellung für mpm_netware und +

    Die Voreinstellung für mpm_netware und mpm_winnt ist 0.

    @@ -454,67 +492,67 @@ entgegengenommenen Anfragen
  • das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die Anzahl von Prozessen zu reduzieren, wenn die Serverlast - zurückgeht.
  • + zurückgeht.

    Anmerkung

    Bei KeepAlive-Anfragen - wird nur die erste Anfrage für diese begrenzung gezählt. - Eigentlich wird nur die Begrenzung für die Anzahl der - Verbindungen pro Kindprozess geändert.

    + wird nur die erste Anfrage für diese begrenzung gezählt. + Eigentlich wird nur die Begrenzung für die Anzahl der + Verbindungen pro Kindprozess geändert.

    top

    MaxSpareThreads-Direktive

    - + - +
    Beschreibung:Maximale Anzahl unbeschäftigter Threads
    Beschreibung:Maximale Anzahl unbeschäftigter Threads
    Syntax:MaxSpareThreads Anzahl
    Voreinstellung:Für Details siehe Beschreibung
    Voreinstellung:Für Details siehe Beschreibung
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
    -

    Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs +

    Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs behandeln diese Anweisung unterschiedlich.

    -

    Die Voreinstellung für perchild ist - MaxSpareThreads 10. Das MPM überwacht die Anzahl der - unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn - zu viele unbeschäftigte Threads in einem Kindprozess existieren, +

    Die Voreinstellung für perchild ist + MaxSpareThreads 10. Das MPM überwacht die Anzahl der + unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn + zu viele unbeschäftigte Threads in einem Kindprozess existieren, beendet der Server Threads innerhalb dieses Kindprozesses.

    -

    Die Voreinstellung für worker, +

    Die Voreinstellung für worker, leader und threadpool ist MaxSpareThreads 250. Diese MPMs behandeln Threads - auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads + auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads im Server existieren, dann werden solange Kindprozesse beendet, bis - die Anzahl der unbeschäftigten Threads kleiner als der + die Anzahl der unbeschäftigten Threads kleiner als der angegebene Wert ist.

    -

    Die Voreinstellung für mpm_netware ist +

    Die Voreinstellung für mpm_netware ist MaxSpareThreads 100. Da dieses MPM nur einen einzigen - Prozess ausführt, ist die Zählung überschüssiger + Prozess ausführt, ist die Zählung überschüssiger Threads ebenfalls serverweit.

    beos and mpmt_os2 arbeiten - ähnlich wie mpm_netware. Die Voreinstellung - für beos ist MaxSpareThreads 50. - Die Voreinstellung für mpmt_os2 ist + ähnlich wie mpm_netware. Die Voreinstellung + für beos ist MaxSpareThreads 50. + Die Voreinstellung für mpmt_os2 ist 10.

    Restriktionen

    Der Wertebereich von MaxSpareThreads - ist eingeschränkt. Apache korrigiert den angegebenen Wert - automatisch gemäß den folgenden Regeln:

    + ist eingeschränkt. Apache korrigiert den angegebenen Wert + automatisch gemäß den folgenden Regeln:

    @@ -529,43 +567,43 @@ entgegengenommenen Anfragen
    top

    MinSpareThreads-Direktive

    - + - +
    Beschreibung:Minimale Anzahl unbeschäftigter Threads, die zur - Bedienung von Anfragespitzen zur Verfügung stehen
    Beschreibung:Minimale Anzahl unbeschäftigter Threads, die zur + Bedienung von Anfragespitzen zur Verfügung stehen
    Syntax:MinSpareThreads Anzahl
    Voreinstellung:Für Details siehe Beschreibung
    Voreinstellung:Für Details siehe Beschreibung
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
    -

    Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen +

    Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen zu bedienen. Die verschiedenen MPMs behandeln die Anweisung unterschiedlich.

    perchild verwendet die Voreinstellung - MinSpareThreads 5 und überwacht die Anzahl der - unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn - in einem Kindprozess nicht genügend unbeschäftigte + MinSpareThreads 5 und überwacht die Anzahl der + unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn + in einem Kindprozess nicht genügend unbeschäftigte Threads vorhanden sind, erstellt der Server neue Threads innerhalb dieses Kindprozesses. Wenn Sie also NumServers auf 10 und MinSpareThreads auf einen Wert von 5 setzen, - haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem + haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem System.

    worker, leader und threadpool verwenden eine Voreinstellung von - MinSpareThreads 75 und behandeln unbeschäftigte - Threads auf serverweiter Basis. Wenn nicht genügend - unbeschäftigte Threads im Server vorhanden sind, dann - werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter - Threads größer als der angegebene Wert ist.

    + MinSpareThreads 75 und behandeln unbeschäftigte + Threads auf serverweiter Basis. Wenn nicht genügend + unbeschäftigte Threads im Server vorhanden sind, dann + werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter + Threads größer als der angegebene Wert ist.

    mpm_netware verwendet die Voreinstellung MinSpareThreads 10 und verfolgt dies serverweit, da es ein Einzelprozess-MPM ist.

    beos und mpmt_os2 arbeiten - ähnlich wie mpm_netware. Die Voreinstellung - für beos ist MinSpareThreads 1. - Die Voreinstellung für mpmt_os2 ist + ähnlich wie mpm_netware. Die Voreinstellung + für beos ist MinSpareThreads 1. + Die Voreinstellung für mpmt_os2 ist 5.

    @@ -595,16 +633,16 @@ ablegt PidFile /var/run/apache.pid

    -

    Es ist oft hilfreich, dem Server ein Signal senden zu können, +

    Es ist oft hilfreich, dem Server ein Signal senden zu können, damit er seine ErrorLogs und TransferLogs - schließt und dann neu öffnet und seine + schließt und dann neu öffnet und seine Konfigurationsdateien neu einliest. Dies kann durch Senden eines SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im PidFile eingetragen ist.

    Die PidFile-Datei unterliegt den - gleichen Warnungen über die Ablage von Protokolldateien + gleichen Warnungen über die Ablage von Protokolldateien und Sicherheit.

    Anmerkung

    @@ -614,6 +652,18 @@ ablegt
    top
    +

    ReceiveBufferSize-Direktive

    + + + + + + + +
    Beschreibung:TCP receive buffer size
    Syntax:ReceiveBufferSize bytes
    Voreinstellung:ReceiveBufferSize 0
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

    Die Dokumentation zu dieser Direktive wurde + noch nicht übersetzt. Bitte schauen Sie in die englische + Version.

    +
    top

    ScoreBoardFile-Direktive

    Beschreibung:Ablageort der Datei, die zur Speicherung von Daten zur @@ -626,26 +676,26 @@ ablegt

    Apache verwendet ein Scoreboard zur Kommunikation zwischen seinen Eltern- und Kindprozessen. Einige Architekturen erfordern - eine Datei zur Unterstützung der Kommunikation. Wenn die Datei + eine Datei zur Unterstützung der Kommunikation. Wenn die Datei undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory), - und versucht bei einem Fehlschlag anschließend die Datei auf + und versucht bei einem Fehlschlag anschließend die Datei auf der Festplatte zu erstellen (Verwendung von Datei-basiertem - Shared-Memory). Die Angabe dieser Direktive veranlaßt den + Shared-Memory). Die Angabe dieser Direktive veranlaßt den Apache stets, die Datei auf der Festplatte zu erstellen.

    Beispiel

    ScoreBoardFile /var/run/apache_status

    -

    Datei-basiertes Shared-Memory ist für Applikationen von +

    Datei-basiertes Shared-Memory ist für Applikationen von Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard - benötigen.

    + benötigen.

    Wenn Sie eine ScoreBoardFile-Anweisung - verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn + verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die - gleichen Warnungen wie über die Ablage von Protokolldateien und + gleichen Warnungen wie über die Ablage von Protokolldateien und Sicherheit zu beherzigen.

    Siehe auch

    @@ -657,16 +707,16 @@ ablegt
    top

    SendBufferSize-Direktive

    - +
    Beschreibung:Größe des TCP-Puffers
    Beschreibung:Größe des TCP-Puffers
    Syntax:SendBufferSize Bytes
    Voreinstellung:SendBufferSize 0
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
    -

    Der Server setzt die Größe des TCP-Puffers auf die +

    Der Server setzt die Größe des TCP-Puffers auf die angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen - alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen + alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen mit hoher Latenzzeit anzuheben (d.h. 100ms oder so, wie bei Interkontinentalverbindungen).

    @@ -677,52 +727,52 @@ ablegt
    top

    ServerLimit-Direktive

    - - +
    Beschreibung:Obergrenze für die konfigurierbare Anzahl von +
    Beschreibung:Obergrenze für die konfigurierbare Anzahl von Prozessen
    Syntax:ServerLimit Anzahl
    Voreinstellung:Für Details siehe Beschreibung
    Voreinstellung:Für Details siehe Beschreibung
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:leader, perchild, prefork, threadpool, worker

    Bei dem MPM prefork bestimmt die Direktive - den während der Lebensdauer des Apache-Prozesses maximal - einstellbaren Wert für MaxClients. Beim MPM + den während der Lebensdauer des Apache-Prozesses maximal + einstellbaren Wert für MaxClients. Beim MPM worker bestimmt die Direktive in Verbindung mit ThreadLimit den Maximalwert - für MaxClients - für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese - Anweisung während eines Neustarts zu ändern, wird ignoriert. + für MaxClients + für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese + Anweisung während eines Neustarts zu ändern, wird ignoriert. MaxClients kann jedoch - während eines Neustarts geändert werden.

    + während eines Neustarts geändert werden.

    Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive walten. Wenn ServerLimit auf einen Wert deutlich - höher als notwendig gesetzt wird, wird zusätzliches, + höher als notwendig gesetzt wird, wird zusätzliches, unbenutztes Shared-Memory belegt. Wenn sowohl ServerLimit als auch MaxClients auf Werte gesetzt werden, die - größer sind, als das System sie handhaben kann, dann kann - der Apache möglicherweise nicht starten, oder das System kann + größer sind, als das System sie handhaben kann, dann kann + der Apache möglicherweise nicht starten, oder das System kann instabil werden.

    Verwenden Sie die Direktive bei dem MPM prefork nur, wenn Sie MaxClients - auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den - Wert nicht höher als den Wert, den Sie für MaxClients angeben möchten.

    + auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den + Wert nicht höher als den Wert, den Sie für MaxClients angeben möchten.

    Verwenden Sie die Direktive bei worker, leader und threadpool nur, wenn Ihre MaxClients- und ThreadsPerChild-Einstellungen mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den - Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse, - die dafür erforderlich ist, was Sie bei MaxClients und + Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse, + die dafür erforderlich ist, was Sie bei MaxClients und ThreadsPerChild angeben - möchten.

    + möchten.

    Verwenden Sie die Direktive beim MPM perchild nur, wenn Sie NumServers auf einen - Wert größer als 8 (Voreinstellung) setzen müssen.

    + Wert größer als 8 (Voreinstellung) setzen müssen.

    Anmerkung

    Eine feste Begrenzung von ServerLimit 20000 ist in den @@ -742,16 +792,16 @@ ablegt Beschreibung:Anzahl der Kindprozesse des Servers, die beim Start erstellt werden Syntax:StartServers Anzahl -Voreinstellung:Für Details siehe Beschreibung +Voreinstellung:Für Details siehe Beschreibung Kontext:Serverkonfiguration Status:MPM Modul:leader, mpmt_os2, prefork, threadpool, worker

    Die Direktive StartServers bestimmt die Anzahl der Kindprozesse des Servers, die beim Start erstellt - werden. Da die Anzahl der Prozesse abhängig von der Last + werden. Da die Anzahl der Prozesse abhängig von der Last dynamisch kontrolliert wird, besteht normalerweise wenig - Grund für eine Änderung dieses Parameters.

    + Grund für eine Änderung dieses Parameters.

    Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei leader, threadpool und @@ -766,18 +816,18 @@ ablegt - +
    Beschreibung:Anzahl der Threads, die beim Start erstellt werden
    Syntax:StartThreads Anzahl
    Voreinstellung:Für Details siehe Beschreibung
    Voreinstellung:Für Details siehe Beschreibung
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:beos, mpm_netware, perchild

    Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl - der Threads abhängig von der Last dynamisch kontrolliert wird, - besteht normalerweise wenig Grund für eine Änderung + der Threads abhängig von der Last dynamisch kontrolliert wird, + besteht normalerweise wenig Grund für eine Änderung dieses Parameters.

    -

    Die Voreinstellung für perchild ist - StartThreads 5. Die Direktive setzt während des +

    Die Voreinstellung für perchild ist + StartThreads 5. Die Direktive setzt während des Starts die Anzahl der Threads pro Prozess.

    Die Voreinstellung bei mpm_netware ist @@ -785,7 +835,7 @@ ablegt existiert, ist dies die Gesamtzahl der Threads, die beim Start erstellt wird, um Anfragen zu bedienen.

    -

    Die Voreinstellung für beos ist StartThreads +

    Die Voreinstellung für beos ist StartThreads 10. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die beim Start erstellt werden, um Anfragen zu bedienen.

    @@ -796,34 +846,34 @@ ablegt Beschreibung:Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads pro Kindprozess Syntax:ThreadLimit Anzahl -Voreinstellung:Für Details siehe Beschreibung +Voreinstellung:Für Details siehe Beschreibung Kontext:Serverkonfiguration Status:MPM Modul:leader, mpm_winnt, perchild, threadpool, worker -Kompatibilität:Verfügbar für mpm_winnt ab +Kompatibilität:Verfügbar für mpm_winnt ab Apache 2.0.41 -

    Die Direktive bestimmt den während der Lebensdauer des - Apache-Prozesses maximal einstellbaren Wert für +

    Die Direktive bestimmt den während der Lebensdauer des + Apache-Prozesses maximal einstellbaren Wert für ThreadsPerChild. Jeder - Versuch, diese Direktive während eines Neustarts zu ändern, + Versuch, diese Direktive während eines Neustarts zu ändern, wird ignoriert. ThreadsPerChild - kann jedoch während eines Neustarts modifiziert werden bis zu dem + kann jedoch während eines Neustarts modifiziert werden bis zu dem Wert dieser Anweisung.

    Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive walten. Wenn ThreadLimit auf einen Wert - deutlich höher als ThreadsPerChild gesetzt wird, wird - zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl + deutlich höher als ThreadsPerChild gesetzt wird, wird + zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl ThreadLimit als auch ThreadsPerChild auf Werte gesetzt werden, - die größer sind, als das System sie handhaben kann, dann kann - der Apache möglicherweise nicht starten oder das System kann - instabil werden. Setzen Sie den Wert dieser Direktive nicht höher - als Ihre größte erwartete Einstellung für + die größer sind, als das System sie handhaben kann, dann kann + der Apache möglicherweise nicht starten oder das System kann + instabil werden. Setzen Sie den Wert dieser Direktive nicht höher + als Ihre größte erwartete Einstellung für ThreadsPerChild - während der aktuellen Ausführung des Apache.

    + während der aktuellen Ausführung des Apache.

    -

    Die Voreinstellung für ThreadLimit ist +

    Die Voreinstellung für ThreadLimit ist 1920 wenn sie zusammen mit mpm_winnt verwendet wird, und 64 bei der Verwendung mit anderen MPMs.

    @@ -842,22 +892,22 @@ ablegt Beschreibung:Anzahl der Threads, die mit jedem Kindprozess gestartet werden Syntax:ThreadsPerChild Anzahl -Voreinstellung:Für Details siehe Beschreibung +Voreinstellung:Für Details siehe Beschreibung Kontext:Serverkonfiguration Status:MPM Modul:leader, mpm_winnt, threadpool, worker

    Die Direktive legt die Anzahl der Threads fest, die mit jedem Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads - beim Start und erstellt später keine weiteren mehr. Wenn Sie ein + beim Start und erstellt später keine weiteren mehr. Wenn Sie ein MPM wie mpm_winnt verwenden, wo nur ein Kindprozess existiert, dann sollte diese Angabe hoch genug sein, - die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM + die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM wie worker verwenden, wo mehrere Kindprozesse - existieren, dann sollte die Gesamtzahl der Thread groß - genug sein, die übliche Last auf dem Server zu bewältigen.

    + existieren, dann sollte die Gesamtzahl der Thread groß + genug sein, die übliche Last auf dem Server zu bewältigen.

    -

    Die Voreinstellung für ThreadsPerChild ist +

    Die Voreinstellung für ThreadsPerChild ist 64, wenn mpm_winnt verwendet wird, und 25 bei der Verwendung der anderen MPMs.

    @@ -865,47 +915,47 @@ ablegt
    top

    ThreadStackSize-Direktive

    - - +
    Beschreibung:Die Größe des Stacks in Bytes, der von Threads +
    Beschreibung:Die Größe des Stacks in Bytes, der von Threads verwendet wird, die Client-Verbindungen bearbeiten.
    Syntax:ThreadStackSize size
    Voreinstellung:65536 unter NetWare; variiert bei anderen Betriebssystemen.
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:leader, mpm_netware, mpm_winnt, perchild, threadpool, worker
    Kompatibilität:Verfügbar seit Version 2.1
    Kompatibilität:Verfügbar seit Version 2.1

    Die Direktive ThreadStackSize legt die - Größe des Stacks (für Autodaten) der Threads fest, die + Größe des Stacks (für Autodaten) der Threads fest, die Client-Verbindungen bearbeiten und Module aufrufen, welche bei der - Verarbeitung dieser Verbindungen helfen. In den meisten Fällen ist die + Verarbeitung dieser Verbindungen helfen. In den meisten Fällen ist die Voreinstellung des Betriebssystems angemessen, doch unter bestimmten - Umständen kann es sinnvoll sein, den Wert anzupassen:

    + Umständen kann es sinnvoll sein, den Wert anzupassen:

      -
    • Auf Plattformen mit einer relativ kleinen Voreingestellung für - die Größe des Thread-Stacks (z.B. HP-UX) kann der Apache bei +
    • Auf Plattformen mit einer relativ kleinen Voreingestellung für + die Größe des Thread-Stacks (z.B. HP-UX) kann der Apache bei der Verwendung einiger Drittanbietermodule, die einen relativ hohen Bedarf - an Speicherplatz haben, abstürzen. Ebendiese Module arbeiten - möglicherweise problemlos auf anderen Plattformen, wo der - voreingestellte Thread-Stack größer ist. Derartige - Abstürze können Sie vermeiden, indem Sie - ThreadStackSize auf einen höheren Wert als die + an Speicherplatz haben, abstürzen. Ebendiese Module arbeiten + möglicherweise problemlos auf anderen Plattformen, wo der + voreingestellte Thread-Stack größer ist. Derartige + Abstürze können Sie vermeiden, indem Sie + ThreadStackSize auf einen höheren Wert als die Betriebssystemvoreinstellung setzen. Eine solche Anpassung ist nur notwendig, wenn es vom Anbieter des Moduls so spezifiziert wurde oder die Diagnose eines Apache-Absturzes ergeben hat, das die - Thread-Stackgröße zu klein war.
    • + Thread-Stackgröße zu klein war. -
    • Auf Plattformen, wo die voreingestellte Thread-Stackgröße - für die Webserverkonfiguration deutlich größer als - notwendig ist, kann eine größere Anzahl von Threads pro +
    • Auf Plattformen, wo die voreingestellte Thread-Stackgröße + für die Webserverkonfiguration deutlich größer als + notwendig ist, kann eine größere Anzahl von Threads pro Kindprozess erreicht werden, wenn ThreadStackSize auf einen Wert kleiner als die Betriebssystemvoreinstellung gesetzt wird. Da es einzelne Anfragen geben kann, die mehr Stack zur Verarbeitung - benötigen, sollte eine derartige Korrektur ausschließlich in + benötigen, sollte eine derartige Korrektur ausschließlich in Testumgebungen zum Einsatz kommen, auf denen die gesamte - Webserververarbeitung ausprobiert werden kann. Eine Änderung der + Webserververarbeitung ausprobiert werden kann. Eine Änderung der Webserverkonfiguration kann den aktuellen Wert der - ThreadStackSize ungültig machen.
    • + ThreadStackSize ungültig machen.
    @@ -919,17 +969,17 @@ verwendet wird, die Client-Verbindungen bearbeiten. Kontext:Serverkonfiguration Status:MPM Modul:leader, perchild, prefork, threadpool, worker -Kompatibilität:Seit Apache 2.0 nur in der globalen Server-Konfiguration -gültig +Kompatibilität:Seit Apache 2.0 nur in der globalen Server-Konfiguration +gültig

    Die Direktive User legt die Benutzerkennung fest, mit der der Server Anfragen beantwortet. Um diese Anweisung zu verwenden, muss der Server als root gestartet werden. Wenn Sie den Server unter einem nicht-root-Benutzer starten, kann er nicht zu dem minder privilegierten Benutzer wechseln und wird statt - dessen weiter mit der ursprünglichen Benutzerkennung laufen. + dessen weiter mit der ursprünglichen Benutzerkennung laufen. Wenn Sie den Server als root starten, dann ist es normal, - dass der Elternprozess als root weiterläuft. + dass der Elternprozess als root weiterläuft. Unix-User-ID kann sein:

    @@ -940,15 +990,15 @@ g
    Verweist auf einen durch eine Nummer angegebenen Benutzer.
    -

    Der Benutzer sollte keine Rechte besitzen, die dazu führen, - dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür - bestimmt sind, für die Außenwelt sichtbar zu sein. - Gleichermaßen sollte der Benutzer nicht in der Lage sein, - Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist. +

    Der Benutzer sollte keine Rechte besitzen, die dazu führen, + dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafür + bestimmt sind, für die Außenwelt sichtbar zu sein. + Gleichermaßen sollte der Benutzer nicht in der Lage sein, + Code auszuführen, der nicht für HTTP-Anfragen bestimmt ist. Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell - zur Ausführung des Servers zu erstellen. Einige Administratoren + zur Ausführung des Servers zu erstellen. Einige Administratoren verwenden den Benutzer nobody. Dies ist jedoch nicht - immer wünschenswert, da der Benuter nobody andere + immer wünschenswert, da der Benuter nobody andere Rechte auf dem System besitzen kann.

    Sicherheit

    @@ -957,32 +1007,54 @@ g sind.

    -

    Beim MPM perchild, das dafür gedacht ist, - virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen, +

    Beim MPM perchild, das dafür gedacht ist, + virtuelle Hosts unter verschiedenen Benutzerkennungen auszuführen, bestimmt die Direktive User die - Benutzerkennung für den Hauptserver und bildet den Rückfallwert - für <VirtualHost>-Abschnitte ohne eine + Benutzerkennung für den Hauptserver und bildet den Rückfallwert + für <VirtualHost>-Abschnitte ohne eine AssignUserID-Anweisung.

    Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von <VirtualHost> wird - nicht mehr unterstützt. Benutzen Sie SuexecUserGroup, um Ihren Server - für suexec einzurichten.

    + nicht mehr unterstützt. Benutzen Sie SuexecUserGroup, um Ihren Server + für suexec einzurichten.

    Anmerkung

    Obwohl die Direktive User in den MPMs beos und mpmt_os2 existiert, ist - sie dort tatsächlich eine Leeranweisung und exisitert nur - aus Kompatibilitätsgründen.

    + sie dort tatsächlich eine Leeranweisung und exisitert nur + aus Kompatibilitätsgründen.

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - ja 

    -
    + ja  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mpm_common.html.en b/docs/manual/mod/mpm_common.html.en index 742f1450753..ba416221423 100644 --- a/docs/manual/mod/mpm_common.html.en +++ b/docs/manual/mod/mpm_common.html.en @@ -1,29 +1,37 @@ - -mpm_common - Apache HTTP Server +mpm_common - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache MPM Common Directives

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM Common Directives

    Available Languages:  de  |  en  | - ja 

    + ja  | + tr 

    @@ -32,8 +40,10 @@ more than one multi-processing module (MPM)

    Directives

    -
    +
    top

    AcceptMutex Directive

    @@ -65,7 +76,7 @@ accepting requests on network sockets
    - +
    Description:A collection of directives that are implemented by more than one multi-processing module (MPM)
    Default:AcceptMutex Default
    Context:server config
    Status:MPM
    Module:leader, perchild, prefork, threadpool, worker
    Module:prefork, worker

    The AcceptMutex directives sets the method that Apache uses to serialize multiple children accepting @@ -121,6 +132,26 @@ accepting requests on network sockets you may be able to use the pthread option safely.

    +
    +
    top
    +

    ChrootDir Directive

    + + + + + + + + +
    Description:Directory for apache to run chroot(8) after startup.
    Syntax:ChrootDir /path/to/directory
    Default:none
    Context:server config
    Status:MPM
    Module:event, prefork, worker
    Compatibility:Available in Apache 2.2.10 and later
    +

    This directive tells the server to chroot(8) to the + specified directory after startup, but before accepting requests.

    + +

    Note that running the server under chroot is not + simple, and requires additional setup, particularly if you are running + scripts such as CGI or PHP. Please make sure you are properly familiar + with the operation of chroot before attempting to use this feature.

    +
    top

    CoreDumpDirectory Directive

    @@ -131,7 +162,7 @@ switch before dumping core Default:See usage for the default setting Context:server config Status:MPM -Module:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker +Module:beos, mpm_winnt, prefork, worker

    This controls the directory to which Apache attempts to switch before dumping core. The default is in the @@ -148,6 +179,12 @@ switch before dumping core on Linux 2.4 and beyond, but only if you explicitly configure a CoreDumpDirectory.

    +

    Core Dumps on BSD

    +

    To enable core-dumping of suid-executables on BSD-systems (such + as FreeBSD), set kern.sugid_coredump to 1. +

    + +
    top

    EnableExceptionHook Directive

    @@ -158,7 +195,7 @@ after a crash Default:EnableExceptionHook Off Context:server config Status:MPM -Module:leader, perchild, prefork, threadpool, worker +Module:prefork, worker Compatibility:Available in version 2.0.49 and later

    For safety reasons this directive is only available if the server was @@ -170,6 +207,26 @@ after a crash mod_backtrace that make use of this hook. Please have a look at Jeff Trawick's EnableExceptionHook site for more information about these.

    +
    +
    top
    +

    GracefulShutdownTimeout Directive

    + + + + + + + + +
    Description:Specify a timeout after which a gracefully shutdown server +will exit.
    Syntax:GracefulShutDownTimeout seconds
    Default:GracefulShutDownTimeout 0
    Context:server config
    Status:MPM
    Module:prefork, worker, event
    Compatibility:Available in version 2.2 and later
    +

    The GracefulShutdownTimeout specifies + how many seconds after receiving a "graceful-stop" signal, a + server should continue to run, handling the existing connections.

    + +

    Setting this value to zero means that the server will wait + indefinitely until all remaining requests have been fully served.

    +
    top

    Group Directive

    @@ -180,7 +237,7 @@ requests Default:Group #-1 Context:server config Status:MPM -Module:beos, leader, mpmt_os2, perchild, prefork, threadpool, worker +Module:beos, mpmt_os2, prefork, worker Compatibility:Only valid in global server config since Apache 2.0 @@ -232,7 +289,7 @@ listens to Syntax:Listen [IP-address:]portnumber [protocol] Context:server config Status:MPM -Module:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker, event +Module:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker, event Compatibility:Required directive since Apache 2.0
    The protocol argument was added in 2.1.5 @@ -274,7 +331,7 @@ The protocol argument was added in 2.1.5 following example:

    - Listen [fe80::a00:20ff:fea7:ccea]:80 + Listen [2001:db8::a00:20ff:fea7:ccea]:80

    The optional protocol argument is not required for most @@ -285,7 +342,7 @@ The protocol argument was added in 2.1.5 AcceptFilter directive.

    You only need to set the protocol if you are running on non-standard - ports. For example, running an https site on port 443:

    + ports. For example, running an https site on port 8443:

    Listen 192.170.2.1:8443 https @@ -313,7 +370,7 @@ The protocol argument was added in 2.1.5 Default:ListenBacklog 511 Context:server config Status:MPM -Module:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker +Module:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

    The maximum length of the queue of pending connections. Generally no tuning is needed or desired, however on some @@ -336,7 +393,7 @@ The protocol argument was added in 2.1.5 Default:LockFile logs/accept.lock Context:server config Status:MPM -Module:leader, perchild, prefork, threadpool, worker +Module:prefork, worker

    The LockFile directive sets the path to the lockfile used when Apache is used with an AcceptMutex value of either @@ -363,13 +420,13 @@ The protocol argument was added in 2.1.5

    top

    MaxClients Directive

    - + - +
    Description:Maximum number of child processes that will be created -to serve requests
    Description:Maximum number of connections that will be processed +simultaneously
    Syntax:MaxClients number
    Default:See usage for details
    Context:server config
    Status:MPM
    Module:beos, leader, prefork, threadpool, worker
    Module:beos, prefork, worker

    The MaxClients directive sets the limit on the number of simultaneous requests that will be served. Any @@ -403,7 +460,7 @@ to hold without calling free() Default:MaxMemFree 0 Context:server config Status:MPM -Module:beos, leader, mpm_netware, prefork, threadpool, worker, mpm_winnt +Module:beos, mpm_netware, prefork, worker, mpm_winnt

    The MaxMemFree directive sets the maximum number of free Kbytes that the main allocator is allowed @@ -420,7 +477,7 @@ will handle during its life Default:MaxRequestsPerChild 10000 Context:server config Status:MPM -Module:leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker +Module:mpm_netware, mpm_winnt, mpmt_os2, prefork, worker

    The MaxRequestsPerChild directive sets the limit on the number of requests that an individual child @@ -435,15 +492,8 @@ will handle during its life

    Setting MaxRequestsPerChild to a - non-zero limit has two beneficial effects:

    - -
      -
    • it limits the amount of memory that process can consume - by (accidental) memory leakage;
    • - -
    • by giving processes a finite lifetime, it helps reduce - the number of processes when the server load reduces.
    • -
    + non-zero value limits the amount of memory that process can consume + by (accidental) memory leakage.

    Note

    For KeepAlive requests, only @@ -451,6 +501,13 @@ will handle during its life changes the behavior to limit the number of connections per child.

    +

    Default Configuration

    +

    The default (compiled-in) value of this setting (10000) is used when + no MaxRequestsPerChild directive is present in the + configuration. Many default configurations provided with the server include + "MaxRequestsPerChild 0" as part of the default configuration.

    +
    +
    top
    @@ -461,18 +518,13 @@ will handle during its life Default:See usage for details Context:server config Status:MPM -Module:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker +Module:beos, mpm_netware, mpmt_os2, worker

    Maximum number of idle threads. Different MPMs deal with this directive differently.

    -

    For perchild the default is - MaxSpareThreads 10. This MPM monitors the number of - idle threads on a per-child basis. If there are too many idle - threads in that child, the server will begin to kill threads - within that child.

    - -

    For worker, leader and threadpool the default is MaxSpareThreads 250. +

    For worker, + the default is MaxSpareThreads 250. These MPMs deal with idle threads on a server-wide basis. If there are too many idle threads in the server then child processes are killed until the number of idle threads is less than this number.

    @@ -491,12 +543,11 @@ will handle during its life is restricted. Apache will correct the given value automatically according to the following rules:

    +
    +
    top
    +

    ReceiveBufferSize Directive

    + + + + + + + +
    Description:TCP receive buffer size
    Syntax:ReceiveBufferSize bytes
    Default:ReceiveBufferSize 0
    Context:server config
    Status:MPM
    Module:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    The server will set the TCP receive buffer size to the number of + bytes specified.

    + +

    If set to the value of 0, the server will use the + OS default.

    +
    top

    ScoreBoardFile Directive

    @@ -593,10 +655,10 @@ of the daemon Description:Location of the file used to store coordination data for the child processes Syntax:ScoreBoardFile file-path -Default:ScoreBoardFile logs/apache_status +Default:ScoreBoardFile logs/apache_runtime_status Context:server config Status:MPM -Module:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker +Module:beos, mpm_winnt, prefork, worker

    Apache uses a scoreboard to communicate between its parent and child processes. Some architectures require a file to facilitate @@ -607,7 +669,7 @@ the child processes Apache to always create the file on the disk.

    Example

    - ScoreBoardFile /var/run/apache_status + ScoreBoardFile /var/run/apache_runtime_status

    File-based shared memory is useful for third-party applications @@ -632,15 +694,24 @@ Apache Default:SendBufferSize 0 Context:server config Status:MPM -Module:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker +Module:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker -

    The server will set the TCP buffer size to the number of bytes +

    The server will set the TCP send buffer size to the number of bytes specified. Very useful to increase past standard OS defaults on high speed high latency (i.e., 100ms or so, such as transcontinental fast pipes).

    If set to the value of 0, the server will use the - OS deault.

    + OS default.

    + +

    Further configuration of your operating system may be required to elicit + better performance on high speed, high latency connections.

    + +

    On some operating systems, changes in TCP behavior resulting + from a larger SendBufferSize may not be seen unless + EnableSendfile is set to OFF. This + interaction applies only to static files.

    +
    top
    @@ -651,7 +722,7 @@ Apache Default:See usage for details Context:server config Status:MPM -Module:leader, perchild, prefork, threadpool, worker +Module:prefork, worker

    For the prefork MPM, this directive sets the maximum configured value for MaxClients for the lifetime of the @@ -674,16 +745,13 @@ Apache Do not set the value of this directive any higher than what you might want to set MaxClients to.

    -

    With worker, leader and - threadpool use this directive only +

    With worker + use this directive only if your MaxClients and ThreadsPerChild settings require more than 16 server processes (default). Do not set the value of this directive any higher than the number of server - processes required by what you may want for MaxClients and ThreadsPerChild.

    - -

    With the perchild MPM, use this directive only - if you need to set NumServers higher than 8 (default).

    + processes required by what you may want for MaxClients and ThreadsPerChild.

    Note

    There is a hard limit of ServerLimit 20000 compiled @@ -704,7 +772,7 @@ Apache Default:See usage for details Context:server config Status:MPM -Module:leader, mpmt_os2, prefork, threadpool, worker +Module:mpmt_os2, prefork, worker

    The StartServers directive sets the number of child server processes created on startup. As the number @@ -712,7 +780,6 @@ Apache there is usually little reason to adjust this parameter.

    The default value differs from MPM to MPM. For - leader, threadpool and worker the default is StartServers 3. For prefork defaults to 5 and for mpmt_os2 to 2.

    @@ -726,17 +793,13 @@ Apache Default:See usage for details Context:server config Status:MPM -Module:beos, mpm_netware, perchild +Module:beos, mpm_netware

    Number of threads created on startup. As the number of threads is dynamically controlled depending on the load, there is usually little reason to adjust this parameter.

    -

    For perchild the default is StartThreads - 5 and this directive tracks the number of threads per - process at startup.

    -

    For mpm_netware the default is StartThreads 50 and, since there is only a single process, this is the total number of threads created at startup to @@ -756,7 +819,7 @@ per child process Default:See usage for details Context:server config Status:MPM -Module:leader, mpm_winnt, perchild, threadpool, worker +Module:mpm_winnt, worker Compatibility:Available for mpm_winnt in Apache 2.0.41 and later @@ -795,7 +858,7 @@ and later Default:See usage for details Context:server config Status:MPM -Module:leader, mpm_winnt, threadpool, worker +Module:mpm_winnt, worker

    This directive sets the number of threads created by each child process. The child creates these threads at startup and @@ -820,7 +883,7 @@ client connections Default:65536 on NetWare; varies on other operating systems Context:server config Status:MPM -Module:leader, mpm_netware, mpm_winnt, perchild, threadpool, worker +Module:mpm_netware, mpm_winnt, worker, event Compatibility:Available in Apache 2.1 and later

    The ThreadStackSize directive sets the @@ -850,10 +913,16 @@ client connections of adjustment should only be made in a test environment which allows the full set of web server processing can be exercised, as there may be infrequent requests which require more stack to process. - A change in the web server configuration can invalidate the - current ThreadStackSize setting. + The minimum required stack size strongly depends on the modules + used, but any change in the web server configuration can invalidate + the current ThreadStackSize setting. +

    It is recommended to not reduce ThreadStackSize + unless a high number of threads per child process is needed. On some + platforms (including Linux), a setting of 128000 is already too low and + causes crashes with some common modules.
    +
    top

    User Directive

    @@ -864,7 +933,7 @@ requests Default:User #-1 Context:server config Status:MPM -Module:leader, perchild, prefork, threadpool, worker +Module:prefork, worker Compatibility:Only valid in global server config since Apache 2.0 @@ -899,12 +968,6 @@ requests you know exactly what you are doing, and what the dangers are.

    -

    With the perchild MPM, which is intended to - server virtual hosts run under different user IDs, the - User directive defines the user ID for the - main server and the fallback for <VirtualHost> sections without an - AssignUserID directive.

    -

    Special note: Use of this directive in <VirtualHost> is no longer supported. To configure your server for suexec use SuexecUserGroup.

    @@ -921,8 +984,30 @@ requests

    Available Languages:  de  |  en  | - ja 

    -
    + ja  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mpm_common.html.ja.euc-jp b/docs/manual/mod/mpm_common.html.ja.euc-jp deleted file mode 100644 index 851dbe8bc93..00000000000 --- a/docs/manual/mod/mpm_common.html.ja.euc-jp +++ /dev/null @@ -1,995 +0,0 @@ - - - -mpm_common - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache MPM ¶¦Ḁ̈ǥ£¥쥯¥ƥ£¥Ö

    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - -
    ÀâÌÀ:Æó¤İʾå¤Υޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM) -¤ǼÂÁõ¤µ¤ì¤Ƥ¤¤ë¥ǥ£¥쥯¥ƥ£¥֤Υ³¥쥯¥·¥ç¥ó
    ¥¹¥ơ¼¥¿¥¹:MPM
    -
    - - -
    top
    -

    AcceptMutex ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:ʣ¿ô¤λҥץí¥»¥¹¤¬¥ͥåȥ¥¯¥½¥±¥åȤǥꥯ¥¨¥¹¥Ȥò -accept ¤·¤褦¤Ȥ·¤Ƥ¤¤ë¤Ȥ­¤ˡ¢Apache ¤¬¤½¤ì¤é¤λҥץí¥»¥¹¤òľÎ󲽤¹¤뤿¤á¤Ë -»Ȥ¦Êýˡ
    ¹½ʸ:AcceptMutex default|method
    ¥ǥե©¥ë¥È:AcceptMutex default
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, perchild, prefork, threadpool, worker
    -

    AcceptMutex ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¥ͥåȥ¥¯¥½¥±¥åȤΥꥯ¥¨¥¹¥Ȥò accept ¤·¤褦¤Ȥ·¤Ƥ¤¤ëʣ¿ô¤λҥץí¥»¥¹¤ò - Apache ¤¬ľÎ󲽤¹¤뤿¤á¤˻Ȥ¦Êýˡ¤òÀßÄꤷ¤ޤ¹¡£ - Apache 2.0 °ÊÁ°¤ϡ¢¤³¤Υ᥽¥åɤϥ³¥ó¥ѥ¤¥ë»þ¤ˤΤßÁªÂò¤Ǥ­¤ޤ·¤¿¡£ - ºÇŬ¤ÊÊýˡ¤ϡ¢¥¢¡¼¥­¥ƥ¯¥Á¥ã¤ä¥ץé¥åȥۡ¼¥à¤ËÂ礭¤¯°Í¸¤·¤ޤ¹¡£ - ¾ܺ٤˴ؤ·¤Ƥϡ¢À­ǽ¤ΥÁ¥塼¥˥ó¥° - ¥ɥ­¥å¥á¥ó¥Ȥò¤´Í÷²¼¤µ¤¤¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤¬ Default - ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ì¤С¢¥³¥ó¥ѥ¤¥ë»þ¤ËÁªÂ򤵤줿¥ǥե©¥ë¥ÈÃͤ¬»Ȥï¤ì¤ޤ¹¡£ - ¾¤λÈÍѲÄǽ¤ʥ᥽¥åɤΰìÍ÷¤ϲ¼¤ˤ¢¤ê¤ޤ¹¡£ - Á´¤ƤΥ᥽¥åɤ¬Á´¤ƤΥץé¥åȥۡ¼¥à¤ǻÈÍѲÄǽ¤Ǥ¢¤ë¤櫓¤ǤϤʤ¤¡¢ - ¤Ȥ¤¤¦¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - »ÈÍѲÄǽ¤Ǥʤ¤¥᥽¥åɤ¬»ØÄꤵ¤줿¾ì¹ç¤ϡ¢ - »ÈÍѲÄǽ¤ʥ᥽¥åɤΰìÍ÷¤ò´ޤó¤À¥á¥å»¡¼¥¸¤¬ - ¥¨¥顼¥í¥°¤˽ÐÎϤµ¤ì¤ޤ¹¡£

    - -
    -
    flock
    -
    LockFile - ¥ǥ£¥쥯¥ƥ£¥֤ÇÄêµÁ¤·¤¿¥ե¡¥¤¥ë¤Υí¥å¯¤ˡ¢ - flock(2) ¥·¥¹¥ƥॳ¡¼¥ë¤ò»Ȥ¤¤ޤ¹¡£
    - -
    fcntl
    -
    LockFile - ¥ǥ£¥쥯¥ƥ£¥֤ÇÄêµÁ¤·¤¿¥ե¡¥¤¥ë¤Υí¥å¯¤ˡ¢ - fcntl(2) ¥·¥¹¥ƥॳ¡¼¥ë¤ò»Ȥ¤¤ޤ¹¡£
    - -
    posixsem
    -
    ÇÓ¾½èÍý¤μÂÁõ¤Ë POSIX ¸ߴ¹¥»¥ޥե©¤ò»ÈÍѤ·¤ޤ¹
    - -
    pthread
    -
    POSIX Threads (PThreads) µ¬³ʤǼÂÁõ¤µ¤ì¤Ƥ¤¤ë - POSIX ÇÓ¾½èÍý¤ò»Ȥ¤¤ޤ¹¡£
    - -
    sysvsem
    -
    ÇÓ¾½èÍý¤μÂÁõ¤Ë SySV ·Á¼°¤Υ»¥ޥե©¤ò»Ȥ¤¤ޤ¹¡£
    -
    - -

    ¥³¥ó¥ѥ¤¥ë»þ¤˥·¥¹¥ƥà¤Υǥե©¥ë¥ȤËÁª¤Ф줿¤â¤Τ¬²¿¤«¤򸫤¿¤¤¾ì¹ç¤ϡ¢ - LogLevel ¤ò debug - ¤ËÀßÄꤹ¤ë¤Ȥ褤¤Ǥ·¤礦¡£¥ǥե©¥ë¥ȤÎ AcceptMutex - ¤¬ ErrorLog ¤˽񤭹þ¤ޤì¤ޤ¹¡£

    - -

    ·ٹð

    -

    ¤ۤȤó¤ɤΥ·¥¹¥ƥà¤ˤª¤¤¤Ƥϡ¢pthread ¥ª¥ץ·¥ç¥ó¤¬ - Áª¤Фì¤Ƥ¤¤ë¤ȡ¢»ҥץí¥»¥¹¤¬ AcceptCntl mutex ¤ò - Êݻý¤·¤Ƥ¤¤ë¤Ȥ­¤˰۾ェλ¤·¤¿¾ì¹硢¥µ¡¼¥Фϥꥯ¥¨¥¹¥ȤؤαþÅú¤ò - Ää»ߤ·¤Ƥ·¤ޤ¤¤ޤ¹¡£¤³¤줬ȯÀ¸¤·¤¿¾ì¹ç¤ϡ¢¥µ¡¼¥ФòÉüµ줵¤»¤뤿¤á¤ˤÏ - ¼êư¤ǺƵ¯ư¤µ¤»¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    Solaris ¤ÏÎ㳰¤ǡ¢Apache ¤â»ÈÍѤ·¤Ƥ¤¤롢»ҥץí¥»¥¹¤¬ mutex ¤ò - Êݻý¤·¤ư۾ェλ¤·¤¿¸å¤Ë mutex ¤òÉüµ줵¤»¤뤿¤á¤ε¡¹½¤òÄ󶡤򤷤Ƥ¤¤ޤ¹¡£

    -

    ¸æ»ÈÍѤΥ·¥¹¥ƥब pthread_mutexattr_setrobust_np() ´ؿô¤ò - ¼ÂÁõ¤·¤Ƥ¤¤ë¾ì¹ç¤ϡ¢pthread ¥ª¥ץ·¥ç¥ó¤ò°ÂÁ´¤˻ÈÍѤǤ­¤ë - ²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£

    -
    - -
    -
    top
    -

    CoreDumpDirectory ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:Apache ¤¬¥³¥¢¥À¥ó¥פ¹¤ëÁ°¤˰Üư¤ò»î¤ߤë¥ǥ£¥쥯¥ȥê -
    ¹½ʸ:CoreDumpDirectory directory
    ¥ǥե©¥ë¥È:¥ǥե©¥ë¥ȤÎÀßÄê¤ÏÀâÌÀʸ¤òÆɤó¤Ǥ¯¤À¤µ¤¤
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker
    -

    Apache ¤¬¥³¥¢¥À¥ó¥פ¹¤ëÁ°¤˰Üư¤ò»î¤ߤë¥ǥ£¥쥯¥ȥê¤òÀ©¸椷¤ޤ¹¡£ - ¥ǥե©¥ë¥ÈÃͤÏ ServerRoot - ¥ǥ£¥쥯¥ȥê¤Ǥ¹¤¬¡¢¤³¤Υǥ£¥쥯¥ȥê¤ϥµ¡¼¥Фμ¹Ԥµ¤ì¤Ƥ¤¤ë¥桼¥¶¸¢¸¤Ç - ½񤭹þ¤߲Äǽ¤Ǥ¢¤ë¤٤­¤ǤϤʤ¤¤Τǡ¢Ä̾ï¤ϥ³¥¢¥À¥ó¥פϽ񤭹þ¤ޤì¤ޤ»¤ó¡£ - ¥ǥХå°¤Τ¿¤á¤˥³¥¢¥À¥ó¥פ¬ɬÍפǤ¢¤ì¤С¢ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»Ȥ䯾¤ΰÌÃ֤˥³¥¢¥À¥ó¥פò½񤭽Ф¹¤褦¤ˤǤ­¤ޤ¹¡£

    - -

    Linux ¤ǤΥ³¥¢¥À¥ó¥×

    -

    Apache ¤¬ root ¤Ȥ·¤Ƶ¯ư¤µ¤ì¤ơ¢Ê̤Υ桼¥¶¤θ¢¸¤˰ʹߤ·¤¿¾ì¹ç¤Ï - Linux ¤Υ«¡¼¥ͥë¤ϥǥ£¥쥯¥ȥ꤬¥ץí¥»¥¹¤θ¢¸¤ǽ񤭹þ¤߲Äǽ¤ʾì¹ç¤Ǥµ¤¨¤â - ¥³¥¢¥À¥ó¥פò̵¸ú¤ˤ·¤ޤ¹¡£Apache (2.0.46 °ʹß) ¤Ï - Linux 2.4 °ʹߤǤϥ³¥¢¥À¥ó¥פò¹Ԥʤ¦¤褦¤˺ƻØÄꤷ¤ޤ¹¤¬¡¢¤½¤ì¤Ï - CoreDumpDirectory ¤òÌÀ¼¨Ū¤ËÀßÄꤷ¤¿¤Ȥ­¤Ë - ¸¤ê¤ޤ¹¡£

    -
    - -
    -
    top
    -

    EnableExceptionHook ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥¯¥é¥å·¥å¤θå¤ËÎ㳰¥ϥó¥ɥé¤ò¼¹Ԥ¹¤ë¥ե寤òͭ¸ú¤ˤ¹¤ë
    ¹½ʸ:EnableExceptionHook On|Off
    ¥ǥե©¥ë¥È:EnableExceptionHook Off
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, perchild, prefork, threadpool, worker
    ¸ߴ¹À­:2.0.49 °ʹß
    -

    °ÂÁ´¾å¤ÎÍýͳ¤«¤顢--enable-exception-hook configure - ¥ª¥ץ·¥ç¥ó¤òͭ¸ú¤ˤ·¤¿¾ì¹ç¤ˤΤߡ¢¤³¤Υǥ£¥쥯¥ƥ£¥֤òÍøÍѤǤ­¤ޤ¹¡£ - ³°Éô¥⥸¥塼¥ë¤ò¥ץ饰¥¤¥󤷤ơ¢»Ҥ¬¥¯¥é¥å·¥夷¤¿¸å¤˲¿¤«¼¹ԤǤ­¤ë¤褦¤Ê - ¥ե寤òͭ¸ú¤ˤ·¤ޤ¹¡£

    - -

    ¤³¤Τ褦¤ʳ°Éô¥⥸¥塼¥ë¤ϡ¢´û¤ËÆó¤Ä¸ºߤ·¤Ƥ¤¤ơ¢ - mod_whatkilledus ¤È mod_backtrace - ¤¬¤³¤Υե寤ò³èÍѤ·¤ޤ¹¡£¤³¤ì¤é¤ξܺ٤ˤĤ¤¤ƤÏ Jeff Trawick - ¤µ¤ó¤Î EnableExceptionHook site ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    top
    -

    Group ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤ëºݤ˽ê°¤¹¤륰¥롼¥×
    ¹½ʸ:Group unix-group
    ¥ǥե©¥ë¥È:Group #-1
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpmt_os2, perchild, prefork, threadpool, worker
    ¸ߴ¹À­:Apache 2.0 °ʹߤǡ¢¥°¥í¡¼¥ХëÀßÄê¤ǤΤßͭ¸ú¤Ǥ¹¡£
    -

    Group ¥ǥ£¥쥯¥ƥ£¥֤ǡ¢ - ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤ëºݤ˽ê°¤·¤Ƥª¤¯¥°¥롼¥פòÀßÄꤷ¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤뤿¤á¤ˤϡ¢ - ¥µ¡¼¥ФϺǽé¤Ë root ¸¢¸¤ǵ¯ư¤µ¤ì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - Èó root ¥桼¥¶¤ǥµ¡¼¥Фòµ¯ư¤·¤¿¾ì¹ç¤ϡ¢»ØÄꤷ¤¿¥°¥롼¥פËÊѲ½¤Ǥ­¤º¤ˡ¢ - ·ë²ÌŪ¤˵¯ư¤·¤¿¥桼¥¶¤Î°¤¹¤륰¥롼¥פǼ¹Ԥµ¤ì¤뤳¤Ȥˤʤê¤ޤ¹¡£ - unix-group ¤ϼ¡¤Τ¦¤Á¤Τ¤¤º¤줫¤Ǥ¹:

    - -
    -
    ¥°¥롼¥×̾
    -
    ¥°¥롼¥פò̾Á°¤ǻ²¾Ȥ·¤ޤ¹
    - -
    # ¤Ë³¤¤¤ƥ°¥롼¥×Èֹæ
    -
    ¥°¥롼¥פò¤òÈֹæ¤ǻ²¾Ȥ·¤ޤ¹¡£
    -
    - -

    Îã

    - Group www-group -

    - -

    ¥µ¡¼¥Фò¼¹Ԥ¹¤뤿¤á¤ËÆÃÄê¤ο·¤·¤¤¥°¥롼¥פòÀßÄꤹ¤뤳¤Ȥò - ¤ªÁ¦¤ᤷ¤ޤ¹¡£nobody ¤ò»ÈÍѤ¹¤ë´ÉÍý¼Ԥ⤤¤ޤ¹¤¬¡¢ - ²Äǽ¤Ǥ¢¤ä¿¤ê˾¤ޤ·¤¤Ìõ¤ǤÏɬ¤º¤·¤⤢¤ê¤ޤ»¤ó¡£

    - -

    ¥»¥­¥å¥ê¥ƥ£

    -

    Àµ³Τˤɤó¤ʤ³¤Ȥò¤ä¤äƤ¤¤ë¤Τ«¡¢¤½¤δí¸±À­¤òÃΤé¤ʤ¤¤ǡ¢ - Group (¤ä User) ¤ò - root ¤Ë ÀßÄꤷ¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£

    -
    - -

    Æõ­»ö¹à: ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò - <VirtualHost> - ¤ǻÈÍѤ¹¤뤳¤Ȥϥµ¥ݡ¼¥Ȥµ¤ì¤ʤ¯¤ʤê¤ޤ·¤¿¡£Apache 2.0 ¤Ç - suexec ¤òÀßÄꤷ¤¿¤¤¾ì¹ç¤ϡ¢ - SuexecUserGroup - ¤ò»ÈÍѤ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Ãí°Õ

    -

    Group ¥ǥ£¥쥯¥ƥ£¥֤Ï - beos ¤È mpmt_os2 MPM - ¤ˤ⸺ߤ·¤ޤ¹¤¬¡¢¼¼ÁŪ¤Ë̵¸ú¤ǡ¢¸ߴ¹À­¤Τ¿¤á¤À¤±¤Ë¸ºߤ·¤ޤ¹¡£

    -
    - -
    -
    top
    -

    Listen ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥µ¡¼¥Ф¬ listen ¤¹¤ëIP ¥¢¥ɥ쥹¤ȥݡ¼¥ÈÈֹæ
    ¹½ʸ:Listen [IP-address:]portnumber [protocol]
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker, event
    ¸ߴ¹À­:Apache 2.0 ¤«¤éɬ¿ܥǥ£¥쥯¥ƥ£¥֡£protocol -°ú¿ô¤Ï 2.1.5 ¤ÇÄɲá£
    -

    Listen ¥ǥ£¥쥯¥ƥ£¥֤Ï Apache - ¤¬ÆÃÄê¤Î IP ¥¢¥ɥ쥹¤ä¥ݡ¼¥ÈÈֹæ¤À¤±¤ò listen ¤¹¤ë¤褦¤˻ØÄꤷ¤ޤ¹¡£ - ¥ǥե©¥ë¥ȤǤÏÁ´¤ƤÎ IP ¥¤¥󥿡¼¥ե§¡¼¥¹¤Υꥯ¥¨¥¹¥Ȥ˱þÅú¤·¤ޤ¹¡£ - Listen ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¸½ºߤÏɬ¿ܤΥǥ£¥쥯¥ƥ£¥֤Ȥʤê¤ޤ·¤¿¡£ - ¤⤷ÀßÄê¥ե¡¥¤¥ë¤ˤʤ±¤ì¤С¢¥µ¡¼¥Фϵ¯ư¤˼ºÇԤ·¤ޤ¹¡£ - ¤³¤ì¤ϰÊÁ°¤ΥС¼¥¸¥ç¥ó¤Î Apache ¤«¤éÊѹ¹¤Τ¢¤ä¿Éôʬ¤Ǥ¹¡£

    - -

    Listen ¥ǥ£¥쥯¥ƥ£¥֤Ǥϡ¢ÆÃÄê¤Υݡ¼¥Ȥ¢¤뤤¤Ï - ¥¢¥ɥ쥹¤ȥݡ¼¥ȤÎÁȤ߹ç¤碌¤«¤éÆþ¤äƤ¯¤ë¥ꥯ¥¨¥¹¥ȤËÂФ·¤Æ - ±þÅú¤¹¤ë¤褦¤˻ØÄꤷ¤ޤ¹¡£ - ¤⤷¥ݡ¼¥ÈÈֹæ¤À¤±¤¬»ØÄꤵ¤줿¾ì¹ç¤ϡ¢¥µ¡¼¥ФÏÁ´¥¤¥󥿡¼¥ե§¡¼¥¹¤Î - »ØÄꤵ¤줿¥ݡ¼¥ÈÈֹæ¤ËÂФ·¤Æ listen ¤·¤ޤ¹¡£ - IP ¥¢¥ɥ쥹¤¬¥ݡ¼¥ȤȤȤâ¤˻ØÄꤵ¤줿¾ì¹ç¤ϡ¢ - ¥µ¡¼¥ФϻØÄꤵ¤줿¥ݡ¼¥Ȥȥ¤¥󥿡¼¥ե§¡¼¥¹¤ËÂФ·¤Æ listen - ¤·¤ޤ¹¡£

    - -

    ʣ¿ô¤Υ¢¥ɥ쥹¤ȥݡ¼¥ȤËÂФ·¤Æ listen ¤¹¤ë¤褦¤ˡ¢ - ʣ¿ô¤Î Listen ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¦¤³¤Ȥâ¤Ǥ­¤ޤ¹¡£ - ¥µ¡¼¥ФÏÎóµ󤵤줿¥¢¥ɥ쥹¤ȥݡ¼¥ÈÁ´¤Ƥ«¤é¤Υꥯ¥¨¥¹¥ȤËÂФ·¤Æ - ±þÅú¤·¤ޤ¹¡£

    - -

    Î㤨¤С¢¥µ¡¼¥Ф¬ 80 È֥ݡ¼¥ȤÈ 8000 È֥ݡ¼¥ȤÎξÊý¤Î - ¥³¥ͥ¯¥·¥ç¥ó¤ò¼õ¤±Æþ¤ì¤ë¾ì¹ç¤ϡ¢¼¡¤Τ褦¤ˤ·¤ޤ¹¡£

    - -

    - Listen 80
    - Listen 8000 -

    - -

    Æó¤ĤÎÆÃÄê¤Υ¤¥󥿡¼¥ե§¡¼¥¹¤ȥݡ¼¥ÈÈֹ椫¤é¤Υ³¥ͥ¯¥·¥ç¥ó¤ò - ¼õ¤±Æþ¤ì¤ë¤褦¤ˤ¹¤ë¤ˤϡ¢¼¡¤Τ褦¤ˤ·¤ޤ¹¡£

    - -

    - Listen 192.170.2.1:80
    - Listen 192.170.2.5:8000 -

    - -

    IPv6 ¥¢¥ɥ쥹¤ϳѳç¸̤ǰϤޤʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - Î㤨¤м¡¤ÎÎã¤Τ褦¤ˤǤ¹¡£

    - -

    - Listen [fe80::a00:20ff:fea7:ccea]:80 -

    - -

    protocol ¥ª¥ץ·¥ç¥ó°ú¿ô¤ÏÄ̾ï¤ÎÀßÄê¤ǤÏɬÍפ¢¤ê¤ޤ»¤ó¡£ - ̵»ØÄê¤ξì¹硢443 È֥ݡ¼¥ȤˤÏ https ¤¬¡¢¾¤Υݡ¼¥ȤˤÏ - http ¤¬¥ǥե©¥ë¥ÈÃͤȤ·¤ƻÈÍѤµ¤ì¤ޤ¹¡£ - protocol »ØÄê¤ϡ¢¤ɤΥ⥸¥塼¥뤬¥ꥯ¥¨¥¹¥Ȥò½èÍý¤¹¤뤫¤ò·èÄꤷ¡¢ - AcceptFilter - ¤ˤè¤ë¥ץí¥ȥ³¥ëÆÃͭ¤κÇŬ²½¤ò¹Ԥ¦¤褦¤ˤ·¤ޤ¹¡£

    - -

    Èóɸ½à¤ʥݡ¼¥ȤDZ¿ÍѤ·¤Ƥ¤¤ëºݤˤΤß protocol »ØÄ꤬ɬÍפˤʤê¤ޤ¹¡£ - ¤¿¤Ȥ¨¤Ð https ¤ʥµ¥¤¥Ȥò 8443 È֥ݡ¼¥ȤDZ¿ÍѤ·¤Ƥ¤¤ë¾ì¹ç :

    - -

    - Listen 192.170.2.1:8443 https -

    - -

    ¥¨¥顼¾ò·ï

    - Ʊ°ì IP ¥¢¥ɥ쥹¤ȥݡ¼¥ȤÎÁȤˡ¢ʣ¿ô¤Î Listen - ¥ǥ£¥쥯¥ƥ£¥֤ò»ØÄꤷ¤Ƥ·¤ޤ¦¤ȡ¢Address already in use - ¤Ȥ¤¤¦¥¨¥顼¥á¥å»¡¼¥¸¤ò¼õ¤±¤뤳¤Ȥˤʤê¤ޤ¹¡£ -
    - - -

    »²¾È

    - -
    -
    top
    -

    ListenBackLog ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:ÊÝα¾õÂ֤Υ³¥ͥ¯¥·¥ç¥ó¤Υ­¥塼¤κÇÂçĹ
    ¹½ʸ:ListenBacklog backlog
    ¥ǥե©¥ë¥È:ListenBacklog 511
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
    -

    ÊÝα¾õÂ֤Υ³¥ͥ¯¥·¥ç¥ó¤Υ­¥塼¤κÇÂçŤǤ¹¡£ - °ìÈÌŪ¤ˤÏĴÀ°¤¹¤ëɬÍפϤ¢¤ê¤ޤ»¤󤷡¢ĴÀ°¤Ï˾¤ޤ·¤¯¤¢¤ê¤ޤ»¤ó¡£ - ¤·¤«¤·¡¢TCP SYN ¥եé¥åɥ¢¥¿¥å¯¤ξõ¶·²¼¤ˤª¤«¤ì¤ë¾ì¹ç¤ˡ¢ - Áý¤䤷¤¿Êý¤¬˾¤ޤ·¤¤¥·¥¹¥ƥà¤⤢¤ê¤ޤ¹¡£ - listen(2) ¥·¥¹¥ƥॳ¡¼¥ë¤ΥХå¯¥í¥°¥ѥé¥᡼¥¿¤ò - ¤´Í÷²¼¤µ¤¤¡£

    - -

    ¤³¤ÎÃͤÏ OS ¤ˤè¤ꡢ¾®¤µ¤ʿô¤ËÍޤ¨¤é¤ì¤ޤ¹¡£ - ÃͤÏ OS Ëè¤˰ۤʤäƤ¤¤ޤ¹¡£¤ޤ¿¿¤¯¤Î OS ¤Ǥϡ¢ - ¥Хå¯¥í¥°¤Ȥ·¤ƻØÄꤵ¤ì¤Ƥ¤¤ëÃͤÁ¤礦¤ɤޤǻȤäƤ¤¤ë¤櫓¤ǤϤʤ¯¡¢ - ÀßÄꤵ¤ì¤Ƥ¤¤ëÃͤ˴ð¤Ť¤¤Æ (Ä̾ï¤ÏÀßÄêÃͤè¤ê¤âÂ礭¤ÊÃͤò) - »ȤäƤ¤¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    top
    -

    LockFile ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¼õÉդòľÎ󲽤¹¤뤿¤á¤Υí¥å¯¥ե¡¥¤¥ë¤ΰÌÃÖ
    ¹½ʸ:LockFile filename
    ¥ǥե©¥ë¥È:LockFile logs/accept.lock
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, perchild, prefork, threadpool, worker
    -

    AcceptMutex - ¤¬ fcntl ¤ä flock - ¤ËÀßÄꤵ¤ì¤ƻÈÍѤµ¤ì¤Ƥ¤¤ë¾ì¹ç¤ˡ¢»ÈÍѤµ¤ì¤ë¥í¥å¯¥ե¡¥¤¥ë¤ؤΥѥ¹¤ò - LockFile ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤷ¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÄ̾ï¤Ϥ½¤Τޤޤˤ·¤Ƥª¤­¤ޤ¹¡£ - ¼ç¤Ë logs ¥ǥ£¥쥯¥ȥ꤬ NFS - ¤ǥޥ¦¥ó¥Ȥµ¤ì¤Ƥ¤¤ë¾ì¹ç¤ʤɤËÃͤòÊѤ¨¤ޤ¹¡£ - ¤ʤ¼¤ʤé¥í¥å¯¥ե¡¥¤¥ë¤ϥí¡¼¥«¥ë¥ǥ£¥¹¥¯¤Ë - Êݸ¤µ¤ì¤ʤ±¤ì¤Фʤé¤ʤ¤¤«¤é¤Ǥ¹¡£ - ¥ᥤ¥󥵡¼¥Хץí¥»¥¹¤Î PID ¤¬¥ե¡¥¤¥ë̾¤˼«ưŪ¤ËÉղ䵤ì¤ޤ¹¡£

    - -

    ¥»¥­¥å¥ê¥ƥ£

    -

    /var/tmp - ¤Ȥ¤¤ä¿¡¢ï¤Ǥâ½񤭹þ¤á¤ë¥ǥ£¥쥯¥ȥê¤˥ե¡¥¤¥ë¤ò - Ã֤«¤ʤ¤Êý¤¬¤褤¤Ǥ¹¡£¤ʤ¼¤ʤ顢¥µ¡¼¥Ф¬µ¯ư»þ¤˺îÀ®¤¹¤ë - ¥í¥å¯¥ե¡¥¤¥ë¤κîÀ®¼«ÂΤò˸³²¤¹¤뤳¤Ȥˤè¤äơ¢ - ï¤Ǥ⥵¡¼¥ӥ¹µñÈݥ¢¥¿¥å¯¤ò°ú¤­µ¯¤³¤¹¤³¤Ȥ¬¤Ǥ­¤뤫¤é¤Ǥ¹¡£

    -
    - -

    »²¾È

    - -
    -
    top
    -

    MaxClients ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤뤿¤á¤˺îÀ®¤µ¤ì¤ë -»ҥץí¥»¥¹¤κÇÂç¸Ŀô
    ¹½ʸ:MaxClients number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑˡ¤ò¤´Í÷²¼¤µ¤¤¡£
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, prefork, threadpool, worker
    -

    MaxClients ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ±þÅú¤¹¤뤳¤ȤΤǤ­¤ëƱ»þ¥ꥯ¥¨¥¹¥ȿô¤òÀßÄꤷ¤ޤ¹¡£ - MaxClients À©¸¿ô¤ò±ۤ¨¤륳¥ͥ¯¥·¥ç¥ó¤ÏÄ̾ - ListenBacklog - ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤷ¤¿¿ô¤ޤǥ­¥塼¤ËÆþ¤ê¤ޤ¹¡£ - ¾¤Υꥯ¥¨¥¹¥ȤκǸå¤ޤÇ㤷¤ƻҥץí¥»¥¹¤¬¶õ¤¯¤ȡ¢ - ¼¡¤Υ³¥ͥ¯¥·¥ç¥ó¤˱þÅú¤·¤ޤ¹¡£

    - -

    ¥¹¥ì¥åɤòÍѤ¤¤ʤ¤¥µ¡¼¥Ð (¤¹¤ʤï¤Á prefork) - ¤Ǥϡ¢MaxClients - ¤ϡ¢¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤뤿¤á¤˵¯ư¤µ¤ì¤ë - »ҥץí¥»¥¹¤κÇÂç¿ô¤Ȥʤê¤ޤ¹¡£ - ¥ǥե©¥ë¥ÈÃͤÏ 256 ¤ǡ¢¤³¤ì¤òÁý²äµ¤»¤¿¤¤¾ì¹ç¤ϡ¢ - ServerLimit - ¤ÎÃͤâÁý²äµ¤»¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ¥¹¥ì¥åɤòÍѤ¤¤륵¡¼¥Ф䡢¥ϥ¤¥֥ê¥åɥµ¡¼¥Ð (¤¹¤ʤï¤Á - beos worker) - ¤Ǥϡ¢MaxClients - ¤ϡ¢¥¯¥饤¥¢¥ó¥Ȥ˱þÅú¤Ǥ­¤륹¥ì¥åɤÎÁí¿ô¤òÀ©¸¤·¤ޤ¹¡£ - beos ¤ǤΥǥե©¥ë¥ÈÃͤÏ 50 ¤Ǥ¹¡£ - ¥ϥ¤¥֥ê¥åÉ MPM ¤ǤΥǥե©¥ë¥ÈÃͤÏ 16 - ServerLimit - ¤Î 25 ÇÜ (ThreadsPerChild) ¤Ǥ¹¡£ - MaxClients - ¤ò 16 ¥ץí¥»¥¹°ʾåɬÍפÊÃͤޤÇÁý²äµ¤»¤¿¤¤¾ì¹ç¤ϡ¢ - ServerLimit - ¤âÁý²äµ¤»¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -
    -
    top
    -

    MaxMemFree ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:free() ¤¬¸ƤФì¤ʤ¤¸¤ꡢ -¼ç¥á¥â¥ꥢ¥í¥±¡¼¥¿¤¬Êݻý¤·³¤±¤é¤ì¤ë¥á¥â¥ê¤κÇÂçÎÌ
    ¹½ʸ:MaxMemFree KBytes
    ¥ǥե©¥ë¥È:MaxMemFree 0
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_netware, prefork, threadpool, worker, mpm_winnt
    -

    MaxMemFree ¥ǥ£¥쥯¥ƥ£¥֤Ï - free() ¤¬¸ƤФì¤ʤ¤¸¤ꡢ - ¼祢¥í¥±¡¼¥¿¤¬Êݻý¤Ǥ­¤ë¶õ¤Υá¥â¥ê¤κÇÂçÃͤ򥭥í¥Х¤¥Èñ°̤ÇÀßÄꤷ¤ޤ¹¡£ - ÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤¤«¡¢Îí¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¤Ȥ­¤ϡ¢̵À©¸¤ˤʤê¤ޤ¹¡£

    - -
    -
    top
    -

    MaxRequestsPerChild ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¸ġ¹¤λҥµ¡¼¥Ф¬²ÔƯÃæ¤˰·¤¦¥ꥯ¥¨¥¹¥ȿô¤ξå¸Â
    ¹½ʸ:MaxRequestsPerChild number
    ¥ǥե©¥ë¥È:MaxRequestsPerChild 10000
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
    -

    MaxRequestsPerChild ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¸ġ¹¤λҥµ¡¼¥Хץí¥»¥¹¤¬°·¤¦¤³¤ȤΤǤ­¤ë¥ꥯ¥¨¥¹¥ȤÎÀ©¸¿ô¤ò - ÀßÄꤷ¤ޤ¹¡£MaxRequestsPerChild - ¸ĤΥꥯ¥¨¥¹¥Ȥθå¤ˡ¢»ҥץí¥»¥¹¤Ͻªλ¤·¤ޤ¹¡£ - MaxRequestsPerChild ¤¬ 0 - ¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¾ì¹ç¤ϡ¢¥ץí¥»¥¹¤ϴü¸ÂÀڤì¤ˤè¤꽪λ¤¹¤뤳¤ȤϤ¢¤ê¤ޤ»¤ó¡£

    - -

    ¤½¤Î¾¤Υǥե©¥ë¥ÈÃÍ

    -

    mpm_netware ¤È mpm_winnt - ¤ǤΥǥե©¥ë¥ÈÃͤÏ 0 ¤Ǥ¹¡£

    -
    - -

    MaxRequestsPerChild - ¤òÈ󥼥í¤ËÀ©¸¤¹¤뤳¤Ȥˤϡ¢Æó¤ĤÎÍøÅÀ¤¬¤¢¤ê¤ޤ¹:

    - -
      -
    • (¶öȯŪ¤Ê) ¥á¥â¥꡼¥꡼¥¯¤¬µ¯¤³¤ä¿¾ì¹ç¤Ë - ¥ץí¥»¥¹¤¬¾ÃÈ񤹤ë¥á¥â¥ê¤ÎÁíÎ̤òÀ©¸¤Ǥ­¤ë
    • - -
    • ¥ץí¥»¥¹¤Ëͭ¸¤Υ饤¥ե¿¥¤¥à¤òÀßÄꤹ¤뤳¤Ȥǡ¢ - ¥µ¡¼¥ÐÉé²٤¬²¼¤¬¤ä¿»þ¤˥ץí¥»¥¹¿ô¤򾯤ʤ¯¤¹¤뤳¤Ȥ¬¤Ǥ­¤ë
    • -
    - -

    Ãí

    -

    KeepAlive ¥ꥯ¥¨¥¹¥Ȥξì¹ç¤ϡ¢ - °ì¤ÄÌܤΥꥯ¥¨¥¹¥ȤÀ¤±¤¬¤³¤ÎÀ©¸¤˳ºÅö¤·¤ޤ¹¡£ - ¼¸úŪ¤ˤϡ¢°ì¤Ĥλҥץí¥»¥¹¤¢¤¿¤ê¤Î¥³¥ͥ¯¥·¥ç¥ó¿ô¤ò - À©¸¤¹¤ë¤褦¤˵óư¤¬ÊѲ½¤·¤ޤ¹¡£

    -
    - -
    -
    top
    -

    MaxSpareThreads ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥¢¥¤¥ɥ륹¥ì¥åɤκÇÂç¿ô
    ¹½ʸ:MaxSpareThreads number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑˡ¤ò¤´Í÷²¼¤µ¤¤¡£
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
    -

    ¥¢¥¤¥ɥë¤ʥ¹¥ì¥åɤκÇÂç¿ô¤Ǥ¹¡£°ۤʤë MPM ¤ǤϤ½¤줾¤졢 - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϰۤʤë¼è¤갷¤ï¤ìÊý¤򤵤ì¤ޤ¹¡£

    - -

    perchild ¤Ǥϡ¢ - ¥ǥե©¥ë¥ȤÏ MaxSpareThreads 10 ¤Ǥ¹¡£ - ¤³¤Î MPM ¤ϥ¢¥¤¥ɥ륹¥ì¥åɿô¤򡢤½¤줾¤ì¤λҥץí¥»¥¹¤´¤Ȥ˴ƻ뤷¤ޤ¹¡£ - »ҥץí¥»¥¹¤˥¢¥¤¥ɥ륹¥ì¥åɤ¬¿¤¹¤®¤ë¾ì¹ç¤ϡ¢ - ¥µ¡¼¥ФϤ½¤λҥץí¥»¥¹¤˴ޤޤì¤륹¥ì¥åɤò½ªλ¤·»Ϥá¤ޤ¹¡£

    - -

    worker, leader, - threadpool ¤Ǥϡ¢ - ¥ǥե©¥ë¥ȤÏ MaxSpareThreads 250 ¤Ǥ¹¡£ - ¤³¤Î MPM ¤ϥ¢¥¤¥ɥ륹¥ì¥åɿô¤򥵡¼¥ÐÁ´ÂΤǴƻ뤷¤ޤ¹¡£ - ¥µ¡¼¥Фǥ¢¥¤¥ɥ륹¥ì¥åɿô¤¬¿¤¹¤®¤ë¾ì¹ç¤ϡ¢ - ¤³¤οô»ú¤è¤ê¤⾯¤ʤ¤¿ô¤ˤʤë¤ޤǻҥץí¥»¥¹¤ò½ªλ¤·¤ޤ¹¡£

    - -

    mpm_netware ¤Ǥϡ¢ - ¥ǥե©¥ë¥ȤÏ MaxSpareThreads 100 ¤Ǥ¹¡£ - ¤³¤Î MPM ¤ϥ·¥󥰥ë¥ץí¥»¥¹¤Ǽ¹Ԥµ¤ì¤ޤ¹¤Τǡ¢ - ¥¹¥ڥ¢¥¹¥ì¥åɿô¤⥵¡¼¥ÐÁ´ÂΤǴªÄꤷ¤ޤ¹¡£

    - -

    beos ¤È mpmt_os2 ¤Ï - mpm_netware ¤Ȼ÷¤¿µóư¤򤷤ޤ¹¡£ - beos ¤ǤΥǥե©¥ë¥ÈÃͤÏ MaxSpareThreads 50 - ¤Ǥ¹¡£mpmt_os2 ¤ǤΥǥե©¥ë¥ÈÃͤÏ 10 - ¤Ǥ¹¡£

    - -

    À©¸»ö¹à

    -

    MaxSpareThreads ¤μè¤ëÃͤˤÏÀ©¸¤¬¤¢¤ê¤ޤ¹¡£ - Apache ¤ϼ¡¤ε¬§¤˽¾¤äƼ«ưŪ¤ËÊäÀµ¤·¤ޤ¹¡£

    - -
    - -

    »²¾È

    - -
    -
    top
    -

    MinSpareThreads ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤뤳¤ȤΤǤ­¤ë -¥¢¥¤¥ɥ륹¥ì¥åɿô¤κǾ®¿ô
    ¹½ʸ:MinSpareThreads number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑÊýˡ¤ò¤´Í÷²¼¤µ¤¤¡£
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
    -

    ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤륹¥ì¥åɿô¤κǾ®ÃͤǤ¹¡£ - °ۤʤë MPM ¤ǤϤ½¤줾¤졢 - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϰۤʤë¼è¤갷¤ï¤ìÊý¤򤷤ޤ¹¡£

    - -

    perchild ¤Ǥϡ¢ - ¥ǥե©¥ë¥ȤÏ MinSpareThreads 5 ¤ǡ¢ - ¥¢¥¤¥ɥ륹¥ì¥åɿô¤ò»ҥץí¥»¥¹Ëè¤˴ƻ뤷¤ޤ¹¡£ - ¤⤷»ҥץí¥»¥¹¤˽½ʬ¤ʿô¤Υ¹¥ì¥åɤ¬¤ʤ±¤ì¤С¢ - ¥µ¡¼¥ФϤ½¤λҥץí¥»¥¹¤˿·¤·¤¤¥¹¥ì¥åɤòºî¤ê»Ϥá¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢NumServers - ¤ò 10 ¤ˡ¢MinSpareThreads ¤ò - 5 ¤ˤ·¤¿¾ì¹ç¤ϡ¢ºǾ®¤Ǥâ 50 ¤Υ¢¥¤¥ɥ륹¥ì¥åɤ¬ - ¥·¥¹¥ƥà¾å¤ˤ¢¤뤳¤Ȥˤʤê¤ޤ¹¡£

    - -

    worker, leader, - threadpool ¤Ǥϡ¢ - ¥ǥե©¥ë¥ȤÏ MinSpareThreads 75 ¤ǡ¢ - ¥¢¥¤¥ɥ륹¥ì¥åɿô¤򥵡¼¥ÐÁ´ÂΤǴƻ뤷¤ޤ¹¡£ - ¤⤷¥µ¡¼¥Ф˽½ʬ¤ʿô¤Υ¢¥¤¥ɥ륹¥ì¥åɤ¬¤ʤ±¤ì¤С¢ - ¥¢¥¤¥ɥ륹¥ì¥åɿô¤¬¤³¤οô¤è¤ê¤âÂ礭¤¯¤ʤë¤ޤÇ - ¿·¤·¤¤»ҥץí¥»¥¹¤¬À¸À®¤µ¤ì¤ޤ¹¡£

    - -

    mpm_netware ¤Ǥϡ¢ - ¥ǥե©¥ë¥ȤÏ MinSpareThreads 10 ¤ǡ¢ - ¥·¥󥰥ë¥ץí¥»¥¹ MPM ¤Ǥ¹¤Τǡ¢¥µ¡¼¥ÐÁ´ÂΤǴÉÍý¤µ¤ì¤ޤ¹¡£

    - -

    beos ¤È mpmt_os2 ¤ϡ¢ - mpm_netware¤ˤ褯»÷¤Ƥ¤¤ޤ¹¡£ - beos ¤ǤΥǥե©¥ë¥ȤÏ MinSpareThreads 1 - ¤Ǥ¹¡£mpmt_os2 ¤ǤΥǥե©¥ë¥ȤÏ - 5 ¤Ǥ¹¡£

    - -

    »²¾È

    - -
    -
    top
    -

    PidFile ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥ǡ¼¥â¥ó¤Υץí¥»¥¹ ID -¤򥵡¼¥Ф¬µ­Ͽ¤¹¤뤿¤á¤Υե¡¥¤¥ë
    ¹½ʸ:PidFile filename
    ¥ǥե©¥ë¥È:PidFile logs/httpd.pid
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
    -

    PidFile ¥ǥ£¥쥯¥ƥ£¥֤ǡ¢ - ¥ǡ¼¥â¥ó¤Υץí¥»¥¹ ID ¤򥵡¼¥Ф¬µ­Ͽ¤¹¤ë¥ե¡¥¤¥ë¤òÀßÄꤷ¤ޤ¹¡£ - ¥ե¡¥¤¥ë̾¤¬ÀäÂХѥ¹¤Ǥʤ¤¾ì¹ç¤ϡ¢ - ServerRoot - ¤«¤é¤ÎÁêÂÐŪ¤ʤâ¤ΤȤ·¤ư·¤ï¤ì¤ޤ¹¡£

    - -

    Îã

    - PidFile /var/run/apache.pid -

    - -

    ¥µ¡¼¥Ф¬ ErrorLog - ¤ä TransferLog - ¤òÊĤ¸¤Ƴ«¤­ľ¤·¤¿¤ꡢÀßÄê¥ե¡¥¤¥ë¤ò - ºÆÆɹþ¤·¤¿¤ꤵ¤»¤뤿¤á¤ˡ¢¥µ¡¼¥Ф˥·¥°¥ʥë¤òÁ÷¤뤳¤Ȥ¬¤Ǥ­¤ë¤È - ÊØÍø¤ʤ³¤Ȥ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤Ï SIGHUP (kill -1) ¥·¥°¥ʥë¤ò PidFile - ¤˽񤫤ì¤Ƥ¤¤ë¥ץí¥»¥¹ ID ¤ËÁ÷¤뤳¤ȤǤǤ­¤ޤ¹¡£

    - -

    PidFile ¤ˤϡ¢¥í¥°¥ե¡¥¤¥ë¤ÎÀßÃְÌÃ֤ä - ¥»¥­¥å¥ê¥ƥ£ - ¤ÈÁ´¤¯Ʊ¤¸Ãí°ÕÅÀ¤¬¤¢¤ê¤ޤ¹¡£

    - -

    Ãí°Õ

    -

    Apache 2 ¤Ǥϡ¢ - apachectl - ¥¹¥¯¥ê¥ץȤΤߤò»ÈÍѤ·¤ƥµ¡¼¥ФÎ (ºÆ) µ¯ư¤äÄä»ߤò - ¹Ԥʤ¦¤³¤Ȥò¿侩¤·¤Ƥ¤¤ޤ¹¡£

    -
    - -
    -
    top
    -

    ScoreBoardFile ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:»ҥץí¥»¥¹¤ÈϢ·Ȥ¹¤뤿¤á¤Υǡ¼¥¿¤òÊݸ¤¹¤ë -¥ե¡¥¤¥ë¤ΰÌÃÖ
    ¹½ʸ:ScoreBoardFile file-path
    ¥ǥե©¥ë¥È:ScoreBoardFile logs/apache_status
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker
    -

    Apache ¤Ͽƥץí¥»¥¹¤Ȼҥץí¥»¥¹´֤ÎÄ̿®¤˥¹¥³¥¢¥ܡ¼¥ɤòÍѤ¤¤ޤ¹¡£ - ¤³¤ÎÄ̿®µ¡ǽ¤˥ե¡¥¤¥ë¤òɬÍפȤ¹¤륢¡¼¥­¥ƥ¯¥Á¥ã¤⤢¤ê¤ޤ¹¡£ - ¥ե¡¥¤¥뤬»ØÄꤵ¤ì¤Ƥ¤¤ʤ±¤ì¤С¢Apache ¤Ϥޤº¥á¥â¥ê¾å - (ƿ̾¶¦ͭ¥á¥â¥ê) ¤˥¹¥³¥¢¥ܡ¼¥ɤòºî¤í¤¦¤Ȥ·¡¢¤½¤줬¼ºÇԤ¹¤ë¤È - ¥ǥ£¥¹¥¯¾å¤˥ե¡¥¤¥ë (¥ե¡¥¤¥ë¥١¼¥¹¤ζ¦ͭ¥á¥â¥ê) ¤òºî¤í¤¦¤Ȥ·¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»ØÄꤹ¤ë¤ȡ¢Apache - ¤Ïɬ¤º¥ǥ£¥¹¥¯¤˥ե¡¥¤¥ë¤òÀ¸À®¤·¤ޤ¹¡£

    - -

    Îã

    - ScoreBoardFile /var/run/apache_status -

    - -

    ¥ե¡¥¤¥ë¥١¼¥¹¤ζ¦ͭ¥á¥â¥ê¤ϡ¢¥µ¡¼¥ɥѡ¼¥ƥ£¡¼À½¤Υ¢¥ץꥱ¡¼¥·¥ç¥ó¤Ç - ¥¹¥³¥¢¥ܡ¼¥ɤËľÀܥ¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤ËÌò¤ËΩ¤Á¤ޤ¹¡£

    - -

    ScoreBoardFile ¤ò»Ȥ¦¾ì¹硢 - RAM ¥ǥ£¥¹¥¯¾å¤ËÃ֤¯¤ȥ¹¥ԡ¼¥ɤ¬¸þ¾夹¤ë¤Ǥ·¤礦¡£ - ¤·¤«¤·¡¢¥í¥°¥ե¡¥¤¥ë¤ÎÀßÃְÌÃ֤ä - ¥»¥­¥å¥ê¥ƥ£ - ¤ÈƱÍͤÎÃí°ÕÅÀ¤¬¤¢¤ë¤Τǡ¢Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    »²¾È

    - -
    -
    top
    -

    SendBufferSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:TCP ¥Хåե¡¥µ¥¤¥º
    ¹½ʸ:SendBufferSize bytes
    ¥ǥե©¥ë¥È:SendBufferSize 0
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
    -

    ¥µ¡¼¥ФÏ TCP ¥Хåե¡¥µ¥¤¥º¤ò»ØÄꤵ¤줿¥Х¤¥ȿô¤ËÀßÄꤷ¤ޤ¹¡£ - ¹â®¤ǹâ¥쥤¥ƥ󥷤ʴĶ­¤Ç - (Îã 100ms ÄøÅ١¢ÂçΦ²£Ãǹâ®Ä̿®ϩ¤ʤÉ) - ¸Ť¤°ìÈÌŪ¤Ê OS ¤Υǥե©¥ë¥ÈÃͤòÁý¤䤹¤ΤËÈó¾ï¤ËÊØÍø¤Ǥ¹¡£

    - -

    0¤ˤ·¤¿¾ì¹硢OS ¤Υǥե©¥ë¥ÈÃͤ¬»ÈÍѤµ¤ì¤ޤ¹¡£

    - -
    -
    top
    -

    ServerLimit ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:ÀßÄê²Äǽ¤ʥµ¡¼¥Хץí¥»¥¹¿ô¤ξå¸Â
    ¹½ʸ:ServerLimit number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑˡ¤򻲾È
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, perchild, prefork, threadpool, worker
    -

    prefork MPM ¤ξì¹ç¤ϡ¢¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï - Apache ¥ץí¥»¥¹²ÔƯÃæ¤ˤª¤±¤ë - MaxClients - ¤ËÀßÄê²Äǽ¤ʾå¸ÂÃͤòÀßÄꤹ¤뤳¤Ȥˤʤê¤ޤ¹ - (ÌõÃí: prefork ¤ξì¹ç¤ÏƱ»þ¥¯¥饤¥¢¥ó¥ȿô = ¥µ¡¼¥Хץí¥»¥¹¿ô¤ʤΤÇ) ¡£ - worker MPM ¤ξì¹ç¤ˤϡ¢¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï - ThreadLimit - ¥ǥ£¥쥯¥ƥ£¥֤ÈÁȤ߹ç¤碌¤ơ¢ - Apache ¥ץí¥»¥¹²ÔƯÃæ¤ˤª¤±¤ë - MaxClients - ¤ËÀßÄê²Äǽ¤ʾå¸ÂÃͤòÀßÄꤹ¤뤳¤Ȥˤʤê¤ޤ¹¡£ - ºƵ¯ưÃæ¤ˤ³¤Υǥ£¥쥯¥ƥ£¥֤òÊѹ¹¤·¤Ƥâ̵»뤵¤ì¤ޤ¹¤¬¡¢ - MaxClients - ¤ϺƵ¯ưÃæ¤˽¤Àµ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤ëºݤÏÆäËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ServerLimit ¤¬ɬÍװʾå¤ËÂ礭¤ÊÃͤË - ÀßÄꤵ¤줿¾ì¹ç¤ϡ¢;·פÊ̤»ÈÍѶ¦ͭ¥á¥â¥꤬³ä¤êÅö¤Ƥé¤ì¤ޤ¹¡£ - ServerLimit ¤È - MaxClients - ¤¬¥·¥¹¥ƥà¤ΰ·¤¨¤ëÈϰϤò±ۤ¨¤¿ÀßÄêÃͤˤʤäƤ¤¤ë¤ȡ¢ - Apache ¤ϵ¯ư¤·¤ʤ¤¤«¡¢µ¯ư¤·¤ƤâÉ԰ÂÄê¤ˤʤë¤Ǥ·¤礦¡£

    - -

    prefork MPM ¤Ǥϡ¢ - MaxClients - ¤ò 256 (¥ǥե©¥ë¥È) ¤è¤ê¤âÂ礭¤ÊÃͤËÀßÄꤹ¤ëɬÍפ¬¤¢¤ë»þ¤ˤÀ¤±»ÈÍѤ·¤Ƥ¯¤À¤µ¤¤¡£ - ´õ˾¤Î MaxClients - ¿ô¤Ȥ¯¤é¤٤ơ¢ɬÍװʾå¤ËÂ礭¤ÊÃͤò»ØÄꤹ¤뤳¤ȤÏÈ򤱤Ƥ¯¤À¤µ¤¤¡£

    - -

    worker, leader, - threadpool MPM ¤Ǥϡ¢ - MaxClients ¤È - ThreadsPerChild - ¤ÎÀßÄê¤Ç 16 ¥µ¡¼¥Хץí¥»¥¹ (¥ǥե©¥ë¥È) - °ʾåɬÍפˤʤë¾ì¹ç¤ˤΤ߻ÈÍѤ·¤Ƥ¯¤À¤µ¤¤¡£´õ˾¤Î - MaxClients ¤È - ThreadsPerChild - ¤Ȥ¯¤é¤٤ơ¢ɬÍפȤʤ륵¡¼¥Хץí¥»¥¹¿ô°ʾå¤ËÂ礭¤ÊÃͤò - ÀßÄꤹ¤뤳¤ȤÏÈ򤱤Ƥ¯¤À¤µ¤¤¡£

    - -

    perchild MPM ¤Ǥϡ¢ - NumServers ¤ò 8 (¥ǥե©¥ë¥È) - ¤è¤í¤¤¤âÂ礭¤ÊÃͤËÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤Ȥ­¤ˤΤ߻ÈÍѤ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Ãí°Õ

    -

    ServerLimit 20000 ¤Ȥ¤¤¦À©¸ÂÉդ­¤ǥ³¥ó¥ѥ¤¥뤵¤ì¤Ƥ¤¤ޤ¹ - (prefork MPM ¤ǤÏ 200000) ¡£ - ¤³¤ì¤ϥ¹¥ڥë¥ߥ¹¤ˤè¤äƸí¤äƹ󤤾õ¶·¤ˤʤë¤Τò¡¢ - ²óÈ򤹤뤿¤á¤νèÃ֤Ǥ¹¡£

    -
    - -

    »²¾È

    - -
    -
    top
    -

    StartServers ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:µ¯ư»þ¤ËÀ¸À®¤µ¤ì¤ë»ҥµ¡¼¥Хץí¥»¥¹¤οô
    ¹½ʸ:StartServers number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑÊýˡ¤򻲾È
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, mpmt_os2, prefork, threadpool, worker
    -

    StartServers ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - µ¯ư»þ¤ËÀ¸À®¤µ¤ì¤ë»ҥµ¡¼¥Хץí¥»¥¹¤οô¤òÀßÄꤷ¤ޤ¹¡£ - ¥ץí¥»¥¹¿ô¤ÏÉé²٤˱þ¤¸¤ÆưŪ¤ËÀ©¸椵¤ì¤ޤ¹¤Τǡ¢ - Ä̾ï¤Ϥ³¤ÎÃͤòĴÀ°¤¹¤ëÍýͳ¤Ϥ¢¤ޤê¤ʤ¤¤Ǥ·¤礦¡£

    - -

    ¥ǥե©¥ë¥ÈÃͤÏ MPM ¤´¤Ȥ˰ۤʤê¤ޤ¹¡£ - leader, threadpool, - worker ¤Ï StartServers 3 ¤Ǥ¹¡£ - prefork ¤Ï 5 ¤ǡ¢ - mpmt_os2 ¤Ï 2 ¤Ǥ¹¡£

    - -
    -
    top
    -

    StartThreads ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:µ¯ư»þ¤ËÀ¸À®¤µ¤ì¤륹¥ì¥åɤοô
    ¹½ʸ:StartThreads number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑÊýˡ¤򻲾È
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:beos, mpm_netware, perchild
    -

    µ¯ư»þ¤ËÀ¸À®¤µ¤ì¤륹¥ì¥åɤοô¤Ǥ¹¡£ - ¥¹¥ì¥åɿô¤ÏÉé²٤˱þ¤¸¤ÆưŪ¤ËÀ©¸椵¤ì¤ޤ¹¤Τǡ¢ - Ä̾ï¤Ϥ³¤ÎÃͤòĴÀ°¤¹¤ëÍýͳ¤Ϥ¢¤ޤê¤ʤ¤¤Ǥ·¤礦¡£

    - -

    perchild ¤ǤΥǥե©¥ë¥ȤÏ - StartThreads 5 ¤ǡ¢¤³¤Υǥ£¥쥯¥ƥ£¥֤ϵ¯ư»þ¤Ë - ¥ץí¥»¥¹Ëè¤Υ¹¥ì¥åɿô¤òÄÉÀפ·¤ޤ¹¡£

    - -

    mpm_netware ¤ǤΥǥե©¥ë¥ȤÏ - StartThreads 50 ¤ǡ¢ - ¤³¤ξì¹ç¥ץí¥»¥¹¤ϰì¤Ĥ·¤«¤ʤ¤¤Τǡ¢ - µ¯ư»þ¤˥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤륹¥ì¥åɤÎÁí¿ô¤Ȥʤê¤ޤ¹¡£

    - -

    beos ¤ǤΥǥե©¥ë¥ȤÏ StartThreads - 10 ¤Ǥ¹¡£ - ¤ޤ¿¡¢µ¯ư»þ¤ËÀ¸À®¤µ¤ì¤륹¥ì¥åɤÎÁí¿ô¤ˤâȿ±Ǥµ¤ì¤ޤ¹¡£

    - -
    -
    top
    -

    ThreadLimit ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:ÀßÄê²Äǽ¤ʻҥץí¥»¥¹Ëè¤Υ¹¥ì¥åɿô¤ξ帤ò -ÀßÄꤷ¤ޤ¹
    ¹½ʸ:ThreadLimit number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑÊýˡ¤򻲾È
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, mpm_winnt, perchild, threadpool, worker
    ¸ߴ¹À­:Apache 2.0.41 ¤Ȥ½¤ì°ʹߤÎ mpm_winnt -¤ÇÍøÍѲÄǽ
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï - Apache ¥ץí¥»¥¹²ÔƯÃæ¤ˤª¤±¤ë - ThreadsPerChild - ¤ËÀßÄê²Äǽ¤ʾå¸ÂÃͤòÀßÄꤷ¤ޤ¹¡£ºƵ¯ư»þ¤ˤ³¤Υǥ£¥쥯¥ƥ£¥֤ÎÃͤò - Êѹ¹¤·¤Ƥâ̵»뤵¤ì¤ޤ¹¤¬¡¢ - ThreadsPerChild - ¤ϺƵ¯ưÃæ¤ˡ¢¤³¤Υǥ£¥쥯¥ƥ£¥֤ǻØÄꤵ¤줿¾å¸ÂÃͤޤÇ - Êѹ¹¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤ëºݤÏÆäËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ThreadLimit ¤¬ - ThreadsPerChild - ¤è¤ê¤⤺¤äÈÂ礭¤ÊÃͤËÀßÄꤵ¤줿¾ì¹ç¤ϡ¢ - ;·פÊ̤»ÈÍѶ¦ͭ¥á¥â¥꤬³ä¤êÅö¤Ƥé¤ì¤Ƥ·¤ޤ¤¤ޤ¹¡£ - ThreadLimit ¤¬ - ThreadsPerChild - ¤ÎξÊý¤¬¥·¥¹¥ƥà¤ΰ·¤¨¤ëÈϰϤòͤ¨¤Ƥ¤¤ë¾ì¹ç¤ϡ¢ - Apache ¤ϵ¯ư¤·¤ʤ¤¤«¡¢µ¯ư¤·¤¿¤Ȥ·¤ƤâÉ԰ÂÄê¤ˤʤë¤Ǥ·¤礦¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ÎÃͤϺ£»ÈÍѤ·¤Ƥ¤¤ë Apache ¤Î ThreadsPerChild ¤ÎͽÁ۾å¸ÂÃͤò - ͤ¨¤¿ÃͤˤÏÀßÄꤷ¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£ -

    - -

    ThreadLimit ¤Υǥե©¥ë¥ÈÃͤÏ - mpm_winnt ¤ΤȤ­¤Ï 1920 ¤ǡ¢ - ¾¤ξì¹ç¤Ï 64 ¤Ǥ¹¡£

    - -

    Ãí°Õ

    -

    ThreadLimit 20000 (mpm_winnt - ¤ξì¹ç¤Ï ThreadLimit 15000 ) - ¤Ȥ¤¤¦À©¸ÂÉդ­¤ǥ³¥ó¥ѥ¤¥뤵¤ì¤Ƥ¤¤ޤ¹¡£ - ¤³¤ì¤ϥ¹¥ڥë¥ߥ¹¤ˤè¤äƸí¤äƹ󤤾õ¶·¤ˤʤë¤Τò¡¢ - ²óÈ򤹤뤿¤á¤νèÃ֤Ǥ¹¡£

    -
    - -
    -
    top
    -

    ThreadsPerChild ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:»ҥץí¥»¥¹¤½¤줾¤ì¤ËÀ¸À®¤µ¤ì¤륹¥ì¥åɿô
    ¹½ʸ:ThreadsPerChild number
    ¥ǥե©¥ë¥È:¾ܺ٤ϻÈÍÑÊýˡ¤򻲾È
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, mpm_winnt, threadpool, worker
    -

    ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϡ¢¤½¤줾¤ì¤λҥץí¥»¥¹¤ÇÀ¸À®¤µ¤ì¤ë - ¥¹¥ì¥åɿô¤òÀßÄꤷ¤ޤ¹¡£ - »ҥץí¥»¥¹¤ϳ«»ϻþ¤ˤ³¤ì¤é¤Υ¹¥ì¥åɤòÀ¸À®¤·¤ơ¢ - ¤½¤θå¤ÏÀ¸À®¤·¤ޤ»¤ó¡£mpm_winnt ¤Τ褦¤ʡ¢ - »ҥץí¥»¥¹¤¬°ì¤Ĥ·¤«¤ʤ¤¤褦¤Ê MPM ¤òÍøÍѤ·¤Ƥ¤¤ë¤ΤǤ¢¤ì¤С¢ - ¤³¤ÎÃͤϥµ¡¼¥ФÎÉé²ÙÁ´ÂΤò½½ʬ¼è¤갷¤¨¤ëÄøÅ٤ˡ¢ - Â礭¤¯¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£worker ¤Τ褦¤ʡ¢ - »ҥץí¥»¥¹¤¬ʣ¿ô¤¢¤ë¤褦¤Ê MPM ¤òÍøÍѤ·¤Ƥ¤¤ë¤ΤǤ¢¤ì¤С¢ - ¥µ¡¼¥ФÎÄ̾ïÉé²٤ò½½ʬ°·¤¨¤ëÄøÅ٤ˡ¢ - ¥¹¥ì¥åÉÁí¿ô¤¬¿¤¯¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    mpm_winnt¤ǤÎ ThreadsPerChild - ¤Υǥե©¥ë¥ÈÃͤÏ 64 ¤ǡ¢¾¤ξì¹ç¤Ï - 25 ¤Ǥ¹¡£

    - -
    -
    top
    -

    ThreadStackSize ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥¯¥饤¥¢¥ó¥ȤΥ³¥ͥ¯¥·¥ç¥ó¤ò¼õ¤±»ý¤ĥ¹¥ì¥åɤ¬»ÈÍѤ¹¤ë -¥¹¥¿¥å¯¤ΥХ¤¥ȿô
    ¹½ʸ:ThreadStackSize size
    ¥ǥե©¥ë¥È:NetWare ¤ǤÏ 65536¡£¾¤Î OS ¤Ǥϰã¤ä¿ÃÍ
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, mpm_netware, mpm_winnt, perchild, threadpool, worker
    ¸ߴ¹À­:2.1 °ʹß
    -

    ¥¯¥饤¥¢¥ó¥ȥ³¥ͥ¯¥·¥ç¥ó¤ò¼õ¤±»ý¤Á¡¢¥³¥ͥ¯¥·¥ç¥ó½èÍý¤ËɬÍפʥ⥸¥塼¥ë¤Î - ¸ƤӽФ·¤ò¹ԤʤäƤ¤¤륹¥ì¥åɤΡ¢(¼«ưÊѿôÍѤÎ) ¥¹¥¿¥å¯¥µ¥¤¥º¤Ï - ThreadStackSize ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄꤷ¤ޤ¹¡£ - ÂçÄñ¤ξì¹ç OS ¤λØÄꤷ¤Ƥ¤¤륹¥¿¥å¯¥µ¥¤¥º¤Υǥե©¥ë¥ÈÃͤÏ - ŬÀڤʤâ¤ΤǤ¹¤¬¡¢ĴÀ°¤¬ɬÍפˤʤë¾ì¹ç¤⤢¤ê¤ޤ¹:

    - -
      -
    • ¥¹¥ì¥åɥ¹¥¿¥å¯¥µ¥¤¥º¤Υǥե©¥ë¥ÈÃͤ¬Èæ³ÓŪ¾®¤µ¤¯ÀßÄꤵ¤ì¤Ƥ¤¤ë - ¥ץé¥åȥۡ¼¥à (Î㤨¤Ð HP-UX) ¤Ǥϡ¢¼«ưÊѿôÍѤÎÎΰè¤ÇÂ礭¤ÊÍÆÎ̤ò - »ÈÍѤ¹¤륵¡¼¥ɥѡ¼¥ƥ£À½¥⥸¥塼¥ë¤Τ¿¤á¤Ë Apache ¤¬¥¯¥é¥å·¥夹¤ë - ¾ì¹ç¤⤢¤ê¤ޤ¹¡£¤½¤Υ⥸¥塼¥ë¤Ï¾¤Υץé¥åȥۡ¼¥à¤ǤÏ - ¥¹¥¿¥å¯¥µ¥¤¥º¤¬Â礭¤¤¤¿¤á¤ˡ¢²÷Ĵ¤Ëưº¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - ¤³¤Υ¿¥¤¥פΥ¯¥é¥å·¥å¤ϡ¢ThreadStackSize - ¤Ç OS ¤Υǥե©¥ë¥ÈÃͤè¤êÂ礭¤ÊÃͤò»ØÄꤹ¤뤳¤ȤDzò·褷¤ޤ¹¡£ - ¥µ¡¼¥ɥѡ¼¥ƥ£À½¥⥸¥塼¥ë¤Ǥ³¤νèÃ֤¬ɬÍפǤ¢¤ë¤ȵ­ºܤµ¤ì¤Ƥ¤¤ë - ¾ì¹礫¡¢Apache ¤νÐÎϤ¹¤ë¥á¥å»¡¼¥¸¤ǥ¹¥ì¥åɥ¹¥¿¥å¯¥µ¥¤¥º¤¬ - ¾®¤µ¤¹¤®¤ë¤ȻØŦ¤µ¤ì¤Ƥ¤¤ë¾ì¹ç¤ˤΤߡ¢¤³¤ÎĴÀ°¤򤷤Ƥ¯¤À¤µ¤¤¡£
    • - -
    • ¥ǥե©¥ë¥ȥ¹¥ì¥åɥ¹¥¿¥å¯¥µ¥¤¥º¤¬¡¢Web ¥µ¡¼¥ÐÍÑÅӤËɬÍפÊÎ̤è¤ê¤â - ÌÀ¤餫¤ËÂ礭¤¹¤®¤ë¾ì¹硢ThreadStackSize - ¤ò OS ¤Υǥե©¥ë¥ÈÃͤè¤ê¤⾮¤µ¤ÊÃͤˤ¹¤뤳¤Ȥǡ¢»ҥץí¥»¥¹¤¢¤¿¤ê¤Î - ¥¹¥ì¥åɿô¤ò¤è¤ê¿¤¯»ý¤¿¤»¤é¤ì¤ë¤褦¤ˤʤê¤ޤ¹¡£ - ¤³¤Υ¿¥¤¥פÎĴÀ°¤ϡ¢¥ƥ¹¥ȴĶ­¤ǥ¦¥§¥֥µ¡¼¥Фò´°Á´¤Ë - ¥ƥ¹¥ȤǤ­¤ë¾ì¹ç¤˸¤äƹԤʤ¦¤٤­¤Ǥ¹¡£ - ¤ޤì¤Ë¿¿ô¤Υ¹¥¿¥å¯¤¬Í׵ᤵ¤ì¤ë¥ꥯ¥¨¥¹¥Ȥò¼õ¤±¤뤳¤Ȥ¬¤¢¤뤫¤â - ¤·¤ì¤ʤ¤¤«¤é¤Ǥ¹¡£ - Web ¥µ¡¼¥ФÎÀßÄê¤òÊѹ¹¤¹¤ë¤ȡ¢¸½ºߤÎ ThreadStackSize - ¤ÎÀßÄ꤬¼è¤ê¾äµ¤ì¤ë¾ì¹礬¤¢¤ê¤ޤ¹¡£
    • -
    - -
    -
    top
    -

    User ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤ëºݤËÍѤ¤¤ë¥桼¥¶ ID
    ¹½ʸ:User unix-userid
    ¥ǥե©¥ë¥È:User #-1
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:leader, perchild, prefork, threadpool, worker
    ¸ߴ¹À­:Apache 2.0 °ʹߤǡ¢¥°¥í¡¼¥ХëÀßÄê¤ǤΤßͭ¸ú¤Ǥ¹¡£ -
    -

    User ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¥µ¡¼¥Ф¬¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤ëºݤËÍѤ¤¤ë¥桼¥¶ ID ¤òÀßÄꤷ¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤뤿¤á¤ˤϡ¢¥¹¥¿¥ó¥ɥ¢¥í¥󷿤Î - ¥µ¡¼¥ФϺǽé¤Ë root ¸¢¸¤ǵ¯ư¤µ¤ì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - Èó root ¥桼¥¶¤ǥµ¡¼¥Фòµ¯ư¤·¤¿¾ì¹ç¤ϡ¢ - ¸¢¸¤ÎÄ㤤¥桼¥¶¤ؤÈÊѤï¤뤳¤Ȥ¬¤Ǥ­¤º¡¢ - ·ë¶ɸµ¤Υ桼¥¶¤Υץí¥»¥¹¤Ȥ·¤Ƽ¹Ԥµ¤ì³¤±¤ޤ¹¡£ - root ¤ǵ¯ư¤·¤¿¾ì¹ç¤˿ƥץí¥»¥¹¤¬ root - ¤Ȥ·¤Ƽ¹Ԥµ¤ì¤Ƥ¤¤ë¤ΤÏÀµ¾ï¤Êưºî¤Ǥ¹¡£ - Unix-userid ¤ϼ¡¤Τɤ줫¤Ǥ¹¡£

    - -
    -
    ¥桼¥¶̾
    -
    ¥桼¥¶¤ò̾Á°¤ǻ²¾Ȥ·¤ޤ¹¡£
    - -
    # ¤Ë³¤¤¤ƥ桼¥¶Èֹæ
    -
    ¥桼¥¶¤òÈֹæ¤ǻ²¾Ȥ·¤ޤ¹¡£
    -
    - -

    ¤³¤Υ桼¥¶¤ϡ¢³°Éô¤˸«¤»¤ë¤褦¤˰տޤ·¤Ƥ¤¤ʤ¤¥ե¡¥¤¥ë¤ˡ¢ - ¥¢¥¯¥»¥¹²Äǽ¤ˤʤäƤ·¤ޤ¦¤褦¤ʸ¢¸¤ò»ý¤Ĥ٤­¤ǤϤʤ¤¤Ǥ¹¤·¡¢ - ƱÍͤË HTTP ¥ꥯ¥¨¥¹¥ȤËÂФ·¤ƱþÅú¤¹¤ë¤褦¤˰տޤ·¤Ƥ¤¤ʤ¤ - ¼¹ԥ³¡¼¥ɤ򡢼¹ԤǤ­¤ë¤褦¤ʸ¢¸¤ò»ý¤Ĥ٤­¤ǤϤʤ¤¤Ǥ¹¡£ - ¥µ¡¼¥Фò¼¹Ԥ¹¤뤿¤á¤ËÆÃÄê¤ο·¤·¤¤¥桼¥¶¤ȥ°¥롼¥פò - ÀßÄꤹ¤뤳¤Ȥò¤ªÁ¦¤ᤤ¤¿¤·¤ޤ¹¡£ - nobody ¥桼¥¶¤ò»ÈÍѤ¹¤ë´ÉÍý¼Ԥ⤤¤ޤ¹¤¬¡¢ - ¤³¤줬¾ï¤Ë˾¤ޤ·¤¤¤櫓¤ǤϤ¢¤ê¤ޤ»¤ó¡£ - ¤ʤ¼¤ʤé nobody ¥桼¥¶¤ϡ¢¥·¥¹¥ƥà¤Ç - ¾¤ÎÌò³ä¤òô¤äƤ¤¤뤫¤âÃΤì¤ʤ¤¤«¤é¤Ǥ¹¡£

    - -

    ¥»¥­¥å¥ê¥ƥ£

    -

    Àµ³Τˤɤó¤ʤ³¤Ȥò¤ä¤äƤ¤¤ë¤Τ«¡¢¤½¤δí¸±À­¤òÃΤé¤ʤ¤¤ǡ¢ - User (¤ä Group) ¤ò root ¤Ë - ÀßÄꤷ¤ʤ¤¤Ǥ¯¤À¤µ¤¤¡£

    -
    - -

    perchild MPM ¤Ǥϡ¢°ۤʤë¥桼¥¶ ID - ¤Çʣ¿ô¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥòư¤«¤¹¤³¤ȤòÌÜŪ¤Ȥ·¤Ƥ¤¤ޤ¹¤¬¡¢ - User ¤ϡ¢¼祵¡¼¥ФΥ桼¥¶ ID - ¤ȡ¢AssignUserID - ¥ǥ£¥쥯¥ƥ£¥֤ò»ý¤¿¤ʤ¤ <VirtualHost> ¥»¥¯¥·¥ç¥ó¤ؤÎ - ¥ե©¡¼¥ë¥Х寤ȤòÄêµÁ¤¹¤뤳¤Ȥˤʤê¤ޤ¹¡£

    - -

    Æõ­»ö¹à: ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò - <VirtualHost> - ¤ǻÈÍѤ¹¤뤳¤Ȥϥµ¥ݡ¼¥Ȥµ¤ì¤ʤ¯¤ʤê¤ޤ·¤¿¡£ - suexec ¸þ¤±¤˥µ¡¼¥ФòÀßÄꤹ¤ë¤ΤǤ¢¤ì¤С¢ - SuexecUserGroup - ¤ò»ÈÍѤ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Ãí°Õ

    -

    User ¥ǥ£¥쥯¥ƥ£¥֤Ï - beos ¤È mpmt_os2 MPM - ¤ˤ⸺ߤ·¤ޤ¹¤¬¡¢¼¼ÁŪ¤Ë̵¸ú¤ǡ¢¸ߴ¹À­¤Τ¿¤á¤À¤±¤Ë¸ºߤ·¤ޤ¹¡£

    -
    - -
    -
    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mpm_common.html.ja.utf8 b/docs/manual/mod/mpm_common.html.ja.utf8 new file mode 100644 index 00000000000..67f4dc178f7 --- /dev/null +++ b/docs/manual/mod/mpm_common.html.ja.utf8 @@ -0,0 +1,1040 @@ + + + + + +mpm_common - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM 共通ディレクティブ

    +
    +

    翻訳済み言語:  de  | + en  | + ja  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +
    説明:二つ以上のマルチプロセッシングモジュール (MPM) +で実装されているディレクティブのコレクション
    ステータス:MPM
    +
    + + +
    top
    +

    AcceptMutex ディレクティブ

    + + + + + + + +
    説明:複数の子プロセスがネットワークソケットでリクエストを +accept しようとしているときに、Apache がそれらの子プロセスを直列化するために +使う方法
    構文:AcceptMutex default|method
    デフォルト:AcceptMutex default
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork, worker
    +

    AcceptMutex ディレクティブは、 + ネットワークソケットのリクエストを accept しようとしている複数の子プロセスを + Apache が直列化するために使う方法を設定します。 + Apache 2.0 以前は、このメソッドはコンパイル時にのみ選択できました。 + 最適な方法は、アーキテクチャやプラットホームに大きく依存します。 + 詳細に関しては、性能のチューニング + ドキュメントをご覧下さい。

    + +

    このディレクティブが Default + に設定されていれば、コンパイル時に選択されたデフォルト値が使われます。 + 他の使用可能なメソッドの一覧は下にあります。 + 全てのメソッドが全てのプラットホームで使用可能であるわけではない、 + ということに注意してください。 + 使用可能でないメソッドが指定された場合は、 + 使用可能なメソッドの一覧を含んだメッセージが + エラーログに出力されます。

    + +
    +
    flock
    +
    LockFile + ディレクティブで定義したファイルのロックに、 + flock(2) システムコールを使います。
    + +
    fcntl
    +
    LockFile + ディレクティブで定義したファイルのロックに、 + fcntl(2) システムコールを使います。
    + +
    posixsem
    +
    排他処理の実装に POSIX 互換セマフォを使用します
    + +
    pthread
    +
    POSIX Threads (PThreads) 規格で実装されている + POSIX 排他処理を使います。
    + +
    sysvsem
    +
    排他処理の実装に SySV 形式のセマフォを使います。
    +
    + +

    コンパイル時にシステムのデフォルトに選ばれたものが何かを見たい場合は、 + LogLevel を debug + に設定するとよいでしょう。デフォルトの AcceptMutex + が ErrorLog に書き込まれます。

    + +

    警告

    +

    ほとんどのシステムにおいては、pthread オプションが + 選ばれていると、子プロセスが AcceptCntl mutex を + 保持しているときに異常終了した場合、サーバはリクエストへの応答を + 停止してしまいます。これが発生した場合は、サーバを復旧させるためには + 手動で再起動させる必要があります。

    + +

    Solaris は例外で、Apache も使用している、子プロセスが mutex を + 保持して異常終了した後に mutex を復旧させるための機構を提供をしています。

    +

    御使用のシステムが pthread_mutexattr_setrobust_np() 関数を + 実装している場合は、pthread オプションを安全に使用できる + 可能性があります。

    +
    + +
    +
    top
    +

    ChrootDir ディレクティブ

    + + + + + + + + +
    説明:Directory for apache to run chroot(8) after startup.
    構文:ChrootDir /path/to/directory
    デフォルト:none
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:event, prefork, worker
    互換性:Available in Apache 2.2.10 and later

    このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 +

    +
    top
    +

    CoreDumpDirectory ディレクティブ

    + + + + + + + +
    説明:Apache がコアダンプする前に移動を試みるディレクトリ +
    構文:CoreDumpDirectory directory
    デフォルト:デフォルトの設定は説明文を読んでください
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_winnt, prefork, worker
    +

    Apache がコアダンプする前に移動を試みるディレクトリを制御します。 + デフォルト値は ServerRoot + ディレクトリですが、このディレクトリはサーバの実行されているユーザ権限で + 書き込み可能であるべきではないので、通常はコアダンプは書き込まれません。 + デバッグのためにコアダンプが必要であれば、 + このディレクティブを使って他の位置にコアダンプを書き出すようにできます。

    + +

    Linux でのコアダンプ

    +

    Apache が root として起動されて、別のユーザの権限に以降した場合は + Linux のカーネルはディレクトリがプロセスの権限で書き込み可能な場合でさえも + コアダンプを無効にします。Apache (2.0.46 以降) は + Linux 2.4 以降ではコアダンプを行なうように再指定しますが、それは + CoreDumpDirectory を明示的に設定したときに + 限ります。

    +
    + +
    +
    top
    +

    EnableExceptionHook ディレクティブ

    + + + + + + + + +
    説明:クラッシュの後に例外ハンドラを実行するフックを有効にする
    構文:EnableExceptionHook On|Off
    デフォルト:EnableExceptionHook Off
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork, worker
    互換性:2.0.49 以降
    +

    安全上の理由から、--enable-exception-hook configure + オプションを有効にした場合にのみ、このディレクティブを利用できます。 + 外部モジュールをプラグインして、子がクラッシュした後に何か実行できるような + フックを有効にします。

    + +

    このような外部モジュールは、既に二つ存在していて、 + mod_whatkilledus と mod_backtrace + がこのフックを活用します。これらの詳細については Jeff Trawick + さんの EnableExceptionHook site を参照してください。

    + +
    +
    top
    +

    GracefulShutdownTimeout ディレクティブ

    + + + + + + + + +
    説明:穏やかな停止をかけた後、終了するまで待つ時間
    構文:GracefulShutDownTimeout seconds
    デフォルト:GracefulShutDownTimeout 0
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork, worker, event
    互換性:2.2 以降
    +

    GracefulShutdownTimeout には + サーバーが "graceful-stop" シグナルを受け取ってから現在の + リクエストの処理を最大で何秒間続けるかを指定します。

    + +

    この値をゼロに設定すると、処理中として残っているリクエストが + 全て完了するまでサーバーは終了しません。

    + +
    +
    top
    +

    Group ディレクティブ

    + + + + + + + + +
    説明:リクエストに応答する際に所属するグループ
    構文:Group unix-group
    デフォルト:Group #-1
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpmt_os2, prefork, worker
    互換性:Apache 2.0 以降で、グローバル設定でのみ有効です。
    +

    Group ディレクティブで、 + リクエストに応答する際に所属しておくグループを設定します。 + このディレクティブを使用するためには、 + サーバは最初に root 権限で起動されている必要があります。 + 非 root ユーザでサーバを起動した場合は、指定したグループに変化できずに、 + 結果的に起動したユーザの属するグループで実行されることになります。 + unix-group は次のうちのいずれかです:

    + +
    +
    グループ名
    +
    グループを名前で参照します
    + +
    # に続いてグループ番号
    +
    グループを番号で参照します。
    +
    + +

    例

    + Group www-group +

    + +

    サーバを実行するために特定の新しいグループを設定することを + お薦めします。nobody を使用する管理者もいますが、 + 可能であったり望ましい訳では必ずしもありません。

    + +

    セキュリティ

    +

    正確にどんなことをやっているのか、その危険性を知らないで、 + Group (や User) を + root に 設定しないでください。

    +
    + +

    特記事項: このディレクティブを + <VirtualHost> + で使用することはサポートされなくなりました。Apache 2.0 で + suexec を設定したい場合は、 + SuexecUserGroup + を使用してください。

    + +

    注意

    +

    Group ディレクティブは + beos と mpmt_os2 MPM + にも存在しますが、実質的に無効で、互換性のためだけに存在します。

    +
    + +
    +
    top
    +

    Listen ディレクティブ

    + + + + + + + +
    説明:サーバが listen するIP アドレスとポート番号
    構文:Listen [IP-address:]portnumber [protocol]
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker, event
    互換性:Apache 2.0 から必須ディレクティブ。protocol +引数は 2.1.5 で追加。
    +

    Listen ディレクティブは Apache + が特定の IP アドレスやポート番号だけを listen するように指定します。 + デフォルトでは全ての IP インターフェースのリクエストに応答します。 + Listen ディレクティブは + 現在は必須のディレクティブとなりました。 + もし設定ファイルになければ、サーバは起動に失敗します。 + これは以前のバージョンの Apache から変更のあった部分です。

    + +

    Listen ディレクティブでは、特定のポートあるいは + アドレスとポートの組み合わせから入ってくるリクエストに対して + 応答するように指定します。 + もしポート番号だけが指定された場合は、サーバは全インターフェースの + 指定されたポート番号に対して listen します。 + IP アドレスがポートとともに指定された場合は、 + サーバは指定されたポートとインターフェースに対して listen + します。

    + +

    複数のアドレスとポートに対して listen するように、 + 複数の Listen ディレクティブを使うこともできます。 + サーバは列挙されたアドレスとポート全てからのリクエストに対して + 応答します。

    + +

    例えば、サーバが 80 番ポートと 8000 番ポートの両方の + コネクションを受け入れる場合は、次のようにします。

    + +

    + Listen 80
    + Listen 8000 +

    + +

    二つの特定のインターフェースとポート番号からのコネクションを + 受け入れるようにするには、次のようにします。

    + +

    + Listen 192.170.2.1:80
    + Listen 192.170.2.5:8000 +

    + +

    IPv6 アドレスは角括弧で囲まなければなりません。 + 例えば次の例のようにです。

    + +

    + Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

    + +

    protocol オプション引数は通常の設定では必要ありません。 + 無指定の場合、443 番ポートには https が、他のポートには + http がデフォルト値として使用されます。 + protocol 指定は、どのモジュールがリクエストを処理するかを決定し、 + AcceptFilter + によるプロトコル特有の最適化を行うようにします。

    + +

    非標準なポートで運用している際にのみ protocol 指定が必要になります。 + たとえば https なサイトを 8443 番ポートで運用している場合 :

    + +

    + Listen 192.170.2.1:8443 https +

    + +

    エラー条件

    + 同一 IP アドレスとポートの組に、複数の Listen + ディレクティブを指定してしまうと、Address already in use + というエラーメッセージを受けることになります。 +
    + + +

    参照

    + +
    +
    top
    +

    ListenBackLog ディレクティブ

    + + + + + + + +
    説明:保留状態のコネクションのキューの最大長
    構文:ListenBacklog backlog
    デフォルト:ListenBacklog 511
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    保留状態のコネクションのキューの最大長です。 + 一般的には調整する必要はありませんし、調整は望ましくありません。 + しかし、TCP SYN フラッドアタックの状況下におかれる場合に、 + 増やした方が望ましいシステムもあります。 + listen(2) システムコールのバックログパラメータを + ご覧下さい。

    + +

    この値は OS により、小さな数に抑えられます。 + 値は OS 毎に異なっています。また多くの OS では、 + バックログとして指定されている値ちょうどまで使っているわけではなく、 + 設定されている値に基づいて (通常は設定値よりも大きな値を) + 使っていることに注意してください。

    + +
    +
    top
    +

    LockFile ディレクティブ

    + + + + + + + +
    説明:受付を直列化するためのロックファイルの位置
    構文:LockFile filename
    デフォルト:LockFile logs/accept.lock
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork, worker
    +

    AcceptMutex + が fcntl や flock + に設定されて使用されている場合に、使用されるロックファイルへのパスを + LockFile ディレクティブで設定します。 + このディレクティブは通常はそのままにしておきます。 + 主に logs ディレクトリが NFS + でマウントされている場合などに値を変えます。 + なぜならロックファイルはローカルディスクに + 保存されなければならないからです。 + メインサーバプロセスの PID がファイル名に自動的に付加されます。

    + +

    セキュリティ

    +

    /var/tmp + といった、誰でも書き込めるディレクトリにファイルを + 置かない方がよいです。なぜなら、サーバが起動時に作成する + ロックファイルの作成自体を妨害することによって、 + 誰でもサービス拒否アタックを引き起こすことができるからです。

    +
    + +

    参照

    + +
    +
    top
    +

    MaxClients ディレクティブ

    + + + + + + + +
    説明:リクエストに応答するために作成される +子プロセスの最大個数
    構文:MaxClients number
    デフォルト:詳細は使用法をご覧下さい。
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, prefork, worker
    +

    MaxClients ディレクティブは、 + 応答することのできる同時リクエスト数を設定します。 + MaxClients 制限数を越えるコネクションは通常、 + ListenBacklog + ディレクティブで設定した数までキューに入ります。 + 他のリクエストの最後まで達して子プロセスが空くと、 + 次のコネクションに応答します。

    + +

    スレッドを用いないサーバ (すなわち prefork) + では、MaxClients + は、リクエストに応答するために起動される + 子プロセスの最大数となります。 + デフォルト値は 256 で、これを増加させたい場合は、 + ServerLimit + の値も増加させる必要があります。

    + +

    スレッドを用いるサーバや、ハイブリッドサーバ (すなわち + beos worker) + では、MaxClients + は、クライアントに応答できるスレッドの総数を制限します。 + beos でのデフォルト値は 50 です。 + ハイブリッド MPM でのデフォルト値は 16 + ServerLimit + の 25 倍 (ThreadsPerChild) です。 + MaxClients + を 16 プロセス以上必要な値まで増加させたい場合は、 + ServerLimit + も増加させる必要があります。

    + +
    +
    top
    +

    MaxMemFree ディレクティブ

    + + + + + + + +
    説明:free() が呼ばれない限り、 +主メモリアロケータが保持し続けられるメモリの最大量
    構文:MaxMemFree KBytes
    デフォルト:MaxMemFree 0
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware, prefork, worker, mpm_winnt
    +

    MaxMemFree ディレクティブは + free() が呼ばれない限り、 + 主アロケータが保持できる空のメモリの最大値をキロバイト単位で設定します。 + 設定されていないか、零に設定されているときは、無制限になります。

    + +
    +
    top
    +

    MaxRequestsPerChild ディレクティブ

    + + + + + + + +
    説明:個々の子サーバが稼働中に扱うリクエスト数の上限
    構文:MaxRequestsPerChild number
    デフォルト:MaxRequestsPerChild 10000
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    MaxRequestsPerChild ディレクティブは、 + 個々の子サーバプロセスが扱うことのできるリクエストの制限数を + 設定します。MaxRequestsPerChild + 個のリクエストの後に、子プロセスは終了します。 + MaxRequestsPerChild が 0 + に設定されている場合は、プロセスは期限切れにより終了することはありません。

    + +

    その他のデフォルト値

    +

    mpm_netware と mpm_winnt + でのデフォルト値は 0 です。

    +
    + +

    MaxRequestsPerChild + を非ゼロに制限することには、二つの利点があります:

    + +
      +
    • (偶発的な) メモリーリークが起こった場合に + プロセスが消費するメモリの総量を制限できる
    • + +
    • プロセスに有限のライフタイムを設定することで、 + サーバ負荷が下がった時にプロセス数を少なくすることができる
    • +
    + +

    注

    +

    KeepAlive リクエストの場合は、 + 一つ目のリクエストだけがこの制限に該当します。 + 実効的には、一つの子プロセスあたりのコネクション数を + 制限するように挙動が変化します。

    +
    + +
    +
    top
    +

    MaxSpareThreads ディレクティブ

    + + + + + + + +
    説明:アイドルスレッドの最大数
    構文:MaxSpareThreads number
    デフォルト:詳細は使用法をご覧下さい。
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware, mpmt_os2, worker
    +

    アイドルなスレッドの最大数です。異なる MPM ではそれぞれ、 + このディレクティブは異なる取り扱われ方をされます。

    + +

    worker では、 + デフォルトは MaxSpareThreads 250 です。 + この MPM はアイドルスレッド数をサーバ全体で監視します。 + サーバでアイドルスレッド数が多すぎる場合は、 + この数字よりも少ない数になるまで子プロセスを終了します。

    + +

    mpm_netware では、 + デフォルトは MaxSpareThreads 100 です。 + この MPM はシングルプロセスで実行されますので、 + スペアスレッド数もサーバ全体で勘定します。

    + +

    beos と mpmt_os2 は + mpm_netware と似た挙動をします。 + beos でのデフォルト値は MaxSpareThreads 50 + です。mpmt_os2 でのデフォルト値は 10 + です。

    + +

    制限事項

    +

    MaxSpareThreads の取る値には制限があります。 + Apache は次の規則に従って自動的に補正します。

    + +
    + +

    参照

    + +
    +
    top
    +

    MinSpareThreads ディレクティブ

    + + + + + + + +
    説明:リクエストに応答することのできる +アイドルスレッド数の最小数
    構文:MinSpareThreads number
    デフォルト:詳細は使用方法をご覧下さい。
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware, mpmt_os2, worker
    +

    リクエストに応答するスレッド数の最小値です。 + 異なる MPM ではそれぞれ、 + このディレクティブは異なる取り扱われ方をします。

    + +

    worker では、 + デフォルトは MinSpareThreads 75 で、 + アイドルスレッド数をサーバ全体で監視します。 + もしサーバに十分な数のアイドルスレッドがなければ、 + アイドルスレッド数がこの数よりも大きくなるまで + 新しい子プロセスが生成されます。

    + +

    mpm_netware では、 + デフォルトは MinSpareThreads 10 で、 + シングルプロセス MPM ですので、サーバ全体で管理されます。

    + +

    beos と mpmt_os2 は、 + mpm_netwareによく似ています。 + beos でのデフォルトは MinSpareThreads 1 + です。mpmt_os2 でのデフォルトは + 5 です。

    + +

    参照

    + +
    +
    top
    +

    PidFile ディレクティブ

    + + + + + + + +
    説明:デーモンのプロセス ID +をサーバが記録するためのファイル
    構文:PidFile filename
    デフォルト:PidFile logs/httpd.pid
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_winnt, mpmt_os2, prefork, worker
    +

    PidFile ディレクティブで、 + デーモンのプロセス ID をサーバが記録するファイルを設定します。 + ファイル名が絶対パスでない場合は、 + ServerRoot + からの相対的なものとして扱われます。

    + +

    例

    + PidFile /var/run/apache.pid +

    + +

    サーバが ErrorLog + や TransferLog + を閉じて開き直したり、設定ファイルを + 再読込したりさせるために、サーバにシグナルを送ることができると + 便利なことがあります。 + これは SIGHUP (kill -1) シグナルを PidFile + に書かれているプロセス ID に送ることでできます。

    + +

    PidFile には、ログファイルの設置位置や + セキュリティ + と全く同じ注意点があります。

    + +

    注意

    +

    Apache 2 では、 + apachectl + スクリプトのみを使用してサーバの (再) 起動や停止を + 行なうことを推奨しています。

    +
    + +
    +
    top
    +

    ReceiveBufferSize ディレクティブ

    + + + + + + + +
    説明:TCP 受信バッファサイズ
    構文:ReceiveBufferSize bytes
    デフォルト:ReceiveBufferSize 0
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    サーバは TCP 受信バッファサイズを指定されたバイト数に設定します。

    + +

    0にした場合、OS のデフォルト値が使用されます。

    + +
    +
    top
    +

    ScoreBoardFile ディレクティブ

    + + + + + + + +
    説明:子プロセスと連携するためのデータを保存する +ファイルの位置
    構文:ScoreBoardFile file-path
    デフォルト:ScoreBoardFile logs/apache_status
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_winnt, prefork, worker
    +

    Apache は親プロセスと子プロセス間の通信にスコアボードを用います。 + この通信機能にファイルを必要とするアーキテクチャもあります。 + ファイルが指定されていなければ、Apache はまずメモリ上 + (匿名共有メモリ) にスコアボードを作ろうとし、それが失敗すると + ディスク上にファイル (ファイルベースの共有メモリ) を作ろうとします。 + このディレクティブを指定すると、Apache + は必ずディスクにファイルを生成します。

    + +

    例

    + ScoreBoardFile /var/run/apache_status +

    + +

    ファイルベースの共有メモリは、サードパーティー製のアプリケーションで + スコアボードに直接アクセスする必要がある場合に役に立ちます。

    + +

    ScoreBoardFile を使う場合、 + RAM ディスク上に置くとスピードが向上するでしょう。 + しかし、ログファイルの設置位置や + セキュリティ + と同様の注意点があるので、注意してください。

    + +

    参照

    + +
    +
    top
    +

    SendBufferSize ディレクティブ

    + + + + + + + +
    説明:TCP バッファサイズ
    構文:SendBufferSize bytes
    デフォルト:SendBufferSize 0
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    サーバは TCP 送信バッファサイズを指定されたバイト数に設定します。 + 高速で高レイテンシな環境で + (例 100ms 程度、大陸横断高速通信路など) + 古い一般的な OS のデフォルト値を増やすのに非常に便利です。

    + +

    0にした場合、OS のデフォルト値が使用されます。

    + +
    +
    top
    +

    ServerLimit ディレクティブ

    + + + + + + + +
    説明:設定可能なサーバプロセス数の上限
    構文:ServerLimit number
    デフォルト:詳細は使用法を参照
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork, worker
    +

    prefork MPM の場合は、このディレクティブは + Apache プロセス稼働中における + MaxClients + に設定可能な上限値を設定することになります + (訳注: prefork の場合は同時クライアント数 = サーバプロセス数なので) 。 + worker MPM の場合には、このディレクティブは + ThreadLimit + ディレクティブと組み合わせて、 + Apache プロセス稼働中における + MaxClients + に設定可能な上限値を設定することになります。 + 再起動中にこのディレクティブを変更しても無視されますが、 + MaxClients + は再起動中に修正することができます。

    + +

    このディレクティブを使用する際は特に注意してください。 + ServerLimit が必要以上に大きな値に + 設定された場合は、余計な未使用共有メモリが割り当てられます。 + ServerLimit と + MaxClients + がシステムの扱える範囲を越えた設定値になっていると、 + Apache は起動しないか、起動しても不安定になるでしょう。

    + +

    prefork MPM では、 + MaxClients + を 256 (デフォルト) よりも大きな値に設定する必要がある時にだけ使用してください。 + 希望の MaxClients + 数とくらべて、必要以上に大きな値を指定することは避けてください。

    + +

    worker MPM では、 + MaxClients と + ThreadsPerChild + の設定で 16 サーバプロセス (デフォルト) + 以上必要になる場合にのみ使用してください。希望の + MaxClients と + ThreadsPerChild + とくらべて、必要となるサーバプロセス数以上に大きな値を + 設定することは避けてください。

    + +

    注意

    +

    ServerLimit 20000 という制限付きでコンパイルされています + (prefork MPM では 200000) 。 + これはスペルミスによって誤って酷い状況になるのを、 + 回避するための処置です。

    +
    + +

    参照

    + +
    +
    top
    +

    StartServers ディレクティブ

    + + + + + + + +
    説明:起動時に生成される子サーバプロセスの数
    構文:StartServers number
    デフォルト:詳細は使用方法を参照
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:mpmt_os2, prefork, worker
    +

    StartServers ディレクティブは、 + 起動時に生成される子サーバプロセスの数を設定します。 + プロセス数は負荷に応じて動的に制御されますので、 + 通常はこの値を調整する理由はあまりないでしょう。

    + +

    デフォルト値は MPM ごとに異なります。 + worker は StartServers 3 です。 + prefork は 5 で、 + mpmt_os2 は 2 です。

    + +
    +
    top
    +

    StartThreads ディレクティブ

    + + + + + + + +
    説明:起動時に生成されるスレッドの数
    構文:StartThreads number
    デフォルト:詳細は使用方法を参照
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:beos, mpm_netware
    +

    起動時に生成されるスレッドの数です。 + スレッド数は負荷に応じて動的に制御されますので、 + 通常はこの値を調整する理由はあまりないでしょう。

    + +

    mpm_netware でのデフォルトは + StartThreads 50 で、 + この場合プロセスは一つしかないので、 + 起動時にリクエストに応答するスレッドの総数となります。

    + +

    beos でのデフォルトは StartThreads + 10 です。 + また、起動時に生成されるスレッドの総数にも反映されます。

    + +
    +
    top
    +

    ThreadLimit ディレクティブ

    + + + + + + + + +
    説明:設定可能な子プロセス毎のスレッド数の上限を +設定します
    構文:ThreadLimit number
    デフォルト:詳細は使用方法を参照
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:mpm_winnt, worker
    互換性:Apache 2.0.41 とそれ以降の mpm_winnt +で利用可能
    +

    このディレクティブは + Apache プロセス稼働中における + ThreadsPerChild + に設定可能な上限値を設定します。再起動時にこのディレクティブの値を + 変更しても無視されますが、 + ThreadsPerChild + は再起動中に、このディレクティブで指定された上限値まで + 変更することができます。

    + +

    このディレクティブを使用する際は特に注意してください。 + ThreadLimit が + ThreadsPerChild + よりもずっと大きな値に設定された場合は、 + 余計な未使用共有メモリが割り当てられてしまいます。 + ThreadLimit が + ThreadsPerChild + の両方がシステムの扱える範囲を超えている場合は、 + Apache は起動しないか、起動したとしても不安定になるでしょう。 + このディレクティブの値は今使用している Apache の ThreadsPerChild の予想上限値を + 超えた値には設定しないでください。 +

    + +

    ThreadLimit のデフォルト値は + mpm_winnt のときは 1920 で、 + 他の場合は 64 です。

    + +

    注意

    +

    ThreadLimit 20000 (mpm_winnt + の場合は ThreadLimit 15000 ) + という制限付きでコンパイルされています。 + これはスペルミスによって誤って酷い状況になるのを、 + 回避するための処置です。

    +
    + +
    +
    top
    +

    ThreadsPerChild ディレクティブ

    + + + + + + + +
    説明:子プロセスそれぞれに生成されるスレッド数
    構文:ThreadsPerChild number
    デフォルト:詳細は使用方法を参照
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:mpm_winnt, worker
    +

    このディレクティブは、それぞれの子プロセスで生成される + スレッド数を設定します。 + 子プロセスは開始時にこれらのスレッドを生成して、 + その後は生成しません。mpm_winnt のような、 + 子プロセスが一つしかないような MPM を利用しているのであれば、 + この値はサーバの負荷全体を十分取り扱える程度に、 + 大きくなければなりません。worker のような、 + 子プロセスが複数あるような MPM を利用しているのであれば、 + サーバの通常負荷を十分扱える程度に、 + スレッド総数が多くなければなりません。

    + +

    mpm_winntでの ThreadsPerChild + のデフォルト値は 64 で、他の場合は + 25 です。

    + +
    +
    top
    +

    ThreadStackSize ディレクティブ

    + + + + + + + + +
    説明:クライアントのコネクションを受け持つスレッドが使用する +スタックのバイト数
    構文:ThreadStackSize size
    デフォルト:NetWare では 65536。他の OS では違った値
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:mpm_netware, mpm_winnt, worker
    互換性:2.1 以降
    +

    クライアントコネクションを受け持ち、コネクション処理に必要なモジュールの + 呼び出しを行なっているスレッドの、(自動変数用の) スタックサイズは + ThreadStackSize ディレクティブで指定します。 + 大抵の場合 OS の指定しているスタックサイズのデフォルト値は + 適切なものですが、調整が必要になる場合もあります:

    + +
      +
    • スレッドスタックサイズのデフォルト値が比較的小さく設定されている + プラットホーム (例えば HP-UX) では、自動変数用の領域で大きな容量を + 使用するサードパーティ製モジュールのために Apache がクラッシュする + 場合もあります。そのモジュールは他のプラットホームでは + スタックサイズが大きいために、快調に動作するかもしれません。 + このタイプのクラッシュは、ThreadStackSize + で OS のデフォルト値より大きな値を指定することで解決します。 + サードパーティ製モジュールでこの処置が必要であると記載されている + 場合か、Apache の出力するメッセージでスレッドスタックサイズが + 小さすぎると指摘されている場合にのみ、この調整をしてください。
    • + +
    • デフォルトスレッドスタックサイズが、Web サーバ用途に必要な量よりも + 明らかに大きすぎる場合、ThreadStackSize + を OS のデフォルト値よりも小さな値にすることで、子プロセスあたりの + スレッド数をより多く持たせられるようになります。 + このタイプの調整は、テスト環境でウェブサーバを完全に + テストできる場合に限って行なうべきです。 + まれに多数のスタックが要求されるリクエストを受けることがあるかも + しれないからです。 + Web サーバの設定を変更すると、現在の ThreadStackSize + の設定が取り消される場合があります。
    • +
    + +
    +
    top
    +

    User ディレクティブ

    + + + + + + + + +
    説明:リクエストに応答する際に用いるユーザ ID
    構文:User unix-userid
    デフォルト:User #-1
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork, worker
    互換性:Apache 2.0 以降で、グローバル設定でのみ有効です。 +
    +

    User ディレクティブは + サーバがリクエストに応答する際に用いるユーザ ID を設定します。 + このディレクティブを使用するためには、スタンドアロン型の + サーバは最初に root 権限で起動されている必要があります。 + 非 root ユーザでサーバを起動した場合は、 + 権限の低いユーザへと変わることができず、 + 結局元のユーザのプロセスとして実行され続けます。 + root で起動した場合に親プロセスが root + として実行されているのは正常な動作です。 + Unix-userid は次のどれかです。

    + +
    +
    ユーザ名
    +
    ユーザを名前で参照します。
    + +
    # に続いてユーザ番号
    +
    ユーザを番号で参照します。
    +
    + +

    このユーザは、外部に見せるように意図していないファイルに、 + アクセス可能になってしまうような権限を持つべきではないですし、 + 同様に HTTP リクエストに対して応答するように意図していない + 実行コードを、実行できるような権限を持つべきではないです。 + サーバを実行するために特定の新しいユーザとグループを + 設定することをお薦めいたします。 + nobody ユーザを使用する管理者もいますが、 + これが常に望ましいわけではありません。 + なぜなら nobody ユーザは、システムで + 他の役割を担っているかも知れないからです。

    + +

    セキュリティ

    +

    正確にどんなことをやっているのか、その危険性を知らないで、 + User (や Group) を root に + 設定しないでください。

    +
    + +

    特記事項: このディレクティブを + <VirtualHost> + で使用することはサポートされなくなりました。 + suexec 向けにサーバを設定するのであれば、 + SuexecUserGroup + を使用してください。

    + +

    注意

    +

    User ディレクティブは + beos と mpmt_os2 MPM + にも存在しますが、実質的に無効で、互換性のためだけに存在します。

    +
    + +
    +
    +
    +

    翻訳済み言語:  de  | + en  | + ja  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mpm_common.html.tr.utf8 b/docs/manual/mod/mpm_common.html.tr.utf8 new file mode 100644 index 00000000000..9a12262c6aa --- /dev/null +++ b/docs/manual/mod/mpm_common.html.tr.utf8 @@ -0,0 +1,1026 @@ + + + + + +mpm_common - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM Ortak Yönergeleri

    +
    +

    Mevcut Diller:  de  | + en  | + ja  | + tr 

    +
    + +
    Açıklama:Birden fazla Çok Süreçlilik Modülü (MPM) tarafından gerçeklenmiş + yönergeler bütünü.
    Durum:MPM
    +
    + + +
    top
    +

    AcceptMutex Yönergesi

    + + + + + + + +
    Açıklama:Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden + çok sayıda çocuk süreci sıraya sokmak için kullandığı yöntemi + belirler.
    Sözdizimi:AcceptMutex Default|yöntem
    Öntanımlı:AcceptMutex Default
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork, worker
    +

    AcceptMutex yönergesi Apache HTTPd Sunucusunun + ağ soketlerinden istekleri kabul eden çok sayıda çocuk süreci sıraya + sokmak için kullandığı yöntemi + belirler. Apache 2.0’dan önce, yöntem sadece derleme sırasında + seçilebiliyordu. Kullanılacak en uygun yöntem mimariye ve platforma aşırı + derecede bağımlıdır. Bu konuda daha ayrıntılı bilgi edinmek için Başarım Arttırma İpuçları belgesine + bakabilirsiniz.

    + +

    Bu yönergeye değer olarak Default belirtilmişse derleme + sırasında seçilen öntanımlı yöntem kullanılacaktır. Diğer olası yöntemler + aşağıda listelenmiştir. Tüm yöntemlerin tüm platformlarda mevcut + olmadığına dikkat ediniz. Eğer belirtilen yöntem mevcut değilse hata + günlüğüne mevcut yöntemlerin listesini içeren bir ileti yazılacaktır.

    + +
    +
    flock
    +
    LockFile yönergesi ile + belirtilen dosyayı kilitlemek için flock(2) sistem + çağrısı kullanılır.
    + +
    fcntl
    +
    LockFile yönergesi ile + belirtilen dosyayı kilitlemek için fcntl(2) sistem + çağrısı kullanılır.
    + +
    posixsem
    +
    Muteksleri gerçeklemek için POSIX uyumlu semaforlar kullanılır.
    + +
    pthread
    +
    POSIX Evreleri (PThreads) belirtimi tarafından gerçeklenen muteksler + kullanılır.
    + +
    sysvsem
    +
    Muteksleri gerçeklemek için SysV tarzı semaforlar kullanılır.
    +
    + +

    Sisteminiz için derleme sırasında seçilmiş öntanımlı yöntemi öğrenmek + isterseniz LogLevel yönergesine + debug değerini atayabilirsiniz. Öntanımlı AcceptMutex, ErrorLog + ile belirtilen günlük dosyasına yazılacaktır.

    + +

    Uyarı

    +

    Çoğu sistemde, pthread seçeneği seçildiği takdirde, + AcceptCntl muteksi tutulurken bir çocuk süreç anormal + şekilde sonlanırsa, muteksi kurtarmak için sunucunun elle yeniden + başlatılması gerekecektir.

    +

    Solaris, bir muteks tutulurken, bir çocuk süreç anormal şekilde + sonlandıktan sonra muteksin Apache tarafından kurtarılmasına imkan veren + bir mekanizma sağlaması sebebiyle diğerlerinden ayrılır.

    +

    Sisteminiz pthread_mutexattr_setrobust_np() işlevini + gerçekliyorsa pthread seçeneğini gönül rahatlığıyla + kullanabilirsiniz.

    +
    + +
    +
    top
    +

    ChrootDir Yönergesi

    + + + + + + + + +
    Açıklama:Başlatıldıktan sonra Apache’nin chroot(8) yapacağı dizin +
    Sözdizimi:ChrootDir /dizin/yolu/
    Öntanımlı:none
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:event, prefork, worker
    Uyumluluk:Apache 2.2.10 ve sonrasında mevcuttur. +
    +

    Bu yönerge sunucu başlatıldıktan sonra istekleri kabul etmeye + başlamadan önce sunucunun belirtilen dizine chroot(8) + yapmasını söyler.

    + +

    Sunucuyu chroot altında çalıştırmanın basit bir işlem olmadığını ve + özellikle CGI veya PHP gibi betikler çalıştırıyorsanız bazı ek + ayarlamaların yapılması gerektiğini unutmayınız. Bu özelliği kullanmaya + çalışmadan önce chroot işlemi hakkında yeterli bilgiye sahip + olduğunuzdan emin olmalısınız.

    + +
    +
    top
    +

    CoreDumpDirectory Yönergesi

    + + + + + + + +
    Açıklama:core dosyasını dökümlemek üzere Apache’nin geçmeye + çalışacağı dizin.
    Sözdizimi:CoreDumpDirectory dizin
    Öntanımlı:Öntanımlı değer için aşağıdaki açıklamaya bakınız
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_winnt, prefork, worker
    +

    Bu yönerge core dosyasını dökümlemek üzere Apache’nin + geçmeye çalışacağı dizini belirler. ServerRoot dizini öntanımlı dizin olmakla + birlikte, bu dizin kullanıcılar tarafından yazılabilir bir dizin + olmadığından bir core dosyası dökümlenmez. Hata ayıklama + amacıyla bir core dosyası dökümlemek isterseniz farklı bir + yer belirtmek için bu yönergeyi kullanabilirsiniz.

    + +

    Linux üzerinde core dökümlemek

    +

    Apache root olarak başlatılıp başka bir kullanıcıya geçilirse Linux + çekirdeği süreç tarafından yazılabilir olsa bile core + dökümlemeyi iptal eder. Eğer + CoreDumpDirectory yönergesi ile açıkça bir + dizin belirtirseniz, Apache (2.0.46 ve sonraki sürümleri), Linux 2.4 ve + sonrasında core dökümlemeyi yeniden + etkinleştirecektir.

    +
    + +

    BSD üzerinde core dökümlemek

    +

    BSD-sistemlerde (FreeBSD gibi) suid-çalıştırılabilirlerinin + core dökümlemesini etkinleştirmek için + kern.sugid_coredump değişkenine 1 atayın. +

    + + +
    +
    top
    +

    EnableExceptionHook Yönergesi

    + + + + + + + + +
    Açıklama:Bir çöküş sonrası olağandışılık eylemcilerini çalıştıracak + kancayı etkin kılar.
    Sözdizimi:EnableExceptionHook On|Off
    Öntanımlı:EnableExceptionHook Off
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork, worker
    Uyumluluk:Sürüm 2.0.49 ve sonrasında mevcuttur
    +

    Güvenlik sebebiyle bu yönerge sadece Apache + --enable-exception-hook seçeneği ile yapılandırılmışsa + kullanılabilir olacaktır. Bu, harici modüllerin eklenmesine ve bir çocuk + sürecin çöküşü sonrası bir şeyler yapmaya izin veren bir kancayı etkin + kılar.

    + +

    Bu kancayı kullanan iki modül (mod_whatkilledus ve + mod_backtrace) zaten vardır. bunlar hakkında daha fazla bilgi + edinmek için Jeff Trawick'in EnableExceptionHook sitesine bakabilirsiniz.

    + +
    +
    top
    +

    GracefulShutdownTimeout Yönergesi

    + + + + + + + + +
    Açıklama:Sunucunun nazikçe kapatılmasının ardından ana süreç çıkana kadar + geçecek süre için bir zaman aşımı belirler.
    Sözdizimi:GracefulShutDownTimeout saniye
    Öntanımlı:GracefulShutDownTimeout 0
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork, worker, event
    Uyumluluk:Sürüm 2.2 ve sonrasında mevcuttur
    +

    GracefulShutdownTimeout yönergesi, sunucuya + "nazikçe dur" sinyali gönderildikten sonra mevcut bağlantılara hizmet + sunmaya daha kaç saniye devam edebileceğini belirtir.

    + +

    Bu değerin 0 olarak belirtilmesi, sunucunun bekleyen bütün + isteklere hizmet sunumu tamamlanıncaya kadar (gerekirse sonsuza kadar) + bekleyebileceği anlamına gelir.

    + +
    +
    top
    +

    Group Yönergesi

    + + + + + + + + +
    Açıklama:İsteklere yanıt verecek sunucunun ait olacağı grubu belirler.
    Sözdizimi:Group unix-grubu
    Öntanımlı:Group #-1
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpmt_os2, prefork, worker
    Uyumluluk:Apache 2.0’dan itibaren sadece sunucu geneli için geçerlidir.
    +

    Group yönergesi, sunucunun hangi grup altında + isteklere yanıt vereceğini belirler. Bu yönergenin uygulanabilmesi için + sunucunun root olarak çalıştırılmış olması gerekir. + Sunucuyu root dışında bir kullanıcı başlattığı takdirde, + sunucu belirtilen gruba geçemez ve kullanıcının kendi grubunda + çalışmaya devam eder. unix-grubu şunlardan biri olabilir:

    + +
    +
    Bir grup adı
    +
    Gruba ismiyle başvurulur.
    + +
    # ardından grup numarası
    +
    Gruba numarası ile başvurulur.
    +
    + +

    Örnek

    + Group www-group +

    + +

    Çalışan sunucu için özellikle yeni bir grup atamanız önerilir. Bazı + sistem yöneticileri nobody grubunu kullanırlar fakat + bu her zaman mümkün olmadığı gibi arzulanan da değildir.

    + +

    Güvenlik

    +

    Ne yaptığınızı ve ne tehlikelere yol açacağınızı bilmiyorsanız + Group (veya User) yönergesine değer olarak + root atamayınız.

    +
    + +

    Özel bilgi: Bu yönergenin <VirtualHost> taşıyıcısı içinde kullanımı + artık desteklenmemektedir. Sunucunuzu suexec için + yapılandırırken SuexecUserGroup yönergesini + kullanınız.

    + +

    Ek Bilgi

    +

    Group yönergesi beos ve + mpmt_os2 MPM’lerinde mevcut olsa da, aslında + işlevsiz olup sadece uyumluluk adına mevcuttur.

    +
    + +
    +
    top
    +

    Listen Yönergesi

    + + + + + + + +
    Açıklama:Sunucunun dinleyeceği IP adresini ve portu belirler.
    Sözdizimi:Listen [IP-adresi:]port-numarası + [protokol]
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker, event
    Uyumluluk:Apache 2.0’dan beri gerekli yönergelerden biridir.
    +protokol argümanı 2.1.5 sürümünde eklenmiştir.
    +

    Listen yönergesi Apache’yi sadece belli IP + adreslerini ve portlarını dinlemeye sevkeder. + Listen artık belirtilmesi zorunlu yönergelerden + biridir. Yapılandırma dosyasında bulunmadığı takdirde sunucu + başlatılırken başarısız olacaktır. Bu Apache Sunucusunun önceki + sürümünde böyle değildi.

    + +

    Listen yönergesi Apache’ye, sadece belli + portlardan veya IP adresi ve port çiftlerinden gelen istekleri kabul + etmesini söyler. Eğer sadece port numarası belirtilmişse sunucu + belirtilen portu bütün ağ arabirimlerinde dinleyecektir. Eğer portla + birlikte bir IP adresi de belirtilmişse, sunucu belirtilen portu sadece + belirtilen arabirimden dinleyecektir.

    + +

    Çok sayıda IP adresi ve port belirtmek için çok sayıda + Listen yönergesi kullanılabilir. Sunucu bu + durumda belirtilen bütün IP adreslerinden ve portlardan gelecek + isteklere yanıt verecektir.

    + +

    Örneğin sunucunun hem port 80 hem de port 8000’den istek kabul etmesini + istiyorsanız bunu şöyle belirtebilirsiniz:

    + +

    + Listen 80
    + Listen 8000 +

    + +

    Sunucunun belirtilen iki ağ arabiriminden ve port numarasından gelen + bağlantıları kabul etmesi için şu yapılandırmayı kullanabilirsiniz:

    + +

    + Listen 192.170.2.1:80
    + Listen 192.170.2.5:8000 +

    + +

    IPv6 adresleri belirtilirken örnekteki gibi köşeli ayraçlar arasına + alınmalıdır:

    + +

    + Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

    + +

    İsteğe bağlı protocol argümanı çoğu yapılandırmada gerekli + değildir. Belirtilmediği takdirde. port 443 için https ve + tüm diğer portlar için http öntanımlıdır. Protokol, isteği + hangi modülün elde edeceğinin ve AcceptFilter yönergesi ile protokole özgü + hangi en iyilemelerin uygulanacağının saptanmasında kullanılır.

    + +

    Protokol belirtme ihtiyacını sadece standartdışı portlar + çalıştırıyorsanız duyarsınız. Örneğin, port 8443 üzerinde bir + https sitesi çalıştırmak istiyorsanız bunu şöyle + belirtebilirsiniz:

    + +

    + Listen 192.170.2.1:8443 https +

    + +

    Hata durumu

    + Aynı IP adresi ve portun çok sayıda Listen + yönergesinde belirtilmesi bir "adres kullanımda" (Address already + in use) hatasına yol açar. +
    + + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    ListenBackLog Yönergesi

    + + + + + + + +
    Açıklama:Bekleyen bağlantılar kuyruğunun azami uzunluğunu + belirler
    Sözdizimi:ListenBacklog kuyruk-uzunluğu
    Öntanımlı:ListenBacklog 511
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    Bekleyen bağlantılar kuyruğunun azami uzunluğu. Genellikle bu ayar ne + gerekir ne de istenir. Ancak bazı sistemlerde TCP SYN yüklenme + saldırılarına karşı bu değerin arttırılması gerekebilir. + kuyruk-uzunluğu parametresi için listen(2) + işlevinin açıklamasına bakınız.

    + +

    Bu değer çoğunlukla işletim sistemi tarafından daha küçük bir sayıyla + sınırlanır. Bu, işletim sistemine bağlı olarak değişiklik gösterir. + Ayrıca, çoğu işletim sisteminin kuyruk-uzunluğu parametresi + ile ne belirttiğinize bakmaksızın kendisi için atanmış değeri (fakat + normal olarak daha büyüğünü) kullanacağına dikkat ediniz.

    + +
    +
    top
    +

    LockFile Yönergesi

    + + + + + + + +
    Açıklama:Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden + çok sayıda çocuk süreci sıraya sokarken kullandığı kilit dosyasının yerini + belirler.
    Sözdizimi:LockFile dosya
    Öntanımlı:LockFile logs/accept.lock
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork, worker
    +

    LockFile yönergesi, AcceptMutex yönergesi fcntl + veya flock değeri ile belirtildiği takdirde kullanılan + kilit dosyasının yerini belirler. Bu yönerge normalde öntanımlı + değeriyle bırakılır. Değişmesini gerektiren ana sebep, logs + dizininin ağ dosya sisteminde (NFS) yeralması halinde kilit + dosyasının bir yerel diskte saklanması gereğidir. Ana sürecin + süreç kimliği dosyaya kendiliğinden eklenir.

    + +

    Güvenlik

    +

    Bu dosyayı herkesin yazabildiği /var/tmp gibi bir dizine + koymaktan kaçınmak gerekir. Çünkü, bu takdirde, birileri sunucunun + hizmet sunmaya başlarken oluşturacağı kilit dosyası ile aynı isimde + bir dosya oluşturarak hizmet reddi saldırısı (DoS) başlatabilir.

    +
    + + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    MaxClients Yönergesi

    + + + + + + + +
    Açıklama:Aynı anda işleme sokulacak azami bağlantı sayısı
    Sözdizimi:MaxClients sayı
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, prefork, worker
    +

    MaxClients yönergesi aynı anda işleme sokulacak + bağlantı sayısını sınırlamak için kullanılır. MaxClients bağlantı isteğinden fazlası geldiği takdirde bu + istekler normal olarak kuyruğa alınıp bekletilir. Kuyrukta bekletilecek + isteklerin azami sayısı ise ListenBacklog yönergesi ile belirlenir. İstek sunmakta olan + çocuk süreçlerden biri serbest kaldığında bekletilen bağlantılardan + birine hizmet sunulmaya başlanır.

    + +

    Evreli olmayan sunucularda (prefork gibi) + MaxClients yönergesi istekleri sunmak için + başlatılacak çocuk süreçlerin azami sayısını belirler. Öntanımlı değer + 256 olup bu değeri arttırmak isterseniz ServerLimit değerini de + arttırmalısınız.

    + +

    Çok evreli ve melez sunucularda (beos veya + worker gibi) MaxClients + yönergesi istemcilere hizmet verecek evre sayısını sınırlar. Öntanımlı + değer beos için 50 iken melez MPM’ler için + ServerLimit ile ThreadsPerChild çarpımıdır (16 x + 25). Bu bakımdan MaxClients değerini 16 + süreçten fazlasına ayarlamak için ServerLimit değerini de + arttırmalısınız.

    + +
    +
    top
    +

    MaxMemFree Yönergesi

    + + + + + + + +
    Açıklama:free() çağrılmaksızın ana bellek ayırıcının + ayırmasına izin verilen azami bellek miktarını belirler.
    Sözdizimi:MaxMemFree kB-sayısı
    Öntanımlı:MaxMemFree 0
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware, prefork, worker, mpm_winnt
    +

    MaxMemFree yönergesi, free() + çağrılmaksızın ana bellek ayırıcının ayırmasına izin verilen azami + bellek miktarını kB cinsinden belirler. Bir değerle belirtilmediğinde + veya 0 değeriyle belirtildiğinde eşik sınırsız + olacaktır.

    + +
    +
    top
    +

    MaxRequestsPerChild Yönergesi

    + + + + + + + +
    Açıklama:Tek bir çocuk sürecin ömrü boyunca işleme sokabileceği istek + sayısını sınırlamakta kullanılır.
    Sözdizimi:MaxRequestsPerChild sayı
    Öntanımlı:MaxRequestsPerChild 10000
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    MaxRequestsPerChild yönergesi, tek bir çocuk + sürecin işleme sokabileceği istek sayısını sınırlamakta kullanılır. + MaxRequestsPerChild istekten sonra çocuk süreç + ölür. Eğer MaxRequestsPerChild için + 0 belirtilmişse sürecin ömrü sonsuz olacaktır.

    + +

    Sıfırdan farklı öntanımlı değerler

    +

    mpm_netware ve mpm_winnt için + öntanımlı değer 0’dır.

    +
    + +

    MaxRequestsPerChild için sıfırdan farklı bir + değer belirtilmesi sürecin kullanacağı bellek miktarını sınırlamak + suretiyle olası bellek sızıntılarını engeller.

    + +

    Ek Bilgi

    +

    KeepAlive isteklerinde sadece + ilk istek bu sınıra uygun sayılır. Etkisi ise, davranışın çocuk süreç + başına bağlantı sayısının sınırlanması şeklinde + değişmesidir.

    +
    + +

    Öntanımlı Yapılandırma

    +

    Öntanımlı (derleme sırasında atanan) değer (10000), yapılandırmada + hiçbir MaxRequestsPerChild yönergesi bulunmadığı + durumda kullanılır. Öntanımlı yapılandırma, + "MaxRequestsPerChild 0" dahil pek çok öntanımlı yapılandırma yönergesi + içerir.

    +
    + + +
    +
    top
    +

    MaxSpareThreads Yönergesi

    + + + + + + + +
    Açıklama:Boştaki azami evre sayısını belirler
    Sözdizimi:MaxSpareThreads number
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware, mpmt_os2, worker
    +

    Boştaki azami evre sayısı. Her MPM bu yönerge karşısında farklı + davranır.

    + +

    worker için MaxSpareThreads 250 + öntanımlıdır. Bu MPM boştaki evreleri sunucu genelinde izler. Eğer + sunucuda çok fazla boşta evre varsa, sunucu boştaki evrelerin sayısı bu + sınırın altına inene kadar çocuk süreçleri öldürür.

    + +

    mpm_netware için MaxSpareThreads 100 + öntanımlıdır. Bu MPM tek bir süreç olarak çalıştığından boştaki evre + sayısı aynı zamanda sunucu genelinde boştaki evre sayısıdır.

    + +

    beos ve mpmt_os2 MPM’leri + mpm_netware gibidir. beos için + MaxSpareThreads 50 öntanımlıyken mpmt_os2 + için öntanımlı değer 10’dur.

    + +

    Kısıtlamalar

    +

    MaxSpareThreads için değer aralığı sınırlıdır. + Apache belirtilen değeri aşağıdaki kurallara uygun olarak + kendiliğinden düzeltecektir:

    + +
    + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    MinSpareThreads Yönergesi

    + + + + + + + +
    Açıklama:İsteklerin ani artışında devreye girecek boştaki evrelerin asgari + sayısını belirler.
    Sözdizimi:MinSpareThreads sayı
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware, mpmt_os2, worker
    +

    İsteklerin ani artışında devreye girecek boştaki evrelerin asgari + sayısı. Her MPM bu yönerge karşısında farklı davranır.

    + +

    worker için MinSpareThreads 75 + öntanımlıdır ve bu modüller boştaki evreleri sunucu genelinde + izler. Eğer sunucuda boştaki evre sayısı yetersizse, sunucu boştaki + evrelerin sayısı bu sınırın üstüne çıkana kadar çocuk süreç + oluşturur.

    + +

    mpm_netware için MinSpareThreads 10 + öntanımlıdır ve tek süreç kendisi olduğundan izleme sunucu genelinde + yapılır.

    + +

    beos ve mpmt_os2 modülleri + mpm_netware gibidir. beos için + MinSpareThreads 1 öntanımlı iken mpmt_os2 + için öntanımlı değer 5’tir.

    + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    PidFile Yönergesi

    + + + + + + + +
    Açıklama:Ana sürecin süreç kimliğinin (PID) kaydedileceği dosyayı belirler.
    Sözdizimi:PidFile dosya
    Öntanımlı:PidFile logs/httpd.pid
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_winnt, mpmt_os2, prefork, worker
    +

    PidFile yönergesi, sunucunun artalan sürecinin + süreç kimliğinin kaydedileceği dosyayı belirler. Dosya ismi mutlak dosya + yoluyla belirtilmemişse dosya yolunun ServerRoot dizinine göre belirtildiği kabul + edilir.

    + +

    Örnek

    + PidFile /var/run/apache.pid +

    + +

    Sunucuya sinyal gönderebilmek çoğunlukla işe yarar. Böylece ErrorLog ve TransferLog dosyaları kapatılıp + yeniden açılır ve yapılandırma dosyaları yeniden okunur. Bu, + PidFile dosyasında belirtilen süreç kimliğine bir + SIGHUP (kill -1) sinyali gönderilerek yapılır.

    + +

    Günlük dosyasının yeri ve güvenlik ile ilgili + uyarılar PidFile dosyası içinde sözkonusu + olabilir.

    + +

    Ek Bilgi

    +

    Apache 2’de sunucuyu (yeniden) başlatırken veya durdururken sadece + apachectl betiğini kullanmanız önerilir.

    +
    + +
    +
    top
    +

    ReceiveBufferSize Yönergesi

    + + + + + + + +
    Açıklama:TCP alım tamponu boyu
    Sözdizimi:ReceiveBufferSize bayt-sayısı
    Öntanımlı:ReceiveBufferSize 0
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    Sunucu TCP alım tamponu boyunu bayt-sayısı ile belirtilen + bayta ayarlayacaktır.

    + +

    0 değeri atarsanız sunucu işletim sistemi öntanımlısını + kullanacaktır.

    + +
    +
    top
    +

    ScoreBoardFile Yönergesi

    + + + + + + + +
    Açıklama:Çocuk süreçler için eşgüdüm verisini saklamakta kullanılan + dosyanın yerini belirler.
    Sözdizimi:ScoreBoardFile dosya-yolu
    Öntanımlı:ScoreBoardFile logs/apache_runtime_status
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_winnt, prefork, worker
    +

    Apache ana ve çocuk süreçler arasında iletişim için bir çetele tutar. + Bazı mimariler bu iletişimi kolaylaştırmak için bir dosya gerektirir. + Eğer yönerge belirtilmezse Apache çeteleyi önce tamamen bellekte + oluşturmayı dener (anonim paylaşımlı bellek kullanarak); bunda başarılı + olamazsa dosyayı diskte oluşturmaya çalışacaktır (paylaşımlı belleğe + eşlemli dosya kullanarak). Bu yönergenin belirtilmesi Apache sunucusunun + dosyayı daima diskte oluşturmasına sebep olur.

    + +

    Örnek

    + ScoreBoardFile /var/run/apache_runtime_status +

    + +

    Paylaşımlı belleğe eşlemli dosya, çeteleye doğrudan erişmesi gereken + üçüncü parti uygulamalar için yararlıdır.

    + +

    Eğer ScoreBoardFile yönergesi ile bir dosya + belirtecekseniz, dosyayı bir RAM diske yerleştirerek hız artışı + sağlayabilirsiniz. Fakat, günlük dosyası yerleştirme ve güvenlik ile ilgili uyarılara + benzer uyarılara karşı dikkatli olunuz.

    + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    SendBufferSize Yönergesi

    + + + + + + + +
    Açıklama:TCP tamponu boyu
    Sözdizimi:SendBufferSize bayt-sayısı
    Öntanımlı:SendBufferSize 0
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware, mpm_winnt, mpmt_os2, prefork, worker
    +

    Sunucu TCP gönderim tamponu boyunu bayt-sayısı ile + belirtilen bayta ayarlayacaktır. Yüksek hızlı yüksek yataklık süresi + için standart işletim sistemi öntanımlılarını arttırmak çok yararlıdır + (örneğin, kıtalar arası hızlı borularda olduğu gibi 100 ms + civarında).

    + +

    0 değeri atarsanız sunucu işletim sistemi öntanımlısını + kullanacaktır.

    + +

    Yüksek hızlı yüksek yataklık süreli bağlantılarda daha iyi başarım elde + etmek için işletim sisteminizde bazı yapılandırmalara gitmeniz + gerekebilir.

    + +

    Bazı işletim sistemlerinde daha büyük bir + SendBufferSize ile sonuçlanan TCP davranışındaki + değişiklikler, EnableSendfile + yönergesine OFF atanmadıkça görülmeyebilir. Bu etkileşim sadece duruk + dosyalarda ortaya çıkar.

    + +
    +
    top
    +

    ServerLimit Yönergesi

    + + + + + + + +
    Açıklama:Ayarlanabilir süreç sayısının üst sınırını belirler.
    Sözdizimi:ServerLimit sayı
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork, worker
    +

    prefork modülü söz konusu olduğunda bu yönerge, Apache + sürecinin ömrü boyunca MaxClients yönergesine atanabilecek + azami değeri belirler. worker modülü sözkonusu + olduğunda ise, Apache sürecinin ömrü boyunca MaxClients yönergesine atanabilecek + azami değeri ThreadLimit ile + birlikte belirler. Bu yönergeyi bir yeniden başlatma sırasında + değiştirirseniz bu değişiklik yok sayılır fakat MaxClients değişiklikleri dikkate + alınır.

    + +

    Bu yönergenin kullanılması özel bir dikkat gerektirir. Eğer + ServerLimit gereğinden yüksek bir değere + ayarlanırsa, gereksiz yere paylaşımlı bellek ayrılmış olur. Eğer + ServerLimit ve MaxClients değerleri sistemin + işleyebileceğinden daha yüksek değerlere ayarlanırsa Apache + başlayamayacağı gibi sistemi kararsız hale de getirebilir.

    + +

    Bu yönergeyi prefork modülü ile sadece MaxClients yönergesine 256’dan + (öntanımlı) daha büyük bir değer atayacaksanız kullanınız. Bu yönergeye + MaxClients için atamak + istediğiniz değerden fazlasını atamayınız.

    + +

    worker modülü söz konusu olduğunda bu yönergeyi + MaxClients ve + ThreadsPerChild ayarları 16 + sunucu sürecinden (16 öntanımlıdır) fazlasını gerektiriyorsa + ayarlayınız. Bu yönergeye MaxClients + ve ThreadsPerChild için gerekli gördüğünüz + sunucu süreci sayısından fazlasını atamayınız.

    + +

    Ek Bilgi

    +

    Sunucu içinde derlenmiş olarak ServerLimit 20000 + şeklinde bir zorlayıcı sınır vardır (prefork için + 200000’dir). Bu önlem, yazım hatalarının istenmeyen sonuçlara yol + açmasını engellemek için düşünülmüştür.

    +
    + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    StartServers Yönergesi

    + + + + + + + +
    Açıklama:Sunucunun başlatılması sırasında oluşturulan çocuk süreçlerin + sayısını belirler.
    Sözdizimi:StartServers sayı
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:mpmt_os2, prefork, worker
    +

    StartServers yönergesi, sunucunun başlatılması + sırasında oluşturulan çocuk süreçlerin sayısını belirler. Süreç sayısı + normal olarak yüke bağlı olarak değişse de bu değerin ayarlanmasını + gerektirecek küçük bir sebep vardır.

    + +

    Öntanımlı değer MPM’den MPM’e fark eder. Öntanımlı değer + worker için 3 iken + prefork için 5 ve + mpmt_os2 için 2’dir.

    + +
    +
    top
    +

    StartThreads Yönergesi

    + + + + + + + +
    Açıklama:Sunucunun başlatılması sırasında oluşturulan evrelerin sayısını + belirler.
    Sözdizimi:StartThreads sayı
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:beos, mpm_netware
    +

    StartThreads yönergesi, sunucunun başlatılması + sırasında oluşturulan evrelerin sayısını belirler. Evre sayısı normal + olarak yüke bağlı olarak değişse de bu değerin ayarlanmasını + gerektirecek küçük bir sebep vardır.

    + +

    mpm_netware için StartThreads 50 + öntanımlı olup, sadece tek bir süreç olduğundan, sunucunun başlatılması + sırasında oluşturulan evrelerin toplam sayısı 50’dir.

    + +

    beos için StartThreads 10 öntanımlı olup + sunucunun başlatılması sırasında oluşturulan evrelerin toplam sayısı + 10’dur.

    + +
    +
    top
    +

    ThreadLimit Yönergesi

    + + + + + + + + +
    Açıklama:Çocuk süreç başına ayarlanabilir evre sayısının üst sınırını + belirler.
    Sözdizimi:ThreadLimit sayı
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:mpm_winnt, worker
    Uyumluluk:mpm_winnt için Apache 2.0.41 ve sonrasında mevcuttur.
    +

    Bu yönerge, Apache sürecinin ömrü boyunca ThreadsPerChild yönergesine + atanabilecek azami değeri belirler. Bu yönergeyi bir yeniden başlatma + sırasında değiştirirseniz bu değişiklik yok sayılır fakat ThreadsPerChild değişiklikleri dikkate + alınır.

    + +

    Bu yönergenin kullanılması özel bir dikkat gerektirir. Eğer + ThreadLimit değeri ThreadsPerChild değerinden yüksek bir + değere ayarlanırsa, gereksiz yere paylaşımlı bellek ayrılmış olur. Eğer + ThreadLimit ve ThreadsPerChild değerleri sistemin + işleyebileceğinden daha yüksek değerlere ayarlanırsa Apache + başlayamayacağı gibi sistemi kararsız hale de getirebilir. Bu yönergeye + Apache sunucusunun çalışması için öngörülmüş en büyük değerden daha + yükseğini atamayınız.

    + +

    ThreadLimit yönergesinin öntanımlı değeri + mpm_winnt için 1920, diğerleri için + 64’tür.

    + +

    Ek Bilgi

    +

    Sunucu içinde derlenmiş olarak ThreadLimit 20000 + şeklinde bir zorlayıcı sınır vardır (mpm_winnt için + 15000’dir). Bu önlem, yazım hatalarının istenmeyen sonuçlara yol + açmasını engellemek için düşünülmüştür.

    +
    + +
    +
    top
    +

    ThreadsPerChild Yönergesi

    + + + + + + + +
    Açıklama:Her çocuk süreç tarafından oluşturulan evrelerin sayısını + belirler.
    Sözdizimi:ThreadsPerChild sayı
    Öntanımlı:Ayrıntılar için aşağıdaki açıklamaya bakınız.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:mpm_winnt, worker
    +

    Bu yönerge, her çocuk süreç tarafından oluşturulan evrelerin sayısını + belirler. Çocuk süreçler bu evreleri başlatıldıklarında oluştururlar ve + bundan daha fazlasını asla oluşturmazlar. mpm_winnt + gibi sadece bir çocuk sürecin bulunduğu bir MPM kullanıyorsanız, bu + sayı sunucunun tüm yükünü kaldırabilecek kadar büyük olmalıdır. + worker gibi çok çocuk süreçli bir MPM kullanıyorsanız, + toplam evre sayısı sunucunun tüm yükünü kaldırabilecek kadar + büyük olmalıdır.

    + +

    ThreadsPerChild için öntanımlı değer + mpm_winnt kullanıldığında 64 diğerleri + için 25’tir.

    + +
    +
    top
    +

    ThreadStackSize Yönergesi

    + + + + + + + + +
    Açıklama:İstemci bağlantılarını elde eden evreler tarafından kullanılan + yığıtın bayt cinsinden uzunluğunu belirler.
    Sözdizimi:ThreadStackSize boyut
    Öntanımlı:NetWare üzerinde 65536; diğer işletim sistemlerinde + değişir.
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:mpm_netware, mpm_winnt, event, worker
    Uyumluluk:Apache 2.1 ve sonrasında mevcuttur.
    +

    ThreadStackSize yönergesi, istemci + bağlantılarını elde eden evreler ve bu bağlantıları işlemekte yardımcı + olan modül çağrıları tarafından kullanılan yığıtın bayt cinsinden + uzunluğunu belirler. Çoğu durumda işletim sistemi yığıtı uygun bir + boyuta ayarlar, fakat yine de ayarlanmasını gerektirecek bazı durumlar + olabilir:

    + +
      +
    • HP-UX gibi görece küçük yığıt boyuna sahip platformlarda, Apache, + görece büyük yığıt alanı kullanan bazı üçüncü parti modüller yüzünden + çökebilir. Bu modüller öntanımlı yığıt boyu daha büyük olan diğer + platformlarda sorunsuz çalışabilir. Bu tür çökmeler + ThreadStackSize yönergesine daha büyük yığıt + boyu atanarak çözümlenir. Böyle bir ayarlamayı sadece üçüncü parti + modülün üreticisi bunun gerekliliğini belirtmişse veya Apache’nin + evre yığıt boyutunun küçüklüğünden dolayı çöktüğü teşhis edildiği + takdirde yapınız.
    • + +
    • Öntanımlı yığıt boyu Apache sunucusu için gerekenden belirgin + şekilde büyük bazı platformalarda, eğer + ThreadStackSize yönergesi ile bu boyuttan daha + düşük bir değer atanmışsa çocuk süreç başına evre sayısının yüksek + olduğu durumlarda bu yığıt yetmeyebilir. Böyle bir ayarlama sadece + sunucunun öldüresiye denendiği dolayısıyla yığıt boyutlarının aşırı + zorlandığı deneme ortamlarında yapılmalıdır. Gereken en küçük yığıt + boyutu kullanılan modüllerle sıkı sıkıya ilintilidir, fakat sunucu + yapılandırmasında yapılan bir değişiklik mevcut + ThreadStackSize ayarını geçersiz hale + getirebilir.
    • +
    + +
    Çocuk süreç başına evre sayısı çok yüksek olmadıkça + ThreadStackSize değerinin azaltılması önerilmez. + Bazı platformlarda (Linux dahil), 128000 değeri zaten çok düşüktür ve bazı + modüllerde çökmelere sebep olabilmektedir.
    + + +
    +
    top
    +

    User Yönergesi

    + + + + + + + + +
    Açıklama:İsteklere yanıt verecek sunucunun ait olacağı kullanıcıyı + belirler.
    Sözdizimi:User unix-kullanıcısı
    Öntanımlı:User #-1
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork, worker
    Uyumluluk:Apache 2.0’dan itibaren sadece sunucu geneli için + geçerlidir.
    +

    User yönergesi, sunucunun hangi kullanıcı olarak + isteklere yanıt vereceğini belirler. Bu yönergenin uygulanabilmesi için + sunucunun root olarak çalıştırılmış olması gerekir. + Sunucuyu root dışında bir kullanıcı başlattığı takdirde, + sunucu belirtilen kullanıcıya geçemez ve mevcut kullanıcıyla çalışmaya + devam eder. Eğer sunucuyu root olarak başlatmışsanız ana + süreç root olarak çalışmaya devam edecektir. unix-kullanıcısı + şunlardan biri olabilir:

    + +
    +
    Bir kullanıcı adı
    +
    Gruba ismiyle başvurulur.
    + +
    # ardından kullanıcı numarası
    +
    Kullanıcıya numarası ile başvurulur.
    +
    + +

    Bu yönergede belirtilecek kullanıcının, başkaları tarafından üzerinde + değişiklik yapılabilecek dosyalardan başkasına erişemeyen bir kullanıcı + olmaması gerektiği gibi, HTTP isteklerini işlemek dışında işlemler de + yapabilen bir kullanıcı olmamalıdır. + Çalışan sunucu için özellikle yeni bir grup atamanız önerilir. Bazı + sistem yöneticileri nobody kullanıcısını kullanırlar fakat + nobody kullanıcısı sistemde başka amaçlarla + kullanılabildiğinden bu her zaman mümkün olmadığı gibi arzulanan da + değildir.

    + +

    Güvenlik

    +

    Ne yaptığınızı ve ne tehlikelere yol açacağınızı bilmiyorsanız + User (veya Group) yönergesine değer olarak + root atamayınız.

    +
    + +

    Özel bilgi: Bu yönergenin <VirtualHost> taşıyıcısı içinde kullanımı + artık desteklenmemektedir. Sunucunuzu suexec için + yapılandırırken SuexecUserGroup yönergesini + kullanınız.

    + +

    Ek Bilgi

    +

    Useryönergesi beos ve + mpmt_os2 MPM’lerinde mevcut olsa da, aslında + işlevsiz olup sadece uyumluluk adına mevcuttur.

    +
    + +
    +
    +
    +

    Mevcut Diller:  de  | + en  | + ja  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mpm_common.xml b/docs/manual/mod/mpm_common.xml index 1aefd752df4..e2d0f445e27 100644 --- a/docs/manual/mod/mpm_common.xml +++ b/docs/manual/mod/mpm_common.xml @@ -4,12 +4,12 @@ + + - + mpm_common /mod/ .. @@ -8,6 +9,7 @@ de en - ja + ja + tr diff --git a/docs/manual/mod/mpm_common.xml.tr b/docs/manual/mod/mpm_common.xml.tr new file mode 100644 index 00000000000..b6930003bd3 --- /dev/null +++ b/docs/manual/mod/mpm_common.xml.tr @@ -0,0 +1,1029 @@ + + + + + + + + + + +mpm_common +Birden fazla Çok Süreçlilik Modülü (MPM) tarafından gerçeklenmiş + yönergeler bütünü. +MPM + + +AcceptMutex +Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden + çok sayıda çocuk süreci sıraya sokmak için kullandığı yöntemi + belirler. +AcceptMutex Default|yöntem +AcceptMutex Default +server config + +preforkworker + + + +

    AcceptMutex yönergesi Apache HTTPd Sunucusunun + ağ soketlerinden istekleri kabul eden çok sayıda çocuk süreci sıraya + sokmak için kullandığı yöntemi + belirler. Apache 2.0’dan önce, yöntem sadece derleme sırasında + seçilebiliyordu. Kullanılacak en uygun yöntem mimariye ve platforma aşırı + derecede bağımlıdır. Bu konuda daha ayrıntılı bilgi edinmek için Başarım Arttırma İpuçları belgesine + bakabilirsiniz.

    + +

    Bu yönergeye değer olarak Default belirtilmişse derleme + sırasında seçilen öntanımlı yöntem kullanılacaktır. Diğer olası yöntemler + aşağıda listelenmiştir. Tüm yöntemlerin tüm platformlarda mevcut + olmadığına dikkat ediniz. Eğer belirtilen yöntem mevcut değilse hata + günlüğüne mevcut yöntemlerin listesini içeren bir ileti yazılacaktır.

    + +
    +
    flock
    +
    LockFile yönergesi ile + belirtilen dosyayı kilitlemek için flock(2) sistem + çağrısı kullanılır.
    + +
    fcntl
    +
    LockFile yönergesi ile + belirtilen dosyayı kilitlemek için fcntl(2) sistem + çağrısı kullanılır.
    + +
    posixsem
    +
    Muteksleri gerçeklemek için POSIX uyumlu semaforlar kullanılır.
    + +
    pthread
    +
    POSIX Evreleri (PThreads) belirtimi tarafından gerçeklenen muteksler + kullanılır.
    + +
    sysvsem
    +
    Muteksleri gerçeklemek için SysV tarzı semaforlar kullanılır.
    +
    + +

    Sisteminiz için derleme sırasında seçilmiş öntanımlı yöntemi öğrenmek + isterseniz LogLevel yönergesine + debug değerini atayabilirsiniz. Öntanımlı AcceptMutex, ErrorLog + ile belirtilen günlük dosyasına yazılacaktır.

    + + Uyarı +

    Çoğu sistemde, pthread seçeneği seçildiği takdirde, + AcceptCntl muteksi tutulurken bir çocuk süreç anormal + şekilde sonlanırsa, muteksi kurtarmak için sunucunun elle yeniden + başlatılması gerekecektir.

    +

    Solaris, bir muteks tutulurken, bir çocuk süreç anormal şekilde + sonlandıktan sonra muteksin Apache tarafından kurtarılmasına imkan veren + bir mekanizma sağlaması sebebiyle diğerlerinden ayrılır.

    +

    Sisteminiz pthread_mutexattr_setrobust_np() işlevini + gerçekliyorsa pthread seçeneğini gönül rahatlığıyla + kullanabilirsiniz.

    +
    +
    +
    + + +CoreDumpDirectory +core dosyasını dökümlemek üzere Apache’nin geçmeye + çalışacağı dizin. +CoreDumpDirectory dizin +Öntanımlı değer için aşağıdaki açıklamaya bakınız +server config +beosmpm_winnt +preforkworker + + +

    Bu yönerge core dosyasını dökümlemek üzere Apache’nin + geçmeye çalışacağı dizini belirler. ServerRoot dizini öntanımlı dizin olmakla + birlikte, bu dizin kullanıcılar tarafından yazılabilir bir dizin + olmadığından bir core dosyası dökümlenmez. Hata ayıklama + amacıyla bir core dosyası dökümlemek isterseniz farklı bir + yer belirtmek için bu yönergeyi kullanabilirsiniz.

    + + Linux üzerinde <code>core</code> dökümlemek +

    Apache root olarak başlatılıp başka bir kullanıcıya geçilirse Linux + çekirdeği süreç tarafından yazılabilir olsa bile core + dökümlemeyi iptal eder. Eğer + CoreDumpDirectory yönergesi ile açıkça bir + dizin belirtirseniz, Apache (2.0.46 ve sonraki sürümleri), Linux 2.4 ve + sonrasında core dökümlemeyi yeniden + etkinleştirecektir.

    +
    + + BSD üzerinde <code>core</code> dökümlemek +

    BSD-sistemlerde (FreeBSD gibi) suid-çalıştırılabilirlerinin + core dökümlemesini etkinleştirmek için + kern.sugid_coredump değişkenine 1 atayın. +

    + +
    +
    + + +EnableExceptionHook +Bir çöküş sonrası olağandışılık eylemcilerini çalıştıracak + kancayı etkin kılar. +EnableExceptionHook On|Off +EnableExceptionHook Off +server config +prefork +worker +Sürüm 2.0.49 ve sonrasında mevcuttur + + +

    Güvenlik sebebiyle bu yönerge sadece Apache + --enable-exception-hook seçeneği ile yapılandırılmışsa + kullanılabilir olacaktır. Bu, harici modüllerin eklenmesine ve bir çocuk + sürecin çöküşü sonrası bir şeyler yapmaya izin veren bir kancayı etkin + kılar.

    + +

    Bu kancayı kullanan iki modül (mod_whatkilledus ve + mod_backtrace) zaten vardır. bunlar hakkında daha fazla bilgi + edinmek için Jeff Trawick'in EnableExceptionHook sitesine bakabilirsiniz.

    +
    +
    + + +GracefulShutdownTimeout +Sunucunun nazikçe kapatılmasının ardından ana süreç çıkana kadar + geçecek süre için bir zaman aşımı belirler. +GracefulShutDownTimeout saniye +GracefulShutDownTimeout 0 +server config +preforkworker +event +Sürüm 2.2 ve sonrasında mevcuttur + + +

    GracefulShutdownTimeout yönergesi, sunucuya + "nazikçe dur" sinyali gönderildikten sonra mevcut bağlantılara hizmet + sunmaya daha kaç saniye devam edebileceğini belirtir.

    + +

    Bu değerin 0 olarak belirtilmesi, sunucunun bekleyen bütün + isteklere hizmet sunumu tamamlanıncaya kadar (gerekirse sonsuza kadar) + bekleyebileceği anlamına gelir.

    +
    +
    + + +Group +İsteklere yanıt verecek sunucunun ait olacağı grubu belirler. +Group unix-grubu +Group #-1 +server config +beos +mpmt_os2prefork +worker +Apache 2.0’dan itibaren sadece sunucu geneli için geçerlidir. + + +

    Group yönergesi, sunucunun hangi grup altında + isteklere yanıt vereceğini belirler. Bu yönergenin uygulanabilmesi için + sunucunun root olarak çalıştırılmış olması gerekir. + Sunucuyu root dışında bir kullanıcı başlattığı takdirde, + sunucu belirtilen gruba geçemez ve kullanıcının kendi grubunda + çalışmaya devam eder. unix-grubu şunlardan biri olabilir:

    + +
    +
    Bir grup adı
    +
    Gruba ismiyle başvurulur.
    + +
    # ardından grup numarası
    +
    Gruba numarası ile başvurulur.
    +
    + + Örnek + Group www-group + + +

    Çalışan sunucu için özellikle yeni bir grup atamanız önerilir. Bazı + sistem yöneticileri nobody grubunu kullanırlar fakat + bu her zaman mümkün olmadığı gibi arzulanan da değildir.

    + + Güvenlik +

    Ne yaptığınızı ve ne tehlikelere yol açacağınızı bilmiyorsanız + Group (veya User) yönergesine değer olarak + root atamayınız.

    +
    + +

    Özel bilgi: Bu yönergenin VirtualHost taşıyıcısı içinde kullanımı + artık desteklenmemektedir. Sunucunuzu suexec için + yapılandırırken SuexecUserGroup yönergesini + kullanınız.

    + + Ek Bilgi +

    Group yönergesi beos ve + mpmt_os2 MPM’lerinde mevcut olsa da, aslında + işlevsiz olup sadece uyumluluk adına mevcuttur.

    +
    +
    +
    + + +PidFile +Ana sürecin süreç kimliğinin (PID) kaydedileceği dosyayı belirler. +PidFile dosya +PidFile logs/httpd.pid +server config +beos +mpm_winntmpmt_os2 +preforkworker + + +

    PidFile yönergesi, sunucunun artalan sürecinin + süreç kimliğinin kaydedileceği dosyayı belirler. Dosya ismi mutlak dosya + yoluyla belirtilmemişse dosya yolunun ServerRoot dizinine göre belirtildiği kabul + edilir.

    + + Örnek + PidFile /var/run/apache.pid + + +

    Sunucuya sinyal gönderebilmek çoğunlukla işe yarar. Böylece ErrorLog ve TransferLog dosyaları kapatılıp + yeniden açılır ve yapılandırma dosyaları yeniden okunur. Bu, + PidFile dosyasında belirtilen süreç kimliğine bir + SIGHUP (kill -1) sinyali gönderilerek yapılır.

    + +

    Günlük dosyasının yeri ve güvenlik ile ilgili + uyarılar PidFile dosyası içinde sözkonusu + olabilir.

    + + Ek Bilgi +

    Apache 2’de sunucuyu (yeniden) başlatırken veya durdururken sadece + apachectl betiğini kullanmanız önerilir.

    +
    +
    +
    + + +Listen +Sunucunun dinleyeceği IP adresini ve portu belirler. +Listen [IP-adresi:]port-numarası + [protokol] +server config +beos +mpm_netwarempm_winnt +mpmt_os2 +preforkworker +event + +Apache 2.0’dan beri gerekli yönergelerden biridir.
    +protokol argümanı 2.1.5 sürümünde eklenmiştir.
    + + +

    Listen yönergesi Apache’yi sadece belli IP + adreslerini ve portlarını dinlemeye sevkeder. + Listen artık belirtilmesi zorunlu yönergelerden + biridir. Yapılandırma dosyasında bulunmadığı takdirde sunucu + başlatılırken başarısız olacaktır. Bu Apache Sunucusunun önceki + sürümünde böyle değildi.

    + +

    Listen yönergesi Apache’ye, sadece belli + portlardan veya IP adresi ve port çiftlerinden gelen istekleri kabul + etmesini söyler. Eğer sadece port numarası belirtilmişse sunucu + belirtilen portu bütün ağ arabirimlerinde dinleyecektir. Eğer portla + birlikte bir IP adresi de belirtilmişse, sunucu belirtilen portu sadece + belirtilen arabirimden dinleyecektir.

    + +

    Çok sayıda IP adresi ve port belirtmek için çok sayıda + Listen yönergesi kullanılabilir. Sunucu bu + durumda belirtilen bütün IP adreslerinden ve portlardan gelecek + isteklere yanıt verecektir.

    + +

    Örneğin sunucunun hem port 80 hem de port 8000’den istek kabul etmesini + istiyorsanız bunu şöyle belirtebilirsiniz:

    + + + Listen 80
    + Listen 8000 +
    + +

    Sunucunun belirtilen iki ağ arabiriminden ve port numarasından gelen + bağlantıları kabul etmesi için şu yapılandırmayı kullanabilirsiniz:

    + + + Listen 192.170.2.1:80
    + Listen 192.170.2.5:8000 +
    + +

    IPv6 adresleri belirtilirken örnekteki gibi köşeli ayraçlar arasına + alınmalıdır:

    + + + Listen [2001:db8::a00:20ff:fea7:ccea]:80 + + +

    İsteğe bağlı protocol argümanı çoğu yapılandırmada gerekli + değildir. Belirtilmediği takdirde. port 443 için https ve + tüm diğer portlar için http öntanımlıdır. Protokol, isteği + hangi modülün elde edeceğinin ve AcceptFilter yönergesi ile protokole özgü + hangi en iyilemelerin uygulanacağının saptanmasında kullanılır.

    + +

    Protokol belirtme ihtiyacını sadece standartdışı portlar + çalıştırıyorsanız duyarsınız. Örneğin, port 8443 üzerinde bir + https sitesi çalıştırmak istiyorsanız bunu şöyle + belirtebilirsiniz:

    + + + Listen 192.170.2.1:8443 https + + + Hata durumu + Aynı IP adresi ve portun çok sayıda Listen + yönergesinde belirtilmesi bir "adres kullanımda" (Address already + in use) hatasına yol açar. + + +
    +DNS ve Apache ile ilgili Konular +Sunucunun Kullandığı Adreslerin ve Portların + Ayarlanması +
    + + +ListenBackLog +Bekleyen bağlantılar kuyruğunun azami uzunluğunu + belirler +ListenBacklog kuyruk-uzunluğu +ListenBacklog 511 +server config +beos +mpm_netwarempm_winnt +mpmt_os2prefork +worker + + +

    Bekleyen bağlantılar kuyruğunun azami uzunluğu. Genellikle bu ayar ne + gerekir ne de istenir. Ancak bazı sistemlerde TCP SYN yüklenme + saldırılarına karşı bu değerin arttırılması gerekebilir. + kuyruk-uzunluğu parametresi için listen(2) + işlevinin açıklamasına bakınız.

    + +

    Bu değer çoğunlukla işletim sistemi tarafından daha küçük bir sayıyla + sınırlanır. Bu, işletim sistemine bağlı olarak değişiklik gösterir. + Ayrıca, çoğu işletim sisteminin kuyruk-uzunluğu parametresi + ile ne belirttiğinize bakmaksızın kendisi için atanmış değeri (fakat + normal olarak daha büyüğünü) kullanacağına dikkat ediniz.

    +
    +
    + + +LockFile +Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden + çok sayıda çocuk süreci sıraya sokarken kullandığı kilit dosyasının yerini + belirler. +LockFile dosya +LockFile logs/accept.lock +server config + +preforkworker + + + +

    LockFile yönergesi, AcceptMutex yönergesi fcntl + veya flock değeri ile belirtildiği takdirde kullanılan + kilit dosyasının yerini belirler. Bu yönerge normalde öntanımlı + değeriyle bırakılır. Değişmesini gerektiren ana sebep, logs + dizininin ağ dosya sisteminde (NFS) yeralması halinde kilit + dosyasının bir yerel diskte saklanması gereğidir. Ana sürecin + süreç kimliği dosyaya kendiliğinden eklenir.

    + + Güvenlik +

    Bu dosyayı herkesin yazabildiği /var/tmp gibi bir dizine + koymaktan kaçınmak gerekir. Çünkü, bu takdirde, birileri sunucunun + hizmet sunmaya başlarken oluşturacağı kilit dosyası ile aynı isimde + bir dosya oluşturarak hizmet reddi saldırısı (DoS) başlatabilir.

    +
    + +
    +AcceptMutex +
    + + +MaxClients +Aynı anda işleme sokulacak azami bağlantı sayısı +MaxClients sayı +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config +beos +preforkworker + + + +

    MaxClients yönergesi aynı anda işleme sokulacak + bağlantı sayısını sınırlamak için kullanılır. MaxClients bağlantı isteğinden fazlası geldiği takdirde bu + istekler normal olarak kuyruğa alınıp bekletilir. Kuyrukta bekletilecek + isteklerin azami sayısı ise ListenBacklog yönergesi ile belirlenir. İstek sunmakta olan + çocuk süreçlerden biri serbest kaldığında bekletilen bağlantılardan + birine hizmet sunulmaya başlanır.

    + +

    Evreli olmayan sunucularda (prefork gibi) + MaxClients yönergesi istekleri sunmak için + başlatılacak çocuk süreçlerin azami sayısını belirler. Öntanımlı değer + 256 olup bu değeri arttırmak isterseniz ServerLimit değerini de + arttırmalısınız.

    + +

    Çok evreli ve melez sunucularda (beos veya + worker gibi) MaxClients + yönergesi istemcilere hizmet verecek evre sayısını sınırlar. Öntanımlı + değer beos için 50 iken melez MPM’ler için + ServerLimit ile ThreadsPerChild çarpımıdır (16 x + 25). Bu bakımdan MaxClients değerini 16 + süreçten fazlasına ayarlamak için ServerLimit değerini de + arttırmalısınız.

    +
    +
    + + +MaxMemFree +free() çağrılmaksızın ana bellek ayırıcının + ayırmasına izin verilen azami bellek miktarını belirler. +MaxMemFree kB-sayısı +MaxMemFree 0 +server config +beos +mpm_netwareprefork +workermpm_winnt + + +

    MaxMemFree yönergesi, free() + çağrılmaksızın ana bellek ayırıcının ayırmasına izin verilen azami + bellek miktarını kB cinsinden belirler. Bir değerle belirtilmediğinde + veya 0 değeriyle belirtildiğinde eşik sınırsız + olacaktır.

    +
    +
    + + +MaxRequestsPerChild +Tek bir çocuk sürecin ömrü boyunca işleme sokabileceği istek + sayısını sınırlamakta kullanılır. +MaxRequestsPerChild sayı +MaxRequestsPerChild 10000 +server config +mpm_netware +mpm_winntmpmt_os2 +prefork +worker + + +

    MaxRequestsPerChild yönergesi, tek bir çocuk + sürecin işleme sokabileceği istek sayısını sınırlamakta kullanılır. + MaxRequestsPerChild istekten sonra çocuk süreç + ölür. Eğer MaxRequestsPerChild için + 0 belirtilmişse sürecin ömrü sonsuz olacaktır.

    + + Sıfırdan farklı öntanımlı değerler +

    mpm_netware ve mpm_winnt için + öntanımlı değer 0’dır.

    +
    + +

    MaxRequestsPerChild için sıfırdan farklı bir + değer belirtilmesi sürecin kullanacağı bellek miktarını sınırlamak + suretiyle olası bellek sızıntılarını engeller.

    + + Ek Bilgi +

    KeepAlive isteklerinde sadece + ilk istek bu sınıra uygun sayılır. Etkisi ise, davranışın çocuk süreç + başına bağlantı sayısının sınırlanması şeklinde + değişmesidir.

    +
    + + Öntanımlı Yapılandırma +

    Öntanımlı (derleme sırasında atanan) değer (10000), yapılandırmada + hiçbir MaxRequestsPerChild yönergesi bulunmadığı + durumda kullanılır. Öntanımlı yapılandırma, + "MaxRequestsPerChild 0" dahil pek çok öntanımlı yapılandırma yönergesi + içerir.

    +
    + +
    +
    + + +MaxSpareThreads +Boştaki azami evre sayısını belirler +MaxSpareThreads number +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config +beos +mpm_netwarempmt_os2 +worker + + + +

    Boştaki azami evre sayısı. Her MPM bu yönerge karşısında farklı + davranır.

    + +

    worker için MaxSpareThreads 250 + öntanımlıdır. Bu MPM boştaki evreleri sunucu genelinde izler. Eğer + sunucuda çok fazla boşta evre varsa, sunucu boştaki evrelerin sayısı bu + sınırın altına inene kadar çocuk süreçleri öldürür.

    + +

    mpm_netware için MaxSpareThreads 100 + öntanımlıdır. Bu MPM tek bir süreç olarak çalıştığından boştaki evre + sayısı aynı zamanda sunucu genelinde boştaki evre sayısıdır.

    + +

    beos ve mpmt_os2 MPM’leri + mpm_netware gibidir. beos için + MaxSpareThreads 50 öntanımlıyken mpmt_os2 + için öntanımlı değer 10’dur.

    + + Kısıtlamalar +

    MaxSpareThreads için değer aralığı sınırlıdır. + Apache belirtilen değeri aşağıdaki kurallara uygun olarak + kendiliğinden düzeltecektir:

    +
      +
    • mpm_netware modülü, değerin MinSpareThreads değerinden küçük + olmasını gerektirir.
    • + +
    • worker için değer, MinSpareThreads + ve ThreadsPerChild + toplamına eşit veya büyük olmak zorundadır.
    • +
    +
    +
    +MinSpareThreads +StartServers +
    + + +MinSpareThreads +İsteklerin ani artışında devreye girecek boştaki evrelerin asgari + sayısını belirler. +MinSpareThreads sayı +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config +beos +mpm_netwarempmt_os2 +worker + + + +

    İsteklerin ani artışında devreye girecek boştaki evrelerin asgari + sayısı. Her MPM bu yönerge karşısında farklı davranır.

    + +

    worker için MinSpareThreads 75 + öntanımlıdır ve bu modüller boştaki evreleri sunucu genelinde + izler. Eğer sunucuda boştaki evre sayısı yetersizse, sunucu boştaki + evrelerin sayısı bu sınırın üstüne çıkana kadar çocuk süreç + oluşturur.

    + +

    mpm_netware için MinSpareThreads 10 + öntanımlıdır ve tek süreç kendisi olduğundan izleme sunucu genelinde + yapılır.

    + +

    beos ve mpmt_os2 modülleri + mpm_netware gibidir. beos için + MinSpareThreads 1 öntanımlı iken mpmt_os2 + için öntanımlı değer 5’tir.

    +
    +MaxSpareThreads +StartServers +
    + + +ScoreBoardFile +Çocuk süreçler için eşgüdüm verisini saklamakta kullanılan + dosyanın yerini belirler. +ScoreBoardFile dosya-yolu +ScoreBoardFile logs/apache_runtime_status +server config +beos +mpm_winntprefork +worker + + +

    Apache ana ve çocuk süreçler arasında iletişim için bir çetele tutar. + Bazı mimariler bu iletişimi kolaylaştırmak için bir dosya gerektirir. + Eğer yönerge belirtilmezse Apache çeteleyi önce tamamen bellekte + oluşturmayı dener (anonim paylaşımlı bellek kullanarak); bunda başarılı + olamazsa dosyayı diskte oluşturmaya çalışacaktır (paylaşımlı belleğe + eşlemli dosya kullanarak). Bu yönergenin belirtilmesi Apache sunucusunun + dosyayı daima diskte oluşturmasına sebep olur.

    + + Örnek + ScoreBoardFile /var/run/apache_runtime_status + + +

    Paylaşımlı belleğe eşlemli dosya, çeteleye doğrudan erişmesi gereken + üçüncü parti uygulamalar için yararlıdır.

    + +

    Eğer ScoreBoardFile yönergesi ile bir dosya + belirtecekseniz, dosyayı bir RAM diske yerleştirerek hız artışı + sağlayabilirsiniz. Fakat, günlük dosyası yerleştirme ve güvenlik ile ilgili uyarılara + benzer uyarılara karşı dikkatli olunuz.

    +
    +Sunucuyu Durdurma ve Yeniden Başlatma +
    + + +ReceiveBufferSize +TCP alım tamponu boyu +ReceiveBufferSize bayt-sayısı +ReceiveBufferSize 0 +server config +beos +mpm_netwarempm_winnt +mpmt_os2prefork +worker + + +

    Sunucu TCP alım tamponu boyunu bayt-sayısı ile belirtilen + bayta ayarlayacaktır.

    + +

    0 değeri atarsanız sunucu işletim sistemi öntanımlısını + kullanacaktır.

    +
    +
    + + +SendBufferSize +TCP tamponu boyu +SendBufferSize bayt-sayısı +SendBufferSize 0 +server config +beos +mpm_netwarempm_winnt +mpmt_os2prefork +worker + + +

    Sunucu TCP gönderim tamponu boyunu bayt-sayısı ile + belirtilen bayta ayarlayacaktır. Yüksek hızlı yüksek yataklık süresi + için standart işletim sistemi öntanımlılarını arttırmak çok yararlıdır + (örneğin, kıtalar arası hızlı borularda olduğu gibi 100 ms + civarında).

    + +

    0 değeri atarsanız sunucu işletim sistemi öntanımlısını + kullanacaktır.

    + +

    Yüksek hızlı yüksek yataklık süreli bağlantılarda daha iyi başarım elde + etmek için işletim sisteminizde bazı yapılandırmalara gitmeniz + gerekebilir.

    + +

    Bazı işletim sistemlerinde daha büyük bir + SendBufferSize ile sonuçlanan TCP davranışındaki + değişiklikler, EnableSendfile + yönergesine OFF atanmadıkça görülmeyebilir. Bu etkileşim sadece duruk + dosyalarda ortaya çıkar.

    +
    +
    + + +ServerLimit +Ayarlanabilir süreç sayısının üst sınırını belirler. +ServerLimit sayı +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config + +preforkworker + + + +

    prefork modülü söz konusu olduğunda bu yönerge, Apache + sürecinin ömrü boyunca MaxClients yönergesine atanabilecek + azami değeri belirler. worker modülü sözkonusu + olduğunda ise, Apache sürecinin ömrü boyunca MaxClients yönergesine atanabilecek + azami değeri ThreadLimit ile + birlikte belirler. Bu yönergeyi bir yeniden başlatma sırasında + değiştirirseniz bu değişiklik yok sayılır fakat MaxClients değişiklikleri dikkate + alınır.

    + +

    Bu yönergenin kullanılması özel bir dikkat gerektirir. Eğer + ServerLimit gereğinden yüksek bir değere + ayarlanırsa, gereksiz yere paylaşımlı bellek ayrılmış olur. Eğer + ServerLimit ve MaxClients değerleri sistemin + işleyebileceğinden daha yüksek değerlere ayarlanırsa Apache + başlayamayacağı gibi sistemi kararsız hale de getirebilir.

    + +

    Bu yönergeyi prefork modülü ile sadece MaxClients yönergesine 256’dan + (öntanımlı) daha büyük bir değer atayacaksanız kullanınız. Bu yönergeye + MaxClients için atamak + istediğiniz değerden fazlasını atamayınız.

    + +

    worker modülü söz konusu olduğunda bu yönergeyi + MaxClients ve + ThreadsPerChild ayarları 16 + sunucu sürecinden (16 öntanımlıdır) fazlasını gerektiriyorsa + ayarlayınız. Bu yönergeye MaxClients + ve ThreadsPerChild için gerekli gördüğünüz + sunucu süreci sayısından fazlasını atamayınız.

    + + Ek Bilgi +

    Sunucu içinde derlenmiş olarak ServerLimit 20000 + şeklinde bir zorlayıcı sınır vardır (prefork için + 200000’dir). Bu önlem, yazım hatalarının istenmeyen sonuçlara yol + açmasını engellemek için düşünülmüştür.

    +
    +
    +Sunucuyu Durdurma ve Yeniden Başlatma +
    + + +StartServers +Sunucunun başlatılması sırasında oluşturulan çocuk süreçlerin + sayısını belirler. +StartServers sayı +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config +mpmt_os2 +preforkworker + + + +

    StartServers yönergesi, sunucunun başlatılması + sırasında oluşturulan çocuk süreçlerin sayısını belirler. Süreç sayısı + normal olarak yüke bağlı olarak değişse de bu değerin ayarlanmasını + gerektirecek küçük bir sebep vardır.

    + +

    Öntanımlı değer MPM’den MPM’e fark eder. Öntanımlı değer + worker için 3 iken + prefork için 5 ve + mpmt_os2 için 2’dir.

    +
    +
    + + +StartThreads +Sunucunun başlatılması sırasında oluşturulan evrelerin sayısını + belirler. +StartThreads sayı +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config +beosmpm_netware + + + +

    StartThreads yönergesi, sunucunun başlatılması + sırasında oluşturulan evrelerin sayısını belirler. Evre sayısı normal + olarak yüke bağlı olarak değişse de bu değerin ayarlanmasını + gerektirecek küçük bir sebep vardır.

    + +

    mpm_netware için StartThreads 50 + öntanımlı olup, sadece tek bir süreç olduğundan, sunucunun başlatılması + sırasında oluşturulan evrelerin toplam sayısı 50’dir.

    + +

    beos için StartThreads 10 öntanımlı olup + sunucunun başlatılması sırasında oluşturulan evrelerin toplam sayısı + 10’dur.

    +
    +
    + + +ThreadLimit +Çocuk süreç başına ayarlanabilir evre sayısının üst sınırını + belirler. +ThreadLimit sayı +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config +mpm_winnt +worker + +mpm_winnt için Apache 2.0.41 ve sonrasında mevcuttur. + + +

    Bu yönerge, Apache sürecinin ömrü boyunca ThreadsPerChild yönergesine + atanabilecek azami değeri belirler. Bu yönergeyi bir yeniden başlatma + sırasında değiştirirseniz bu değişiklik yok sayılır fakat ThreadsPerChild değişiklikleri dikkate + alınır.

    + +

    Bu yönergenin kullanılması özel bir dikkat gerektirir. Eğer + ThreadLimit değeri ThreadsPerChild değerinden yüksek bir + değere ayarlanırsa, gereksiz yere paylaşımlı bellek ayrılmış olur. Eğer + ThreadLimit ve ThreadsPerChild değerleri sistemin + işleyebileceğinden daha yüksek değerlere ayarlanırsa Apache + başlayamayacağı gibi sistemi kararsız hale de getirebilir. Bu yönergeye + Apache sunucusunun çalışması için öngörülmüş en büyük değerden daha + yükseğini atamayınız.

    + +

    ThreadLimit yönergesinin öntanımlı değeri + mpm_winnt için 1920, diğerleri için + 64’tür.

    + + Ek Bilgi +

    Sunucu içinde derlenmiş olarak ThreadLimit 20000 + şeklinde bir zorlayıcı sınır vardır (mpm_winnt için + 15000’dir). Bu önlem, yazım hatalarının istenmeyen sonuçlara yol + açmasını engellemek için düşünülmüştür.

    +
    +
    +
    + + +ThreadsPerChild +Her çocuk süreç tarafından oluşturulan evrelerin sayısını + belirler. +ThreadsPerChild sayı +Ayrıntılar için aşağıdaki açıklamaya bakınız. +server config +mpm_winnt +worker + + +

    Bu yönerge, her çocuk süreç tarafından oluşturulan evrelerin sayısını + belirler. Çocuk süreçler bu evreleri başlatıldıklarında oluştururlar ve + bundan daha fazlasını asla oluşturmazlar. mpm_winnt + gibi sadece bir çocuk sürecin bulunduğu bir MPM kullanıyorsanız, bu + sayı sunucunun tüm yükünü kaldırabilecek kadar büyük olmalıdır. + worker gibi çok çocuk süreçli bir MPM kullanıyorsanız, + toplam evre sayısı sunucunun tüm yükünü kaldırabilecek kadar + büyük olmalıdır.

    + +

    ThreadsPerChild için öntanımlı değer + mpm_winnt kullanıldığında 64 diğerleri + için 25’tir.

    +
    +
    + + +ThreadStackSize +İstemci bağlantılarını elde eden evreler tarafından kullanılan + yığıtın bayt cinsinden uzunluğunu belirler. +ThreadStackSize boyut +NetWare üzerinde 65536; diğer işletim sistemlerinde + değişir. +server config +mpm_netware mpm_winnt +event worker +Apache 2.1 ve sonrasında mevcuttur. + + +

    ThreadStackSize yönergesi, istemci + bağlantılarını elde eden evreler ve bu bağlantıları işlemekte yardımcı + olan modül çağrıları tarafından kullanılan yığıtın bayt cinsinden + uzunluğunu belirler. Çoğu durumda işletim sistemi yığıtı uygun bir + boyuta ayarlar, fakat yine de ayarlanmasını gerektirecek bazı durumlar + olabilir:

    + +
      +
    • HP-UX gibi görece küçük yığıt boyuna sahip platformlarda, Apache, + görece büyük yığıt alanı kullanan bazı üçüncü parti modüller yüzünden + çökebilir. Bu modüller öntanımlı yığıt boyu daha büyük olan diğer + platformlarda sorunsuz çalışabilir. Bu tür çökmeler + ThreadStackSize yönergesine daha büyük yığıt + boyu atanarak çözümlenir. Böyle bir ayarlamayı sadece üçüncü parti + modülün üreticisi bunun gerekliliğini belirtmişse veya Apache’nin + evre yığıt boyutunun küçüklüğünden dolayı çöktüğü teşhis edildiği + takdirde yapınız.
    • + +
    • Öntanımlı yığıt boyu Apache sunucusu için gerekenden belirgin + şekilde büyük bazı platformalarda, eğer + ThreadStackSize yönergesi ile bu boyuttan daha + düşük bir değer atanmışsa çocuk süreç başına evre sayısının yüksek + olduğu durumlarda bu yığıt yetmeyebilir. Böyle bir ayarlama sadece + sunucunun öldüresiye denendiği dolayısıyla yığıt boyutlarının aşırı + zorlandığı deneme ortamlarında yapılmalıdır. Gereken en küçük yığıt + boyutu kullanılan modüllerle sıkı sıkıya ilintilidir, fakat sunucu + yapılandırmasında yapılan bir değişiklik mevcut + ThreadStackSize ayarını geçersiz hale + getirebilir.
    • +
    + + Çocuk süreç başına evre sayısı çok yüksek olmadıkça + ThreadStackSize değerinin azaltılması önerilmez. + Bazı platformlarda (Linux dahil), 128000 değeri zaten çok düşüktür ve bazı + modüllerde çökmelere sebep olabilmektedir. + +
    +
    + + +User +İsteklere yanıt verecek sunucunun ait olacağı kullanıcıyı + belirler. +User unix-kullanıcısı +User #-1 +server config + +preforkworker + +Apache 2.0’dan itibaren sadece sunucu geneli için + geçerlidir. + + +

    User yönergesi, sunucunun hangi kullanıcı olarak + isteklere yanıt vereceğini belirler. Bu yönergenin uygulanabilmesi için + sunucunun root olarak çalıştırılmış olması gerekir. + Sunucuyu root dışında bir kullanıcı başlattığı takdirde, + sunucu belirtilen kullanıcıya geçemez ve mevcut kullanıcıyla çalışmaya + devam eder. Eğer sunucuyu root olarak başlatmışsanız ana + süreç root olarak çalışmaya devam edecektir. unix-kullanıcısı + şunlardan biri olabilir:

    + +
    +
    Bir kullanıcı adı
    +
    Gruba ismiyle başvurulur.
    + +
    # ardından kullanıcı numarası
    +
    Kullanıcıya numarası ile başvurulur.
    +
    + +

    Bu yönergede belirtilecek kullanıcının, başkaları tarafından üzerinde + değişiklik yapılabilecek dosyalardan başkasına erişemeyen bir kullanıcı + olmaması gerektiği gibi, HTTP isteklerini işlemek dışında işlemler de + yapabilen bir kullanıcı olmamalıdır. + Çalışan sunucu için özellikle yeni bir grup atamanız önerilir. Bazı + sistem yöneticileri nobody kullanıcısını kullanırlar fakat + nobody kullanıcısı sistemde başka amaçlarla + kullanılabildiğinden bu her zaman mümkün olmadığı gibi arzulanan da + değildir.

    + + Güvenlik +

    Ne yaptığınızı ve ne tehlikelere yol açacağınızı bilmiyorsanız + User (veya Group) yönergesine değer olarak + root atamayınız.

    +
    + +

    Özel bilgi: Bu yönergenin VirtualHost taşıyıcısı içinde kullanımı + artık desteklenmemektedir. Sunucunuzu suexec için + yapılandırırken SuexecUserGroup yönergesini + kullanınız.

    + + Ek Bilgi +

    Useryönergesi beos ve + mpmt_os2 MPM’lerinde mevcut olsa da, aslında + işlevsiz olup sadece uyumluluk adına mevcuttur.

    +
    +
    +
    + + +ChrootDir +Başlatıldıktan sonra Apache’nin chroot(8) yapacağı dizin + +ChrootDir /dizin/yolu/ +none +server config +event +preforkworker +Apache 2.2.10 ve sonrasında mevcuttur. + + + +

    Bu yönerge sunucu başlatıldıktan sonra istekleri kabul etmeye + başlamadan önce sunucunun belirtilen dizine chroot(8) + yapmasını söyler.

    + +

    Sunucuyu chroot altında çalıştırmanın basit bir işlem olmadığını ve + özellikle CGI veya PHP gibi betikler çalıştırıyorsanız bazı ek + ayarlamaların yapılması gerektiğini unutmayınız. Bu özelliği kullanmaya + çalışmadan önce chroot işlemi hakkında yeterli bilgiye sahip + olduğunuzdan emin olmalısınız.

    +
    +
    + +
    diff --git a/docs/manual/mod/mpm_netware.html b/docs/manual/mod/mpm_netware.html index 03b1ca93bb8..4b973d1614c 100644 --- a/docs/manual/mod/mpm_netware.html +++ b/docs/manual/mod/mpm_netware.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mpm_netware.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mpm_netware.html.en b/docs/manual/mod/mpm_netware.html.en index fe5e0d31e3a..4cc05b75e02 100644 --- a/docs/manual/mod/mpm_netware.html.en +++ b/docs/manual/mod/mpm_netware.html.en @@ -1,33 +1,40 @@ - -mpm_netware - Apache HTTP Server +mpm_netware - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache MPM netware

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM netware

    Available Languages:  en 

    - -
    Description:Multi-Processing Module implementing an exclusively threaded web server optimized for Novell NetWare
    Status:MPM
    Module Identifier:mpm_netware_module
    Source File:mpm_netware.c
    +Module Identifier:mpm_netware_module +Source File:mpm_netware.c

    Summary

    This Multi-Processing Module (MPM) implements an exclusively @@ -69,6 +76,7 @@

  • MaxSpareThreads
  • MaxThreads
  • MinSpareThreads
  • +
  • ReceiveBufferSize
  • SendBufferSize
  • StartThreads
  • ThreadStackSize
  • @@ -78,7 +86,7 @@
  • Setting which addresses and ports Apache uses
  • -
    +
    top

    MaxThreads Directive

    @@ -103,7 +111,28 @@

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mpm_netware.xml b/docs/manual/mod/mpm_netware.xml index 7985902c647..1685c008e50 100644 --- a/docs/manual/mod/mpm_netware.xml +++ b/docs/manual/mod/mpm_netware.xml @@ -4,12 +4,12 @@ - + mpm_netware /mod/ .. diff --git a/docs/manual/mod/mpm_winnt.html b/docs/manual/mod/mpm_winnt.html index c5d89ac9357..2c0ccc92f71 100644 --- a/docs/manual/mod/mpm_winnt.html +++ b/docs/manual/mod/mpm_winnt.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mpm_winnt.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -6,6 +8,6 @@ Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: mpm_winnt.html.ja.euc-jp +URI: mpm_winnt.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/mpm_winnt.html.de b/docs/manual/mod/mpm_winnt.html.de index f0ac85451fa..1b10d99fe41 100644 --- a/docs/manual/mod/mpm_winnt.html.de +++ b/docs/manual/mod/mpm_winnt.html.de @@ -1,31 +1,41 @@ - -mpm_winnt - Apache HTTP Server +mpm_winnt - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP-Server > Dokumentation > Version 2.2 > Module
    -

    Apache-MPM winnt

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache-MPM winnt

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  |  ja 

    -
    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  |  ja 

    -
    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mpm_winnt.html.en b/docs/manual/mod/mpm_winnt.html.en index 5359171bc4f..a77aea8858d 100644 --- a/docs/manual/mod/mpm_winnt.html.en +++ b/docs/manual/mod/mpm_winnt.html.en @@ -1,25 +1,32 @@ - -mpm_winnt - Apache HTTP Server +mpm_winnt - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache MPM winnt

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM winnt

    Available Languages:  de  |  en  | @@ -28,8 +35,8 @@

    Beschreibung: Das Multi-Processing-Modul ist optimiert für +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.
    + @@ -33,7 +43,7 @@

    Zusammenfassung

    Dieses Multi-Processing-Modul (MPM) ist die Voreinstellung - für das Betriebssystem Windows NT. Es verwendet einen einzelnen + für das Betriebssystem Windows NT. Es verwendet einen einzelnen Steuerprozess, der einen einzelnen Kindprozess startet, welcher wiederum Threads zur Bedienung von Anfragen erstellt.

    @@ -45,6 +55,7 @@
  • MaxMemFree
  • MaxRequestsPerChild
  • PidFile
  • +
  • ReceiveBufferSize
  • ScoreBoardFile
  • SendBufferSize
  • ThreadLimit
  • @@ -52,26 +63,26 @@
  • ThreadStackSize
  • Win32DisableAcceptEx
  • - +
    top
    Beschreibung: Das Multi-Processing-Modul ist optimiert für Windows NT.
    Status:MPM
    Modulbezeichner:mpm_winnt_module
    - + - - +
    Beschreibung:Für die Annahme von Netzwerkverbindungen wird accept() anstelle von AcceptEx() verwendet
    Beschreibung:Für die Annahme von Netzwerkverbindungen wird accept() anstelle von AcceptEx() verwendet
    Syntax:Win32DisableAcceptEx
    Voreinstellung:AcceptEx() ist standardmäßig aktiviert. Verwenden Sie diese +
    Voreinstellung:AcceptEx() ist standardmäßig aktiviert. Verwenden Sie diese Direktive, um den Gebrauch von AcceptEx() zu deaktivieren.
    Kontext:Serverkonfiguration
    Status:MPM
    Modul:mpm_winnt
    Kompatibilität:Verfügbar ab Version 2.0.49
    Kompatibilität:Verfügbar ab Version 2.0.49

    AcceptEx() ist eine Schnittstelle zu Microsoft Winsock v2, - die unter bestimmten Umständen einige Leistungsverbesserungen - gegenüber der accept()-API von BSD bietet. Einige beliebte + die unter bestimmten Umständen einige Leistungsverbesserungen + gegenüber der accept()-API von BSD bietet. Einige beliebte Windows-Produkte, typischerweise Virenscanner oder VPN-Pakete, besitzen jedoch Fehler, welche den einwandfreien Betrieb von AcceptEx() - stören. Wenn Sie einen Fehler wie:

    + stören. Wenn Sie einen Fehler wie:

    [error] (730038)An operation was attempted on something that is @@ -84,10 +95,31 @@ Direktive, um den Gebrauch von AcceptEx() zu deaktivieren.

    - -
    Description:This Multi-Processing Module is optimized for Windows NT.
    Status:MPM
    Module Identifier:mpm_winnt_module
    Source File:mpm_winnt.c
    +Module Identifier:mpm_winnt_module +Source File:mpm_winnt.c

    Summary

    This Multi-Processing Module (MPM) is the default for the @@ -45,6 +52,7 @@ NT.

  • MaxMemFree
  • MaxRequestsPerChild
  • PidFile
  • +
  • ReceiveBufferSize
  • ScoreBoardFile
  • SendBufferSize
  • ThreadLimit
  • @@ -52,7 +60,10 @@ NT.
  • ThreadStackSize
  • Win32DisableAcceptEx
  • -
    +

    See also

    +
    top

    Win32DisableAcceptEx Directive

    @@ -87,7 +98,28 @@ NT.

    Available Languages:  de  |  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mpm_winnt.html.ja.euc-jp b/docs/manual/mod/mpm_winnt.html.ja.euc-jp deleted file mode 100644 index 6e286a1c6fc..00000000000 --- a/docs/manual/mod/mpm_winnt.html.ja.euc-jp +++ /dev/null @@ -1,91 +0,0 @@ - - - -mpm_winnt - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache MPM winnt

    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - - - -
    ÀâÌÀ:Windows NT -¸þ¤±¤˺ÇŬ²½¤µ¤줿¥ޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥뼱Ê̻Ò:mpm_winnt_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:mpm_winnt.c
    -

    ³µÍ×

    - -

    ¤³¤Υޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM) - ¤Ï Windows NT ¤ǤΥǥե©¥ë¥Ȥˤʤê¤ޤ¹¡£ - °ì¤ĤÎÀ©¸æÍѥץí¥»¥¹¤òÍѤ¤¡¢¤³¤줬°ì¤Ĥλҥץí¥»¥¹¤òµ¯ư¤·¡¢ - ¤½¤·¤ƻҥץí¥»¥¹¤¬¥ꥯ¥¨¥¹¥Ȥò¼è¤갷¤¦¤¿¤á¤˥¹¥ì¥åɤò - µ¯ư¤·¤ޤ¹¡£

    -
    - - -
    top
    -

    Win32DisableAcceptEx ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - - -
    ÀâÌÀ:¥ͥåȥ¥¯Àܳ¤μõ¤±Éդ±¤Ë accept() ¤òAcceptEx ¤ÎÂå¤ï¤ê¤˻Ȥ¦
    ¹½ʸ:Win32DisableAcceptEx
    ¥ǥե©¥ë¥È:AcceptEx() ¤ϥǥե©¥ë¥ȤÇͭ¸ú¤ˤʤäƤ¤¤ޤ¹¡£AcceptEx() ¤ò̵¸ú¤ˤ¹¤ë -¤¿¤á¤ˤ³¤Υǥ£¥쥯¥ƥ£¥֤ò»Ȥ¤¤ޤ¹¡£
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:mpm_winnt
    ¸ߴ¹À­:2.0.49 ¥С¼¥¸¥ç¥ó°ʹߤǻÈÍѲÄǽ
    -

    AcceptEx() ¤Ï Microsoft WinSock v2 API ¤ǡ¢¾ì¹ç¤ˤè¤äƤÏ - BSD ·Á¼°¤Î accept() API ¤è¤ê¤â¤褤À­ǽ¤òȯ´ø¤·¤ޤ¹¡£ - ¤褯»Ȥï¤ì¤Ƥ¤¤ë Windows À½ÉʤÎÃæ¤ǡ¢Æä˥¦¥£¥륹¥¹¥­¥ã¥ʤä VPN ¥ѥ屡¼¥¸ - ¤ÎÃæ¤ˤϡ¢¥Х°¤¬¸¶°ø¤Ç AcceptEx() ¤ÎŬÀڤÊưºî¤ò˸¤²¤ë¤â¤Τ¬¤¢¤ê¤ޤ¹¡£ - °ʲ¼¤Τ褦¤ʥ¨¥顼¤ËÁø¶ø¤·¤¿¾ì¹ç¤ϡ¢¤³¤Υǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤Æ - AcceptEx() ¤ò»ÈÍѤ·¤ʤ¤¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    - [error] (730038)An operation was attempted on something that is - not a socket.: winnt_accept: AcceptEx failed. Attempting to recover. -

    - -
    -
    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/mpm_winnt.html.ja.utf8 b/docs/manual/mod/mpm_winnt.html.ja.utf8 new file mode 100644 index 00000000000..9b7c798c24f --- /dev/null +++ b/docs/manual/mod/mpm_winnt.html.ja.utf8 @@ -0,0 +1,124 @@ + + + + + +mpm_winnt - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM winnt

    +
    +

    翻訳済み言語:  de  | + en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:Windows NT +向けに最適化されたマルチプロセッシングモジュール
    ステータス:MPM
    モジュール識別子:mpm_winnt_module
    ソースファイル:mpm_winnt.c
    +

    概要

    + +

    このマルチプロセッシングモジュール (MPM) + は Windows NT でのデフォルトになります。 + 一つの制御用プロセスを用い、これが一つの子プロセスを起動し、 + そして子プロセスがリクエストを取り扱うためにスレッドを + 起動します。

    +
    + + +
    top
    +

    Win32DisableAcceptEx ディレクティブ

    + + + + + + + + +
    説明:ネットワーク接続の受け付けに accept() をAcceptEx の代わりに使う
    構文:Win32DisableAcceptEx
    デフォルト:AcceptEx() はデフォルトで有効になっています。AcceptEx() を無効にする +ためにこのディレクティブを使います。
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:mpm_winnt
    互換性:2.0.49 バージョン以降で使用可能
    +

    AcceptEx() は Microsoft WinSock v2 API で、場合によっては + BSD 形式の accept() API よりもよい性能を発揮します。 + よく使われている Windows 製品の中で、特にウィルススキャナや VPN パッケージ + の中には、バグが原因で AcceptEx() の適切な動作を妨げるものがあります。 + 以下のようなエラーに遭遇した場合は、このディレクティブを使用して + AcceptEx() を使用しないようにしてください。

    + +

    + [error] (730038)An operation was attempted on something that is + not a socket.: winnt_accept: AcceptEx failed. Attempting to recover. +

    + +
    +
    +
    +

    翻訳済み言語:  de  | + en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mpm_winnt.xml b/docs/manual/mod/mpm_winnt.xml index 93f2ff88d37..c6e1c4d881f 100644 --- a/docs/manual/mod/mpm_winnt.xml +++ b/docs/manual/mod/mpm_winnt.xml @@ -4,12 +4,12 @@ + + - + mpm_winnt /mod/ .. - de + de en - ja + ja diff --git a/docs/manual/mod/mpmt_os2.html b/docs/manual/mod/mpmt_os2.html index df2b37dfd3b..eb0b883e857 100644 --- a/docs/manual/mod/mpmt_os2.html +++ b/docs/manual/mod/mpmt_os2.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mpmt_os2.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mpmt_os2.html.en b/docs/manual/mod/mpmt_os2.html.en index ff8c4de1e58..c0160cb87cf 100644 --- a/docs/manual/mod/mpmt_os2.html.en +++ b/docs/manual/mod/mpmt_os2.html.en @@ -1,32 +1,39 @@ - -mpmt_os2 - Apache HTTP Server +mpmt_os2 - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache MPM os2

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM os2

    Available Languages:  en 

    - -
    Description:Hybrid multi-process, multi-threaded MPM for OS/2
    Status:MPM
    Module Identifier:mpm_mpmt_os2_module
    Source File:mpmt_os2.c
    +Module Identifier:mpm_mpmt_os2_module +Source File:mpmt_os2.c

    Summary

    The Server consists of a main, parent process and a small, static @@ -53,6 +60,7 @@

  • MaxSpareThreads
  • MinSpareThreads
  • PidFile
  • +
  • ReceiveBufferSize
  • SendBufferSize
  • StartServers
  • User
  • @@ -61,12 +69,33 @@
    +

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/mpmt_os2.xml b/docs/manual/mod/mpmt_os2.xml index 479c43990f1..81b7fc9d62b 100644 --- a/docs/manual/mod/mpmt_os2.xml +++ b/docs/manual/mod/mpmt_os2.xml @@ -4,12 +4,12 @@ - + mpmt_os2 /mod/ .. diff --git a/docs/manual/mod/perchild.html b/docs/manual/mod/perchild.html deleted file mode 100644 index 6659fb364e0..00000000000 --- a/docs/manual/mod/perchild.html +++ /dev/null @@ -1,3 +0,0 @@ -URI: perchild.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/perchild.html.en b/docs/manual/mod/perchild.html.en deleted file mode 100644 index d20f5f99ee7..00000000000 --- a/docs/manual/mod/perchild.html.en +++ /dev/null @@ -1,265 +0,0 @@ - - - -perchild - Apache HTTP Server - - - - - - -
    <-
    - -
    -

    Apache MPM perchild

    -
    -

    Available Languages:  en 

    -
    - - - -
    Description:Multi-Processing Module allowing for daemon processes serving -requests to be assigned a variety of different userids
    Status:MPM
    Module Identifier:mpm_perchild_module
    Source File:perchild.c
    -

    Summary

    - -
    - This module is not functional. Development of this module is not - complete and is not currently active. Do not use - perchild unless you are a programmer willing to - help fix it. -
    - -

    This Multi-Processing Module (MPM) implements a hybrid - multi-process, multi-threaded web server. A fixed number of - processes create threads to handle requests. Fluctuations in - load are handled by increasing or decreasing the number of - threads in each process.

    -
    - -
    top
    -
    -

    How it works

    -

    A single control process launches the number of child processes - indicated by the NumServers - directive at server startup. Each child process creates threads as - specified in the StartThreads directive. - The individual threads then - listen for connections and serve them when they arrive.

    - -

    Apache always tries to maintain a pool of spare or - idle server threads, which stand ready to serve incoming - requests. In this way, clients do not need to wait for new - threads to be created. For each child process, Apache assesses - the number of idle threads and creates or destroys threads to - keep this number within the boundaries specified by - MinSpareThreads - and MaxSpareThreads. - Since this process is very self-regulating, it is rarely - necessary to modify these directives from their default values. - The maximum number of clients that may be served simultaneously - is determined by multiplying the number of server processes - that will be created (NumServers) by the maximum - number of threads created in each process - (MaxThreadsPerChild).

    - -

    While the parent process is usually started as root under - Unix in order to bind to port 80, the child processes and - threads are launched by Apache as a less-privileged user. The - User and Group directives are used to - set the privileges of the Apache child processes. The child - processes must be able to read all the content that will be - served, but should have as few privileges beyond that as - possible. In addition, unless suexec is used, - these directives also set the privileges which will be inherited - by CGI scripts.

    - -

    MaxRequestsPerChild - controls how frequently the - server recycles processes by killing old ones and launching new - ones.

    - -

    Working with different user-IDs

    -

    The perchild MPM adds the extra ability to - specify that particular processes should serve requests under - different user-IDs. These user-IDs can then be associated with - specific virtual hosts. You have to use one ChildPerUserID directive for - every user/group combination you want to be run. Then you can tie - particular virtual hosts to that user and group IDs.

    - -

    The following example runs 7 child processes. Two of them are run - under user1/group1. The next four are run - under user2/group2 and the remaining - process uses the User and Group - of the main server:

    - -

    Global config

    - NumServers 7
    - ChildPerUserID user1 group1 2
    - ChildPerUserID user2 group2 4 -

    - -

    Using unbalanced numbers of processes as above is useful, if the - particular virtual hosts produce different load. The assignment to - the virtual hosts is easily done as in the example below. In - conclusion with the example above the following assumes, that - server2 has to serve about twice of the hits of - server1.

    - -

    Example

    - NameVirtualHost *
    -
    - <VirtualHost *>
    - - ServerName fallbackhost
    - # no assignment; use fallback
    -
    - </VirtualHost>
    -
    - <VirtualHost *>
    - - ServerName server1
    - AssignUserID user1 group1
    -
    - </VirtualHost>
    -
    - <VirtualHost *>
    - - ServerName server2
    - AssignUserID user2 group2
    -
    - </VirtualHost> -

    - -
    -
    top
    -

    AssignUserID Directive

    - - - - - - -
    Description:Tie a virtual host to a user and group ID
    Syntax:AssignUserID user-id group-id
    Context:virtual host
    Status:MPM
    Module:perchild
    -

    Tie a virtual host to a specific user/group combination. Requests - addressed to the virtual host where this directive appears will be - served by a process running with the specified user and group ID.

    - -

    The user and group ID has to be assigned to a number of children - in the global server config using the ChildPerUserID directive. See the section above for a - configuration example.

    - -
    -
    top
    -

    ChildPerUserID Directive

    - - - - - - -
    Description:Specify user ID and group ID for a number of child -processes
    Syntax:ChildPerUserID user-id group-id -num-children
    Context:server config
    Status:MPM
    Module:perchild
    -

    Specify a user ID and group ID for a number of child processes. - The third argument, num-children, is the number of child - processes to start with the specified user and group. It does - not represent a specific child number. In order to use this - directive, the server must be run initially as root. - If you start the server as a non-root user, it will fail to change - to the lesser privileged user.

    - -

    If the total number of child processes, found by totaling all of the - third arguments to all ChildPerUserID directives - in the config file, is less than NumServers, then all remaining children will inherit the - User and Group settings from the main server. - See the section above for a configuration - example.

    - -

    Security

    -

    Don't set user-id (or group-id) to - root unless you know exactly what you are doing, and - what the dangers are.

    -
    - -
    -
    top
    -

    MaxThreadsPerChild Directive

    - - - - - - - -
    Description:Maximum number of threads per child process
    Syntax:MaxThreadsPerChild number
    Default:MaxThreadsPerChild 64
    Context:server config
    Status:MPM
    Module:perchild
    -

    This directive sets the maximum number of threads that will be - created in each child process. To increase this value beyond its - default, it is necessary to change the value of the ThreadLimit directive and stop and - re-start the server.

    - -
    -
    top
    -

    NumServers Directive

    - - - - - - - -
    Description:Total number of children alive at the same time
    Syntax:NumServers number
    Default:NumServers 2
    Context:server config
    Status:MPM
    Module:perchild
    -

    The NumServers directive determines the number - of children alive at the same time. This number should be large enough to - handle the requests for the entire site. To increase this value beyond the - value of 8, it is necessary to change the value of the - ServerLimit directive and stop - and re-start the server. See the section above for a configuration example.

    - -
    -
    -
    -

    Available Languages:  en 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/perchild.xml b/docs/manual/mod/perchild.xml deleted file mode 100644 index f386849b157..00000000000 --- a/docs/manual/mod/perchild.xml +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - - - -perchild -Multi-Processing Module allowing for daemon processes serving -requests to be assigned a variety of different userids -MPM -perchild.c -mpm_perchild_module - - - - This module is not functional. Development of this module is not - complete and is not currently active. Do not use - perchild unless you are a programmer willing to - help fix it. - - -

    This Multi-Processing Module (MPM) implements a hybrid - multi-process, multi-threaded web server. A fixed number of - processes create threads to handle requests. Fluctuations in - load are handled by increasing or decreasing the number of - threads in each process.

    -
    -Setting which addresses and ports Apache -uses - -
    How it works -

    A single control process launches the number of child processes - indicated by the NumServers - directive at server startup. Each child process creates threads as - specified in the StartThreads directive. - The individual threads then - listen for connections and serve them when they arrive.

    - -

    Apache always tries to maintain a pool of spare or - idle server threads, which stand ready to serve incoming - requests. In this way, clients do not need to wait for new - threads to be created. For each child process, Apache assesses - the number of idle threads and creates or destroys threads to - keep this number within the boundaries specified by - MinSpareThreads - and MaxSpareThreads. - Since this process is very self-regulating, it is rarely - necessary to modify these directives from their default values. - The maximum number of clients that may be served simultaneously - is determined by multiplying the number of server processes - that will be created (NumServers) by the maximum - number of threads created in each process - (MaxThreadsPerChild).

    - -

    While the parent process is usually started as root under - Unix in order to bind to port 80, the child processes and - threads are launched by Apache as a less-privileged user. The - User and Group directives are used to - set the privileges of the Apache child processes. The child - processes must be able to read all the content that will be - served, but should have as few privileges beyond that as - possible. In addition, unless suexec is used, - these directives also set the privileges which will be inherited - by CGI scripts.

    - -

    MaxRequestsPerChild - controls how frequently the - server recycles processes by killing old ones and launching new - ones.

    - -
    Working with different user-IDs -

    The perchild MPM adds the extra ability to - specify that particular processes should serve requests under - different user-IDs. These user-IDs can then be associated with - specific virtual hosts. You have to use one ChildPerUserID directive for - every user/group combination you want to be run. Then you can tie - particular virtual hosts to that user and group IDs.

    - -

    The following example runs 7 child processes. Two of them are run - under user1/group1. The next four are run - under user2/group2 and the remaining - process uses the User and Group - of the main server:

    - - Global config - NumServers 7
    - ChildPerUserID user1 group1 2
    - ChildPerUserID user2 group2 4 -
    - -

    Using unbalanced numbers of processes as above is useful, if the - particular virtual hosts produce different load. The assignment to - the virtual hosts is easily done as in the example below. In - conclusion with the example above the following assumes, that - server2 has to serve about twice of the hits of - server1.

    - - Example - NameVirtualHost *
    -
    - <VirtualHost *>
    - - ServerName fallbackhost
    - # no assignment; use fallback
    -
    - </VirtualHost>
    -
    - <VirtualHost *>
    - - ServerName server1
    - AssignUserID user1 group1
    -
    - </VirtualHost>
    -
    - <VirtualHost *>
    - - ServerName server2
    - AssignUserID user2 group2
    -
    - </VirtualHost> -
    -
    -
    - -AcceptMutex - -CoreDumpDirectory - -EnableExceptionHook - -Group - -PidFile - -Listen - -ListenBacklog - -LockFile - -MaxRequestsPerChild - -MaxSpareThreads - -MinSpareThreads - -ScoreBoardFile - -SendBufferSize - -ServerLimit - -StartThreads - -ThreadLimit - -ThreadStackSize - -User - - - -AssignUserID -Tie a virtual host to a user and group ID -AssignUserID user-id group-id -virtual host - - -

    Tie a virtual host to a specific user/group combination. Requests - addressed to the virtual host where this directive appears will be - served by a process running with the specified user and group ID.

    - -

    The user and group ID has to be assigned to a number of children - in the global server config using the ChildPerUserID directive. See the section above for a - configuration example.

    -
    -
    - - -ChildPerUserID -Specify user ID and group ID for a number of child -processes -ChildPerUserID user-id group-id -num-children -server config - - -

    Specify a user ID and group ID for a number of child processes. - The third argument, num-children, is the number of child - processes to start with the specified user and group. It does - not represent a specific child number. In order to use this - directive, the server must be run initially as root. - If you start the server as a non-root user, it will fail to change - to the lesser privileged user.

    - -

    If the total number of child processes, found by totaling all of the - third arguments to all ChildPerUserID directives - in the config file, is less than NumServers, then all remaining children will inherit the - User and Group settings from the main server. - See the section above for a configuration - example.

    - - Security -

    Don't set user-id (or group-id) to - root unless you know exactly what you are doing, and - what the dangers are.

    -
    -
    -
    - - -MaxThreadsPerChild -Maximum number of threads per child process -MaxThreadsPerChild number -MaxThreadsPerChild 64 -server config - - -

    This directive sets the maximum number of threads that will be - created in each child process. To increase this value beyond its - default, it is necessary to change the value of the ThreadLimit directive and stop and - re-start the server.

    -
    -
    - - -NumServers -Total number of children alive at the same time -NumServers number -NumServers 2 -server config - - -

    The NumServers directive determines the number - of children alive at the same time. This number should be large enough to - handle the requests for the entire site. To increase this value beyond the - value of 8, it is necessary to change the value of the - ServerLimit directive and stop - and re-start the server. See the section above for a configuration example.

    -
    -
    - -
    diff --git a/docs/manual/mod/perchild.xml.meta b/docs/manual/mod/perchild.xml.meta deleted file mode 100644 index 0f5b87f6fae..00000000000 --- a/docs/manual/mod/perchild.xml.meta +++ /dev/null @@ -1,11 +0,0 @@ - - - - perchild - /mod/ - .. - - - en - - diff --git a/docs/manual/mod/prefork.html b/docs/manual/mod/prefork.html index 4676cc4ff3b..c21f42f3d8b 100644 --- a/docs/manual/mod/prefork.html +++ b/docs/manual/mod/prefork.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: prefork.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -6,6 +8,10 @@ Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: prefork.html.ja.euc-jp +URI: prefork.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 + +URI: prefork.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/prefork.html.de b/docs/manual/mod/prefork.html.de index 3d779ac8e0a..99fd4cd520e 100644 --- a/docs/manual/mod/prefork.html.de +++ b/docs/manual/mod/prefork.html.de @@ -1,43 +1,51 @@ - -prefork - Apache HTTP Server +prefork - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP-Server > Dokumentation > Version 2.2 > Module
    -

    Apache-MPM prefork

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache-MPM prefork

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - ja 

    + ja  | + tr 

    + Thread-Unterstützung
    Beschreibung:Implementiert einen im Voraus forkenden Webserver ohne - Thread-Unterstützung
    Status:MPM
    Modulbezeichner:mpm_prefork_module
    Quelltext-Datei:prefork.c

    Zusammenfassung

    Dieses Multi-Processing-Modul (MPM) implementiert einen - im Voraus forkenden Webserver ohne Thread-Unterstützung, der Anfragen - auf ähnliche Weise behandelt wie der Apache 1.3. Es ist für - Angebote geeignet, die aus Kompatibilitätsgründen mit - nicht-Thread-sicheren Bibliotheken Threading vermeiden müssen. - Es ist außerdem das geeignetste MPM, um jede Anfrage isoliert + im Voraus forkenden Webserver ohne Thread-Unterstützung, der Anfragen + auf ähnliche Weise behandelt wie der Apache 1.3. Es ist für + Angebote geeignet, die aus Kompatibilitätsgründen mit + nicht-Thread-sicheren Bibliotheken Threading vermeiden müssen. + Es ist außerdem das geeignetste MPM, um jede Anfrage isoliert zu bearbeiten, so dass Probleme mit einem einzelnen Prozess keinen anderen beeinflussen.

    @@ -46,9 +54,12 @@ Wichtigste ist, dass MaxClients gross genug ist, so viele gleichzeitige Anfragen zu bedienen, wie Sie erwarten, aber klein genug, um sicherzustellen, dass genug physischer - Arbeitsspeicher für alle Prozesse vorhanden ist.

    + Arbeitsspeicher für alle Prozesse vorhanden ist.

    -
    top

    Arbeitsweise

    -

    Ein einzelner Steuerprozess ist für den Start von +

    Ein einzelner Steuerprozess ist für den Start von Kindprozessen verantwortlich, die auf Verbindungen warten und diese bedienen, sobald sie eintreffen. Der Apache versucht immer, mehrere - freie oder unbeschäftigte Serverprozesse vorzuhalten, + freie oder unbeschäftigte Serverprozesse vorzuhalten, die zur Bedienung eingehender Anfragen bereit stehen. Auf diese Weise - müssen Clients nicht darauf warten, dass neue Kindprozesse + müssen Clients nicht darauf warten, dass neue Kindprozesse geforkt werden, bevor ihre Anfrage bearbeitet werden kann.

    StartServers, @@ -94,35 +103,35 @@ MaxClients regulieren, wie der Elternprozess Kindprozesse zur Bedienung von Anfragen erstellt. Im Allgemeinen ist der Apache sehr selbstregulierend, so dass die meisten - Angebote die Voreinstellung dieser Direktiven nicht verändern - müssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen - müssen, können MaxClients erhöhen, während - Systeme mit begrenztem Arbeitsspeicher möglicherweise + Angebote die Voreinstellung dieser Direktiven nicht verändern + müssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen + müssen, können MaxClients erhöhen, während + Systeme mit begrenztem Arbeitsspeicher möglicherweise MaxClients heruntersetzen - müssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf - Platte auslagern - und zurück) zu schützen. Weitere + müssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf + Platte auslagern - und zurück) zu schützen. Weitere Informationen zur Feinabstimmung der Prozesserstellung sind in den Performance-Hinweisen zu finden.

    -

    Währen der Elternprozess unter Unix normalerweise als - root gestartet wird, um sich an Port 80 binden zu können, +

    Währen der Elternprozess unter Unix normalerweise als + root gestartet wird, um sich an Port 80 binden zu können, werden die Kindprozesse unter einem weniger privilegierten Benutzer gestartet. Die Direktiven User und Group werden dazu verwendet, die Privilegien der Apache-Kindprozesse festzulegen. Die - Kindprozesse müssen in der Lage sein, alle Inhalte zu lesen, die - sie ausliefern sollen, sollten darüber hinaus jedoch so wenig wie - möglich Rechte besitzen.

    + Kindprozesse müssen in der Lage sein, alle Inhalte zu lesen, die + sie ausliefern sollen, sollten darüber hinaus jedoch so wenig wie + möglich Rechte besitzen.

    MaxRequestsPerChild - bestimmt, wie häufig der Server Prozesse erneuert, indem er alte + bestimmt, wie häufig der Server Prozesse erneuert, indem er alte beendet und neue startet.

    top

    MaxSpareServers-Direktive

    - @@ -131,14 +140,14 @@
    Beschreibung:Maximale Anzahl der unbeschäftigten Kindprozesse des +
    Beschreibung:Maximale Anzahl der unbeschäftigten Kindprozesse des Servers
    Syntax:MaxSpareServers Anzahl
    Voreinstellung:MaxSpareServers 10
    Modul:prefork

    Die Direktive MaxSpareServers bestimmt das - gewünschte Maximum an unbeschäftigten - Kindprozessen des Servers. Ein unbeschäftiger Prozess ist einer, der + gewünschte Maximum an unbeschäftigten + Kindprozessen des Servers. Ein unbeschäftiger Prozess ist einer, der keine Anfrage bedient. Wenn mehr als MaxSpareServers - Prozesse unbeschäftigt sind, wird der Elternprozess die - überschüssigen Prozesse beenden.

    + Prozesse unbeschäftigt sind, wird der Elternprozess die + überschüssigen Prozesse beenden.

    Eine Feineinstellung dieses Parameters sollte nur bei sehr - beschäftigten Angeboten notwendig sein. Es ist nahezu immer eine + beschäftigten Angeboten notwendig sein. Es ist nahezu immer eine schlechte Idee, den Parameter auf einen hohen Wert zu setzen. Wenn Sie versuchen, den Wert kleiner oder gleich MinSpareServers zu setzen, wird der Apache ihn automatisch auf MinSpareServers + 1 @@ -153,7 +162,7 @@

    top

    MinSpareServers-Direktive

    - @@ -162,15 +171,15 @@
    Beschreibung:Minimale Anzahl der unbeschäftigten Kindprozesse des +
    Beschreibung:Minimale Anzahl der unbeschäftigten Kindprozesse des Servers
    Syntax:MinSpareServers Anzahl
    Voreinstellung:MinSpareServers 5
    Modul:prefork

    Die Direktive MinSpareServers bestimmt das - gewünschte Minimum der unbeschäftigten - Kindprozesse des Servers. Ein unbeschäftigter Prozess ist einer, der + gewünschte Minimum der unbeschäftigten + Kindprozesse des Servers. Ein unbeschäftigter Prozess ist einer, der keine Anfrage bedient. Wenn weniger als - MinSpareServers Prozesse unbeschäftigt sind, + MinSpareServers Prozesse unbeschäftigt sind, dann erstellt der Elternprozess neue mit einer maximalen Rate von 1 pro Sekunde.

    Die Feineinstellung des Parameters sollte nur bei sehr - beschäftigten Angeboten notwendig sein. Es ist nahezu immer eine + beschäftigten Angeboten notwendig sein. Es ist nahezu immer eine schlechte ide, den Parameter auf einen hohen Wert zu setzen.

    Siehe auch

    @@ -181,10 +190,32 @@
    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - ja 

    -
    + ja  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/prefork.html.en b/docs/manual/mod/prefork.html.en index 09a5b5586af..ef7f7780da8 100644 --- a/docs/manual/mod/prefork.html.en +++ b/docs/manual/mod/prefork.html.en @@ -1,34 +1,42 @@ - -prefork - Apache HTTP Server +prefork - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    -

    Apache MPM prefork

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM prefork

    Available Languages:  de  |  en  | - ja 

    + ja  | + tr 

    - -
    Description:Implements a non-threaded, pre-forking web server
    Status:MPM
    Module Identifier:mpm_prefork_module
    Source File:prefork.c
    +Module Identifier:mpm_prefork_module +Source File:prefork.c

    Summary

    This Multi-Processing Module (MPM) implements a non-threaded, @@ -45,7 +53,10 @@ small enough to assure that there is enough physical RAM for all processes.

    -
    top

    How it Works

    @@ -168,8 +177,30 @@ uses

    Available Languages:  de  |  en  | - ja 

    -
    + ja  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/prefork.html.ja.euc-jp b/docs/manual/mod/prefork.html.ja.euc-jp deleted file mode 100644 index 9505c67f862..00000000000 --- a/docs/manual/mod/prefork.html.ja.euc-jp +++ /dev/null @@ -1,187 +0,0 @@ - - - -prefork - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache MPM prefork

    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - - - -
    ÀâÌÀ:¥¹¥ì¥åɤò»Ȥ鷺¡¢Àè¹Ԥ·¤Æ fork ¤ò¹Ԥʤ¦¥¦¥§¥֥µ¡¼¥Фò¼ÂÁõ -
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥뼱Ê̻Ò:mpm_prefork_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:prefork.c
    -

    ³µÍ×

    - -

    ¤³¤Υޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM) ¤ϡ¢ - Unix ¾å¤ǤÎ Apache 1.3 ¤Υǥե©¥ë¥Ȥεóư¤ÈÈó¾ï¤ˤ褯»÷¤¿Êýˡ¤Ç - ¥ꥯ¥¨¥¹¥Ȥò½èÍý¤¹¤롢¥¹¥ì¥åɤò»Ȥ鷺¡¢Àè¹Ԥ·¤Æ fork ¤ò¹Ԥʤ¦ - ¥¦¥§¥֥µ¡¼¥Фò¼ÂÁõ¤·¤Ƥ¤¤ޤ¹¡£ - ¥¹¥ì¥åɥ»¡¼¥դǤʤ¤¥饤¥֥é¥ê¤Ȥθߴ¹À­¤ò¤Ȥ뤿¤á¤ˡ¢ - ¥¹¥ì¥åɤòÈ򤱤ëɬÍפΤ¢¤륵¥¤¥ȤǤϡ¢¤³¤Υ⥸¥塼¥ë¤λÈÍѤ¬ŬÀڤǤ·¤礦¡£ - ¤¢¤ë¥ꥯ¥¨¥¹¥ȤÇȯÀ¸¤·¤¿ÌäÂ꤬¾¤Υꥯ¥¨¥¹¥Ȥ˱ƶÁ¤·¤ʤ¤¤褦¤ˡ¢ - ¸ġ¹¤Υꥯ¥¨¥¹¥ȤòñΥ¤¹¤ë¤Τˤ⡢ºÇŬ¤Ê MPM ¤Ǥ¹¡£

    - -

    ¤³¤Î MPM ¤ÏÈó¾ï¤˼«ΧŪ¤ʤΤǡ¢¤³¤Î MPM ¤ÎÀßÄê¥ǥ£¥쥯¥ƥ£¥֤ò - ĴÀ°¤¹¤ëɬÍפϤۤȤó¤ɤʤ¤¤Ǥ·¤礦¡£¤â¤äȤâ½ÅÍפʤ³¤Ȥϡ¢ - MaxClients - ¤¬¡¢ͽÁۤµ¤ì¤ëƱ»þ¥ꥯ¥¨¥¹¥ȿô¤ò½½ʬ°·¤¨¤뤰¤餤¤ÏÂ礭¤¤¤±¤ì¤ɤ⡢ - Á´¥ץí¥»¥¹¤˽½ʬ¤ÊʪÍý¥á¥â¥꤬³μ¤˹Ԥ­ÅϤëÄøÅ٤ˤϾ®¤µ¤¤Ãͤˤ¹¤롢 - ¤Ȥ¤¤¦¤³¤ȤǤ¹¡£

    - -
    - -
    top
    -
    -

    ưºîÊýˡ

    -

    °ì¤ĤΥ³¥ó¥ȥí¡¼¥ë¥ץí¥»¥¹¤¬¡¢ - ¥³¥ͥ¯¥·¥ç¥ó¤ËÂФ·¤Æ listen ¤·¤ơ¢¤·¤«¤ë¤٤­»þ¤˱þÅú¤¹¤ë - »ҥץí¥»¥¹¤òµ¯ư¤·¤ޤ¹¡£Apache ¤Ͼï¤˴ö¤Ĥ«¤Î¥¹¥ڥ¢ - ¤«¥¢¥¤¥ɥë¤ʥµ¡¼¥Хץí¥»¥¹¤ò°ݻý¤·¤Ƥ¤¤ơ¢¤½¤ì¤é¤ÏÆþ¤äƤ­¤¿ - ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤Ǥ­¤ë¤褦¤ËÂԵ¡¤·¤Ƥ¤¤ޤ¹¡£ - ¤³¤Τ褦¤ˤ·¤ƥ¯¥饤¥¢¥ó¥Ȥϡ¢¥ꥯ¥¨¥¹¥Ȥ¬±þÅú¤µ¤ì¤ëÁ°¤ˡ¢ - ¿·¤·¤¤»ҥץí¥»¥¹¤¬ fork ¤µ¤ì¤ë¤ΤòÂԤ¿¤ʤ¯¤Ƥâ¤褤¤褦¤Ë - ¤ʤäƤ¤¤ޤ¹¡£

    - -

    ¿ƥץí¥»¥¹¤¬¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤ë¤λҥץí¥»¥¹¤ò - ¤ɤΤ褦¤ËÀ¸À®¤¹¤뤫¤ϡ¢ - StartServers, - MinSpareServers, - MaxSpareServers, - MaxClients - ¤ÇĴÀ°¤·¤ޤ¹¡£°ìÈÌŪ¤ˡ¢Apache ¤ÏÈó¾ï¤˼«ΧŪ¤ʤΤǡ¢ - ÂçÄñ¤Υµ¥¤¥ȤǤϤ³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤ò¥ǥե©¥ë¥ÈÃͤ«¤éĴÀ°¤¹¤ë - ɬÍפϤʤ¤¤Ǥ·¤礦¡£ - Ʊ»þ¤Ë 256 ¤òͤ¨¤ë¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤·¤ʤ¤¤Ȥ¤¤±¤ʤ¤¥µ¥¤¥ȤǤϡ¢ - MaxClients - ¤òÁý¤䤹ɬÍפ¬¤¢¤ë¤Ǥ·¤礦¡£ - °ìÊý¡¢¥á¥â¥ê¤θ¤é¤ì¤Ƥ¤¤륵¥¤¥ȤǤϡ¢¥¹¥é¥å·¥ó¥° - (¥á¥â¥ê¤ȥǥ£¥¹¥¯´֤Dz¿Å٤⥹¥ï¥å×) ¤¬µ¯¤³¤ë¤ΤòËɤ°¤¿¤á¤Ë - MaxClients - ¤򸺤餹ɬÍפ¬¤¢¤ë¤Ǥ·¤礦¡£¥ץí¥»¥¹À¸À®¤ΥÁ¥塼¥˥󥰤˴ؤ¹¤ë - ¾ܤ·¤¤¾ðÊó¤ϡ¢À­ǽ¤˴ؤ¹¤ë¥ҥó¥È - ¤ˤ¢¤ê¤ޤ¹¡£

    - -

    Ä̾ï Unix ¤ǤϿƥץí¥»¥¹¤Ï 80 È֥ݡ¼¥Ȥ˥Х¤¥ó¥ɤ¹¤뤿¤á¤Ë - root ¤ǵ¯ư¤µ¤ì¤ޤ¹¤¬¡¢»ҥץí¥»¥¹¤䥹¥ì¥åɤÏ - ¤â¤äÈÄ㤤¸¢¸¤Υ桼¥¶¤Ç Apache ¤ˤè¤äƵ¯ư¤µ¤ì¤ޤ¹¡£ - User ¤È - Group - ¥ǥ£¥쥯¥ƥ£¥֤Ï - Apache ¤λҥץí¥»¥¹¤θ¢¸¤òÀßÄꤹ¤ë¤ΤËÍѤ¤¤é¤ì¤ޤ¹¡£ - »ҥץí¥»¥¹¤ϥ¯¥饤¥¢¥ó¥ȤËÁ÷¤륳¥ó¥ƥó¥ÄÁ´¤ƤòÆɤá¤ʤ¤¤Ȥ¤¤±¤ޤ»¤󤬡¢ - ²Äǽ¤ʸ¤êɬÍ׺Ǿ®¸¤θ¢¸¤Τߤò»ý¤äƤ¤¤ë¤褦¤ˤ¹¤ë¤٤­¤Ǥ¹¡£

    - -

    MaxRequestsPerChild - ¤ϡ¢¸Ť¤¥ץí¥»¥¹¤òÄä»ߤ·¤ƿ·¤·¤¤¥ץí¥»¥¹¤òµ¯ư¤¹¤뤳¤Ȥˤè¤äơ¢ - ¤ɤÎÄøÅ٤ÎÉÑÅ٤ǥµ¡¼¥Ф¬¥ץí¥»¥¹¤ò¥ꥵ¥¤¥¯¥뤹¤뤫¤òÀ©¸椷¤ޤ¹¡£

    -
    -
    top
    -

    MaxSpareServers ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥¢¥¤¥ɥë¤ʻҥµ¡¼¥Хץí¥»¥¹¤κÇÂç¸Ŀô
    ¹½ʸ:MaxSpareServers number
    ¥ǥե©¥ë¥È:MaxSpareServers 10
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:prefork
    -

    MaxSpareServers ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¥¢¥¤¥ɥë¤Ê»ҥµ¡¼¥Хץí¥»¥¹¤δõ˾ºÇÂç¸Ŀô¤òÀßÄꤷ¤ޤ¹¡£ - ¥¢¥¤¥ɥë¥ץí¥»¥¹¤Ȥϡ¢¥ꥯ¥¨¥¹¥Ȥ򰷤äƤ¤¤ʤ¤¥ץí¥»¥¹¤Ǥ¹¡£ - MaxSpareServers ¤è¤ê¤â¿¤¤¿ô¤¬¥¢¥¤¥ɥë¤Ǥ¢¤ì¤С¢ - ¿ƥץí¥»¥¹¤ÏͲá¥ץí¥»¥¹¤ò kill ¤·¤ޤ¹¡£

    - -

    Èó¾ï¤˺®¤ó¤Ǥ¤¤륵¥¤¥ȤǤΤߡ¢¤³¤Υѥé¥᡼¥¿¤ò¥Á¥塼¥˥󥰤¹¤ë¤٤­¤Ǥ¹¡£ - ¤³¤Υѥé¥᡼¥¿¤òÂ礭¤¯¤¹¤ë¤Ȥ¤¤¦¤³¤Ȥϡ¢ÂçÄñ¤ξì¹ç¤ϰ­¤¤ȯÁۤǤ¹¡£ - MinSpareServers - °ʲ¼¤ËÀßÄꤷ¤¿¾ì¹硢MinSpareServers - +1 ¤˼«ưĴÀ°¤µ¤ì¤ޤ¹¡£

    - -

    »²¾È

    - -
    -
    top
    -

    MinSpareServers ¥ǥ£¥쥯¥ƥ£¥Ö

    - - - - - - - -
    ÀâÌÀ:¥¢¥¤¥ɥë¤ʻҥµ¡¼¥Хץí¥»¥¹¤κǾ®¸Ŀô
    ¹½ʸ:MinSpareServers number
    ¥ǥե©¥ë¥È:MinSpareServers 5
    ¥³¥ó¥ƥ­¥¹¥È:¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥ë:prefork
    -

    MaxSpareServers ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¥¢¥¤¥ɥë¤Ê»ҥµ¡¼¥Хץí¥»¥¹¤δõ˾ºǾ®¸Ŀô¤òÀßÄꤷ¤ޤ¹¡£ - ¥¢¥¤¥ɥë¥ץí¥»¥¹¤Ȥϡ¢¥ꥯ¥¨¥¹¥Ȥ򰷤äƤ¤¤ʤ¤¥ץí¥»¥¹¤Ǥ¹¡£ - MinSpareServers ¤è¤ê¤⾯¤ʤ¤¿ô¤¬¥¢¥¤¥ɥë¤Ǥ¢¤ì¤С¢ - ¿ƥץí¥»¥¹¤Ϻǹâ¤Ç 1 ÉäˤĤ­ 1 ¸Ĥγä¹ç¤ǿ·¤·¤¤»ҥץí¥»¥¹¤òÀ¸À®¤·¤ޤ¹¡£

    - -

    Èó¾ï¤˺®¤ó¤Ǥ¤¤륵¥¤¥ȤǤΤߡ¢¤³¤Υѥé¥᡼¥¿¤ò¥Á¥塼¥˥󥰤¹¤ë¤٤­¤Ǥ¹¡£ - ¤³¤Υѥé¥᡼¥¿¤òÂ礭¤¯¤¹¤ë¤Ȥ¤¤¦¤³¤Ȥϡ¢ÂçÄñ¤ξì¹ç¤ϰ­¤¤ȯÁۤǤ¹¡£

    - -

    »²¾È

    - -
    -
    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/prefork.html.ja.utf8 b/docs/manual/mod/prefork.html.ja.utf8 new file mode 100644 index 00000000000..ec8d489530a --- /dev/null +++ b/docs/manual/mod/prefork.html.ja.utf8 @@ -0,0 +1,218 @@ + + + + + +prefork - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM prefork

    +
    +

    翻訳済み言語:  de  | + en  | + ja  | + tr 

    +
    + + + +
    説明:スレッドを使わず、先行して fork を行なうウェブサーバを実装 +
    ステータス:MPM
    モジュール識別子:mpm_prefork_module
    ソースファイル:prefork.c
    +

    概要

    + +

    このマルチプロセッシングモジュール (MPM) は、 + Unix 上での Apache 1.3 のデフォルトの挙動と非常によく似た方法で + リクエストを処理する、スレッドを使わず、先行して fork を行なう + ウェブサーバを実装しています。 + スレッドセーフでないライブラリとの互換性をとるために、 + スレッドを避ける必要のあるサイトでは、このモジュールの使用が適切でしょう。 + あるリクエストで発生した問題が他のリクエストに影響しないように、 + 個々のリクエストを単離するのにも、最適な MPM です。

    + +

    この MPM は非常に自律的なので、この MPM の設定ディレクティブを + 調整する必要はほとんどないでしょう。もっとも重要なことは、 + MaxClients + が、予想される同時リクエスト数を十分扱えるぐらいは大きいけれども、 + 全プロセスに十分な物理メモリが確実に行き渡る程度には小さい値にする、 + ということです。

    + +
    + +
    top
    +
    +

    動作方法

    +

    一つのコントロールプロセスが、 + コネクションに対して listen して、しかるべき時に応答する + 子プロセスを起動します。Apache は常に幾つかのスペア + かアイドルなサーバプロセスを維持していて、それらは入ってきた + リクエストに応答できるように待機しています。 + このようにしてクライアントは、リクエストが応答される前に、 + 新しい子プロセスが fork されるのを待たなくてもよいように + なっています。

    + +

    親プロセスがリクエストに応答するの子プロセスを + どのように生成するかは、 + StartServers, + MinSpareServers, + MaxSpareServers, + MaxClients + で調整します。一般的に、Apache は非常に自律的なので、 + 大抵のサイトではこれらのディレクティブをデフォルト値から調整する + 必要はないでしょう。 + 同時に 256 を超えるリクエストに応答しないといけないサイトでは、 + MaxClients + を増やす必要があるでしょう。 + 一方、メモリの限られているサイトでは、スラッシング + (メモリとディスク間で何度もスワップ) が起こるのを防ぐために + MaxClients + を減らす必要があるでしょう。プロセス生成のチューニングに関する + 詳しい情報は、性能に関するヒント + にあります。

    + +

    通常 Unix では親プロセスは 80 番ポートにバインドするために + root で起動されますが、子プロセスやスレッドは + もっと低い権限のユーザで Apache によって起動されます。 + User と + Group + ディレクティブは + Apache の子プロセスの権限を設定するのに用いられます。 + 子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、 + 可能な限り必要最小限の権限のみを持っているようにするべきです。

    + +

    MaxRequestsPerChild + は、古いプロセスを停止して新しいプロセスを起動することによって、 + どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。

    +
    +
    top
    +

    MaxSpareServers ディレクティブ

    + + + + + + + +
    説明:アイドルな子サーバプロセスの最大個数
    構文:MaxSpareServers number
    デフォルト:MaxSpareServers 10
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork
    +

    MaxSpareServers ディレクティブは、 + アイドルな子サーバプロセスの希望最大個数を設定します。 + アイドルプロセスとは、リクエストを扱っていないプロセスです。 + MaxSpareServers よりも多い数がアイドルであれば、 + 親プロセスは超過プロセスを kill します。

    + +

    非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。 + このパラメータを大きくするということは、大抵の場合は悪い発想です。 + MinSpareServers + 以下に設定した場合、MinSpareServers + +1 に自動調整されます。

    + +

    参照

    + +
    +
    top
    +

    MinSpareServers ディレクティブ

    + + + + + + + +
    説明:アイドルな子サーバプロセスの最小個数
    構文:MinSpareServers number
    デフォルト:MinSpareServers 5
    コンテキスト:サーバ設定ファイル
    ステータス:MPM
    モジュール:prefork
    +

    MaxSpareServers ディレクティブは、 + アイドルな子サーバプロセスの希望最小個数を設定します。 + アイドルプロセスとは、リクエストを扱っていないプロセスです。 + MinSpareServers よりも少ない数がアイドルであれば、 + 親プロセスは最高で 1 秒につき 1 個の割合で新しい子プロセスを生成します。

    + +

    非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。 + このパラメータを大きくするということは、大抵の場合は悪い発想です。

    + +

    参照

    + +
    +
    +
    +

    翻訳済み言語:  de  | + en  | + ja  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/prefork.html.tr.utf8 b/docs/manual/mod/prefork.html.tr.utf8 new file mode 100644 index 00000000000..86fdb6a7b07 --- /dev/null +++ b/docs/manual/mod/prefork.html.tr.utf8 @@ -0,0 +1,205 @@ + + + + + +prefork - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM prefork

    +
    +

    Mevcut Diller:  de  | + en  | + ja  | + tr 

    +
    + + + +
    Açıklama:Evresiz ön çatallamalı HTTP sunucusu oluşturur
    Durum:MPM
    Modül Betimleyici:mpm_prefork_module
    Kaynak Dosyası:prefork.c
    +

    Özet

    + +

    Bu çok süreçlilik modülü (MPM) Apache 1.3’ün yaptığı gibi evresiz ve + çocuk süreçlerin önceden çatallandığı bir HTTP sunucusu oluşturur. + Evresiz kütüphanelerle uyumluluk için evrelemeden kaçınma ihtiyacında + olan siteler için uygundur. Ayrıca istekleri birbirlerinden yalıtmak + için en iyi MPM’dir, dolayısıyla herhangi bir istekle ilgili bir sorun + diğerlerini etkilemez.

    + +

    Bu MPM kendi kendine her duruma çok iyi uyum sağladığından + yapılandırma yönergeleri ile yapılandırılmaya nadiren ihtiyaç gösterir. + Yönergelerin en önemlisi MaxClients olup, değeri aynı anda almayı umduğunuz istek + sayısını işleyebilecek kadar büyük, fiziksel belleğin tüm süreçlerin + ihtiyaçlarını karşılamasına yetecek kadar da küçük olması gerekir.

    +
    + +
    top
    +
    +

    Nasıl çalışır?

    +

    Bağlantıları dinleyip gerektiğinde onlara hizmet sunan çocuk süreçleri + devreye almak tek bir denetim sürecinin sorumluluğundadır. Apache + daima, gelen isteklere hizmet vermeye hazır bekleyen en fazla sayıda + sunucu sürecini yedekte tutmaya veya boşta bekletmeye + çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk + süreçlerin çatallanmasını beklemek gerekmez.

    + +

    Ana sürecin istekleri sunacak çocuk süreçleri oluşturma işlemini nasıl + gerçekleştireceği StartServers, MinSpareServers, MaxSpareServers ve MaxClients yönergeleri ile düzenlenir. Apache + kendiliğinden her duruma çok iyi uyum sağladığından, genelde, çoğu + sitenin bu yönergelerin öntanımlı değerlerini değiştirmesi gerekmez. + Aynı anda 256’dan fazla isteğe hizmet sunacak sitelerin MaxClients değerini arttırmaları + gerekebilir. Ancak, fiziksel belleği yeterli olmayan sitelerin de + sunucunun belleği diske takaslamasını önlemek için bu değeri + azaltmaları gerekebilir. Süreç oluşturmanın ayarlanması ile ilgili daha + fazla bilgi edinmek için başarım + arttırma ipuçları belgesine bakınız.

    + +

    Unix altında 80. portu dinleyebilmek için ana sürecin + root tarafından çalıştırılmış olması gerekirse de çocuk + süreçler Apache tarafından daha az yetkili bir kullanıcının aidiyetinde + çalıştırılırlar. Apache’nin çocuk süreçlerinin kullanıcı ve gruplarını + ayarlamak için User ve + Group yönergeleri + kullanılır. Çocuk süreçlerin sunacakları içeriği okumaya yetkili + olmaları gerekir, fakat bu yetkinin mümkün olduğunca kısıtlı + tutulmasına çalışılmalıdır.

    + +

    MaxRequestsPerChild + yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı + ne kadar sıklıkla yapacağını denetler.

    +
    +
    top
    +

    MaxSpareServers Yönergesi

    + + + + + + + +
    Açıklama:Boştaki çocuk süreçlerin azami sayısı
    Sözdizimi:MaxSpareServers sayı
    Öntanımlı:MaxSpareServers 10
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork
    +

    MaxSpareServers yönergesi boştaki + çocuk sunucu süreçlerinin azami sayısını belirler. Boştaki süreç, o an + bir isteğe hizmet sunmayan süreçtir. Eğer + MaxSpareServers sayıda süreçten daha fazla boşta + süreç varsa ana süreç bu fazlalıkları öldürecektir.

    + +

    Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli + olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü + bir fikirdir. Eğer bu değeri MinSpareServers değerine eşit veya daha küçük bir değere + ayarlarsanız, Apache bu değeri kendiliğinden MinSpareServers + 1 olarak + değiştirecektir.

    + +

    Ayrıca bakınız:

    + +
    +
    top
    +

    MinSpareServers Yönergesi

    + + + + + + + +
    Açıklama:Boştaki çocuk süreçlerin asgari sayısı
    Sözdizimi:MinSpareServers sayı
    Öntanımlı:MinSpareServers 5
    Bağlam:sunucu geneli
    Durum:MPM
    Modül:prefork
    +

    MinSpareServers yönergesi boştaki + çocuk sunucu süreçlerinin asgari sayısını belirler. Boştaki süreç, o an + bir isteğe hizmet sunmayan süreçtir. Eğer + MinSpareServers sayıda süreçten daha az boşta + süreç varsa ana süreç sayıyı tamamlamak için saniyede en fazla 1 süreç + olmak üzere yeni çocuk süreçler oluşturacaktır.

    + +

    Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli + olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü + bir fikirdir.

    + +

    Ayrıca bakınız:

    + +
    +
    +
    +

    Mevcut Diller:  de  | + en  | + ja  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/prefork.xml b/docs/manual/mod/prefork.xml index 10b9af1a205..febbf5d732f 100644 --- a/docs/manual/mod/prefork.xml +++ b/docs/manual/mod/prefork.xml @@ -4,12 +4,12 @@ + + - + prefork /mod/ .. @@ -9,5 +10,6 @@ de en ja + tr diff --git a/docs/manual/mod/prefork.xml.tr b/docs/manual/mod/prefork.xml.tr new file mode 100644 index 00000000000..44a7fc482c9 --- /dev/null +++ b/docs/manual/mod/prefork.xml.tr @@ -0,0 +1,178 @@ + + + + + + + + + + +prefork +Evresiz ön çatallamalı HTTP sunucusu oluşturur +MPM +prefork.c +mpm_prefork_module + + +

    Bu çok süreçlilik modülü (MPM) Apache 1.3’ün yaptığı gibi evresiz ve + çocuk süreçlerin önceden çatallandığı bir HTTP sunucusu oluşturur. + Evresiz kütüphanelerle uyumluluk için evrelemeden kaçınma ihtiyacında + olan siteler için uygundur. Ayrıca istekleri birbirlerinden yalıtmak + için en iyi MPM’dir, dolayısıyla herhangi bir istekle ilgili bir sorun + diğerlerini etkilemez.

    + +

    Bu MPM kendi kendine her duruma çok iyi uyum sağladığından + yapılandırma yönergeleri ile yapılandırılmaya nadiren ihtiyaç gösterir. + Yönergelerin en önemlisi MaxClients olup, değeri aynı anda almayı umduğunuz istek + sayısını işleyebilecek kadar büyük, fiziksel belleğin tüm süreçlerin + ihtiyaçlarını karşılamasına yetecek kadar da küçük olması gerekir.

    +
    + +Apache’nin kullandığı adres ve portların +ayarlanması + +
    Nasıl çalışır? +

    Bağlantıları dinleyip gerektiğinde onlara hizmet sunan çocuk süreçleri + devreye almak tek bir denetim sürecinin sorumluluğundadır. Apache + daima, gelen isteklere hizmet vermeye hazır bekleyen en fazla sayıda + sunucu sürecini yedekte tutmaya veya boşta bekletmeye + çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk + süreçlerin çatallanmasını beklemek gerekmez.

    + +

    Ana sürecin istekleri sunacak çocuk süreçleri oluşturma işlemini nasıl + gerçekleştireceği StartServers, MinSpareServers, MaxSpareServers ve MaxClients yönergeleri ile düzenlenir. Apache + kendiliğinden her duruma çok iyi uyum sağladığından, genelde, çoğu + sitenin bu yönergelerin öntanımlı değerlerini değiştirmesi gerekmez. + Aynı anda 256’dan fazla isteğe hizmet sunacak sitelerin MaxClients değerini arttırmaları + gerekebilir. Ancak, fiziksel belleği yeterli olmayan sitelerin de + sunucunun belleği diske takaslamasını önlemek için bu değeri + azaltmaları gerekebilir. Süreç oluşturmanın ayarlanması ile ilgili daha + fazla bilgi edinmek için başarım + arttırma ipuçları belgesine bakınız.

    + +

    Unix altında 80. portu dinleyebilmek için ana sürecin + root tarafından çalıştırılmış olması gerekirse de çocuk + süreçler Apache tarafından daha az yetkili bir kullanıcının aidiyetinde + çalıştırılırlar. Apache’nin çocuk süreçlerinin kullanıcı ve gruplarını + ayarlamak için User ve + Group yönergeleri + kullanılır. Çocuk süreçlerin sunacakları içeriği okumaya yetkili + olmaları gerekir, fakat bu yetkinin mümkün olduğunca kısıtlı + tutulmasına çalışılmalıdır.

    + +

    MaxRequestsPerChild + yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı + ne kadar sıklıkla yapacağını denetler.

    +
    + +CoreDumpDirectory + +EnableExceptionHook + +PidFile + +Listen + +ListenBacklog + +LockFile + +MaxClients + +MaxMemFree + +MaxRequestsPerChild + +ScoreBoardFile + +ReceiveBufferSize + +SendBufferSize + +ServerLimit + +StartServers + +User + +Group + +AcceptMutex + + + +MaxSpareServers +Boştaki çocuk süreçlerin azami sayısı +MaxSpareServers sayı +MaxSpareServers 10 +server config + + +

    MaxSpareServers yönergesi boştaki + çocuk sunucu süreçlerinin azami sayısını belirler. Boştaki süreç, o an + bir isteğe hizmet sunmayan süreçtir. Eğer + MaxSpareServers sayıda süreçten daha fazla boşta + süreç varsa ana süreç bu fazlalıkları öldürecektir.

    + +

    Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli + olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü + bir fikirdir. Eğer bu değeri MinSpareServers değerine eşit veya daha küçük bir değere + ayarlarsanız, Apache bu değeri kendiliğinden MinSpareServers + 1 olarak + değiştirecektir.

    +
    +MinSpareServers +StartServers +
    + + +MinSpareServers +Boştaki çocuk süreçlerin asgari sayısı +MinSpareServers sayı +MinSpareServers 5 +server config + + +

    MinSpareServers yönergesi boştaki + çocuk sunucu süreçlerinin asgari sayısını belirler. Boştaki süreç, o an + bir isteğe hizmet sunmayan süreçtir. Eğer + MinSpareServers sayıda süreçten daha az boşta + süreç varsa ana süreç sayıyı tamamlamak için saniyede en fazla 1 süreç + olmak üzere yeni çocuk süreçler oluşturacaktır.

    + +

    Bu parametrenin ayarlanması sadece çok meşgul siteler için gerekli + olabilir. Bu parametreye çok büyük bir değerin atanması oldukça kötü + bir fikirdir.

    +
    +MaxSpareServers +StartServers +
    + +
    + diff --git a/docs/manual/mod/quickreference.html b/docs/manual/mod/quickreference.html index c2795e8fcf9..f9f8fb5a11d 100644 --- a/docs/manual/mod/quickreference.html +++ b/docs/manual/mod/quickreference.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: quickreference.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,10 +12,22 @@ Content-Language: es Content-type: text/html; charset=ISO-8859-1 -URI: quickreference.html.ja.euc-jp +URI: quickreference.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: quickreference.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: quickreference.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: quickreference.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 + +URI: quickreference.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/quickreference.html.de b/docs/manual/mod/quickreference.html.de index c7574e196c2..0da08a10259 100644 --- a/docs/manual/mod/quickreference.html.de +++ b/docs/manual/mod/quickreference.html.de @@ -1,42 +1,52 @@ - -Kurzreferenz der Direktiven - Apache HTTP Server +Kurzreferenz der Direktiven - Apache HTTP Server Version 2.2 - - + + + +
    <-
    -

    Kurzreferenz der Direktiven

    +Apache > HTTP-Server > Dokumentation > Version 2.2 > Module
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Kurzreferenz der Direktiven

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - es  | + es  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    Die Kurzreferenz der Direktiven zeigt die Verwendung, Voreinstellung, den Status und den Kontext aller - Apache-Konfigurationsanweisungen. Für weitergehende Informationen + Apache-Konfigurationsanweisungen. Für weitergehende Informationen schauen Sie bitte im Verzeichnis der Direktiven.

    -

    Die erste Spalte enthält den Namen und die Verwendung. +

    Die erste Spalte enthält den Namen und die Verwendung. Die zweite Spalte zeigt die Voreinstellung der Direktive, sofern eine Voreinstellung existiert. Wenn die Voreinstellung zu breit - für die Anzeige ist, werden die ersten Buchstaben angegeben, - gefolgt von einem "+".

    + für die Anzeige ist, wird sie abgeschnitten und mit einem + nachfolgenden "+" versehen.

    Die dritte und vierte Spalte geben den Kontext an, in dem die Direktive erlaubt ist, sowie den Status der Direktive entsprechend @@ -44,103 +54,102 @@

    - - + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  - - - - - -
    sServerkonfiguration
    vVirtual Host
    dVerzeichnis
    h.htaccess
    - - - - - - -
    CCore
    MMPM
    BBasis
    EErweiterung
    Xexperimentell
    + + + +
    sServerkonfiguration
    vVirtual Host
    dVerzeichnis
    h.htaccess
    + + + + +
    CCore
    MMPM
    BBasis
    EErweiterung
    Xexperimentell
    - + - - - + + - - - - - - - + - - - + - - - - - - - - - + - - - - + - - - - - + + - - + + + passwords for authentication - - - - - - - + + + - - - - - - - - + + + + + + + + @@ -199,28 +211,35 @@ authenticating the user if this one fails modules - + - - - - - + + + - - + - - - + + - - + + + + + @@ -232,16 +251,17 @@ cached by proxy servers stored - + - - - + + + + - + @@ -262,15 +282,15 @@ HTTP-Response-Headern - - - - + + + + - - - +param1=value1[,param2=value2] + + + - - - + + + + + - - - - - + + - + + - - +zurückgibt @@ -322,41 +347,48 @@ by MIME type request - + - - - - - - - + + + + + - - - - + + + - - + - + + @@ -365,112 +397,115 @@ werden that are not explicitly mapped - - + - - - - + + - - - - + + - - - + - - - - - + + + - - - - + + - - - - + + - - + - - - - - - - + - - + - - - + - - - + + - - + - + + - + - + - - - - - - - + @@ -478,34 +513,34 @@ files meta information - - + - - - - - - + + + - - + - + + @@ -514,66 +549,87 @@ response proxied - - + + - - - + + + - - - - - - + - - - + + + + + + - + - + - - - - - - - - + + + - @@ -589,19 +645,19 @@ engine + PatternSubstitution [flags] - - - - + + - - - - - - + - - - + - - - - + + + + @@ -675,43 +738,57 @@ Client Auth - - - - + + + + + + - - + - - + - - - - + + - + + - - + - + - - - + + + - - + + + + - - - + - + - - + - - - - - - +
    AcceptMutex Default|Methode Default sM
    Vom Apache verwendete Methode zur Serialisierung mehrerer +
    AcceptFilter protocol accept_filtersC
    Configures optimizations for a Protocol's Listener Sockets
    AcceptMutex Default|Methode Default sM
    Vom Apache verwendete Methode zur Serialisierung mehrerer Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.
    AcceptPathInfo On|Off|Default Default svdhC
    Ressourcen lassen angehängte Pfadangaben zu
    AccessFileName Dateiname [Dateiname] ... .htaccess svC
    Name der dezentralen Konfigurationsdateien
    Action Aktionsart CGI-Skript [virtual]svdhB
    Aktiviert ein CGI-Skript für einen bestimmten Handler oder +
    AcceptPathInfo On|Off|Default Default svdhC
    Ressourcen lassen angehängte Pfadangaben zu
    AccessFileName Dateiname [Dateiname] ... .htaccess svC
    Name der dezentralen Konfigurationsdateien
    Action Aktionsart CGI-Skript [virtual]svdhB
    Aktiviert ein CGI-Skript für einen bestimmten Handler oder Content-Type
    AddAlt string file [file] ...svdhB
    Alternate text to display for a file, instead of an +
    AddAlt string file [file] ...svdhB
    Alternate text to display for a file, instead of an icon selected by filename
    AddAltByEncoding string MIME-encoding -[MIME-encoding] ...svdhB
    Alternate text to display for a file instead of an icon +
    AddAltByEncoding string MIME-encoding +[MIME-encoding] ...svdhB
    Alternate text to display for a file instead of an icon selected by MIME-encoding
    AddAltByType string MIME-type -[MIME-type] ...svdhB
    Alternate text to display for a file, instead of an +
    AddAltByType string MIME-type +[MIME-type] ...svdhB
    Alternate text to display for a file, instead of an icon selected by MIME content-type
    AddCharset charset extension -[extension] ...svdhB
    Maps the given filename extensions to the specified content +
    AddCharset charset extension +[extension] ...svdhB
    Maps the given filename extensions to the specified content charset
    AddDefaultCharset On|Off|Zeichenkodierung Off svdhC
    Standard-Charset-Parameter, der bei Antworten vom Content-Type - text/plain oder text/html hinzugefügt wird +
    AddDefaultCharset On|Off|Zeichenkodierung Off svdhC
    Standard-Charset-Parameter, der bei Antworten vom Content-Type + text/plain oder text/html hinzugefügt wird
    AddDescription string file [file] ...svdhB
    Description to display for a file
    AddEncoding MIME-enc extension -[extension] ...svdhB
    Maps the given filename extensions to the specified encoding +
    AddDescription string file [file] ...svdhB
    Description to display for a file
    AddEncoding MIME-enc extension +[extension] ...svdhB
    Maps the given filename extensions to the specified encoding type
    AddHandler handler-name extension -[extension] ...svdhB
    Maps the filename extensions to the specified +
    AddHandler handler-name extension +[extension] ...svdhB
    Maps the filename extensions to the specified handler
    AddIcon icon name [name] -...svdhB
    Icon to display for a file selected by name
    AddIconByEncoding icon MIME-encoding -[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME +
    AddIcon icon name [name] +...svdhB
    Icon to display for a file selected by name
    AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME content-encoding
    AddIconByType icon MIME-type -[MIME-type] ...svdhB
    Icon to display next to files selected by MIME +
    AddIconByType icon MIME-type +[MIME-type] ...svdhB
    Icon to display next to files selected by MIME content-type
    AddInputFilter filter[;filter...] -extension [extension] ...svdhB
    Maps filename extensions to the filters that will process +
    AddInputFilter filter[;filter...] +extension [extension] ...svdhB
    Maps filename extensions to the filters that will process client requests
    AddLanguage MIME-lang extension -[extension] ...svdhB
    Maps the given filename extension to the specified content +
    AddLanguage MIME-lang extension +[extension] ...svdhB
    Maps the given filename extension to the specified content language
    AddModuleInfo module-name stringsvE
    Adds additional information to the module +
    AddModuleInfo module-name stringsvE
    Adds additional information to the module information displayed by the server-info handler
    AddOutputFilter filter[;filter...] -extension [extension] ...svdhB
    Maps filename extensions to the filters that will process +
    AddOutputFilter filter[;filter...] +extension [extension] ...svdhB
    Maps filename extensions to the filters that will process responses from the server
    AddOutputFilterByType Filter[;Filter...] -MIME-Type [MIME-Type] ...svdhC
    einen Ausgabefilter einem bestimmten MIME-Type +
    AddOutputFilterByType Filter[;Filter...] +MIME-Type [MIME-Type] ...svdhC
    einen Ausgabefilter einem bestimmten MIME-Type zuordnen
    AddType MIME-type extension -[extension] ...svdhB
    Maps the given filename extensions onto the specified content +
    AddType MIME-type extension +[extension] ...svdhB
    Maps the given filename extensions onto the specified content type
    Alias URL-path -file-path|directory-pathsvB
    Maps URLs to filesystem locations
    AliasMatch regex -file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular +
    Alias URL-path +file-path|directory-pathsvB
    Maps URLs to filesystem locations
    AliasMatch regex +file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular expressions
    Allow from all|host|env=env-variable -[host|env=env-variable] ...dhB
    Controls which hosts can access an area of the +
    Allow from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts can access an area of the server
    AllowCONNECT port [port] ... 443 563 svE
    Ports that are allowed to CONNECT through the +
    AllowCONNECT port [port] ... 443 563 svE
    Ports that are allowed to CONNECT through the proxy
    AllowEncodedSlashes On|Off Off svC
    Legt fest, ob kodierte Pfadtrennzeichen in URLs durchgereicht -werden dürfen
    AllowOverride All|None|Direktiven-Typ -[Direktiven-Typ] ... All dC
    Direktiven-Typen, die in .htaccess-Dateien +
    AllowEncodedSlashes On|Off Off svC
    Legt fest, ob kodierte Pfadtrennzeichen in URLs durchgereicht +werden dürfen
    AllowOverride All|None|Direktiven-Typ +[Direktiven-Typ] ... All dC
    Direktiven-Typen, die in .htaccess-Dateien erlaubt sind.
    Anonymous user [user] ...dhE
    Specifies userIDs that are allowed access without +
    Anonymous user [user] ...dhE
    Specifies userIDs that are allowed access without password verification
    Anonymous_LogEmail On|Off On dhE
    Sets whether the password entered will be logged in the +
    Anonymous_LogEmail On|Off On dhE
    Sets whether the password entered will be logged in the error log
    Anonymous_MustGiveEmail On|Off On dhE
    Specifies whether blank passwords are allowed
    Anonymous_NoUserID On|Off Off dhE
    Sets whether the userID field may be empty
    Anonymous_VerifyEmail On|Off Off dhE
    Sets whether to check the password field for a correctly +
    Anonymous_MustGiveEmail On|Off On dhE
    Specifies whether blank passwords are allowed
    Anonymous_NoUserID On|Off Off dhE
    Sets whether the userID field may be empty
    Anonymous_VerifyEmail On|Off Off dhE
    Sets whether to check the password field for a correctly formatted email address
    AssignUserID user-id group-idvM
    Tie a virtual host to a user and group ID
    AuthBasicAuthoritative On|Off On dhB
    Sets whether authorization and authentication are passed to lower level modules
    AuthBasicProvider On|Off|provider-name -[provider-name] ... On dhB
    Sets the authentication provider(s) for this location
    AuthBasicProvider provider-name +[provider-name] ... file dhB
    Sets the authentication provider(s) for this location
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to @@ -149,37 +158,40 @@ store passwords
    AuthDefaultAuthoritative On|Off On dhB
    Sets whether authentication is passed to lower level modules
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
    Selects the algorithm used to calculate the challenge and +
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhE
    Selects the algorithm used to calculate the challenge and response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhX
    URIs that are in the same protection space for digest +
    AuthDigestDomain URI [URI] ...dhE
    URIs that are in the same protection space for digest authentication
    AuthDigestNcCheck On|Off Off sX
    Enables or disables checking of the nonce-count sent by the +
    AuthDigestNcCheck On|Off Off sE
    Enables or disables checking of the nonce-count sent by the server
    AuthDigestNonceFormat formatdhX
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhX
    How long the server nonce is valid
    AuthDigestProvider On|Off|provider-name -[provider-name] ... On dhX
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhX
    Determines the quality-of-protection to use in digest +
    AuthDigestNonceFormat formatdhE
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhE
    How long the server nonce is valid
    AuthDigestProvider provider-name +[provider-name] ... file dhE
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhE
    Determines the quality-of-protection to use in digest authentication
    AuthDigestShmemSize size 1000 sX
    The amount of shared memory to allocate for keeping track +
    AuthDigestShmemSize size 1000 sE
    The amount of shared memory to allocate for keeping track of clients
    AuthGroupFile file-pathdhB
    Sets the name of a text file containing the list of user groups for authorization
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attributedhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for +
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for group membership
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-BereichdhC
    Autorisierungsbereich zur Verwendung in der HTTP-Authentisierung
    <AuthnProviderAlias baseProvider Alias> -... </AuthnProviderAlias>svE
    Enclose a group of directives that represent an +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an extension of a base authentication provider and referenced by the specified alias
    AuthType Basic|DigestdhC
    Art der Authentisierung
    AuthzUserAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level modules
    BrowserMatch regex [!]env-variable[=value] -[[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on HTTP User-Agent +
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    Add a member to a load balancing group
    BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on HTTP User-Agent
    BrowserMatchNoCase regex [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on User-Agent without +
    BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on User-Agent without respect to case
    BufferedLogs On|Off Off sB
    Buffer log entries in memory before writing to disk
    CacheDefaultExpire seconds 3600 (one hour) svE
    The default duration to cache a document when no expiry date is specified.
    CacheDirLength length 2 svE
    The number of characters in subdirectory names
    CacheDirLevels levels 3 svE
    The number of levels of subdirectories in the +
    BufferedLogs On|Off Off sB
    Buffer log entries in memory before writing to disk
    CacheDefaultExpire seconds 3600 (one hour) svE
    The default duration to cache a document when no expiry date is specified.
    CacheDirLength length 2 svE
    The number of characters in subdirectory names
    CacheDirLevels levels 3 svE
    The number of levels of subdirectories in the cache.
    CacheDisable url-stringsvE
    Disable caching of specified URLs
    CacheEnable cache_type url-stringsvE
    Enable caching of specified URLs using a specified storage +
    CacheDisable url-stringsvE
    Disable caching of specified URLs
    CacheEnable cache_type url-stringsvE
    Enable caching of specified URLs using a specified storage manager
    CacheFile file-path [file-path] ...sX
    Cache a list of file handles at startup time
    CacheIgnoreCacheControl On|Off Off svE
    Ignore request to not serve cached content to client
    CacheIgnoreHeaders header-string [header-string] ... None svE
    Do not store the given HTTP header(s) in the cache. +
    CacheFile file-path [file-path] ...sX
    Cache a list of file handles at startup time
    CacheIgnoreCacheControl On|Off Off svE
    Ignore request to not serve cached content to client
    CacheIgnoreHeaders header-string [header-string] ... None svE
    Do not store the given HTTP header(s) in the cache.
    CacheIgnoreNoLastMod On|Off Off svE
    Ignore the fact that a response has no Last Modified +
    CacheIgnoreNoLastMod On|Off Off svE
    Ignore the fact that a response has no Last Modified header.
    CacheLastModifiedFactor float 0.1 svE
    The factor used to compute an expiry date based on the +
    CacheIgnoreQueryString On|Off Off svE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None svE
    Ignore defined session identifiers encoded in the URL when caching +
    CacheLastModifiedFactor float 0.1 svE
    The factor used to compute an expiry date based on the LastModified date.
    CacheLock on|off off svE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 svE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +svE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (one day) svE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 svE
    The maximum size (in bytes) of a document to be placed in the cache
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CGIMapExtension CGI-Pfad .EndungdhC
    Technik zur Bestimmung des Interpreters für +
    CGIDScriptTimeout time[s|ms]svdhB
    The length of time to wait for more output from the +CGI program
    CGIMapExtension CGI-Pfad .EndungdhC
    Technik zur Bestimmung des Interpreters für CGI-Skripte
    CharsetDefault charsetsvdhX
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhX
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhX
    Source charset of files
    CharsetDefault charsetsvdhE
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhE
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhE
    Source charset of files
    CheckCaseOnly on|off Off svdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off svdhE
    Enables the spelling module
    ChildPerUserID user-id group-id -num-childrensM
    Specify user ID and group ID for a number of child -processes
    ChrootDir /path/to/directorysM
    Directory for apache to run chroot(8) after startup.
    ContentDigest On|Off Off svdhC
    Aktiviert die Generierung von Content-MD5 HTTP-Response-Headern
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    DavLockDB file-pathsvE
    Location of the DAV lock database
    DavMinTimeout seconds 0 svdE
    Minimum amount of time the server holds a lock on a DAV resource
    DBDExptime time-in-secondssvX
    Keepalive time for idle connections
    DBDKeep numbersvX
    Maximum sustainednumber of connections
    DBDMax numbersvX
    Maximum number of connections
    DBDMin numbersvX
    Minimum number of connections
    DBDExptime time-in-seconds 300 svE
    Keepalive time for idle connections
    DBDKeep number 2 svE
    Maximum sustained number of connections
    DBDMax number 10 svE
    Maximum number of connections
    DBDMin number 1 svE
    Minimum number of connections
    DBDParams -param1=value1[,param2=value2]svX
    Parameters for database connection
    DBDPersist 0|1svX
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvX
    Define an SQL prepared statement
    DBDriver namesvX
    Specify an SQL driver
    svE
    Parameters for database connection
    DBDPersist On|OffsvE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvE
    Define an SQL prepared statement
    DBDriver namesvE
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    Icon to display for files when no specific icon is configured
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified @@ -280,35 +300,40 @@ nicht auf andere Weise ermitteln kann.
    DeflateBufferSize value 8096 svE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valuesvE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenamesvE
    Places the compression ratio in a note for logging
    DeflateMemLevel value 9 svE
    How much memory should be used by zlib for compression
    DeflateWindowSize value 15 svE
    Zlib compression window size
    Deny from all|host|env=env-variable -[host|env=env-variable] ...dhB
    Controls which hosts are denied access to the +
    DeflateInflateLimitRequestBodyvaluesvdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valuesvdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valuesvdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 svE
    How much memory should be used by zlib for compression
    DeflateWindowSize value 15 svE
    Zlib compression window size
    Deny from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts are denied access to the server
    <Directory Verzeichnispfad> -... </Directory>svC
    Umschließt eine Gruppe von Direktiven, die nur auf +
    <Directory Verzeichnispfad> +... </Directory>svC
    Umschließt eine Gruppe von Direktiven, die nur auf das genannte Verzeichnis des Dateisystems und Unterverzeichnisse angewendet werden
    DirectoryIndex - local-url [local-url] ... index.html svdhB
    List of resources to look for when the client requests +
    DirectoryIndex + local-url [local-url] ... index.html svdhB
    List of resources to look for when the client requests a directory
    <DirectoryMatch regex> -... </DirectoryMatch>svC
    Umschließt eine Gruppe von Direktiven, die auf +
    <DirectoryMatch regex> +... </DirectoryMatch>svC
    Umschließt eine Gruppe von Direktiven, die auf Verzeichnisse des Dateisystems und ihre Unterverzeichnisse abgebildet - werden, welche auf einen regulären Ausdruck passen
    DirectorySlash On|Off On svdhB
    Toggle trailing slash redirects on or off
    DocumentRoot Verzeichnis /usr/local/apache/h +svC
    Verzeichnis, welches den Haupt-Dokumentenbaum bildet, der im + werden, welche auf einen regulären Ausdruck passen
    DirectorySlash On|Off On svdhB
    Toggle trailing slash redirects on or off
    DocumentRoot Verzeichnis /usr/local/apache/h +svC
    Verzeichnis, welches den Haupt-Dokumentenbaum bildet, der im Web sichtbar ist.
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Aktiviert einen Hook, der nach einem Absturz noch Ausnahmefehler behandeln lassen kann
    EnableMMAP On|Off On svdhC
    Verwende Memory-Mapping, um Dateien während der +
    EnableMMAP On|Off On svdhC
    Verwende Memory-Mapping, um Dateien während der Auslieferung zu lesen
    EnableSendfile On|Off On svdhC
    Verwende die sendfile-Unterstützung des Kernels, um +
    EnableSendfile On|Off On svdhC
    Verwende die sendfile-Unterstützung des Kernels, um Dateien an den Client auszuliefern
    ErrorDocument Fehlercode DokumentsvdhC
    Das, was der Server im Fehlerfall an den Client -zurückgibt
    ErrorLog Dateiname|syslog[:facility] logs/error_log (Uni +svC
    Ablageort, an dem der Server Fehler protokolliert
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module API
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FileETag Komponente ... INode MTime Size svdhC
    Dateiattribute, die zur Erstellung des HTTP-Response-Headers +
    FallbackResource disabled | local-urlsvdhB
    Define a default URL for requests that don't map to a file
    FileETag Komponente ... INode MTime Size svdhC
    Dateiattribute, die zur Erstellung des HTTP-Response-Headers ETag verwendet werden
    <Files Dateiname> ... </Files>svdhC
    Enthält Direktiven, die sich nur auf passende Dateinamen +
    <Files Dateiname> ... </Files>svdhC
    Enthält Direktiven, die sich nur auf passende Dateinamen beziehen
    <FilesMatch regex> ... </FilesMatch>svdhC
    Enthält Direktiven, die für Dateinamen gelten, die - auf einen regulären Ausdruck passen
    FilterChain [+=-@!]filter-name ...svdhX
    Configure the filter chain
    FilterDeclare filter-name [type]svdhX
    Declare a smart filter
    FilterProtocol filter-name [provider-name] - proto-flagssvdhX
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name - [req|resp|env]=dispatch matchsvdhX
    Register a content filter
    FilterTrace filter-name levelsvdX
    Get debug/diagnostic information from +
    <FilesMatch regex> ... </FilesMatch>svdhC
    Enthält Direktiven, die für Dateinamen gelten, die + auf einen regulären Ausdruck passen
    FilterChain [+=-@!]filter-name ...svdhB
    Configure the filter chain
    FilterDeclare filter-name [type]svdhB
    Declare a smart filter
    FilterProtocol filter-name [provider-name] + proto-flagssvdhB
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name + [req|resp|env]=dispatch matchsvdhB
    Register a content filter
    FilterTrace filter-name levelsvdB
    Get debug/diagnostic information from mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not +
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not found
    ForceType MIME-Type|NonedhC
    Erzwingt die Auslieferung aller passendenden Dateien mit dem +
    ForceType MIME-Type|NonedhC
    Erzwingt die Auslieferung aller passendenden Dateien mit dem angegebenen MIME-Content-Type
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    Group Unix-Gruppe #-1 sM
    Benutzergruppe, unter welcher der Server Anfragen +
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    GprofDir /tmp/gprof/|/tmp/gprof/%svC
    Directory to write gmon.out profiling data to.
    GracefulShutDownTimeout secondssM
    Specify a timeout after which a gracefully shutdown server +will exit.
    Group Unix-Gruppe #-1 sM
    Benutzergruppe, unter welcher der Server Anfragen beantwortet
    Header [condition] set|append|add|unset|echo -header [value] [early|env=[!]variable]svdhE
    Configure HTTP response headers
    HeaderName filenamesvdhB
    Name of the file that will be inserted at the top +
    Header [condition] set|append|merge|add|unset|echo|edit +header [value] [replacement] +[early|env=[!]variable]svdhE
    Configure HTTP response headers
    HeaderName filenamesvdhB
    Name of the file that will be inserted at the top of the index listing
    HostnameLookups On|Off|Double Off svdC
    Aktiviert DNS-Lookups auf Client-IP-Adressen
    HostnameLookups On|Off|Double Off svdC
    Aktiviert DNS-Lookups auf Client-IP-Adressen
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +svC
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote user
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]Parametername> ... - </IfDefine>svdhC
    Schließt Direktiven ein, die nur ausgeführt werden, + </IfDefine>svdhC
    Schließt Direktiven ein, die nur ausgeführt werden, wenn eine Testbedingung beim Start wahr ist
    <IfModule [!]Modulname|Modulbezeichner> - ... </IfModule>svdhC
    Schließt Direktiven ein, die abhängig vom -Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt + ... </IfModule>svdhC
    Schließt Direktiven ein, die abhängig vom +Vorhandensein oder Fehlen eines speziellen Moduls ausgeführt werden
    <IfVersion [[!]operator] version> ... </IfVersion>svdhE
    contains version dependent configuration
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling an imagemap
    Include Dateiname|VerzeichnissvdC
    Fügt andere Konfigurationsdateien innerhalb der +
    Include Dateiname|VerzeichnissvdC
    Fügt andere Konfigurationsdateien innerhalb der Server-Konfigurationsdatei ein
    IndexIgnore file [file] ...svdhB
    Adds to the list of files to hide when listing +
    IndexHeadInsert "markup ..."svdhB
    Inserts text in the HEAD section of an index page.
    IndexIgnore file [file] ... "." svdhB
    Adds to the list of files to hide when listing a directory
    IndexOptions [+|-]option [[+|-]option] -...svdhB
    Various configuration settings for directory +
    IndexOptions [+|-]option [[+|-]option] +...svdhB
    Various configuration settings for directory indexing
    IndexOrderDefault Ascending|Descending -Name|Date|Size|Description Ascending Name svdhB
    Sets the default ordering of the directory index
    IndexStyleSheet url-pathsvdhB
    Adds a CSS stylesheet to the directory index
    ISAPIAppendLogToErrors on|off off svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +
    IndexOrderDefault Ascending|Descending +Name|Date|Size|Description Ascending Name svdhB
    Sets the default ordering of the directory index
    IndexStyleSheet url-pathsvdhB
    Adds a CSS stylesheet to the directory index
    ISAPIAppendLogToErrors on|off off svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from ISAPI extensions to the error log
    ISAPIAppendLogToQuery on|off on svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +
    ISAPIAppendLogToQuery on|off on svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from ISAPI extensions to the query field
    ISAPICacheFile file-path [file-path] -...svB
    ISAPI .dll files to be loaded at startup
    ISAPIFakeAsync on|off off svdhB
    Fake asynchronous support for ISAPI callbacks
    ISAPILogNotSupported on|off off svdhB
    Log unsupported feature requests from ISAPI +
    ISAPICacheFile file-path [file-path] +...svB
    ISAPI .dll files to be loaded at startup
    ISAPIFakeAsync on|off off svdhB
    Fake asynchronous support for ISAPI callbacks
    ISAPILogNotSupported on|off off svdhB
    Log unsupported feature requests from ISAPI extensions
    ISAPIReadAheadBuffer size 49152 svdhB
    Size of the Read Ahead Buffer sent to ISAPI +
    ISAPIReadAheadBuffer size 49152 svdhB
    Size of the Read Ahead Buffer sent to ISAPI extensions
    KeepAlive On|Off On svC
    Aktiviert persistente HTTP-Verbindungen
    KeepAliveTimeout Sekunden 5 svC
    Zeitspanne, die der Server während persistenter Verbindungen +
    KeepAlive On|Off On svC
    Aktiviert persistente HTTP-Verbindungen
    KeepAliveTimeout Sekunden 5 svC
    Zeitspanne, die der Server während persistenter Verbindungen auf nachfolgende Anfragen wartet
    LanguagePriority MIME-lang [MIME-lang] -...svdhB
    The precendence of language variants for cases where +
    LanguagePriority MIME-lang [MIME-lang] +...svdhB
    The precendence of language variants for cases where the client does not express a preference
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare +
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare operations
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain +
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 102400 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per +
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per connection client certificate. Not all LDAP toolkits support per connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted +
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted Certificate Authority or global client certificates
    LDAPTrustedMode typesvdhE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit Methode [Methode] ... > ... - </Limit>svdhC
    Beschränkt die eingeschlossenen Zugriffskontrollen auf +
    LDAPTrustedMode typesvE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit Methode [Methode] ... > ... + </Limit>svdhC
    Beschränkt die eingeschlossenen Zugriffskontrollen auf bestimmte HTTP-Methoden
    <LimitExcept Methode [Methode] ... > ... - </LimitExcept>svdhC
    Beschränkt Zugriffskontrollen auf alle HTTP-Methoden -außer den genannten
    LimitInternalRecursion Zahl [Zahl] 10 svC
    Bestimmt die maximale Anzahl interner Umleitungen und +
    <LimitExcept Methode [Methode] ... > ... + </LimitExcept>svdhC
    Beschränkt Zugriffskontrollen auf alle HTTP-Methoden +außer den genannten
    LimitInternalRecursion Zahl [Zahl] 10 svC
    Bestimmt die maximale Anzahl interner Umleitungen und verschachtelter Unteranfragen
    LimitRequestBody Bytes 0 svdhC
    Begrenzt die Gesamtgröße des vom Client gesendeten +
    LimitRequestBody Bytes 0 svdhC
    Begrenzt die Gesamtgröße des vom Client gesendeten HTTP-Request-Body
    LimitRequestFields Anzahl 100 sC
    Begrenzt die Anzahl der HTTP-Request-Header, die vom Client +
    LimitRequestFields Anzahl 100 sC
    Begrenzt die Anzahl der HTTP-Request-Header, die vom Client entgegengenommen werden
    LimitRequestFieldsize BytessC
    Begrenzt die Länge des vom Client gesendeten +
    LimitRequestFieldsize BytessC
    Begrenzt die Länge des vom Client gesendeten HTTP-Request-Headers
    LimitRequestLine Bytes 8190 sC
    Begrenzt die Länge der vom Client entgegengenommenen +
    LimitRequestLine Bytes 8190 sC
    Begrenzt die Länge der vom Client entgegengenommenen HTTP-Anfragezeile
    LimitXMLRequestBody Bytes 1000000 svdhC
    Begrenzt die Größe eines XML-basierten +
    LimitXMLRequestBody Bytes 1000000 svdhC
    Begrenzt die Größe eines XML-basierten Request-Bodys
    Listen [IP-Addresse:]PortsM
    IP-Adressen und Ports, an denen der Server lauscht
    ListenBacklog backlogsM
    Maximale Länge der Warteschlange schwebender +
    Listen [IP-Addresse:]PortsM
    IP-Adressen und Ports, an denen der Server lauscht
    ListenBacklog backlogsM
    Maximale Länge der Warteschlange schwebender Verbindungen
    LoadFile filename [filename] ...sE
    Link in the named object file or library
    LoadModule module filenamesE
    Links in the object file or library, and adds to the list +
    LoadFile filename [filename] ...sE
    Link in the named object file or library
    LoadModule module filenamesE
    Links in the object file or library, and adds to the list of active modules
    <Location - URL-Pfad|URL> ... </Location>svC
    Wendet die enthaltenen Direktiven nur auf die entsprechenden +
    <Location + URL-Pfad|URL> ... </Location>svC
    Wendet die enthaltenen Direktiven nur auf die entsprechenden URLs an
    <LocationMatch - regex> ... </LocationMatch>svC
    Wendet die enthaltenen Direktiven nur auf URLs an, die auf -reguläre Ausdrücke passen
    LockFile Dateiname logs/accept.lock sM
    Ablageort der Lock-Datei für die Serialisierung von +
    <LocationMatch + regex> ... </LocationMatch>svC
    Wendet die enthaltenen Direktiven nur auf URLs an, die auf +reguläre Ausdrücke passen
    LockFile Dateiname logs/accept.lock sM
    Ablageort der Lock-Datei für die Serialisierung von entgegengenommenen Anfragen
    LogFormat format|nickname -[nickname] "%h %l %u %t \"%r\" +svB
    Describes a format for use in a log file
    LogLevel Level warn svC
    Steuert die Ausführlichkeit des Fehlerprotokolls
    MaxClients AnzahlsM
    Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen +
    LogFormat format|nickname +[nickname] "%h %l %u %t \"%r\" +svB
    Describes a format for use in a log file
    LogLevel Level warn svC
    Steuert die Ausführlichkeit des Fehlerprotokolls
    MaxClients AnzahlsM
    Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen gestartet wird
    MaxKeepAliveRequests Anzahl 100 svC
    Anzahl der Anfragen, die bei einer persistenten Verbindung -zulässig sind
    MaxMemFree KBytes 0 sM
    Maximale Menge des Arbeitsspeichers, den die +
    MaxKeepAliveRequests Anzahl 100 svC
    Anzahl der Anfragen, die bei einer persistenten Verbindung +zulässig sind
    MaxMemFree KBytes 0 sM
    Maximale Menge des Arbeitsspeichers, den die Haupt-Zuteilungsroutine verwalten darf, ohne free() aufzurufen
    MaxRequestsPerChild number 10000 sM
    Obergrenze für die Anzahl von Anfragen, die ein einzelner - Kindprozess während seines Lebens bearbeitet
    MaxRanges default | unlimited | none | number-of-ranges 200 svdC
    Number of ranges allowed before returning the complete +resource
    MaxRequestsPerChild number 10000 sM
    Obergrenze für die Anzahl von Anfragen, die ein einzelner + Kindprozess während seines Lebens bearbeitet
    MaxRequestsPerThread Anzahl 0 sM
    Die maximale Anzahl von Anfragen, die ein einzelner Thread - während seiner Lebensdauer bedient.
    MaxSpareServers Anzahl 10 sM
    Maximale Anzahl der unbeschäftigten Kindprozesse des + während seiner Lebensdauer bedient.
    MaxSpareServers Anzahl 10 sM
    Maximale Anzahl der unbeschäftigten Kindprozesse des Servers
    MaxSpareThreads AnzahlsM
    Maximale Anzahl unbeschäftigter Threads
    MaxSpareThreads AnzahlsM
    Maximale Anzahl unbeschäftigter Threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MaxThreadsPerChild number 64 sM
    Maximum number of threads per child process
    MCacheMaxObjectCount value 1009 sE
    The maximum number of objects allowed to be placed in the +
    MCacheMaxObjectCount value 1009 sE
    The maximum number of objects allowed to be placed in the cache
    MCacheMaxObjectSize bytes 10000 sE
    The maximum size (in bytes) of a document allowed in the +
    MCacheMaxObjectSize bytes 10000 sE
    The maximum size (in bytes) of a document allowed in the cache
    MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sE
    Maximum amount of a streamed response to buffer in memory +
    MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sE
    Maximum amount of a streamed response to buffer in memory before declaring the response uncacheable
    MCacheMinObjectSize bytes 0 sE
    The minimum size (in bytes) of a document to be allowed in the +
    MCacheMinObjectSize bytes 1 sE
    The minimum size (in bytes) of a document to be allowed in the cache
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    The algorithm used to select documents for removal from the +
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    The algorithm used to select documents for removal from the cache
    MCacheSize KBytes 100 sE
    The maximum amount of memory used by the cache in +
    MCacheSize KBytes 100 sE
    The maximum amount of memory used by the cache in KBytes
    MergeTrailers [on|off] off svC
    Determines whether trailers are merged into headers
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information files
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents using the specified magic file
    MinSpareServers Anzahl 5 sM
    Minimale Anzahl der unbeschäftigten Kindprozesse des +
    MinSpareServers Anzahl 5 sM
    Minimale Anzahl der unbeschäftigten Kindprozesse des Servers
    MinSpareThreads AnzahlsM
    Minimale Anzahl unbeschäftigter Threads, die zur - Bedienung von Anfragespitzen zur Verfügung stehen
    MinSpareThreads AnzahlsM
    Minimale Anzahl unbeschäftigter Threads, die zur + Bedienung von Anfragespitzen zur Verfügung stehen
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    Tells mod_mime to treat path_info components as part of the filename
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers [Handlers|Filters] NegotiatedOnly svdhB
    The types of files that will be included when searching for a matching file with MultiViews
    NameVirtualHost Adresse[:Port]sC
    Bestimmt eine IP-Adresse für den Betrieb namensbasierter +
    NameVirtualHost Adresse[:Port]sC
    Bestimmt eine IP-Adresse für den Betrieb namensbasierter virtueller Hosts
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to directly
    NumServers number 2 sM
    Total number of children alive at the same time
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options - [+|-]Option [[+|-]Option] ... All svdhC
    Definiert, welche Eigenschaften oder Funktionen in einem -bestimmten Verzeichnis verfügbar sind
    Order ordering Deny,Allow dhB
    Controls the default access state and the order in which +
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options + [+|-]Option [[+|-]Option] ... All svdhC
    Definiert, welche Eigenschaften oder Funktionen in einem +bestimmten Verzeichnis verfügbar sind
    Order ordering Deny,Allow dhB
    Controls the default access state and the order in which Allow and Deny are evaluated.
    PassEnv env-variable [env-variable] -...svdhB
    Passes environment variables from the shell
    PidFile Dateiname logs/httpd.pid sM
    Datei, in welcher der Server die Prozess-ID des Daemons +
    PassEnv env-variable [env-variable] +...svdhB
    Passes environment variables from the shell
    PidFile Dateiname logs/httpd.pid sM
    Datei, in welcher der Server die Prozess-ID des Daemons ablegt
    ProtocolEcho On|OffsvX
    Turn the echo server on or off
    Protocol protocolsvC
    Protocol for a listening socket
    ProtocolEcho On|Off Off svX
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a response
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched +
    ProxyFtpDirCharset character set ISO-8859-1 svdE
    Define the character set for proxied FTP listings
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched proxied resources
    ProxyMaxForwards number 10 svE
    Maximium number of proxies that a request can be forwarded +
    ProxyMaxForwards number -1 svE
    Maximium number of proxies that a request can be forwarded through
    ProxyPass [path] !|url [key=value key=value ...]]svdE
    Maps remote servers into the local server URL-space
    ProxyPassReverse [path] urlsvdE
    Adjusts the URL in HTTP response headers sent from a reverse +
    ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]svdE
    Maps remote servers into the local server URL-space
    ProxyPassInterpolateEnv On|Off Off svdE
    Enable Environment Variable interpolation in Reverse Proxy configurations
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]svdE
    Maps remote servers into the local server URL-space using regular expressions
    ProxyPassReverse [path] url +[interpolate]svdE
    Adjusts the URL in HTTP response headers sent from a reverse proxied server
    ProxyPassReverseCookieDomain internal-domain public-domainsvdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]svdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- proxied server
    ProxyPassReverseCookiePath internal-path public-pathsvdE
    Adjusts the Path string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]svdE
    Adjusts the Path string in Set-Cookie headers from a reverse- proxied server
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy +
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy request
    ProxyReceiveBufferSize bytes 0 svE
    Network buffer size for proxied HTTP and FTP +
    ProxyReceiveBufferSize bytes 0 svE
    Network buffer size for proxied HTTP and FTP connections
    ProxyRemote match remote-serversvE
    Remote proxy used to handle certain requests
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular +
    ProxyRemote match remote-serversvE
    Remote proxy used to handle certain requests
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular expressions
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxyTimeout seconds 300 svE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response +
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxySCGIInternalRedirect On|Off On svdE
    Enable or disable internal redirect responses from the +backend
    ProxySCGISendfile On|Off|Headername Off svdE
    Enable evaluation of X-Sendfile pseudo response +header
    ProxySet url key=value [key=value ...]dE
    Set various Proxy balancer or member parameters
    ProxyStatus Off|On|Full Off svE
    Show Proxy LoadBalancer status in mod_status
    ProxyTimeout secondssvE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response header for proxied requests
    ReadmeName filenamesvdhB
    Name of the file that will be inserted at the end +
    ReadmeName filenamesvdhB
    Name of the file that will be inserted at the end of the index listing
    ReceiveBufferSize bytes 0 sM
    TCP receive buffer size
    Redirect [status] URL-path URLsvdhB
    Sends an external redirect asking the client to fetch a different URL
    RedirectMatch [status] regex -URLsvdhB
    Sends an external redirect based on a regular expression match +URLsvdhB
    Sends an external redirect based on a regular expression match of the current URL
    RedirectPermanent URL-path URLsvdhB
    Sends an external permanent redirect asking the client to fetch a different URL
    RedirectTemp URL-path URLsvdhB
    Sends an external temporary redirect asking the client to fetch a different URL
    RemoveCharset extension [extension] -...vdhB
    Removes any character set associations for a set of file +
    RegisterHttpMethod method [method [...]]sC
    Register non-standard HTTP methods
    RemoveCharset extension [extension] +...vdhB
    Removes any character set associations for a set of file extensions
    RemoveEncoding extension [extension] -...vdhB
    Removes any content encoding associations for a set of file +
    RemoveEncoding extension [extension] +...vdhB
    Removes any content encoding associations for a set of file extensions
    RemoveHandler extension [extension] -...vdhB
    Removes any handler associations for a set of file +
    RemoveHandler extension [extension] +...vdhB
    Removes any handler associations for a set of file extensions
    RemoveInputFilter extension [extension] -...vdhB
    Removes any input filter associations for a set of file +
    RemoveInputFilter extension [extension] +...vdhB
    Removes any input filter associations for a set of file extensions
    RemoveLanguage extension [extension] -...vdhB
    Removes any language associations for a set of file +
    RemoveLanguage extension [extension] +...vdhB
    Removes any language associations for a set of file extensions
    RemoveOutputFilter extension [extension] -...vdhB
    Removes any output filter associations for a set of file +
    RemoveOutputFilter extension [extension] +...vdhB
    Removes any output filter associations for a set of file extensions
    RemoveType extension [extension] -...vdhB
    Removes any content type associations for a set of file +
    RemoveType extension [extension] +...vdhB
    Removes any content type associations for a set of file extensions
    RequestHeader set|append|add|unset header -[value] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    Require Name [Name] ...dhC
    Wählt die authentisierten Benutzer aus, die auf eine -Ressource zugreifen können
    RequestHeader set|append|merge|add|unset|edit header +[value] [replacement] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +svE
    Set timeout values for receiving request headers and body from client. +
    Require Name [Name] ...dhC
    Wählt die authentisierten Benutzer aus, die auf eine +Ressource zugreifen können
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place @@ -581,7 +637,7 @@ Ressource zugreifen k
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap synchronization
    RewriteLog file-pathsvE
    Sets the name of the file used for logging rewrite engine +
    RewriteLog file-path|pipesvE
    Sets the name of the file used for logging rewrite engine processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite engine
    svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule - Pattern SubstitutionsvdhE
    Defines rules for the rewriting engine
    svdhE
    Defines rules for the rewriting engine
    RLimitCPU Sekunden|max [Sekunden|max]svdhC
    Begrenzt den CPU-Verbrauch von Prozessen, die von Apache-Kindprozessen gestartet wurden
    RLimitMEM Bytes|max [Bytes|max]svdhC
    Begrenzt den Speicherverbrauch von Prozessen, die von Apache-Kindprozessen gestartet wurden
    RLimitNPROC Zahl|max [Zahl|max]svdhC
    Begrenzt die Anzahl der Prozesse, die von Prozessen gestartet -werden können, der ihrerseits von Apache-Kinprozessen gestartet +werden können, der ihrerseits von Apache-Kinprozessen gestartet wurden
    Satisfy Any|All All dhC
    Zusammenspiel von rechnerbasierter Zugriffskontrolle und Benutzerauthentisierung
    ScoreBoardFile Dateipfad logs/apache_status sM
    Ablageort der Datei, die zur Speicherung von Daten zur Koordinierung der Kindprozesse verwendet wird
    Script Methode CGI-SkriptsvdB
    Aktiviert ein CGI-Skript für eine bestimmte +
    Script Methode CGI-SkriptsvdB
    Aktiviert ein CGI-Skript für eine bestimmte Anfragemethode.
    ScriptAlias URL-path file-path|directory-pathsvB
    Maps a URL to a filesystem location and designates the @@ -615,45 +671,52 @@ CGI-Skripten
    ScriptLogBuffer bytes 1024 svB
    Maximum amount of PUT or POST requests that will be recorded in the scriptlog
    ScriptLogLength bytes 10385760 svB
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock svB
    The name of the socket to use for communication with +
    ScriptSock file-path logs/cgisock sB
    The filename prefix of the socket to use for communication with the cgi daemon
    SecureListen [IP-address:]portnumber Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SendBufferSize Bytes 0 sM
    Größe des TCP-Puffers
    ServerAdmin E-Mail-Adresse|URLsvC
    E-Mail-Adresse, die der Server in Fehlermeldungen einfügt, +
    SeeRequestTail On|Off Off sB
    Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    SendBufferSize Bytes 0 sM
    Größe des TCP-Puffers
    ServerAdmin E-Mail-Adresse|URLsvC
    E-Mail-Adresse, die der Server in Fehlermeldungen einfügt, welche an den Client gesendet werden
    ServerAlias Hostname [Hostname] ...vC
    Alternativer Name für einen Host, der verwendet wird, wenn +
    ServerAlias Hostname [Hostname] ...vC
    Alternativer Name für einen Host, der verwendet wird, wenn Anfragen einem namensbasierten virtuellen Host zugeordnet werden
    ServerLimit AnzahlsM
    Obergrenze für die konfigurierbare Anzahl von +
    ServerLimit AnzahlsM
    Obergrenze für die konfigurierbare Anzahl von Prozessen
    ServerName -voll-qualifizierter-Domainname[:port]svC
    Rechnername und Port, die der Server dazu verwendet, sich +
    ServerName +voll-qualifizierter-Domainname[:port]svC
    Rechnername und Port, die der Server dazu verwendet, sich selbst zu identifizieren
    ServerPath URL-PfadvC
    Veralteter URL-Pfad für einen namensbasierten +
    ServerPath URL-PfadvC
    Veralteter URL-Pfad für einen namensbasierten virtuellen Host, auf den von einem inkompatiblen Browser zugegriffen wird
    ServerRoot Verzeichnis /usr/local/apache sC
    Basisverzeichnis der Serverinstallation
    ServerSignature On|Off|EMail Off svdhC
    Konfiguriert die Fußzeile von servergenerierten +
    ServerRoot Verzeichnis /usr/local/apache sC
    Basisverzeichnis der Serverinstallation
    ServerSignature On|Off|EMail Off svdhC
    Konfiguriert die Fußzeile von servergenerierten Dokumenten
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Konfiguriert den HTTP-Response-Header +
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Konfiguriert den HTTP-Response-Header Server
    SetEnv env-variable valuesvdhB
    Sets environment variables
    SetEnvIf attribute +
    SetEnv env-variable [value]svdhB
    Sets environment variables
    SetEnvIf attribute regex [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request + [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request
    SetEnvIfNoCase attribute regex +
    SetEnvIfNoCase attribute regex [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request + [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request without respect to case
    SetHandler Handlername|NonesvdhC
    Erzwingt die Verarbeitung aller passenden Dateien durch +
    SetHandler Handlername|NonesvdhC
    Erzwingt die Verarbeitung aller passenden Dateien durch einen Handler
    SetInputFilter Filter[;Filter...]svdhC
    Bestimmt die Filter, die Client-Anfragen und POST-Eingaben +
    SetInputFilter Filter[;Filter...]svdhC
    Bestimmt die Filter, die Client-Anfragen und POST-Eingaben verarbeiten
    SetOutputFilter Filter[;Filter...]svdhC
    Bestimmt die Filter, die Antworten des Servers verarbeiten
    SetOutputFilter Filter[;Filter...]svdhC
    Bestimmt die Filter, die Antworten des Servers verarbeiten
    SSIEnableAccess on|off off dhB
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI error
    SSIETag on|off off dhB
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhB
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are displayed
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL handshake
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLHonorCiperOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of +
    SSLCompression on|off off svE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off svE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private +
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private keys
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates for Remote Server Auth
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for Remote Server Auth
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for Remote Server Auth
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for Remote Server Auth
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +
    SSLProxyCheckPeerCN on|off off svE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off svE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svdhE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Remote Server +
    SSLProxyVerify level none svE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svE
    Maximum depth of CA Certificates in Remote Server Certificate verification
    SSLRandomSeed context source [bytes]sE
    Pseudo Random Number Generator (PRNG) seeding source
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex +
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the +
    SSLRequireSSLdhE
    Deny access when SSL is not used for the HTTP request
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session +
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session Cache
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires +
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires in the Session Cache
    SSLSessionTicketKeyFile file-pathsvE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on svE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off svE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client @@ -719,47 +796,79 @@ Certificate verification
    StartServers AnzahlsM
    Anzahl der Kindprozesse des Servers, die beim Start erstellt werden
    StartThreads AnzahlsM
    Anzahl der Threads, die beim Start erstellt werden
    SuexecUserGroup User GroupsvE
    User and group permissions for CGI programs
    ThreadLimit AnzahlsM
    Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads +
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsC
    Enable or disable the suEXEC feature
    SuexecUserGroup User GroupsvE
    User and group for CGI programs to run as
    ThreadLimit AnzahlsM
    Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads pro Kindprozess
    ThreadsPerChild AnzahlsM
    Anzahl der Threads, die mit jedem Kindprozess gestartet +
    ThreadsPerChild AnzahlsM
    Anzahl der Threads, die mit jedem Kindprozess gestartet werden
    ThreadStackSize sizesM
    Die Größe des Stacks in Bytes, der von Threads +
    ThreadStackSize sizesM
    Die Größe des Stacks in Bytes, der von Threads verwendet wird, die Client-Verbindungen bearbeiten.
    TimeOut Sekunden 300 sC
    Zeitspanne, die der Server auf verschiedene Ereignisse wartet, +
    TimeOut Sekunden 300 sC
    Zeitspanne, die der Server auf verschiedene Ereignisse wartet, bevor er die Anfrage abbricht
    TraceEnable [on|off|extended] on svC
    Determines the behaviour on TRACE +requests
    TransferLog file|pipesvB
    Specify location of a log file
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] ...svdhB
    Removes variables from the environment
    UseCanonicalName On|Off|DNS Off svdC
    Bestimmt, wie der Server seinen eigenen Namen und Port ermittelt
    User Unix-User-ID #-1 sM
    Die Benutzerkennung, unter welcher der Server Anfragen +
    UseCanonicalPhysicalPort On|Off Off svdC
    Configures how the server determines its own name and +port
    User Unix-User-ID #-1 sM
    Die Benutzerkennung, unter welcher der Server Anfragen beantwortet
    UserDir directory-filenamesvB
    Location of the user-specific directories
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root +
    UserDir directory-filename [directory-filename] ... +svB
    Location of the user-specific directories
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root +
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root for a given virtual host
    <VirtualHost +
    <VirtualHost Adresse[:Port] [Adresse[:Port]] - ...> ... </VirtualHost>sC
    Enthält Direktiven, die nur auf bestimmte Hostnamen oder + ...> ... </VirtualHost>sC
    Enthält Direktiven, die nur auf bestimmte Hostnamen oder IP-Adressen angewendet werden
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for +
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for a given virtual host
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for +
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for a given virtual host
    Win32DisableAcceptExsM
    Für die Annahme von Netzwerkverbindungen wird accept() anstelle von AcceptEx() verwendet
    XBitHack on|off|full off svdhB
    Parse SSI directives in files with the execute bit +
    Win32DisableAcceptExsM
    Für die Annahme von Netzwerkverbindungen wird accept() anstelle von AcceptEx() verwendet
    XBitHack on|off|full off svdhB
    Parse SSI directives in files with the execute bit set
    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - es  | + es  |  ja  | - ko 

    -
    + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.en b/docs/manual/mod/quickreference.html.en index 27992210734..9b7b3ac0baf 100644 --- a/docs/manual/mod/quickreference.html.en +++ b/docs/manual/mod/quickreference.html.en @@ -1,30 +1,40 @@ - -Directive Quick Reference - Apache HTTP Server +Directive Quick Reference - Apache HTTP Server Version 2.2 - - + + + +
    <-
    -

    Directive Quick Reference

    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Directive Quick Reference

    Available Languages:  de  |  en  | - es  | + es  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    The directive quick reference shows the usage, default, status, @@ -32,9 +42,9 @@ information about each of these, see the Directive Dictionary.

    The first column gives the directive name and usage. The second - columns shows the default value of the directive, if a default exists. - If the default is too large to display, the first characters will be - followed by "+".

    + column shows the default value of the directive, if a default exists. + If the default is too large to display, it will be truncated + and followed by "+".

    The third and fourth columns list the contexts where the directive is allowed and the status of the directive according to the legend @@ -42,21 +52,17 @@

    - - + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  - - - - - -
    sserver config
    vvirtual host
    ddirectory
    h.htaccess
    - - - - - - -
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    + + + +
    sserver config
    vvirtual host
    ddirectory
    h.htaccess
    + + + + +
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    @@ -89,10 +95,10 @@ handler - - - - - - + + + - - - - - - - - - - + + + - - + - + - + - - + - - - + - - - - - - - - + + + - - + + + + - - - - - + + + - - - - + + + + - - + - - - - - - - + + + + + + - - - - - - + + + + + - - - - - - - - - + + + + + + + + - - - - - + + + + + + - +named file-system directory, sub-directories, and their contents @@ -296,74 +319,83 @@ subdirectories - - + + - - - + + - - + - - - - + - - - + + + + - - + + + proto-flags - + - + + - + - + - - + - - - - + + - - - + @@ -393,13 +425,13 @@ operations - + - + subrequests - - - - + - + - - - - - + + + - - + - - + - - - + - - + - - - - ... - - - + + + - - - + + + - - - + + + - - @@ -522,21 +564,29 @@ connections - + + + + + - + - - - + @@ -558,61 +608,69 @@ extensions - - + + - - + - - + - - - - - - + + + - - - - - - - - - - + - - + - + + - @@ -620,7 +678,7 @@ is accessed by an incompatible browser - + input - - + + - - + + + - - + - - - - - - - - - + + + + - + + + @@ -676,18 +741,24 @@ Remote Server Auth Remote Server Auth + + - - - - - + + + + + - + Cache - - - + + + + + - - - + + + + + + - - - - - + + + + + - +

    Available Languages:  de  |  en  | - es  | + es  |  ja  | - ko 

    -
    + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.es b/docs/manual/mod/quickreference.html.es index 3c7dbb24e8a..dd903ba833a 100644 --- a/docs/manual/mod/quickreference.html.es +++ b/docs/manual/mod/quickreference.html.es @@ -1,35 +1,49 @@ - -Guía Rápida de Referencia de Directivas - Servidor HTTP Apache +Guía Rápida de Referencia de Directivas - Servidor HTTP Apache Versión 2.2 - - + + + +
    <-
    -

    Guía Rápida de Referencia de Directivas

    +Apache > Servidor HTTP > Documentación > Versión 2.2 > Módulos
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Guía Rápida de Referencia de Directivas

    Idiomas disponibles:  de  |  en  | - es  | + es  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    +
    Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios + recientemente.
    -

    La Guía Rápida de Referencia de Directivas muestra el uso, las +

    La Guía Rápida de Referencia de Directivas muestra el uso, las opciones por defecto, el estado y el contexto de cada directiva de - configuración de Apache. Para más información sobre cada + configuración de Apache. Para más información sobre cada directiva, consulte el Diccionario de Directivas.

    @@ -41,25 +55,21 @@

    La tercera y la cuarta columna listan los contextos en los que la directiva puede funcionar y el estado de la directiva de - acuerdo con las notas que detallan más abajo.

    + acuerdo con las notas que detallan más abajo.

    AcceptFilter protocol accept_filtersC
    Configures optimizations for a Protocol's Listener Sockets
    AddIcon icon name [name] ...svdhB
    Icon to display for a file selected by name
    AddIconByEncoding icon MIME-encoding -[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME +[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME content-encoding
    AddIconByType icon MIME-type -[MIME-type] ...svdhB
    Icon to display next to files selected by MIME +[MIME-type] ...svdhB
    Icon to display next to files selected by MIME content-type
    AddInputFilter filter[;filter...] extension [extension] ...svdhB
    Maps filename extensions to the filters that will process @@ -113,14 +119,14 @@ type
    Alias URL-path file-path|directory-pathsvB
    Maps URLs to filesystem locations
    AliasMatch regex -file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular +file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular expressions
    Allow from all|host|env=env-variable -[host|env=env-variable] ...dhB
    Controls which hosts can access an area of the +
    Allow from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts can access an area of the server
    AllowCONNECT port [port] ... 443 563 svE
    Ports that are allowed to CONNECT through the proxy
    AllowEncodedSlashes On|Off Off svC
    Determines whether encoded path separators in URLs are allowed to +
    AllowEncodedSlashes On|Off|NoDecode Off svC
    Determines whether encoded path separators in URLs are allowed to be passed through
    AllowOverride All|None|directive-type [directive-type] ... All dC
    Types of directives that are allowed in @@ -133,70 +139,76 @@ error log
    Anonymous_NoUserID On|Off Off dhE
    Sets whether the userID field may be empty
    Anonymous_VerifyEmail On|Off Off dhE
    Sets whether to check the password field for a correctly formatted email address
    AssignUserID user-id group-idvM
    Tie a virtual host to a user and group ID
    AuthBasicAuthoritative On|Off On dhB
    Sets whether authorization and authentication are passed to +
    AuthBasicAuthoritative On|Off On dhB
    Sets whether authorization and authentication are passed to lower level modules
    AuthBasicProvider On|Off|provider-name -[provider-name] ... On dhB
    Sets the authentication provider(s) for this location
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list +
    AuthBasicProvider provider-name +[provider-name] ... file dhB
    Sets the authentication provider(s) for this location
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to store passwords
    AuthDBMUserFile file-pathdhE
    Sets the name of a database file containing the list of users and +
    AuthDBMUserFile file-pathdhE
    Sets the name of a database file containing the list of users and passwords for authentication
    AuthDefaultAuthoritative On|Off On dhB
    Sets whether authentication is passed to lower level +
    AuthDefaultAuthoritative On|Off On dhB
    Sets whether authentication is passed to lower level modules
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
    Selects the algorithm used to calculate the challenge and +
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhE
    Selects the algorithm used to calculate the challenge and response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhX
    URIs that are in the same protection space for digest +
    AuthDigestDomain URI [URI] ...dhE
    URIs that are in the same protection space for digest authentication
    AuthDigestNcCheck On|Off Off sX
    Enables or disables checking of the nonce-count sent by the +
    AuthDigestNcCheck On|Off Off sE
    Enables or disables checking of the nonce-count sent by the server
    AuthDigestNonceFormat formatdhX
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhX
    How long the server nonce is valid
    AuthDigestProvider On|Off|provider-name -[provider-name] ... On dhX
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhX
    Determines the quality-of-protection to use in digest +
    AuthDigestNonceFormat formatdhE
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhE
    How long the server nonce is valid
    AuthDigestProvider provider-name +[provider-name] ... file dhE
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhE
    Determines the quality-of-protection to use in digest authentication
    AuthDigestShmemSize size 1000 sX
    The amount of shared memory to allocate for keeping track +
    AuthDigestShmemSize size 1000 sE
    The amount of shared memory to allocate for keeping track of clients
    AuthGroupFile file-pathdhB
    Sets the name of a text file containing the list +
    AuthGroupFile file-pathdhB
    Sets the name of a text file containing the list of user groups for authorization
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attributedhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for group membership
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER +
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP +
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP authentication
    <AuthnProviderAlias baseProvider Alias> -... </AuthnProviderAlias>svE
    Enclose a group of directives that represent an +
    <AuthnProviderAlias baseProvider Alias> +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an extension of a base authentication provider and referenced by the specified alias
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    Sets the name of a text file containing the list of users and +
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    Sets the name of a text file containing the list of users and passwords for authentication
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level modules
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to store list of user groups
    AuthzDefaultAuthoritative On|Off On dhB
    Sets whether authorization is passed to lower level +
    AuthzDefaultAuthoritative On|Off On dhB
    Sets whether authorization is passed to lower level modules
    AuthzGroupFileAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +
    AuthzGroupFileAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level modules
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from +
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +
    AuthzOwnerAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level modules
    AuthzUserAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +
    AuthzUserAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level modules
    BrowserMatch regex [!]env-variable[=value] +
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    Add a member to a load balancing group
    BrowserMatch regex [!]env-variable[=value] [[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on HTTP User-Agent
    BrowserMatchNoCase regex [!]env-variable[=value] @@ -216,75 +228,86 @@ manager
    CacheIgnoreNoLastMod On|Off Off svE
    Ignore the fact that a response has no Last Modified header.
    CacheIgnoreQueryString On|Off Off svE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None svE
    Ignore defined session identifiers encoded in the URL when caching +
    CacheLastModifiedFactor float 0.1 svE
    The factor used to compute an expiry date based on the LastModified date.
    CacheMaxExpire seconds 86400 (one day) svE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 svE
    The maximum size (in bytes) of a document to be placed in the +
    CacheLock on|off off svE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 svE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +svE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (one day) svE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 svE
    The maximum size (in bytes) of a document to be placed in the cache
    CacheMinFileSize bytes 1 svE
    The minimum size (in bytes) of a document to be placed in the +
    CacheMinFileSize bytes 1 svE
    The minimum size (in bytes) of a document to be placed in the cache
    CacheNegotiatedDocs On|Off Off svB
    Allows content-negotiated documents to be +
    CacheNegotiatedDocs On|Off Off svB
    Allows content-negotiated documents to be cached by proxy servers
    CacheRoot directorysvE
    The directory root under which cache files are +
    CacheRoot directorysvE
    The directory root under which cache files are stored
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CGIDScriptTimeout time[s|ms]svdhB
    The length of time to wait for more output from the +CGI program
    CGIMapExtension cgi-path .extensiondhC
    Technique for locating the interpreter for CGI scripts
    CharsetDefault charsetsvdhX
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhX
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhX
    Source charset of files
    CheckSpelling on|off Off svdhE
    Enables the spelling +
    CharsetDefault charsetsvdhE
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhE
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhE
    Source charset of files
    CheckCaseOnly on|off Off svdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off svdhE
    Enables the spelling module
    ChildPerUserID user-id group-id -num-childrensM
    Specify user ID and group ID for a number of child -processes
    ContentDigest On|Off Off svdhC
    Enables the generation of Content-MD5 HTTP Response +
    ChrootDir /path/to/directorysM
    Directory for apache to run chroot(8) after startup.
    ContentDigest On|Off Off svdhC
    Enables the generation of Content-MD5 HTTP Response headers
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    Sets filename for the logging of cookies
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle - Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Directory where Apache attempts to +
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    Sets filename for the logging of cookies
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle + Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Directory where Apache attempts to switch before dumping core
    CustomLog file|pipe +
    CustomLog file|pipe format|nickname -[env=[!]environment-variable]svB
    Sets filename and format of log file
    Dav On|Off|provider-name Off dE
    Enable WebDAV HTTP methods
    DavDepthInfinity on|off off svdE
    Allow PROPFIND, Depth: Infinity requests
    DavGenericLockDB file-pathsvdE
    Location of the DAV lock database
    DavLockDB file-pathsvE
    Location of the DAV lock database
    DavMinTimeout seconds 0 svdE
    Minimum amount of time the server holds a lock on +[env=[!]environment-variable]svB
    Sets filename and format of log file
    Dav On|Off|provider-name Off dE
    Enable WebDAV HTTP methods
    DavDepthInfinity on|off off svdE
    Allow PROPFIND, Depth: Infinity requests
    DavGenericLockDB file-pathsvdE
    Location of the DAV lock database
    DavLockDB file-pathsvE
    Location of the DAV lock database
    DavMinTimeout seconds 0 svdE
    Minimum amount of time the server holds a lock on a DAV resource
    DBDExptime time-in-secondssvX
    Keepalive time for idle connections
    DBDKeep numbersvX
    Maximum sustainednumber of connections
    DBDMax numbersvX
    Maximum number of connections
    DBDMin numbersvX
    Minimum number of connections
    DBDParams -param1=value1[,param2=value2]svX
    Parameters for database connection
    DBDPersist 0|1svX
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvX
    Define an SQL prepared statement
    DBDriver namesvX
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    Icon to display for files when no specific icon is +
    DBDExptime time-in-seconds 300 svE
    Keepalive time for idle connections
    DBDKeep number 2 svE
    Maximum sustained number of connections
    DBDMax number 10 svE
    Maximum number of connections
    DBDMin number 1 svE
    Minimum number of connections
    DBDParams +param1=value1[,param2=value2]svE
    Parameters for database connection
    DBDPersist On|OffsvE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvE
    Define an SQL prepared statement
    DBDriver namesvE
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    Icon to display for files when no specific icon is configured
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified +
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified language
    DefaultType MIME-type text/plain svdhC
    MIME content-type that will be sent if the +
    DefaultType MIME-type|none text/plain svdhC
    MIME content-type that will be sent if the server cannot determine a type in any other way
    DeflateBufferSize value 8096 svE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valuesvE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenamesvE
    Places the compression ratio in a note for logging
    DeflateBufferSize value 8096 svE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valuesvE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenamesvE
    Places the compression ratio in a note for logging
    DeflateInflateLimitRequestBodyvaluesvdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valuesvdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valuesvdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 svE
    How much memory should be used by zlib for compression
    DeflateWindowSize value 15 svE
    Zlib compression window size
    Deny from all|host|env=env-variable -[host|env=env-variable] ...dhB
    Controls which hosts are denied access to the +
    Deny from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts are denied access to the server
    <Directory directory-path> ... </Directory>svC
    Enclose a group of directives that apply only to the -named file-system directory and sub-directories
    DirectoryIndex local-url [local-url] ... index.html svdhB
    List of resources to look for when the client requests a directory
    DocumentRoot directory-path /usr/local/apache/h +svC
    Directory that forms the main document tree visible from the web
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Enables a hook that runs exception handlers +
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Enables a hook that runs exception handlers after a crash
    EnableMMAP On|Off On svdhC
    Use memory-mapping to read files during delivery
    EnableSendfile On|Off On svdhC
    Use the kernel sendfile support to deliver files to the client
    ErrorDocument error-code documentsvdhC
    What the server will return to the client +
    EnableMMAP On|Off On svdhC
    Use memory-mapping to read files during delivery
    EnableSendfile On|Off On svdhC
    Use the kernel sendfile support to deliver files to the client
    ErrorDocument error-code documentsvdhC
    What the server will return to the client in case of an error
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    Location where the server will log errors
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module +
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    Location where the server will log errors
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module API
    ExpiresActive On|OffsvdhE
    Enables generation of Expires +
    ExpiresActive On|OffsvdhE
    Enables generation of Expires headers
    ExpiresByType MIME-type -<code>secondssvdhE
    Value of the Expires header configured +
    ExpiresByType MIME-type +<code>secondssvdhE
    Value of the Expires header configured by MIME type
    ExpiresDefault <code>secondssvdhE
    Default algorithm for calculating expiration time
    ExtendedStatus On|Off Off sB
    Keep track of extended status information for each +
    ExpiresDefault <code>secondssvdhE
    Default algorithm for calculating expiration time
    ExtendedStatus On|Off Off sB
    Keep track of extended status information for each request
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag -HTTP response header
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FallbackResource disabled | local-urlsvdhB
    Define a default URL for requests that don't map to a file
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag +HTTP response header for static files
    <Files filename> ... </Files>svdhC
    Contains directives that apply to matched filenames
    <FilesMatch regex> ... </FilesMatch>svdhC
    Contains directives that apply to regular-expression matched filenames
    FilterChain [+=-@!]filter-name ...svdhX
    Configure the filter chain
    FilterDeclare filter-name [type]svdhX
    Declare a smart filter
    FilterChain [+=-@!]filter-name ...svdhB
    Configure the filter chain
    FilterDeclare filter-name [type]svdhB
    Declare a smart filter
    FilterProtocol filter-name [provider-name] - proto-flagssvdhX
    Deal with correct HTTP protocol handling
    svdhB
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name - [req|resp|env]=dispatch matchsvdhX
    Register a content filter
    FilterTrace filter-name levelsvdX
    Get debug/diagnostic information from + [req|resp|env]=dispatch matchsvdhB
    Register a content filter
    FilterTrace filter-name levelsvdB
    Get debug/diagnostic information from mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not found
    ForceType MIME-type|NonedhC
    Forces all matching files to be served with the specified MIME content-type
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    Group unix-group #-1 sM
    Group under which the server will answer +
    GprofDir /tmp/gprof/|/tmp/gprof/%svC
    Directory to write gmon.out profiling data to.
    GracefulShutDownTimeout secondssM
    Specify a timeout after which a gracefully shutdown server +will exit.
    Group unix-group #-1 sM
    Group under which the server will answer requests
    Header [condition] set|append|add|unset|echo -header [value] [early|env=[!]variable]svdhE
    Configure HTTP response headers
    Header [condition] set|append|merge|add|unset|echo|edit +header [value] [replacement] +[early|env=[!]variable]svdhE
    Configure HTTP response headers
    HeaderName filenamesvdhB
    Name of the file that will be inserted at the top of the index listing
    HostnameLookups On|Off|Double Off svdC
    Enables DNS lookups on client IP addresses
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote +
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +svC
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote user
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parameter-name> ... - </IfDefine>svdhC
    Encloses directives that will be processed only +
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parameter-name> ... + </IfDefine>svdhC
    Encloses directives that will be processed only if a test is true at startup
    <IfModule [!]module-file|module-identifier> ... - </IfModule>svdhC
    Encloses directives that are processed conditional on the +
    <IfModule [!]module-file|module-identifier> ... + </IfModule>svdhC
    Encloses directives that are processed conditional on the presence or absence of a specific module
    <IfVersion [[!]operator] version> ... -</IfVersion>svdhE
    contains version dependent configuration
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates +
    <IfVersion [[!]operator] version> ... +</IfVersion>svdhE
    contains version dependent configuration
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates that are not explicitly mapped
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling +
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling an imagemap
    Include file-path|directory-pathsvdC
    Includes other configuration files from within +
    Include file-path|directory-pathsvdC
    Includes other configuration files from within the server configuration files
    IndexIgnore file [file] ...svdhB
    Adds to the list of files to hide when listing +
    IndexHeadInsert "markup ..."svdhB
    Inserts text in the HEAD section of an index page.
    IndexIgnore file [file] ... "." svdhB
    Adds to the list of files to hide when listing a directory
    IndexOptions [+|-]option [[+|-]option] -...svdhB
    Various configuration settings for directory +...svdhB
    Various configuration settings for directory indexing
    IndexOrderDefault Ascending|Descending Name|Date|Size|Description Ascending Name svdhB
    Sets the default ordering of the directory index
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 102400 sE
    Size in bytes of the shared-memory cache
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per connection client certificate. Not all LDAP toolkits support per connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted Certificate Authority or global client certificates
    LDAPTrustedMode typesvdhE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPTrustedMode typesvE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... </Limit>svdhC
    Restrict enclosed access controls to only certain HTTP @@ -411,11 +443,11 @@ except the named ones
    LimitRequestBody bytes 0 svdhC
    Restricts the total size of the HTTP request body sent from the client
    LimitRequestFields number 100 sC
    Limits the number of HTTP request header fields that +
    LimitRequestFields number 100 svC
    Limits the number of HTTP request header fields that will be accepted from the client
    LimitRequestFieldsize bytessC
    Limits the size of the HTTP request header allowed from the +
    LimitRequestFieldSize bytes 8190 svC
    Limits the size of the HTTP request header allowed from the client
    LimitRequestLine bytes 8190 sC
    Limit the size of the HTTP request line that will be accepted +
    LimitRequestLine bytes 8190 svC
    Limit the size of the HTTP request line that will be accepted from the client
    LimitXMLRequestBody bytes 1000000 svdhC
    Limits the size of an XML-based request body
    Listen [IP-address:]portnumber [protocol]sM
    IP addresses and ports that the server @@ -434,53 +466,54 @@ matching URLs
    LogFormat format|nickname [nickname] "%h %l %u %t \"%r\" +svB
    Describes a format for use in a log file
    LogLevel level warn svC
    Controls the verbosity of the ErrorLog
    MaxClients numbersM
    Maximum number of child processes that will be created -to serve requests
    MaxClients numbersM
    Maximum number of connections that will be processed +simultaneously
    MaxKeepAliveRequests number 100 svC
    Number of requests allowed on a persistent connection
    MaxMemFree KBytes 0 sM
    Maximum amount of memory that the main allocator is allowed to hold without calling free()
    MaxRequestsPerChild number 10000 sM
    Limit on the number of requests that an individual child server +
    MaxRanges default | unlimited | none | number-of-ranges 200 svdC
    Number of ranges allowed before returning the complete +resource
    MaxRequestsPerChild number 10000 sM
    Limit on the number of requests that an individual child server will handle during its life
    MaxRequestsPerThread number 0 sM
    Limit on the number of requests that an individual thread +
    MaxRequestsPerThread number 0 sM
    Limit on the number of requests that an individual thread will handle during its life
    MaxSpareServers number 10 sM
    Maximum number of idle child server processes
    MaxSpareThreads numbersM
    Maximum number of idle threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MaxThreadsPerChild number 64 sM
    Maximum number of threads per child process
    MaxSpareServers number 10 sM
    Maximum number of idle child server processes
    MaxSpareThreads numbersM
    Maximum number of idle threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MCacheMaxObjectCount value 1009 sE
    The maximum number of objects allowed to be placed in the cache
    MCacheMaxObjectSize bytes 10000 sE
    The maximum size (in bytes) of a document allowed in the cache
    MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sE
    Maximum amount of a streamed response to buffer in memory before declaring the response uncacheable
    MCacheMinObjectSize bytes 0 sE
    The minimum size (in bytes) of a document to be allowed in the +
    MCacheMinObjectSize bytes 1 sE
    The minimum size (in bytes) of a document to be allowed in the cache
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    The algorithm used to select documents for removal from the cache
    MCacheSize KBytes 100 sE
    The maximum amount of memory used by the cache in KBytes
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information +
    MergeTrailers [on|off] off svC
    Determines whether trailers are merged into headers
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information files
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style +
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style meta information
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents +
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents using the specified magic file
    MinSpareServers number 5 sM
    Minimum number of idle child server processes
    MinSpareThreads numbersM
    Minimum number of idle threads available to handle request +
    MinSpareServers number 5 sM
    Minimum number of idle child server processes
    MinSpareThreads numbersM
    Minimum number of idle threads available to handle request spikes
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    Tells mod_mime to treat path_info +
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    Tells mod_mime to treat path_info components as part of the filename
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers -[Handlers|Filters] NegotiatedOnly svdhB
    The types of files that will be included when searching for +
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters] NegotiatedOnly svdhB
    The types of files that will be included when searching for a matching file with MultiViews
    NameVirtualHost addr[:port]sC
    Designates an IP address for name-virtual +
    NameVirtualHost addr[:port]sC
    Designates an IP address for name-virtual hosting
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to +
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to directly
    NumServers number 2 sM
    Total number of children alive at the same time
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options @@ -493,26 +526,35 @@ evaluated.
    svdhB
    Passes environment variables from the shell
    PidFile filename logs/httpd.pid sM
    File where the server records the process ID of the daemon
    ProtocolEcho On|OffsvX
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a +
    Protocol protocolsvC
    Protocol for a listening socket
    ProtocolEcho On|Off Off svX
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a response
    ProxyBlock *|word|host|domain -[word|host|domain] ...svE
    Words, hosts, or domains that are banned from being +
    ProxyBlock *|word|host|domain +[word|host|domain] ...svE
    Words, hosts, or domains that are banned from being proxied
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyFtpDirCharset character set ISO-8859-1 svdE
    Define the character set for proxied FTP listings
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched proxied resources
    ProxyMaxForwards number 10 svE
    Maximium number of proxies that a request can be forwarded +
    ProxyMaxForwards number -1 svE
    Maximium number of proxies that a request can be forwarded through
    ProxyPass [path] !|url [key=value key=value ...]]svdE
    Maps remote servers into the local server URL-space
    ProxyPassReverse [path] urlsvdE
    Adjusts the URL in HTTP response headers sent from a reverse +
    ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]svdE
    Maps remote servers into the local server URL-space
    ProxyPassInterpolateEnv On|Off Off svdE
    Enable Environment Variable interpolation in Reverse Proxy configurations
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]svdE
    Maps remote servers into the local server URL-space using regular expressions
    ProxyPassReverse [path] url +[interpolate]svdE
    Adjusts the URL in HTTP response headers sent from a reverse proxied server
    ProxyPassReverseCookieDomain internal-domain public-domainsvdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]svdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- proxied server
    ProxyPassReverseCookiePath internal-path public-pathsvdE
    Adjusts the Path string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]svdE
    Adjusts the Path string in Set-Cookie headers from a reverse- proxied server
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy request
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular expressions
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxyTimeout seconds 300 svE
    Network timeout for proxied requests
    ProxySCGIInternalRedirect On|Off On svdE
    Enable or disable internal redirect responses from the +backend
    ProxySCGISendfile On|Off|Headername Off svdE
    Enable evaluation of X-Sendfile pseudo response +header
    ProxySet url key=value [key=value ...]dE
    Set various Proxy balancer or member parameters
    ProxyStatus Off|On|Full Off svE
    Show Proxy LoadBalancer status in mod_status
    ProxyTimeout secondssvE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response header for proxied requests
    ReadmeName filenamesvdhB
    Name of the file that will be inserted at the end of the index listing
    Redirect [status] URL-path -URLsvdhB
    Sends an external redirect asking the client to fetch +
    ReceiveBufferSize bytes 0 sM
    TCP receive buffer size
    Redirect [status] URL-path +URLsvdhB
    Sends an external redirect asking the client to fetch a different URL
    RedirectMatch [status] regex -URLsvdhB
    Sends an external redirect based on a regular expression match +
    RedirectMatch [status] regex +URLsvdhB
    Sends an external redirect based on a regular expression match of the current URL
    RedirectPermanent URL-path URLsvdhB
    Sends an external permanent redirect asking the client to fetch +
    RedirectPermanent URL-path URLsvdhB
    Sends an external permanent redirect asking the client to fetch a different URL
    RedirectTemp URL-path URLsvdhB
    Sends an external temporary redirect asking the client to fetch +
    RedirectTemp URL-path URLsvdhB
    Sends an external temporary redirect asking the client to fetch a different URL
    RegisterHttpMethod method [method [...]]sC
    Register non-standard HTTP methods
    RemoveCharset extension [extension] ...vdhB
    Removes any character set associations for a set of file extensions
    RemoveType extension [extension] ...vdhB
    Removes any content type associations for a set of file extensions
    RequestHeader set|append|add|unset header -[value] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    Require entity-name [entity-name] ...dhC
    Selects which authenticated users can access +
    RequestHeader set|append|merge|add|unset|edit header +[value] [replacement] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +svE
    Set timeout values for receiving request headers and body from client. +
    Require entity-name [entity-name] ...dhC
    Selects which authenticated users can access a resource
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond - TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place +
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond + TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap +
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap synchronization
    RewriteLog file-pathsvE
    Sets the name of the file used for logging rewrite engine +
    RewriteLog file-path|pipesvE
    Sets the name of the file used for logging rewrite engine processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite +
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite engine
    RewriteMap MapName MapType:MapSource -svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule - Pattern SubstitutionsvdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Limits the CPU consumption of processes launched +
    RewriteMap MapName MapType:MapSource +svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule + Pattern Substitution [flags]svdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Limits the CPU consumption of processes launched by Apache children
    RLimitMEM bytes|max [bytes|max]svdhC
    Limits the memory consumption of processes launched +
    RLimitMEM bytes|max [bytes|max]svdhC
    Limits the memory consumption of processes launched by Apache children
    RLimitNPROC number|max [number|max]svdhC
    Limits the number of processes that can be launched by +
    RLimitNPROC number|max [number|max]svdhC
    Limits the number of processes that can be launched by processes launched by Apache children
    Satisfy Any|All All dhC
    Interaction between host-level access control and +
    Satisfy Any|All All dhC
    Interaction between host-level access control and user authentication
    ScoreBoardFile file-path logs/apache_status sM
    Location of the file used to store coordination data for +
    ScoreBoardFile file-path logs/apache_runtime +sM
    Location of the file used to store coordination data for the child processes
    Script method cgi-scriptsvdB
    Activates a CGI script for a particular request +
    Script method cgi-scriptsvdB
    Activates a CGI script for a particular request method.
    ScriptAlias URL-path -file-path|directory-pathsvB
    Maps a URL to a filesystem location and designates the +
    ScriptAlias URL-path +file-path|directory-pathsvB
    Maps a URL to a filesystem location and designates the target as a CGI script
    ScriptAliasMatch regex -file-path|directory-pathsvB
    Maps a URL to a filesystem location using a regular expression +
    ScriptAliasMatch regex +file-path|directory-pathsvB
    Maps a URL to a filesystem location using a regular expression and designates the target as a CGI script
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    Technique for locating the interpreter for CGI +
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    Technique for locating the interpreter for CGI scripts
    ScriptLog file-pathsvB
    Location of the CGI script error logfile
    ScriptLogBuffer bytes 1024 svB
    Maximum amount of PUT or POST requests that will be recorded +
    ScriptLog file-pathsvB
    Location of the CGI script error logfile
    ScriptLogBuffer bytes 1024 svB
    Maximum amount of PUT or POST requests that will be recorded in the scriptlog
    ScriptLogLength bytes 10385760 svB
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock svB
    The name of the socket to use for communication with +
    ScriptLogLength bytes 10385760 svB
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock sB
    The filename prefix of the socket to use for communication with the cgi daemon
    SecureListen [IP-address:]portnumber -Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SeeRequestTail On|Off Off sB
    Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    SendBufferSize bytes 0 sM
    TCP buffer size
    ServerAdmin email-address|URLsvC
    Email address that the server includes in error messages sent to the client
    ServerAlias hostname [hostname] ...vC
    Alternate names for a host used when matching requests to name-virtual hosts
    ServerLimit numbersM
    Upper limit on configurable number of processes
    ServerName fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify +
    ServerName [scheme://]fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify itself
    ServerPath URL-pathvC
    Legacy URL pathname for a name-based virtual host that is accessed by an incompatible browser
    ServerSignature On|Off|EMail Off svdhC
    Configures the footer on server-generated documents
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Configures the Server HTTP response header
    SetEnv env-variable valuesvdhB
    Sets environment variables
    SetEnv env-variable [value]svdhB
    Sets environment variables
    SetEnvIf attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request @@ -635,33 +693,40 @@ handler
    SetOutputFilter filter[;filter...]svdhC
    Sets the filters that will process responses from the server
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI +
    SSIEnableAccess on|off off dhB
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI error
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are +
    SSIETag on|off off dhB
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhB
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are displayed
    SSIUndefinedEcho string "(none)" svdhB
    String displayed when an unset variable is echoed
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +
    SSIUndefinedEcho string "(none)" svdhB
    String displayed when an unset variable is echoed
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates for Client Auth
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for Client Auth
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates for defining acceptable CA names
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for defining acceptable CA names
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for Client Auth
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for Client Auth
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL handshake
    SSLCompression on|off off svE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLHonorCiperOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off svE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for Remote Server Auth
    SSLProxyCheckPeerCN on|off off svE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off svE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svdhE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Remote Server +
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svE
    Maximum depth of CA Certificates in Remote Server Certificate verification
    SSLRandomSeed context source -[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding +
    SSLRandomSeed context source +[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding source
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the @@ -696,29 +767,42 @@ HTTP request
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires in the Session Cache
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client +
    SSLSessionTicketKeyFile file-pathsvE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on svE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off svE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client Certificate verification
    StartServers numbersM
    Number of child server processes created at startup
    StartThreads numbersM
    Number of threads created on startup
    SuexecUserGroup User GroupsvE
    User and group permissions for CGI programs
    StartServers numbersM
    Number of child server processes created at startup
    StartThreads numbersM
    Number of threads created on startup
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsC
    Enable or disable the suEXEC feature
    SuexecUserGroup User GroupsvE
    User and group for CGI programs to run as
    ThreadLimit numbersM
    Sets the upper limit on the configurable number of threads per child process
    ThreadsPerChild numbersM
    Number of threads created by each child process
    ThreadStackSize sizesM
    The size in bytes of the stack used by threads handling client connections
    TimeOut seconds 300 sC
    Amount of time the server will wait for +
    TimeOut seconds 300 svC
    Amount of time the server will wait for certain events before failing a request
    TransferLog file|pipesvB
    Specify location of a log file
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] -...svdhB
    Removes variables from the environment
    UseCanonicalName On|Off|DNS Off svdC
    Configures how the server determines its own name and +
    TraceEnable [on|off|extended] on svC
    Determines the behaviour on TRACE +requests
    TransferLog file|pipesvB
    Specify location of a log file
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] +...svdhB
    Removes variables from the environment
    UseCanonicalName On|Off|DNS Off svdC
    Configures how the server determines its own name and +port
    UseCanonicalPhysicalPort On|Off Off svdC
    Configures how the server determines its own name and port
    User unix-userid #-1 sM
    The userid under which the server will answer requests
    UserDir directory-filenamesvB
    Location of the user-specific directories
    UserDir directory-filename [directory-filename] ... +svB
    Location of the user-specific directories
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root @@ -738,10 +822,34 @@ set
    - - + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  - - - - - -
    sserver config
    vvirtual host
    ddirectory
    h.htaccess
    - - - - - - -
    CCore
    MMPM
    BBase
    EExtensión
    XExperimental
    + + + +
    sserver config
    vvirtual host
    ddirectory
    h.htaccess
    + + + + +
    CCore
    MMPM
    BBase
    EExtensión
    XExperimental
    @@ -92,10 +102,10 @@ handler - - - - - - + + + - - - - - - - - - - + + + - - + - + - + - - + - - - + - - - - - - - - + + + - - + + + + - - - - - + + + - - - - + + + + - - + - - - - - - - + + + + + + - - - - - - + + + + + - - - - - - - - - + + + + + + + + - - - - - + + + + + + - +named file-system directory, sub-directories, and their contents @@ -299,74 +326,83 @@ subdirectories - - + + - - - + + - - + - - - - + - - - + + + + - - + + + proto-flags - + - + + - + - + - - + - - - - + + - - - + @@ -396,13 +432,13 @@ operations - + - + subrequests - - - - + - + - - - - - + + + - - + - - + - - - + - - + - - - - ... - - - + + + - - - + + + - - - + + + - - @@ -525,21 +571,29 @@ connections - + + + + + - + - - - + @@ -561,61 +615,69 @@ extensions - - + + - - + - - + - - - - - - + + + - - - - - - - - - - + - - + - + + - @@ -623,7 +685,7 @@ is accessed by an incompatible browser - + input - - + + - - + + + - - + - - - - - - - - - + + + + - + + + @@ -679,18 +748,24 @@ Remote Server Auth Remote Server Auth + + - - - - - + + + + + - + Cache - - - + + + + + - - - + + + + + + - - - - - + + + + + - +

    Idiomas disponibles:  de  |  en  | - es  | + es  |  ja  | - ko 

    -
    + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    Comentarios

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.ja.euc-jp b/docs/manual/mod/quickreference.html.ja.euc-jp deleted file mode 100644 index 1e29f0f8f92..00000000000 --- a/docs/manual/mod/quickreference.html.ja.euc-jp +++ /dev/null @@ -1,682 +0,0 @@ - - - -¥ǥ£¥쥯¥ƥ£¥Ö ¥¯¥¤¥å¯¥ê¥ե¡¥ì¥ó¥¹ - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -

    ¥ǥ£¥쥯¥ƥ£¥Ö ¥¯¥¤¥å¯¥ê¥ե¡¥ì¥ó¥¹

    -
    -

    Available Languages:  de  | - en  | - es  | - ja  | - ko 

    -
    - -

    ¥ǥ£¥쥯¥ƥ£¥Ö ¥¯¥¤¥å¯¥ê¥ե¡¥ì¥󥹤Ǥϡ¢³Æ Apache ÀßÄê¥ǥ£¥쥯¥ƥ£¥֤Î - »ÈÍÑÊýˡ¡¢¥ǥե©¥ë¥ÈÃ͡¢¥¹¥ơ¼¥¿¥¹¤ȥ³¥ó¥ƥ­¥¹¥Ȥ򼨤·¤Ƥ¤¤ޤ¹¡£ - ³ƥǥ£¥쥯¥ƥ£¥֤Ρ¢¤è¤ê¾ܤ·¤¤¾ðÊó¤˴ؤ·¤ƤÏ - ¥ǥ£¥쥯¥ƥ£¥ּ­½ñ¤ò - ¤´Í÷²¼¤µ¤¤¡£

    - -

    Âè 1 ÎóÌܤϥǥ£¥쥯¥ƥ£¥֤Î̾Á°¤ȻÈÍÑÊýˡ¤Ǥ¹¡£ - Âè 2 ÎóÌܤÏ (¤⤷¤¢¤ì¤Ð) ¥ǥե©¥ë¥ÈÃͤȤʤäƤ¤¤ޤ¹¡£ - ¥ǥե©¥ë¥ÈÃͤ¬Ĺ¤¹¤®¤Æɽ¼¨¤·¤­¤ì¤ʤ¤¾ì¹ç¤ϡ¢ºǽé¤Îʸ»úÎó¤θå¤í¤Ë - ¡Ö + ¡פ¬³¤­¤ޤ¹¡£

    - -

    Âè 3, 4 Îó¤ϡ¢²¼¤Îɽ¤ÎÃí¼á¤˽¾¤äơ¢ - ¥ǥ£¥쥯¥ƥ£¥֤λÈÍѤǤ­¤륳¥ó¥ƥ­¥¹¥Ȥȡ¢ - ¥ǥ£¥쥯¥ƥ£¥֤Υ¹¥ơ¼¥¿¥¹¤¬¼¨¤µ¤ì¤Ƥ¤¤ޤ¹¡£

    -
    -
    AcceptFilter protocol accept_filtersC
    Configures optimizations for a Protocol's Listener Sockets
    AddIcon icon name [name] ...svdhB
    Icon to display for a file selected by name
    AddIconByEncoding icon MIME-encoding -[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME +[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME content-encoding
    AddIconByType icon MIME-type -[MIME-type] ...svdhB
    Icon to display next to files selected by MIME +[MIME-type] ...svdhB
    Icon to display next to files selected by MIME content-type
    AddInputFilter filter[;filter...] extension [extension] ...svdhB
    Maps filename extensions to the filters that will process @@ -116,14 +126,14 @@ type
    Alias URL-path file-path|directory-pathsvB
    Maps URLs to filesystem locations
    AliasMatch regex -file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular +file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular expressions
    Allow from all|host|env=env-variable -[host|env=env-variable] ...dhB
    Controls which hosts can access an area of the +
    Allow from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts can access an area of the server
    AllowCONNECT port [port] ... 443 563 svE
    Ports that are allowed to CONNECT through the proxy
    AllowEncodedSlashes On|Off Off svC
    Determines whether encoded path separators in URLs are allowed to +
    AllowEncodedSlashes On|Off|NoDecode Off svC
    Determines whether encoded path separators in URLs are allowed to be passed through
    AllowOverride All|None|directive-type [directive-type] ... All dC
    Types of directives that are allowed in @@ -136,70 +146,76 @@ error log
    Anonymous_NoUserID On|Off Off dhE
    Sets whether the userID field may be empty
    Anonymous_VerifyEmail On|Off Off dhE
    Sets whether to check the password field for a correctly formatted email address
    AssignUserID user-id group-idvM
    Tie a virtual host to a user and group ID
    AuthBasicAuthoritative On|Off On dhB
    Sets whether authorization and authentication are passed to +
    AuthBasicAuthoritative On|Off On dhB
    Sets whether authorization and authentication are passed to lower level modules
    AuthBasicProvider On|Off|provider-name -[provider-name] ... On dhB
    Sets the authentication provider(s) for this location
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list +
    AuthBasicProvider provider-name +[provider-name] ... file dhB
    Sets the authentication provider(s) for this location
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to store passwords
    AuthDBMUserFile file-pathdhE
    Sets the name of a database file containing the list of users and +
    AuthDBMUserFile file-pathdhE
    Sets the name of a database file containing the list of users and passwords for authentication
    AuthDefaultAuthoritative On|Off On dhB
    Sets whether authentication is passed to lower level +
    AuthDefaultAuthoritative On|Off On dhB
    Sets whether authentication is passed to lower level modules
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
    Selects the algorithm used to calculate the challenge and +
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhE
    Selects the algorithm used to calculate the challenge and response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhX
    URIs that are in the same protection space for digest +
    AuthDigestDomain URI [URI] ...dhE
    URIs that are in the same protection space for digest authentication
    AuthDigestNcCheck On|Off Off sX
    Enables or disables checking of the nonce-count sent by the +
    AuthDigestNcCheck On|Off Off sE
    Enables or disables checking of the nonce-count sent by the server
    AuthDigestNonceFormat formatdhX
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhX
    How long the server nonce is valid
    AuthDigestProvider On|Off|provider-name -[provider-name] ... On dhX
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhX
    Determines the quality-of-protection to use in digest +
    AuthDigestNonceFormat formatdhE
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhE
    How long the server nonce is valid
    AuthDigestProvider provider-name +[provider-name] ... file dhE
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhE
    Determines the quality-of-protection to use in digest authentication
    AuthDigestShmemSize size 1000 sX
    The amount of shared memory to allocate for keeping track +
    AuthDigestShmemSize size 1000 sE
    The amount of shared memory to allocate for keeping track of clients
    AuthGroupFile file-pathdhB
    Sets the name of a text file containing the list +
    AuthGroupFile file-pathdhB
    Sets the name of a text file containing the list of user groups for authorization
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attributedhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for group membership
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER +
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP +
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP authentication
    <AuthnProviderAlias baseProvider Alias> -... </AuthnProviderAlias>svE
    Enclose a group of directives that represent an +
    <AuthnProviderAlias baseProvider Alias> +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an extension of a base authentication provider and referenced by the specified alias
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    Sets the name of a text file containing the list of users and +
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    Sets the name of a text file containing the list of users and passwords for authentication
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level modules
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to store list of user groups
    AuthzDefaultAuthoritative On|Off On dhB
    Sets whether authorization is passed to lower level +
    AuthzDefaultAuthoritative On|Off On dhB
    Sets whether authorization is passed to lower level modules
    AuthzGroupFileAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +
    AuthzGroupFileAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level modules
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from +
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +
    AuthzOwnerAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level modules
    AuthzUserAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +
    AuthzUserAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level modules
    BrowserMatch regex [!]env-variable[=value] +
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    Add a member to a load balancing group
    BrowserMatch regex [!]env-variable[=value] [[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on HTTP User-Agent
    BrowserMatchNoCase regex [!]env-variable[=value] @@ -219,75 +235,86 @@ manager
    CacheIgnoreNoLastMod On|Off Off svE
    Ignore the fact that a response has no Last Modified header.
    CacheIgnoreQueryString On|Off Off svE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None svE
    Ignore defined session identifiers encoded in the URL when caching +
    CacheLastModifiedFactor float 0.1 svE
    The factor used to compute an expiry date based on the LastModified date.
    CacheMaxExpire seconds 86400 (one day) svE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 svE
    The maximum size (in bytes) of a document to be placed in the +
    CacheLock on|off off svE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 svE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +svE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (one day) svE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 svE
    The maximum size (in bytes) of a document to be placed in the cache
    CacheMinFileSize bytes 1 svE
    The minimum size (in bytes) of a document to be placed in the +
    CacheMinFileSize bytes 1 svE
    The minimum size (in bytes) of a document to be placed in the cache
    CacheNegotiatedDocs On|Off Off svB
    Allows content-negotiated documents to be +
    CacheNegotiatedDocs On|Off Off svB
    Allows content-negotiated documents to be cached by proxy servers
    CacheRoot directorysvE
    The directory root under which cache files are +
    CacheRoot directorysvE
    The directory root under which cache files are stored
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CGIDScriptTimeout time[s|ms]svdhB
    The length of time to wait for more output from the +CGI program
    CGIMapExtension cgi-path .extensiondhC
    Technique for locating the interpreter for CGI scripts
    CharsetDefault charsetsvdhX
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhX
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhX
    Source charset of files
    CheckSpelling on|off Off svdhE
    Enables the spelling +
    CharsetDefault charsetsvdhE
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhE
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhE
    Source charset of files
    CheckCaseOnly on|off Off svdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off svdhE
    Enables the spelling module
    ChildPerUserID user-id group-id -num-childrensM
    Specify user ID and group ID for a number of child -processes
    ContentDigest On|Off Off svdhC
    Enables the generation of Content-MD5 HTTP Response +
    ChrootDir /path/to/directorysM
    Directory for apache to run chroot(8) after startup.
    ContentDigest On|Off Off svdhC
    Enables the generation of Content-MD5 HTTP Response headers
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    Sets filename for the logging of cookies
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle - Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Directory where Apache attempts to +
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    Sets filename for the logging of cookies
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle + Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Directory where Apache attempts to switch before dumping core
    CustomLog file|pipe +
    CustomLog file|pipe format|nickname -[env=[!]environment-variable]svB
    Sets filename and format of log file
    Dav On|Off|provider-name Off dE
    Enable WebDAV HTTP methods
    DavDepthInfinity on|off off svdE
    Allow PROPFIND, Depth: Infinity requests
    DavGenericLockDB file-pathsvdE
    Location of the DAV lock database
    DavLockDB file-pathsvE
    Location of the DAV lock database
    DavMinTimeout seconds 0 svdE
    Minimum amount of time the server holds a lock on +[env=[!]environment-variable]svB
    Sets filename and format of log file
    Dav On|Off|provider-name Off dE
    Enable WebDAV HTTP methods
    DavDepthInfinity on|off off svdE
    Allow PROPFIND, Depth: Infinity requests
    DavGenericLockDB file-pathsvdE
    Location of the DAV lock database
    DavLockDB file-pathsvE
    Location of the DAV lock database
    DavMinTimeout seconds 0 svdE
    Minimum amount of time the server holds a lock on a DAV resource
    DBDExptime time-in-secondssvX
    Keepalive time for idle connections
    DBDKeep numbersvX
    Maximum sustainednumber of connections
    DBDMax numbersvX
    Maximum number of connections
    DBDMin numbersvX
    Minimum number of connections
    DBDParams -param1=value1[,param2=value2]svX
    Parameters for database connection
    DBDPersist 0|1svX
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvX
    Define an SQL prepared statement
    DBDriver namesvX
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    Icon to display for files when no specific icon is +
    DBDExptime time-in-seconds 300 svE
    Keepalive time for idle connections
    DBDKeep number 2 svE
    Maximum sustained number of connections
    DBDMax number 10 svE
    Maximum number of connections
    DBDMin number 1 svE
    Minimum number of connections
    DBDParams +param1=value1[,param2=value2]svE
    Parameters for database connection
    DBDPersist On|OffsvE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvE
    Define an SQL prepared statement
    DBDriver namesvE
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    Icon to display for files when no specific icon is configured
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified +
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified language
    DefaultType MIME-type text/plain svdhC
    MIME content-type that will be sent if the +
    DefaultType MIME-type|none text/plain svdhC
    MIME content-type that will be sent if the server cannot determine a type in any other way
    DeflateBufferSize value 8096 svE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valuesvE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenamesvE
    Places the compression ratio in a note for logging
    DeflateBufferSize value 8096 svE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valuesvE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenamesvE
    Places the compression ratio in a note for logging
    DeflateInflateLimitRequestBodyvaluesvdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valuesvdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valuesvdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 svE
    How much memory should be used by zlib for compression
    DeflateWindowSize value 15 svE
    Zlib compression window size
    Deny from all|host|env=env-variable -[host|env=env-variable] ...dhB
    Controls which hosts are denied access to the +
    Deny from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts are denied access to the server
    <Directory directory-path> ... </Directory>svC
    Enclose a group of directives that apply only to the -named file-system directory and sub-directories
    DirectoryIndex local-url [local-url] ... index.html svdhB
    List of resources to look for when the client requests a directory
    DocumentRoot directory-path /usr/local/apache/h +svC
    Directory that forms the main document tree visible from the web
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Enables a hook that runs exception handlers +
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Enables a hook that runs exception handlers after a crash
    EnableMMAP On|Off On svdhC
    Use memory-mapping to read files during delivery
    EnableSendfile On|Off On svdhC
    Use the kernel sendfile support to deliver files to the client
    ErrorDocument error-code documentsvdhC
    What the server will return to the client +
    EnableMMAP On|Off On svdhC
    Use memory-mapping to read files during delivery
    EnableSendfile On|Off On svdhC
    Use the kernel sendfile support to deliver files to the client
    ErrorDocument error-code documentsvdhC
    What the server will return to the client in case of an error
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    Location where the server will log errors
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module +
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    Location where the server will log errors
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module API
    ExpiresActive On|OffsvdhE
    Enables generation of Expires +
    ExpiresActive On|OffsvdhE
    Enables generation of Expires headers
    ExpiresByType MIME-type -<code>secondssvdhE
    Value of the Expires header configured +
    ExpiresByType MIME-type +<code>secondssvdhE
    Value of the Expires header configured by MIME type
    ExpiresDefault <code>secondssvdhE
    Default algorithm for calculating expiration time
    ExtendedStatus On|Off Off sB
    Keep track of extended status information for each +
    ExpiresDefault <code>secondssvdhE
    Default algorithm for calculating expiration time
    ExtendedStatus On|Off Off sB
    Keep track of extended status information for each request
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag -HTTP response header
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FallbackResource disabled | local-urlsvdhB
    Define a default URL for requests that don't map to a file
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag +HTTP response header for static files
    <Files filename> ... </Files>svdhC
    Contains directives that apply to matched filenames
    <FilesMatch regex> ... </FilesMatch>svdhC
    Contains directives that apply to regular-expression matched filenames
    FilterChain [+=-@!]filter-name ...svdhX
    Configure the filter chain
    FilterDeclare filter-name [type]svdhX
    Declare a smart filter
    FilterChain [+=-@!]filter-name ...svdhB
    Configure the filter chain
    FilterDeclare filter-name [type]svdhB
    Declare a smart filter
    FilterProtocol filter-name [provider-name] - proto-flagssvdhX
    Deal with correct HTTP protocol handling
    svdhB
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name - [req|resp|env]=dispatch matchsvdhX
    Register a content filter
    FilterTrace filter-name levelsvdX
    Get debug/diagnostic information from + [req|resp|env]=dispatch matchsvdhB
    Register a content filter
    FilterTrace filter-name levelsvdB
    Get debug/diagnostic information from mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not found
    ForceType MIME-type|NonedhC
    Forces all matching files to be served with the specified MIME content-type
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    Group unix-group #-1 sM
    Group under which the server will answer +
    GprofDir /tmp/gprof/|/tmp/gprof/%svC
    Directory to write gmon.out profiling data to.
    GracefulShutDownTimeout secondssM
    Specify a timeout after which a gracefully shutdown server +will exit.
    Group unix-group #-1 sM
    Group under which the server will answer requests
    Header [condition] set|append|add|unset|echo -header [value] [early|env=[!]variable]svdhE
    Configure HTTP response headers
    Header [condition] set|append|merge|add|unset|echo|edit +header [value] [replacement] +[early|env=[!]variable]svdhE
    Configure HTTP response headers
    HeaderName filenamesvdhB
    Name of the file that will be inserted at the top of the index listing
    HostnameLookups On|Off|Double Off svdC
    Enables DNS lookups on client IP addresses
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote +
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +svC
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote user
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parameter-name> ... - </IfDefine>svdhC
    Encloses directives that will be processed only +
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parameter-name> ... + </IfDefine>svdhC
    Encloses directives that will be processed only if a test is true at startup
    <IfModule [!]module-file|module-identifier> ... - </IfModule>svdhC
    Encloses directives that are processed conditional on the +
    <IfModule [!]module-file|module-identifier> ... + </IfModule>svdhC
    Encloses directives that are processed conditional on the presence or absence of a specific module
    <IfVersion [[!]operator] version> ... -</IfVersion>svdhE
    contains version dependent configuration
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates +
    <IfVersion [[!]operator] version> ... +</IfVersion>svdhE
    contains version dependent configuration
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates that are not explicitly mapped
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling +
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling an imagemap
    Include file-path|directory-pathsvdC
    Includes other configuration files from within +
    Include file-path|directory-pathsvdC
    Includes other configuration files from within the server configuration files
    IndexIgnore file [file] ...svdhB
    Adds to the list of files to hide when listing +
    IndexHeadInsert "markup ..."svdhB
    Inserts text in the HEAD section of an index page.
    IndexIgnore file [file] ... "." svdhB
    Adds to the list of files to hide when listing a directory
    IndexOptions [+|-]option [[+|-]option] -...svdhB
    Various configuration settings for directory +...svdhB
    Various configuration settings for directory indexing
    IndexOrderDefault Ascending|Descending Name|Date|Size|Description Ascending Name svdhB
    Sets the default ordering of the directory index
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 102400 sE
    Size in bytes of the shared-memory cache
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per connection client certificate. Not all LDAP toolkits support per connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted Certificate Authority or global client certificates
    LDAPTrustedMode typesvdhE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPTrustedMode typesvE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... </Limit>svdhC
    Restrict enclosed access controls to only certain HTTP @@ -414,11 +450,11 @@ except the named ones
    LimitRequestBody bytes 0 svdhC
    Restricts the total size of the HTTP request body sent from the client
    LimitRequestFields number 100 sC
    Limits the number of HTTP request header fields that +
    LimitRequestFields number 100 svC
    Limits the number of HTTP request header fields that will be accepted from the client
    LimitRequestFieldsize bytessC
    Limits the size of the HTTP request header allowed from the +
    LimitRequestFieldSize bytes 8190 svC
    Limits the size of the HTTP request header allowed from the client
    LimitRequestLine bytes 8190 sC
    Limit the size of the HTTP request line that will be accepted +
    LimitRequestLine bytes 8190 svC
    Limit the size of the HTTP request line that will be accepted from the client
    LimitXMLRequestBody bytes 1000000 svdhC
    Limits the size of an XML-based request body
    Listen [IP-address:]portnumber [protocol]sM
    IP addresses and ports that the server @@ -437,53 +473,54 @@ matching URLs
    LogFormat format|nickname [nickname] "%h %l %u %t \"%r\" +svB
    Describes a format for use in a log file
    LogLevel level warn svC
    Controls the verbosity of the ErrorLog
    MaxClients numbersM
    Maximum number of child processes that will be created -to serve requests
    MaxClients numbersM
    Maximum number of connections that will be processed +simultaneously
    MaxKeepAliveRequests number 100 svC
    Number of requests allowed on a persistent connection
    MaxMemFree KBytes 0 sM
    Maximum amount of memory that the main allocator is allowed to hold without calling free()
    MaxRequestsPerChild number 10000 sM
    Limit on the number of requests that an individual child server +
    MaxRanges default | unlimited | none | number-of-ranges 200 svdC
    Number of ranges allowed before returning the complete +resource
    MaxRequestsPerChild number 10000 sM
    Limit on the number of requests that an individual child server will handle during its life
    MaxRequestsPerThread number 0 sM
    Limita el número de peticiones que una hebra (thread) puede +
    MaxRequestsPerThread number 0 sM
    Limita el número de peticiones que una hebra (thread) puede atender durante su vida
    MaxSpareServers number 10 sM
    Maximum number of idle child server processes
    MaxSpareThreads numbersM
    Maximum number of idle threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MaxThreadsPerChild number 64 sM
    Maximum number of threads per child process
    MaxSpareServers number 10 sM
    Maximum number of idle child server processes
    MaxSpareThreads numbersM
    Maximum number of idle threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MCacheMaxObjectCount value 1009 sE
    The maximum number of objects allowed to be placed in the cache
    MCacheMaxObjectSize bytes 10000 sE
    The maximum size (in bytes) of a document allowed in the cache
    MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sE
    Maximum amount of a streamed response to buffer in memory before declaring the response uncacheable
    MCacheMinObjectSize bytes 0 sE
    The minimum size (in bytes) of a document to be allowed in the +
    MCacheMinObjectSize bytes 1 sE
    The minimum size (in bytes) of a document to be allowed in the cache
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    The algorithm used to select documents for removal from the cache
    MCacheSize KBytes 100 sE
    The maximum amount of memory used by the cache in KBytes
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information +
    MergeTrailers [on|off] off svC
    Determines whether trailers are merged into headers
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information files
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style +
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style meta information
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents +
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents using the specified magic file
    MinSpareServers number 5 sM
    Minimum number of idle child server processes
    MinSpareThreads numbersM
    Minimum number of idle threads available to handle request +
    MinSpareServers number 5 sM
    Minimum number of idle child server processes
    MinSpareThreads numbersM
    Minimum number of idle threads available to handle request spikes
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    Tells mod_mime to treat path_info +
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    Tells mod_mime to treat path_info components as part of the filename
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers -[Handlers|Filters] NegotiatedOnly svdhB
    The types of files that will be included when searching for +
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters] NegotiatedOnly svdhB
    The types of files that will be included when searching for a matching file with MultiViews
    NameVirtualHost addr[:port]sC
    Designates an IP address for name-virtual +
    NameVirtualHost addr[:port]sC
    Designates an IP address for name-virtual hosting
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to +
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to directly
    NumServers number 2 sM
    Total number of children alive at the same time
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options @@ -496,26 +533,35 @@ evaluated.
    svdhB
    Passes environment variables from the shell
    PidFile filename logs/httpd.pid sM
    File where the server records the process ID of the daemon
    ProtocolEcho On|OffsvX
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a +
    Protocol protocolsvC
    Protocol for a listening socket
    ProtocolEcho On|Off Off svX
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a response
    ProxyBlock *|word|host|domain -[word|host|domain] ...svE
    Words, hosts, or domains that are banned from being +
    ProxyBlock *|word|host|domain +[word|host|domain] ...svE
    Words, hosts, or domains that are banned from being proxied
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyFtpDirCharset character set ISO-8859-1 svdE
    Define the character set for proxied FTP listings
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched proxied resources
    ProxyMaxForwards number 10 svE
    Maximium number of proxies that a request can be forwarded +
    ProxyMaxForwards number -1 svE
    Maximium number of proxies that a request can be forwarded through
    ProxyPass [path] !|url [key=value key=value ...]]svdE
    Maps remote servers into the local server URL-space
    ProxyPassReverse [path] urlsvdE
    Adjusts the URL in HTTP response headers sent from a reverse +
    ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]svdE
    Maps remote servers into the local server URL-space
    ProxyPassInterpolateEnv On|Off Off svdE
    Enable Environment Variable interpolation in Reverse Proxy configurations
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]svdE
    Maps remote servers into the local server URL-space using regular expressions
    ProxyPassReverse [path] url +[interpolate]svdE
    Adjusts the URL in HTTP response headers sent from a reverse proxied server
    ProxyPassReverseCookieDomain internal-domain public-domainsvdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]svdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- proxied server
    ProxyPassReverseCookiePath internal-path public-pathsvdE
    Adjusts the Path string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]svdE
    Adjusts the Path string in Set-Cookie headers from a reverse- proxied server
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy request
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular expressions
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxyTimeout seconds 300 svE
    Network timeout for proxied requests
    ProxySCGIInternalRedirect On|Off On svdE
    Enable or disable internal redirect responses from the +backend
    ProxySCGISendfile On|Off|Headername Off svdE
    Enable evaluation of X-Sendfile pseudo response +header
    ProxySet url key=value [key=value ...]dE
    Set various Proxy balancer or member parameters
    ProxyStatus Off|On|Full Off svE
    Show Proxy LoadBalancer status in mod_status
    ProxyTimeout secondssvE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response header for proxied requests
    ReadmeName filenamesvdhB
    Name of the file that will be inserted at the end of the index listing
    Redirect [status] URL-path -URLsvdhB
    Sends an external redirect asking the client to fetch +
    ReceiveBufferSize bytes 0 sM
    TCP receive buffer size
    Redirect [status] URL-path +URLsvdhB
    Sends an external redirect asking the client to fetch a different URL
    RedirectMatch [status] regex -URLsvdhB
    Sends an external redirect based on a regular expression match +
    RedirectMatch [status] regex +URLsvdhB
    Sends an external redirect based on a regular expression match of the current URL
    RedirectPermanent URL-path URLsvdhB
    Sends an external permanent redirect asking the client to fetch +
    RedirectPermanent URL-path URLsvdhB
    Sends an external permanent redirect asking the client to fetch a different URL
    RedirectTemp URL-path URLsvdhB
    Sends an external temporary redirect asking the client to fetch +
    RedirectTemp URL-path URLsvdhB
    Sends an external temporary redirect asking the client to fetch a different URL
    RegisterHttpMethod method [method [...]]sC
    Register non-standard HTTP methods
    RemoveCharset extension [extension] ...vdhB
    Removes any character set associations for a set of file extensions
    RemoveType extension [extension] ...vdhB
    Removes any content type associations for a set of file extensions
    RequestHeader set|append|add|unset header -[value] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    Require entity-name [entity-name] ...dhC
    Selects which authenticated users can access +
    RequestHeader set|append|merge|add|unset|edit header +[value] [replacement] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +svE
    Set timeout values for receiving request headers and body from client. +
    Require entity-name [entity-name] ...dhC
    Selects which authenticated users can access a resource
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond - TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place +
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond + TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap +
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap synchronization
    RewriteLog file-pathsvE
    Sets the name of the file used for logging rewrite engine +
    RewriteLog file-path|pipesvE
    Sets the name of the file used for logging rewrite engine processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite +
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite engine
    RewriteMap MapName MapType:MapSource -svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule - Pattern SubstitutionsvdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Limits the CPU consumption of processes launched +
    RewriteMap MapName MapType:MapSource +svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule + Pattern Substitution [flags]svdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Limits the CPU consumption of processes launched by Apache children
    RLimitMEM bytes|max [bytes|max]svdhC
    Limits the memory consumption of processes launched +
    RLimitMEM bytes|max [bytes|max]svdhC
    Limits the memory consumption of processes launched by Apache children
    RLimitNPROC number|max [number|max]svdhC
    Limits the number of processes that can be launched by +
    RLimitNPROC number|max [number|max]svdhC
    Limits the number of processes that can be launched by processes launched by Apache children
    Satisfy Any|All All dhC
    Interaction between host-level access control and +
    Satisfy Any|All All dhC
    Interaction between host-level access control and user authentication
    ScoreBoardFile file-path logs/apache_status sM
    Location of the file used to store coordination data for +
    ScoreBoardFile file-path logs/apache_runtime +sM
    Location of the file used to store coordination data for the child processes
    Script method cgi-scriptsvdB
    Activates a CGI script for a particular request +
    Script method cgi-scriptsvdB
    Activates a CGI script for a particular request method.
    ScriptAlias URL-path -file-path|directory-pathsvB
    Maps a URL to a filesystem location and designates the +
    ScriptAlias URL-path +file-path|directory-pathsvB
    Maps a URL to a filesystem location and designates the target as a CGI script
    ScriptAliasMatch regex -file-path|directory-pathsvB
    Maps a URL to a filesystem location using a regular expression +
    ScriptAliasMatch regex +file-path|directory-pathsvB
    Maps a URL to a filesystem location using a regular expression and designates the target as a CGI script
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    Technique for locating the interpreter for CGI +
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    Technique for locating the interpreter for CGI scripts
    ScriptLog file-pathsvB
    Location of the CGI script error logfile
    ScriptLogBuffer bytes 1024 svB
    Maximum amount of PUT or POST requests that will be recorded +
    ScriptLog file-pathsvB
    Location of the CGI script error logfile
    ScriptLogBuffer bytes 1024 svB
    Maximum amount of PUT or POST requests that will be recorded in the scriptlog
    ScriptLogLength bytes 10385760 svB
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock svB
    The name of the socket to use for communication with +
    ScriptLogLength bytes 10385760 svB
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock sB
    The filename prefix of the socket to use for communication with the cgi daemon
    SecureListen [IP-address:]portnumber -Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SeeRequestTail On|Off Off sB
    Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    SendBufferSize bytes 0 sM
    TCP buffer size
    ServerAdmin email-address|URLsvC
    Email address that the server includes in error messages sent to the client
    ServerAlias hostname [hostname] ...vC
    Alternate names for a host used when matching requests to name-virtual hosts
    ServerLimit numbersM
    Upper limit on configurable number of processes
    ServerName fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify +
    ServerName [scheme://]fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify itself
    ServerPath URL-pathvC
    Legacy URL pathname for a name-based virtual host that is accessed by an incompatible browser
    ServerSignature On|Off|EMail Off svdhC
    Configures the footer on server-generated documents
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Configures the Server HTTP response header
    SetEnv env-variable valuesvdhB
    Sets environment variables
    SetEnv env-variable [value]svdhB
    Sets environment variables
    SetEnvIf attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request @@ -638,33 +700,40 @@ handler
    SetOutputFilter filter[;filter...]svdhC
    Sets the filters that will process responses from the server
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI +
    SSIEnableAccess on|off off dhB
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI error
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are +
    SSIETag on|off off dhB
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhB
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are displayed
    SSIUndefinedEcho string "(none)" svdhB
    String displayed when an unset variable is echoed
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +
    SSIUndefinedEcho string "(none)" svdhB
    String displayed when an unset variable is echoed
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates for Client Auth
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for Client Auth
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates for defining acceptable CA names
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for defining acceptable CA names
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for Client Auth
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for Client Auth
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL handshake
    SSLCompression on|off off svE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLHonorCiperOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off svE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for Remote Server Auth
    SSLProxyCheckPeerCN on|off off svE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off svE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svdhE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Remote Server +
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svE
    Maximum depth of CA Certificates in Remote Server Certificate verification
    SSLRandomSeed context source -[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding +
    SSLRandomSeed context source +[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding source
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the @@ -699,29 +774,42 @@ HTTP request
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires in the Session Cache
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client +
    SSLSessionTicketKeyFile file-pathsvE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on svE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off svE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client Certificate verification
    StartServers numbersM
    Number of child server processes created at startup
    StartThreads numbersM
    Number of threads created on startup
    SuexecUserGroup User GroupsvE
    User and group permissions for CGI programs
    StartServers numbersM
    Number of child server processes created at startup
    StartThreads numbersM
    Number of threads created on startup
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsC
    Enable or disable the suEXEC feature
    SuexecUserGroup User GroupsvE
    User and group for CGI programs to run as
    ThreadLimit numbersM
    Sets the upper limit on the configurable number of threads per child process
    ThreadsPerChild numbersM
    Number of threads created by each child process
    ThreadStackSize sizesM
    The size in bytes of the stack used by threads handling client connections
    TimeOut seconds 300 sC
    Amount of time the server will wait for +
    TimeOut seconds 300 svC
    Amount of time the server will wait for certain events before failing a request
    TransferLog file|pipesvB
    Specify location of a log file
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] -...svdhB
    Removes variables from the environment
    UseCanonicalName On|Off|DNS Off svdC
    Configures how the server determines its own name and +
    TraceEnable [on|off|extended] on svC
    Determines the behaviour on TRACE +requests
    TransferLog file|pipesvB
    Specify location of a log file
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] +...svdhB
    Removes variables from the environment
    UseCanonicalName On|Off|DNS Off svdC
    Configures how the server determines its own name and +port
    UseCanonicalPhysicalPort On|Off Off svdC
    Configures how the server determines its own name and port
    User unix-userid #-1 sM
    The userid under which the server will answer requests
    UserDir directory-filenamesvB
    Location of the user-specific directories
    UserDir directory-filename [directory-filename] ... +svB
    Location of the user-specific directories
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root @@ -741,10 +829,34 @@ set
    - - - -
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  - - - - - -
    s¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë
    v¥С¼¥Á¥ã¥ë¥ۥ¹¥È
    d¥ǥ£¥쥯¥ȥê
    h.htaccess
    - - - - - - -
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AcceptFilter protocol accept_filtersC
    ¥ץí¥ȥ³¥ë¤ò Listen ¤·¤Ƥ¤¤륽¥±¥åȤκÇŬ²½¤òÀßÄꤹ¤ë
    AcceptMutex default|method default sM
    ʣ¿ô¤λҥץí¥»¥¹¤¬¥ͥåȥ¥¯¥½¥±¥åȤǥꥯ¥¨¥¹¥Ȥò -accept ¤·¤褦¤Ȥ·¤Ƥ¤¤ë¤Ȥ­¤ˡ¢Apache ¤¬¤½¤ì¤é¤λҥץí¥»¥¹¤òľÎ󲽤¹¤뤿¤á¤Ë -»Ȥ¦Êýˡ
    AcceptPathInfo On|Off|Default Default svdhC
    ¸å¤Ë³¤¯¥ѥ¹̾¾ðÊó¤ò¼õ¤±Éդ±¤ë¥꥽¡¼¥¹¤λØÄê
    AccessFileName filename [filename] ... .htaccess svC
    ʬ»¶ÀßÄê¥ե¡¥¤¥ë¤Î̾Á°
    Action action-type cgi-script [virtual]svdhB
    ÆÃÄê¤Υϥó¥ɥé¤䥳¥ó¥ƥó¥ȥ¿¥¤¥פËÂФ·¤Æ CGI ¤ò¼¹Ԥ¹¤ë¤褦¤Ë -ÀßÄê
    AddAlt string file [file] ...svdhB
    ¥¢¥¤¥³¥ó¤ÎÂå¤ï¤ê¤Ë -ɽ¼¨¤µ¤ì¤롢¥ե¡¥¤¥ë̾¤ÇÁªÂ򤵤줿ÂåÂإƥ­¥¹¥È
    AddAltByEncoding string MIME-encoding -[MIME-encoding] ...svdhB
    ¥¢¥¤¥³¥ó¤ÎÂå¤ï¤ê¤Ëɽ¼¨¤µ¤ì¤롢MIME Éä¹沽Êýˡ¤ÇÁªÂ򤵤줿 -ÂåÂإƥ­¥¹¥È
    AddAltByType string MIME-type -[MIME-type] ...svdhB
    ¥¢¥¤¥³¥ó¤ÎÂå¤ï¤ê¤Ë -ɽ¼¨¤µ¤ì¤롢MIME ¥¿¥¤¥פÇÁªÂ򤵤줿ÂåÂإƥ­¥¹¥È
    AddCharset charset extension -[extension] ...svdh
    ¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿ʸ»ú¥»¥åȤ˥ޥåפ¹¤ë
    AddDefaultCharset On|Off|charset Off svdhC
    ¥쥹¥ݥ󥹤Υ³¥ó¥ƥó¥ȥ¿¥¤¥פ¬ text/plain ¤¢¤뤤¤Ï -text/html ¤ξì¹ç¤ËÄɲ乤ë¥ǥե©¥ë¥ȤÎ charset ¥ѥé¥᡼¥¿
    AddDescription string file [file] ...svdhB
    ¥ե¡¥¤¥ë¤ËÂФ·¤Æɽ¼¨¤¹¤ëÀâÌÀ
    AddEncoding MIME-enc extension -[extension] ...svdh
    ¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿¥¨¥󥳡¼¥ǥ£¥ó¥° -¤˥ޥåפ¹¤ë
    AddHandler handler-name extension -[extension] ...svdh
    ¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿¥ϥó¥ɥé¤˥ޥåפ¹¤ë
    AddIcon icon name -[name] ...svdhB
    ¥ե¡¥¤¥ë¤Ëɽ¼¨¤¹¤륢¥¤¥³¥ó¤ò̾Á°¤ÇÁªÂò
    AddIconByEncoding icon MIME-encoding -[MIME-encoding] ...svdhB
    ¥ե¡¥¤¥ë¤Ëɽ¼¨¤¹¤륢¥¤¥³¥ó¤ò MIME -Éä¹沽Êýˡ¤ÇÁªÂò
    AddIconByType icon MIME-type -[MIME-type] ...svdhB
    ¥ե¡¥¤¥ë¤ÎÎ٤Ëɽ¼¨¤¹¤륢¥¤¥³¥ó¤ò -MIME ¥¿¥¤¥פˤè¤äÆÁªÂò
    AddInputFilter filter[;filter...] -extension [extension] ...svdh
    ¥ե¡¥¤¥ë¤γÈĥ»Ҥ򥯥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥Ȥò½èÍý¤¹¤ë - ¥ե£¥륿¤˥ޥåפ¹¤ë
    AddLanguage MIME-lang extension -[extension] ...svdh
    ¥ե¡¥¤¥ë̾¤ò»ØÄꤵ¤줿¸À¸ì¤˥ޥå×
    AddModuleInfo module-name stringsvE
    server-info ¥ϥó¥ɥé¤ˤè¤êɽ¼¨¤µ¤ì¤ë¥⥸¥塼¥ë¤ξðÊó¤Ë -ÄɲäξðÊó¤òÉդ±²ä¨¤ë
    AddOutputFilter filter[;filter...] -extension [extension] ...svdh
    ¥ե¡¥¤¥ë̾¤γÈĥ»Ҥ򥵡¼¥Ф«¤é¤αþÅú¤ò½èÍý¤¹¤ë¥ե£¥륿¤Ë - ¥ޥåפ¹¤ë
    AddOutputFilterByType filter[;filter...] MIME-type -[MIME-type] ...svdhC
    MIME-type ¤˽ÐÎϥե£¥륿¤ò³ä¤êÅö¤Ƥë
    AddType MIME-type extension -[extension] ...svdh
    ¥ե¡¥¤¥ë̾¤γÈĥ»Ҥò»ØÄꤵ¤줿¥³¥ó¥ƥó¥ȥ¿¥¤¥פ˥ޥå×
    Alias URL-path -file-path|directory-pathsvB
    URL ¤ò¥ե¡¥¤¥륷¥¹¥ƥà¤ΰÌÃ֤˥ޥåפ¹¤ë
    AliasMatch regex -file-path|directory-pathsvB
    Àµµ¬ɽ¸½¤ò»ȤäÆ URL ¤ò¥ե¡¥¤¥륷¥¹¥ƥà¤ΰÌÃ֤˥ޥåפ¹¤ë
    Allow from all|host|env=env-variable -[host|env=env-variable] ...dhB
    ¥µ¡¼¥ФΤ¢¤ëÎΰè¤˥¢¥¯¥»¥¹¤Ǥ­¤ë¥ۥ¹¥ȤòÀ©¸椹¤ë
    AllowCONNECT port [port] ... 443 563 svE
    ¥ץí¥­¥·¤ò·Ðͳ¤·¤ơ¢¤ɤΥݡ¼¥ȤË CONNECT -¤Ǥ­¤뤫¤ò»ØÄꤹ¤ë
    AllowEncodedSlashes On|Off Off svC
    URL Ãæ¤ÎÉä¹沽¤µ¤줿¥ѥ¹ʬΥʸ»ú¤¬Àè¤ËÅÁ¤¨¤é¤ì¤ë¤Τòµö²Ĥ¹¤뤫¤ɤ¦¤«¤ò -·èÄꤹ¤ë
    AllowOverride All|None|directive-type -[directive-type] ... All dC
    .htaccess ¤ǵö²Ĥµ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤μïÎà
    Anonymous user [user] ...dhE
    ¥ѥ¹¥¥ɤθ¡ºº̵¤·¤ǥ¢¥¯¥»¥¹¤òµö²Ĥ¹¤ë userID ¤ò»ØÄꤹ¤ë -
    Anonymous_LogEmail On|Off On dhE
    ÆþÎϤµ¤줿¥ѥ¹¥¥ɤ¬¥¨¥顼¥í¥°¤˥í¥®¥󥰤µ¤ì¤뤫¤ɤ¦¤«¤ò -ÀßÄꤹ¤ë
    Anonymous_MustGiveEmail On|Off On dhE
    ¶õ¥ѥ¹¥¥ɤòµö²Ĥ¹¤뤫¤ɤ¦¤«¤ò»ØÄꤹ¤ë
    Anonymous_NoUserID On|Off Off dhE
    ¶õ userID ¤òµö²Ĥ¹¤뤫¤ò»ØÄꤹ¤ë
    Anonymous_VerifyEmail On|Off Off dhE
    ¥ѥ¹¥¥ÉÍó¤¬Àµ¤·¤¤·Á¼°¤ÎÅŻҥ᡼¥륢¥ɥ쥹¤Ǥ¢¤뤳¤Ȥò -Ĵ¤٤뤫¤ɤ¦¤«¤òÀßÄꤹ¤ë
    AssignUserID user-id group-idvM
    Tie a virtual host to a user and group ID
    AuthBasicAuthoritative On|Off On dhB
    ǧ¾ڤȾµǧ¤򡢤è¤êÄ㤤¥ì¥٥ë¤Υ⥸¥塼¥ë¤˰ܹԤµ¤»¤뤫¤ò -ÀßÄꤷ¤ޤ¹¡£
    AuthBasicProvider On|Off|provider-name -[provider-name] ... On dhB
    ¤³¤ΰÌÃ֤ËÂФ¹¤ëǧ¾ڥץí¥Х¤¥À¤òÀßÄꤷ¤ޤ¹¡£
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list -of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    ¥ѥ¹¥¥ɤòÊݸ¤¹¤뤿¤á¤ËɬÍפʥǡ¼¥¿¥١¼¥¹¥ե¡¥¤¥ë¤μïÎà¤ò -ÀßÄꤹ¤ë
    AuthDBMUserFile file-pathdhE
    ǧ¾ÚÍѤΥ桼¥¶¤ȥѥ¹¥¥ɤΥꥹ¥ȤòÊݻý¤·¤Ƥ¤¤ë -¥ǡ¼¥¿¥١¼¥¹¥ե¡¥¤¥ë̾¤òÀßÄꤹ¤ë
    AuthDefaultAuthoritative On|Off On dhB
    ¼¡¤ÎÄ㼡¥ì¥٥ë¤Îǧ¾ڥ⥸¥塼¥ë¤ËÀ©¸æ¤òÅϤ¹¤«¤ɤ¦¤«¤ò -ÀßÄꤷ¤ޤ¹
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
    Selects the algorithm used to calculate the challenge and -response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhX
    URIs that are in the same protection space for digest -authentication
    AuthDigestNcCheck On|Off Off sX
    Enables or disables checking of the nonce-count sent by the -server
    AuthDigestNonceFormat formatdhX
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhX
    How long the server nonce is valid
    AuthDigestProvider On|Off|provider-name -[provider-name] ... On dhX
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhX
    Determines the quality-of-protection to use in digest -authentication
    AuthDigestShmemSize size 1000 sX
    The amount of shared memory to allocate for keeping track -of clients
    AuthGroupFile file-pathdhB
    ¾Úǧ¤˻ÈÍѤ¹¤ë¥桼¥¶¥°¥롼¥פΰìÍ÷¤¬³ÊǼ¤µ¤ì¤Ƥ¤¤롢 -¥ƥ­¥¹¥ȥե¡¥¤¥ë¤Î̾Á°¤òÀßÄꤹ¤ë
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attributedhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for -group membership
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER -environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    HTTP ǧ¾ڤÎǧ²ÄÎΰè (ÌõÃí: realm)
    <AuthnProviderAlias baseProvider Alias> -... </AuthnProviderAlias>svE
    Enclose a group of directives that represent an -extension of a base authentication provider and referenced by -the specified alias
    AuthType Basic|DigestdhC
    ¥桼¥¶ǧ¾ڤμïÎà
    AuthUserFile file-pathdhB
    ǧ¾ڤ˻ÈÍѤ¹¤ë¥桼¥¶¤ȥѥ¹¥¥ɤΰìÍ÷¤¬³ÊǼ¤µ¤ì¤Ƥ¤¤롢 -¥ƥ­¥¹¥ȥե¡¥¤¥ë¤Î̾Á°¤òÀßÄꤹ¤ë
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level -modules
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to -store list of user groups
    AuthzDefaultAuthoritative On|Off On dhB
    ¾µǧ¤¬Äã°̤Υ⥸¥塼¥ë¤ËÅϤµ¤ì¤뤫¤ɤ¦¤«¤òÀßÄꤹ¤ë
    AuthzGroupFileAuthoritative On|Off On dhB
    ¾µǧ¤¬²¼°̤Υ⥸¥塼¥ë¤ËÅϤµ¤ì¤뤫¤ɤ¦¤«¤òÀßÄꤹ¤ë
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from -authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    ¾µǧ¤¬²¼°̾µǧ¥⥸¥塼¥ë¤ËÅϤµ¤ì¤뤫¤ɤ¦¤«¤òÀßÄꤹ¤ë
    AuthzUserAuthoritative On|Off On dhB
    ¾µǧ¤¬²¼°̤Υ⥸¥塼¥ë¤ËÅϤµ¤ì¤뤫¤ɤ¦¤«¤òÀßÄꤹ¤ë
    BrowserMatch regex [!]env-variable[=value] -[[!]env-variable[=value]] ...svdhB
    HTTP User-Agent ¤˴ð¤Ť¤¤ƴĶ­Êѿô¤òÀßÄꤹ¤ë -
    BrowserMatchNoCase regex [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    HTTP User-Agent ¤˴ð¤Ť¤¤ÆÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¤Ë -´Ķ­Êѿô¤òÀßÄꤹ¤ë
    BufferedLogs On|Off Off sB
    ¥ǥ£¥¹¥¯¤˽񤭽Ф¹Á°¤˥á¥â¥ê¤˥í¥°¥¨¥ó¥ȥê¤ò¥Хåե¡¤¹¤ë
    CacheDefaultExpire seconds 3600 (1»þ´Ö) svE
    ´üÆü¤¬»ØÄꤵ¤ì¤Ƥ¤¤ʤ¤¤Ȥ­¤˥ɥ­¥å¥á¥ó¥Ȥ򥭥ã¥å·¥夹¤ë¥ǥե©¥ë¥Ȥδü´Ö
    CacheDirLength length 2 svE
    ¥µ¥֥ǥ£¥쥯¥ȥê̾¤Îʸ»ú¿ô
    CacheDirLevels levels 3 svE
    ¥­¥ã¥å·¥å¤Υµ¥֥ǥ£¥쥯¥ȥê¤ο¼¤µ¤οô
    CacheDisable url-stringsvE
    ÆÃÄê¤Î URL ¤򥭥ã¥å·¥夷¤ʤ¤
    CacheEnable cache_type url-stringsvE
    »ØÄꤷ¤¿¥¹¥ȥ졼¥¸´ÉÍýÊý¼°¤ò»ȤäƤΥ­¥ã¥å·¥å¤òͭ¸ú¤ˤ¹¤ë
    CacheFile file-path [file-path] ...sX
    Cache a list of file handles at startup time
    CacheIgnoreCacheControl On|Off Off svE
    ¥­¥ã¥å·¥夵¤ì¤Ƥ¤¤륳¥ó¥ƥó¥ĤòÊ֤µ¤ʤ¤¤褦¤˥¯¥饤¥¢¥ó¥Ȥ«¤é -¥ꥯ¥¨¥¹¥Ȥµ¤ì¤Ƥâ̵»뤹¤ë
    CacheIgnoreHeaders header-string [header-string] ... None svE
    »ØÄꤵ¤줿 HTTP ¥إåÀ¤򥭥ã¥å·¥å¤ËÊݸ¤·¤ʤ¤¡£ -
    CacheIgnoreNoLastMod On|Off Off svE
    ±þÅú¤Ë Last Modified ¤¬̵¤¯¤Ƥⵤ¤ˤ·¤ʤ¤¤褦¤ˤ¹¤ë
    CacheLastModifiedFactor float 0.1 svE
    LastModified ¤ÎÆüÉդ˴ð¤Ť¤¤Æͭ¸ú´ü¸Â (expiry) -¤ò·׻»¤¹¤뤿¤á¤νŤߤò»ØÄꤹ¤ë -
    CacheMaxExpire seconds 86400 (°ìÆü) svE
    ¥ɥ­¥å¥á¥ó¥Ȥ򥭥ã¥å·¥夹¤ëºÇÂç»þ´֤òÉÿô¤Ǹ½¤·¤¿¤â¤Î
    CacheMaxFileSize bytes 1000000 svE
    ¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤ë¥ɥ­¥å¥á¥ó¥ȤκÇÂç¤Î (¥Х¤¥ȤǤÎ) ¥µ¥¤¥º
    CacheMinFileSize bytes 1 svE
    ¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤ë¥ɥ­¥å¥á¥ó¥ȤκǾ®¸¤Î (¥Х¤¥ȤǤÎ) Â礭¤µ
    CacheNegotiatedDocs On|Off Off svB
    ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥󤵤줿¥ɥ­¥å¥á¥ó¥Ȥò¥ץí¥­¥·¥µ¡¼¥Ф¬ -¥­¥ã¥å·¥å¤Ǥ­¤ë¤褦¤ˤ¹¤ë
    CacheRoot directorysvE
    ¥­¥ã¥å·¥å¥ե¡¥¤¥뤬Êݴɤµ¤ì¤ë¥롼¥ȥǥ£¥쥯¥ȥê
    CacheStoreNoStore On|Off Off svE
    no-store ¤ȻØÄꤵ¤ì¤Ƥ¤¤ë¥쥹¥ݥ󥹤Υ­¥ã¥å·¥å¤ò»î¤ߤ롣
    CacheStorePrivate On|Off Off svE
    private ¤ȻØÄꤵ¤ì¤Ƥ¤¤ë¥쥹¥ݥ󥹤Υ­¥ã¥å·¥å¤ò»î¤ߤ롣
    CGIMapExtension cgi-path .extensiondhC
    CGI ¥¹¥¯¥ê¥ץȤΥ¤¥󥿡¼¥ץ꥿¤ΰÌÃ֤òĴ¤٤뤿¤á¤μêˡ
    CharsetDefault charsetsvdhX
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhX
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhX
    Source charset of files
    CheckSpelling on|off Off svdhE
    spelling ¥⥸¥塼¥ë¤ò»ÈÍѤ¹¤ë¤褦¤ˤ¹¤ë
    ChildPerUserID user-id group-id -num-childrensM
    Specify user ID and group ID for a number of child -processes
    ContentDigest On|Off Off svdhC
    Content-MD5 HTTP ±þÅú¥إåÀ¤ÎÀ¸À®¤òͭ¸ú¤ˤ¹¤ë
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    ¥¯¥å­¥󥰤Υí¥®¥󥰤Τ¿¤á¤Υե¡¥¤¥ë̾¤òÀßÄꤹ¤ë
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle - Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Apache ¤¬¥³¥¢¥À¥ó¥פ¹¤ëÁ°¤˰Üư¤ò»î¤ߤë¥ǥ£¥쥯¥ȥê -
    CustomLog file|pipe -format|nickname -[env=[!]environment-variable]svB
    ¥í¥°¥ե¡¥¤¥ë¤Î̾Á°¤Ƚ񼰤òÀßÄꤹ¤ë
    Dav On|Off|provider-name Off dE
    WebDAV HTTP ¥᥽¥åɤòͭ¸ú¤ˤ·¤ޤ¹
    DavDepthInfinity on|off off svdE
    PROPFIND, Depth: Infinity ¥ꥯ¥¨¥¹¥Ȥòµö²Ĥ·¤ޤ¹
    DavGenericLockDB file-pathsvdE
    DAV ¥í¥å¯¥ǡ¼¥¿¥١¼¥¹¤ξì½ê
    DavLockDB file-pathsvE
    DAV ¥í¥å¯¥ǡ¼¥¿¥١¼¥¹¤ΰÌÃÖ
    DavMinTimeout seconds 0 svdE
    ¥µ¡¼¥Ф¬ DAV ¥꥽¡¼¥¹¤Υí¥å¯¤ò°ݻý¤¹¤ëºǾ®»þ´֤Ǥ¹¡£ -
    DBDExptime time-in-secondssvX
    Keepalive time for idle connections
    DBDKeep numbersvX
    Maximum sustainednumber of connections
    DBDMax numbersvX
    Maximum number of connections
    DBDMin numbersvX
    Minimum number of connections
    DBDParams -param1=value1[,param2=value2]svX
    Parameters for database connection
    DBDPersist 0|1svX
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvX
    Define an SQL prepared statement
    DBDriver namesvX
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    ÆÃÄê¤Υ¢¥¤¥³¥󤬲¿¤âÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤»þ¤Ë -¥ե¡¥¤¥ë¤Ëɽ¼¨¤¹¤륢¥¤¥³¥ó
    DefaultLanguage MIME-langsvdh
    ¤¢¤륹¥³¡¼¥פΤ¹¤٤ƤΥե¡¥¤¥ë¤ò»ØÄꤵ¤줿¸À¸ì¤Ë -ÀßÄꤹ¤ë
    DefaultType MIME-type text/plain svdhC
    ¥µ¡¼¥Ф¬¥³¥ó¥ƥó¥ȥ¿¥¤¥פò·èÄê¤Ǥ­¤ʤ¤¤Ȥ­¤Ë -Á÷¤é¤ì¤ë MIME ¥³¥ó¥ƥó¥ȥ¿¥¤¥×
    DeflateBufferSize value 8096 svE
    zlib ¤¬°ìÅ٤˰µ½̤¹¤ë²ô¤ÎÂ礭¤µ
    DeflateCompressionLevel valuesvE
    ½ÐÎϤËÂФ·¤ƹԤʤ¦°µ½̤ÎÄøÅÙ
    DeflateFilterNote [type] notenamesvE
    ¥í¥®¥ó¥°ÍѤ˰µ½ÌÈæ¤ò¥á¥â¤ËÄɲÃ
    DeflateMemLevel value 9 svE
    zlib ¤¬°µ½̤˻Ȥ¦¥á¥â¥ê¤Υì¥٥ë¤ò»ØÄê
    DeflateWindowSize value 15 svE
    Zlib ¤ΰµ½ÌÍѥ¦¥£¥ó¥ɥ¦¤ÎÂ礭¤µ
    Deny from all|host|env=env-variable -[host|env=env-variable] ...dhB
    ¥µ¡¼¥Ф¬¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë¥ۥ¹¥ȤòÀ©¸椹¤ë
    <Directory directory-path> -... </Directory>svC
    »ØÄê¤Υե¡¥¤¥륷¥¹¥ƥà¤Υǥ£¥쥯¥ȥê¤ȥµ¥֥ǥ£¥쥯¥ȥê¤ȤΤߤË -ŬÍѤµ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥà
    DirectoryIndex - local-url [local-url] ... index.html svdhB
    ¥¯¥饤¥¢¥ó¥Ȥ¬¥ǥ£¥쥯¥ȥê¤ò¥ꥯ¥¨¥¹¥Ȥ·¤¿¤Ȥ­¤ËĴ¤٤ë -¥꥽¡¼¥¹¤Υꥹ¥È
    <DirectoryMatch regex> -... </DirectoryMatch>svC
    Àµµ¬ɽ¸½¤˥ޥåÁ¤¹¤ë¥ե¡¥¤¥륷¥¹¥ƥà¤Υǥ£¥쥯¥ȥê¤È -¥µ¥֥ǥ£¥쥯¥ȥê¤ȤΤߤËŬÍѤµ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥà
    DirectorySlash On|Off On svdhB
    ¥ѥ¹ËöÈø¤Υ¹¥é¥å·¥å¤ǥê¥À¥¤¥쥯¥Ȥ¹¤뤫¤ɤ¦¤«¤Υª¥󥪥դò¥ȥ°¥뤵¤»¤ë
    DocumentRoot directory-path /usr/local/apache/h +svC
    ¥¦¥§¥֤«¤鸫¤¨¤ë¥ᥤ¥ó¤Υɥ­¥å¥á¥ó¥ȥĥ꡼¤ˤʤë -¥ǥ£¥쥯¥ȥê
    DumpIOInput On|Off Off sE
    ¥¨¥顼¥í¥°¤ˤ¹¤٤ƤÎÆþÎϥǡ¼¥¿¤ò¥À¥ó¥×
    DumpIOOutput On|Off Off sE
    ¥¨¥顼¥í¥°¤ˤ¹¤٤ƤνÐÎϥǡ¼¥¿¤ò¥À¥ó¥×
    EnableExceptionHook On|Off Off sM
    ¥¯¥é¥å·¥å¤θå¤ËÎ㳰¥ϥó¥ɥé¤ò¼¹Ԥ¹¤ë¥ե寤òͭ¸ú¤ˤ¹¤ë
    EnableMMAP On|Off On svdhC
    ÇÛÁ÷Ãæ¤˥ե¡¥¤¥ë¤òÆɤ߹þ¤ि¤á¤˥á¥â¥ê¥ޥåԥ󥰤ò -»Ȥ¦¤«¤ɤ¦¤«
    EnableSendfile On|Off On svdhC
    ¥ե¡¥¤¥ë¤Υ¯¥饤¥¢¥ó¥ȤؤÎÇÛÁ÷»þ¤˥«¡¼¥ͥë¤Î sendfile ¥µ¥ݡ¼¥Ȥò -»Ȥ¦¤«¤ɤ¦¤«
    ErrorDocument error-code documentsvdhC
    ¥¨¥顼¤¬ȯÀ¸¤·¤¿¤Ȥ­¤˥µ¡¼¥Ф¬¥¯¥饤¥¢¥ó¥ȤËÁ÷¤ë¤â¤Î
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    ¥µ¡¼¥Ф¬¥¨¥顼¤ò¥í¥°¼ý½¸¤¹¤ë¾ì½ê
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module -API
    ExpiresActive On|OffsvdhE
    Expires ¥إåÀ¤ÎÀ¸À®¤òͭ¸ú¤ˤ¹¤ë
    ExpiresByType MIME-type -<code>secondssvdhE
    MIME ¥¿¥¤¥פˤè¤äÆÀßÄꤵ¤ì¤ë Expires ¥إåÀ¤ÎÃÍ
    ExpiresDefault <code>secondssvdhE
    ´ü¸ÂÀڤì´üÆü¤ò·׻»¤¹¤ë¥ǥե©¥ë¥ȥ¢¥르¥ꥺ¥à
    ExtendedStatus On|Off Off sB
    ³ƥꥯ¥¨¥¹¥ȤËÂФ·¤ƳÈĥ¥¹¥ơ¼¥¿¥¹¾ðÊó¤òÊݸ¤¹¤ë
    ExtFilterDefine filtername parameterssE
    ³°Éô¥ե£¥륿¤òÄêµÁ
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    mod_ext_filter ¤Υª¥ץ·¥ç¥ó¤òÀßÄê
    FileETag component ... INode MTime Size svdhC
    ETag HTTP ±þÅú¥إåÀ¤òºîÀ®¤¹¤뤿¤á¤˻ÈÍѤµ¤ì¤ë -¥ե¡¥¤¥ë¤Î°À­
    <Files filename> ... </Files>svdhC
    ¥ޥåÁ¤¹¤ë¥ե¡¥¤¥ë̾¤ËŬÍѤµ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥà
    <FilesMatch regex> ... </FilesMatch>svdhC
    Àµµ¬ɽ¸½¤˥ޥåÁ¤¹¤ë¥ե¡¥¤¥ë̾¤ËŬÍѤµ¤ì¤ë -¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥà
    FilterChain [+=-@!]filter-name ...svdhX
    Configure the filter chain
    FilterDeclare filter-name [type]svdhX
    Declare a smart filter
    FilterProtocol filter-name [provider-name] - proto-flagssvdhX
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name - [req|resp|env]=dispatch matchsvdhX
    Register a content filter
    FilterTrace filter-name levelsvdX
    Get debug/diagnostic information from - mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Í׵á¤˹礦ñÆȤΥɥ­¥å¥á¥ó¥Ȥ¬¸«¤Ĥ«¤é¤ʤ«¤ä¿¤Ȥ­¤˹Ԥʤ¦¤³¤Ȥò»ØÄê -
    ForceType MIME-type|NonedhC
    ¤¹¤٤ƤΥޥåÁ¤¹¤ë¥ե¡¥¤¥뤬»ØÄê¤Î MIME ¥³¥ó¥ƥó¥ȥ¿¥¤¥פÇ -Á÷¤é¤ì¤ë¤褦¤ˤ¹¤ë
    ForensicLog filename|pipesvE
    Forensic ¥í¥°¤Υե¡¥¤¥ë̾¤òÀßÄꤹ¤ë
    Group unix-group #-1 sM
    ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤ëºݤ˽ê°¤¹¤륰¥롼¥×
    Header [condition] set|append|add|unset|echo -header [value] [early|env=[!]variable]svdhE
    HTTP ±þÅú¥إåÀ¤ÎÀßÄê
    HeaderName filenamesvdhB
    -¥¤¥ó¥ǥ寥¹°ìÍ÷¤ÎÀèƬ¤ËÁÞÆþ¤µ¤ì¤ë¥ե¡¥¤¥ë¤Î̾Á°
    HostnameLookups On|Off|Double Off svdC
    ¥¯¥饤¥¢¥ó¥ȤÎ IP ¥¢¥ɥ쥹¤Î DNS ¥ë¥å¯¥¢¥åפò -ͭ¸ú¤ˤ¹¤ë
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote -user
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parameter-name> ... - </IfDefine>svdhC
    µ¯ư»þ¤˥ƥ¹¥Ȥ¬¿¿¤Ǥ¢¤ë¤Ȥ­¤Τߤ˽èÍý¤µ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤ò -°Ϥà
    <IfModule [!]module-file|module-identifier> ... - </IfModule>svdhC
    ¥⥸¥塼¥ë¤Î¸ºߤ¹¤뤫¤·¤ʤ¤¤«¤˱þ¤¸¤ƽèÍý¤µ¤ì¤ë -¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥà
    <IfVersion [[!]operator] version> ... -</IfVersion>svdhE
    ¥С¼¥¸¥ç¥ó°Í¸¤ÎÀßÄê¤òÆþ¤ì¤ë
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates -that are not explicitly mapped
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling -an imagemap
    Include file-path|directory-pathsvdC
    ¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ëÃ椫¤é¾¤ÎÀßÄê¥ե¡¥¤¥ë¤ò¼è¤ê¹þ¤à
    IndexIgnore file [file] ...svdhB
    ¥ǥ£¥쥯¥ȥê°ìÍ÷¤ò¹Ԥʤ¦ºݤË̵»뤹¤٤­ -¥ե¡¥¤¥ë¥ꥹ¥ȤËÄɲÃ
    IndexOptions [+|-]option [[+|-]option] ...svdhB
    ¥ǥ£¥쥯¥ȥꥤ¥ó¥ǥ寥¹¤ÎÍ͡¹¤ÊÀßÄê¹àÌÜ -
    IndexOrderDefault Ascending|Descending -Name|Date|Size|Description Ascending Name svdhB
    -¥ǥ£¥쥯¥ȥꥤ¥ó¥ǥ寥¹¤Îɸ½à¤νçÈÖÉդ±¤òÀßÄê
    IndexStyleSheet url-pathsvdhB
    ¥ǥ£¥쥯¥ȥꥤ¥ó¥ǥ寥¹¤Ë CSS ¥¹¥¿¥¤¥륷¡¼¥ȤòÄɲ乤ë
    ISAPIAppendLogToErrors on|off off svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from -ISAPI extensions to the error log
    ISAPIAppendLogToQuery on|off on svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from -ISAPI extensions to the query field
    ISAPICacheFile file-path [file-path] -...svB
    ISAPI .dll files to be loaded at startup
    ISAPIFakeAsync on|off off svdhB
    Fake asynchronous support for ISAPI callbacks
    ISAPILogNotSupported on|off off svdhB
    Log unsupported feature requests from ISAPI -extensions
    ISAPIReadAheadBuffer size 49152 svdhB
    Size of the Read Ahead Buffer sent to ISAPI -extensions
    KeepAlive On|Off On svC
    HTTP ¤λý³Ū¤ÊÀܳ¤òͭ¸ú¤ˤ¹¤ë
    KeepAliveTimeout seconds 5 svC
    »ý³Ū¤ÊÀܳ¤Ǽ¡¤Υꥯ¥¨¥¹¥Ȥ¬Íè¤ë¤ޤǥµ¡¼¥Ф¬ÂԤĻþ´Ö
    LanguagePriority MIME-lang [MIME-lang] -...svdhB
    ¥¯¥饤¥¢¥ó¥Ȥ¬ͥÀèÅ٤򼨤µ¤ʤ«¤ä¿¤Ȥ­¤θÀ¸ì¤Î variant ¤ÎͥÀèÅ٤ò -»ØÄê
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare -operations
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain -valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 102400 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per -connection client certificate. Not all LDAP toolkits support per -connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted -Certificate Authority or global client certificates
    LDAPTrustedMode typesvdhE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... - </Limit>svdhC
    °Ϥ¤¤ÎÃæ¤ˤ¢¤륢¥¯¥»¥¹À©¸æ¤ÎŬÍѤòÆÃÄê¤Î HTTP ¥᥽¥åɤΤߤË -À©¸¤¹¤ë
    <LimitExcept method [method] ... > ... - </LimitExcept>svdhC
    »ØÄꤵ¤줿¤â¤ΰʳ°¤Î HTTP ¥᥽¥åɤ˥¢¥¯¥»¥¹À©¸æ¤ò -À©¸¤¹¤ë
    LimitInternalRecursion number [number] 10 svC
    ÆâÉô¥ê¥À¥¤¥쥯¥ȤÈÆþ¤ì»Ҥˤʤä¿¥µ¥֥ꥯ¥¨¥¹¥ȤκÇÂç¿ô¤ò·èÄꤹ¤ë
    LimitRequestBody bytes 0 svdhC
    ¥¯¥饤¥¢¥ó¥Ȥ«¤éÁ÷¤é¤ì¤ë HTTP ¥ꥯ¥¨¥¹¥ȤΥܥǥ£¤Î -ÁíÎ̤òÀ©¸¤¹¤ë
    LimitRequestFields number 100 sC
    ¥¯¥饤¥¢¥ó¥Ȥ«¤é¤Î HTTP ¥ꥯ¥¨¥¹¥ȤΥإåÀ¥ե£¡¼¥ë¥ɤοô¤ò -À©¸¤¹¤ë
    LimitRequestFieldsize bytessC
    ¥¯¥饤¥¢¥ó¥Ȥ«¤é¤Î HTTP ¥ꥯ¥¨¥¹¥ȤΥإåÀ¤Î -¥µ¥¤¥º¤òÀ©¸¤¹¤ë
    LimitRequestLine bytes 8190 sC
    ¥¯¥饤¥¢¥ó¥Ȥ«¤é¤Î HTTP ¥ꥯ¥¨¥¹¥ȹԤΥµ¥¤¥º¤òÀ©¸¤¹¤ë
    LimitXMLRequestBody bytes 1000000 svdhC
    XML ·Á¼°¤Υꥯ¥¨¥¹¥ȤΥܥǥ£¤Υµ¥¤¥º¤òÀ©¸¤¹¤ë
    Listen [IP-address:]portnumber [protocol]sM
    ¥µ¡¼¥Ф¬ listen ¤¹¤ëIP ¥¢¥ɥ쥹¤ȥݡ¼¥ÈÈֹæ
    ListenBacklog backlogsM
    ÊÝα¾õÂ֤Υ³¥ͥ¯¥·¥ç¥ó¤Υ­¥塼¤κÇÂçĹ
    LoadFile filename [filename] ...sE
    »ØÄꤵ¤줿¥ª¥֥¸¥§¥¯¥ȥե¡¥¤¥ë¤ä¥饤¥֥é¥ê¤ò¥ê¥󥯤¹¤ë
    LoadModule module filenamesE
    ¥ª¥֥¸¥§¥¯¥ȥե¡¥¤¥ë¤ä¥饤¥֥é¥ê¤ò¥ê¥󥯤·¡¢»ÈÍѥ⥸¥塼¥ë¤Î -¥ꥹ¥ȤËÄɲ乤ë
    <Location - URL-path|URL> ... </Location>svC
    °Ϥó¤À¥ǥ£¥쥯¥ƥ£¥֤ò¥ޥåÁ¤¹¤ë URL ¤ΤߤËŬÍÑ
    <LocationMatch - regex> ... </LocationMatch>svC
    °Ϥó¤À¥ǥ£¥쥯¥ƥ£¥֤òÀµµ¬ɽ¸½¤˥ޥåÁ¤¹¤ë URL ¤ΤߤË -ŬÍÑ
    LockFile filename logs/accept.lock sM
    ¼õÉդòľÎ󲽤¹¤뤿¤á¤Υí¥å¯¥ե¡¥¤¥ë¤ΰÌÃÖ
    LogFormat format|nickname -[nickname] "%h %l %u %t \"%r\" +svB
    ¥í¥°¥ե¡¥¤¥ë¤ǻÈÍѤ¹¤ë½񼰤òÀßÄꤹ¤ë
    LogLevel level warn svC
    ErrorLog ¤ξéĹÀ­¤òÀ©¸椹¤ë
    MaxClients numbersM
    ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤뤿¤á¤˺îÀ®¤µ¤ì¤ë -»ҥץí¥»¥¹¤κÇÂç¸Ŀô
    MaxKeepAliveRequests number 100 svC
    »ý³Ū¤ÊÀܳ¾å¤ǵö²Ĥµ¤ì¤ë¥ꥯ¥¨¥¹¥Ȥοô
    MaxMemFree KBytes 0 sM
    free() ¤¬¸ƤФì¤ʤ¤¸¤ꡢ -¼ç¥á¥â¥ꥢ¥í¥±¡¼¥¿¤¬Êݻý¤·³¤±¤é¤ì¤ë¥á¥â¥ê¤κÇÂçÎÌ
    MaxRequestsPerChild number 10000 sM
    ¸ġ¹¤λҥµ¡¼¥Ф¬²ÔƯÃæ¤˰·¤¦¥ꥯ¥¨¥¹¥ȿô¤ξå¸Â
    MaxRequestsPerThread number 0 sM
    Limit on the number of requests that an individual thread -will handle during its life
    MaxSpareServers number 10 sM
    ¥¢¥¤¥ɥë¤ʻҥµ¡¼¥Хץí¥»¥¹¤κÇÂç¸Ŀô
    MaxSpareThreads numbersM
    ¥¢¥¤¥ɥ륹¥ì¥åɤκÇÂç¿ô
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MaxThreadsPerChild number 64 sM
    Maximum number of threads per child process
    MCacheMaxObjectCount value 1009 sE
    ¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤륪¥֥¸¥§¥¯¥ȤκÇÂç¿ô
    MCacheMaxObjectSize bytes 10000 sE
    ¥­¥ã¥å·¥å¤ËÊݴɤǤ­¤ë¥ɥ­¥å¥á¥ó¥ȤκÇÂ祵¥¤¥º (¥Х¤¥È)
    MCacheMaxStreamingBuffer size_in_bytes of 100000 ¤« MCacheM +sE
    ¥¹¥ȥ꡼¥व¤ì¤Ƥ¤¤ë±þÅú¤򥭥ã¥å·¥åÉÔǽ¤ȷèÄꤹ¤ë¤ޤǤË -¥á¥â¥ê¤˥Хåե¡¤¹¤ëºÇÂçÎÌ
    MCacheMinObjectSize bytes 0 sE
    ¥­¥ã¥å·¥å¤ËÊݴɤµ¤ì¤ë¥ɥ­¥å¥á¥ó¥ȤκǾ®¥µ¥¤¥º (¥Х¤¥È)
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    ¥­¥ã¥å·¥夫¤éºï½ü¤¹¤ë¥ɥ­¥å¥á¥ó¥ȤòÁª¤֤¿¤á¤Υ¢¥르¥ꥺ¥à
    MCacheSize KBytes 100 sE
    ¥­¥ã¥å·¥å¤˻Ȥï¤ì¤ë¥á¥â¥ê¤κÇÂçÎ̤ò¥Х¤¥Èñ°̤ǻØÄê
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information -files
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style -meta information
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents -using the specified magic file
    MinSpareServers number 5 sM
    ¥¢¥¤¥ɥë¤ʻҥµ¡¼¥Хץí¥»¥¹¤κǾ®¸Ŀô
    MinSpareThreads numbersM
    ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤뤳¤ȤΤǤ­¤ë -¥¢¥¤¥ɥ륹¥ì¥åɿô¤κǾ®¿ô
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off d
    path_info ¥³¥ó¥ݡ¼¥ͥó¥Ȥò¥ե¡¥¤¥ë̾¤ΰìÉô¤Ȥ·¤ư·¤¦¤褦¤Ë -mod_mime ¤ËÄÌÃΤ¹¤ë
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers -[Handlers|Filters] NegotiatedOnly svdh
    MultiViews ¤ǤΥޥåÁ¥󥰤θ¡º÷¤˴ޤޤ»¤ë -¥ե¡¥¤¥ë¤Υ¿¥¤¥פò»ØÄꤹ¤ë
    NameVirtualHost addr[:port]sC
    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤΤ¿¤á¤Î IP ¥¢¥ɥ쥹¤ò»ØÄê
    NoProxy host [host] ...svE
    ľÀÜÀܳ¤¹¤ë ¥ۥ¹¥ȡ¢¥ɥᥤ¥󡢥ͥåȥ¥¯
    NumServers number 2 sM
    Total number of children alive at the same time
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options - [+|-]option [[+|-]option] ... All svdhC
    ¥ǥ£¥쥯¥ȥê¤ËÂФ·¤ƻÈÍѲÄǽ¤ʵ¡ǽ¤òÀßÄꤹ¤ë
    Order ordering Deny,Allow dhB
    ¥ǥե©¥ë¥ȤΥ¢¥¯¥»¥¹²Äǽ¤ʾõÂ֤ȡ¢Allow ¤È -Deny ¤¬ɾ²Á¤µ¤ì¤ë½çÈ֤òÀ©¸椹¤ë
    PassEnv env-variable [env-variable] -...svdhB
    ¥·¥§¥뤫¤é¤δĶ­Êѿô¤òÅϤ¹
    PidFile filename logs/httpd.pid sM
    ¥ǡ¼¥â¥ó¤Υץí¥»¥¹ ID -¤򥵡¼¥Ф¬µ­Ͽ¤¹¤뤿¤á¤Υե¡¥¤¥ë
    ProtocolEcho On|OffsvX
    ¥¨¥³¡¼¥µ¡¼¥ФÎͭ¸ú̵¸ú¤òÀßÄꤷ¤ޤ¹¡£
    <Proxy wildcard-url> ...</Proxy>svE
    ¥ץí¥­¥·¤µ¤ì¤ë¥꥽¡¼¥¹¤ËŬÍѤµ¤ì¤륳¥ó¥ƥÊ
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    ±þÅú¤ˤª¤«¤·¤ʥإåÀ¤¬¤¢¤ë¾ì¹ç¤ΰ·¤¤Êý¤ò·è¤á¤ë
    ProxyBlock *|word|host|domain -[word|host|domain] ...svE
    ¥ץí¥­¥·Àܳ¤ò¶ػߤ¹¤ë¸ì¶硢¥ۥ¹¥È̾¡¢¥ɥᥤ¥ó¤ò»ØÄꤹ¤ë
    ProxyDomain DomainsvE
    ¥ץí¥­¥·¤µ¤줿¥ꥯ¥¨¥¹¥ȤΥǥե©¥ë¥ȤΥɥᥤ¥ó̾
    ProxyErrorOverride On|Off Off svE
    ¥ץí¥­¥·¤µ¤줿¥³¥ó¥ƥó¥ĤΥ¨¥顼¥ڡ¼¥¸¤ò¾å½񤭤¹¤ë
    ProxyIOBufferSize bytes 8192 svE
    ÆâÉô¥ǡ¼¥¿¥¹¥롼¥ץåȥХåե¡¤Υµ¥¤¥º¤ò·èÄꤹ¤ë
    <ProxyMatch regex> ...</ProxyMatch>svE
    Àµµ¬ɽ¸½¤ǤΥޥåÁ¤ˤè¤ë¥ץí¥­¥·¥꥽¡¼¥¹ÍѤΥǥ£¥쥯¥ƥ£¥֥³¥ó¥ƥÊ
    ProxyMaxForwards number 10 svE
    ¥ꥯ¥¨¥¹¥Ȥ¬¥ե©¥¥ɤµ¤ì¤ë¥ץí¥­¥·¤κÇÂç¿ô
    ProxyPass [path] !|url [key=value key=value ...]]svdE
    ¥ê¥⡼¥ȥµ¡¼¥Фò¥í¡¼¥«¥륵¡¼¥ФÎ URL ¶õ´֤˥ޥåפ¹¤ë
    ProxyPassReverse [path] urlsvdE
    ¥ê¥С¼¥¹¥ץí¥­¥·¤µ¤줿¥µ¡¼¥Ф«¤éÁ÷¤é¤줿 HTTP ±þÅú¥إåÀ¤Î -URL ¤òĴÀ°¤¹¤ë
    ProxyPassReverseCookieDomain internal-domain public-domainsvdE
    ¥ê¥С¼¥¹¥ץí¥­¥·¥µ¡¼¥Ф«¤é¤Î Set-Cookie ¥إåÀ¤Î Domain ʸ»úÎó¤ò -ĴÀ°¤¹¤ë
    ProxyPassReverseCookiePath internal-path public-pathsvdE
    Reverse ¥ץí¥­¥·¥µ¡¼¥Ф«¤é¤Î Set-Cookie ¥إåÀ¤Î Path ʸ»úÎó¤ò -ĴÀ°¤¹¤ë
    ProxyPreserveHost On|Off Off svE
    ¥ץí¥­¥·¥ꥯ¥¨¥¹¥Ȥˡ¢¼õ¤±Éդ±¤¿ Host HTTP ¥إåÀ¤ò»Ȥ¦
    ProxyReceiveBufferSize bytes 0 svE
    ¥ץí¥­¥·¤µ¤ì¤ë HTTP ¤È FTP Àܳ¤Τ¿¤á¤Υͥåȥ¥¯¥Хåե¡¥µ¥¤¥º
    ProxyRemote match remote-serversvE
    ÆÃÄê¤Υꥯ¥¨¥¹¥Ȥ򰷤¦»þ¤˻Ȥï¤ì¤ë¥ê¥⡼¥ȥץí¥­¥·¤ò»ØÄꤹ¤ë
    ProxyRemoteMatch regex remote-serversvE
    Àµµ¬ɽ¸½¤ǤΥޥåÁ¤ˤè¤ë¥ꥯ¥¨¥¹¥Ȥ򰷤¦¥ê¥⡼¥ȥץí¥­¥·¤λØÄê
    ProxyRequests On|Off Off svE
    ¥ե©¥¥É (ɸ½à¤Î) ¥ץí¥­¥·¥ꥯ¥¨¥¹¥Ȥòͭ¸ú¤ˤ¹¤ë
    ProxyTimeout seconds 300 svE
    ¥ץí¥­¥·¤µ¤줿¥ꥯ¥¨¥¹¥ȤΥͥåȥ¥¯¥¿¥¤¥ॢ¥¦¥È
    ProxyVia On|Off|Full|Block Off svE
    ¥ץí¥­¥·¤µ¤줿¥ꥯ¥¨¥¹¥ȤÎ Via HTTP ±þÅú¥إåÀ -¤ˤè¤êÄ󶡤µ¤ì¤ë¾ðÊó
    ReadmeName filenamesvdhB
    ¥¤¥ó¥ǥ寥¹°ìÍ÷¤κǸå¤ËÁÞÆþ¤µ¤ì¤ë¥ե¡¥¤¥ë¤Î̾Á°
    Redirect [status] URL-path -URLsvdhB
    ¥¯¥饤¥¢¥ó¥Ȥ¬°㤦 URL ¤ò¼èÆÀ¤¹¤ë¤褦¤˳°Éô¤ؤΥê¥À¥¤¥쥯¥Ȥò -Á÷¤ë
    RedirectMatch [status] regex -URLsvdhB
    ¸½ºߤÎ URL ¤ؤÎÀµµ¬ɽ¸½¤ΥޥåÁ¤ˤè¤ê -³°Éô¤ؤΥê¥À¥¤¥쥯¥ȤòÁ÷¤ë
    RedirectPermanent URL-path URLsvdhB
    ¥¯¥饤¥¢¥ó¥Ȥ¬°㤦 URL ¤ò¼èÆÀ¤¹¤ë¤褦¤˳°Éô¤ؤαʵ×Ū¤Ê -¥ê¥À¥¤¥쥯¥ȤòÁ÷¤ë
    RedirectTemp URL-path URLsvdhB
    ¥¯¥饤¥¢¥ó¥Ȥ¬°㤦 URL ¤ò¼èÆÀ¤¹¤ë¤褦¤˳°Éô¤ؤΰì»þŪ¤Ê -¥ê¥À¥¤¥쥯¥ȤòÁ÷¤ë
    RemoveCharset extension [extension] -...vdh
    ¥ե¡¥¤¥ë¤γÈĥ»Ҥ˴ØϢÉդ±¤é¤줿¤¹¤٤ƤÎʸ»ú¥»¥åÈ -¤ò²ò½ü¤¹¤ë
    RemoveEncoding extension [extension] -...vdh
    ¥ե¡¥¤¥ë¤γÈĥ»Ҥ˴ØϢÉդ±¤é¤줿¤¹¤٤ƤΥ³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥ó¥° -¤ò²ò½ü¤¹¤ë
    RemoveHandler extension [extension] -...vdh
    ¥ե¡¥¤¥ë¤γÈĥ»Ҥ˴ØϢÉդ±¤é¤줿¤¹¤٤ƤΥϥó¥ɥé¤ò -²ò½ü¤¹¤ë
    RemoveInputFilter extension [extension] -...vdh
    ¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿ÆþÎϥե£¥륿¤ò²ò½ü¤¹¤ë
    RemoveLanguage extension [extension] -...vdh
    ¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿¸À¸ì¤ò²ò½ü¤¹¤ë
    RemoveOutputFilter extension [extension] -...vdh
    ¥ե¡¥¤¥ë³Èĥ»Ҥ˴ØϢÉդ±¤é¤줿½ÐÎϥե£¥륿¤ò²ò½ü¤¹¤ë
    RemoveType extension [extension] -...vdh
    ¥ե¡¥¤¥ë¤γÈĥ»ҤȴØϢÉդ±¤é¤줿¥³¥ó¥ƥó¥ȥ¿¥¤¥פò -²ò½ü¤¹¤ë
    RequestHeader set|append|add|unset header -[value] [early|env=[!]variable]svdhE
    HTTP ¥ꥯ¥¨¥¹¥ȥإåÀ¤ÎÀßÄê
    Require entity-name [entity-name] ...dhC
    ¤ɤÎǧ¾ںѤߥ桼¥¶¤¬¥꥽¡¼¥¹¤򥢥¯¥»¥¹¤Ǥ­¤뤫¤òÁªÂ򤹤ë
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond - TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place -
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap -synchronization
    RewriteLog file-pathsvE
    Sets the name of the file used for logging rewrite engine -processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite -engine
    RewriteMap MapName MapType:MapSource -svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule - Pattern SubstitutionsvdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Apache ¤λҥץí¥»¥¹¤«¤鵯ư¤µ¤줿¥ץí¥»¥¹¤Î CPU ¾ÃÈñÎ̤ò -À©¸¤¹¤ë
    RLimitMEM bytes|max [bytes|max]svdhC
    Apache ¤λҥץí¥»¥¹¤«¤鵯ư¤µ¤줿¥ץí¥»¥¹¤Υá¥â¥ê¾ÃÈñÎ̤ò -À©¸¤¹¤ë
    RLimitNPROC number|max [number|max]svdhC
    Apache ¤λҥץí¥»¥¹¤«¤鵯ư¤µ¤줿¥ץí¥»¥¹¤¬µ¯ư¤¹¤ë¥ץí¥»¥¹¤Î -¿ô¤òÀ©¸¤¹¤ë
    Satisfy Any|All All dhC
    ¥ۥ¹¥ȥì¥٥ë¤Υ¢¥¯¥»¥¹À©¸æ¤ȥ桼¥¶ǧ¾ڤȤÎÁê¸ߺîÍѤò»ØÄê
    ScoreBoardFile file-path logs/apache_status sM
    »ҥץí¥»¥¹¤ÈϢ·Ȥ¹¤뤿¤á¤Υǡ¼¥¿¤òÊݸ¤¹¤ë -¥ե¡¥¤¥ë¤ΰÌÃÖ
    Script method cgi-scriptsvdB
    ÆÃÄê¤Υꥯ¥¨¥¹¥ȥ᥽¥åɤËÂФ·¤Æ CGI ¥¹¥¯¥ê¥ץȤò -¼¹Ԥ¹¤ë¤褦¤ËÀßÄê
    ScriptAlias URL-path -file-path|directory-pathsvB
    URL ¤ò¥ե¡¥¤¥륷¥¹¥ƥà¤ΰÌÃ֤إޥåפ·¡¢¥ޥå×Àè¤ò -CGI ¥¹¥¯¥ê¥ץȤ˻ØÄê
    ScriptAliasMatch regex -file-path|directory-pathsvB
    URL ¤òÀµµ¬ɽ¸½¤ò»Ȥäƥե¡¥¤¥륷¥¹¥ƥà¤ΰÌÃ֤إޥåפ·¡¢¥ޥå×Àè¤ò -CGI ¥¹¥¯¥ê¥ץȤ˻ØÄê
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    CGI ¥¹¥¯¥ê¥ץȤΥ¤¥󥿡¼¥ץ꥿¤ΰÌÃ֤òĴ¤٤뤿¤á¤μêˡ
    ScriptLog file-pathsvB
    CGI ¥¹¥¯¥ê¥ץȤΥ¨¥顼¥í¥°¥ե¡¥¤¥ë¤ξì½ê
    ScriptLogBuffer bytes 1024 svB
    ¥¹¥¯¥ê¥ץȥí¥°¤˵­Ͽ¤µ¤ì¤ë PUT ¤ä POST ¥ꥯ¥¨¥¹¥ȤÎÆâÍƤξå¸Â
    ScriptLogLength bytes 10385760 svB
    CGI ¥¹¥¯¥ê¥ץȤΥí¥°¥ե¡¥¤¥ë¤ÎÂ礭¤µ¤ξå¸Â
    ScriptSock file-path logs/cgisock svB
    CGI ¥ǡ¼¥â¥ó¤ȤÎÄ̿®¤˻Ȥï¤ì¤륽¥±¥åȤÎ̾Á°
    SecureListen [IP-address:]portnumber -Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SendBufferSize bytes 0 sM
    TCP ¥Хåե¡¥µ¥¤¥º
    ServerAdmin email-address|URLsvC
    ¥µ¡¼¥Ф¬¥¯¥饤¥¢¥ó¥ȤËÁ÷¤륨¥顼¥á¥å»¡¼¥¸¤˴ޤá¤ëÅŻҥ᡼¥ë¤Î -¥¢¥ɥ쥹
    ServerAlias hostname [hostname] ...vC
    ¥ꥯ¥¨¥¹¥Ȥò̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ˥ޥåÁ¤µ¤»¤Ƥ¤¤ë¤Ȥ­¤Ë -»ÈÍѤµ¤ì¤ë¥ۥ¹¥ȤÎÊÌ̾
    ServerLimit numbersM
    ÀßÄê²Äǽ¤ʥµ¡¼¥Хץí¥»¥¹¿ô¤ξå¸Â
    ServerName fully-qualified-domain-name[:port]svC
    ¥µ¡¼¥Ф¬¼«ʬ¼«¿Ȥ򼨤¹¤Ȥ­¤˻Ȥ¦¥ۥ¹¥È̾¤ȥݡ¼¥È
    ServerPath URL-pathvC
    Èó¸ߴ¹¤Υ֥饦¥¶¤¬̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ˥¢¥¯¥»¥¹¤·¤¿¤Ȥ­¤Î -¤¿¤á¤θߴ¹ÍÑ URL ¥ѥ¹̾
    ServerRoot directory-path /usr/local/apache sC
    ¥¤¥󥹥ȡ¼¥뤵¤줿¥µ¡¼¥ФΥ١¼¥¹¥ǥ£¥쥯¥ȥê
    ServerSignature On|Off|EMail Off svdhC
    ¥µ¡¼¥Ф¬À¸À®¤¹¤ë¥ɥ­¥å¥á¥ó¥ȤΥե忤òÀßÄê
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Server HTTP ±þÅú¥إåÀ¤òÀßÄꤹ¤ë
    SetEnv env-variable valuesvdhB
    ´Ķ­Êѿô¤òÀßÄꤹ¤ë
    SetEnvIf attribute - regex [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    ¥ꥯ¥¨¥¹¥ȤΰÀ­¤˴ð¤Ť¤¤ƴĶ­Êѿô¤òÀßÄꤹ¤ë -
    SetEnvIfNoCase attribute regex - [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    ¥ꥯ¥¨¥¹¥ȤΰÀ­¤˴ð¤Ť¤¤ÆÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¤˴Ķ­Êѿô¤òÀßÄꤹ¤ë
    SetHandler handler-name|NonesvdhC
    ¥ޥåÁ¤¹¤ë¥ե¡¥¤¥뤬¥ϥó¥ɥé¤ǽèÍý¤µ¤ì¤ë¤褦¤ˤ¹¤ë
    SetInputFilter filter[;filter...]svdhC
    ¥¯¥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥Ȥä POST ¤ÎÆþÎϤò½èÍý¤¹¤ë¥ե£¥륿¤òÀßÄꤹ¤ë
    SetOutputFilter filter[;filter...]svdhC
    ¥µ¡¼¥ФαþÅú¤ò½èÍý¤¹¤ë¥ե£¥륿¤òÀßÄꤹ¤ë
    SSIEndTag tag "-->" svB
    include Í×ÁǤò½ªλ¤µ¤»¤ëʸ»úÎó
    SSIErrorMsg message "[an error occurred +svdhB
    SSI ¤Υ¨¥顼¤¬¤¢¤ä¿¤Ȥ­¤Ëɽ¼¨¤µ¤ì¤륨¥顼¥á¥å»¡¼¥¸
    SSIStartTag tag "<!--#" svB
    include Í×ÁǤ򳫻Ϥ¹¤ëʸ»úÎó
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    ÆüÉդ±¤򸽤¹ʸ»úÎó¤ν񼰤òÀßÄꤹ¤ë
    SSIUndefinedEcho string "(none)" svdhB
    ̤ÄêµÁ¤ÎÊѿô¤¬ echo ¤µ¤줿¤Ȥ­¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates -for Client Auth
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for -Client Auth
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates -for defining acceptable CA names
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for -defining acceptable CA names
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for -Client Auth
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for -Client Auth
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL -handshake
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLHonorCiperOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of -operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private -keys
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates -for Remote Server Auth
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for -Remote Server Auth
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for -Remote Server Auth
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for -Remote Server Auth
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL -proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svdhE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Remote Server -Certificate verification
    SSLRandomSeed context source -[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding -source
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex -boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the -HTTP request
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session -Cache
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires -in the Session Cache
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client -Certificate verification
    StartServers numbersM
    µ¯ư»þ¤ËÀ¸À®¤µ¤ì¤ë»ҥµ¡¼¥Хץí¥»¥¹¤οô
    StartThreads numbersM
    µ¯ư»þ¤ËÀ¸À®¤µ¤ì¤륹¥ì¥åɤοô
    SuexecUserGroup User Groupsv
    CGI ¥ץí¥°¥é¥à¤Υ桼¥¶¥ѡ¼¥ߥå·¥ç¥󡢥°¥롼¥ץѡ¼¥ߥå·¥ç¥ó
    ThreadLimit numbersM
    ÀßÄê²Äǽ¤ʻҥץí¥»¥¹Ëè¤Υ¹¥ì¥åɿô¤ξ帤ò -ÀßÄꤷ¤ޤ¹
    ThreadsPerChild numbersM
    »ҥץí¥»¥¹¤½¤줾¤ì¤ËÀ¸À®¤µ¤ì¤륹¥ì¥åɿô
    ThreadStackSize sizesM
    ¥¯¥饤¥¢¥ó¥ȤΥ³¥ͥ¯¥·¥ç¥ó¤ò¼õ¤±»ý¤ĥ¹¥ì¥åɤ¬»ÈÍѤ¹¤ë -¥¹¥¿¥å¯¤ΥХ¤¥ȿô
    TimeOut seconds 300 sC
    ³ƥ¤¥٥ó¥ȤˤĤ¤¤ơ¢¥ꥯ¥¨¥¹¥Ȥò¼ºÇԤµ¤»¤ë¤ޤǤ˥µ¡¼¥Ф¬ -ÂԤĻþ´֤òÀßÄê
    TransferLog file|pipesvB
    ¥í¥°¥ե¡¥¤¥ë¤ΰÌÃ֤ò»ØÄê
    TypesConfig file-path conf/mime.types s
    mime.types ¥ե¡¥¤¥ë¤ΰÌÃÖ
    UnsetEnv env-variable [env-variable] -...svdhB
    ´Ķ­¤«¤éÊѿô¤ò¼è¤ê½ü¤¯
    UseCanonicalName On|Off|Dns Off svdC
    ¥µ¡¼¥Ф¬¼«ʬ¼«¿ȤÎ̾Á°¤ȥݡ¼¥Ȥò·èÄꤹ¤ëÊýˡ¤òÀßÄꤹ¤ë
    User unix-userid #-1 sM
    ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤ëºݤËÍѤ¤¤ë¥桼¥¶ ID
    UserDir directory-filenamesvB
    ¥桼¥¶ÀìÍѥǥ£¥쥯¥ȥê¤ΰÌÃÖ
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root -for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root -for a given virtual host
    <VirtualHost - addr[:port] [addr[:port]] - ...> ... </VirtualHost>sC
    ÆÃÄê¤Υۥ¹¥È̾¤ä IP ¥¢¥ɥ쥹¤ΤߤËŬÍѤµ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤ò -°Ϥà
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for -a given virtual host
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for -a given virtual host
    Win32DisableAcceptExsM
    ¥ͥåȥ¥¯Àܳ¤μõ¤±Éդ±¤Ë accept() ¤òAcceptEx ¤ÎÂå¤ï¤ê¤˻Ȥ¦
    XBitHack on|off|full off svdhB
    ¼¹ԥӥåȤ¬ÀßÄꤵ¤줿¥ե¡¥¤¥ë¤Î SSI ¥ǥ£¥쥯¥ƥ£¥֤ò -²òÀϤ¹¤ë
    -
    -

    Available Languages:  de  | - en  | - es  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.ja.utf8 b/docs/manual/mod/quickreference.html.ja.utf8 new file mode 100644 index 00000000000..bebb11dd406 --- /dev/null +++ b/docs/manual/mod/quickreference.html.ja.utf8 @@ -0,0 +1,787 @@ + + + + + +ディレクティブ クイックリファレンス - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ディレクティブ クイックリファレンス

    +
    +

    翻訳済み言語:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    ディレクティブ クイックリファレンスでは、各 Apache 設定ディレクティブの + 使用方法、デフォルト値、ステータスとコンテキストを示しています。 + 各ディレクティブの、より詳しい情報に関しては + ディレクティブ辞書を + ご覧下さい。

    + +

    第 1 列目はディレクティブの名前と使用方法です。 + 第 2 列目は (もしあれば) デフォルト値となっています。 + デフォルト値が長すぎて表示しきれない場合は、最初の文字列の後ろに + 「 + 」が続きます。

    + +

    第 3, 4 列は、下の表の注釈に従って、 + ディレクティブの使用できるコンテキストと、 + ディレクティブのステータスが示されています。

    +
    +
    + + + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  + + + +
    sサーバ設定ファイル
    vバーチャルホスト
    dディレクトリ
    h.htaccess
    + + + + +
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AcceptFilter protocol accept_filtersC
    プロトコルを Listen しているソケットの最適化を設定する
    AcceptMutex default|method default sM
    複数の子プロセスがネットワークソケットでリクエストを +accept しようとしているときに、Apache がそれらの子プロセスを直列化するために +使う方法
    AcceptPathInfo On|Off|Default Default svdhC
    後に続くパス名情報を受け付けるリソースの指定
    AccessFileName filename [filename] ... .htaccess svC
    分散設定ファイルの名前
    Action action-type cgi-script [virtual]svdhB
    特定のハンドラやコンテントタイプに対して CGI を実行するように +設定
    AddAlt string file [file] ...svdhB
    アイコンの代わりに +表示される、ファイル名で選択された代替テキスト
    AddAltByEncoding string MIME-encoding +[MIME-encoding] ...svdhB
    アイコンの代わりに表示される、MIME 符号化方法で選択された +代替テキスト
    AddAltByType string MIME-type +[MIME-type] ...svdhB
    アイコンの代わりに +表示される、MIME タイプで選択された代替テキスト
    AddCharset charset extension +[extension] ...svdhB
    ファイル名の拡張子を指定された文字セットにマップする
    AddDefaultCharset On|Off|charset Off svdhC
    レスポンスのコンテントタイプが text/plain あるいは +text/html の場合に追加するデフォルトの charset パラメータ
    AddDescription string file [file] ...svdhB
    ファイルに対して表示する説明
    AddEncoding MIME-enc extension +[extension] ...svdhB
    ファイル名の拡張子を指定されたエンコーディング +にマップする
    AddHandler handler-name extension +[extension] ...svdhB
    ファイル名の拡張子を指定されたハンドラにマップする
    AddIcon icon name +[name] ...svdhB
    ファイルに表示するアイコンを名前で選択
    AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...svdhB
    ファイルに表示するアイコンを MIME +符号化方法で選択
    AddIconByType icon MIME-type +[MIME-type] ...svdhB
    ファイルの隣に表示するアイコンを +MIME タイプによって選択
    AddInputFilter filter[;filter...] +extension [extension] ...svdhB
    ファイルの拡張子をクライアントのリクエストを処理する + フィルタにマップする
    AddLanguage MIME-lang extension +[extension] ...svdhB
    ファイル名を指定された言語にマップ
    AddModuleInfo module-name stringsvE
    server-info ハンドラにより表示されるモジュールの情報に +追加の情報を付け加える
    AddOutputFilter filter[;filter...] +extension [extension] ...svdhB
    ファイル名の拡張子をサーバからの応答を処理するフィルタに + マップする
    AddOutputFilterByType filter[;filter...] MIME-type +[MIME-type] ...svdhC
    MIME-type に出力フィルタを割り当てる
    AddType MIME-type extension +[extension] ...svdhB
    ファイル名の拡張子を指定されたコンテントタイプにマップ
    Alias URL-path +file-path|directory-pathsvB
    URL をファイルシステムの位置にマップする
    AliasMatch regex +file-path|directory-pathsvB
    正規表現を使って URL をファイルシステムの位置にマップする
    Allow from all|host|env=env-variable +[host|env=env-variable] ...dhB
    サーバのある領域にアクセスできるホストを制御する
    AllowCONNECT port [port] ... 443 563 svE
    プロキシを経由して、どのポートに CONNECT +できるかを指定する
    AllowEncodedSlashes On|Off Off svC
    URL 中の符号化されたパス分離文字が先に伝えられるのを許可するかどうかを +決定する
    AllowOverride All|None|directive-type +[directive-type] ... All dC
    .htaccess で許可されるディレクティブの種類
    Anonymous user [user] ...dhE
    パスワードの検査無しでアクセスを許可する userID を指定する +
    Anonymous_LogEmail On|Off On dhE
    入力されたパスワードがエラーログにロギングされるかどうかを +設定する
    Anonymous_MustGiveEmail On|Off On dhE
    空パスワードを許可するかどうかを指定する
    Anonymous_NoUserID On|Off Off dhE
    空 userID を許可するかを指定する
    Anonymous_VerifyEmail On|Off Off dhE
    パスワード欄が正しい形式の電子メールアドレスであることを +調べるかどうかを設定する
    AuthBasicAuthoritative On|Off On dhB
    認証と承認を、より低いレベルのモジュールに移行させるかを +設定します。
    AuthBasicProvider On|Off|provider-name +[provider-name] ... On dhB
    この位置に対する認証プロバイダを設定します。
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list +of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    パスワードを保存するために必要なデータベースファイルの種類を +設定する
    AuthDBMUserFile file-pathdhE
    認証用のユーザとパスワードのリストを保持している +データベースファイル名を設定する
    AuthDefaultAuthoritative On|Off On dhB
    次の低次レベルの認証モジュールに制御を渡すかどうかを +設定します
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhE
    Selects the algorithm used to calculate the challenge and +response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhE
    URIs that are in the same protection space for digest +authentication
    AuthDigestNcCheck On|Off Off sE
    Enables or disables checking of the nonce-count sent by the +server
    AuthDigestNonceFormat formatdhE
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhE
    How long the server nonce is valid
    AuthDigestProvider provider-name +[provider-name] ... file dhE
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhE
    Determines the quality-of-protection to use in digest +authentication
    AuthDigestShmemSize size 1000 sE
    The amount of shared memory to allocate for keeping track +of clients
    AuthGroupFile file-pathdhB
    証認に使用するユーザグループの一覧が格納されている、 +テキストファイルの名前を設定する
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for +group membership
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER +environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    HTTP 認証の認可領域 (訳注: realm)
    <AuthnProviderAlias baseProvider Alias> +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an +extension of a base authentication provider and referenced by +the specified alias
    AuthType Basic|DigestdhC
    ユーザ認証の種類
    AuthUserFile file-pathdhB
    認証に使用するユーザとパスワードの一覧が格納されている、 +テキストファイルの名前を設定する
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +modules
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +store list of user groups
    AuthzDefaultAuthoritative On|Off On dhB
    承認が低位のモジュールに渡されるかどうかを設定する
    AuthzGroupFileAuthoritative On|Off On dhB
    承認が下位のモジュールに渡されるかどうかを設定する
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from +authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    承認が下位承認モジュールに渡されるかどうかを設定する
    AuthzUserAuthoritative On|Off On dhB
    承認が下位のモジュールに渡されるかどうかを設定する
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    ロードバランサのグループにメンバーを追加
    BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...svdhB
    HTTP User-Agent に基づいて環境変数を設定する +
    BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    HTTP User-Agent に基づいて大文字小文字を区別せずに +環境変数を設定する
    BufferedLogs On|Off Off sB
    ディスクに書き出す前にメモリにログエントリをバッファする
    CacheDefaultExpire seconds 3600 (1時間) svE
    期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間
    CacheDirLength length 2 svE
    サブディレクトリ名の文字数
    CacheDirLevels levels 3 svE
    キャッシュのサブディレクトリの深さの数
    CacheDisable url-stringsvE
    特定の URL をキャッシュしない
    CacheEnable cache_type url-stringsvE
    指定したストレージ管理方式を使ってのキャッシュを有効にする
    CacheFile file-path [file-path] ...sX
    Cache a list of file handles at startup time
    CacheIgnoreCacheControl On|Off Off svE
    キャッシュされているコンテンツを返さないようにクライアントから +リクエストされても無視する
    CacheIgnoreHeaders header-string [header-string] ... None svE
    指定された HTTP ヘッダをキャッシュに保存しない。 +
    CacheIgnoreNoLastMod On|Off Off svE
    応答に Last Modified が無くても気にしないようにする
    CacheIgnoreQueryString On|Off Off svE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None svE
    Ignore defined session identifiers encoded in the URL when caching +
    CacheLastModifiedFactor float 0.1 svE
    LastModified の日付に基づいて有効期限 (expiry) +を計算するための重みを指定する +
    CacheLock on|off off svE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 svE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +svE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (一日) svE
    ドキュメントをキャッシュする最大時間を秒数で表したもの
    CacheMaxFileSize bytes 1000000 svE
    キャッシュに保管されるドキュメントの最大の (バイトでの) サイズ
    CacheMinFileSize bytes 1 svE
    キャッシュに保管されるドキュメントの最小限の (バイトでの) 大きさ
    CacheNegotiatedDocs On|Off Off svB
    コンテントネゴシエーションされたドキュメントをプロキシサーバが +キャッシュできるようにする
    CacheRoot directorysvE
    キャッシュファイルが保管されるルートディレクトリ
    CacheStoreNoStore On|Off Off svE
    no-store と指定されているレスポンスのキャッシュを試みる。
    CacheStorePrivate On|Off Off svE
    private と指定されているレスポンスのキャッシュを試みる。
    CGIDScriptTimeout time[s|ms]svdhB
    The length of time to wait for more output from the +CGI program
    CGIMapExtension cgi-path .extensiondhC
    CGI スクリプトのインタープリタの位置を調べるための手法
    CharsetDefault charsetsvdhE
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhE
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhE
    Source charset of files
    CheckCaseOnly on|off Off svdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off svdhE
    spelling モジュールを使用するようにする
    ChrootDir /path/to/directorysM
    Directory for apache to run chroot(8) after startup.
    ContentDigest On|Off Off svdhC
    Content-MD5 HTTP 応答ヘッダの生成を有効にする
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    クッキングのロギングのためのファイル名を設定する
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle + Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Apache がコアダンプする前に移動を試みるディレクトリ +
    CustomLog file|pipe +format|nickname +[env=[!]environment-variable]svB
    ログファイルの名前と書式を設定する
    Dav On|Off|provider-name Off dE
    WebDAV HTTP メソッドを有効にします
    DavDepthInfinity on|off off svdE
    PROPFIND, Depth: Infinity リクエストを許可します
    DavGenericLockDB file-pathsvdE
    DAV ロックデータベースの場所
    DavLockDB file-pathsvE
    DAV ロックデータベースの位置
    DavMinTimeout seconds 0 svdE
    サーバが DAV リソースのロックを維持する最小時間です。 +
    DBDExptime time-in-seconds 300 svE
    Keepalive time for idle connections
    DBDKeep number 2 svE
    Maximum sustained number of connections
    DBDMax number 10 svE
    Maximum number of connections
    DBDMin number 1 svE
    Minimum number of connections
    DBDParams +param1=value1[,param2=value2]svE
    Parameters for database connection
    DBDPersist On|OffsvE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvE
    Define an SQL prepared statement
    DBDriver namesvE
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    特定のアイコンが何も設定されていない時に +ファイルに表示するアイコン
    DefaultLanguage MIME-langsvdhB
    あるスコープのすべてのファイルを指定された言語に +設定する
    DefaultType MIME-type|none text/plain svdhC
    サーバがコンテントタイプを決定できないときに +送られる MIME コンテントタイプ
    DeflateBufferSize value 8096 svE
    zlib が一度に圧縮する塊の大きさ
    DeflateCompressionLevel valuesvE
    出力に対して行なう圧縮の程度
    DeflateFilterNote [type] notenamesvE
    ロギング用に圧縮比をメモに追加
    DeflateInflateLimitRequestBodyvaluesvdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valuesvdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valuesvdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 svE
    zlib が圧縮に使うメモリのレベルを指定
    DeflateWindowSize value 15 svE
    Zlib の圧縮用ウィンドウの大きさ
    Deny from all|host|env=env-variable +[host|env=env-variable] ...dhB
    サーバがアクセスを拒否するホストを制御する
    <Directory directory-path> +... </Directory>svC
    指定のファイルシステムのディレクトリとサブディレクトリとのみに +適用されるディレクティブを囲む
    DirectoryIndex + local-url [local-url] ... index.html svdhB
    クライアントがディレクトリをリクエストしたときに調べる +リソースのリスト
    <DirectoryMatch regex> +... </DirectoryMatch>svC
    正規表現にマッチするファイルシステムのディレクトリと +サブディレクトリとのみに適用されるディレクティブを囲む
    DirectorySlash On|Off On svdhB
    パス末尾のスラッシュでリダイレクトするかどうかのオンオフをトグルさせる
    DocumentRoot directory-path /usr/local/apache/h +svC
    ウェブから見えるメインのドキュメントツリーになる +ディレクトリ
    DumpIOInput On|Off Off sE
    エラーログにすべての入力データをダンプ
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    エラーログにすべての出力データをダンプ
    EnableExceptionHook On|Off Off sM
    クラッシュの後に例外ハンドラを実行するフックを有効にする
    EnableMMAP On|Off On svdhC
    配送中にファイルを読み込むためにメモリマッピングを +使うかどうか
    EnableSendfile On|Off On svdhC
    ファイルのクライアントへの配送時にカーネルの sendfile サポートを +使うかどうか
    ErrorDocument error-code documentsvdhC
    エラーが発生したときにサーバがクライアントに送るもの
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    サーバがエラーをログ収集する場所
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module +API
    ExpiresActive On|OffsvdhE
    Expires ヘッダの生成を有効にする
    ExpiresByType MIME-type +<code>secondssvdhE
    MIME タイプによって設定される Expires ヘッダの値
    ExpiresDefault <code>secondssvdhE
    期限切れ期日を計算するデフォルトアルゴリズム
    ExtendedStatus On|Off Off sB
    各リクエストに対して拡張ステータス情報を保存する
    ExtFilterDefine filtername parameterssE
    外部フィルタを定義
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    mod_ext_filter のオプションを設定
    FallbackResource disabled | local-urlsvdhB
    Define a default URL for requests that don't map to a file
    FileETag component ... INode MTime Size svdhC
    ETag HTTP 応答ヘッダを作成するために使用される +ファイルの属性
    <Files filename> ... </Files>svdhC
    マッチするファイル名に適用されるディレクティブを囲む
    <FilesMatch regex> ... </FilesMatch>svdhC
    正規表現にマッチするファイル名に適用される +ディレクティブを囲む
    FilterChain [+=-@!]filter-name ...svdhB
    Configure the filter chain
    FilterDeclare filter-name [type]svdhB
    Declare a smart filter
    FilterProtocol filter-name [provider-name] + proto-flagssvdhB
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name + [req|resp|env]=dispatch matchsvdhB
    Register a content filter
    FilterTrace filter-name levelsvdB
    Get debug/diagnostic information from + mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    要求に合う単独のドキュメントが見つからなかったときに行なうことを指定 +
    ForceType MIME-type|NonedhC
    すべてのマッチするファイルが指定の MIME コンテントタイプで +送られるようにする
    ForensicLog filename|pipesvE
    Forensic ログのファイル名を設定する
    GprofDir /tmp/gprof/|/tmp/gprof/%svC
    Directory to write gmon.out profiling data to.
    GracefulShutDownTimeout secondssM
    穏やかな停止をかけた後、終了するまで待つ時間
    Group unix-group #-1 sM
    リクエストに応答する際に所属するグループ
    Header [condition] set|append|add|unset|echo +header [value] [early|env=[!]variable]svdhE
    HTTP 応答ヘッダの設定
    HeaderName filenamesvdhB
    +インデックス一覧の先頭に挿入されるファイルの名前
    HostnameLookups On|Off|Double Off svdC
    クライアントの IP アドレスの DNS ルックアップを +有効にする
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +svC
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off svdE
    リモートユーザの RFC 1413 によるアイデンティティのロギングを +有効にする
    IdentityCheckTimeout seconds 30 svdE
    Ident リクエストがタイムアウトするまでの期間を決める
    <IfDefine [!]parameter-name> ... + </IfDefine>svdhC
    起動時にテストが真であるときのみに処理されるディレクティブを +囲む
    <IfModule [!]module-file|module-identifier> ... + </IfModule>svdhC
    モジュールの存在するかしないかに応じて処理される +ディレクティブを囲む
    <IfVersion [[!]operator] version> ... +</IfVersion>svdhE
    バージョン依存の設定を入れる
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates +that are not explicitly mapped
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling +an imagemap
    Include file-path|directory-pathsvdC
    サーバ設定ファイル中から他の設定ファイルを取り込む
    IndexHeadInsert "markup ..."svdhB
    Inserts text in the HEAD section of an index page.
    IndexIgnore file [file] ...svdhB
    ディレクトリ一覧を行なう際に無視すべき +ファイルリストに追加
    IndexOptions [+|-]option [[+|-]option] ...svdhB
    ディレクトリインデックスの様々な設定項目 +
    IndexOrderDefault Ascending|Descending +Name|Date|Size|Description Ascending Name svdhB
    +ディレクトリインデックスの標準の順番付けを設定
    IndexStyleSheet url-pathsvdhB
    ディレクトリインデックスに CSS スタイルシートを追加する
    ISAPIAppendLogToErrors on|off off svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the error log
    ISAPIAppendLogToQuery on|off on svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the query field
    ISAPICacheFile file-path [file-path] +...svB
    ISAPI .dll files to be loaded at startup
    ISAPIFakeAsync on|off off svdhB
    Fake asynchronous support for ISAPI callbacks
    ISAPILogNotSupported on|off off svdhB
    Log unsupported feature requests from ISAPI +extensions
    ISAPIReadAheadBuffer size 49152 svdhB
    Size of the Read Ahead Buffer sent to ISAPI +extensions
    KeepAlive On|Off On svC
    HTTP の持続的な接続を有効にする
    KeepAliveTimeout seconds 5 svC
    持続的な接続で次のリクエストが来るまでサーバが待つ時間
    LanguagePriority MIME-lang [MIME-lang] +...svdhB
    クライアントが優先度を示さなかったときの言語の variant の優先度を +指定
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare +operations
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain +valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per +connection client certificate. Not all LDAP toolkits support per +connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted +Certificate Authority or global client certificates
    LDAPTrustedMode typesvE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... + </Limit>svdhC
    囲いの中にあるアクセス制御の適用を特定の HTTP メソッドのみに +制限する
    <LimitExcept method [method] ... > ... + </LimitExcept>svdhC
    指定されたもの以外の HTTP メソッドにアクセス制御を +制限する
    LimitInternalRecursion number [number] 10 svC
    内部リダイレクトと入れ子になったサブリクエストの最大数を決定する
    LimitRequestBody bytes 0 svdhC
    クライアントから送られる HTTP リクエストのボディの +総量を制限する
    LimitRequestFields number 100 sC
    クライアントからの HTTP リクエストのヘッダフィールドの数を +制限する
    LimitRequestFieldSize bytes 8190 sC
    クライアントからの HTTP リクエストのヘッダの +サイズを制限する
    LimitRequestLine bytes 8190 sC
    クライアントからの HTTP リクエスト行のサイズを制限する
    LimitXMLRequestBody bytes 1000000 svdhC
    XML 形式のリクエストのボディのサイズを制限する
    Listen [IP-address:]portnumber [protocol]sM
    サーバが listen するIP アドレスとポート番号
    ListenBacklog backlogsM
    保留状態のコネクションのキューの最大長
    LoadFile filename [filename] ...sE
    指定されたオブジェクトファイルやライブラリをリンクする
    LoadModule module filenamesE
    オブジェクトファイルやライブラリをリンクし、使用モジュールの +リストに追加する
    <Location + URL-path|URL> ... </Location>svC
    囲んだディレクティブをマッチする URL のみに適用
    <LocationMatch + regex> ... </LocationMatch>svC
    囲んだディレクティブを正規表現にマッチする URL のみに +適用
    LockFile filename logs/accept.lock sM
    受付を直列化するためのロックファイルの位置
    LogFormat format|nickname +[nickname] "%h %l %u %t \"%r\" +svB
    ログファイルで使用する書式を設定する
    LogLevel level warn svC
    ErrorLog の冗長性を制御する
    MaxClients numbersM
    リクエストに応答するために作成される +子プロセスの最大個数
    MaxKeepAliveRequests number 100 svC
    持続的な接続上で許可されるリクエストの数
    MaxMemFree KBytes 0 sM
    free() が呼ばれない限り、 +主メモリアロケータが保持し続けられるメモリの最大量
    MaxRanges default | unlimited | none | number-of-ranges 200 svdC
    Number of ranges allowed before returning the complete +resource
    MaxRequestsPerChild number 10000 sM
    個々の子サーバが稼働中に扱うリクエスト数の上限
    MaxRequestsPerThread number 0 sM
    Limit on the number of requests that an individual thread +will handle during its life
    MaxSpareServers number 10 sM
    アイドルな子サーバプロセスの最大個数
    MaxSpareThreads numbersM
    アイドルスレッドの最大数
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MCacheMaxObjectCount value 1009 sE
    キャッシュに保管されるオブジェクトの最大数
    MCacheMaxObjectSize bytes 10000 sE
    キャッシュに保管できるドキュメントの最大サイズ (バイト)
    MCacheMaxStreamingBuffer size_in_bytes of 100000 か MCacheM +sE
    ストリームされている応答をキャッシュ不能と決定するまでに +メモリにバッファする最大量
    MCacheMinObjectSize bytes 0 sE
    キャッシュに保管されるドキュメントの最小サイズ (バイト)
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    キャッシュから削除するドキュメントを選ぶためのアルゴリズム
    MCacheSize KBytes 100 sE
    キャッシュに使われるメモリの最大量をバイト単位で指定
    MergeTrailers [on|off] off svC
    Determines whether trailers are merged into headers
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information +files
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style +meta information
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents +using the specified magic file
    MinSpareServers number 5 sM
    アイドルな子サーバプロセスの最小個数
    MinSpareThreads numbersM
    リクエストに応答することのできる +アイドルスレッド数の最小数
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    path_info コンポーネントをファイル名の一部として扱うように +mod_mime に通知する
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters] NegotiatedOnly svdhB
    MultiViews でのマッチングの検索に含ませる +ファイルのタイプを指定する
    NameVirtualHost addr[:port]sC
    名前ベースのバーチャルホストのための IP アドレスを指定
    NoProxy host [host] ...svE
    直接接続する ホスト、ドメイン、ネットワーク
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options + [+|-]option [[+|-]option] ... All svdhC
    ディレクトリに対して使用可能な機能を設定する
    Order ordering Deny,Allow dhB
    デフォルトのアクセス可能な状態と、Allow と +Deny が評価される順番を制御する
    PassEnv env-variable [env-variable] +...svdhB
    シェルからの環境変数を渡す
    PidFile filename logs/httpd.pid sM
    デーモンのプロセス ID +をサーバが記録するためのファイル
    Protocol protocolsvC
    Protocol for a listening socket
    ProtocolEcho On|Off Off svX
    エコーサーバの有効無効を設定します。
    <Proxy wildcard-url> ...</Proxy>svE
    プロキシされるリソースに適用されるコンテナ
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    応答におかしなヘッダがある場合の扱い方を決める
    ProxyBlock *|word|host|domain +[word|host|domain] ...svE
    プロキシ接続を禁止する語句、ホスト名、ドメインを指定する
    ProxyDomain DomainsvE
    プロキシされたリクエストのデフォルトのドメイン名
    ProxyErrorOverride On|Off Off svE
    プロキシされたコンテンツのエラーページを上書きする
    ProxyFtpDirCharset character set ISO-8859-1 svdE
    プロキシされた FTP (の一覧表示) のキャラクタセットを定義
    ProxyIOBufferSize bytes 8192 svE
    内部データスループットバッファのサイズを決定する
    <ProxyMatch regex> ...</ProxyMatch>svE
    正規表現でのマッチによるプロキシリソース用のディレクティブコンテナ
    ProxyMaxForwards number -1 svE
    リクエストがフォワードされるプロキシの最大数
    ProxyPass [path] !|url [key=value +key=value ...]] [nocanon] [interpolate]svdE
    リモートサーバをローカルサーバの URL 空間にマップする
    ProxyPassInterpolateEnv On|Off Off svdE
    リバースプロキシ設定内での環境変数の使用を有効にする
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]svdE
    正規表現を使ってリモートサーバをローカルサーバの URL 空間にマップする
    ProxyPassReverse [path] url +[interpolate]svdE
    リバースプロキシされたサーバから送られた HTTP レスポンスヘッダの +URL を調整する
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]svdE
    リバースプロキシサーバからの Set-Cookie ヘッダの Domain 文字列を +調整する
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]svdE
    リバースプロキシサーバからの Set-Cookie ヘッダの Path 文字列を +調整する
    ProxyPreserveHost On|Off Off svE
    プロキシリクエストに、受け付けた Host HTTP ヘッダを使う
    ProxyReceiveBufferSize bytes 0 svE
    プロキシされる HTTP と FTP 接続のためのネットワークバッファサイズ
    ProxyRemote match remote-serversvE
    特定のリクエストを扱う時に使われるリモートプロキシを指定する
    ProxyRemoteMatch regex remote-serversvE
    正規表現でのマッチによるリクエストを扱うリモートプロキシの指定
    ProxyRequests On|Off Off svE
    フォワード (標準の) プロキシリクエストを有効にする
    ProxySCGIInternalRedirect On|Off On svdE
    バックエンドからの内部的なリダイレクトレスポンスを有効あるいは無効にする
    ProxySCGISendfile On|Off|Headername Off svdE
    X-Sendfile 疑似レスポンスヘッダの評価を有効にする
    ProxySet url key=value [key=value ...]dE
    プロキシのバランサやメンバのパラメータをセット
    ProxyStatus Off|On|Full Off svE
    mod_status でプロキシのロードバランサの状態を表示
    ProxyTimeout secondssvE
    プロキシされたリクエストのネットワークタイムアウト
    ProxyVia On|Off|Full|Block Off svE
    プロキシされたリクエストの Via HTTP レスポンスヘッダ +により提供される情報
    ReadmeName filenamesvdhB
    インデックス一覧の最後に挿入されるファイルの名前
    ReceiveBufferSize bytes 0 sM
    TCP 受信バッファサイズ
    Redirect [status] URL-path +URLsvdhB
    クライアントが違う URL を取得するように外部へのリダイレクトを +送る
    RedirectMatch [status] regex +URLsvdhB
    現在の URL への正規表現のマッチにより +外部へのリダイレクトを送る
    RedirectPermanent URL-path URLsvdhB
    クライアントが違う URL を取得するように外部への永久的な +リダイレクトを送る
    RedirectTemp URL-path URLsvdhB
    クライアントが違う URL を取得するように外部への一時的な +リダイレクトを送る
    RegisterHttpMethod method [method [...]]sC
    Register non-standard HTTP methods
    RemoveCharset extension [extension] +...vdhB
    ファイルの拡張子に関連付けられたすべての文字セット +を解除する
    RemoveEncoding extension [extension] +...vdhB
    ファイルの拡張子に関連付けられたすべてのコンテントエンコーディング +を解除する
    RemoveHandler extension [extension] +...vdhB
    ファイルの拡張子に関連付けられたすべてのハンドラを +解除する
    RemoveInputFilter extension [extension] +...vdhB
    ファイル拡張子に関連付けられた入力フィルタを解除する
    RemoveLanguage extension [extension] +...vdhB
    ファイル拡張子に関連付けられた言語を解除する
    RemoveOutputFilter extension [extension] +...vdhB
    ファイル拡張子に関連付けられた出力フィルタを解除する
    RemoveType extension [extension] +...vdhB
    ファイルの拡張子と関連付けられたコンテントタイプを +解除する
    RequestHeader set|append|add|unset header +[value] [early|env=[!]variable]svdhE
    HTTP リクエストヘッダの設定
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +svE
    Set timeout values for receiving request headers and body from client. +
    Require entity-name [entity-name] ...dhC
    どの認証済みユーザがリソースをアクセスできるかを選択する
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond + TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place +
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap +synchronization
    RewriteLog file-path|pipesvE
    Sets the name of the file used for logging rewrite engine +processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite +engine
    RewriteMap MapName MapType:MapSource +svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule + Pattern Substitution [flags]svdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Apache の子プロセスから起動されたプロセスの CPU 消費量を +制限する
    RLimitMEM bytes|max [bytes|max]svdhC
    Apache の子プロセスから起動されたプロセスのメモリ消費量を +制限する
    RLimitNPROC number|max [number|max]svdhC
    Apache の子プロセスから起動されたプロセスが起動するプロセスの +数を制限する
    Satisfy Any|All All dhC
    ホストレベルのアクセス制御とユーザ認証との相互作用を指定
    ScoreBoardFile file-path logs/apache_status sM
    子プロセスと連携するためのデータを保存する +ファイルの位置
    Script method cgi-scriptsvdB
    特定のリクエストメソッドに対して CGI スクリプトを +実行するように設定
    ScriptAlias URL-path +file-path|directory-pathsvB
    URL をファイルシステムの位置へマップし、マップ先を +CGI スクリプトに指定
    ScriptAliasMatch regex +file-path|directory-pathsvB
    URL を正規表現を使ってファイルシステムの位置へマップし、マップ先を +CGI スクリプトに指定
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    CGI スクリプトのインタープリタの位置を調べるための手法
    ScriptLog file-pathsvB
    CGI スクリプトのエラーログファイルの場所
    ScriptLogBuffer bytes 1024 svB
    スクリプトログに記録される PUT や POST リクエストの内容の上限
    ScriptLogLength bytes 10385760 svB
    CGI スクリプトのログファイルの大きさの上限
    ScriptSock file-path logs/cgisock sB
    CGI デーモンとの通信に使われるソケットのファイル名の接頭辞
    SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SeeRequestTail On|Off Off sB
    リクエストの最初の 63 文字か最後の 63 文字 +のどちらを mod_status が表示するかを決める
    SendBufferSize bytes 0 sM
    TCP バッファサイズ
    ServerAdmin email-address|URLsvC
    サーバがクライアントに送るエラーメッセージに含める電子メールの +アドレス
    ServerAlias hostname [hostname] ...vC
    リクエストを名前ベースのバーチャルホストにマッチさせているときに +使用されるホストの別名
    ServerLimit numbersM
    設定可能なサーバプロセス数の上限
    ServerName [scheme://]fully-qualified-domain-name[:port]svC
    サーバが自分自身を示すときに使うホスト名とポート
    ServerPath URL-pathvC
    非互換のブラウザが名前ベースのバーチャルホストにアクセスしたときの +ための互換用 URL パス名
    ServerRoot directory-path /usr/local/apache sC
    インストールされたサーバのベースディレクトリ
    ServerSignature On|Off|EMail Off svdhC
    サーバが生成するドキュメントのフッタを設定
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Server HTTP 応答ヘッダを設定する
    SetEnv env-variable valuesvdhB
    環境変数を設定する
    SetEnvIf attribute + regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    リクエストの属性に基づいて環境変数を設定する +
    SetEnvIfNoCase attribute regex + [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    リクエストの属性に基づいて大文字小文字を区別せずに環境変数を設定する
    SetHandler handler-name|NonesvdhC
    マッチするファイルがハンドラで処理されるようにする
    SetInputFilter filter[;filter...]svdhC
    クライアントのリクエストや POST の入力を処理するフィルタを設定する
    SetOutputFilter filter[;filter...]svdhC
    サーバの応答を処理するフィルタを設定する
    SSIEnableAccess on|off off dhB
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" svB
    include 要素を終了させる文字列
    SSIErrorMsg message "[an error occurred +svdhB
    SSI のエラーがあったときに表示されるエラーメッセージ
    SSIETag on|off off dhB
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhB
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" svB
    include 要素を開始する文字列
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    日付けを表す文字列の書式を設定する
    SSIUndefinedEcho string "(none)" svdhB
    未定義の変数が echo されたときに表示される文字列
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for Client Auth
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +Client Auth
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for defining acceptable CA names
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +defining acceptable CA names
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +Client Auth
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +Client Auth
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +handshake
    SSLCompression on|off off svE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off svE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of +operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private +keys
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for Remote Server Auth
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +Remote Server Auth
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCheckPeerCN on|off off svE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off svE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svE
    Maximum depth of CA Certificates in Remote Server +Certificate verification
    SSLRandomSeed context source +[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding +source
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex +boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the +HTTP request
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session +Cache
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires +in the Session Cache
    SSLSessionTicketKeyFile file-pathsvE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on svE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off svE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client +Certificate verification
    StartServers numbersM
    起動時に生成される子サーバプロセスの数
    StartThreads numbersM
    起動時に生成されるスレッドの数
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsC
    Enable or disable the suEXEC feature
    SuexecUserGroup User GroupsvE
    CGI プログラムのユーザパーミッション、グループパーミッション
    ThreadLimit numbersM
    設定可能な子プロセス毎のスレッド数の上限を +設定します
    ThreadsPerChild numbersM
    子プロセスそれぞれに生成されるスレッド数
    ThreadStackSize sizesM
    クライアントのコネクションを受け持つスレッドが使用する +スタックのバイト数
    TimeOut seconds 300 svC
    各イベントについて、リクエストを失敗させるまでにサーバが +待つ時間を設定
    TraceEnable [on|off|extended] on sC
    TRACE メソッドのリクエストに対する応答方法を決める +
    TransferLog file|pipesvB
    ログファイルの位置を指定
    TypesConfig file-path conf/mime.types sB
    mime.types ファイルの位置
    UnsetEnv env-variable [env-variable] +...svdhB
    環境から変数を取り除く
    UseCanonicalName On|Off|Dns Off svdC
    サーバが自分自身の名前とポートを決定する方法を設定する
    UseCanonicalPhysicalPort On|Off Off svdC
    サーバの名前とポートの解決方法を設定する
    User unix-userid #-1 sM
    リクエストに応答する際に用いるユーザ ID
    UserDir directory-filenamesvB
    ユーザ専用ディレクトリの位置
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root +for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root +for a given virtual host
    <VirtualHost + addr[:port] [addr[:port]] + ...> ... </VirtualHost>sC
    特定のホスト名や IP アドレスのみに適用されるディレクティブを +囲む
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for +a given virtual host
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for +a given virtual host
    Win32DisableAcceptExsM
    ネットワーク接続の受け付けに accept() をAcceptEx の代わりに使う
    XBitHack on|off|full off svdhB
    実行ビットが設定されたファイルの SSI ディレクティブを +解析する
    +
    +

    翻訳済み言語:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.ko.euc-kr b/docs/manual/mod/quickreference.html.ko.euc-kr index a8df1a05a19..619b7c41f7c 100644 --- a/docs/manual/mod/quickreference.html.ko.euc-kr +++ b/docs/manual/mod/quickreference.html.ko.euc-kr @@ -1,31 +1,43 @@ - -Áö½þî ºü¸¥ÂüÁ¶ - Apache HTTP Server +Áö½þî ºü¸¥ÂüÁ¶ - Apache HTTP Server Version 2.2 - - + + + +
    <-
    -

    Áö½þî ºü¸¥ÂüÁ¶

    +Apache > HTTP Server > Documentation > Version 2.2 > ¸ðµâ
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Áö½þî ºü¸¥ÂüÁ¶

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  |  es  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ÀÌ ¹®¼­´Â ¾ÆÆÄġ ¼³Á¤Áö½þî °¢°¢ÀÇ ¿뵵, ±⺻°ª, »óÅÂ, »ç¿ëÀå¼Ҹ¦ º¸¿©ÁشÙ. À̵éÀº Áö½þî »çÀü¿¡¼­ ¼³¸íÇѴÙ.

    @@ -39,21 +51,17 @@
    - - + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  - - - - - -
    sÁּ­¹ö¼³Á¤
    v°¡»óȣ½ºƮ
    ddirectory
    h.htaccess
    - - - - - - -
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    + + + +
    sÁּ­¹ö¼³Á¤
    v°¡»óȣ½ºƮ
    ddirectory
    h.htaccess
    + + + + +
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    @@ -113,7 +121,7 @@ type [host|env=env-variable] ... - - - - - + + + + - - - - + - - - - - - + + + + - - + + - + - + - - + - - - + - - - - - + + + + - - - + + + - - - - - - - - + + + + + + + + + + + - - + + + - + + + - - - + + + + - + @@ -229,40 +253,45 @@ switch before dumping core - - - - + + + + - - - +param1=value1[,param2=value2] + + + - - - - - - - + + + + + + + + - - + - + + @@ -279,31 +308,37 @@ in case of an error - - + + - - - - - - + + + + - - - - + + + - - - + + + + presence or absence of a specific module - - + - + - - - - - + + + + + - - - - + + - - - + - - - - - + + + - - - - + + - - - - + + - - - - - - - - + - - - + + - - - - - - - + + + + - + - - - - + + - - - + + + + @@ -430,19 +468,19 @@ a matching file with MultiViews hosting - - - - + + - - - + + proxied - - + + - - - + + + - - - - - - + - - - + + + + + + - + + @@ -486,29 +539,35 @@ header for proxied requests ¿µ±¸ ¸®´ÙÀ̷º¼ÇÀ» º¸³½´Ù - + - - - - - - - + + @@ -518,7 +577,7 @@ a resource - @@ -526,7 +585,7 @@ engine + PatternSubstitution [flags] processes launched by Apache children - @@ -553,37 +612,44 @@ scripts - - + + - - - + - - - - + + - - + - + - - - + + + @@ -605,80 +671,101 @@ Client Auth - - - - + + + + + + - - + - - + - - - - + + - + + - - + - + - - - + + + - - + + + + - - + - + - + - - + - - - - - - +
    AcceptFilter protocol accept_filtersC
    Configures optimizations for a Protocol's Listener Sockets
    dhB
    ¼­¹öÀÇ ÀϺο¡ Á¢±ÙÇÒ ¼ö Àִ ȣ½ºƮ¸¦ ÁöÁ¤ÇѴÙ
    AllowCONNECT port [port] ... 443 563 svE
    Ports that are allowed to CONNECT through the proxy
    AllowEncodedSlashes On|Off Off svC
    Determines whether encoded path separators in URLs are allowed to +
    AllowEncodedSlashes On|Off|NoDecode Off svC
    Determines whether encoded path separators in URLs are allowed to be passed through
    AllowOverride All|None|directive-type [directive-type] ... All dC
    Types of directives that are allowed in @@ -125,91 +133,107 @@ be passed through
    Anonymous_NoUserID On|Off Off dhE
    »ç¿ëÀÚ ¾ÆÀ̵ð°¡ ¾ø¾ °¡´ÉÇÏÁö ¿©ºÎ
    Anonymous_VerifyEmail On|Off Off dhE
    ¾Ïȣ°¡ ¿ùٸ¥ Çü½ÄÀÇ ÀüÀڿìÆí ÁּÒÀÎÁö °˻ç ¿©ºÎ
    AssignUserID user-id group-idvM
    Tie a virtual host to a user and group ID
    AuthBasicAuthoritative On|Off On dhB
    ÀÎÁõ°ú ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµ⿡ ³ѰÜÁÙÁö °áÁ¤ÇѴÙ
    AuthBasicProvider On|Off|provider-name -[provider-name] ... On dhB
    ÀÌ À§ġ¿¡ ´ëÇÑ ÀÎÁõÁ¦°øÀڸ¦ ÁöÁ¤ÇѴÙ
    AuthDBMGroupFile file-pathdhE
    ÀÎÁõ¿¡ »ç¿ëÇÒ »ç¿ëÀÚ ±׷ì ¸ñ·ÏÀ» ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º +
    AuthBasicAuthoritative On|Off On dhB
    ÀÎÁõ°ú ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµ⿡ ³ѰÜÁÙÁö °áÁ¤ÇѴÙ
    AuthBasicProvider On|Off|provider-name +[provider-name] ... On dhB
    ÀÌ À§ġ¿¡ ´ëÇÑ ÀÎÁõÁ¦°øÀڸ¦ ÁöÁ¤ÇѴÙ
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    ÀÎÁõ¿¡ »ç¿ëÇÒ »ç¿ëÀÚ ±׷ì ¸ñ·ÏÀ» ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º ÆÄÀϸíÀ» ÁöÁ¤ÇѴÙ
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    ¾Ïȣ¸¦ ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º ÆÄÀÏ Á¾·ù¸¦ +
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    ¾Ïȣ¸¦ ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º ÆÄÀÏ Á¾·ù¸¦ ÁöÁ¤ÇѴÙ
    AuthDBMUserFile file-pathdhE
    ÀÎÁõÇÒ »ç¿ëÀڿÍ ¾Ïȣ ¸ñ·ÏÀ» ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º +
    AuthDBMUserFile file-pathdhE
    ÀÎÁõÇÒ »ç¿ëÀڿÍ ¾Ïȣ ¸ñ·ÏÀ» ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º ÆÄÀϸíÀ» ÁöÁ¤ÇѴÙ
    AuthDefaultAuthoritative On|Off On dhB
    ÀÎÁõÀ» Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
    digest authentication¿¡¼­ challenge¿Í response +
    AuthDefaultAuthoritative On|Off On dhB
    ÀÎÁõÀ» Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
    digest authentication¿¡¼­ challenge¿Í response hash¸¦ °è»êÇϴ ¾˰í¸®ÁòÀ» ¼±ÅÃÇѴÙ
    AuthDigestDomain URI [URI] ...dhX
    digest authentication¿¡¼­ °°Àº º¸ȣ¿µ¿ª¿¡ ¼ÓÇϴ +
    AuthDigestDomain URI [URI] ...dhX
    digest authentication¿¡¼­ °°Àº º¸ȣ¿µ¿ª¿¡ ¼ÓÇϴ URIµé
    AuthDigestNcCheck On|Off Off sX
    ¼­¹ö°¡ º¸³»´Â nonce-count¸¦ °˻çÇÒÁö ¿©ºÎ
    AuthDigestNonceFormat formatdhX
    nonce¸¦ ¸¸µå´Â ¹æ¹ýÀ» °áÁ¤ÇѴÙ
    AuthDigestNonceLifetime seconds 300 dhX
    ¼­¹ö nonce°¡ À¯ȿÇÑ ±Ⱓ
    AuthDigestProvider On|Off|provider-name -[provider-name] ... On dhX
    ÀÌ À§ġ¿¡ ´ëÇÑ ÀÎÁõÁ¦°øÀڸ¦ ÁöÁ¤ÇѴÙ
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhX
    digest authentication°¡ »ç¿ëÇÒ +
    AuthDigestNcCheck On|Off Off sX
    ¼­¹ö°¡ º¸³»´Â nonce-count¸¦ °˻çÇÒÁö ¿©ºÎ
    AuthDigestNonceFormat formatdhX
    nonce¸¦ ¸¸µå´Â ¹æ¹ýÀ» °áÁ¤ÇѴÙ
    AuthDigestNonceLifetime seconds 300 dhX
    ¼­¹ö nonce°¡ À¯ȿÇÑ ±Ⱓ
    AuthDigestProvider On|Off|provider-name +[provider-name] ... On dhX
    ÀÌ À§ġ¿¡ ´ëÇÑ ÀÎÁõÁ¦°øÀڸ¦ ÁöÁ¤ÇѴÙ
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhX
    digest authentication°¡ »ç¿ëÇÒ º¸ȣ¼öÁØ(quality-of-protection)À» ÁöÁ¤ÇѴÙ.
    AuthDigestShmemSize size 1000 sX
    Ŭ¶óÀ̾ðƮ¸¦ ÃßÀûÇϱâÀ§ÇØ ÇҴçÇϴ °øÀ¯¸޸𸮷®
    AuthGroupFile file-pathdhB
    ÀÎÁõ¿¡ »ç¿ëÇÒ »ç¿ëÀÚ ±׷ì ¸ñ·ÏÀ» ÀúÀåÇϴ ¹®ÀÚÆÄÀϸíÀ» +
    AuthDigestShmemSize size 1000 sX
    Ŭ¶óÀ̾ðƮ¸¦ ÃßÀûÇϱâÀ§ÇØ ÇҴçÇϴ °øÀ¯¸޸𸮷®
    AuthGroupFile file-pathdhB
    ÀÎÁõ¿¡ »ç¿ëÇÒ »ç¿ëÀÚ ±׷ì ¸ñ·ÏÀ» ÀúÀåÇϴ ¹®ÀÚÆÄÀϸíÀ» ÁöÁ¤ÇѴÙ
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attributedhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for group membership
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER +
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP +
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP authentication
    <AuthnProviderAlias baseProvider Alias> -... </AuthnProviderAlias>svE
    Enclose a group of directives that represent an +
    <AuthnProviderAlias baseProvider Alias> +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an extension of a base authentication provider and referenced by the specified alias
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    ÀÎÁõÇÒ »ç¿ëÀڸí¿Í ¾Ïȣ ¸ñ·ÏÀ» ÀúÀåÇϴ ¹®ÀÚÆÄÀϸíÀ» +
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    ÀÎÁõÇÒ »ç¿ëÀڸí¿Í ¾Ïȣ ¸ñ·ÏÀ» ÀúÀåÇϴ ¹®ÀÚÆÄÀϸíÀ» ÁöÁ¤ÇѴÙ
    AuthzDBMAuthoritative On|Off On dhE
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    ¾Ïȣ¸¦ ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º ÆÄÀÏ Á¾·ù¸¦ ÁöÁ¤ÇѴÙ
    AuthzDefaultAuthoritative On|Off On dhB
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzGroupFileAuthoritative On|Off On dhB
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from +
    AuthzDBMAuthoritative On|Off On dhE
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    ¾Ïȣ¸¦ ÀúÀåÇϴ µ¥ÀÌÅͺ£À̽º ÆÄÀÏ Á¾·ù¸¦ ÁöÁ¤ÇѴÙ
    AuthzDefaultAuthoritative On|Off On dhB
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzGroupFileAuthoritative On|Off On dhB
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzUserAuthoritative On|Off On dhB
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    BrowserMatch regex [!]env-variable[=value] +
    AuthzOwnerAuthoritative On|Off On dhE
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    AuthzUserAuthoritative On|Off On dhB
    ±ÇÇѺο©¸¦ Àú¼öÁØ ¸ðµâ·Î ³ѰÜÁÙÁö ¿©ºÎ
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    Add a member to a load balancing group
    BrowserMatch regex [!]env-variable[=value] [[!]env-variable[=value]] ...svdhB
    HTTP User-Agent¿¡ µû¶ó ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ
    BrowserMatchNoCase regex [!]env-variable[=value] [[!]env-variable[=value]] ...svdhB
    ´ë¼ҹ®Àڸ¦ ±¸º°ÇÏÁö¾ʰí User-Agent¿¡ µû¶ó ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ
    CacheDefaultExpire seconds 3600 (one hour) svX
    ¸¸±â½ð£À» ÁöÁ¤ÇÏÁö¾ÊÀº ¹®¼­¸¦ ij½¬ÇÒ ±⺻ ±Ⱓ.
    CacheDirLength length 2 svX
    ÇÏÀ§µð·ºÅ丮¸íÀÇ ¹®Àڰ³¼ö
    CacheDirLevels levels 3 svX
    ij½¬ÀÇ ÇÏÀ§µð·ºÅ丮 ±íÀÌ.
    CacheDisable url-stringsvX
    ƯÁ¤ URLÀ» ij½¬ÇÏÁö ¾ʴ´Ù
    CacheEnable cache_type url-stringsvX
    ÁöÁ¤ÇÑ ÀúÀå°ü¸®Àڸ¦ »ç¿ëÇϿ© ÁöÁ¤ÇÑ URLÀ» ij½¬ÇѴÙ
    CacheFile file-path [file-path] ...sX
    ½ÃÀ۽à ¿©·¯ ÆÄÀÏ ÇڵéÀ» ij½¬ÇѴÙ
    CacheIgnoreCacheControl On|Off Off svX
    Ŭ¶óÀ̾ðƮ°¡ ij½¬ÇÏÁö¾ʴ ³»¿ëÀ» ¿äûÇÔÀ» ¹«½ÃÇѴÙ.
    CacheIgnoreHeaders header-string [header-string] ... None svX
    ij½¬¿¡ ÁöÁ¤ÇÑ HTTP Çì´õ(µé)¸¦ ÀúÀåÇÏÁö ¾ʴ´Ù +
    BufferedLogs On|Off Off sB
    Buffer log entries in memory before writing to disk
    CacheDefaultExpire seconds 3600 (one hour) svX
    ¸¸±â½ð£À» ÁöÁ¤ÇÏÁö¾ÊÀº ¹®¼­¸¦ ij½¬ÇÒ ±⺻ ±Ⱓ.
    CacheDirLength length 2 svX
    ÇÏÀ§µð·ºÅ丮¸íÀÇ ¹®Àڰ³¼ö
    CacheDirLevels levels 3 svX
    ij½¬ÀÇ ÇÏÀ§µð·ºÅ丮 ±íÀÌ.
    CacheDisable url-stringsvX
    ƯÁ¤ URLÀ» ij½¬ÇÏÁö ¾ʴ´Ù
    CacheEnable cache_type url-stringsvX
    ÁöÁ¤ÇÑ ÀúÀå°ü¸®Àڸ¦ »ç¿ëÇϿ© ÁöÁ¤ÇÑ URLÀ» ij½¬ÇѴÙ
    CacheFile file-path [file-path] ...sX
    ½ÃÀ۽à ¿©·¯ ÆÄÀÏ ÇڵéÀ» ij½¬ÇѴÙ
    CacheIgnoreCacheControl On|Off Off svX
    Ŭ¶óÀ̾ðƮ°¡ ij½¬ÇÏÁö¾ʴ ³»¿ëÀ» ¿äûÇÔÀ» ¹«½ÃÇѴÙ.
    CacheIgnoreHeaders header-string [header-string] ... None svX
    ij½¬¿¡ ÁöÁ¤ÇÑ HTTP Çì´õ(µé)¸¦ ÀúÀåÇÏÁö ¾ʴ´Ù +
    CacheIgnoreNoLastMod On|Off Off svX
    ÀÀ´信 Last Modified Çì´õ°¡ ¾ø´ٴ »ç½ÇÀ» ¹«½ÃÇѴÙ.
    CacheIgnoreQueryString On|Off Off svE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None svE
    Ignore defined session identifiers encoded in the URL when caching
    CacheIgnoreNoLastMod On|Off Off svX
    ÀÀ´信 Last Modified Çì´õ°¡ ¾ø´ٴ »ç½ÇÀ» ¹«½ÃÇѴÙ.
    CacheLastModifiedFactor float 0.1 svX
    LastModified ½ð£À¸·Î ¸¸±â½ð£À» °è»êÇϴµ¥ »ç¿ëÇϴ +
    CacheLastModifiedFactor float 0.1 svX
    LastModified ½ð£À¸·Î ¸¸±â½ð£À» °è»êÇϴµ¥ »ç¿ëÇϴ °è¼ö.
    CacheLock on|off off svE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 svE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +svE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (ÇϷç) svX
    ¹®¼­¸¦ ij½¬Çϴ ÃʴÜÀ§ Ãִë½ð£
    CacheMaxFileSize bytes 1000000 svX
    ij½¬¿¡ ÀúÀåÇÒ ¹®¼­ÀÇ Ãִëũ±â (¹ÙÀÌƮ ´ÜÀ§)
    CacheMinFileSize bytes 1 svX
    ij½¬¿¡ ÀúÀåÇÒ ¹®¼­ÀÇ ÃּÒũ±â (¹ÙÀÌƮ ´ÜÀ§)
    CacheNegotiatedDocs On|Off Off svB
    Allows content-negotiated documents to be cached by proxy servers
    CacheRoot directorysvX
    ij½¬ ÆÄÀÏÀ» ÀúÀåÇÒ µð·ºÅ丮 root
    CGIMapExtension cgi-path .extensiondhC
    Technique for locating the interpreter for CGI +
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CGIDScriptTimeout time[s|ms]svdhB
    The length of time to wait for more output from the +CGI program
    CGIMapExtension cgi-path .extensiondhC
    Technique for locating the interpreter for CGI scripts
    CharsetDefault charsetsvdhX
    º¯ȯÇÒ ¹®ÀÚÁýÇÕ
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhX
    ¹®ÀÚÁýÇÕ º¯ȯ ±â´ÉÀ» ¼³Á¤
    CharsetSourceEnc charsetsvdhX
    ÆÄÀÏ ¿øº»ÀÇ ¹®ÀÚÁýÇÕ
    CharsetDefault charsetsvdhX
    º¯ȯÇÒ ¹®ÀÚÁýÇÕ
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhX
    ¹®ÀÚÁýÇÕ º¯ȯ ±â´ÉÀ» ¼³Á¤
    CharsetSourceEnc charsetsvdhX
    ÆÄÀÏ ¿øº»ÀÇ ¹®ÀÚÁýÇÕ
    CheckCaseOnly on|off Off svdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off svdhE
    ¸ÂÃã¹ý ¸ðµâÀ» »ç¿ëÇѴÙ
    ChildPerUserID user-id group-id -num-childrensM
    Specify user ID and group ID for a number of child -processes
    ChrootDir /path/to/directorysM
    Directory for apache to run chroot(8) after startup.
    ContentDigest On|Off Off svdhC
    Enables the generation of Content-MD5 HTTP Response headers
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    DavGenericLockDB file-pathsvdE
    Location of the DAV lock database
    DavLockDB file-pathsvE
    DAV Àá±Ý µ¥ÀÌÅͺ£À̽º À§ġ
    DavMinTimeout seconds 0 svdE
    ¼­¹ö°¡ DAV Àڿø¿¡ ´ëÇØ À¯ÁöÇÒ Àá±ÝÀÇ Ãּҽð£
    DBDExptime time-in-secondssvX
    Keepalive time for idle connections
    DBDKeep numbersvX
    Maximum sustainednumber of connections
    DBDMax numbersvX
    Maximum number of connections
    DBDMin numbersvX
    Minimum number of connections
    DBDExptime time-in-seconds 300 svE
    Keepalive time for idle connections
    DBDKeep number 2 svE
    Maximum sustained number of connections
    DBDMax number 10 svE
    Maximum number of connections
    DBDMin number 1 svE
    Minimum number of connections
    DBDParams -param1=value1[,param2=value2]svX
    Parameters for database connection
    DBDPersist 0|1svX
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvX
    Define an SQL prepared statement
    DBDriver namesvX
    Specify an SQL driver
    svE
    Parameters for database connection
    DBDPersist On|OffsvE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvE
    Define an SQL prepared statement
    DBDriver namesvE
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    ƯÁ¤ ¾ÆÀÌÄÜÀ» ¼³Á¤ÇÏÁö¾ÊÀº ÆÄÀϿ¡ »ç¿ëÇÒ ¾ÆÀÌÄÜ
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified language
    DefaultType MIME-type text/plain svdhC
    MIME content-type that will be sent if the +
    DefaultType MIME-type|none text/plain svdhC
    MIME content-type that will be sent if the server cannot determine a type in any other way
    DeflateBufferSize value 8096 svE
    zlibÀÌ Çѹø¿¡ ¾ÐÃàÇÒ ũ±â
    DeflateCompressionLevel valuesvE
    Ãâ·ÂÀ» ¾î´ÀÁ¤µµ ¾ÐÃàÇϴ°¡
    DeflateFilterNote [type] notenamesvE
    ¾ÐÃà·üÀ» ·α׿¡ ±â·ÏÇѴÙ
    DeflateMemLevel value 9 svE
    zlibÀÌ ¾ÐÃàÇҶ§ »ç¿ëÇϴ ¸޸𸮷®
    DeflateWindowSize value 15 svE
    Zlib ¾ÐÃà window size
    Deny from all|host|env=env-variable -[host|env=env-variable] ...dhB
    ¼­¹ö Á¢±ÙÀ» °źÎÇÒ ȣ½ºƮ¸¦ ÁöÁ¤ÇѴÙ
    <Directory directory-path> -... </Directory>svC
    Enclose a group of directives that apply only to the -named file-system directory and sub-directories
    DirectoryIndex - local-url [local-url] ... index.html svdhB
    Ŭ¶óÀ̾ðƮ°¡ µð·ºÅ丮¸¦ ¿äûÇҶ§ ã¾ƺ¼ Àڿø ¸ñ·Ï
    <DirectoryMatch regex> -... </DirectoryMatch>svC
    Enclose directives that apply to +
    DeflateInflateLimitRequestBodyvaluesvdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valuesvdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valuesvdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 svE
    zlibÀÌ ¾ÐÃàÇҶ§ »ç¿ëÇϴ ¸޸𸮷®
    DeflateWindowSize value 15 svE
    Zlib ¾ÐÃà window size
    Deny from all|host|env=env-variable +[host|env=env-variable] ...dhB
    ¼­¹ö Á¢±ÙÀ» °źÎÇÒ ȣ½ºƮ¸¦ ÁöÁ¤ÇѴÙ
    <Directory directory-path> +... </Directory>svC
    Enclose a group of directives that apply only to the +named file-system directory, sub-directories, and their contents
    DirectoryIndex + local-url [local-url] ... index.html svdhB
    Ŭ¶óÀ̾ðƮ°¡ µð·ºÅ丮¸¦ ¿äûÇҶ§ ã¾ƺ¼ Àڿø ¸ñ·Ï
    <DirectoryMatch regex> +... </DirectoryMatch>svC
    Enclose directives that apply to file-system directories matching a regular expression and their subdirectories
    DirectorySlash On|Off On svdhB
    ¸¶Áö¸· ½½·¡½¬ ¸®´ÙÀ̷º¼ÇÀ» Ű°í ²ö´Ù
    DocumentRoot directory-path /usr/local/apache/h +svC
    Directory that forms the main document tree visible +
    DirectorySlash On|Off On svdhB
    ¸¶Áö¸· ½½·¡½¬ ¸®´ÙÀ̷º¼ÇÀ» Ű°í ²ö´Ù
    DocumentRoot directory-path /usr/local/apache/h +svC
    Directory that forms the main document tree visible from the web
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Enables a hook that runs exception handlers after a crash
    ExtendedStatus On|Off Off sB
    °¢ ¿äû¿¡ ´ëÇÑ Àڼ¼ÇÑ »óÅ Á¤º¸¸¦ ±â·ÏÇѴÙ
    ExtFilterDefine filtername parameterssE
    ¿ܺÎ ÇÊÅ͸¦ Á¤ÀÇÇѴÙ
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    mod_ext_filter ¿ɼÇÀ» ¼³Á¤ÇѴÙ
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag -HTTP response header
    <Files filename> ... </Files>svdhC
    Contains directives that apply to matched +
    FallbackResource disabled | local-urlsvdhB
    Define a default URL for requests that don't map to a file
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag +HTTP response header for static files
    <Files filename> ... </Files>svdhC
    Contains directives that apply to matched filenames
    <FilesMatch regex> ... </FilesMatch>svdhC
    Contains directives that apply to regular-expression matched +
    <FilesMatch regex> ... </FilesMatch>svdhC
    Contains directives that apply to regular-expression matched filenames
    FilterChain [+=-@!]filter-name ...svdhX
    Configure the filter chain
    FilterDeclare filter-name [type]svdhX
    Declare a smart filter
    FilterProtocol filter-name [provider-name] - proto-flagssvdhX
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name - [req|resp|env]=dispatch matchsvdhX
    Register a content filter
    FilterTrace filter-name levelsvdX
    Get debug/diagnostic information from +
    FilterChain [+=-@!]filter-name ...svdhB
    Configure the filter chain
    FilterDeclare filter-name [type]svdhB
    Declare a smart filter
    FilterProtocol filter-name [provider-name] + proto-flagssvdhB
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name + [req|resp|env]=dispatch matchsvdhB
    Register a content filter
    FilterTrace filter-name levelsvdB
    Get debug/diagnostic information from mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not +
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not found
    ForceType MIME-type|NonedhC
    Forces all matching files to be served with the specified +
    ForceType MIME-type|NonedhC
    Forces all matching files to be served with the specified MIME content-type
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    Group unix-group #-1 sM
    Group under which the server will answer +
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    GprofDir /tmp/gprof/|/tmp/gprof/%svC
    Directory to write gmon.out profiling data to.
    GracefulShutDownTimeout secondssM
    Specify a timeout after which a gracefully shutdown server +will exit.
    Group unix-group #-1 sM
    Group under which the server will answer requests
    Header [condition] set|append|add|unset|echo -header [value] [early|env=[!]variable]svdhE
    HTTP ÀÀ´ä Çì´õ¸¦ ±¸¼ºÇѴÙ
    HeaderName filenamesvdhB
    ÆÄÀϸñ·Ï À§¿¡ »ðÀÔÇÒ ÆÄÀÏÀÇ À̸§
    HostnameLookups On|Off|Double Off svdC
    Enables DNS lookups on client IP addresses
    Header [condition] set|append|add|unset|echo +header [value] [early|env=[!]variable]svdhE
    HTTP ÀÀ´ä Çì´õ¸¦ ±¸¼ºÇѴÙ
    HeaderName filenamesvdhB
    ÆÄÀϸñ·Ï À§¿¡ »ðÀÔÇÒ ÆÄÀÏÀÇ À̸§
    HostnameLookups On|Off|Double Off svdC
    Enables DNS lookups on client IP addresses
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +svC
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off svdE
    ¿ø°Ý »ç¿ëÀÚÀÇ RFC 1413 ½ſøÀ» ·α׿¡ ±â·ÏÇѴÙ
    IdentityCheckTimeout seconds 30 svdE
    ident ¿äûÀÇ ½ð£Á¦ÇÑÀ» ÁöÁ¤ÇѴÙ
    <IfDefine [!]parameter-name> ... @@ -314,104 +349,107 @@ if a test is true at startup
    <IfVersion [[!]operator] version> ... </IfVersion>svdhE
    ¹öÀüº° ¼³Á¤À» ¹­´´Ù
    ImapBase map|referer|URL http://servername/ svdhB
    À̹ÌÁö¸Ê ÆÄÀϿ¡¼­ base ±⺻°ª
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    À̹ÌÁö¸ʿ¡ ¾î´À ¿µ¿ª¿¡µµ ÇشçÇÏÁö ¾ʴ ÁÂǥ¸¦ ÁØ +
    ImapBase map|referer|URL http://servername/ svdhB
    À̹ÌÁö¸Ê ÆÄÀϿ¡¼­ base ±⺻°ª
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    À̹ÌÁö¸ʿ¡ ¾î´À ¿µ¿ª¿¡µµ ÇشçÇÏÁö ¾ʴ ÁÂǥ¸¦ ÁØ °æ¿ì ±⺻ Çൿ
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    ÁÂǥ¾øÀÌ À̹ÌÁö¸Ê ¿äû½Ã ÃëÇÒ Çൿ
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    ÁÂǥ¾øÀÌ À̹ÌÁö¸Ê ¿äû½Ã ÃëÇÒ Çൿ
    Include file-path|directory-pathsvdC
    Includes other configuration files from within the server configuration files
    IndexIgnore file [file] ...svdhB
    µð·ºÅ丮 ¸ñ·Ͽ¡¼­ ¼û±æ ÆÄÀϸñ·ÏÀ» Ã߰¡ÇѴÙ
    IndexOptions [+|-]option [[+|-]option] -...svdhB
    µð·ºÅ丮 ¸ñ·ÏÀÇ ¿©·¯ ¼³Á¤µé
    IndexOrderDefault Ascending|Descending -Name|Date|Size|Description Ascending Name svdhB
    µð·ºÅ丮 ¸ñ·ÏÀÇ ±⺻ ¼ø¼­¸¦ ¼³Á¤ÇѴÙ
    IndexStyleSheet url-pathsvdhB
    µð·ºÅ丮 ¸ñ·Ͽ¡ CSS ½ºŸÀϽ¬Ʈ¸¦ Ã߰¡ÇѴÙ
    ISAPIAppendLogToErrors on|off off svdhB
    ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER +
    IndexHeadInsert "markup ..."svdhB
    Inserts text in the HEAD section of an index page.
    IndexIgnore file [file] ...svdhB
    µð·ºÅ丮 ¸ñ·Ͽ¡¼­ ¼û±æ ÆÄÀϸñ·ÏÀ» Ã߰¡ÇѴÙ
    IndexOptions [+|-]option [[+|-]option] +...svdhB
    µð·ºÅ丮 ¸ñ·ÏÀÇ ¿©·¯ ¼³Á¤µé
    IndexOrderDefault Ascending|Descending +Name|Date|Size|Description Ascending Name svdhB
    µð·ºÅ丮 ¸ñ·ÏÀÇ ±⺻ ¼ø¼­¸¦ ¼³Á¤ÇѴÙ
    IndexStyleSheet url-pathsvdhB
    µð·ºÅ丮 ¸ñ·Ͽ¡ CSS ½ºŸÀϽ¬Ʈ¸¦ Ã߰¡ÇѴÙ
    ISAPIAppendLogToErrors on|off off svdhB
    ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER ¿äûÀ» ¿À·ù ·α׿¡ ±â·ÏÇѴÙ
    ISAPIAppendLogToQuery on|off on svdhB
    ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER +
    ISAPIAppendLogToQuery on|off on svdhB
    ISAPI exntensionÀÇ HSE_APPEND_LOG_PARAMETER ¿äûÀ» ÁúÀǹ®Àڿ­¿¡ ±â·ÏÇѴÙ
    ISAPICacheFile file-path [file-path] -...svB
    ¼­¹ö°¡ ½ÃÀÛÇҶ§ ¸޸𸮷Î ÀоîµéÀÏ ISAPI .dll ÆÄÀϵé
    ISAPIFakeAsync on|off off svdhB
    º񵿱â ISAPI ÄݹéÀ» Áö¿øÇϴ ôÇѴÙ
    ISAPILogNotSupported on|off off svdhB
    ISAPI extensionÀÌ Áö¿øÇÏÁö ¾ʴ ±â´ÉÀ» ¿äûÇϸé +
    ISAPICacheFile file-path [file-path] +...svB
    ¼­¹ö°¡ ½ÃÀÛÇҶ§ ¸޸𸮷Î ÀоîµéÀÏ ISAPI .dll ÆÄÀϵé
    ISAPIFakeAsync on|off off svdhB
    º񵿱â ISAPI ÄݹéÀ» Áö¿øÇϴ ôÇѴÙ
    ISAPILogNotSupported on|off off svdhB
    ISAPI extensionÀÌ Áö¿øÇÏÁö ¾ʴ ±â´ÉÀ» ¿äûÇϸé ·α׿¡ ±â·ÏÇѴÙ
    ISAPIReadAheadBuffer size 49152 svdhB
    ISAPI extensionÀÇ ¹̸®Àбâ¹öÆÛ(read ahead buffer) +
    ISAPIReadAheadBuffer size 49152 svdhB
    ISAPI extensionÀÇ ¹̸®Àбâ¹öÆÛ(read ahead buffer) ũ±â
    KeepAlive On|Off On svC
    Enables HTTP persistent connections
    KeepAliveTimeout seconds 5 svC
    Amount of time the server will wait for subsequent +
    KeepAlive On|Off On svC
    Enables HTTP persistent connections
    KeepAliveTimeout seconds 5 svC
    Amount of time the server will wait for subsequent requests on a persistent connection
    LanguagePriority MIME-lang [MIME-lang] -...svdhB
    The precendence of language variants for cases where +
    LanguagePriority MIME-lang [MIME-lang] +...svdhB
    The precendence of language variants for cases where the client does not express a preference
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare +
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare operations
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain +
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 102400 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per +
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per connection client certificate. Not all LDAP toolkits support per connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted +
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted Certificate Authority or global client certificates
    LDAPTrustedMode typesvdhE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... - </Limit>svdhC
    Restrict enclosed access controls to only certain HTTP +
    LDAPTrustedMode typesvE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... + </Limit>svdhC
    Restrict enclosed access controls to only certain HTTP methods
    <LimitExcept method [method] ... > ... - </LimitExcept>svdhC
    Restrict access controls to all HTTP methods +
    <LimitExcept method [method] ... > ... + </LimitExcept>svdhC
    Restrict access controls to all HTTP methods except the named ones
    LimitInternalRecursion number [number] 10 svC
    Determine maximum number of internal redirects and nested +
    LimitInternalRecursion number [number] 10 svC
    Determine maximum number of internal redirects and nested subrequests
    LimitRequestBody bytes 0 svdhC
    Restricts the total size of the HTTP request body sent +
    LimitRequestBody bytes 0 svdhC
    Restricts the total size of the HTTP request body sent from the client
    LimitRequestFields number 100 sC
    Limits the number of HTTP request header fields that +
    LimitRequestFields number 100 svC
    Limits the number of HTTP request header fields that will be accepted from the client
    LimitRequestFieldsize bytessC
    Limits the size of the HTTP request header allowed from the +
    LimitRequestFieldSize bytes 8190 svC
    Limits the size of the HTTP request header allowed from the client
    LimitRequestLine bytes 8190 sC
    Limit the size of the HTTP request line that will be accepted +
    LimitRequestLine bytes 8190 svC
    Limit the size of the HTTP request line that will be accepted from the client
    LimitXMLRequestBody bytes 1000000 svdhC
    Limits the size of an XML-based request body
    Listen [IP-address:]portnumber [protocol]sM
    IP addresses and ports that the server +
    LimitXMLRequestBody bytes 1000000 svdhC
    Limits the size of an XML-based request body
    Listen [IP-address:]portnumber [protocol]sM
    IP addresses and ports that the server listens to
    ListenBacklog backlogsM
    Maximum length of the queue of pending connections
    LoadFile filename [filename] ...sE
    ÁöÁ¤ÇÑ ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀδÙ
    LoadModule module filenamesE
    ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀ̰í, »ç¿밡´ÉÇÑ +
    ListenBacklog backlogsM
    Maximum length of the queue of pending connections
    LoadFile filename [filename] ...sE
    ÁöÁ¤ÇÑ ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀδÙ
    LoadModule module filenamesE
    ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀ̰í, »ç¿밡´ÉÇÑ ¸ðµâ ¸ñ·Ͽ¡ Ã߰¡ÇѴÙ
    <Location - URL-path|URL> ... </Location>svC
    Applies the enclosed directives only to matching +
    <Location + URL-path|URL> ... </Location>svC
    Applies the enclosed directives only to matching URLs
    <LocationMatch - regex> ... </LocationMatch>svC
    Applies the enclosed directives only to regular-expression +
    <LocationMatch + regex> ... </LocationMatch>svC
    Applies the enclosed directives only to regular-expression matching URLs
    LockFile filename logs/accept.lock sM
    Location of the accept serialization lock file
    LogFormat format|nickname -[nickname] "%h %l %u %t \"%r\" +svB
    ·αׯÄÀϿ¡ »ç¿ëÇÒ Çü½ÄÀ» ±â¼úÇѴÙ
    LogLevel level warn svC
    Controls the verbosity of the ErrorLog
    MaxClients numbersM
    Maximum number of child processes that will be created -to serve requests
    MaxKeepAliveRequests number 100 svC
    Number of requests allowed on a persistent +
    LockFile filename logs/accept.lock sM
    Location of the accept serialization lock file
    LogFormat format|nickname +[nickname] "%h %l %u %t \"%r\" +svB
    ·αׯÄÀϿ¡ »ç¿ëÇÒ Çü½ÄÀ» ±â¼úÇѴÙ
    LogLevel level warn svC
    Controls the verbosity of the ErrorLog
    MaxClients numbersM
    Maximum number of connections that will be processed +simultaneously
    MaxKeepAliveRequests number 100 svC
    Number of requests allowed on a persistent connection
    MaxMemFree KBytes 0 sM
    Maximum amount of memory that the main allocator is allowed +
    MaxMemFree KBytes 0 sM
    Maximum amount of memory that the main allocator is allowed to hold without calling free()
    MaxRanges default | unlimited | none | number-of-ranges 200 svdC
    Number of ranges allowed before returning the complete +resource
    MaxRequestsPerChild number 10000 sM
    Limit on the number of requests that an individual child server will handle during its life
    MaxRequestsPerThread number 0 sM
    ÇÑ ¾²·¹µ尡 ½ÇÇàÇϴ µ¿¾È ó¸®ÇÒ ¿äû°³¼ö ÇѰè
    MaxSpareServers number 10 sM
    Maximum number of idle child server processes
    MaxSpareThreads numbersM
    Maximum number of idle threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MaxThreadsPerChild number 64 sM
    Maximum number of threads per child process
    MCacheMaxObjectCount value 1009 sX
    ij½¬¿¡ ÀúÀåÇÒ ¼ö Àִ Ãִë °´ü°³¼ö
    MCacheMaxObjectSize bytes 10000 sX
    ij½¬¿¡ ÀúÀåÇÒ ¹®¼­ÀÇ Ãִë ũ±â (¹ÙÀÌƮ ´ÜÀ§)
    MCacheMaxStreamingBuffer size_in_bytes 100000°ú MCacheMaxOb +sX
    ÀÀ´äÀ» ij½¬¾ÈÇѴٰí °áÁ¤Çϱâ Àü±îÁö ¸޸𸮠¹öÆۿ¡ +
    MCacheMaxObjectCount value 1009 sX
    ij½¬¿¡ ÀúÀåÇÒ ¼ö Àִ Ãִë °´ü°³¼ö
    MCacheMaxObjectSize bytes 10000 sX
    ij½¬¿¡ ÀúÀåÇÒ ¹®¼­ÀÇ Ãִë ũ±â (¹ÙÀÌƮ ´ÜÀ§)
    MCacheMaxStreamingBuffer size_in_bytes 100000°ú MCacheMaxOb +sX
    ÀÀ´äÀ» ij½¬¾ÈÇѴٰí °áÁ¤Çϱâ Àü±îÁö ¸޸𸮠¹öÆۿ¡ ÀúÀåÇÒ ½ºƮ¸² ÀÀ´äÀÇ Ãִë ũ±â
    MCacheMinObjectSize bytes 0 sX
    ij½¬¿¡ ÀúÀåÇÒ ¹®¼­ÀÇ ÃּÒ ũ±â (¹ÙÀÌƮ ´ÜÀ§)
    MCacheRemovalAlgorithm LRU|GDSF GDSF sX
    ij½¬¿¡¼­ Á¦°ÅÇÒ ¹®¼­¸¦ ã´Â ¾˰í¸®Áò
    MCacheSize KBytes 100 sX
    ij½¬¿¡ »ç¿ëÇÒ Ãִë ¸޸𸮷® (KByte ´ÜÀ§)
    MCacheMinObjectSize bytes 0 sX
    ij½¬¿¡ ÀúÀåÇÒ ¹®¼­ÀÇ ÃּÒ ũ±â (¹ÙÀÌƮ ´ÜÀ§)
    MCacheRemovalAlgorithm LRU|GDSF GDSF sX
    ij½¬¿¡¼­ Á¦°ÅÇÒ ¹®¼­¸¦ ã´Â ¾˰í¸®Áò
    MCacheSize KBytes 100 sX
    ij½¬¿¡ »ç¿ëÇÒ Ãִë ¸޸𸮷® (KByte ´ÜÀ§)
    MergeTrailers [on|off] off svC
    Determines whether trailers are merged into headers
    MetaDir directory .web svdhE
    CERN ¸ÞŸÁ¤º¸¸¦ ãÀ» µð·ºÅ丮 À̸§
    MetaFiles on|off off svdhE
    CERN ¸ÞŸÆÄÀÏÀ» ó¸®ÇѴÙ
    MetaSuffix suffix .meta svdhE
    CERN ¸ÞŸÁ¤º¸¸¦ ÀúÀåÇϴ ÆÄÀÏÀÇ Á¢¹̻ç
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to directly
    NumServers number 2 sM
    Total number of children alive at the same time
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options - [+|-]option [[+|-]option] ... All svdhC
    Configures what features are available in a particular +
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options + [+|-]option [[+|-]option] ... All svdhC
    Configures what features are available in a particular directory
    Order ordering Deny,Allow dhB
    ±⺻ÀûÀ¸·Î Á¢±ÙÀ» Çã¿ëÇÒÁö °źÎÇÒÁö ¿©ºοÍ +
    Order ordering Deny,Allow dhB
    ±⺻ÀûÀ¸·Î Á¢±ÙÀ» Çã¿ëÇÒÁö °źÎÇÒÁö ¿©ºοÍ Allow¿Í Deny 󸮼ø¼­¸¦ Á¤ÇѴÙ.
    PassEnv env-variable [env-variable] -...svdhB
    ½©¿¡¼­ ȯ°溯¼ö¸¦ °¡Á®¿´Ù
    PidFile filename logs/httpd.pid sM
    File where the server records the process ID +
    PassEnv env-variable [env-variable] +...svdhB
    ½©¿¡¼­ ȯ°溯¼ö¸¦ °¡Á®¿´Ù
    PidFile filename logs/httpd.pid sM
    File where the server records the process ID of the daemon
    Protocol protocolsvC
    Protocol for a listening socket
    ProtocolEcho On|OffsvX
    echo ¼­¹ö¸¦ Ű°í ²ö´Ù
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a @@ -452,30 +490,45 @@ response
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched +
    ProxyFtpDirCharset character set ISO-8859-1 svdE
    Define the character set for proxied FTP listings
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched proxied resources
    ProxyMaxForwards number 10 svE
    Maximium number of proxies that a request can be forwarded +
    ProxyMaxForwards number -1 svE
    Maximium number of proxies that a request can be forwarded through
    ProxyPass [path] !|url [key=value key=value ...]]svdE
    Maps remote servers into the local server URL-space
    ProxyPassReverse [path] urlsvdE
    Adjusts the URL in HTTP response headers sent from a reverse +
    ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]svdE
    Maps remote servers into the local server URL-space
    ProxyPassInterpolateEnv On|Off Off svdE
    Enable Environment Variable interpolation in Reverse Proxy configurations
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]svdE
    Maps remote servers into the local server URL-space using regular expressions
    ProxyPassReverse [path] url +[interpolate]svdE
    Adjusts the URL in HTTP response headers sent from a reverse proxied server
    ProxyPassReverseCookieDomain internal-domain public-domainsvdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]svdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- proxied server
    ProxyPassReverseCookiePath internal-path public-pathsvdE
    Adjusts the Path string in Set-Cookie headers from a reverse- +
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]svdE
    Adjusts the Path string in Set-Cookie headers from a reverse- proxied server
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy +
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy request
    ProxyReceiveBufferSize bytes 0 svE
    Network buffer size for proxied HTTP and FTP +
    ProxyReceiveBufferSize bytes 0 svE
    Network buffer size for proxied HTTP and FTP connections
    ProxyRemote match remote-serversvE
    Remote proxy used to handle certain requests
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular +
    ProxyRemote match remote-serversvE
    Remote proxy used to handle certain requests
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular expressions
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxyTimeout seconds 300 svE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response +
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxySCGIInternalRedirect On|Off On svdE
    Enable or disable internal redirect responses from the +backend
    ProxySCGISendfile On|Off|Headername Off svdE
    Enable evaluation of X-Sendfile pseudo response +header
    ProxySet url key=value [key=value ...]dE
    Set various Proxy balancer or member parameters
    ProxyStatus Off|On|Full Off svE
    Show Proxy LoadBalancer status in mod_status
    ProxyTimeout secondssvE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response header for proxied requests
    ReadmeName filenamesvdhB
    ÆÄÀϸñ·Ï ¸¶Áö¸·¿¡ »ðÀÔÇÒ ÆÄÀÏÀÇ À̸§
    ReadmeName filenamesvdhB
    ÆÄÀϸñ·Ï ¸¶Áö¸·¿¡ »ðÀÔÇÒ ÆÄÀÏÀÇ À̸§
    ReceiveBufferSize bytes 0 sM
    TCP receive buffer size
    Redirect [status] URL-path URLsvdhB
    Ŭ¶óÀ̾ðƮ°¡ ´ٸ¥ URL¿¡ Á¢¼ÓÇϵµ·Ï ¿äûÇϴ ¿ܺÎ ¸®´ÙÀ̷º¼ÇÀ» º¸³½´Ù
    RedirectTemp URL-path URLsvdhB
    Ŭ¶óÀ̾ðƮ°¡ ´ٸ¥ URL¿¡ Á¢¼ÓÇϵµ·Ï ¿äûÇϴ ¿ܺÎ Àӽà ¸®´ÙÀ̷º¼ÇÀ» º¸³½´Ù
    RemoveCharset extension [extension] -...vdhB
    Removes any character set associations for a set of file +
    RegisterHttpMethod method [method [...]]sC
    Register non-standard HTTP methods
    RemoveCharset extension [extension] +...vdhB
    Removes any character set associations for a set of file extensions
    RemoveEncoding extension [extension] -...vdhB
    Removes any content encoding associations for a set of file +
    RemoveEncoding extension [extension] +...vdhB
    Removes any content encoding associations for a set of file extensions
    RemoveHandler extension [extension] -...vdhB
    Removes any handler associations for a set of file +
    RemoveHandler extension [extension] +...vdhB
    Removes any handler associations for a set of file extensions
    RemoveInputFilter extension [extension] -...vdhB
    Removes any input filter associations for a set of file +
    RemoveInputFilter extension [extension] +...vdhB
    Removes any input filter associations for a set of file extensions
    RemoveLanguage extension [extension] -...vdhB
    Removes any language associations for a set of file +
    RemoveLanguage extension [extension] +...vdhB
    Removes any language associations for a set of file extensions
    RemoveOutputFilter extension [extension] -...vdhB
    Removes any output filter associations for a set of file +
    RemoveOutputFilter extension [extension] +...vdhB
    Removes any output filter associations for a set of file extensions
    RemoveType extension [extension] -...vdhB
    Removes any content type associations for a set of file +
    RemoveType extension [extension] +...vdhB
    Removes any content type associations for a set of file extensions
    RequestHeader set|append|add|unset header -[value] [early|env=[!]variable]svdhE
    HTTP ¿äû Çì´õ¸¦ ±¸¼ºÇѴÙ
    RequestHeader set|append|add|unset header +[value] [early|env=[!]variable]svdhE
    HTTP ¿äû Çì´õ¸¦ ±¸¼ºÇѴÙ
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +svE
    Set timeout values for receiving request headers and body from client. +
    Require entity-name [entity-name] ...dhC
    Selects which authenticated users can access a resource
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap synchronization
    RewriteLog file-pathsvE
    Sets the name of the file used for logging rewrite engine +
    RewriteLog file-path|pipesvE
    Sets the name of the file used for logging rewrite engine processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite engine
    svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule - Pattern SubstitutionsvdhE
    Defines rules for the rewriting engine
    svdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Limits the CPU consumption of processes launched by Apache children
    RLimitMEM bytes|max [bytes|max]svdhC
    Limits the memory consumption of processes launched @@ -535,7 +594,7 @@ by Apache children
    Satisfy Any|All All dhC
    Interaction between host-level access control and user authentication
    ScoreBoardFile file-path logs/apache_status sM
    Location of the file used to store coordination data for +
    ScoreBoardFile file-path logs/apache_runtime +sM
    Location of the file used to store coordination data for the child processes
    Script method cgi-scriptsvdB
    ƯÁ¤ ¿äû¸޼­µ忡 ´ëÇØ CGI ½ºũ¸³Ʈ¸¦ »ç¿ëÇѴÙ.
    ScriptSock file-path logs/cgisock svB
    cgi µ¥¸ó°ú Åë½ÅÀ» À§ÇØ »ç¿ëÇÒ ¼ÒÄÏÀÇ À̸§
    SecureListen [IP-address:]portnumber Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SendBufferSize bytes 0 sM
    TCP buffer size
    ServerAdmin email-address|URLsvC
    Email address that the server includes in error +
    SeeRequestTail On|Off Off sB
    Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    SendBufferSize bytes 0 sM
    TCP buffer size
    ServerAdmin email-address|URLsvC
    Email address that the server includes in error messages sent to the client
    ServerAlias hostname [hostname] ...vC
    Alternate names for a host used when matching requests +
    ServerAlias hostname [hostname] ...vC
    Alternate names for a host used when matching requests to name-virtual hosts
    ServerLimit numbersM
    Upper limit on configurable number of processes
    ServerName fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify +
    ServerLimit numbersM
    Upper limit on configurable number of processes
    ServerName [scheme://]fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify itself
    ServerPath URL-pathvC
    Legacy URL pathname for a name-based virtual host that +
    ServerPath URL-pathvC
    Legacy URL pathname for a name-based virtual host that is accessed by an incompatible browser
    ServerRoot directory-path /usr/local/apache sC
    Base directory for the server installation
    ServerSignature On|Off|EMail Off svdhC
    Configures the footer on server-generated documents
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Configures the Server HTTP response +
    ServerRoot directory-path /usr/local/apache sC
    Base directory for the server installation
    ServerSignature On|Off|EMail Off svdhC
    Configures the footer on server-generated documents
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Configures the Server HTTP response header
    SetEnv env-variable valuesvdhB
    ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ
    SetEnvIf attribute +
    SetEnv env-variable valuesvdhB
    ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ
    SetEnvIf attribute regex [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    ¿äûÀÇ ¼ºÁú¿¡ µû¶ó ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ
    SetEnvIfNoCase attribute regex + [[!]env-variable[=value]] ...svdhB
    ¿äûÀÇ ¼ºÁú¿¡ µû¶ó ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ
    SetEnvIfNoCase attribute regex [!]env-variable[=value] - [[!]env-variable[=value]] ...svdhB
    ´ë¼ҹ®Àڸ¦ ±¸º°ÇÏÁö¾ʰí ¿äûÀÇ ¼ºÁú¿¡ µû¶ó ȯ°溯¼ö¸¦ + [[!]env-variable[=value]] ...svdhB
    ´ë¼ҹ®Àڸ¦ ±¸º°ÇÏÁö¾ʰí ¿äûÀÇ ¼ºÁú¿¡ µû¶ó ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ
    SetHandler handler-name|NonesvdhC
    Forces all matching files to be processed by a +
    SetHandler handler-name|NonesvdhC
    Forces all matching files to be processed by a handler
    SetInputFilter filter[;filter...]svdhC
    Sets the filters that will process client requests and POST +
    SetInputFilter filter[;filter...]svdhC
    Sets the filters that will process client requests and POST input
    SetOutputFilter filter[;filter...]svdhC
    Sets the filters that will process responses from the +
    SetOutputFilter filter[;filter...]svdhC
    Sets the filters that will process responses from the server
    SSIEnableAccess on|off off dhB
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI error
    SSIETag on|off off dhB
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhB
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are displayed
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL handshake
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLHonorCiperOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of +
    SSLCompression on|off off svE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off svE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private +
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private keys
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates for Remote Server Auth
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for Remote Server Auth
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for Remote Server Auth
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for Remote Server Auth
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +
    SSLProxyCheckPeerCN on|off off svE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off svE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svdhE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Remote Server +
    SSLProxyVerify level none svE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svE
    Maximum depth of CA Certificates in Remote Server Certificate verification
    SSLRandomSeed context source [bytes]sE
    Pseudo Random Number Generator (PRNG) seeding source
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex +
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the +
    SSLRequireSSLdhE
    Deny access when SSL is not used for the HTTP request
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session +
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session Cache
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires +
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires in the Session Cache
    SSLSessionTicketKeyFile file-pathsvE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on svE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off svE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client Certificate verification
    StartServers numbersM
    Number of child server processes created at startup
    StartThreads numbersM
    Number of threads created on startup
    SuexecUserGroup User GroupsvE
    CGI ÇÁ·α׷¥ÀÌ »ç¿ëÇÒ »ç¿ëÀڿÍ ±׷ì ±ÇÇÑ
    ThreadLimit numbersM
    Sets the upper limit on the configurable number of threads +
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsC
    Enable or disable the suEXEC feature
    SuexecUserGroup User GroupsvE
    CGI ÇÁ·α׷¥ÀÌ »ç¿ëÇÒ »ç¿ëÀڿÍ ±׷ì ±ÇÇÑ
    ThreadLimit numbersM
    Sets the upper limit on the configurable number of threads per child process
    ThreadsPerChild numbersM
    Number of threads created by each child process
    ThreadStackSize sizesM
    The size in bytes of the stack used by threads handling +
    ThreadsPerChild numbersM
    Number of threads created by each child process
    ThreadStackSize sizesM
    The size in bytes of the stack used by threads handling client connections
    TimeOut seconds 300 sC
    Amount of time the server will wait for +
    TimeOut seconds 300 svC
    Amount of time the server will wait for certain events before failing a request
    TraceEnable [on|off|extended] on svC
    Determines the behaviour on TRACE +requests
    TransferLog file|pipesvB
    ·αׯÄÀÏ À§ġ¸¦ ¼³Á¤ÇѴÙ
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] ...svdhB
    ȯ°溯¼ö¸¦ Á¦°ÅÇѴÙ
    UseCanonicalName On|Off|DNS Off svdC
    Configures how the server determines its own name and port
    User unix-userid #-1 sM
    The userid under which the server will answer +
    UseCanonicalPhysicalPort On|Off Off svdC
    Configures how the server determines its own name and +port
    User unix-userid #-1 sM
    The userid under which the server will answer requests
    UserDir directory-filename public_html svB
    »ç¿ëÀں° µð·ºÅ丮 À§ġ
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root +
    UserDir directory-filename public_html svB
    »ç¿ëÀں° µð·ºÅ丮 À§ġ
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root +
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root for a given virtual host
    <VirtualHost +
    <VirtualHost addr[:port] [addr[:port]] - ...> ... </VirtualHost>sC
    Contains directives that apply only to a specific + ...> ... </VirtualHost>sC
    Contains directives that apply only to a specific hostname or IP address
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for +
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for a given virtual host
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for +
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for a given virtual host
    Win32DisableAcceptExsM
    Use accept() rather than AcceptEx() to accept network connections
    XBitHack on|off|full off svdhB
    Parse SSI directives in files with the execute bit +
    Win32DisableAcceptExsM
    Use accept() rather than AcceptEx() to accept network connections
    XBitHack on|off|full off svdhB
    Parse SSI directives in files with the execute bit set
    @@ -686,8 +773,32 @@ set  en  |  es  |  ja  | - ko 

    -
    + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.ru.koi8-r b/docs/manual/mod/quickreference.html.ru.koi8-r new file mode 100644 index 00000000000..2833e5cb0b7 --- /dev/null +++ b/docs/manual/mod/quickreference.html.ru.koi8-r @@ -0,0 +1,860 @@ + + + + + +ëÒÁÔËÉÊ ÓÐÒÁ×ÏÞÎÉË ÐÏ ÄÉÒÅËÔÉ×ÁÍ - HTTP ÓÅÒ×ÅÒ Apache ÷ÅÒÓÉÑ 2.2 + + + + + + + + +
    <-
    + +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ëÒÁÔËÉÊ ÓÐÒÁ×ÏÞÎÉË ÐÏ ÄÉÒÅËÔÉ×ÁÍ

    +
    +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    +
    üÔÏÔ ÐÅÒÅ×ÏÄ ÍÏÖÅÔ ÂÙÔØ ÕÓÔÁÒÅ×ÛÉÍ. óÍÏÔÒÉÔÅ + ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÌÑ ÏÚÎÁËÏÍÌÅÎÉÑ ÓÏ ×ÓÅÍÉ ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ + × ÄÏËÕÍÅÎÔÅ.
    + +

    ÷ ËÒÁÔËÏÍ ÓÐÒÁ×ÏÞÎÉËÅ ÐÏ ÄÉÒÅËÔÉ×ÁÍ ×Ù ÎÁÊģÔÅ ÉÎÆÏÒÍÁÃÉÀ + Ï ÔÏÍ, ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÔÕ ÉÌÉ ÉÎÕÀ ÄÉÒÅËÔÉ×Õ, ţ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÓÔÁÔÕÓ + É ËÏÎÔÅËÓÔ. äÌÑ ÒÁÓÛÉÆÒÏ×ËÉ ÐÏÎÑÔÉÊ «ÓÔÁÔÕÓ» É «ËÏÎÔÅËÓÔ», ÏÂÒÁÔÉÔÅÓØ + Ë óÌÏ×ÁÒÀ.

    + +

    ÷ ÐÅÒ×ÏÊ ËÏÌÏÎËÅ ÐÒÉ×ÏÄÉÔÓÑ ÎÁÚ×ÁÎÉÅ ÄÉÒÅËÔÉ×Ù É ÏÐÉÓÁÎÉÅ ţ + ÉÓÐÏÌØÚÏ×ÁÎÉÑ. ÷Ï ×ÔÏÒÏÊ - ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÅÓÌÉ ÔÁËÏ×ÏÅ + ÅÓÔØ Õ ÄÉÒÅËÔÉ×Ù. åÓÌÉ ÜÔÏ ÚÎÁÞÅÎÉÅ ÓÌÉÛËÏÍ ×ÅÌÉËÏ, ÔÏ ÐÏÓÌÅ + ÐÅÒ×ÙÈ ÂÕË× ÉÄÅÔ ÚÎÁޣË «+».

    + +

    ÷ ÔÒÅÔØÅÊ É ÞÅÔףÒÔÏÊ ËÏÌÏÎËÁÈ ÄÁÀÔÓÑ ÚÎÁÞÅÎÉÑ ËÏÎÔÅËÓÔÁ, × + ËÏÔÏÒÏÍ ÄÁÎÎÁÑ ÄÉÒÅËÔÉ×Á ÉÍÅÅÔ ÓÍÙÓÌ (ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ), É + ţ ÓÔÁÔÕÓ. ÷ÓÅ ÓÏËÒÁÝÅÎÉÑ, ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÉ ÜÔÏÍ, ÒÁÓÛÉÆÒÏ×Ù×ÁÀÔÓÑ + × ÓÌÅÄÕÀÝÅÊ ÔÁÂÌÉÃÅ.

    +
    +
    + + + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  + + + +
    sserver config
    vvirtual host
    ddirectory
    h.htaccess
    + + + + +
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AcceptFilter protocol accept_filtersC
    Configures optimizations for a Protocol's Listener Sockets
    AcceptMutex Default|method Default sM
    Method that Apache uses to serialize multiple children +accepting requests on network sockets
    AcceptPathInfo On|Off|Default Default svdhC
    Resources accept trailing pathname information
    AccessFileName filename [filename] ... .htaccess svC
    Name of the distributed configuration file
    Action action-type cgi-script [virtual]svdhB
    Activates a CGI script for a particular handler or +content-type
    AddAlt string file [file] ...svdhB
    Alternate text to display for a file, instead of an +icon selected by filename
    AddAltByEncoding string MIME-encoding +[MIME-encoding] ...svdhB
    Alternate text to display for a file instead of an icon +selected by MIME-encoding
    AddAltByType string MIME-type +[MIME-type] ...svdhB
    Alternate text to display for a file, instead of an +icon selected by MIME content-type
    AddCharset charset extension +[extension] ...svdhB
    Maps the given filename extensions to the specified content +charset
    AddDefaultCharset On|Off|charset Off svdhC
    Default charset parameter to be added when a response +content-type is text/plain or text/html
    AddDescription string file [file] ...svdhB
    Description to display for a file
    AddEncoding MIME-enc extension +[extension] ...svdhB
    Maps the given filename extensions to the specified encoding +type
    AddHandler handler-name extension +[extension] ...svdhB
    Maps the filename extensions to the specified +handler
    AddIcon icon name [name] +...svdhB
    Icon to display for a file selected by name
    AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME +content-encoding
    AddIconByType icon MIME-type +[MIME-type] ...svdhB
    Icon to display next to files selected by MIME +content-type
    AddInputFilter filter[;filter...] +extension [extension] ...svdhB
    Maps filename extensions to the filters that will process +client requests
    AddLanguage MIME-lang extension +[extension] ...svdhB
    Maps the given filename extension to the specified content +language
    AddModuleInfo module-name stringsvE
    Adds additional information to the module +information displayed by the server-info handler
    AddOutputFilter filter[;filter...] +extension [extension] ...svdhB
    Maps filename extensions to the filters that will process +responses from the server
    AddOutputFilterByType filter[;filter...] +MIME-type [MIME-type] ...svdhC
    assigns an output filter to a particular MIME-type
    AddType MIME-type extension +[extension] ...svdhB
    Maps the given filename extensions onto the specified content +type
    Alias URL-path +file-path|directory-pathsvB
    Maps URLs to filesystem locations
    AliasMatch regex +file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular +expressions
    Allow from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts can access an area of the +server
    AllowCONNECT port [port] ... 443 563 svE
    Ports that are allowed to CONNECT through the +proxy
    AllowEncodedSlashes On|Off|NoDecode Off svC
    Determines whether encoded path separators in URLs are allowed to +be passed through
    AllowOverride All|None|directive-type +[directive-type] ... All dC
    Types of directives that are allowed in +.htaccess files
    Anonymous user [user] ...dhE
    Specifies userIDs that are allowed access without +password verification
    Anonymous_LogEmail On|Off On dhE
    Sets whether the password entered will be logged in the +error log
    Anonymous_MustGiveEmail On|Off On dhE
    Specifies whether blank passwords are allowed
    Anonymous_NoUserID On|Off Off dhE
    Sets whether the userID field may be empty
    Anonymous_VerifyEmail On|Off Off dhE
    Sets whether to check the password field for a correctly +formatted email address
    AuthBasicAuthoritative On|Off On dhB
    Sets whether authorization and authentication are passed to +lower level modules
    AuthBasicProvider provider-name +[provider-name] ... file dhB
    Sets the authentication provider(s) for this location
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list +of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +store passwords
    AuthDBMUserFile file-pathdhE
    Sets the name of a database file containing the list of users and +passwords for authentication
    AuthDefaultAuthoritative On|Off On dhB
    Sets whether authentication is passed to lower level +modules
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhE
    Selects the algorithm used to calculate the challenge and +response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhE
    URIs that are in the same protection space for digest +authentication
    AuthDigestNcCheck On|Off Off sE
    Enables or disables checking of the nonce-count sent by the +server
    AuthDigestNonceFormat formatdhE
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhE
    How long the server nonce is valid
    AuthDigestProvider provider-name +[provider-name] ... file dhE
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhE
    Determines the quality-of-protection to use in digest +authentication
    AuthDigestShmemSize size 1000 sE
    The amount of shared memory to allocate for keeping track +of clients
    AuthGroupFile file-pathdhB
    Sets the name of a text file containing the list +of user groups for authorization
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for +group membership
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER +environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP +authentication
    <AuthnProviderAlias baseProvider Alias> +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an +extension of a base authentication provider and referenced by +the specified alias
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    Sets the name of a text file containing the list of users and +passwords for authentication
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +modules
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +store list of user groups
    AuthzDefaultAuthoritative On|Off On dhB
    Sets whether authorization is passed to lower level +modules
    AuthzGroupFileAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +modules
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from +authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +modules
    AuthzUserAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +modules
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    Add a member to a load balancing group
    BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on HTTP User-Agent +
    BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on User-Agent without +respect to case
    BufferedLogs On|Off Off sB
    Buffer log entries in memory before writing to disk
    CacheDefaultExpire seconds 3600 (one hour) svE
    The default duration to cache a document when no expiry date is specified.
    CacheDirLength length 2 svE
    The number of characters in subdirectory names
    CacheDirLevels levels 3 svE
    The number of levels of subdirectories in the +cache.
    CacheDisable url-stringsvE
    Disable caching of specified URLs
    CacheEnable cache_type url-stringsvE
    Enable caching of specified URLs using a specified storage +manager
    CacheFile file-path [file-path] ...sX
    Cache a list of file handles at startup time
    CacheIgnoreCacheControl On|Off Off svE
    Ignore request to not serve cached content to client
    CacheIgnoreHeaders header-string [header-string] ... None svE
    Do not store the given HTTP header(s) in the cache. +
    CacheIgnoreNoLastMod On|Off Off svE
    Ignore the fact that a response has no Last Modified +header.
    CacheIgnoreQueryString On|Off Off svE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None svE
    Ignore defined session identifiers encoded in the URL when caching +
    CacheLastModifiedFactor float 0.1 svE
    The factor used to compute an expiry date based on the +LastModified date.
    CacheLock on|off off svE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 svE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +svE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (one day) svE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 svE
    The maximum size (in bytes) of a document to be placed in the +cache
    CacheMinFileSize bytes 1 svE
    The minimum size (in bytes) of a document to be placed in the +cache
    CacheNegotiatedDocs On|Off Off svB
    Allows content-negotiated documents to be +cached by proxy servers
    CacheRoot directorysvE
    The directory root under which cache files are +stored
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CGIDScriptTimeout time[s|ms]svdhB
    The length of time to wait for more output from the +CGI program
    CGIMapExtension cgi-path .extensiondhC
    Technique for locating the interpreter for CGI +scripts
    CharsetDefault charsetsvdhE
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhE
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhE
    Source charset of files
    CheckCaseOnly on|off Off svdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off svdhE
    Enables the spelling +module
    ChrootDir /path/to/directorysM
    Directory for apache to run chroot(8) after startup.
    ContentDigest On|Off Off svdhC
    Enables the generation of Content-MD5 HTTP Response +headers
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    Sets filename for the logging of cookies
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle + Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Directory where Apache attempts to +switch before dumping core
    CustomLog file|pipe +format|nickname +[env=[!]environment-variable]svB
    Sets filename and format of log file
    Dav On|Off|provider-name Off dE
    Enable WebDAV HTTP methods
    DavDepthInfinity on|off off svdE
    Allow PROPFIND, Depth: Infinity requests
    DavGenericLockDB file-pathsvdE
    Location of the DAV lock database
    DavLockDB file-pathsvE
    Location of the DAV lock database
    DavMinTimeout seconds 0 svdE
    Minimum amount of time the server holds a lock on +a DAV resource
    DBDExptime time-in-seconds 300 svE
    Keepalive time for idle connections
    DBDKeep number 2 svE
    Maximum sustained number of connections
    DBDMax number 10 svE
    Maximum number of connections
    DBDMin number 1 svE
    Minimum number of connections
    DBDParams +param1=value1[,param2=value2]svE
    Parameters for database connection
    DBDPersist On|OffsvE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvE
    Define an SQL prepared statement
    DBDriver namesvE
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    Icon to display for files when no specific icon is +configured
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified +language
    DefaultType MIME-type|none text/plain svdhC
    MIME content-type that will be sent if the +server cannot determine a type in any other way
    DeflateBufferSize value 8096 svE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valuesvE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenamesvE
    Places the compression ratio in a note for logging
    DeflateInflateLimitRequestBodyvaluesvdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valuesvdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valuesvdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 svE
    How much memory should be used by zlib for compression
    DeflateWindowSize value 15 svE
    Zlib compression window size
    Deny from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts are denied access to the +server
    <Directory directory-path> +... </Directory>svC
    Enclose a group of directives that apply only to the +named file-system directory, sub-directories, and their contents
    DirectoryIndex + local-url [local-url] ... index.html svdhB
    List of resources to look for when the client requests +a directory
    <DirectoryMatch regex> +... </DirectoryMatch>svC
    Enclose directives that apply to +file-system directories matching a regular expression and their +subdirectories
    DirectorySlash On|Off On svdhB
    Toggle trailing slash redirects on or off
    DocumentRoot directory-path /usr/local/apache/h +svC
    Directory that forms the main document tree visible +from the web
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Enables a hook that runs exception handlers +after a crash
    EnableMMAP On|Off On svdhC
    Use memory-mapping to read files during delivery
    EnableSendfile On|Off On svdhC
    Use the kernel sendfile support to deliver files to the client
    ErrorDocument error-code documentsvdhC
    What the server will return to the client +in case of an error
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    Location where the server will log errors
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module +API
    ExpiresActive On|OffsvdhE
    Enables generation of Expires +headers
    ExpiresByType MIME-type +<code>secondssvdhE
    Value of the Expires header configured +by MIME type
    ExpiresDefault <code>secondssvdhE
    Default algorithm for calculating expiration time
    ExtendedStatus On|Off Off sB
    Keep track of extended status information for each +request
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FallbackResource disabled | local-urlsvdhB
    Define a default URL for requests that don't map to a file
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag +HTTP response header for static files
    <Files filename> ... </Files>svdhC
    Contains directives that apply to matched +filenames
    <FilesMatch regex> ... </FilesMatch>svdhC
    Contains directives that apply to regular-expression matched +filenames
    FilterChain [+=-@!]filter-name ...svdhB
    Configure the filter chain
    FilterDeclare filter-name [type]svdhB
    Declare a smart filter
    FilterProtocol filter-name [provider-name] + proto-flagssvdhB
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name + [req|resp|env]=dispatch matchsvdhB
    Register a content filter
    FilterTrace filter-name levelsvdB
    Get debug/diagnostic information from + mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not +found
    ForceType MIME-type|NonedhC
    Forces all matching files to be served with the specified +MIME content-type
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    GprofDir /tmp/gprof/|/tmp/gprof/%svC
    Directory to write gmon.out profiling data to.
    GracefulShutDownTimeout secondssM
    Specify a timeout after which a gracefully shutdown server +will exit.
    Group unix-group #-1 sM
    Group under which the server will answer +requests
    Header [condition] set|append|merge|add|unset|echo|edit +header [value] [replacement] +[early|env=[!]variable]svdhE
    Configure HTTP response headers
    HeaderName filenamesvdhB
    Name of the file that will be inserted at the top +of the index listing
    HostnameLookups On|Off|Double Off svdC
    Enables DNS lookups on client IP addresses
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +svC
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote +user
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parameter-name> ... + </IfDefine>svdhC
    Encloses directives that will be processed only +if a test is true at startup
    <IfModule [!]module-file|module-identifier> ... + </IfModule>svdhC
    Encloses directives that are processed conditional on the +presence or absence of a specific module
    <IfVersion [[!]operator] version> ... +</IfVersion>svdhE
    contains version dependent configuration
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates +that are not explicitly mapped
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling +an imagemap
    Include file-path|directory-pathsvdC
    Includes other configuration files from within +the server configuration files
    IndexHeadInsert "markup ..."svdhB
    Inserts text in the HEAD section of an index page.
    IndexIgnore file [file] ... "." svdhB
    Adds to the list of files to hide when listing +a directory
    IndexOptions [+|-]option [[+|-]option] +...svdhB
    Various configuration settings for directory +indexing
    IndexOrderDefault Ascending|Descending +Name|Date|Size|Description Ascending Name svdhB
    Sets the default ordering of the directory index
    IndexStyleSheet url-pathsvdhB
    Adds a CSS stylesheet to the directory index
    ISAPIAppendLogToErrors on|off off svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the error log
    ISAPIAppendLogToQuery on|off on svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the query field
    ISAPICacheFile file-path [file-path] +...svB
    ISAPI .dll files to be loaded at startup
    ISAPIFakeAsync on|off off svdhB
    Fake asynchronous support for ISAPI callbacks
    ISAPILogNotSupported on|off off svdhB
    Log unsupported feature requests from ISAPI +extensions
    ISAPIReadAheadBuffer size 49152 svdhB
    Size of the Read Ahead Buffer sent to ISAPI +extensions
    KeepAlive On|Off On svC
    Enables HTTP persistent connections
    KeepAliveTimeout seconds 5 svC
    Amount of time the server will wait for subsequent +requests on a persistent connection
    LanguagePriority MIME-lang [MIME-lang] +...svdhB
    The precendence of language variants for cases where +the client does not express a preference
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare +operations
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain +valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per +connection client certificate. Not all LDAP toolkits support per +connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted +Certificate Authority or global client certificates
    LDAPTrustedMode typesvE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... + </Limit>svdhC
    Restrict enclosed access controls to only certain HTTP +methods
    <LimitExcept method [method] ... > ... + </LimitExcept>svdhC
    Restrict access controls to all HTTP methods +except the named ones
    LimitInternalRecursion number [number] 10 svC
    Determine maximum number of internal redirects and nested +subrequests
    LimitRequestBody bytes 0 svdhC
    Restricts the total size of the HTTP request body sent +from the client
    LimitRequestFields number 100 svC
    Limits the number of HTTP request header fields that +will be accepted from the client
    LimitRequestFieldSize bytes 8190 svC
    Limits the size of the HTTP request header allowed from the +client
    LimitRequestLine bytes 8190 svC
    Limit the size of the HTTP request line that will be accepted +from the client
    LimitXMLRequestBody bytes 1000000 svdhC
    Limits the size of an XML-based request body
    Listen [IP-address:]portnumber [protocol]sM
    IP addresses and ports that the server +listens to
    ListenBacklog backlogsM
    Maximum length of the queue of pending connections
    LoadFile filename [filename] ...sE
    Link in the named object file or library
    LoadModule module filenamesE
    Links in the object file or library, and adds to the list +of active modules
    <Location + URL-path|URL> ... </Location>svC
    Applies the enclosed directives only to matching +URLs
    <LocationMatch + regex> ... </LocationMatch>svC
    Applies the enclosed directives only to regular-expression +matching URLs
    LockFile filename logs/accept.lock sM
    Location of the accept serialization lock file
    LogFormat format|nickname +[nickname] "%h %l %u %t \"%r\" +svB
    Describes a format for use in a log file
    LogLevel level warn svC
    Controls the verbosity of the ErrorLog
    MaxClients numbersM
    Maximum number of connections that will be processed +simultaneously
    MaxKeepAliveRequests number 100 svC
    Number of requests allowed on a persistent +connection
    MaxMemFree KBytes 0 sM
    Maximum amount of memory that the main allocator is allowed +to hold without calling free()
    MaxRanges default | unlimited | none | number-of-ranges 200 svdC
    Number of ranges allowed before returning the complete +resource
    MaxRequestsPerChild number 10000 sM
    Limit on the number of requests that an individual child server +will handle during its life
    MaxRequestsPerThread number 0 sM
    Limit on the number of requests that an individual thread +will handle during its life
    MaxSpareServers number 10 sM
    Maximum number of idle child server processes
    MaxSpareThreads numbersM
    Maximum number of idle threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MCacheMaxObjectCount value 1009 sE
    The maximum number of objects allowed to be placed in the +cache
    MCacheMaxObjectSize bytes 10000 sE
    The maximum size (in bytes) of a document allowed in the +cache
    MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sE
    Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
    MCacheMinObjectSize bytes 1 sE
    The minimum size (in bytes) of a document to be allowed in the +cache
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    The algorithm used to select documents for removal from the +cache
    MCacheSize KBytes 100 sE
    The maximum amount of memory used by the cache in +KBytes
    MergeTrailers [on|off] off svC
    Determines whether trailers are merged into headers
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information +files
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style +meta information
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents +using the specified magic file
    MinSpareServers number 5 sM
    Minimum number of idle child server processes
    MinSpareThreads numbersM
    Minimum number of idle threads available to handle request +spikes
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    Tells mod_mime to treat path_info +components as part of the filename
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters] NegotiatedOnly svdhB
    The types of files that will be included when searching for +a matching file with MultiViews
    NameVirtualHost addr[:port]sC
    Designates an IP address for name-virtual +hosting
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to +directly
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options + [+|-]option [[+|-]option] ... All svdhC
    Configures what features are available in a particular +directory
    Order ordering Deny,Allow dhB
    Controls the default access state and the order in which +Allow and Deny are +evaluated.
    PassEnv env-variable [env-variable] +...svdhB
    Passes environment variables from the shell
    PidFile filename logs/httpd.pid sM
    File where the server records the process ID +of the daemon
    Protocol protocolsvC
    Protocol for a listening socket
    ProtocolEcho On|Off Off svX
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a +response
    ProxyBlock *|word|host|domain +[word|host|domain] ...svE
    Words, hosts, or domains that are banned from being +proxied
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyFtpDirCharset character set ISO-8859-1 svdE
    Define the character set for proxied FTP listings
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched +proxied resources
    ProxyMaxForwards number -1 svE
    Maximium number of proxies that a request can be forwarded +through
    ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]svdE
    Maps remote servers into the local server URL-space
    ProxyPassInterpolateEnv On|Off Off svdE
    Enable Environment Variable interpolation in Reverse Proxy configurations
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]svdE
    Maps remote servers into the local server URL-space using regular expressions
    ProxyPassReverse [path] url +[interpolate]svdE
    Adjusts the URL in HTTP response headers sent from a reverse +proxied server
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]svdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- +proxied server
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]svdE
    Adjusts the Path string in Set-Cookie headers from a reverse- +proxied server
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy +request
    ProxyReceiveBufferSize bytes 0 svE
    Network buffer size for proxied HTTP and FTP +connections
    ProxyRemote match remote-serversvE
    Remote proxy used to handle certain requests
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular +expressions
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxySCGIInternalRedirect On|Off On svdE
    Enable or disable internal redirect responses from the +backend
    ProxySCGISendfile On|Off|Headername Off svdE
    Enable evaluation of X-Sendfile pseudo response +header
    ProxySet url key=value [key=value ...]dE
    Set various Proxy balancer or member parameters
    ProxyStatus Off|On|Full Off svE
    Show Proxy LoadBalancer status in mod_status
    ProxyTimeout secondssvE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response +header for proxied requests
    ReadmeName filenamesvdhB
    Name of the file that will be inserted at the end +of the index listing
    ReceiveBufferSize bytes 0 sM
    TCP receive buffer size
    Redirect [status] URL-path +URLsvdhB
    Sends an external redirect asking the client to fetch +a different URL
    RedirectMatch [status] regex +URLsvdhB
    Sends an external redirect based on a regular expression match +of the current URL
    RedirectPermanent URL-path URLsvdhB
    Sends an external permanent redirect asking the client to fetch +a different URL
    RedirectTemp URL-path URLsvdhB
    Sends an external temporary redirect asking the client to fetch +a different URL
    RegisterHttpMethod method [method [...]]sC
    Register non-standard HTTP methods
    RemoveCharset extension [extension] +...vdhB
    Removes any character set associations for a set of file +extensions
    RemoveEncoding extension [extension] +...vdhB
    Removes any content encoding associations for a set of file +extensions
    RemoveHandler extension [extension] +...vdhB
    Removes any handler associations for a set of file +extensions
    RemoveInputFilter extension [extension] +...vdhB
    Removes any input filter associations for a set of file +extensions
    RemoveLanguage extension [extension] +...vdhB
    Removes any language associations for a set of file +extensions
    RemoveOutputFilter extension [extension] +...vdhB
    Removes any output filter associations for a set of file +extensions
    RemoveType extension [extension] +...vdhB
    Removes any content type associations for a set of file +extensions
    RequestHeader set|append|merge|add|unset|edit header +[value] [replacement] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +svE
    Set timeout values for receiving request headers and body from client. +
    Require entity-name [entity-name] ...dhC
    Selects which authenticated users can access +a resource
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond + TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place +
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap +synchronization
    RewriteLog file-path|pipesvE
    Sets the name of the file used for logging rewrite engine +processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite +engine
    RewriteMap MapName MapType:MapSource +svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule + Pattern Substitution [flags]svdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Limits the CPU consumption of processes launched +by Apache children
    RLimitMEM bytes|max [bytes|max]svdhC
    Limits the memory consumption of processes launched +by Apache children
    RLimitNPROC number|max [number|max]svdhC
    Limits the number of processes that can be launched by +processes launched by Apache children
    Satisfy Any|All All dhC
    Interaction between host-level access control and +user authentication
    ScoreBoardFile file-path logs/apache_runtime +sM
    Location of the file used to store coordination data for +the child processes
    Script method cgi-scriptsvdB
    Activates a CGI script for a particular request +method.
    ScriptAlias URL-path +file-path|directory-pathsvB
    Maps a URL to a filesystem location and designates the +target as a CGI script
    ScriptAliasMatch regex +file-path|directory-pathsvB
    Maps a URL to a filesystem location using a regular expression +and designates the target as a CGI script
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    Technique for locating the interpreter for CGI +scripts
    ScriptLog file-pathsvB
    Location of the CGI script error logfile
    ScriptLogBuffer bytes 1024 svB
    Maximum amount of PUT or POST requests that will be recorded +in the scriptlog
    ScriptLogLength bytes 10385760 svB
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock sB
    The filename prefix of the socket to use for communication with +the cgi daemon
    SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SeeRequestTail On|Off Off sB
    Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    SendBufferSize bytes 0 sM
    TCP buffer size
    ServerAdmin email-address|URLsvC
    Email address that the server includes in error +messages sent to the client
    ServerAlias hostname [hostname] ...vC
    Alternate names for a host used when matching requests +to name-virtual hosts
    ServerLimit numbersM
    Upper limit on configurable number of processes
    ServerName [scheme://]fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify +itself
    ServerPath URL-pathvC
    Legacy URL pathname for a name-based virtual host that +is accessed by an incompatible browser
    ServerRoot directory-path /usr/local/apache sC
    Base directory for the server installation
    ServerSignature On|Off|EMail Off svdhC
    Configures the footer on server-generated documents
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Configures the Server HTTP response +header
    SetEnv env-variable [value]svdhB
    Sets environment variables
    SetEnvIf attribute + regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request +
    SetEnvIfNoCase attribute regex + [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request +without respect to case
    SetHandler handler-name|NonesvdhC
    Forces all matching files to be processed by a +handler
    SetInputFilter filter[;filter...]svdhC
    Sets the filters that will process client requests and POST +input
    SetOutputFilter filter[;filter...]svdhC
    Sets the filters that will process responses from the +server
    SSIEnableAccess on|off off dhB
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI +error
    SSIETag on|off off dhB
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhB
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are +displayed
    SSIUndefinedEcho string "(none)" svdhB
    String displayed when an unset variable is echoed
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for Client Auth
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +Client Auth
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for defining acceptable CA names
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +defining acceptable CA names
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +Client Auth
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +Client Auth
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +handshake
    SSLCompression on|off off svE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off svE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of +operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private +keys
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for Remote Server Auth
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +Remote Server Auth
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCheckPeerCN on|off off svE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off svE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svE
    Maximum depth of CA Certificates in Remote Server +Certificate verification
    SSLRandomSeed context source +[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding +source
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex +boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the +HTTP request
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session +Cache
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires +in the Session Cache
    SSLSessionTicketKeyFile file-pathsvE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on svE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off svE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client +Certificate verification
    StartServers numbersM
    Number of child server processes created at startup
    StartThreads numbersM
    Number of threads created on startup
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsC
    Enable or disable the suEXEC feature
    SuexecUserGroup User GroupsvE
    User and group for CGI programs to run as
    ThreadLimit numbersM
    Sets the upper limit on the configurable number of threads +per child process
    ThreadsPerChild numbersM
    Number of threads created by each child process
    ThreadStackSize sizesM
    The size in bytes of the stack used by threads handling +client connections
    TimeOut seconds 300 svC
    Amount of time the server will wait for +certain events before failing a request
    TraceEnable [on|off|extended] on svC
    Determines the behaviour on TRACE +requests
    TransferLog file|pipesvB
    Specify location of a log file
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] +...svdhB
    Removes variables from the environment
    UseCanonicalName On|Off|DNS Off svdC
    Configures how the server determines its own name and +port
    UseCanonicalPhysicalPort On|Off Off svdC
    Configures how the server determines its own name and +port
    User unix-userid #-1 sM
    The userid under which the server will answer +requests
    UserDir directory-filename [directory-filename] ... +svB
    Location of the user-specific directories
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root +for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root +for a given virtual host
    <VirtualHost + addr[:port] [addr[:port]] + ...> ... </VirtualHost>sC
    Contains directives that apply only to a specific +hostname or IP address
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for +a given virtual host
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for +a given virtual host
    Win32DisableAcceptExsM
    Use accept() rather than AcceptEx() to accept network connections
    XBitHack on|off|full off svdhB
    Parse SSI directives in files with the execute bit +set
    +
    +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.tr.utf8 b/docs/manual/mod/quickreference.html.tr.utf8 new file mode 100644 index 00000000000..ee937333a05 --- /dev/null +++ b/docs/manual/mod/quickreference.html.tr.utf8 @@ -0,0 +1,868 @@ + + + + + +Hızlı Yönerge Kılavuzu - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Hızlı Yönerge Kılavuzu

    +
    +

    Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + +

    Bu hızlı yönerge kılavuzunda Apache yapılandırma yönergelerinin kullanımı, + öntanımlı değerleri, durumu ve bağlamı gösterilmiştir. Bunların her biri + hakkında ayrıntılı bilgi almak için + Yönerge Sözlüğüne bakınız.

    + +

    İlk sütunda yönergenin ismi ve kullanımı belirtilmiştir. İkinci sütunda + yönergenin varsa öntanımlı değeri gösterilmiştir. Eğer öntanımlı değer + sütuna sığmayacak kadar uzunsa sığmayan kısım atılıp yerine “+” imi + konmuştur.

    + +

    Aşağıda sağdaki gösterge tablolarına uygun olarak, üçüncü sütunda + yönergenin kullanımına izin verilen bağlamlar, dördüncü sütunda ise + yönergenin durumu gösterilmiştir.

    +
    +
    + + + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  + + + +
    ssunucu geneli
    ksanal konak
    ddizin
    h.htaccess
    + + + + +
    ÇÇekirdek
    MMPM
    TTemel
    EEklenti
    DDeneysel
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AcceptFilter protocol kabul_süzgecisÇ
    Bir protokolün dinleyici soketleri için en iyilemeleri ayarlar +
    AcceptMutex Default|yöntem Default sM
    Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden + çok sayıda çocuk süreci sıraya sokmak için kullandığı yöntemi + belirler.
    AcceptPathInfo On|Off|Default Default skdhÇ
    Dosya isminden sonra belirtilen yol verisini kabul veya + reddeder.
    AccessFileName filename [filename] ... .htaccess skÇ
    Dağıtık yapılandırma dosyasının ismi belirtilir.
    Action action-type cgi-script [virtual]skdhT
    Activates a CGI script for a particular handler or +content-type
    AddAlt metin dosya [dosya] ...skdhT
    Dosyaya göre seçilen simgenin yerinde gösterilecek metni belirler. +
    AddAltByEncoding metin MIME-kodlaması +[MIME-kodlaması] ...skdhT
    Dosyanın MIME kodlamasına göre seçilen simgenin yerinde +gösterilecek metni belirler.
    AddAltByType metin MIME-türü +[MIME-türü] ...skdhT
    Dosyanın MIME türüne göre seçilen simgenin yerinde gösterilecek +metni belirler.
    AddCharset charset extension +[extension] ...skdhT
    Maps the given filename extensions to the specified content +charset
    AddDefaultCharset On|Off|karküm Off skdhÇ
    Bir yanıtın içerik türü text/plain veya + text/html olduğunda eklenecek öntanımlı karakter kümesi + parametresini belirler.
    AddDescription metin dosya [dosya] ...skdhT
    Bir dosya için gösterilecek açıklama belirtilir.
    AddEncoding MIME-enc extension +[extension] ...skdhT
    Maps the given filename extensions to the specified encoding +type
    AddHandler handler-name extension +[extension] ...skdhT
    Maps the filename extensions to the specified +handler
    AddIcon simge isim [isim] +...skdhT
    Bir dosya için gösterilecek simgeyi dosya adına göre belirler. +
    AddIconByEncoding simge MIME-kodlaması +[MIME-kodlaması] ...skdhT
    Bir dosya için gösterilecek simgeyi dosyanın MIME kodlamasına +göre belirler.
    AddIconByType simge MIME-türü +[MIME-türü] ...skdhT
    Bir dosya için gösterilecek simgeyi dosyanın MIME türüne göre +belirler.
    AddInputFilter filter[;filter...] +extension [extension] ...skdhT
    Maps filename extensions to the filters that will process +client requests
    AddLanguage MIME-lang extension +[extension] ...skdhT
    Maps the given filename extension to the specified content +language
    AddModuleInfo module-name stringskE
    Adds additional information to the module +information displayed by the server-info handler
    AddOutputFilter filter[;filter...] +extension [extension] ...skdhT
    Maps filename extensions to the filters that will process +responses from the server
    AddOutputFilterByType süzgeç[;süzgeç...] +MIME-türü [MIME-türü] ...skdhÇ
    Belli bir MIME türüne bir çıktı süzgeci atar.
    AddType MIME-type extension +[extension] ...skdhT
    Maps the given filename extensions onto the specified content +type
    Alias URL-yolu +dosya-yolu|dizin-yoluskT
    URL’leri dosya sistemi konumlarıyla eşler.
    AliasMatch düzenli-ifade +dosya-yolu|dizin-yoluskT
    URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarak +eşler.
    Allow from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhT
    Controls which hosts can access an area of the +server
    AllowCONNECT port [port] ... 443 563 skE
    Ports that are allowed to CONNECT through the +proxy
    AllowEncodedSlashes On|Off|NoDecode Off skÇ
    Kodlanmış dosya yolu ayracı içeren URL’lere izin verilip + verilmeyeceğini belirler.
    AllowOverride All|None|yönerge-türü +[yönerge-türü] ... All dÇ
    .htaccess dosyalarında bulunmasına izin verilen + yönerge türleri belirtilir.
    Anonymous user [user] ...dhE
    Specifies userIDs that are allowed access without +password verification
    Anonymous_LogEmail On|Off On dhE
    Sets whether the password entered will be logged in the +error log
    Anonymous_MustGiveEmail On|Off On dhE
    Specifies whether blank passwords are allowed
    Anonymous_NoUserID On|Off Off dhE
    Sets whether the userID field may be empty
    Anonymous_VerifyEmail On|Off Off dhE
    Sets whether to check the password field for a correctly +formatted email address
    AuthBasicAuthoritative On|Off On dhT
    Sets whether authorization and authentication are passed to +lower level modules
    AuthBasicProvider provider-name +[provider-name] ... file dhT
    Sets the authentication provider(s) for this location
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list +of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +store passwords
    AuthDBMUserFile file-pathdhE
    Sets the name of a database file containing the list of users and +passwords for authentication
    AuthDefaultAuthoritative On|Off On dhT
    Sets whether authentication is passed to lower level +modules
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhE
    Selects the algorithm used to calculate the challenge and +response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhE
    URIs that are in the same protection space for digest +authentication
    AuthDigestNcCheck On|Off Off sE
    Enables or disables checking of the nonce-count sent by the +server
    AuthDigestNonceFormat formatdhE
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhE
    How long the server nonce is valid
    AuthDigestProvider provider-name +[provider-name] ... file dhE
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhE
    Determines the quality-of-protection to use in digest +authentication
    AuthDigestShmemSize size 1000 sE
    The amount of shared memory to allocate for keeping track +of clients
    AuthGroupFile file-pathdhT
    Sets the name of a text file containing the list +of user groups for authorization
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for +group membership
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER +environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName yetki-alanıdhÇ
    HTTP kimlik doğrulamasında kullanmak için yetki alanı ismi
    <AuthnProviderAlias baseProvider Alias> +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an +extension of a base authentication provider and referenced by +the specified alias
    AuthType Basic|DigestdhÇ
    Kullanıcı kimlik doğrulaması türü
    AuthUserFile file-pathdhT
    Sets the name of a text file containing the list of users and +passwords for authentication
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +modules
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +store list of user groups
    AuthzDefaultAuthoritative On|Off On dhT
    Sets whether authorization is passed to lower level +modules
    AuthzGroupFileAuthoritative On|Off On dhT
    Sets whether authorization will be passed on to lower level +modules
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from +authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +modules
    AuthzUserAuthoritative On|Off On dhT
    Sets whether authorization will be passed on to lower level +modules
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    Add a member to a load balancing group
    BrowserMatch düzifd [!]ort-değişkeni[=değer] +[[!]ort-değişkeni[=değer]] ...skdhT
    Ortam değişkenlerini HTTP kullanıcı arayüzüne göre belirler. +
    BrowserMatchNoCase düzifd [!]ort-değişkeni[=değer] +[[!]ort-değişkeni[=değer]] ...skdhT
    Ortam değişkenlerini HTTP kullanıcı arayüzünün harf büyüklüğüne +duyarsız eşleşmelerine bağlı olarak belirler.
    BufferedLogs On|Off Off sT
    Günlük girdilerini diske yazmadan önce bellekte tamponlar +
    CacheDefaultExpire seconds 3600 (one hour) skE
    The default duration to cache a document when no expiry date is specified.
    CacheDirLength length 2 skE
    The number of characters in subdirectory names
    CacheDirLevels levels 3 skE
    The number of levels of subdirectories in the +cache.
    CacheDisable url-stringskE
    Disable caching of specified URLs
    CacheEnable cache_type url-stringskE
    Enable caching of specified URLs using a specified storage +manager
    CacheFile file-path [file-path] ...sD
    Cache a list of file handles at startup time
    CacheIgnoreCacheControl On|Off Off skE
    Ignore request to not serve cached content to client
    CacheIgnoreHeaders header-string [header-string] ... None skE
    Do not store the given HTTP header(s) in the cache. +
    CacheIgnoreNoLastMod On|Off Off skE
    Ignore the fact that a response has no Last Modified +header.
    CacheIgnoreQueryString On|Off Off skE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None skE
    Ignore defined session identifiers encoded in the URL when caching +
    CacheLastModifiedFactor float 0.1 skE
    The factor used to compute an expiry date based on the +LastModified date.
    CacheLock on|off off skE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 skE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +skE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (one day) skE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 skE
    The maximum size (in bytes) of a document to be placed in the +cache
    CacheMinFileSize bytes 1 skE
    The minimum size (in bytes) of a document to be placed in the +cache
    CacheNegotiatedDocs On|Off Off skT
    Allows content-negotiated documents to be +cached by proxy servers
    CacheRoot directoryskE
    The directory root under which cache files are +stored
    CacheStoreNoStore On|Off Off skE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off skE
    Attempt to cache responses that the server has marked as private
    CGIDScriptTimeout time[s|ms]skdhT
    The length of time to wait for more output from the +CGI program
    CGIMapExtension cgi-yolu .uzantıdhÇ
    CGI betik yorumlayıcısını saptama tekniğini belirler. +
    CharsetDefault charsetskdhE
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +skdhE
    Configures charset translation behavior
    CharsetSourceEnc charsetskdhE
    Source charset of files
    CheckCaseOnly on|off Off skdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off skdhE
    Enables the spelling +module
    ChrootDir /dizin/yolu/sM
    Başlatıldıktan sonra Apache’nin chroot(8) yapacağı dizin +
    ContentDigest On|Off Off skdhÇ
    Content-MD5 HTTP yanıt başlıklarının üretimini + etkin kılar.
    CookieDomain domainskdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodskdhE
    Expiry time for the tracking cookie
    CookieLog dosya-adıskT
    Çerezleri günlüğe kaydetmek için dosya ismi belirtmekte +kullanılır.
    CookieName token Apache skdhE
    Name of the tracking cookie
    CookieStyle + Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape skdhE
    Format of the cookie header field
    CookieTracking on|off off skdhE
    Enables tracking cookie
    CoreDumpDirectory dizinsM
    core dosyasını dökümlemek üzere Apache’nin geçmeye + çalışacağı dizin.
    CustomLog dosya|borulu-süreç +biçem|takma-ad +[env=[!]ortam-değişkeni]skT
    Günlük dosyasın ismini ve girdi biçemini belirler.
    Dav On|Off|provider-name Off dE
    Enable WebDAV HTTP methods
    DavDepthInfinity on|off off skdE
    Allow PROPFIND, Depth: Infinity requests
    DavGenericLockDB file-pathskdE
    Location of the DAV lock database
    DavLockDB file-pathskE
    Location of the DAV lock database
    DavMinTimeout seconds 0 skdE
    Minimum amount of time the server holds a lock on +a DAV resource
    DBDExptime time-in-seconds 300 skE
    Keepalive time for idle connections
    DBDKeep number 2 skE
    Maximum sustained number of connections
    DBDMax number 10 skE
    Maximum number of connections
    DBDMin number 1 skE
    Minimum number of connections
    DBDParams +param1=value1[,param2=value2]skE
    Parameters for database connection
    DBDPersist On|OffskE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelskE
    Define an SQL prepared statement
    DBDriver nameskE
    Specify an SQL driver
    DefaultIcon URL-yoluskdhT
    Özel bir simge atanmamış dosyalar için gösterilecek simgeyi +belirler.
    DefaultLanguage MIME-langskdhT
    Sets all files in the given scope to the specified +language
    DefaultType MIME-türü|none text/plain skdhÇ
    Sunucunun MIME türünü saptayamadığı durumda göndereceği MIME + içerik türünü belirler.
    DeflateBufferSize value 8096 skE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valueskE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenameskE
    Places the compression ratio in a note for logging
    DeflateInflateLimitRequestBodyvalueskdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valueskdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valueskdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 skE
    How much memory should be used by zlib for compression
    DeflateWindowSize value 15 skE
    Zlib compression window size
    Deny from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhT
    Controls which hosts are denied access to the +server
    <Directory dizin-yolu> +... </Directory>skÇ
    Sadece ismi belirtilen dosya sistemi dizinine ve bunun + altdizinleri ile içeriklerine uygulanacak bir yönerge grubunu + sarmalar.
    DirectoryIndex + yerel-url [yerel-url] ... index.html skdhT
    İstemci bir dizin istediğinde dizin içeriğini listeler. +
    <DirectoryMatch düzifd> +... </DirectoryMatch>skÇ
    Bir düzenli ifade ile eşleşen dosya sistemi dizininde ve bunun + altdizinlerinde uygulanacak bir yönerge grubunu sarmalar.
    DirectorySlash On|Off On skdhT
    Bölü çizgisi ile biten yönlendirmeleri açar/kapar.
    DocumentRoot dizin-yolu /usr/local/apache/h +skÇ
    İstemciye görünür olan ana belge ağacının kök dizinini belirler.
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Bir çöküş sonrası olağandışılık eylemcilerini çalıştıracak + kancayı etkin kılar.
    EnableMMAP On|Off On skdhÇ
    Teslimat sırasında okunacak dosyalar için bellek eşlemeyi etkin + kılar.
    EnableSendfile On|Off On skdhÇ
    Dosyaların istemciye tesliminde çekirdeğin dosya gönderme + desteğinin kullanımını etkin kılar.
    ErrorDocument hata-kodu belgeskdhÇ
    Bir hata durumunda sunucunun istemciye ne döndüreceğini + belirler.
    ErrorLog dosya-yolu|syslog[:oluşum] logs/error_log (Uni +skÇ
    Sunucunun hata günlüğünü tutacağı yeri belirler.
    ExampleskdhD
    Demonstration directive to illustrate the Apache module +API
    ExpiresActive On|OffskdhE
    Enables generation of Expires +headers
    ExpiresByType MIME-type +<code>secondsskdhE
    Value of the Expires header configured +by MIME type
    ExpiresDefault <code>secondsskdhE
    Default algorithm for calculating expiration time
    ExtendedStatus On|Off Off sT
    Her istekte ek durum bilgisinin toplanmasını sağlar. +
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FallbackResource disabled | yerel-urlskdhT
    Bir dosyayla eşleşmeyen istekler için öntanımlı bir URL tanımlar +
    FileETag bileşen ... INode MTime Size skdhÇ
    ETagDuruk dosyalar için HTTP yanıt başlığını +oluşturmakta kullanılacak dosya özniteliklerini belirler.
    <Files dosya-adı> ... </Files>skdhÇ
    Dosya isimleriyle eşleşme halinde uygulanacak yönergeleri + içerir.
    <FilesMatch düzifd> ... </FilesMatch>skdhÇ
    Düzenli ifadelerin dosya isimleriyle eşleşmesi halinde + uygulanacak yönergeleri içerir.
    FilterChain [+=-@!]filter-name ...skdhT
    Configure the filter chain
    FilterDeclare filter-name [type]skdhT
    Declare a smart filter
    FilterProtocol filter-name [provider-name] + proto-flagsskdhT
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name + [req|resp|env]=dispatch matchskdhT
    Register a content filter
    FilterTrace filter-name levelskdT
    Get debug/diagnostic information from + mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer skdhT
    Action to take if a single acceptable document is not +found
    ForceType MIME-türü|NonedhÇ
    Bütün dosyaların belirtilen MIME içerik türüyle sunulmasına + sebep olur.
    ForensicLog dosya-adı|borulu-süreçskE
    Adli günlük için dosya ismini belirler.
    GprofDir /tmp/gprof/|/tmp/gprof/%skÇ
    gmon.out profilleme verisinin yazılacağı dizin.
    GracefulShutDownTimeout saniyesM
    Sunucunun nazikçe kapatılmasının ardından ana süreç çıkana kadar + geçecek süre için bir zaman aşımı belirler.
    Group unix-grubu #-1 sM
    İsteklere yanıt verecek sunucunun ait olacağı grubu belirler.
    Header [condition] set|append|merge|add|unset|echo|edit +header [value] [replacement] +[early|env=[!]variable]skdhE
    Configure HTTP response headers
    HeaderName dosya-ismiskdhT
    Dizin listesinin tepesine yerleştirilecek dosyanın ismini +belirler.
    HostnameLookups On|Off|Double Off skdÇ
    İstemci IP adresleri üzerinde DNS sorgularını etkin kılar. +
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +skÇ
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off skdE
    Enables logging of the RFC 1413 identity of the remote +user
    IdentityCheckTimeout seconds 30 skdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parametre-adı> ... + </IfDefine>skdhÇ
    Başlatma sırasında bir doğruluk sınamasından sonra işleme +sokulacak yönergeleri sarmalar.
    <IfModule [!]modül-dosyası|modül-betimleyici> ... + </IfModule>skdhÇ
    Belli bir modülün varlığına veya yokluğuna göre işleme sokulacak +yönergeleri sarmalar.
    <IfVersion [[!]operator] version> ... +</IfVersion>skdhE
    contains version dependent configuration
    ImapBase map|referer|URL http://servername/ skdhT
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent skdhT
    Default action when an imagemap is called with coordinates +that are not explicitly mapped
    ImapMenu none|formatted|semiformatted|unformattedskdhT
    Action if no coordinates are given when calling +an imagemap
    Include dosya-yolu|dizin-yoluskdÇ
    Sunucu yapılandırma dosyalarının başka dosyaları içermesini sağlar. +
    IndexHeadInsert "imlenim ..."skdhT
    Bir dizin sayfasının HEAD bölümüne metin yerleştirir. +
    IndexIgnore dosya [dosya] ... "." skdhT
    Dizin içerik listesinden gizlenecek dosyaların listesi belirtilir. +
    IndexOptions [+|-]seçenek [[+|-]seçenek] +...skdhT
    Dizin içerik listesini yapılandıracak seçenekler belirtilir. +
    IndexOrderDefault Ascending|Descending +Name|Date|Size|Description Ascending Name skdhT
    Dizin içerik listesinin öntanımlı sıralamasını belirler. +
    IndexStyleSheet url-yoluskdhT
    Dizin listesine bir biçembent ekler.
    ISAPIAppendLogToErrors on|off off skdhT
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the error log
    ISAPIAppendLogToQuery on|off on skdhT
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the query field
    ISAPICacheFile file-path [file-path] +...skT
    ISAPI .dll files to be loaded at startup
    ISAPIFakeAsync on|off off skdhT
    Fake asynchronous support for ISAPI callbacks
    ISAPILogNotSupported on|off off skdhT
    Log unsupported feature requests from ISAPI +extensions
    ISAPIReadAheadBuffer size 49152 skdhT
    Size of the Read Ahead Buffer sent to ISAPI +extensions
    KeepAlive On|Off On skÇ
    HTTP kalıcı bağlantılarını etkin kılar
    KeepAliveTimeout saniye 5 skÇ
    Bir kalıcı bağlantıda sunucunun bir sonraki isteği bekleme süresi +
    LanguagePriority MIME-lang [MIME-lang] +...skdhT
    The precendence of language variants for cases where +the client does not express a preference
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare +operations
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain +valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]skdhE
    Sets the file containing or nickname referring to a per +connection client certificate. Not all LDAP toolkits support per +connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted +Certificate Authority or global client certificates
    LDAPTrustedMode typeskE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit yöntem [yöntem] ... > ... + </Limit>skdhÇ
    Erişimi sınırlanacak HTTP yöntemleri için erişim sınırlayıcıları +sarmalar.
    <LimitExcept yöntem [yöntem] ... > ... + </LimitExcept>skdhÇ
    İsimleri belirtilenler dışında kalan HTTP yöntemleri için +kullanılacak erişim sınırlayıcıları sarmalar.
    LimitInternalRecursion sayı [sayı] 10 skÇ
    Dahili yönlendirmelerin ve istek içi isteklerin azami sayısını +belirler.
    LimitRequestBody bayt-sayısı 0 skdhÇ
    İstemci tarafından gönderilen HTTP istek gövdesinin toplam +uzunluğunu sınırlar.
    LimitRequestFields sayı 100 skÇ
    İstemciden kabul edilecek HTTP isteği başlık alanlarının sayısını +sınırlar.
    LimitRequestFieldSize bayt-sayısı 8190 skÇ
    İstemciden kabul edilecek HTTP isteği başlık uzunluğunu sınırlar. +
    LimitRequestLine bayt-sayısı 8190 skÇ
    İstemciden kabul edilecek HTTP istek satırının uzunluğunu sınırlar. +
    LimitXMLRequestBody bayt-sayısı 1000000 skdhÇ
    Bir XML temelli istek gövdesinin uzunluğunu sınırlar.
    Listen [IP-adresi:]port-numarası + [protokol]sM
    Sunucunun dinleyeceği IP adresini ve portu belirler.
    ListenBacklog kuyruk-uzunluğusM
    Bekleyen bağlantılar kuyruğunun azami uzunluğunu + belirler
    LoadFile dosya-ismi [dosya-ismi] ...sE
    Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler. +
    LoadModule modül dosya-ismisE
    Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler +ve etkin modül listesine ekler.
    <Location URL-yolu|URL> ... +</Location>skÇ
    İçerdiği yönergeler sadece eşleşen URL’lere uygulanır. +
    <LocationMatch + düzifade> ... </LocationMatch>skÇ
    İçerdiği yönergeler sadece düzenli ifadelerle eşleşen URL’lere +uygulanır.
    LockFile dosya logs/accept.lock sM
    Apache HTTPd Sunucusunun ağ soketlerinden istekleri kabul eden + çok sayıda çocuk süreci sıraya sokarken kullandığı kilit dosyasının yerini + belirler.
    LogFormat biçem|takma-ad +[takma-ad] "%h %l %u %t \"%r\" +skT
    Bir günlük dosyasında kullanılmak üzere girdi biçemi tanımlar. +
    LogLevel seviye warn skÇ
    Hata günlüklerinin ayrıntı seviyesini belirler.
    MaxClients sayısM
    Aynı anda işleme sokulacak azami bağlantı sayısı
    MaxKeepAliveRequests sayı 100 skÇ
    Bir kalıcı bağlantıda izin verilen istek sayısı
    MaxMemFree kB-sayısı 0 sM
    free() çağrılmaksızın ana bellek ayırıcının + ayırmasına izin verilen azami bellek miktarını belirler.
    MaxRanges default | unlimited | none | miktar 200 skdÇ
    Özkaynağın tamamı döndürülmeden önce gönderilebilecek HTTP range + başlıklarının azami miktarı
    MaxRequestsPerChild sayı 10000 sM
    Tek bir çocuk sürecin ömrü boyunca işleme sokabileceği istek + sayısını sınırlamakta kullanılır.
    MaxRequestsPerThread number 0 sM
    Limit on the number of requests that an individual thread +will handle during its life
    MaxSpareServers sayı 10 sM
    Boştaki çocuk süreçlerin azami sayısı
    MaxSpareThreads numbersM
    Boştaki azami evre sayısını belirler
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MCacheMaxObjectCount value 1009 sE
    The maximum number of objects allowed to be placed in the +cache
    MCacheMaxObjectSize bytes 10000 sE
    The maximum size (in bytes) of a document allowed in the +cache
    MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sE
    Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
    MCacheMinObjectSize bytes 1 sE
    The minimum size (in bytes) of a document to be allowed in the +cache
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    The algorithm used to select documents for removal from the +cache
    MCacheSize KBytes 100 sE
    The maximum amount of memory used by the cache in +KBytes
    MergeTrailers [on|off] off skÇ
    Trailer alanlarının başlığa dahil edilip edilmeyeceğini belirler
    MetaDir directory .web skdhE
    Name of the directory to find CERN-style meta information +files
    MetaFiles on|off off skdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta skdhE
    File name suffix for the file containg CERN-style +meta information
    MimeMagicFile file-pathskE
    Enable MIME-type determination based on file contents +using the specified magic file
    MinSpareServers sayı 5 sM
    Boştaki çocuk süreçlerin asgari sayısı
    MinSpareThreads sayısM
    İsteklerin ani artışında devreye girecek boştaki evrelerin asgari + sayısını belirler.
    MMapFile file-path [file-path] ...sD
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dT
    Tells mod_mime to treat path_info +components as part of the filename
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters] NegotiatedOnly skdhT
    The types of files that will be included when searching for +a matching file with MultiViews
    NameVirtualHost adres[:port]sÇ
    İsme dayalı sanal konaklar için IP adresi belirtir
    NoProxy host [host] ...skE
    Hosts, domains, or networks that will be connected to +directly
    NWSSLTrustedCerts filename [filename] ...sT
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersT
    Allows a connection to be upgraded to an SSL connection upon request
    Options + [+|-]seçenek [[+|-]seçenek] ... All skdhÇ
    Belli bir dizinde geçerli olacak özellikleri yapılandırır. +
    Order ordering Deny,Allow dhT
    Controls the default access state and the order in which +Allow and Deny are +evaluated.
    PassEnv ortam-değişkeni [ortam-değişkeni] +...skdhT
    Ortam değişkenlerini kabuktan aktarır.
    PidFile dosya logs/httpd.pid sM
    Ana sürecin süreç kimliğinin (PID) kaydedileceği dosyayı belirler.
    Protocol protokolskÇ
    Dinlenen bir soket için protokol
    ProtocolEcho On|Off Off skD
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>skE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError skE
    Determines how to handle bad header lines in a +response
    ProxyBlock *|word|host|domain +[word|host|domain] ...skE
    Words, hosts, or domains that are banned from being +proxied
    ProxyDomain DomainskE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off skE
    Override error pages for proxied content
    ProxyFtpDirCharset character set ISO-8859-1 skdE
    Define the character set for proxied FTP listings
    ProxyIOBufferSize bytes 8192 skE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>skE
    Container for directives applied to regular-expression-matched +proxied resources
    ProxyMaxForwards number -1 skE
    Maximium number of proxies that a request can be forwarded +through
    ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]skdE
    Maps remote servers into the local server URL-space
    ProxyPassInterpolateEnv On|Off Off skdE
    Enable Environment Variable interpolation in Reverse Proxy configurations
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]skdE
    Maps remote servers into the local server URL-space using regular expressions
    ProxyPassReverse [path] url +[interpolate]skdE
    Adjusts the URL in HTTP response headers sent from a reverse +proxied server
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]skdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- +proxied server
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]skdE
    Adjusts the Path string in Set-Cookie headers from a reverse- +proxied server
    ProxyPreserveHost On|Off Off skE
    Use incoming Host HTTP request header for proxy +request
    ProxyReceiveBufferSize bytes 0 skE
    Network buffer size for proxied HTTP and FTP +connections
    ProxyRemote match remote-serverskE
    Remote proxy used to handle certain requests
    ProxyRemoteMatch regex remote-serverskE
    Remote proxy used to handle requests matched by regular +expressions
    ProxyRequests On|Off Off skE
    Enables forward (standard) proxy requests
    ProxySCGIInternalRedirect On|Off On skdE
    Enable or disable internal redirect responses from the +backend
    ProxySCGISendfile On|Off|Headername Off skdE
    Enable evaluation of X-Sendfile pseudo response +header
    ProxySet url key=value [key=value ...]dE
    Set various Proxy balancer or member parameters
    ProxyStatus Off|On|Full Off skE
    Show Proxy LoadBalancer status in mod_status
    ProxyTimeout secondsskE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off skE
    Information provided in the Via HTTP response +header for proxied requests
    ReadmeName dosya-ismiskdhT
    Dizin listesinin sonuna yerleştirilecek dosyanın ismini +belirler.
    ReceiveBufferSize bayt-sayısı 0 sM
    TCP alım tamponu boyu
    Redirect [durum] URL-yolu +URLskdhT
    İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’ye +yönlendirir.
    RedirectMatch [durum] düzenli-ifade +URLskdhT
    Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir harici +yönlendirme gönderir.
    RedirectPermanent URL-yolu URLskdhT
    İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir.
    RedirectTemp URL-yolu URLskdhT
    İstemciyi, geçici bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir.
    RegisterHttpMethod method [method [...]]sÇ
    Register non-standard HTTP methods
    RemoveCharset extension [extension] +...kdhT
    Removes any character set associations for a set of file +extensions
    RemoveEncoding extension [extension] +...kdhT
    Removes any content encoding associations for a set of file +extensions
    RemoveHandler extension [extension] +...kdhT
    Removes any handler associations for a set of file +extensions
    RemoveInputFilter extension [extension] +...kdhT
    Removes any input filter associations for a set of file +extensions
    RemoveLanguage extension [extension] +...kdhT
    Removes any language associations for a set of file +extensions
    RemoveOutputFilter extension [extension] +...kdhT
    Removes any output filter associations for a set of file +extensions
    RemoveType extension [extension] +...kdhT
    Removes any content type associations for a set of file +extensions
    RequestHeader set|append|merge|add|unset|edit header +[value] [replacement] [early|env=[!]variable]skdhE
    Configure HTTP request headers
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +skE
    Set timeout values for receiving request headers and body from client. +
    Require öğe-adı [öğe-adı] ...dhÇ
    Bir özkaynağa erişebilecek kimliği doğrulanmış kullanıcıları belirler
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond + TestString CondPatternskdhE
    Defines a condition under which rewriting will take place +
    RewriteEngine on|off off skdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap +synchronization
    RewriteLog file-path|pipeskE
    Sets the name of the file used for logging rewrite engine +processing
    RewriteLogLevel Level 0 skE
    Sets the verbosity of the log file used by the rewrite +engine
    RewriteMap MapName MapType:MapSource +skE
    Defines a mapping function for key-lookup
    RewriteOptions OptionsskdhE
    Sets some special options for the rewrite engine
    RewriteRule + Pattern Substitution [flags]skdhE
    Defines rules for the rewriting engine
    RLimitCPU saniye|max [saniye|max]skdhÇ
    Apache alt süreçleri tarafından çalıştırılan süreçlerin işlemci +tüketimine sınırlama getirir.
    RLimitMEM bayt-sayısı|max [bayt-sayısı|max] +skdhÇ
    Apache alt süreçleri tarafından çalıştırılan süreçlerin bellek +tüketimine sınırlama getirir.
    RLimitNPROC sayı|max [sayı|max]skdhÇ
    Apache alt süreçleri tarafından çalıştırılabilecek süreç sayısına +sınırlama getirir.
    Satisfy Any|All All dhÇ
    Konak seviyesinde erişim denetimi ile kullanıcı kimlik doğrulaması arasındaki etkileşim
    ScoreBoardFile dosya-yolu logs/apache_runtime +sM
    Çocuk süreçler için eşgüdüm verisini saklamakta kullanılan + dosyanın yerini belirler.
    Script method cgi-scriptskdT
    Activates a CGI script for a particular request +method.
    ScriptAlias URL-yolu +dosya-yolu|dizin-yoluskT
    Bir URL’yi dosya sistemindeki bir yere eşler ve hedefi bir CGI betiği olarak çalıştırır.
    ScriptAliasMatch düzenli-ifade +dosya-yolu|dizin-yoluskT
    Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarak +eşler ve hedefi bir CGI betiği olarak çalıştırır.
    ScriptInterpreterSource Registry|Registry-Strict|Script Script skdhÇ
    CGI betikleri için yorumlayıcı belirleme tekniği
    ScriptLog file-pathskT
    Location of the CGI script error logfile
    ScriptLogBuffer bytes 1024 skT
    Maximum amount of PUT or POST requests that will be recorded +in the scriptlog
    ScriptLogLength bytes 10385760 skT
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock sT
    The filename prefix of the socket to use for communication with +the cgi daemon
    SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sT
    Enables SSL encryption for the specified port
    SeeRequestTail On|Off Off sT
    İsteğin kendisi 63 karakterden uzun olduğunda, isteğin ilk 63 +karakterinin mi yoksa son 63 karakterinin mi gösterileceğini belirler. +
    SendBufferSize bayt-sayısı 0 sM
    TCP tamponu boyu
    ServerAdmin eposta-adresi|URLskÇ
    Sunucunun hata iletilerinde istemciye göstereceği eposta adresi +
    ServerAlias konakadı [konakadı] ...kÇ
    İstekleri isme dayalı sanal konaklarla eşleştirilirken +kullanılacak konak adları için başka isimler belirtebilmeyi sağlar. +
    ServerLimit sayısM
    Ayarlanabilir süreç sayısının üst sınırını belirler.
    ServerName [şema://]tam-nitelenmiş-alan-adı[:port] +skÇ
    Sunucunun özdeşleşeceği konak ismi ve port.
    ServerPath URL-yolukÇ
    Uyumsuz bir tarayıcı tarafından erişilmesi için bir isme dayalı sanal konak için meşru URL yolu
    ServerRoot dizin-yolu /usr/local/apache sÇ
    Sunucu yapılandırması için kök dizin
    ServerSignature On|Off|EMail Off skdhÇ
    Sunucu tarafından üretilen belgelerin dipnotunu ayarlar. +
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sÇ
    Server HTTP yanıt başlığını yapılandırır. +
    SetEnv ortam-değişkeni [değer]skdhT
    Ortam değişkenlerini tanımlar.
    SetEnvIf öznitelik + düzifd [!]ort-değişkeni[=değer] + [[!]ort-değişkeni[=değer]] ...skdhT
    Ortam değişkenlerini isteğin özniteliklerine göre atar. +
    SetEnvIfNoCase öznitelik + düzifd [!]ort-değişkeni[=değer] + [[!]ort-değişkeni[=değer]] ...skdhT
    Ortam değişkenlerini isteğin özniteliklerinde harf büyüklüğüne +bağlı olmaksızın yapılmış tanımlara göre atar.
    SetHandler eylemci-ismi|NoneskdhÇ
    Eşleşen tüm dosyaların belli bir eylemci tarafından işlenmesine +sebep olur.
    SetInputFilter süzgeç[;süzgeç...]skdhÇ
    POST girdilerini ve istemci isteklerini işleyecek süzgeçleri +belirler.
    SetOutputFilter süzgeç[;süzgeç...]skdhÇ
    Sunucunun yanıtlarını işleyecek süzgeçleri belirler.
    SSIEnableAccess on|off off dhT
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" skT
    String that ends an include element
    SSIErrorMsg message "[an error occurred +skdhT
    Error message displayed when there is an SSI +error
    SSIETag on|off off dhT
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhT
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" skT
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +skdhT
    Configures the format in which date strings are +displayed
    SSIUndefinedEcho string "(none)" skdhT
    String displayed when an unset variable is echoed
    SSLCACertificateFile file-pathskE
    File of concatenated PEM-encoded CA Certificates +for Client Auth
    SSLCACertificatePath directory-pathskE
    Directory of PEM-encoded CA Certificates for +Client Auth
    SSLCADNRequestFile file-pathskE
    File of concatenated PEM-encoded CA Certificates +for defining acceptable CA names
    SSLCADNRequestPath directory-pathskE
    Directory of PEM-encoded CA Certificates for +defining acceptable CA names
    SSLCARevocationFile file-pathskE
    File of concatenated PEM-encoded CA CRLs for +Client Auth
    SSLCARevocationPath directory-pathskE
    Directory of PEM-encoded CA CRLs for +Client Auth
    SSLCertificateChainFile file-pathskE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathskE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathskE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +skdhE
    Cipher Suite available for negotiation in SSL +handshake
    SSLCompression on|off off skE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off skE
    SSL Engine Operation Switch
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagskE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off skE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of +operations
    SSLOptions [+|-]option ...skdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private +keys
    SSLProtocol [+|-]protocol ... all skE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathskE
    File of concatenated PEM-encoded CA Certificates +for Remote Server Auth
    SSLProxyCACertificatePath directory-pathskE
    Directory of PEM-encoded CA Certificates for +Remote Server Auth
    SSLProxyCARevocationFile file-pathskE
    File of concatenated PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCARevocationPath directory-pathskE
    Directory of PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCheckPeerCN on|off off skE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off skE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +skdhE
    Cipher Suite available for negotiation in SSL +proxy handshake
    SSLProxyEngine on|off off skE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all skE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none skE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 skE
    Maximum depth of CA Certificates in Remote Server +Certificate verification
    SSLRandomSeed context source +[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding +source
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex +boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the +HTTP request
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session +Cache
    SSLSessionCacheTimeout seconds 300 skE
    Number of seconds before an SSL session expires +in the Session Cache
    SSLSessionTicketKeyFile file-pathskE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on skE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off skE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none skdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 skdhE
    Maximum depth of CA Certificates in Client +Certificate verification
    StartServers sayısM
    Sunucunun başlatılması sırasında oluşturulan çocuk süreçlerin + sayısını belirler.
    StartThreads sayısM
    Sunucunun başlatılması sırasında oluşturulan evrelerin sayısını + belirler.
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsÇ
    suEXEC özelliğini açar veya kapar
    SuexecUserGroup Kullanıcı GrupskE
    CGI betiklerini çalıştıracak kullanıcı ve grup belirtilir. +
    ThreadLimit sayısM
    Çocuk süreç başına ayarlanabilir evre sayısının üst sınırını + belirler.
    ThreadsPerChild sayısM
    Her çocuk süreç tarafından oluşturulan evrelerin sayısını + belirler.
    ThreadStackSize boyutsM
    İstemci bağlantılarını elde eden evreler tarafından kullanılan + yığıtın bayt cinsinden uzunluğunu belirler.
    TimeOut saniye 300 skÇ
    Bir istek için başarısız olmadan önce belirli olayların +gerçekleşmesi için sunucunun geçmesini bekleyeceği süre.
    TraceEnable [on|off|extended] on skÇ
    TRACE isteklerinde davranış şeklini belirler +
    TransferLog dosya|borulu-süreç +[takma-ad]skT
    Bir günlük dosyasının yerini belirtir.
    TypesConfig file-path conf/mime.types sT
    The location of the mime.types file
    UnsetEnv ortam-değişkeni [ortam-değişkeni] +...skdhT
    Ortamdaki değişkenleri tanımsız hale getirir.
    UseCanonicalName On|Off|DNS Off skdÇ
    Sunucunun kendi adını ve portunu nasıl belirleyeceğini ayarlar +
    UseCanonicalPhysicalPort On|Off Off skdÇ
    Sunucunun kendi adını ve portunu nasıl belirleyeceğini ayarlar +
    User unix-kullanıcısı #-1 sM
    İsteklere yanıt verecek sunucunun ait olacağı kullanıcıyı + belirler.
    UserDir dizin [dizin] ...skT
    Kullanıcıya özel dizinlerin yeri
    VirtualDocumentRoot hesaplanan-dizin|none none skE
    Bir sanal konağın belge kök dizinini devingen olarak yapılandırır. +
    VirtualDocumentRootIP hesaplanan-dizin|none none skE
    Bir sanal konağın belge kök dizinini devingen olarak yapılandırır. +
    <VirtualHost + adres[:port] [adres[:port]] + ...> ... </VirtualHost>sÇ
    Sadece belli bir konak ismine ve porta uygulanacak yönergeleri barındırır.
    VirtualScriptAlias hesaplanan-dizin|none none skE
    Bir sanal konağın CGI dizinini devingen olarak yapılandırır. +
    VirtualScriptAliasIP hesaplanan-dizin|none none skE
    Bir sanal konağın CGI dizinini devingen olarak yapılandırır. +
    Win32DisableAcceptExsM
    Use accept() rather than AcceptEx() to accept network connections
    XBitHack on|off|full off skdhT
    Parse SSI directives in files with the execute bit +set
    +
    +

    Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/quickreference.html.zh-cn.utf8 b/docs/manual/mod/quickreference.html.zh-cn.utf8 new file mode 100644 index 00000000000..c1ece44fc01 --- /dev/null +++ b/docs/manual/mod/quickreference.html.zh-cn.utf8 @@ -0,0 +1,850 @@ + + + + + +指令快速索引 - Apache HTTP 服务器 版本 2.2 + + + + + + + + +
    <-
    + +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    指令快速索引

    +
    +

    可用语言:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    +
    此翻译可能过期。要了解最近的更改,请阅读英文版。
    + +

    指令快速索引显示指令的用法,默认值,状态和上下文。要获得更多信息,请参见 描述指令的术语。

    + +

    第一列给出指令的名称与用法。第二列显示指令的默认值(如果有的话)。 + 如果因为默认值太长而被截断显示,会在最后一个字符之后显示字符 “+”。

    + +

    第三列显示允许此指令的上下文,第四列显示指令的状态。

    +
    +
    + + + +
     A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X  + + + +
    s服务器配置
    v虚拟主机
    d目录
    h.htaccess
    + + + + +
    C核心
    MMPM
    B基础
    E扩展
    X实验
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AcceptFilter protocol accept_filtersC
    Configures optimizations for a Protocol's Listener Sockets
    AcceptMutex Default|method Default sM
    Method that Apache uses to serialize multiple children +accepting requests on network sockets
    AcceptPathInfo On|Off|Default Default svdhC
    Resources accept trailing pathname information
    AccessFileName filename [filename] ... .htaccess svC
    Name of the distributed configuration file
    Action action-type cgi-script [virtual]svdhB
    Activates a CGI script for a particular handler or +content-type
    AddAlt string file [file] ...svdhB
    Alternate text to display for a file, instead of an +icon selected by filename
    AddAltByEncoding string MIME-encoding +[MIME-encoding] ...svdhB
    Alternate text to display for a file instead of an icon +selected by MIME-encoding
    AddAltByType string MIME-type +[MIME-type] ...svdhB
    Alternate text to display for a file, instead of an +icon selected by MIME content-type
    AddCharset charset extension +[extension] ...svdhB
    Maps the given filename extensions to the specified content +charset
    AddDefaultCharset On|Off|charset Off svdhC
    Default charset parameter to be added when a response +content-type is text/plain or text/html
    AddDescription string file [file] ...svdhB
    Description to display for a file
    AddEncoding MIME-enc extension +[extension] ...svdhB
    Maps the given filename extensions to the specified encoding +type
    AddHandler handler-name extension +[extension] ...svdhB
    Maps the filename extensions to the specified +handler
    AddIcon icon name [name] +...svdhB
    Icon to display for a file selected by name
    AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...svdhB
    Icon to display next to files selected by MIME +content-encoding
    AddIconByType icon MIME-type +[MIME-type] ...svdhB
    Icon to display next to files selected by MIME +content-type
    AddInputFilter filter[;filter...] +extension [extension] ...svdhB
    Maps filename extensions to the filters that will process +client requests
    AddLanguage MIME-lang extension +[extension] ...svdhB
    Maps the given filename extension to the specified content +language
    AddModuleInfo module-name stringsvE
    Adds additional information to the module +information displayed by the server-info handler
    AddOutputFilter filter[;filter...] +extension [extension] ...svdhB
    Maps filename extensions to the filters that will process +responses from the server
    AddOutputFilterByType filter[;filter...] +MIME-type [MIME-type] ...svdhC
    assigns an output filter to a particular MIME-type
    AddType MIME-type extension +[extension] ...svdhB
    Maps the given filename extensions onto the specified content +type
    Alias URL-path +file-path|directory-pathsvB
    Maps URLs to filesystem locations
    AliasMatch regex +file-path|directory-pathsvB
    Maps URLs to filesystem locations using regular +expressions
    Allow from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts can access an area of the +server
    AllowCONNECT port [port] ... 443 563 svE
    Ports that are allowed to CONNECT through the +proxy
    AllowEncodedSlashes On|Off|NoDecode Off svC
    Determines whether encoded path separators in URLs are allowed to +be passed through
    AllowOverride All|None|directive-type +[directive-type] ... All dC
    Types of directives that are allowed in +.htaccess files
    Anonymous user [user] ...dhE
    Specifies userIDs that are allowed access without +password verification
    Anonymous_LogEmail On|Off On dhE
    Sets whether the password entered will be logged in the +error log
    Anonymous_MustGiveEmail On|Off On dhE
    Specifies whether blank passwords are allowed
    Anonymous_NoUserID On|Off Off dhE
    Sets whether the userID field may be empty
    Anonymous_VerifyEmail On|Off Off dhE
    Sets whether to check the password field for a correctly +formatted email address
    AuthBasicAuthoritative On|Off On dhB
    Sets whether authorization and authentication are passed to +lower level modules
    AuthBasicProvider provider-name +[provider-name] ... file dhB
    Sets the authentication provider(s) for this location
    AuthDBDUserPWQuery querydE
    SQL query to look up a password for a user
    AuthDBDUserRealmQuery querydE
    SQL query to look up a password hash for a user and realm. +
    AuthDBMGroupFile file-pathdhE
    Sets the name of the database file containing the list +of user groups for authorization
    AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +store passwords
    AuthDBMUserFile file-pathdhE
    Sets the name of a database file containing the list of users and +passwords for authentication
    AuthDefaultAuthoritative On|Off On dhB
    Sets whether authentication is passed to lower level +modules
    AuthDigestAlgorithm MD5|MD5-sess MD5 dhE
    Selects the algorithm used to calculate the challenge and +response hashes in digest authentication
    AuthDigestDomain URI [URI] ...dhE
    URIs that are in the same protection space for digest +authentication
    AuthDigestNcCheck On|Off Off sE
    Enables or disables checking of the nonce-count sent by the +server
    AuthDigestNonceFormat formatdhE
    Determines how the nonce is generated
    AuthDigestNonceLifetime seconds 300 dhE
    How long the server nonce is valid
    AuthDigestProvider provider-name +[provider-name] ... file dhE
    Sets the authentication provider(s) for this location
    AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhE
    Determines the quality-of-protection to use in digest +authentication
    AuthDigestShmemSize size 1000 sE
    The amount of shared memory to allocate for keeping track +of clients
    AuthGroupFile file-pathdhB
    Sets the name of a text file containing the list +of user groups for authorization
    AuthLDAPBindAuthoritativeoff|on on dhE
    Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.
    AuthLDAPBindDN distinguished-namedhE
    Optional DN to use in binding to the LDAP server
    AuthLDAPBindPassword passworddhE
    Password used in conjuction with the bind DN
    AuthLDAPCharsetConfig file-pathsE
    Language to charset conversion configuration file
    AuthLDAPCompareDNOnServer on|off on dhE
    Use the LDAP server to compare the DNs
    AuthLDAPDereferenceAliases never|searching|finding|always Always dhE
    When will the module de-reference aliases
    AuthLDAPGroupAttribute attribute member uniquemember +dhE
    LDAP attributes used to check for group membership
    AuthLDAPGroupAttributeIsDN on|off on dhE
    Use the DN of the client username when checking for +group membership
    AuthLDAPRemoteUserAttribute uiddhE
    Use the value of the attribute returned during the user +query to set the REMOTE_USER environment variable
    AuthLDAPRemoteUserIsDN on|off off dhE
    Use the DN of the client username to set the REMOTE_USER +environment variable
    AuthLDAPUrl url [NONE|SSL|TLS|STARTTLS]dhE
    URL specifying the LDAP search parameters
    AuthName auth-domaindhC
    Authorization realm for use in HTTP +authentication
    <AuthnProviderAlias baseProvider Alias> +... </AuthnProviderAlias>sE
    Enclose a group of directives that represent an +extension of a base authentication provider and referenced by +the specified alias
    AuthType Basic|DigestdhC
    Type of user authentication
    AuthUserFile file-pathdhB
    Sets the name of a text file containing the list of users and +passwords for authentication
    AuthzDBMAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +modules
    AuthzDBMType default|SDBM|GDBM|NDBM|DB default dhE
    Sets the type of database file that is used to +store list of user groups
    AuthzDefaultAuthoritative On|Off On dhB
    Sets whether authorization is passed to lower level +modules
    AuthzGroupFileAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +modules
    AuthzLDAPAuthoritative on|off on dhE
    Prevent other authentication modules from +authenticating the user if this one fails
    AuthzOwnerAuthoritative On|Off On dhE
    Sets whether authorization will be passed on to lower level +modules
    AuthzUserAuthoritative On|Off On dhB
    Sets whether authorization will be passed on to lower level +modules
    BalancerMember [balancerurl] url [key=value [key=value ...]]dE
    Add a member to a load balancing group
    BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on HTTP User-Agent +
    BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    Sets environment variables conditional on User-Agent without +respect to case
    BufferedLogs On|Off Off sB
    Buffer log entries in memory before writing to disk
    CacheDefaultExpire seconds 3600 (one hour) svE
    The default duration to cache a document when no expiry date is specified.
    CacheDirLength length 2 svE
    The number of characters in subdirectory names
    CacheDirLevels levels 3 svE
    The number of levels of subdirectories in the +cache.
    CacheDisable url-stringsvE
    Disable caching of specified URLs
    CacheEnable cache_type url-stringsvE
    Enable caching of specified URLs using a specified storage +manager
    CacheFile file-path [file-path] ...sX
    Cache a list of file handles at startup time
    CacheIgnoreCacheControl On|Off Off svE
    Ignore request to not serve cached content to client
    CacheIgnoreHeaders header-string [header-string] ... None svE
    Do not store the given HTTP header(s) in the cache. +
    CacheIgnoreNoLastMod On|Off Off svE
    Ignore the fact that a response has no Last Modified +header.
    CacheIgnoreQueryString On|Off Off svE
    Ignore query string when caching
    CacheIgnoreURLSessionIdentifiers identifier [identifier] ... None svE
    Ignore defined session identifiers encoded in the URL when caching +
    CacheLastModifiedFactor float 0.1 svE
    The factor used to compute an expiry date based on the +LastModified date.
    CacheLock on|off off svE
    Enable the thundering herd lock.
    CacheLockMaxAge integer 5 svE
    Set the maximum possible age of a cache lock.
    CacheLockPath directory /tmp/mod_cache-lock +svE
    Set the lock path directory.
    CacheMaxExpire seconds 86400 (one day) svE
    The maximum time in seconds to cache a document
    CacheMaxFileSize bytes 1000000 svE
    The maximum size (in bytes) of a document to be placed in the +cache
    CacheMinFileSize bytes 1 svE
    The minimum size (in bytes) of a document to be placed in the +cache
    CacheNegotiatedDocs On|Off Off svB
    Allows content-negotiated documents to be +cached by proxy servers
    CacheRoot directorysvE
    The directory root under which cache files are +stored
    CacheStoreNoStore On|Off Off svE
    Attempt to cache requests or responses that have been marked as no-store.
    CacheStorePrivate On|Off Off svE
    Attempt to cache responses that the server has marked as private
    CGIDScriptTimeout time[s|ms]svdhB
    The length of time to wait for more output from the +CGI program
    CGIMapExtension cgi-path .extensiondhC
    Technique for locating the interpreter for CGI +scripts
    CharsetDefault charsetsvdhE
    Charset to translate into
    CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhE
    Configures charset translation behavior
    CharsetSourceEnc charsetsvdhE
    Source charset of files
    CheckCaseOnly on|off Off svdhE
    Limits the action of the speling module to case corrections
    CheckSpelling on|off Off svdhE
    Enables the spelling +module
    ChrootDir /path/to/directorysM
    Directory for apache to run chroot(8) after startup.
    ContentDigest On|Off Off svdhC
    Enables the generation of Content-MD5 HTTP Response +headers
    CookieDomain domainsvdhE
    The domain to which the tracking cookie applies
    CookieExpires expiry-periodsvdhE
    Expiry time for the tracking cookie
    CookieLog filenamesvB
    Sets filename for the logging of cookies
    CookieName token Apache svdhE
    Name of the tracking cookie
    CookieStyle + Netscape|Cookie|Cookie2|RFC2109|RFC2965 Netscape svdhE
    Format of the cookie header field
    CookieTracking on|off off svdhE
    Enables tracking cookie
    CoreDumpDirectory directorysM
    Directory where Apache attempts to +switch before dumping core
    CustomLog file|pipe +format|nickname +[env=[!]environment-variable]svB
    Sets filename and format of log file
    Dav On|Off|provider-name Off dE
    Enable WebDAV HTTP methods
    DavDepthInfinity on|off off svdE
    Allow PROPFIND, Depth: Infinity requests
    DavGenericLockDB file-pathsvdE
    Location of the DAV lock database
    DavLockDB file-pathsvE
    Location of the DAV lock database
    DavMinTimeout seconds 0 svdE
    Minimum amount of time the server holds a lock on +a DAV resource
    DBDExptime time-in-seconds 300 svE
    Keepalive time for idle connections
    DBDKeep number 2 svE
    Maximum sustained number of connections
    DBDMax number 10 svE
    Maximum number of connections
    DBDMin number 1 svE
    Minimum number of connections
    DBDParams +param1=value1[,param2=value2]svE
    Parameters for database connection
    DBDPersist On|OffsvE
    Whether to use persistent connections
    DBDPrepareSQL "SQL statement" labelsvE
    Define an SQL prepared statement
    DBDriver namesvE
    Specify an SQL driver
    DefaultIcon url-pathsvdhB
    Icon to display for files when no specific icon is +configured
    DefaultLanguage MIME-langsvdhB
    Sets all files in the given scope to the specified +language
    DefaultType MIME-type|none text/plain svdhC
    MIME content-type that will be sent if the +server cannot determine a type in any other way
    DeflateBufferSize value 8096 svE
    Fragment size to be compressed at one time by zlib
    DeflateCompressionLevel valuesvE
    How much compression do we apply to the output
    DeflateFilterNote [type] notenamesvE
    Places the compression ratio in a note for logging
    DeflateInflateLimitRequestBodyvaluesvdhE
    Maximum size of inflated request bodies
    DeflateInflateRatioBurst valuesvdhE
    Maximum number of times the inflation ratio for request bodies + can be crossed
    DeflateInflateRatioLimit valuesvdhE
    Maximum inflation ratio for request bodies
    DeflateMemLevel value 9 svE
    How much memory should be used by zlib for compression
    DeflateWindowSize value 15 svE
    Zlib compression window size
    Deny from all|host|env=[!]env-variable +[host|env=[!]env-variable] ...dhB
    Controls which hosts are denied access to the +server
    <Directory directory-path> +... </Directory>svC
    Enclose a group of directives that apply only to the +named file-system directory, sub-directories, and their contents
    DirectoryIndex + local-url [local-url] ... index.html svdhB
    List of resources to look for when the client requests +a directory
    <DirectoryMatch regex> +... </DirectoryMatch>svC
    Enclose directives that apply to +file-system directories matching a regular expression and their +subdirectories
    DirectorySlash On|Off On svdhB
    Toggle trailing slash redirects on or off
    DocumentRoot directory-path /usr/local/apache/h +svC
    Directory that forms the main document tree visible +from the web
    DumpIOInput On|Off Off sE
    Dump all input data to the error log
    DumpIOLogLevel level debug sE
    Controls the logging level of the DumpIO output
    DumpIOOutput On|Off Off sE
    Dump all output data to the error log
    EnableExceptionHook On|Off Off sM
    Enables a hook that runs exception handlers +after a crash
    EnableMMAP On|Off On svdhC
    Use memory-mapping to read files during delivery
    EnableSendfile On|Off On svdhC
    Use the kernel sendfile support to deliver files to the client
    ErrorDocument error-code documentsvdhC
    What the server will return to the client +in case of an error
    ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
    Location where the server will log errors
    ExamplesvdhX
    Demonstration directive to illustrate the Apache module +API
    ExpiresActive On|OffsvdhE
    Enables generation of Expires +headers
    ExpiresByType MIME-type +<code>secondssvdhE
    Value of the Expires header configured +by MIME type
    ExpiresDefault <code>secondssvdhE
    Default algorithm for calculating expiration time
    ExtendedStatus On|Off Off sB
    Keep track of extended status information for each +request
    ExtFilterDefine filtername parameterssE
    Define an external filter
    ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
    Configure mod_ext_filter options
    FallbackResource disabled | local-urlsvdhB
    Define a default URL for requests that don't map to a file
    FileETag component ... INode MTime Size svdhC
    File attributes used to create the ETag +HTTP response header for static files
    <Files filename> ... </Files>svdhC
    Contains directives that apply to matched +filenames
    <FilesMatch regex> ... </FilesMatch>svdhC
    Contains directives that apply to regular-expression matched +filenames
    FilterChain [+=-@!]filter-name ...svdhB
    Configure the filter chain
    FilterDeclare filter-name [type]svdhB
    Declare a smart filter
    FilterProtocol filter-name [provider-name] + proto-flagssvdhB
    Deal with correct HTTP protocol handling
    FilterProvider filter-name provider-name + [req|resp|env]=dispatch matchsvdhB
    Register a content filter
    FilterTrace filter-name levelsvdB
    Get debug/diagnostic information from + mod_filter
    ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
    Action to take if a single acceptable document is not +found
    ForceType MIME-type|NonedhC
    Forces all matching files to be served with the specified +MIME content-type
    ForensicLog filename|pipesvE
    Sets filename of the forensic log
    GprofDir /tmp/gprof/|/tmp/gprof/%svC
    Directory to write gmon.out profiling data to.
    GracefulShutDownTimeout secondssM
    Specify a timeout after which a gracefully shutdown server +will exit.
    Group unix-group #-1 sM
    Group under which the server will answer +requests
    Header [condition] set|append|merge|add|unset|echo|edit +header [value] [replacement] +[early|env=[!]variable]svdhE
    Configure HTTP response headers
    HeaderName filenamesvdhB
    Name of the file that will be inserted at the top +of the index listing
    HostnameLookups On|Off|Double Off svdC
    Enables DNS lookups on client IP addresses
    HttpProtocolOptions [Strict|Unsafe] [RegisteredMethods|LenientMethods] + [Allow0.9|Require1.0] Strict LenientMetho +svC
    Modify restrictions on HTTP Request Messages
    IdentityCheck On|Off Off svdE
    Enables logging of the RFC 1413 identity of the remote +user
    IdentityCheckTimeout seconds 30 svdE
    Determines the timeout duration for ident requests
    <IfDefine [!]parameter-name> ... + </IfDefine>svdhC
    Encloses directives that will be processed only +if a test is true at startup
    <IfModule [!]module-file|module-identifier> ... + </IfModule>svdhC
    Encloses directives that are processed conditional on the +presence or absence of a specific module
    <IfVersion [[!]operator] version> ... +</IfVersion>svdhE
    contains version dependent configuration
    ImapBase map|referer|URL http://servername/ svdhB
    Default base for imagemap files
    ImapDefault error|nocontent|map|referer|URL nocontent svdhB
    Default action when an imagemap is called with coordinates +that are not explicitly mapped
    ImapMenu none|formatted|semiformatted|unformattedsvdhB
    Action if no coordinates are given when calling +an imagemap
    Include file-path|directory-pathsvdC
    Includes other configuration files from within +the server configuration files
    IndexHeadInsert "markup ..."svdhB
    Inserts text in the HEAD section of an index page.
    IndexIgnore file [file] ... "." svdhB
    Adds to the list of files to hide when listing +a directory
    IndexOptions [+|-]option [[+|-]option] +...svdhB
    Various configuration settings for directory +indexing
    IndexOrderDefault Ascending|Descending +Name|Date|Size|Description Ascending Name svdhB
    Sets the default ordering of the directory index
    IndexStyleSheet url-pathsvdhB
    Adds a CSS stylesheet to the directory index
    ISAPIAppendLogToErrors on|off off svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the error log
    ISAPIAppendLogToQuery on|off on svdhB
    Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the query field
    ISAPICacheFile file-path [file-path] +...svB
    ISAPI .dll files to be loaded at startup
    ISAPIFakeAsync on|off off svdhB
    Fake asynchronous support for ISAPI callbacks
    ISAPILogNotSupported on|off off svdhB
    Log unsupported feature requests from ISAPI +extensions
    ISAPIReadAheadBuffer size 49152 svdhB
    Size of the Read Ahead Buffer sent to ISAPI +extensions
    KeepAlive On|Off On svC
    Enables HTTP persistent connections
    KeepAliveTimeout seconds 5 svC
    Amount of time the server will wait for subsequent +requests on a persistent connection
    LanguagePriority MIME-lang [MIME-lang] +...svdhB
    The precendence of language variants for cases where +the client does not express a preference
    LDAPCacheEntries number 1024 sE
    Maximum number of entries in the primary LDAP cache
    LDAPCacheTTL seconds 600 sE
    Time that cached items remain valid
    LDAPConnectionTimeout secondssE
    Specifies the socket connection timeout in seconds
    LDAPOpCacheEntries number 1024 sE
    Number of entries used to cache LDAP compare +operations
    LDAPOpCacheTTL seconds 600 sE
    Time that entries in the operation cache remain +valid
    LDAPSharedCacheFile directory-path/filenamesE
    Sets the shared memory cache file
    LDAPSharedCacheSize bytes 500000 sE
    Size in bytes of the shared-memory cache
    LDAPTrustedClientCert type directory-path/filename/nickname [password]svdhE
    Sets the file containing or nickname referring to a per +connection client certificate. Not all LDAP toolkits support per +connection client certificates.
    LDAPTrustedGlobalCert type directory-path/filename [password]sE
    Sets the file or database containing global trusted +Certificate Authority or global client certificates
    LDAPTrustedMode typesvE
    Specifies the SSL/TLS mode to be used when connecting to an LDAP server.
    LDAPVerifyServerCert On|Off On sE
    Force server certificate verification
    <Limit method [method] ... > ... + </Limit>svdhC
    Restrict enclosed access controls to only certain HTTP +methods
    <LimitExcept method [method] ... > ... + </LimitExcept>svdhC
    Restrict access controls to all HTTP methods +except the named ones
    LimitInternalRecursion number [number] 10 svC
    Determine maximum number of internal redirects and nested +subrequests
    LimitRequestBody bytes 0 svdhC
    Restricts the total size of the HTTP request body sent +from the client
    LimitRequestFields number 100 svC
    Limits the number of HTTP request header fields that +will be accepted from the client
    LimitRequestFieldSize bytes 8190 svC
    Limits the size of the HTTP request header allowed from the +client
    LimitRequestLine bytes 8190 svC
    Limit the size of the HTTP request line that will be accepted +from the client
    LimitXMLRequestBody bytes 1000000 svdhC
    Limits the size of an XML-based request body
    Listen [IP-address:]portnumber [protocol]sM
    IP addresses and ports that the server +listens to
    ListenBacklog backlogsM
    Maximum length of the queue of pending connections
    LoadFile filename [filename] ...sE
    Link in the named object file or library
    LoadModule module filenamesE
    Links in the object file or library, and adds to the list +of active modules
    <Location + URL-path|URL> ... </Location>svC
    Applies the enclosed directives only to matching +URLs
    <LocationMatch + regex> ... </LocationMatch>svC
    Applies the enclosed directives only to regular-expression +matching URLs
    LockFile filename logs/accept.lock sM
    Location of the accept serialization lock file
    LogFormat format|nickname +[nickname] "%h %l %u %t \"%r\" +svB
    Describes a format for use in a log file
    LogLevel level warn svC
    Controls the verbosity of the ErrorLog
    MaxClients numbersM
    Maximum number of connections that will be processed +simultaneously
    MaxKeepAliveRequests number 100 svC
    Number of requests allowed on a persistent +connection
    MaxMemFree KBytes 0 sM
    Maximum amount of memory that the main allocator is allowed +to hold without calling free()
    MaxRanges default | unlimited | none | number-of-ranges 200 svdC
    Number of ranges allowed before returning the complete +resource
    MaxRequestsPerChild number 10000 sM
    Limit on the number of requests that an individual child server +will handle during its life
    MaxRequestsPerThread number 0 sM
    Limit on the number of requests that an individual thread +will handle during its life
    MaxSpareServers number 10 sM
    Maximum number of idle child server processes
    MaxSpareThreads numbersM
    Maximum number of idle threads
    MaxThreads number 2048 sM
    Set the maximum number of worker threads
    MCacheMaxObjectCount value 1009 sE
    The maximum number of objects allowed to be placed in the +cache
    MCacheMaxObjectSize bytes 10000 sE
    The maximum size (in bytes) of a document allowed in the +cache
    MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sE
    Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
    MCacheMinObjectSize bytes 1 sE
    The minimum size (in bytes) of a document to be allowed in the +cache
    MCacheRemovalAlgorithm LRU|GDSF GDSF sE
    The algorithm used to select documents for removal from the +cache
    MCacheSize KBytes 100 sE
    The maximum amount of memory used by the cache in +KBytes
    MergeTrailers [on|off] off svC
    Determines whether trailers are merged into headers
    MetaDir directory .web svdhE
    Name of the directory to find CERN-style meta information +files
    MetaFiles on|off off svdhE
    Activates CERN meta-file processing
    MetaSuffix suffix .meta svdhE
    File name suffix for the file containg CERN-style +meta information
    MimeMagicFile file-pathsvE
    Enable MIME-type determination based on file contents +using the specified magic file
    MinSpareServers number 5 sM
    Minimum number of idle child server processes
    MinSpareThreads numbersM
    Minimum number of idle threads available to handle request +spikes
    MMapFile file-path [file-path] ...sX
    Map a list of files into memory at startup time
    ModMimeUsePathInfo On|Off Off dB
    Tells mod_mime to treat path_info +components as part of the filename
    MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters] NegotiatedOnly svdhB
    The types of files that will be included when searching for +a matching file with MultiViews
    NameVirtualHost addr[:port]sC
    Designates an IP address for name-virtual +hosting
    NoProxy host [host] ...svE
    Hosts, domains, or networks that will be connected to +directly
    NWSSLTrustedCerts filename [filename] ...sB
    List of additional client certificates
    NWSSLUpgradeable [IP-address:]portnumbersB
    Allows a connection to be upgraded to an SSL connection upon request
    Options + [+|-]option [[+|-]option] ... All svdhC
    Configures what features are available in a particular +directory
    Order ordering Deny,Allow dhB
    Controls the default access state and the order in which +Allow and Deny are +evaluated.
    PassEnv env-variable [env-variable] +...svdhB
    Passes environment variables from the shell
    PidFile filename logs/httpd.pid sM
    File where the server records the process ID +of the daemon
    Protocol protocolsvC
    Protocol for a listening socket
    ProtocolEcho On|Off Off svX
    Turn the echo server on or off
    <Proxy wildcard-url> ...</Proxy>svE
    Container for directives applied to proxied resources
    ProxyBadHeader IsError|Ignore|StartBody IsError svE
    Determines how to handle bad header lines in a +response
    ProxyBlock *|word|host|domain +[word|host|domain] ...svE
    Words, hosts, or domains that are banned from being +proxied
    ProxyDomain DomainsvE
    Default domain name for proxied requests
    ProxyErrorOverride On|Off Off svE
    Override error pages for proxied content
    ProxyFtpDirCharset character set ISO-8859-1 svdE
    Define the character set for proxied FTP listings
    ProxyIOBufferSize bytes 8192 svE
    Determine size of internal data throughput buffer
    <ProxyMatch regex> ...</ProxyMatch>svE
    Container for directives applied to regular-expression-matched +proxied resources
    ProxyMaxForwards number -1 svE
    Maximium number of proxies that a request can be forwarded +through
    ProxyPass [path] !|url [key=value +[key=value ...]] [nocanon] [interpolate]svdE
    Maps remote servers into the local server URL-space
    ProxyPassInterpolateEnv On|Off Off svdE
    Enable Environment Variable interpolation in Reverse Proxy configurations
    ProxyPassMatch [regex] !|url [key=value + [key=value ...]]svdE
    Maps remote servers into the local server URL-space using regular expressions
    ProxyPassReverse [path] url +[interpolate]svdE
    Adjusts the URL in HTTP response headers sent from a reverse +proxied server
    ProxyPassReverseCookieDomain internal-domain +public-domain [interpolate]svdE
    Adjusts the Domain string in Set-Cookie headers from a reverse- +proxied server
    ProxyPassReverseCookiePath internal-path +public-path [interpolate]svdE
    Adjusts the Path string in Set-Cookie headers from a reverse- +proxied server
    ProxyPreserveHost On|Off Off svE
    Use incoming Host HTTP request header for proxy +request
    ProxyReceiveBufferSize bytes 0 svE
    Network buffer size for proxied HTTP and FTP +connections
    ProxyRemote match remote-serversvE
    Remote proxy used to handle certain requests
    ProxyRemoteMatch regex remote-serversvE
    Remote proxy used to handle requests matched by regular +expressions
    ProxyRequests On|Off Off svE
    Enables forward (standard) proxy requests
    ProxySCGIInternalRedirect On|Off On svdE
    Enable or disable internal redirect responses from the +backend
    ProxySCGISendfile On|Off|Headername Off svdE
    Enable evaluation of X-Sendfile pseudo response +header
    ProxySet url key=value [key=value ...]dE
    Set various Proxy balancer or member parameters
    ProxyStatus Off|On|Full Off svE
    Show Proxy LoadBalancer status in mod_status
    ProxyTimeout secondssvE
    Network timeout for proxied requests
    ProxyVia On|Off|Full|Block Off svE
    Information provided in the Via HTTP response +header for proxied requests
    ReadmeName filenamesvdhB
    Name of the file that will be inserted at the end +of the index listing
    ReceiveBufferSize bytes 0 sM
    TCP receive buffer size
    Redirect [status] URL-path +URLsvdhB
    Sends an external redirect asking the client to fetch +a different URL
    RedirectMatch [status] regex +URLsvdhB
    Sends an external redirect based on a regular expression match +of the current URL
    RedirectPermanent URL-path URLsvdhB
    Sends an external permanent redirect asking the client to fetch +a different URL
    RedirectTemp URL-path URLsvdhB
    Sends an external temporary redirect asking the client to fetch +a different URL
    RegisterHttpMethod method [method [...]]sC
    Register non-standard HTTP methods
    RemoveCharset extension [extension] +...vdhB
    Removes any character set associations for a set of file +extensions
    RemoveEncoding extension [extension] +...vdhB
    Removes any content encoding associations for a set of file +extensions
    RemoveHandler extension [extension] +...vdhB
    Removes any handler associations for a set of file +extensions
    RemoveInputFilter extension [extension] +...vdhB
    Removes any input filter associations for a set of file +extensions
    RemoveLanguage extension [extension] +...vdhB
    Removes any language associations for a set of file +extensions
    RemoveOutputFilter extension [extension] +...vdhB
    Removes any output filter associations for a set of file +extensions
    RemoveType extension [extension] +...vdhB
    Removes any content type associations for a set of file +extensions
    RequestHeader set|append|merge|add|unset|edit header +[value] [replacement] [early|env=[!]variable]svdhE
    Configure HTTP request headers
    RequestReadTimeout +[header=timeout[[-maxtimeout],MinRate=rate] +[body=timeout[[-maxtimeout],MinRate=rate] +svE
    Set timeout values for receiving request headers and body from client. +
    Require entity-name [entity-name] ...dhC
    Selects which authenticated users can access +a resource
    RewriteBase URL-pathdhE
    Sets the base URL for per-directory rewrites
    RewriteCond + TestString CondPatternsvdhE
    Defines a condition under which rewriting will take place +
    RewriteEngine on|off off svdhE
    Enables or disables runtime rewriting engine
    RewriteLock file-pathsE
    Sets the name of the lock file used for RewriteMap +synchronization
    RewriteLog file-path|pipesvE
    Sets the name of the file used for logging rewrite engine +processing
    RewriteLogLevel Level 0 svE
    Sets the verbosity of the log file used by the rewrite +engine
    RewriteMap MapName MapType:MapSource +svE
    Defines a mapping function for key-lookup
    RewriteOptions OptionssvdhE
    Sets some special options for the rewrite engine
    RewriteRule + Pattern Substitution [flags]svdhE
    Defines rules for the rewriting engine
    RLimitCPU seconds|max [seconds|max]svdhC
    Limits the CPU consumption of processes launched +by Apache children
    RLimitMEM bytes|max [bytes|max]svdhC
    Limits the memory consumption of processes launched +by Apache children
    RLimitNPROC number|max [number|max]svdhC
    Limits the number of processes that can be launched by +processes launched by Apache children
    Satisfy Any|All All dhC
    Interaction between host-level access control and +user authentication
    ScoreBoardFile file-path logs/apache_runtime +sM
    Location of the file used to store coordination data for +the child processes
    Script method cgi-scriptsvdB
    Activates a CGI script for a particular request +method.
    ScriptAlias URL-path +file-path|directory-pathsvB
    Maps a URL to a filesystem location and designates the +target as a CGI script
    ScriptAliasMatch regex +file-path|directory-pathsvB
    Maps a URL to a filesystem location using a regular expression +and designates the target as a CGI script
    ScriptInterpreterSource Registry|Registry-Strict|Script Script svdhC
    Technique for locating the interpreter for CGI +scripts
    ScriptLog file-pathsvB
    Location of the CGI script error logfile
    ScriptLogBuffer bytes 1024 svB
    Maximum amount of PUT or POST requests that will be recorded +in the scriptlog
    ScriptLogLength bytes 10385760 svB
    Size limit of the CGI script logfile
    ScriptSock file-path logs/cgisock sB
    The filename prefix of the socket to use for communication with +the cgi daemon
    SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sB
    Enables SSL encryption for the specified port
    SeeRequestTail On|Off Off sB
    Determine if mod_status displays the first 63 characters +of a request or the last 63, assuming the request itself is greater than +63 chars.
    SendBufferSize bytes 0 sM
    TCP buffer size
    ServerAdmin email-address|URLsvC
    Email address that the server includes in error +messages sent to the client
    ServerAlias hostname [hostname] ...vC
    Alternate names for a host used when matching requests +to name-virtual hosts
    ServerLimit numbersM
    Upper limit on configurable number of processes
    ServerName [scheme://]fully-qualified-domain-name[:port]svC
    Hostname and port that the server uses to identify +itself
    ServerPath URL-pathvC
    Legacy URL pathname for a name-based virtual host that +is accessed by an incompatible browser
    ServerRoot directory-path /usr/local/apache sC
    Base directory for the server installation
    ServerSignature On|Off|EMail Off svdhC
    Configures the footer on server-generated documents
    ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
    Configures the Server HTTP response +header
    SetEnv env-variable [value]svdhB
    Sets environment variables
    SetEnvIf attribute + regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request +
    SetEnvIfNoCase attribute regex + [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
    Sets environment variables based on attributes of the request +without respect to case
    SetHandler handler-name|NonesvdhC
    Forces all matching files to be processed by a +handler
    SetInputFilter filter[;filter...]svdhC
    Sets the filters that will process client requests and POST +input
    SetOutputFilter filter[;filter...]svdhC
    Sets the filters that will process responses from the +server
    SSIEnableAccess on|off off dhB
    Enable the -A flag during conditional flow control processing.
    SSIEndTag tag "-->" svB
    String that ends an include element
    SSIErrorMsg message "[an error occurred +svdhB
    Error message displayed when there is an SSI +error
    SSIETag on|off off dhB
    Controls whether ETags are generated by the server.
    SSILastModified on|off off dhB
    Controls whether Last-Modified headers are generated by the +server.
    SSIStartTag tag "<!--#" svB
    String that starts an include element
    SSITimeFormat formatstring "%A, %d-%b-%Y %H:%M +svdhB
    Configures the format in which date strings are +displayed
    SSIUndefinedEcho string "(none)" svdhB
    String displayed when an unset variable is echoed
    SSLCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for Client Auth
    SSLCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +Client Auth
    SSLCADNRequestFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for defining acceptable CA names
    SSLCADNRequestPath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +defining acceptable CA names
    SSLCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +Client Auth
    SSLCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +Client Auth
    SSLCertificateChainFile file-pathsvE
    File of PEM-encoded Server CA Certificates
    SSLCertificateFile file-pathsvE
    Server PEM-encoded X.509 Certificate file
    SSLCertificateKeyFile file-pathsvE
    Server PEM-encoded Private Key file
    SSLCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +handshake
    SSLCompression on|off off svE
    Enable compression on the SSL level
    SSLCryptoDevice engine builtin sE
    Enable use of a cryptographic hardware accelerator
    SSLEngine on|off|optional off svE
    SSL Engine Operation Switch
    SSLFIPS on|off off sE
    SSL FIPS mode Switch
    SSLHonorCipherOrder flagsvE
    Option to prefer the server's cipher preference order
    SSLInsecureRenegotiation flag off svE
    Option to enable support for insecure renegotiation
    SSLMutex type none sE
    Semaphore for internal mutual exclusion of +operations
    SSLOptions [+|-]option ...svdhE
    Configure various SSL engine run-time options
    SSLPassPhraseDialog type builtin sE
    Type of pass phrase dialog for encrypted private +keys
    SSLProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors
    SSLProxyCACertificateFile file-pathsvE
    File of concatenated PEM-encoded CA Certificates +for Remote Server Auth
    SSLProxyCACertificatePath directory-pathsvE
    Directory of PEM-encoded CA Certificates for +Remote Server Auth
    SSLProxyCARevocationFile file-pathsvE
    File of concatenated PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCARevocationPath directory-pathsvE
    Directory of PEM-encoded CA CRLs for +Remote Server Auth
    SSLProxyCheckPeerCN on|off off svE
    Whether to check the remote server certificates CN field +
    SSLProxyCheckPeerExpire on|off off svE
    Whether to check if remote server certificate is expired +
    SSLProxyCipherSuite cipher-spec ALL:!ADH:RC4+RSA:+H +svdhE
    Cipher Suite available for negotiation in SSL +proxy handshake
    SSLProxyEngine on|off off svE
    SSL Proxy Engine Operation Switch
    SSLProxyMachineCertificateChainFile filenamesE
    File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate
    SSLProxyMachineCertificateFile filenamesE
    File of concatenated PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyMachineCertificatePath directorysE
    Directory of PEM-encoded client certificates and keys to be used by the proxy
    SSLProxyProtocol [+|-]protocol ... all svE
    Configure usable SSL protocol flavors for proxy usage
    SSLProxyVerify level none svE
    Type of remote server Certificate verification
    SSLProxyVerifyDepth number 1 svE
    Maximum depth of CA Certificates in Remote Server +Certificate verification
    SSLRandomSeed context source +[bytes]sE
    Pseudo Random Number Generator (PRNG) seeding +source
    SSLRenegBufferSize bytes 131072 dhE
    Set the size for the SSL renegotiation buffer
    SSLRequire expressiondhE
    Allow access only when an arbitrarily complex +boolean expression is true
    SSLRequireSSLdhE
    Deny access when SSL is not used for the +HTTP request
    SSLSessionCache type none sE
    Type of the global/inter-process SSL Session +Cache
    SSLSessionCacheTimeout seconds 300 svE
    Number of seconds before an SSL session expires +in the Session Cache
    SSLSessionTicketKeyFile file-pathsvE
    Persistent encryption/decryption key for TLS session tickets
    SSLSessionTickets on|off on svE
    Enable or disable use of TLS session tickets
    SSLStrictSNIVHostCheck on|off off svE
    Whether to allow non SNI clients to access a name based virtual +host. +
    SSLUserName varnamesdhE
    Variable name to determine user name
    SSLVerifyClient level none svdhE
    Type of Client Certificate verification
    SSLVerifyDepth number 1 svdhE
    Maximum depth of CA Certificates in Client +Certificate verification
    StartServers numbersM
    Number of child server processes created at startup
    StartThreads numbersM
    Number of threads created on startup
    Substitute s/pattern/substitution/[infq]dhE
    Pattern to filter the response content
    SubstituteInheritBefore on|off off dhE
    Change the merge order of inherited patterns
    Suexec On|OffsC
    Enable or disable the suEXEC feature
    SuexecUserGroup User GroupsvE
    User and group for CGI programs to run as
    ThreadLimit numbersM
    Sets the upper limit on the configurable number of threads +per child process
    ThreadsPerChild numbersM
    Number of threads created by each child process
    ThreadStackSize sizesM
    The size in bytes of the stack used by threads handling +client connections
    TimeOut seconds 300 svC
    Amount of time the server will wait for +certain events before failing a request
    TraceEnable [on|off|extended] on svC
    Determines the behaviour on TRACE +requests
    TransferLog file|pipesvB
    Specify location of a log file
    TypesConfig file-path conf/mime.types sB
    The location of the mime.types file
    UnsetEnv env-variable [env-variable] +...svdhB
    Removes variables from the environment
    UseCanonicalName On|Off|DNS Off svdC
    Configures how the server determines its own name and +port
    UseCanonicalPhysicalPort On|Off Off svdC
    Configures how the server determines its own name and +port
    User unix-userid #-1 sM
    The userid under which the server will answer +requests
    UserDir directory-filename [directory-filename] ... +svB
    Location of the user-specific directories
    VirtualDocumentRoot interpolated-directory|none none svE
    Dynamically configure the location of the document root +for a given virtual host
    VirtualDocumentRootIP interpolated-directory|none none svE
    Dynamically configure the location of the document root +for a given virtual host
    <VirtualHost + addr[:port] [addr[:port]] + ...> ... </VirtualHost>sC
    Contains directives that apply only to a specific +hostname or IP address
    VirtualScriptAlias interpolated-directory|none none svE
    Dynamically configure the location of the CGI directory for +a given virtual host
    VirtualScriptAliasIP interpolated-directory|none none svE
    Dynamically configure the location of the cgi directory for +a given virtual host
    Win32DisableAcceptExsM
    Use accept() rather than AcceptEx() to accept network connections
    XBitHack on|off|full off svdhB
    Parse SSI directives in files with the execute bit +set
    +
    +

    可用语言:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    top

    评论

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/quickreference.xml b/docs/manual/mod/quickreference.xml index f3f02002ccb..8ffac22cae1 100644 --- a/docs/manual/mod/quickreference.xml +++ b/docs/manual/mod/quickreference.xml @@ -4,12 +4,12 @@ + + + - $B%G%#%l%/%F%#%V(B $B%/%$%C%/%j%U%!%l%s%9(B + ディレクティブ クイックリファレンス -

    $B%G%#%l%/%F%#%V(B $B%/%$%C%/%j%U%!%l%s%9$G$O!"3F(B Apache $B@_Dj%G%#%l%/%F%#%V$N(B - $B;HMQJ}K!!"%G%U%)%k%HCM!"%9%F!<%?%9$H%3%s%F%-%9%H$r<($7$F$$$^$9!#(B - $B3F%G%#%l%/%F%#%V$N!"$h$j>\$7$$>pJs$K4X$7$F$O(B - $B%G%#%l%/%F%#%V<-=q(B$B$r(B - $B$4Mw2<$5$$!#(B

    - -

    $BBh(B 1 $BNsL\$O%G%#%l%/%F%#%V$NL>A0$H;HMQJ}K!$G$9!#(B - $BBh(B 2 $BNsL\$O(B ($B$b$7$"$l$P(B) $B%G%U%)%k%HCM$H$J$C$F$$$^$9!#(B - $B%G%U%)%k%HCM$,D9$9$.$FI=<($7$-$l$J$$>l9g$O!":G=i$NJ8;zNs$N8e$m$K(B - $B!V(B + $B!W$,B3$-$^$9!#(B

    - -

    $BBh(B 3, 4 $BNs$O!"2<$NI=$NCm$C$F!"(B - $B%G%#%l%/%F%#%V$N;HMQ$G$-$k%3%s%F%-%9%H$H!"(B - $B%G%#%l%/%F%#%V$N%9%F!<%?%9$,<($5$l$F$$$^$9!#(B

    +

    ディレクティブ クイックリファレンスでは、各 Apache 設定ディレクティブの + 使用方法、デフォルト値、ステータスとコンテキストを示しています。 + 各ディレクティブの、より詳しい情報に関しては + ディレクティブ辞書を + ご覧下さい。

    + +

    第 1 列目はディレクティブの名前と使用方法です。 + 第 2 列目は (もしあれば) デフォルト値となっています。 + デフォルト値が長すぎて表示しきれない場合は、最初の文字列の後ろに + 「 + 」が続きます。

    + +

    第 3, 4 列は、下の表の注釈に従って、 + ディレクティブの使用できるコンテキストと、 + ディレクティブのステータスが示されています。

    - - - - - - - - -
    s$B%5!<%P@_Dj%U%!%$%k(B
    v$B%P!<%A%c%k%[%9%H(B
    d$B%G%#%l%/%H%j(B
    h.htaccess
    - - - - - - - - -
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    -
    diff --git a/docs/manual/mod/quickreference.xml.ko b/docs/manual/mod/quickreference.xml.ko index e0499360702..0ad5a2d8837 100644 --- a/docs/manual/mod/quickreference.xml.ko +++ b/docs/manual/mod/quickreference.xml.ko @@ -1,15 +1,15 @@ - + - + quickreference /mod/ .. @@ -8,8 +9,11 @@ de en - es - ja - ko + es + ja + ko + ru + tr + zh-cn diff --git a/docs/manual/mod/quickreference.xml.ru b/docs/manual/mod/quickreference.xml.ru new file mode 100644 index 00000000000..44f284d80dd --- /dev/null +++ b/docs/manual/mod/quickreference.xml.ru @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + ëÒÁÔËÉÊ ÓÐÒÁ×ÏÞÎÉË ÐÏ ÄÉÒÅËÔÉ×ÁÍ + +

    ÷ ËÒÁÔËÏÍ ÓÐÒÁ×ÏÞÎÉËÅ ÐÏ ÄÉÒÅËÔÉ×ÁÍ ×Ù ÎÁÊģÔÅ ÉÎÆÏÒÍÁÃÉÀ + Ï ÔÏÍ, ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÔÕ ÉÌÉ ÉÎÕÀ ÄÉÒÅËÔÉ×Õ, ţ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÓÔÁÔÕÓ + É ËÏÎÔÅËÓÔ. äÌÑ ÒÁÓÛÉÆÒÏ×ËÉ ÐÏÎÑÔÉÊ «ÓÔÁÔÕÓ» É «ËÏÎÔÅËÓÔ», ÏÂÒÁÔÉÔÅÓØ + Ë óÌÏ×ÁÒÀ.

    + +

    ÷ ÐÅÒ×ÏÊ ËÏÌÏÎËÅ ÐÒÉ×ÏÄÉÔÓÑ ÎÁÚ×ÁÎÉÅ ÄÉÒÅËÔÉ×Ù É ÏÐÉÓÁÎÉÅ ţ + ÉÓÐÏÌØÚÏ×ÁÎÉÑ. ÷Ï ×ÔÏÒÏÊ - ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÅÓÌÉ ÔÁËÏ×ÏÅ + ÅÓÔØ Õ ÄÉÒÅËÔÉ×Ù. åÓÌÉ ÜÔÏ ÚÎÁÞÅÎÉÅ ÓÌÉÛËÏÍ ×ÅÌÉËÏ, ÔÏ ÐÏÓÌÅ + ÐÅÒ×ÙÈ ÂÕË× ÉÄÅÔ ÚÎÁޣË «+».

    + +

    ÷ ÔÒÅÔØÅÊ É ÞÅÔףÒÔÏÊ ËÏÌÏÎËÁÈ ÄÁÀÔÓÑ ÚÎÁÞÅÎÉÑ ËÏÎÔÅËÓÔÁ, × + ËÏÔÏÒÏÍ ÄÁÎÎÁÑ ÄÉÒÅËÔÉ×Á ÉÍÅÅÔ ÓÍÙÓÌ (ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ), É + ţ ÓÔÁÔÕÓ. ÷ÓÅ ÓÏËÒÁÝÅÎÉÑ, ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÉ ÜÔÏÍ, ÒÁÓÛÉÆÒÏ×Ù×ÁÀÔÓÑ + × ÓÌÅÄÕÀÝÅÊ ÔÁÂÌÉÃÅ.

    +
    + + + + + + + + +
    sserver config
    vvirtual host
    ddirectory
    h.htaccess
    + + + + + + + + +
    CCore
    MMPM
    BBase
    EExtension
    XExperimental
    +
    +
    diff --git a/docs/manual/mod/quickreference.xml.tr b/docs/manual/mod/quickreference.xml.tr new file mode 100644 index 00000000000..9ed29e26c60 --- /dev/null +++ b/docs/manual/mod/quickreference.xml.tr @@ -0,0 +1,44 @@ + + + + + + + + + + Hızlı Yönerge Kılavuzu + +

    Bu hızlı yönerge kılavuzunda Apache yapılandırma yönergelerinin kullanımı, + öntanımlı değerleri, durumu ve bağlamı gösterilmiştir. Bunların her biri + hakkında ayrıntılı bilgi almak için + Yönerge Sözlüğüne bakınız.

    + +

    İlk sütunda yönergenin ismi ve kullanımı belirtilmiştir. İkinci sütunda + yönergenin varsa öntanımlı değeri gösterilmiştir. Eğer öntanımlı değer + sütuna sığmayacak kadar uzunsa sığmayan kısım atılıp yerine “+” imi + konmuştur.

    + +

    Aşağıda sağdaki gösterge tablolarına uygun olarak, üçüncü sütunda + yönergenin kullanımına izin verilen bağlamlar, dördüncü sütunda ise + yönergenin durumu gösterilmiştir.

    +
    +
    diff --git a/docs/manual/mod/quickreference.xml.zh-cn b/docs/manual/mod/quickreference.xml.zh-cn new file mode 100644 index 00000000000..aff99670597 --- /dev/null +++ b/docs/manual/mod/quickreference.xml.zh-cn @@ -0,0 +1,34 @@ + + + + + + + + + 指令快速索引 + +

    指令快速索引显示指令的用法,默认值,状态和上下文。要获得更多信息,请参见 描述指令的术语。

    + +

    第一列给出指令的名称与用法。第二列显示指令的默认值(如果有的话)。 + 如果因为默认值太长而被截断显示,会在最后一个字符之后显示字符 “+”。

    + +

    第三列显示允许此指令的上下文,第四列显示指令的状态。

    +
    +
    diff --git a/docs/manual/mod/threadpool.html b/docs/manual/mod/threadpool.html deleted file mode 100644 index 1e9bcdac9f7..00000000000 --- a/docs/manual/mod/threadpool.html +++ /dev/null @@ -1,3 +0,0 @@ -URI: threadpool.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/threadpool.html.en b/docs/manual/mod/threadpool.html.en deleted file mode 100644 index 10cf7db7a00..00000000000 --- a/docs/manual/mod/threadpool.html.en +++ /dev/null @@ -1,81 +0,0 @@ - - - -threadpool - Apache HTTP Server - - - - - - -
    <-
    - -
    -

    Apache MPM threadpool

    -
    -

    Available Languages:  en 

    -
    - - - -
    Description:Yet another experimental variant of the standard -worker MPM
    Status:MPM
    Module Identifier:mpm_threadpool_module
    Source File:threadpool.c
    -

    Summary

    - -

    Warning

    -

    This MPM is a developer playground and highly experimental, so it - may or may not work as expected.

    -
    - -

    This is an experimental variant of the standard worker MPM. - Rather than queuing connections like the worker MPM, the - threadpool MPM queues idle worker threads and - hands each accepted connection to the next available worker.

    - -

    The threadpool MPM can't match the performance of - the worker MPM in benchmark testing. As of 2.0.39, - some of the key load-throtting concepts from the threadpool MPM have been incorporated into the worker MPM. The threadpool code is useful - primarily as a research platform. For general-purpose use and for any - production environments, use worker instead.

    -
    - - -
    -
    -

    Available Languages:  en 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/threadpool.xml b/docs/manual/mod/threadpool.xml deleted file mode 100644 index 2c4b6f7015b..00000000000 --- a/docs/manual/mod/threadpool.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - -threadpool -Yet another experimental variant of the standard -worker MPM -MPM -threadpool.c -mpm_threadpool_module - - - Warning -

    This MPM is a developer playground and highly experimental, so it - may or may not work as expected.

    -
    - -

    This is an experimental variant of the standard worker MPM. - Rather than queuing connections like the worker MPM, the - threadpool MPM queues idle worker threads and - hands each accepted connection to the next available worker.

    - -

    The threadpool MPM can't match the performance of - the worker MPM in benchmark testing. As of 2.0.39, - some of the key load-throtting concepts from the threadpool MPM have been incorporated into the worker MPM. The threadpool code is useful - primarily as a research platform. For general-purpose use and for any - production environments, use worker instead.

    -
    - -AcceptMutex - -CoreDumpDirectory - -EnableExceptionHook - -Group - -Listen - -ListenBacklog - -SendBufferSize - -LockFile - -MaxClients - -MaxMemFree - -MaxRequestsPerChild - -MaxSpareThreads - -MinSpareThreads - -PidFile - -ScoreBoardFile - -ServerLimit - -StartServers - -ThreadLimit - -ThreadsPerChild - -ThreadStackSize - -User - - -
    diff --git a/docs/manual/mod/threadpool.xml.meta b/docs/manual/mod/threadpool.xml.meta deleted file mode 100644 index 195dbfab502..00000000000 --- a/docs/manual/mod/threadpool.xml.meta +++ /dev/null @@ -1,11 +0,0 @@ - - - - threadpool - /mod/ - .. - - - en - - diff --git a/docs/manual/mod/worker.html b/docs/manual/mod/worker.html index 1d429299de8..3a21309d37c 100644 --- a/docs/manual/mod/worker.html +++ b/docs/manual/mod/worker.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: worker.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -6,6 +8,10 @@ Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: worker.html.ja.euc-jp +URI: worker.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 + +URI: worker.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mod/worker.html.de b/docs/manual/mod/worker.html.de index a75a2da1e23..643dfce2484 100644 --- a/docs/manual/mod/worker.html.de +++ b/docs/manual/mod/worker.html.de @@ -1,52 +1,66 @@ - -worker - Apache HTTP Server +worker - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP-Server > Dokumentation > Version 2.2 > Module
    -

    Apache-MPM worker

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache-MPM worker

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - ja 

    + ja  | + tr 

    +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.
    + Multi-Thread und Multi-Prozess-Unterstützung implementiert
    Beschreibung:Multi-Processing-Modul, das einen Hybrid-Webserver mit - Multi-Thread und Multi-Prozess-Unterstützung implementiert
    Status:MPM
    Modulbezeichner:mpm_worker_module
    Quelltext-Datei:worker.c

    Zusammenfassung

    Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server - mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung - von Threads für die Bedienung von Anfragen ist er in der Lage, - eine große Anzahl von Anfragen mit weniger Systemressourcen als - ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von - der Stabilität eines Prozess-basierten Servers bei, indem er - mehrere Prozesse verfügbar hält, jeden mit etlichen Threads.

    + mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung + von Threads für die Bedienung von Anfragen ist er in der Lage, + eine große Anzahl von Anfragen mit weniger Systemressourcen als + ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von + der Stabilität eines Prozess-basierten Servers bei, indem er + mehrere Prozesse verfügbar hält, jeden mit etlichen Threads.

    Die wichtigsten Direktiven zur Steuerung des MPMs sind ThreadsPerChild, welche die Anzahl der Threads beeinflusst, die von jedem Kindprozess verwendet werden, und MaxClients, welche die maximale Gesamtzahl an Threads regelt, die gestartet werden - können.

    + können.

    -
    top

    Arbeitsweise

    -

    Ein einzelner Steuerprozess (der Elternprozess) ist für den +

    Ein einzelner Steuerprozess (der Elternprozess) ist für den Start der Kindprozesse verantwortlich. Jeder Kindprozess erstellt eine feste Anzahl von Server-Threads, wie durch die ThreadsPerChild-Direktive angegeben, sowie einen "Listener-Thread", der auf Verbindungen wartet und @@ -89,17 +101,17 @@ eintreffen.

    Der Apache versucht immer, einen Vorrat von freien oder - unbeschäftigten Threads zu verwalten, die zur Bedienung + unbeschäftigten Threads zu verwalten, die zur Bedienung hereinkommender Anfragen bereit stehen. Auf diese Weise brauchen Clients nicht auf die Erstellung eines neuen Threads oder Prozesses zu warten, bevor ihre Anfrage bedient werden kann. Die Anzahl der Prozesse, die anfangs gestartet wird, wird mit der Direktive StartServers festgelegt. - Dann, während des Betriebes, berechnet der Apache die Gesamtzahl - der unbeschäftigten Threads und forkt oder beendet Prozesse, um diese + Dann, während des Betriebes, berechnet der Apache die Gesamtzahl + der unbeschäftigten Threads und forkt oder beendet Prozesse, um diese Anzahl innerhalb der durch MinSpareThreads und MaxSpareThreads angegebenen Grenzen zu halten. Da dieser Prozess sehr selbstregulierend ist, ist es nur selten - notwendig, die Voreinstellung dieser Direktiven zu ändern. Die + notwendig, die Voreinstellung dieser Direktiven zu ändern. Die maximale Anzahl Clients, die gleichzeitig bedient werden kann (d.h. die maximale Gesamtzahl der Threads in allen Prozessen), wird mit der Direktive MaxClients @@ -107,22 +119,22 @@ MaxClients dividiert durch ThreadsPerChild.

    -

    Zwei Direktiven legen harte Limits für die Anzahl der aktiven - Kindprozesse fest und können nur geändert werden, indem der Server - komplett gestoppt und dann wieder neu gestartet wird. ServerLimit stellt die obere Grenze für - die Anzahl der aktiven Kindprozesse dar und muss größer oder - gleich dem Quotienten aus MaxClients und ThreadsPerChild sein. ThreadLimit ist die obere Grenze für - die Anzahl der Server-Threads und muss größer oder gleich - ThreadsPerChild sein. Sofern für +

    Zwei Direktiven legen harte Limits für die Anzahl der aktiven + Kindprozesse fest und können nur geändert werden, indem der Server + komplett gestoppt und dann wieder neu gestartet wird. ServerLimit stellt die obere Grenze für + die Anzahl der aktiven Kindprozesse dar und muss größer oder + gleich dem Quotienten aus MaxClients und ThreadsPerChild sein. ThreadLimit ist die obere Grenze für + die Anzahl der Server-Threads und muss größer oder gleich + ThreadsPerChild sein. Sofern für diese Direktiven keine Voreinstellungen verwendet werden, sollten sie vor allen anderen worker-Direktiven platziert werden.

    -

    Neben den normalen aktiven Kindprozessen gibt es möglicherweise noch - zusätzliche Kindprozesse, welche gerade beendet werden, wo allerdings +

    Neben den normalen aktiven Kindprozessen gibt es möglicherweise noch + zusätzliche Kindprozesse, welche gerade beendet werden, wo allerdings zumindest noch ein Server-Thread eine existierende Verbindung bearbeitet. - Obwohl die tatsächlich zu erwartende Anzahl deutlich kleiner ist, - können bis zu MaxClients - solcher Prozesse auftreten. Dieses Verhalten können Sie vermeiden, + Obwohl die tatsächlich zu erwartende Anzahl deutlich kleiner ist, + können bis zu MaxClients + solcher Prozesse auftreten. Dieses Verhalten können Sie vermeiden, indem Sie die Terminierung einzelner Kindprozesse wie folgt abschalten:

    -

    Eine typische Konfiguration der Prozess-Thread-Steuerung für - das MPM worker könnte wie folgt aussehen:

    +

    Eine typische Konfiguration der Prozess-Thread-Steuerung für + das MPM worker könnte wie folgt aussehen:

    ServerLimit 16
    @@ -143,27 +155,49 @@ ThreadsPerChild 25

    -

    Während der Elternprozess unter Unix normalerweise als - root gestartet wird, um sich an Port 80 binden zu können, +

    Während der Elternprozess unter Unix normalerweise als + root gestartet wird, um sich an Port 80 binden zu können, werden die Kindprozesse und Threads unter einem weniger privilegierten Benutzer gestartet. Die Direktiven User und Group werden dazu verwendet, die Privilegien der Apache-Kindprozesse festzulegen. Die Kindprozesse - müssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern - sollen, sollten darüber hinaus jedoch so wenig wie möglich Rechte - besitzen. Zusätzlich, solange nicht suexec verwendet wird, legen diese + müssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern + sollen, sollten darüber hinaus jedoch so wenig wie möglich Rechte + besitzen. Zusätzlich, solange nicht suexec verwendet wird, legen diese Direktiven auch die Privilegien fest, die von CGI-Skripts geerbt werden.

    MaxRequestsPerChild - bestimmt, wie häufig der Server Prozesse erneuert, indem er alte + bestimmt, wie häufig der Server Prozesse erneuert, indem er alte beendet und neue startet.

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - ja 

    -
    + ja  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/worker.html.en b/docs/manual/mod/worker.html.en index 5374e966ec9..dd4575f50ee 100644 --- a/docs/manual/mod/worker.html.en +++ b/docs/manual/mod/worker.html.en @@ -1,41 +1,49 @@ - -worker - Apache HTTP Server +worker - Apache HTTP Server Version 2.2 - - + + + +
    <-
    +Apache > HTTP Server > Documentation > Version 2.2 > Modules
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_2.html.fr b/docs/manual/new_features_2_2.html.fr new file mode 100644 index 00000000000..d1de588b218 --- /dev/null +++ b/docs/manual/new_features_2_2.html.fr @@ -0,0 +1,337 @@ + + + + + +Aperçu des nouvelles fonctionnalités dans Apache 2.2 - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Aperçu des nouvelles fonctionnalités dans Apache 2.2

    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + pt-br  | + tr 

    +
    + +

    Ce document décrit quelques uns des changements principaux entre + les versions 2.0 et 2.2 du serveur HTTP Apache. Pour les + nouvelles fonctionnalités ajoutées depuis la version 1.3, se + référer au document + 2.0 new features.

    +
    + +
    top
    +
    +

    Améliorations du système de base

    + +
    + +
    Authn/Authz
    +
    Les modules d'authentification et d'autorisation intégrés + ont été refondus. Le nouveau module + mod_authn_alias permet de + simplifier considérablement certaines configurations d'authentification. + Voir modification des noms de modules, + et + les changements pour le développeur + pour plus d'informations sur les conséquences de ces + changements pour les utilisateurs et les développeurs de + modules.
    + +
    Mise en cache
    +
    mod_cache, mod_disk_cache, et + mod_mem_cache ont subi de nombreuses + modifications, et l'on considère qu'ils ont maintenant atteint + un degré de qualité suffisant pour leur mise en production. Le programme + htcacheclean a été ajouté afin de rendre + plus propre la configuration du module + mod_disk_cache.
    + +
    Configuration
    +
    L'agencement de la configuration par défaut a été simplifié + et modularisé. Les portions de configuration qui peuvent être + utilisées pour activer des fonctionnalités courantes sont + maintenant intégrées à Apache, et peuvent être facilement + ajoutées à la configuration principale du serveur.
    + +
    Arrêt en douceur
    +
    Les modules MPM prefork, + worker et event permettent + maintenant l'arrêt en douceur de httpd + au moyen du signal + graceful-stop. + La directive GracefulShutdownTimeout a été ajoutée dans le but + de spécifier un délai optionnel, après lequel + httpd s'arrêtera quel que soit le statut + des requêtes en cours.
    + +
    Mise en oeuvre du proxy
    +
    Le nouveau module mod_proxy_balancer fournit + des services de répartition de charge (load balancing) pour le + module mod_proxy. + Le nouveau module mod_proxy_ajp ajoute le + support pour le + Protocole JServ de Apache version 1.3 qu'utilise + Apache Tomcat.
    + +
    Mise à jour de la bibliothèque des expressions rationnelles
    +
    La version 5.0 de la + Perl Compatible Regular Expression + Library (PCRE) est maintenant disponible. + httpd peut être configuré pour utiliser une + PCRE choisie en passant l'option --with-pcre au + script configure.
    + +
    Filtrage intelligent
    +
    Le module mod_filter permet la configuration + dynamique de la chaîne de filtrage en sortie. Il permet + d'insérer des filtres conditionnels basés sur toute + requête, en-tête de réponse ou variable + d'environnement, et fait table rase des problèmes de dépendances + et d'ordonnancement rencontrés avec l'architecture 2.0.
    + +
    Support des gros fichiers
    + +
    httpd supporte maintenant les fichiers d'une taille supérieure + à 2GB sur les systèmes 32 bits UNIX modernes. Le support des + corps de requête d'une taille supérieure à 2GB a aussi été + ajouté.
    + +
    Module MPM Event
    +
    Le module MPM event utilise un thread séparé + pour gérer les requêtes "Keep alive" et accepter des connexions. + Les requêtes "Keep alive" requéraient traditionnellement un + processus httpd dédié pour leur gestion. Ce processus dédié + ne pouvait plus être réutilisé jusqu'à ce que le délai "Keep Alive" + soit écoulé.
    + +
    Support des bases de données SQL
    +
    Le module

    mod_dbd, associé à l'environnement + apr_dbd, fournit le support SQL direct aux modules + qui en ont besoin. Supporte la mise en commun des connexions + dans les modules MPM threadés.

    +
    + +
    +
    top
    +
    +

    Améliorations des modules

    + +
    +
    Authn/Authz
    +
    Les modules du répertoire aaa ont été renommés et fournissent + un support amélioré pour la méthode d'authentification digest. Par exemple, mod_auth + est maintenant scindé en deux modules : mod_auth_basic et + mod_authn_file; mod_auth_dbm s'appelle maintenant + mod_authn_dbm; mod_access a été renommé en + mod_authz_host. Est également apparu le nouveau module + mod_authn_alias qui simplifie + certaines configurations d'authentification. +
    + +
    mod_authnz_ldap
    +
    Ce module est un portage de la version 2.0 du module + mod_auth_ldap vers la version 2.2 du framework + Authn/Authz. + Les nouvelles fonctionnalités comprennent l'utilisation des valeurs + d'attributs LDAP et des filtres de recherche avancés dans la + directive Require.
    + +
    mod_authz_owner
    +
    Ce nouveau module propose une gestion des droits d'accès aux ressources web selon leur appartenance + à un utilisateur au niveau du système de fichiers.
    + +
    mod_version
    +
    Ce nouveau module permet de définir des blocs de configuration activables selon le numéro de version du serveur en fonctionnement.
    + +
    mod_info
    +
    Un nouvel argument ?config a été ajouté, qui permettra d'afficher + les directives de configuration telles qu'elles sont interprétées + par Apache, y compris le nom de fichier et le numéro de ligne. + Le module montre aussi l'ordre des point d'entrée de traitement d'une + requête (request hooks) ainsi que des informations de construction + supplémentaires, d'une manière similaire à httpd -V.
    + +
    mod_ssl
    + +
    Le support de RFC 2817, a été ajouté, ce qui permet de passer d'une + connexion en clair au cryptage TLS.
    + +
    mod_imagemap
    +
    mod_imap a été renommé en mod_imagemap afin + d'éviter une confusion pour les utilisateurs.
    +
    + +
    top
    +
    +

    Améliorations des programmes

    + +
    +
    httpd
    +
    Une nouvelle option de ligne de commande -M + a été ajoutée, qui fournit la liste de tous les modules chargés + en fonction de la configuration réelle. À la différence de l'option + -l, cette liste inclut les Objets Dynamiques Partagés + (DSOs) chargés par l'intermédiaire du module + mod_so.
    +
    httxt2dbm
    +
    Un nouveau programme servant à générer des fichiers dbm à partir + d'une source texte, à utiliser avec la directive + RewriteMap + et le type de mise en correspondance dbm.
    +
    +
    top
    +
    +

    Changements pour le développeur de module

    + +
    +
    APR 1.0 API
    + +
    Apache 2.2 utilise l'API APR 1.0. Toutes les fonctions et + symboles obsolètes ont été supprimés du code de APR et + APR-Util. Pour plus de détails, consultez le + site web de APR.
    + +
    Authn/Authz
    +
    Les modules d'authentification et d'autorisation intégrés ont + été renommés de la manière suivante: +
      +
    • mod_auth_* -> Modules qui implémentent un mécanisme + d'authentification HTTP
    • +
    • mod_authn_* -> Modules qui fournissent un dispositif + d'authentification en arrière-plan
    • +
    • mod_authz_* -> Modules qui implémentent l'autorisation (ou l'accès)
    • +
    • mod_authnz_* -> Module qui implémentent à la fois + l'authentification & l'autorisation
    • +
    + L'organisation des méthodes d'authentification a également été revue, ce qui va simplifier + grandement l'ajout de nouvelles méthodes d'authentification.
    + +
    Journalisation des erreurs de connexion
    + +
    Une nouvelle fonction a été ajoutée, ap_log_cerror, + afin de pouvoir enregistrer les erreurs qui surviennent au cours de + la connexion du client. Une fois enregistré, le message inclut l'adresse IP du client.
    + +
    Ajout d'une portion de code pour la vérification de la configuration
    + +
    Un nouvel élément de traitement a été ajouté, test_config, + afin d'aider les modules qui ne veulent exécuter un code spécial + que si l'utilisateur passe le paramètre -t à + httpd.
    + +
    Définition de la taille de la pile pour les modules MPM en processus légers
    + +
    Une nouvelle directive a été ajoutée, ThreadStackSize + afin de définir la taille de la pile pour tous les modules MPM en processus légers (modules threadés). + Ceci s'avère nécessaire pour certains modules tiers sur des plateformes + dont la taille de la pile des threads par défaut est + trop petite.
    + +
    Gestion de protocole pour les filtres en sortie
    + +
    Par le passé, chaque filtre devait s'assurer que les en-têtes de + réponse corrects étaient générés dans la mesure où il les affectait. + Les filtres peuvent maintenant déléguer la gestion courante du + protocole au module + mod_filter, à l'aide des appels + ap_register_output_filter_protocol ou + ap_filter_protocol.
    + +
    Ajout d'un élément de traitement pour le processus père (monitor hook)
    +
    Ce nouvel élément de traitement permet aux modules de lancer + des jobs réguliers/planifiés au niveau du processus père + (root).
    + +
    Modifications de l'API de traitement des expressions régulières
    + +
    Le fichier d'en-tête pcreposix.h n'est plus disponible; + il a été remplacé par le nouveau fichier + d'en-tête ap_regex.h. L'implémentation + POSIX.2 regex.h exposée dans l'ancien fichier d'en-tête + est maintenant disponible dans l'espace de nommage ap_ + depuis ap_regex.h. Les appels à regcomp, + regexec, etc... peuvent être remplacés par des appels à + ap_regcomp, ap_regexec.
    + +
    Cadre d'application DBD (API pour base de données SQL)
    + +

    Avec Apache 1.x et 2.0, les modules nécessitant un processus + SQL d'arrière-plan devaient s'en charger eux-mêmes. En dehors du fait + de réinventer la roue, ceci peut s'avérer très inefficace, par + exemple lorsque plusieurs modules maintiennent chacun leurs + propres connexions.

    +

    Apache 2.1 et supérieur fournissent l'API ap_dbd qui + permet la gestion des connexions à la base de données (y compris + les stratégies optimisées pour les modules MPM threadés + et non threadés), tandis que APR 1.2 et supérieur fournissent + l'API apr_dbd qui permet l'interaction avec la + base de données.

    +

    Les nouveaux modules DEVRAIENT désormais utiliser ces APIs pour + toutes les opérations liées aux bases de données SQL. + De même, les applications existantes DEVRAIENT être mises à jour + lorsque c'est possible, soit de manière transparente ou sous forme + d'une option recommandée à leurs utilisateurs.

    +
    +
    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + pt-br  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/new_features_2_2.html.ja.utf8 b/docs/manual/new_features_2_2.html.ja.utf8 new file mode 100644 index 00000000000..58da8569e9a --- /dev/null +++ b/docs/manual/new_features_2_2.html.ja.utf8 @@ -0,0 +1,320 @@ + + + + + +Apache 2.2 の新機能の概要 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.2 の新機能の概要

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + pt-br  | + tr 

    +
    + +

    この文書では、Apache HTTP サーババージョン 2.0 と 2.2 の主な違いについて + 記述しています。 バージョン 1.3 からの新機能 については + 2.0 の新機能 の文書をご覧下さい。

    +
    + +
    top
    +
    +

    コア機能の拡張

    + +
    + +
    Authn/Authz
    +
    認証と認可のモジュールは再構成されました。 + 新しい mod_authn_alias モジュールは認証の設定を + 非常に簡単化してくれます。 モジュール名の変更 + と 開発者向けの変更 を見てください。 そこには、 + これらの変更がどのようにユーザとモジュール開発者に影響するかが + 書いてあります。
    + +
    キャッシュ
    +
    mod_cache と + mod_disk_cache そして、 + mod_mem_cache はとても多くの変更を受けていて、 + 製品としての品質があると考えられます。 + htcacheclean が導入され、 + mod_disk_cache の設定がシンプルになりました。
    + +
    設定
    +
    デフォルトの設定レイアウトは簡単化されモジュラー化されました。 + 共通して使用される機能に使われる設定の断片は、今や Apache に + 組み込まれていて、メインのサーバ設定に容易に追加することが + できます。
    + +
    緩やかな停止
    +
    最新の prefork と、worker + そして event MPM は httpd + を、 + graceful-stop + のシグナル経由で、緩やかにシャットダウンさせます。 + GracefulShutdownTimeout + のディレクティブがオプションのタイムアウトとして追加され、これに + よってhttpd は、サービス中リクエストの + 状態如何に関わらず強制終了します。
    + +
    プロキシ
    +
    新しいモジュール mod_proxy_balancer は、 + 負荷分散サービスを mod_proxy に提供します。 + 新しいモジュール mod_proxy_ajp は、 + Apache Tomcat + で使われる、 Apache JServ Protocol version 1.3 の + サポートを提供します。
    + +
    正規表現ライブラリの更新
    +
    Perl Compatible Regular Expression + Library (PCRE: Perl 互換正規表現ライブラリ) の バージョン + 5.0 を入れました。 + httpd の configure 時に + --with-pcre のフラグを渡すことで、システムが + インストールしている PCRE を利用するように設定できます。
    + +
    高機能フィルター
    +
    mod_filter は、出力フィルターの連鎖に動的な + 設定を導入しています。 + これは、2.0 アーキテクチャにある、ややこしい依存と順序問題を + 回避するために、リクエスト又はレスポンスヘッダや環境変数に + 基づいて、フィルターを条件付きで挿入できるようにしています。
    + +
    大ファイルサポート
    + +
    httpd は、最新の 32-bit Unix システムでの 2GB + より大きなファイルのサポートを取り入れてビルドされます。 + >2GB であるリクエストボディの扱いも追加されています。
    + +
    Event MPM
    +
    event MPM は、 Keep Alive のリクエストを受け付けて + 処理するのに、別個のスレッドを使います。伝統的には Keep Alive の + リクエストを扱うのに、ワーカを使用する必要がありました。 + Keep Alive のタイムアウトが来るまでは、そのワーカを再利用 + できませんでした。
    + +
    SQL データベースのサポート
    +

    mod_dbdと、 apr_dbd の枠組みを + 併用することで、SQL を必要とするモジュールを直接サポートします。 + スレッド MPM でコネクションプールをサポートします。

    +
    + +
    +
    top
    +
    +

    モジュールの拡張

    + +
    +
    Authn/Authz
    +
    aaa ディレクトリのモジュールは名前を変えられ、ダイジェスト認証を + よりよくサポートするようになっています。 + 例えば、 mod_auth は + mod_auth_basic と + mod_authn_file に分けられ、 + mod_auth_dbm は + mod_authn_dbm と名前を変更し、 + mod_access は、 + mod_authz_hostと名前を変えられています。 + また、新しいモジュール mod_authn_alias ができて、 + ある種の認証設定を簡単化します。 +
    + +
    mod_authnz_ldap
    +
    このモジュールは 2.0 モジュールmod_auth_ldap の + 2.2 Authn/Authz 枠組みへの取り込みです。 + LDAP の属性値と複雑な検索フィルターを使って + Require ディレクティブに + 取り込むことを新機能として含んでいます。
    + +
    mod_authz_owner
    +
    ファイルシステムの所有者に基づいてファイルへのアクセスを認可する + 新しいモジュールです。
    + +
    mod_version
    +
    稼働するサーバのバージョン数に基づいて設定ブロックを有効にする、 + 新しいモジュールです。
    + +
    mod_info
    +
    新しく、 ?config 引数を追加しました。 + これは、Apache によって解析される設定ディレクティブを、ファイル名と + 行数を付けて表示します。 + また、モジュールは httpd -V と同様の、リクエストフックの + 順序と追加のビルド情報を表示します。
    + +
    mod_ssl
    + +
    RFC 2817 + に従って、非暗号クリアテキストから TLS 暗号へのコネクション + グレードアップを追加しました。
    + +
    mod_imagemap
    +
    mod_imap は、ユーザの混同を避けるため、 + mod_imagemap へと名前の変更を行いました。
    +
    + +
    top
    +
    +

    プログラムの拡張

    + +
    +
    httpd
    +
    新しくコマンドラインのオプションとして -M + が追加されました。このオプションでは現在の設定で読み込まれる + 全てのモジュールがリストされます。 + -l オプションとは違って、このリストには + mod_so で読み込まれる DSO を含んでいます。
    + +
    httxt2dbm
    +
    テキストの入力から dbm ファイルを生成するのに使われる、新しい + プログラムです。 + RewriteMap + で使われる dbm のマップタイプに使用されます。
    +
    +
    top
    +
    +

    モジュール開発者向けの変更

    + +
    +
    APR 1.0 API
    + +
    Apache 2.2 は APR 1.0 API を使用します。 + 使われなくなった関数とシンボルは APR と + APR-Utilから削除されました。 + 詳細については + APR Webサイトを見てください。
    + +
    Authn/Authz
    +
    付属の認証と認可のモジュールは次のように名前を変更しました: +
      +
    • mod_auth_* -> HTTP 認証メカニズムを実装する + モジュール
    • +
    • mod_authn_* -> 認証バックエンドを提供する + モジュール
    • +
    • mod_authz_* -> 認可(又はアクセスの制御)を + 実装するモジュール
    • +
    • mod_authnz_* -> 認証と認可の両方を実装する + モジュール
    • +
    + 新しい認証バックエンド提供のスキームがあって、新しいバックエンドの + 構築を非常にやさしくしてくれます。
    + +
    接続エラーのログ
    + +
    新しい関数 ap_log_cerror が、クライアントの接続の + 際のエラーを記録するために追加されました。ログの出力メッセージには + クライアントの IP アドレスが含まれます。
    + +
    設定テストのフックを追加
    + +
    あたらしいフックである test_config が追加されました。 + これにより、ユーザが -t を httpd の + 起動時に与えた時だけに実行される、特別なコードを入れることが + できます。
    + +
    スレッド MPM's のスタックサイズ設定
    + +
    新しいディレクティブである、 ThreadStackSize が全てのスレッド MPM のスタックサイズの + 設定に追加されました。これはサードパーティのモジュールで、 + デフォルトのスタックサイズが小さいことがあるために、必要と + なりました。
    + +
    出力フィルターのプロトコルハンドリング
    + +
    過去においては、個々のフィルターは、それぞれが影響をおよぼす + ところでは、応答ヘッダを正しく生成する責任がありました。 + フィルターは、今は、共通するプロトコル管理を + ap_register_output_filter_protocol 又は + ap_filter_protocol を呼び出して + mod_filter に 委任することができます。
    + +
    モニターフックを追加
    +
    モニターフックを使って、モジュールを親 (root) のプロセスで + レギュラー又はスケジュールのジョブを実行することが + できます。
    + +
    正規表現の API を変更
    + +
    pcreposix.h ヘッダは既に削除されました; + 新しい ap_regex.h によって置き換えました。 + 古いヘッダである POSIX.2 regex.h によって + 公開されている実装は、今は、ap_regex.h の + ap_ 名前空間の下に存在します。 + regcomp と、 regexec 等々への呼び出しは + ap_regcomp, ap_regexec などに置き換え + られます。
    + +
    DBD フレームワーク (SQL データベース API)
    + +

    Apache 1.x と 2.0 では、SQL バックエンドを必要とするモジュールは + それを自分で管理する責任がありました。車輪の再発明の問題を除いても、 + これはとても非効率的なことです。例えばそれぞれのモジュールが自分 + で接続を維持しなければなりません。

    + +

    Apache 2.1 とその後は、 ap_dbd API が提供されており、 + これを使ってデータベースの接続(スレッド化された又はスレッドでない + MPM に最適化した戦略を含んで)を管理することができます。 + 一方、APR 1.2 および以降では apr_dbd API でデータ + ベースとのやりとりを提供しています。

    + +

    新しいモジュールはこれらを全ての SQL データベースの運用に利用する + べきです。現存のアプリケーションは、実現可能であればどこでもこれらを + 使うように更新され、透過的にあるいは推奨オプションとして + ユーザに提供されるべきです。

    +
    +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + pt-br  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/new_features_2_2.html.ko.euc-kr b/docs/manual/new_features_2_2.html.ko.euc-kr index e94f58448d5..469ae2fecd3 100644 --- a/docs/manual/new_features_2_2.html.ko.euc-kr +++ b/docs/manual/new_features_2_2.html.ko.euc-kr @@ -1,26 +1,36 @@ - -¾ÆÆÄġ 2.2ÀÇ »õ·οî ±â´É °³¿ä - Apache HTTP Server +¾ÆÆÄġ 2.2ÀÇ »õ·οî ±â´É °³¿ä - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¾ÆÆÄġ 2.2ÀÇ »õ·οî ±â´É °³¿ä

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ 2.2ÀÇ »õ·οî ±â´É °³¿ä

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  | + ja  |  ko  | - pt-br 

    + pt-br  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -32,7 +42,7 @@ +
    top

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  | + ja  |  ko  | - pt-br 

    -
    + pt-br  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_2.html.pt-br b/docs/manual/new_features_2_2.html.pt-br index 661b0d4419a..f684c85af01 100644 --- a/docs/manual/new_features_2_2.html.pt-br +++ b/docs/manual/new_features_2_2.html.pt-br @@ -1,40 +1,50 @@ - -Descrição das novas funcionalidades do Apache 2.2 - Servidor HTTP Apache +Descrição das novas funcionalidades do Apache 2.2 - Servidor HTTP Apache Versão 2.2 - - + + + +
    <-

    Descrição das novas funcionalidades do Apache 2.2

    +Apache > Servidor HTTP > Documentação > Versão 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Descrição das novas funcionalidades do Apache 2.2

    -

    Línguas Disponíveis:  en  | +

    Línguas Disponíveis:  en  | + fr  | + ja  |  ko  | - pt-br 

    + pt-br  | + tr 

    -
    Esta tradução pode estar desatualizada. - Verifique a versão em Inglês para mudanças recentes.
    +
    Esta tradução pode estar desatualizada. + Verifique a versão em Inglês para mudanças recentes.
    -

    Esse documento descreve algumas das principais mudanças - entre as versões 2.0 e 2.2 do Servidor HTTP Apache. - Para a lista de mudanças desde a versão 1.3, veja a página - de documentação novas funcionalidades +

    Esse documento descreve algumas das principais mudanças + entre as versões 2.0 e 2.2 do Servidor HTTP Apache. + Para a lista de mudanças desde a versão 1.3, veja a página + de documentação novas funcionalidades do Apache 2.0.

    +
  • Melhorias nos Módulos
  • +
  • Mudanças ao Desenvolvedor de Módulos
  • +
    top

    Principais Melhorias

    @@ -48,75 +58,75 @@
    ...
    Proxying
    -
    O novo módulo mod_proxy_balancer fornece - serviços de carregamento de balenceamento para mod_proxy. O novo módulo mod_proxy_ajp oferece suporte para o Protocolo Apache JServ - versão 1.3, usado pelo Apache Tomcat.
    +
    O novo módulo mod_proxy_balancer fornece + serviços de carregamento de balenceamento para mod_proxy. O novo módulo mod_proxy_ajp oferece suporte para o Protocolo Apache JServ + versão 1.3, usado pelo Apache Tomcat.
    Filtragem Inteligente (Smart Filtering)
    -
    O mod_filter introduz configuração dinâmica para - o filtro de saída de dados. Permitindo que os filtros sejam - condicionalmente inseridos, baseando-se nos cabeçalhos Request ou Response ou em variáveis do - ambiente, ele acaba com os problemas de dependências e pedidos +
    O mod_filter introduz configuração dinâmica para + o filtro de saída de dados. Permitindo que os filtros sejam + condicionalmente inseridos, baseando-se nos cabeçalhos Request ou Response ou em variáveis do + ambiente, ele acaba com os problemas de dependências e pedidos da arquitetura 2.0.
    top
    -

    Melhorias nos Módulos

    +

    Melhorias nos Módulos

    mod_authnz_ldap
    -
    Este módulo é uma migração do mod_auth_ldap, - da versão 2.0 para a estrutura 2.2 de Authn/Authz. +
    Este módulo é uma migração do mod_auth_ldap, + da versão 2.0 para a estrutura 2.2 de Authn/Authz. As novas funcionalidades incluem o uso de atributos LDAP e filtros de procura complexos na diretriz Require.
    mod_info
    Adicionado um novo argumento ?config que - mostra a configuração das diretrizes analisadas pelo - Apache, incluindo o nome do arquivo e o número da linha. - Esse módulo também mostra a ordem de todos os ganchos de - pedidos (request hooks) e informações adicionais sobre - a compilação, similar ao comando httpd -V.
    + mostra a configuração das diretrizes analisadas pelo + Apache, incluindo o nome do arquivo e o número da linha. + Esse módulo também mostra a ordem de todos os ganchos de + pedidos (request hooks) e informações adicionais sobre + a compilação, similar ao comando httpd -V.
    top
    -

    Mudanças ao Desenvolvedor de Módulos

    +

    Mudanças ao Desenvolvedor de Módulos

    API do APR 1.0
    -
    O Apache 2.2 utiliza a API do APR 1.0. Todas as funções e - símbolos antigos foram removidos do APR e +
    O Apache 2.2 utiliza a API do APR 1.0. Todas as funções e + símbolos antigos foram removidos do APR e APR-Util. Para mais detalhes, visite o Website do APR.
    -
    Registros de Erros de Conexão (logs)
    +
    Registros de Erros de Conexão (logs)
    -
    Uma nova função ap_log_cerror, foi adicionada - para registrar erros que ocorrem na conexão do cliente. - Quando documentado no diário de log, a mensagem inclui o - endereço IP do cliente.
    +
    Uma nova função ap_log_cerror, foi adicionada + para registrar erros que ocorrem na conexão do cliente. + Quando documentado no diário de log, a mensagem inclui o + endereço IP do cliente.
    -
    Adicionado Gancho de Teste de Configuração
    +
    Adicionado Gancho de Teste de Configuração
    Um novo gancho (hook), test_config foi - adicionado para auxiliar módulos que querem executar - códigos especiais apenas quando o usuário passa o - parâmetro -t para o httpd.
    + adicionado para auxiliar módulos que querem executar + códigos especiais apenas quando o usuário passa o + parâmetro -t para o httpd.
    Ajustar o Stacksize dos "Threaded MPM's"
    Uma nova diretriz chamada ThreadStackSize, foi adicionada para ajustar o tamanho das stacks em todos - os threadeds MPMs. Essa é uma prática necessário para alguns - módulos de terceiros em plataformas com tamanhos de stacks - pequenos por padrão.
    + os threadeds MPMs. Essa é uma prática necessário para alguns + módulos de terceiros em plataformas com tamanhos de stacks + pequenos por padrão. -
    Negociação de Protocolo para filtros de saída
    +
    Negociação de Protocolo para filtros de saída
    -
    No passado, todo filtro era responsável por garantir - a geração de cabeçalhos de resposta correto que os afetava. +
    No passado, todo filtro era responsável por garantir + a geração de cabeçalhos de resposta correto que os afetava. Os filtros agora podem delegar o gerenciamento de protocolos comuns para mod_filter, usando chamadas de ap_register_output_filter_protocol ou @@ -126,10 +136,34 @@
    -

    Línguas Disponíveis:  en  | +

    Línguas Disponíveis:  en  | + fr  | + ja  |  ko  | - pt-br 

    -
    + pt-br  | + tr 

    +
    top

    Comentários

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_2.html.tr.utf8 b/docs/manual/new_features_2_2.html.tr.utf8 new file mode 100644 index 00000000000..24cdc67641b --- /dev/null +++ b/docs/manual/new_features_2_2.html.tr.utf8 @@ -0,0 +1,308 @@ + + + + + +Apache 2.2’de Yeni olan Özellikler - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.2’de Yeni olan Özellikler

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + pt-br  | + tr 

    +
    + +

    Bu belgede Apache HTTP Sunucusunun 2.0 ve 2.2 sürümleri arasındaki + başlıca farklara değinilmiştir. 1.3 sürümüne göre yeni özellikler için Apache 2.0’da Yeni olan Özellikler + belgesine bakınız.

    +
    + +
    top
    +
    +

    Çekirdekteki Gelişmeler

    + +
    + +
    Authn/Authz
    +
    Mevcut kimlik doğrulama ve yetkilendirme modüllerinin iç işleyişi + yeniden düzenlendi. Yeni mod_authn_alias modülü + belli kimlik doğrulama yapılandırmalarını büyük oranda + basitleştirebilir. Bu değişikliklerin kullanıcıları ve modül + yazarlarını nasıl etkilediğini öğrenmek için modül + değişikliklerine ve geliştirici + değişikliklerine bakabilirsiniz.
    + +
    Önbellekleme
    +
    mod_cache, mod_disk_cache ve + mod_mem_cache modüllerinde büyük oranda değişikliğe + gidilerek bunlar deneysel olmaktan çıkarılıp üretim amaçlı modüller + haline getirildiler. mod_disk_cache tarafından + kullanılan disk alanının htcacheclean tarafından + düzenli aralıklarla temizlenebilmesi sağlandı.
    + +
    Yapılandırma
    +
    Öntanımlı yapılandırma basitleştirildi ve modüler bir yapıya + kavuşturuldu. Sık kullanılan ortak özellikleri etkinleştirmekte + kullanılan yapılandırmalar gruplanarak bunların Apache ile gelmesi ve + ana sunucu yapılandırılırken yapılandırmaya kolayca eklenebilmesi + sağlandı.
    + +
    Nazikçe Durdurma
    +
    prefork, worker ve + event MPM’leri artık httpd’yi graceful-stop + sinyali sayesinde nazikçe durdurabilmektedir. + httpd programının sonlandırılmasındaki gecikmelere + karşı bir önlem olarak, isteğe bağlı bir zaman aşımı belirtmeyi + mümkün kılan GracefulShutdownTimeout yönergesi + sayesinde sunum sürüyor olsa bile httpd + sonlandırılabilmektedir.
    + +
    Vekil Sunucu
    +
    Yeni mod_proxy_balancer modülü ile + mod_proxy için yük dengeleme hizmetleri sağlanmış, + yeni mod_proxy_ajp modülü ile Apache Tomcat tarafından + kullanılan Apache JServ Protokolünün 1.3 sürümü için destek + eklenmiştir.
    + +
    Düzenli İfade Kütüphanesi Güncellemesi
    +
    Apache, Perl uyumlu düzenli ifade + kütüphanesinin 5.0 sürümünü (PCRE) içermektedir. + configure betiğinin --with-pcre + seçeneği sayesinde httpd programı PCRE destekli + olarak derlenebilmektedir.
    + +
    Akıllı Süzme
    +
    mod_filter çıktı süzgeç zincirinin devingen olarak + yapılandırılmasını sağlar. Süzgeçlerin herhangi bir istek veya yanıt + başlığına veya bir ortam değişkenine dayanarak koşullu olarak + yerleştirilmesini mümkün kılar ve bunu yaparken 2.0 mimarisindeki + sorunlu bağımlılıklar ve sıralama sorunlarının da üstesinden + gelir.
    + +
    Büyük Dosya (>2GB) Desteği
    +
    httpd artık günümüzün 32 bitlik Unix + sistemlerinde bulunan 2 GB’lık büyük dosyaları destekleyecek tarzda + derlenebilmektedir. 2 GB’lık istek gövdelerine destek de ayrıca + eklenmiştir.
    + +
    Event MPM
    +
    event MPM modülü sürekli bağlantı isteklerinin + işlenmesi ve bağlantıların kabul edilmesi için ayrı bir evre + kullanır. Sürekli bağlantı (keepalive) isteklerinin işlenmesi + geleneksel olarak httpd’nin buna bir worker + adamasını gerektirirdi. Bu adanmış worker bağlantı + zaman aşımına uğrayıncaya değin tekrar kullanılamazdı.
    + +
    SQL Veritabanı Desteği
    +
    mod_dbd modülü apr_dbd arayüzü ile + birlikte, ihtiyacı olan modüllere SQL desteği sağlar. Evreli MPM’ler + için bağlantı havuzlamasını destekler.
    +
    +
    top
    +
    +

    Modüllerdeki Gelişmeler

    + +
    +
    Authn/Authz
    +
    Kimlik Doğrulama, Yetkilendirme ve Erişim Denetimi ile ilgili + modüller özetli kimlik doğrulamasına daha iyi destek sağlamak + amacıyla yeniden isimlendirildi. Örneğin, mod_auth + modülü şimdi mod_auth_basic ve + mod_authn_file diye iki modüle bölünmüştür.; + mod_auth_dbm modülünün ismi + mod_authn_dbm ve mod_access modülünün + ismi de mod_authz_host olarak değiştirilmiştir. + Ayrıca, belli kimlik doğrulama yapılandırmalarını basitleştirmek + üzere mod_authn_alias diye yeni bir modül vardır. +
    + +
    mod_authnz_ldap
    +
    Bu modül 2.0 sürümü mod_auth_ldap modülünün 2.2 + Authn/Authz arayüzüne bir uyarlamasıdır. Require yönergesine LDAP + öznitelik değerlerinin ve karmaşık arama süzgeçlerinin kullanımı gibi + yeni özellikler eklenmiştir.
    + +
    mod_authz_owner
    +
    Dosya sistemi üzerindeki dosyalara erişimi dosya sahibine göre + düzenleyebilmeyi sağlayan yeni bir modüldür.
    + +
    mod_version
    +
    Çalışan sunucunun sürüm numarasına göre belli yapılandırma + bloklarını etkinleştirebilen bir modüldür.
    + +
    mod_info
    +
    Apache tarafından çözümlenen haliyle yapılandırma yönergelerinin + gösterilmesini sağlayan yeni ?config parametresini + ekler. Modül ayrıca, httpd -V’nin yaptığı gibi ek olarak + derleme bilgisini ve tüm istek kancalarının sırasını da gösterir.
    + +
    mod_ssl
    + +
    TLS şifrelemesini HTTP/1.1 için güncelleyen RFC 2817 için destek + sağlar.
    + +
    mod_imagemap
    +
    mod_imap modülünün ismi yanlış anlamalara meydan + vermemek için mod_imagemap olarak değiştirildi.
    +
    +
    top
    +
    +

    Programlardaki Gelişmeler

    + +
    +
    httpd
    +
    Mevcut yapılandırmaya göre yüklenen modülleri listelemek için + -M diye yeni bir komut satırı seçeneği eklendi. + -l seçeneğinin aksine, bu seçenekle elde edilen liste + mod_so üzerinden yüklenen DSO’ları içerir.
    + +
    httxt2dbm
    +
    RewriteMap yönergesinde + dbm eşlem türü ile kullanmak üzere metin girdilerden DBM + dosyaları üretmek için kullanılan yeni bir program.
    +
    +
    top
    +
    +

    Modül Geliştirici Değişiklikleri

    + +
    +
    APR 1.0 Programlama Arayüzü
    + +
    Apache 2.2’de APR 1.0 API kullanılmıştır. Kullanımı önerilmeyen + tüm işlevler ve simgeler APR ve + APR-Util’den kaldırılmıştır. Ayrıntılar için APR Sitesine bakınız.
    + +
    Authn/Authz
    +
    Dağıtımla gelen kimlik doğrulama ve yetkilendirme modüllerinin + isimleri aşağıdaki gibi değiştirildi: +
      +
    • mod_auth_* -> HTTP kimlik doğrulamasını + gerçekleştiren modüller.
    • +
    • mod_authn_* -> Kimlik doğrulamasının artalanına + destek sağlayan modüller.
    • +
    • mod_authz_* -> Yetkilendirmeyi (veya erişimi) + gerçekleştiren modüller.
    • +
    • mod_authnz_* -> Kimlik doğrulama ve + yetkilendirmeyi birlikte gerçekleştiren modüller.
    • +
    + Yeni kimlik doğrulama artalanının oluşturulmasını büyük oranda + kolaylaştıran yeni bir kimlik doğrulama artalanı sağlayıcı şeması + vardır.
    + +
    Bağlantı Hatalarının Günlüklenmesi
    + +
    İstemci bağlantısında ortaya çıkan hataları günlüğe kaydetmek için + ap_log_cerror isminde yeni bir işlev eklendi. Böyle bir + durumda günlük kaydı istemcinin IP adresini içermektedir.
    + +
    Deneme Yapılandırma Kancası Eklendi
    + +
    Kullanıcı, httpd’yi sadece -t + seçeneği ile kullandığı takdirde özel kod icra edilmesini isteyen + modüllere yardımcı olmak üzere test_config diye yeni bir + kanca işlev eklendi.
    + +
    Evreli MPM’lerin Yığıt Boyutunun Ayarlanması
    + +
    Tüm evreli MPM’lerin yığıt boyutunu ayarlamak üzere ThreadStackSize isminde yeni bir + yönerge eklendi. Öntanımlı yığıt boyutunun küçük olduğu platformlarda + bazı üçüncü parti modüller tarafından buna ihtiyaç duyulmaktadır.
    + +
    Çıktı süzgeçlerinde protokoller
    + +
    Evvelce her süzgeç etkilediğini yanıt başlıklarının doğru olarak + üretilmesini sağlamak zorundaydı. Süzgeçler artık protokol yönetimini + ap_register_output_filter_protocol veya + ap_filter_protocol işlevi üzerinden + mod_filter modülüne devredebilmektedir.
    + +
    İzleme kancası eklendi
    +
    İzleme kancası, modüllerin ana (tepe) süreçteki sıradan/zamanlanmış + işlerini yapacak modülleri etkinleştirir.
    + +
    Düzenli ifade programlama aryüzü değişti
    + +
    pcreposix.h başlık dosyası artık yok; yerine + ap_regex.h dosyası geçti. Eski başlık dosyasınca ifade + olunan POSIX.2 regex.h gerçeklenimi şimdi + ap_ isim alanı altında ap_regex.h başlık + dosyasındadır. regcomp, regexec gibi + işlevlerin yerine de artık ap_regcomp, + ap_regexec işlevleri geçerlidir.
    + +
    DBD Arayüzü (SQL Veritabanı API)
    + +

    Apache 1.x ve 2.0’da, modüller, SQL veritabanlarını kendileri + yönetebilmek için sorumluluğu alacak bir SQL artalanına ihtiyaç + duymaktadır. Her biri kendi bağlantısına sahip bir sürü modül + olduğunda bu yöntem çok verimsiz olabilmektedir.

    + +

    Apache 2.1 ve sonrasında veritabanı bağlantılarını (evreli olsun + olmasın MPM’lerin eniyilenmiş stratejileri dahil) yönetmek için + ap_dbd arayüzü kullanılmıştır. APR 1.2 ve sonrasında ise + veritabanı ile etkileşim apr_dbd arayüzüyle + sağlanmıştır.

    + +

    Yeni modüllerin tüm SQL veritabanı işlemlerinde bu arayüzü + kullanmaları ÖNERİlir. Mevcut uygulamaların uygulanabildiği takdirde + hem kullanıcılarına önerilen bir seçenek olarak hem de şeffaf olarak + kullanmak üzere kendilerini güncellemeleri ÖNERİir.

    +
    +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + pt-br  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/new_features_2_2.xml b/docs/manual/new_features_2_2.xml index 75781803b0d..72762e262a9 100644 --- a/docs/manual/new_features_2_2.xml +++ b/docs/manual/new_features_2_2.xml @@ -4,12 +4,12 @@ -
    Added a support for - RFC 2817, which +
    Added a support for + RFC 2817, which allows connections to upgrade from clear text to TLS encryption.
    + +
    mod_imagemap
    +
    mod_imap has been renamed to + mod_imagemap to avoid user confusion.
    +
    -

    Apache MPM worker

    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM worker

    Available Languages:  de  |  en  | - ja 

    + ja  | + tr 

    - -
    Description:Multi-Processing Module implementing a hybrid multi-threaded multi-process web server
    Status:MPM
    Module Identifier:mpm_worker_module
    Source File:worker.c
    +Module Identifier:mpm_worker_module +Source File:worker.c

    Summary

    This Multi-Processing Module (MPM) implements a hybrid - multi-process multi-threaded server. By using threads to serve + multi-process multi-threaded server. By using threads to serve requests, it is able to serve a large number of requests with - less system resources than a process-based server. Yet it + fewer system resources than a process-based server. However, it retains much of the stability of a process-based server by keeping multiple processes available, each with many threads.

    @@ -46,7 +54,10 @@ controls the maximum total number of threads that may be launched.

    -
    top

    How it Works

    @@ -91,9 +100,9 @@ uses idle server threads, which stand ready to serve incoming requests. In this way, clients do not need to wait for a new threads or processes to be created before their requests can be - served. The number of processes that will initially launched is + served. The number of processes that will initially launch is set by the StartServers - directive. Then during operation, Apache assesses the total number + directive. During operation, Apache assesses the total number of idle threads in all processes, and forks or kills processes to keep this number within the boundaries specified by MinSpareThreads and MaxSpareThreads. Since this process is very self-regulating, it is rarely necessary to modify @@ -103,17 +112,17 @@ uses MaxClients directive. The maximum number of active child processes is determined by the MaxClients - directive divided by the + directive divided by the ThreadsPerChild directive.

    Two directives set hard limits on the number of active child processes and the number of server threads in a child process, and can only be changed by fully stopping the server and then - starting it again. ServerLimit + starting it again. ServerLimit is a hard limit on the number of active child processes, and must be greater than or equal to the MaxClients - directive divided by the + directive divided by the ThreadsPerChild directive. ThreadLimit is a hard limit of the number of server threads, and must be greater than @@ -121,21 +130,19 @@ uses non-default values are specified for these directives, they should appear before other worker directives.

    -

    In addition to a the set of active child processes, there may - be additional child processes which are terminating but where at +

    In addition to the set of active child processes, there may + be additional child processes which are terminating, but where at least one server thread is still handling an existing client connection. Up to MaxClients terminating processes may be present, though the actual number can be expected to be much smaller. This behavior can be avoided by disabling the - termination of individual child processes, which is achieved by + termination of individual child processes, which is achieved using the following:

    @@ -169,8 +176,30 @@ uses

    Available Languages:  de  |  en  | - ja 

    -
    + ja  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mod/worker.html.ja.euc-jp b/docs/manual/mod/worker.html.ja.euc-jp deleted file mode 100644 index d68b8d7f213..00000000000 --- a/docs/manual/mod/worker.html.ja.euc-jp +++ /dev/null @@ -1,185 +0,0 @@ - - - -worker - Apache HTTP ¥µ¡¼¥Ð - - - - - - -
    <-
    - -
    -

    Apache MPM worker

    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - - - -
    ÀâÌÀ:¥ޥë¥Á¥¹¥ì¥åɤȥޥë¥Á¥ץí¥»¥¹¤Υϥ¤¥֥ê¥åɷ¿ -¥¦¥§¥֥µ¡¼¥Фò¼ÂÁõ¤·¤¿¥ޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë
    ¥¹¥ơ¼¥¿¥¹:MPM
    ¥⥸¥塼¥뼱Ê̻Ò:mpm_worker_module
    ¥½¡¼¥¹¥ե¡¥¤¥ë:worker.c
    -

    ³µÍ×

    - -

    ¤³¤Υޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM) - ¤ϡ¢¥ޥë¥Á¥¹¥ì¥åɤȥޥë¥Á¥ץí¥»¥¹¤Υϥ¤¥֥ê¥åɷ¿¥µ¡¼¥Фò - ¼ÂÁõ¤·¤Ƥ¤¤ޤ¹¡£¥ꥯ¥¨¥¹¥ȤαþÅú¤˥¹¥ì¥åɤò»Ȥ¦¤ȡ¢ - ¥ץí¥»¥¹¥١¼¥¹¤Υµ¡¼¥Фè¤ê¤⾯¤ʤ¤¥·¥¹¥ƥà»񸻤ǡ¢ - ¿¤¯¤Υꥯ¥¨¥¹¥Ȥ˱þÅú¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤µ¤é¤ˡ¢¿¤¯¤Υ¹¥ì¥åɤò»ý¤ä¿ʣ¿ô¤Υץí¥»¥¹¤ò°ݻý¤¹¤뤳¤Ȥǡ¢ - ¥ץí¥»¥¹¥١¼¥¹¤Υµ¡¼¥Фλý¤İÂÄêÀ­¤òÊݻý¤·¤Ƥ¤¤ޤ¹¡£

    - -

    ¤³¤Î MPM ¤òÀ©¸椹¤ë¤Τ˻Ȥï¤ì¤ëºǤâ½ÅÍפʥǥ£¥쥯¥ƥ£¥֤ϡ¢ - ThreadsPerChild ¤È - MaxClients ¤Ǥ¹¡£ - ThreadsPerChild ¤Ï - ³ƻҥץí¥»¥¹¤ÇÍѰդµ¤ì¤륹¥ì¥åɿô¤òÀ©¸椷¤ơ¢ - MaxClients ¤Ï - µ¯ư¤µ¤ì¤륹¥ì¥åɤÎÁí¿ô¤κÇÂçÃͤòÀ©¸¤·¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ưºîÊýˡ

    -

    °ì¤ĤÎÀ©¸æÍѥץí¥»¥¹ (¿Æ) ¤¬»ҥץí¥»¥¹¤òµ¯ư¤·¤ޤ¹¡£ - »ҥץí¥»¥¹¤Ï - ThreadsPerChild - ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄꤵ¤줿°ìÄê¿ô¤Υµ¡¼¥Х¹¥ì¥åɤÈÀܳ¤ò - listen ¤¹¤륹¥ì¥åɤò°ì¤ĺî¤ê¤ޤ¹¡£ - Listener ¥¹¥ì¥åɤÏÀܳ¤¬Í褿¤Ȥ­¤˥µ¡¼¥Хץí¥»¥¹¤ËÅϤ·¤ޤ¹¡£

    - -

    Apache ¤Ï¥¹¥ڥ¢¤Î¡¢¤Ĥޤꥢ¥¤¥ɥë¤ʥµ¡¼¥Х¹¥ì¥åɤÎ - ¥ס¼¥ë¤ò¾ï¤˰ݻý¤·¤Ƥ¤¤ơ¢¤½¤ì¤é¤ÏÆþ¤äƤ¯¤ë¥ꥯ¥¨¥¹¥ȤË - Åú¤¨¤é¤ì¤ë¤褦¤ËÂԵ¡¤·¤Ƥ¤¤ޤ¹¡£ - ¤³¤Τ褦¤ˤ·¤ơ¢¥¯¥饤¥¢¥ó¥Ȥϥꥯ¥¨¥¹¥ȤαþÅú¤¬ÆÀ¤é¤ì¤ë¤褦¤ˤʤ뤿¤á¤Ë - ¿·¤·¤¤¥¹¥ì¥åɤä¥ץí¥»¥¹¤¬À¸À®¤µ¤ì¤ë¤Τò - ÂԤ¿¤ʤ¯¤Ƥâ¤褤¤褦¤ˤʤäƤ¤¤ޤ¹¡£ - µ¯ư½é´ü»þ¤Υץí¥»¥¹Áí¿ô¤ϡ¢ - StartServers - ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤵ¤ì¤ޤ¹¡£¤½¤θå¤βÔƯÃæ¤ˡ¢ - Apache ¤ÏÁ´¥ץí¥»¥¹¤Υ¢¥¤¥ɥ륹¥ì¥åɤιç·׿ô¤ò¸«ÀѤâ¤äơ¢ - MinSpareThreads ¤È - MaxSpareThreads - ¤ǻØÄꤵ¤줿ÈϰϤÎÃæ¤ˤ³¤οô¤¬¼ý¤ޤë¤褦¤Ë fork ¤·¤¿¤ê - kill ¤·¤¿¤ꤷ¤ޤ¹¡£¤³¤ÎÁàºî¤ÏÈó¾ï¤˼«ΧŪ¤ʤΤǡ¢ - ¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤ò¥ǥե©¥ë¥ÈÃͤ«¤éÊѹ¹¤¹¤ëɬÍפÏ - ¤á¤ä¿¤ˤʤ¤¤Ǥ·¤礦¡£ - Ʊ»þ¤˱þÅú¤¹¤뤳¤ȤΤǤ­¤륯¥饤¥¢¥ó¥ȿô¤κÇÂç¿ô - (¤ĤޤêÁ´¥ץí¥»¥¹Ãæ¤ÎÁí¥¹¥ì¥åɿô¤κÇÂçÃÍ) ¤Ï - MaxClients - ¥ǥ£¥쥯¥ƥ£¥֤ǷèÄꤵ¤ì¤ޤ¹¡£ - ³èưÃæ¤λҥץí¥»¥¹¿ô¤κÇÂçÃͤÏ - MaxClients ¤ò - ThreadsPerChild ¤dzä¤ä¿ - ¤â¤Τˤʤê¤ޤ¹¡£

    - -

    ³èưÃæ¤λҥץí¥»¥¹¤οô¤Ȼҥץí¥»¥¹Ãæ¤Υµ¡¼¥Х¹¥ì¥åɤοô¤αۤ¨¤é¤ì¤ʤ¤ - ¾å¸¤òÀßÄꤹ¤ë¥ǥ£¥쥯¥ƥ£¥֤¬Æó¤Ĥ¢¤ê¤ޤ¹¡£¤³¤ì¤é¤ϥµ¡¼¥Фò - ´°Á´¤ËÄä»ߤ·¤ơ¢ºƵ¯ư¤¹¤뤳¤ȤǤ·¤«Êѹ¹¤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£ - ServerLimit - ¤ϳèưÃæ¤λҥץí¥»¥¹¤αۤ¨¤é¤ì¤ʤ¤¾å¸¤òÀßÄꤷ¡¢ - MaxClients ¥ǥ£¥쥯¥ƥ£¥Ö - ¤ÎÃͤò - ThreadsPerChild ¤ÎÃͤdzä¤ä¿ÃͰʾå¤Ǥ¢¤ë - ɬÍפ¬¤¢¤ê¤ޤ¹¡£ThreadLimit ¤Ï - ¥µ¡¼¥Х¹¥ì¥åɤαۤ¨¤é¤ì¤ʤ¤¾å¸¤ǡ¢ThreadsPerChild ¥ǥ£¥쥯¥ƥ£¥֤Î - ÃͰʾå¤Ǥ¢¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£¥ǥե©¥ë¥Ȱʳ°¤ÎÃͤò»ØÄꤹ¤ë¾ì¹ç¤Ï - ¾¤Î worker ¥ǥ£¥쥯¥ƥ£¥֤è¤ê¤âÁ°¤˽񤫤ì¤Ƥ¤¤ë - ɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ³èưÃæ¤λҥץí¥»¥¹·²¤˲䨤ơ¢¾¯¤ʤ¯¤Ȥâ°ì¤ĤΥµ¡¼¥Х¹¥ì¥åɤ¬ - ´û¸¤Υ¯¥饤¥¢¥ó¥Ȥ«¤é¤ÎÀܳ¤򰷤äƤ¤¤뽪λ¤·¤褦¤Ȥ·¤Ƥ¤¤ë - »ҥץí¥»¥¹¤¬¤¢¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£½ªλÃæ¤Υץí¥»¥¹¤Ï MaxClients ¤ǻØÄꤵ¤줿¿ô¤ޤÇ - ¸ºߤǤ­¤ޤ¹¤¬¡¢¼ºݤ˴üÂԤµ¤ì¤ë¿ô¤Ϥº¤äȾ¯¤ʤ¯¤ʤê¤ޤ¹¡£¤³¤Î - ¿¶É񤤤ϳƻҥץí¥»¥¹¤ò½ªλ¤µ¤»¤ʤ¤¤褦¤ˤ¹¤뤳¤ȤDzóÈò¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤ϰʲ¼¤ÎÍͤˤ·¤Ƽ¸½¤Ǥ­¤ޤ¹¡£

    - - - -

    worker MPM ¤Îŵ·¿Ū¤ʥץí¥»¥¹¡¦¥¹¥ì¥åÉÀ©¸æ¤Î - ÀßÄê¤Ǥϡ¢¼¡¤Τ褦¤ˤʤê¤ޤ¹¡£

    - -

    - ServerLimit 16
    - StartServers 2
    - MaxClients 150
    - MinSpareThreads 25
    - MaxSpareThreads 75
    - ThreadsPerChild 25 -

    - -

    Ä̾ï Unix ¤ǤϿƥץí¥»¥¹¤Ï 80 È֥ݡ¼¥Ȥ˥Х¤¥ó¥ɤ¹¤뤿¤á¤Ë - root ¤ǵ¯ư¤µ¤ì¤ޤ¹¤¬¡¢»ҥץí¥»¥¹¤䥹¥ì¥åɤÏ - ¤â¤äÈÄ㤤¸¢¸¤Υ桼¥¶¤Ç Apache ¤ˤè¤äƵ¯ư¤µ¤ì¤ޤ¹¡£ - User ¤È - Group ¥ǥ£¥쥯¥ƥ£¥֤Ï - Apache ¤λҥץí¥»¥¹¤θ¢¸¤òÀßÄꤹ¤ë¤ΤËÍѤ¤¤é¤ì¤ޤ¹¡£ - »ҥץí¥»¥¹¤ϥ¯¥饤¥¢¥ó¥ȤËÁ÷¤륳¥ó¥ƥó¥ÄÁ´¤ƤòÆɤá¤ʤ¤¤Ȥ¤¤±¤ޤ»¤󤬡¢ - ²Äǽ¤ʸ¤êɬÍ׺Ǿ®¸¤θ¢¸¤Τߤò»ý¤äƤ¤¤ë¤褦¤ˤ¹¤ë¤٤­¤Ǥ¹¡£ - ¤µ¤é¤ˡ¢suexec - ¤¬»ÈÍѤµ¤ì¤Ƥ¤¤ʤ¤¸¤ꡢ¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤Ï - CGI ¥¹¥¯¥ê¥ץȤǷѾµ¤µ¤ì¤븢¸¤âÀßÄꤷ¤ޤ¹¡£

    - -

    MaxRequestsPerChild - ¤ϡ¢¸Ť¤¥ץí¥»¥¹¤òÄä»ߤ·¤ƿ·¤·¤¤¥ץí¥»¥¹¤òµ¯ư¤¹¤뤳¤Ȥˤè¤äơ¢ - ¤ɤÎÄøÅ٤ÎÉÑÅ٤ǥµ¡¼¥Ф¬¥ץí¥»¥¹¤ò¥ꥵ¥¤¥¯¥뤹¤뤫¤òÀ©¸椷¤ޤ¹¡£

    -
    -
    -
    -

    Available Languages:  de  | - en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/mod/worker.html.ja.utf8 b/docs/manual/mod/worker.html.ja.utf8 new file mode 100644 index 00000000000..b92836a31c2 --- /dev/null +++ b/docs/manual/mod/worker.html.ja.utf8 @@ -0,0 +1,220 @@ + + + + + +worker - Apache HTTP サーバ バージョン 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM worker

    +
    +

    翻訳済み言語:  de  | + en  | + ja  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + + +
    説明:マルチスレッドとマルチプロセスのハイブリッド型 +ウェブサーバを実装したマルチプロセッシングモジュール
    ステータス:MPM
    モジュール識別子:mpm_worker_module
    ソースファイル:worker.c
    +

    概要

    + +

    このマルチプロセッシングモジュール (MPM) + は、マルチスレッドとマルチプロセスのハイブリッド型サーバを + 実装しています。リクエストの応答にスレッドを使うと、 + プロセスベースのサーバよりも少ないシステム資源で、 + 多くのリクエストに応答することができます。 + さらに、多くのスレッドを持った複数のプロセスを維持することで、 + プロセスベースのサーバの持つ安定性を保持しています。

    + +

    この MPM を制御するのに使われる最も重要なディレクティブは、 + ThreadsPerChild と + MaxClients です。 + ThreadsPerChild は + 各子プロセスで用意されるスレッド数を制御して、 + MaxClients は + 起動されるスレッドの総数の最大値を制限します。

    +
    + +
    top
    +
    +

    動作方法

    +

    一つの制御用プロセス (親) が子プロセスを起動します。 + 子プロセスは + ThreadsPerChild + ディレクティブで指定された一定数のサーバスレッドと接続を + listen するスレッドを一つ作ります。 + Listener スレッドは接続が来たときにサーバプロセスに渡します。

    + +

    Apache はスペアの、つまりアイドルなサーバスレッドの + プールを常に維持していて、それらは入ってくるリクエストに + 答えられるように待機しています。 + このようにして、クライアントはリクエストの応答が得られるようになるために + 新しいスレッドやプロセスが生成されるのを + 待たなくてもよいようになっています。 + 起動初期時のプロセス総数は、 + StartServers + ディレクティブで設定されます。その後の稼働中に、 + Apache は全プロセスのアイドルスレッドの合計数を見積もって、 + MinSpareThreads と + MaxSpareThreads + で指定された範囲の中にこの数が収まるように fork したり + kill したりします。この操作は非常に自律的なので、 + これらのディレクティブをデフォルト値から変更する必要は + めったにないでしょう。 + 同時に応答することのできるクライアント数の最大数 + (つまり全プロセス中の総スレッド数の最大値) は + MaxClients + ディレクティブで決定されます。 + 活動中の子プロセス数の最大値は + MaxClients を + ThreadsPerChild で割った + ものになります。

    + +

    活動中の子プロセスの数と子プロセス中のサーバスレッドの数の越えられない + 上限を設定するディレクティブが二つあります。これらはサーバを + 完全に停止して、再起動することでしか変更することはできません。 + ServerLimit + は活動中の子プロセスの越えられない上限を設定し、 + MaxClients ディレクティブ + の値を + ThreadsPerChild の値で割った値以上である + 必要があります。ThreadLimit は + サーバスレッドの越えられない上限で、ThreadsPerChild ディレクティブの + 値以上である必要があります。デフォルト以外の値を指定する場合は + 他の worker ディレクティブよりも前に書かれている + 必要があります。

    + +

    活動中の子プロセス群に加えて、少なくとも一つのサーバスレッドが + 既存のクライアントからの接続を扱っている終了しようとしている + 子プロセスがある可能性があります。終了中のプロセスは MaxClients で指定された数まで + 存在できますが、実際に期待される数はずっと少なくなります。この + 振舞いは各子プロセスを終了させないようにすることで回避できます。 + これは以下の様にして実現できます。

    + + + +

    worker MPM の典型的なプロセス・スレッド制御の + 設定では、次のようになります。

    + +

    + ServerLimit 16
    + StartServers 2
    + MaxClients 150
    + MinSpareThreads 25
    + MaxSpareThreads 75
    + ThreadsPerChild 25 +

    + +

    通常 Unix では親プロセスは 80 番ポートにバインドするために + root で起動されますが、子プロセスやスレッドは + もっと低い権限のユーザで Apache によって起動されます。 + User と + Group ディレクティブは + Apache の子プロセスの権限を設定するのに用いられます。 + 子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、 + 可能な限り必要最小限の権限のみを持っているようにするべきです。 + さらに、suexec + が使用されていない限り、これらのディレクティブは + CGI スクリプトで継承される権限も設定します。

    + +

    MaxRequestsPerChild + は、古いプロセスを停止して新しいプロセスを起動することによって、 + どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。

    +
    +
    +
    +

    翻訳済み言語:  de  | + en  | + ja  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/worker.html.tr.utf8 b/docs/manual/mod/worker.html.tr.utf8 new file mode 100644 index 00000000000..eba8e3624e9 --- /dev/null +++ b/docs/manual/mod/worker.html.tr.utf8 @@ -0,0 +1,197 @@ + + + + + +worker - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + + +
    <-
    + +
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache MPM worker

    +
    +

    Mevcut Diller:  de  | + en  | + ja  | + tr 

    +
    + + + +
    Açıklama:Çok evreli ve çok süreçli melez bir HTTP sunucusu oluşturan çok +süreçlilik modülü.
    Durum:MPM
    Modül Betimleyici:mpm_worker_module
    Kaynak Dosyası:worker.c
    +

    Özet

    + +

    Bu çok süreçlilik modülü (MPM) hem çok süreçli hem de çok evreli + olabilen melez bir sunucu oluşturur. İstekleri sunmak için evreleri + kullanması sebebiyle çok süreçli bir sunucudan daha az sistem kaynağı + harcayarak daha çok isteğe hizmet sunabilir. Bununla birlikte, herbiri + çok sayıda evreye sahip çok sayıda süreci canlı tutarak bir çok süreçli + sunucu kadar kararlı olur.

    + +

    Bu MPM’i denetim altında tutmakta kullanılan en önemli yönergeler, her + çocuk süreç için konuşlandırılacak evre sayısını belirleyen ThreadsPerChild yönergesi ile devreye + sokulacak toplam evre sayısının azamisini belirleyen MaxClients yönergesidir.

    +
    + +
    top
    +
    +

    Nasıl çalışır?

    +

    Çocuk süreçleri devreye almaktan tek bir süreç (ana süreç) sorumludur. + Her çocuk süreç ThreadsPerChild yönergesinde belirtilen sayıda evre + konuşlandırır. Bunlardan ayrı olarak, bir dinleyici evre bağlantıları + dinleyip gelenleri işlenmek üzere bu sunucu evrelerinden birine + aktarır.

    + +

    Apache daima, gelen isteklere hizmet sunmaya hazır yedek + veya boştaki sunucu evrelerinden oluşan bir havuzu canlı tutmaya + çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk + süreçlerin çatallanmasını, dolayısıyla yeni evrelerin + konuşlandırılmasını beklemek gerekmez. Başlangıçta çalıştırılacak çocuk + süreçlerin sayısı StartServers yönergesinde belirtilir. + Apache, çalışma süresi boyunca MinSpareThreads ve MaxSpareThreads yönergeleri ile belirtilen sınırlar + dahilinde kalmak üzere gerektiğinde süreçleri öldürerek gerektiğinde + yenilerini devreye alarak tüm süreçlerdeki toplam evre sayısını sabit + tutmaya çalışır. Bu işlem kendiliğinden çok iyi yürüdüğünden bu + yönergelere öntanımlı değerlerinden farklı değerlerin atanması nadiren + gerekli olur. Aynı anda hizmet sunulabilecek istemcilerin sayısı (yani, + tüm süreçlerin toplam evre sayısı) MaxClients yönergesi ile belirlenir. Etkin çocuk + süreçlerin sayısı ise MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere + bölünmesi ile elde edilir.

    + +

    Bu iki yönerge aynı anda etkin olabilecek çocuk süreçlerin ve her + çocuk süreçteki sunucu evreleri sayısının üst sınırını belirler ve bu + sınır sadece ana sunucu tamamen durdurulup yeniden başlatılarak + değiştirilebilir. ServerLimit yönergesinin değeri etkin çocuk süreç + sayısının üst sınırı olup MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere + bölünmesi ile elde değere eşit veya bundan küçük olması gerekir. + ThreadLimit yönergesinin + değeri ise sunucu evreleri sayısının üst sınırını belirler ve ThreadsPerChild yönergesindeki değerden + büyük veya ona eşit olması gerekir. Eğer bu yönergelere öntanımlı + değerlerinden farklı bir değer atanacaksa bu atamaların diğer + worker yönergelerinden önce yapılması gerekir.

    + +

    Sonlandırma sırasında etkin çocuk süreçlere ek olarak mevcut istemci + bağlantılarını işleme sokmaya çalışan tek bir sunucu evresinden başka + fazladan bir çocuk süreç etkin kalabileceği gibi sonlandırılacak süreç + sayısının en fazla MaxClients olması gerekirse de gerçekte sayı bundan küçük + olabilir. Şöyle bir işlemle tek bir çocuk sürecin sonlandırılması + iptal edilerek bu gibi durumlara karşı önlem alınabilir:

    + + + +

    worker modülünün öntanımlı süreç-evre yapılandırması + genelde şöyledir:

    + +

    + ServerLimit 16
    + StartServers 2
    + MaxClients 150
    + MinSpareThreads 25
    + MaxSpareThreads 75
    + ThreadsPerChild 25 +

    + +

    Unix altında 80. portu dinleyebilmek için ana sürecin root tarafından + çalıştırılmış olması gerekirse de çocuk süreçler ve evreler Apache + tarafından daha az yetkili bir kullanıcının aidiyetinde + çalıştırılırlar. Apache’nin çocuk süreçlerinin kullanıcı ve gruplarını + ayarlamak için User ve Group yönergeleri kullanılır. Çocuk süreçlerin + sunacakları içeriği okumaya yetkili olmaları gerekir, fakat bu yetkinin + mümkün olduğunca kısıtlı tutulmasına çalışılmalıdır. Bundan başka, + suexec kullanılmadığı takdirde, bu yönergeler CGI + betikleri tarafından miras alınacak yetkili kullanıcı ve grubu da + ayarlarlar.

    + +

    MaxRequestsPerChild + yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı + ne kadar sıklıkla yapacağını denetler.

    +
    +
    +
    +

    Mevcut Diller:  de  | + en  | + ja  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mod/worker.xml b/docs/manual/mod/worker.xml index f68520fdac5..b6b5935f011 100644 --- a/docs/manual/mod/worker.xml +++ b/docs/manual/mod/worker.xml @@ -4,12 +4,12 @@ + + - + worker /mod/ .. - de + de en - ja + ja + tr diff --git a/docs/manual/mod/worker.xml.tr b/docs/manual/mod/worker.xml.tr new file mode 100644 index 00000000000..381dc3c30f1 --- /dev/null +++ b/docs/manual/mod/worker.xml.tr @@ -0,0 +1,188 @@ + + + + + + + + + +worker +Çok evreli ve çok süreçli melez bir HTTP sunucusu oluşturan çok +süreçlilik modülü. +MPM +worker.c +mpm_worker_module + + +

    Bu çok süreçlilik modülü (MPM) hem çok süreçli hem de çok evreli + olabilen melez bir sunucu oluşturur. İstekleri sunmak için evreleri + kullanması sebebiyle çok süreçli bir sunucudan daha az sistem kaynağı + harcayarak daha çok isteğe hizmet sunabilir. Bununla birlikte, herbiri + çok sayıda evreye sahip çok sayıda süreci canlı tutarak bir çok süreçli + sunucu kadar kararlı olur.

    + +

    Bu MPM’i denetim altında tutmakta kullanılan en önemli yönergeler, her + çocuk süreç için konuşlandırılacak evre sayısını belirleyen ThreadsPerChild yönergesi ile devreye + sokulacak toplam evre sayısının azamisini belirleyen MaxClients yönergesidir.

    +
    +Apache’nin kullandığı adres ve portların +ayarlanması + +
    Nasıl çalışır? +

    Çocuk süreçleri devreye almaktan tek bir süreç (ana süreç) sorumludur. + Her çocuk süreç ThreadsPerChild yönergesinde belirtilen sayıda evre + konuşlandırır. Bunlardan ayrı olarak, bir dinleyici evre bağlantıları + dinleyip gelenleri işlenmek üzere bu sunucu evrelerinden birine + aktarır.

    + +

    Apache daima, gelen isteklere hizmet sunmaya hazır yedek + veya boştaki sunucu evrelerinden oluşan bir havuzu canlı tutmaya + çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk + süreçlerin çatallanmasını, dolayısıyla yeni evrelerin + konuşlandırılmasını beklemek gerekmez. Başlangıçta çalıştırılacak çocuk + süreçlerin sayısı StartServers yönergesinde belirtilir. + Apache, çalışma süresi boyunca MinSpareThreads ve MaxSpareThreads yönergeleri ile belirtilen sınırlar + dahilinde kalmak üzere gerektiğinde süreçleri öldürerek gerektiğinde + yenilerini devreye alarak tüm süreçlerdeki toplam evre sayısını sabit + tutmaya çalışır. Bu işlem kendiliğinden çok iyi yürüdüğünden bu + yönergelere öntanımlı değerlerinden farklı değerlerin atanması nadiren + gerekli olur. Aynı anda hizmet sunulabilecek istemcilerin sayısı (yani, + tüm süreçlerin toplam evre sayısı) MaxClients yönergesi ile belirlenir. Etkin çocuk + süreçlerin sayısı ise MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere + bölünmesi ile elde edilir.

    + +

    Bu iki yönerge aynı anda etkin olabilecek çocuk süreçlerin ve her + çocuk süreçteki sunucu evreleri sayısının üst sınırını belirler ve bu + sınır sadece ana sunucu tamamen durdurulup yeniden başlatılarak + değiştirilebilir. ServerLimit yönergesinin değeri etkin çocuk süreç + sayısının üst sınırı olup MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere + bölünmesi ile elde değere eşit veya bundan küçük olması gerekir. + ThreadLimit yönergesinin + değeri ise sunucu evreleri sayısının üst sınırını belirler ve ThreadsPerChild yönergesindeki değerden + büyük veya ona eşit olması gerekir. Eğer bu yönergelere öntanımlı + değerlerinden farklı bir değer atanacaksa bu atamaların diğer + worker yönergelerinden önce yapılması gerekir.

    + +

    Sonlandırma sırasında etkin çocuk süreçlere ek olarak mevcut istemci + bağlantılarını işleme sokmaya çalışan tek bir sunucu evresinden başka + fazladan bir çocuk süreç etkin kalabileceği gibi sonlandırılacak süreç + sayısının en fazla MaxClients olması gerekirse de gerçekte sayı bundan küçük + olabilir. Şöyle bir işlemle tek bir çocuk sürecin sonlandırılması + iptal edilerek bu gibi durumlara karşı önlem alınabilir:

    + +
      +
    • MaxRequestsPerChild + yönergesinin değeri sıfır yapılır.
    • + +
    • MaxSpareThreads ve + MaxClients yönergelerinin + değerleri birbirine eşitlenir.
    • +
    + +

    worker modülünün öntanımlı süreç-evre yapılandırması + genelde şöyledir:

    + + + ServerLimit 16
    + StartServers 2
    + MaxClients 150
    + MinSpareThreads 25
    + MaxSpareThreads 75
    + ThreadsPerChild 25 +
    + +

    Unix altında 80. portu dinleyebilmek için ana sürecin root tarafından + çalıştırılmış olması gerekirse de çocuk süreçler ve evreler Apache + tarafından daha az yetkili bir kullanıcının aidiyetinde + çalıştırılırlar. Apache’nin çocuk süreçlerinin kullanıcı ve gruplarını + ayarlamak için User ve Group yönergeleri kullanılır. Çocuk süreçlerin + sunacakları içeriği okumaya yetkili olmaları gerekir, fakat bu yetkinin + mümkün olduğunca kısıtlı tutulmasına çalışılmalıdır. Bundan başka, + suexec kullanılmadığı takdirde, bu yönergeler CGI + betikleri tarafından miras alınacak yetkili kullanıcı ve grubu da + ayarlarlar.

    + +

    MaxRequestsPerChild + yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı + ne kadar sıklıkla yapacağını denetler.

    +
    + +AcceptMutex + +CoreDumpDirectory + +EnableExceptionHook + +Group + +PidFile + +Listen + +ListenBacklog + +LockFile + +MaxClients + +MaxMemFree + +MaxRequestsPerChild + +MaxSpareThreads + +MinSpareThreads + +ScoreBoardFile + +ReceiveBufferSize + +SendBufferSize + +ServerLimit + +StartServers + +ThreadLimit + +ThreadsPerChild + +ThreadStackSize + +User + + +
    diff --git a/docs/manual/mpm.html b/docs/manual/mpm.html index c34f5f0445a..763144b225a 100644 --- a/docs/manual/mpm.html +++ b/docs/manual/mpm.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mpm.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,10 +12,22 @@ Content-Language: es Content-type: text/html; charset=ISO-8859-1 -URI: mpm.html.ja.euc-jp +URI: mpm.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: mpm.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mpm.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 + +URI: mpm.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/mpm.html.de b/docs/manual/mpm.html.de index 8538a1c20bb..369636c6937 100644 --- a/docs/manual/mpm.html.de +++ b/docs/manual/mpm.html.de @@ -1,110 +1,118 @@ - -Multi-Processing-Module (MPMs) - Apache HTTP Server +Multi-Processing-Module (MPMs) - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Multi-Processing-Module (MPMs)

    +Apache > HTTP-Server > Dokumentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Multi-Processing-Module (MPMs)

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    + ko  | + tr  | + zh-cn 

    Das Dokument beschreibt, was ein Multi-Processing-Modul ist und wie solche Module beim Apache HTTP Server verwendet werden.

    -
    top
    -

    Einführung

    +

    Einführung

    -

    Der Apache HTTP Server wurde als leistungsfähiger und flexibler Webserver +

    Der Apache HTTP Server wurde als leistungsfähiger und flexibler Webserver konzipiert, der auf einer Vielzahl von Plattformen in einer Reihe unterschiedlicher Umgebungen arbeiten kann. Unterschiedliche Plattformen und unterschiedliche Umgebungen verlangen oftmals verschiedene - Fähigkeiten oder kennen verschiedene Wege, die gleiche - Funktionaltät sehr effizient zu implementieren. Der Apache hat durch + Fähigkeiten oder kennen verschiedene Wege, die gleiche + Funktionaltät sehr effizient zu implementieren. Der Apache hat durch seinen modularen Aufbau schon immer eine breite Auswahl von Umgebungen - unterstützt. Dieses Design erlaubt es dem Webmaster, durch Auswahl der + unterstützt. Dieses Design erlaubt es dem Webmaster, durch Auswahl der Module, die zur Kompilierungszeit oder zur Laufzeit geladen werden, die - Features auszuwählen, die in den Server intregiert werden.

    + Features auszuwählen, die in den Server intregiert werden.

    Der Apache 2.0 erweitert dieses modulare Design auf die grundlegenden Funktionen eines Webservers. Der Server wird mit einer Auswahl von - Multi-Processing-Modulen (MPMs) ausgeliefert, die für die Bindung an + Multi-Processing-Modulen (MPMs) ausgeliefert, die für die Bindung an Netzwerkports der Maschine, die Annahme von Anfragen und die Abfertigung von - Kindprozessen zur Behandlung der Anfragen zuständig sind.

    + Kindprozessen zur Behandlung der Anfragen zuständig sind.

    Die Erweiterung des modularen Aufbaus auf diese Ebene des Servers bringt zwei wesentliche Vorteile:

    • Der Apache kann nun eine Vielfalt von Betriebssystemen sauberer und - effizienter unterstützen. Insbesondere die Windows-Version des Apache + effizienter unterstützen. Insbesondere die Windows-Version des Apache ist jetzt deutlich effizienter, da mpm_winnt native - Netzwerkfähigkeiten anstelle der im Apache 1.3 verwendeten - POSIX-Schicht benutzen kann. Dieser Vorteil gilt auch für andere - Betriebssysteme, für die spezielle MPMs implementiert sind.
    • + Netzwerkfähigkeiten anstelle der im Apache 1.3 verwendeten + POSIX-Schicht benutzen kann. Dieser Vorteil gilt auch für andere + Betriebssysteme, für die spezielle MPMs implementiert sind. -
    • Der Server läßt sich besser auf die Bedürfnisse der +
    • Der Server läßt sich besser auf die Bedürfnisse der jeweiligen Website anpassen. Sites beispielsweise, die eine hohe - Skalierbarkeit benötigen, können ein Threaded-MPM wie - worker oder event wählen, - während Sites, die Stabilität oder Kompatibilität mit - älterer Software erfordern, prefork wählen - können. Darüber hinaus können Spezialfähigkeiten wie - die Bedienung verschiedener Hosts unter unterschiedlichen User-IDs - (perchild) angeboten werden.
    • + Skalierbarkeit benötigen, können ein Threaded-MPM wie + worker oder event wählen, + während Sites, die Stabilität oder Kompatibilität mit + älterer Software erfordern, prefork wählen + können.

    Auf Anwenderebene erscheinen MPMs fast wie andere Apache-Module. Der Hauptunterschied ist, dass jeweils nur ein einziges MPM in den Server - geladen werden kann. Die Liste der verfügbaren MPMs finden Sie im Modul-Index.

    + geladen werden kann. Die Liste der verfügbaren MPMs finden Sie im Modul-Index.

    top

    Auswahl eines MPMs

    -

    MPMs müssen während der - (Anm.d.Ü.: Quelltext-)Konfiguration ausgewählt und in den +

    MPMs müssen während der + (Anm.d.Ü.: Quelltext-)Konfiguration ausgewählt und in den Server einkompiliert werden. Compiler sind in der Lage eine Reihe von - Funktionen zu optimieren, wenn Threads verwendet werden. Sie können + Funktionen zu optimieren, wenn Threads verwendet werden. Sie können dies allerdings nur, wenn sie wissen, dass Threads benutzt werden.

    -

    Um das gewünschte MPM tatsächlich auszuwählen, verwenden Sie +

    Um das gewünschte MPM tatsächlich auszuwählen, verwenden Sie beim configure-Skript das Argument --with-mpm=NAME. NAME ist der Name des - gewünschten MPMs.

    + gewünschten MPMs.

    Ist der Server kompiliert, so ist es mittels ./httpd -l - möglich, das ausgewählte MPM zu ermitteln. Dieser Befehl listet - alle in den Server einkompilierten Module auf, einschließlich des + möglich, das ausgewählte MPM zu ermitteln. Dieser Befehl listet + alle in den Server einkompilierten Module auf, einschließlich des MPM.

    top

    MPM-Voreinstellungen

    -

    Die folgende Tabelle gibt die voreingestellten MPMs für verschiedene - Betriebssysteme an. Wenn Sie während der Kompilierung keine andere - Auswahl treffen, wird dieses MPM gewählt.

    +

    Die folgende Tabelle gibt die voreingestellten MPMs für verschiedene + Betriebssysteme an. Wenn Sie während der Kompilierung keine andere + Auswahl treffen, wird dieses MPM gewählt.

    @@ -116,12 +124,36 @@
    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr  | + zh-cn 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mpm.html.en b/docs/manual/mpm.html.en index 6f7434f7f18..0909ba51fe0 100644 --- a/docs/manual/mpm.html.en +++ b/docs/manual/mpm.html.en @@ -1,28 +1,38 @@ - -Multi-Processing Modules (MPMs) - Apache HTTP Server +Multi-Processing Modules (MPMs) - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Multi-Processing Modules (MPMs)

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Multi-Processing Modules (MPMs)

    Available Languages:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    + ko  | + tr  | + zh-cn 

    This document describes what a Multi-Processing Module is and @@ -31,7 +41,7 @@ how they are used by the Apache HTTP Server.

    +
    top

    Introduction

    @@ -70,10 +80,7 @@ how they are used by the Apache HTTP Server.

    scalability can choose to use a threaded MPM like worker or event, while sites requiring stability or compatibility with older software can use a - prefork. In addition, - special features like serving different hosts under different - userids (perchild) can be - provided. + prefork.

    At the user level, MPMs appear much like other Apache @@ -119,10 +126,34 @@ choice at compile-time.

    Available Languages:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr  | + zh-cn 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mpm.html.es b/docs/manual/mpm.html.es index 57dd1a59855..bde7289b5aa 100644 --- a/docs/manual/mpm.html.es +++ b/docs/manual/mpm.html.es @@ -1,106 +1,116 @@ - -Módulos de MultiProcesamiento (MPMs) - Servidor HTTP Apache +Módulos de MultiProcesamiento (MPMs) - Servidor HTTP Apache Versión 2.2 - - + + + +
    <-

    Módulos de MultiProcesamiento (MPMs)

    +Apache > Servidor HTTP > Documentación > Versión 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Módulos de MultiProcesamiento (MPMs)

    Idiomas disponibles:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    + ko  | + tr  | + zh-cn 

    -
    Esta traducción podría estar - obsoleta. Consulte la versión en inglés de la - documentación para comprobar si se han producido cambios +
    Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios recientemente.
    -

    Este documento describe que es un Módulo de Multiprocesamiento y +

    Este documento describe que es un Módulo de Multiprocesamiento y como los usa Apache.

    -
    top
    -

    Introducción

    +

    Introducción

    -

    Apache está diseñado para ser un servidor web potente - y flexible que pueda funcionar en la más amplia variedad de +

    Apache está diseñado para ser un servidor web potente + y flexible que pueda funcionar en la más amplia variedad de plataformas y entornos. Las diferentes plataformas y los diferentes entornos, hacen que a menudo sean necesarias diferentes - características o funcionalidades, o que una misma - característica o funcionalidad sea implementada de diferente + características o funcionalidades, o que una misma + característica o funcionalidad sea implementada de diferente manera para obtener una mayor eficiencia. Apache se ha adaptado - siempre a una gran variedad de entornos a través de su - diseño modular. Este diseño permite a los - administradores de sitios web elegir que características van - a ser incluidas en el servidor seleccionando que módulos se + siempre a una gran variedad de entornos a través de su + diseño modular. Este diseño permite a los + administradores de sitios web elegir que características van + a ser incluidas en el servidor seleccionando que módulos se van a cargar, ya sea al compilar o al ejecutar el servidor.

    -

    Apache 2.0 extiende este diseño modular hasta las - funciones más básicas de un servidor web. El servidor - viene con una serie de Módulos de MultiProcesamiento que son +

    Apache 2.0 extiende este diseño modular hasta las + funciones más básicas de un servidor web. El servidor + viene con una serie de Módulos de MultiProcesamiento que son responsables de conectar con los puertos de red de la - máquina, acceptar las peticiones, y generar los procesos hijo + máquina, acceptar las peticiones, y generar los procesos hijo que se encargan de servirlas.

    -

    La extensión del diseño modular a este nivel del +

    La extensión del diseño modular a este nivel del servidor ofrece dos beneficios importantes:

      -
    • Apache puede soportar de una forma más fácil y +
    • Apache puede soportar de una forma más fácil y eficiente una amplia variedad de sistemas operativos. En - concreto, la versión de Windows de Apache es mucho más - eficiente, porque el módulo mpm_winnt + concreto, la versión de Windows de Apache es mucho más + eficiente, porque el módulo mpm_winnt puede usar funcionalidades nativas de red en lugar de usar la capa POSIX como hace Apache 1.3. Este beneficio se extiende - también a otros sistemas operativos que implementan sus + también a otros sistemas operativos que implementan sus respectivos MPMs.
    • El servidor puede personalizarse mejor para las necesidades de cada sitio web. Por ejemplo, los sitios web que necesitan - más que nada escalibildad pueden usar un MPM hebrado como + más que nada escalibildad pueden usar un MPM hebrado como worker, mientras que los sitios web que requieran por encima de otras cosas estabilidad o compatibilidad con software antiguo pueden usar - prefork. Además, se pueden configurar + prefork. Además, se pueden configurar funcionalidades especiales como servir diferentes hosts con diferentes identificadores de usuario (perchild).

    A nivel de usuario, los MPMs son como cualquier otro - módulo de Apache. La diferencia más importante es que + módulo de Apache. La diferencia más importante es que solo un MPM puede estar cargado en el servidor en un determinado - momento. La lista de MPMs disponibles está en la sección índice de Módulos.

    + momento. La lista de MPMs disponibles está en la sección índice de Módulos.

    top
    -

    Cómo Elegir un MPM

    +

    Cómo Elegir un MPM

    Los MPMs deben elegirse durante el proceso de - configuración, y deben ser compilados en el servidor. Los + configuración, y deben ser compilados en el servidor. Los compiladores son capaces de optimizar muchas funciones si se usan - hebras, pero solo si se sabe que se están usando hebras. Como - algunos MPM usan hebras en Unix y otros no, Apache tendrá un + hebras, pero solo si se sabe que se están usando hebras. Como + algunos MPM usan hebras en Unix y otros no, Apache tendrá un mejor rendimiento si el MPM es elegido en el momento de compilar y - está incorporado en el servidor.

    + está incorporado en el servidor.

    Para elegir el MPM deseado, use el argumento --with-mpm= NAME con el script ./configure. NAME es el @@ -108,14 +118,14 @@ como los usa Apache.

    Una vez que el servidor ha sido compilado, es posible determinar que MPM ha sido elegido usando ./httpd - -l. Este comando lista todos los módulos compilados en + -l. Este comando lista todos los módulos compilados en el servidor, incluido en MPM.

    top

    MPM por defecto

    En la siguiente tabla se muestran los MPMs por defecto para varios -sistemas operativos. Estos serán los MPM seleccionados si no se +sistemas operativos. Estos serán los MPM seleccionados si no se especifica lo contrario al compilar.

    @@ -130,10 +140,34 @@ especifica lo contrario al compilar.

    Idiomas disponibles:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr  | + zh-cn 

    +
    top

    Comentarios

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mpm.html.fr b/docs/manual/mpm.html.fr new file mode 100644 index 00000000000..66267e3504e --- /dev/null +++ b/docs/manual/mpm.html.fr @@ -0,0 +1,166 @@ + + + + + +Modules multi-processus (MPMs) - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Modules multi-processus (MPMs)

    +
    +

    Langues Disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    + +

    Ce document décrit ce qu'est un Module Multi-Processus, ainsi +que la manière dont ces modules sont utilisés par le serveur HTTP Apache.

    +
    + +
    top
    +
    +

    Introduction

    + +

    Le serveur HTTP Apache a été conçu comme un serveur web puissant et + flexible pouvant fonctionner sur une très grande variété de + plateformes et toute une gamme d'environnements différents. Plateformes + différentes et environnements différents signifient souvent fonctionnalités + différentes, ou utilisation de différentes méthodes pour + implémenter la même fonctionnalité le plus efficacement possible. + Apache s'est toujours accomodé d'une grande variété d'environnements + grâce à sa conception modulaire. Cette conception autorise le webmaster + à choisir quelles fonctionnalités seront incluses + dans le serveur en sélectionnant les modules à charger soit à la + compilation, soit à l'exécution.

    + +

    Apache 2.0 étend cette conception modulaire aux fonctions les plus + élémentaires d'un serveur web. Certains Modules Multi-Processus (MPMs) + sont responsables de l'association aux ports réseau de la machine, + acceptent les requêtes, et se chargent de répartir ces dernières + entre les différents processus enfants.

    + +

    L'extension de la conception modulaire à ce niveau du serveur + comporte deux avantages importants:

    + +
      +
    • Apache peut supporter plus proprement et efficacement une grande + variété de systèmes d'exploitation. En particulier, la version Windows + d'Apache est maintenant beaucoup plus efficace, depuis que + mpm_winnt peut utiliser les fonctionnalités réseau + natives à la place de la couche POSIX utilisée par + Apache 1.3. Cet avantage s'étend aussi aux systèmes d'exploitation + qui implémentent des MPMs spécialisés.
    • + +
    • le serveur est plus à même de répondre aux besoins d'un site + particulier. Par exemple, les sites qui sont très sollicités peuvent + utiliser un MPM threadé comme + worker ou event, tandis que les sites + qui privilégient la stabilité ou la compatibilité avec des logiciels + plus anciens peuvent utiliser un module comme + prefork.
    • +
    + +

    Du point de vue de l'utilisateur, les MPMs ne sont pas différents des + autres modules Apache. La principale différence réside dans le fait qu'un + et un seul MPM à la fois doit être chargé dans le serveur. La liste des + MPMs disponibles est fournie dans module index page.

    + +
    top
    +
    +

    Choisir un MPM

    + +

    Les MPMs doivent être choisis à la configuration, et compilés avec + le serveur. Les compilateurs peuvent optimiser de nombreuses fonctions + si les threads sont utilisés, mais seulement s'ils savent que les threads + sont utilisés.

    + +

    Pour le choix proprement dit du MPM désiré, utiliser l'argument + --with-mpm=NOM du script + configure. NOM est le nom + du MPM désiré.

    + +

    Une fois le serveur compilé, il est possible de savoir quel MPM + a été choisi à l'aide de la commande ./httpd -l. + Cette commande fournit la liste de tous les modules compilés + avec le serveur, y compris le MPM.

    +
    top
    +
    +

    MPM par défaut

    + +

    La table suivante fournit la liste des MPMs par défaut pour divers +systèmes d'exploitation. Il s'agit du MPM sélectionné si vous ne précisez +pas un choix différent à la compilation.

    + +
    + + + + + + +
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    +
    +
    +

    Langues Disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mpm.html.ja.euc-jp b/docs/manual/mpm.html.ja.euc-jp deleted file mode 100644 index 030e16d734a..00000000000 --- a/docs/manual/mpm.html.ja.euc-jp +++ /dev/null @@ -1,133 +0,0 @@ - - - -¥ޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM) - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥ޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM)

    -
    -

    Available Languages:  de  | - en  | - es  | - ja  | - ko 

    -
    - -

    ¤³¤Îʸ½ñ¤Ǥϥޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥뤬¤ɤΤ褦¤ʤâ¤Τǡ¢ -Apache HTTP ¥µ¡¼¥ФǤɤΤ褦¤˻ÈÍѤµ¤ì¤뤫¤ˤĤ¤¤ƲòÀ⤷¤Ƥ¤¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¤Ϥ¸¤á¤Ë

    - -

    Apache HTTP ¥µ¡¼¥ФϰۤʤëÉý¹­¤¤´Ķ­¡¢¿¼ï¿Íͤʥץé¥åȥۡ¼¥à¤Ç - ưº¤ë¤褦¤ˡ¢¥ѥï¥եë¤ǽÀÆðÀ­¤ËÉ٤ó¤ÀÀ߷פˤʤäƤ¤¤ޤ¹¡£ - °ۤʤë¥ץé¥åȥۡ¼¥ࡦ°ۤʤë´Ķ­¤ǤϤ·¤Ф·¤С¢ - °ۤʤ뵡ǽ¤¬ɬÍפˤʤ俤ꡢ - Ʊ¤¸µ¡ǽ¤Ǥâ¸úΨ¤Τ¿¤á¤˰ۤʤë¼ÂÁõ¤¬ɬÍפˤʤ俤ꤷ¤ޤ¹¡£ - Apache ¤Ǥϥ⥸¥塼¥벽¤µ¤줿À߷פˤè¤êÉý¹­¤¤´Ķ­¤ËŬ±þ¤·¤Ƥ­¤ޤ·¤¿¡£ - ¤³¤ÎÀ߷פΤª¤«¤²¤ǡ¢´ÉÍý¼ԤÏ - ¥³¥ó¥ѥ¤¥ë»þ¤ޤ¿¤ϼ¹Իþ¤ˤɤΥ⥸¥塼¥ë¤ò¥í¡¼¥ɤ¹¤뤫Áª¤֤³¤Ȥˤè¤äơ¢ - ¤ɤε¡ǽ¤򥵡¼¥Ф˼è¤ê¹þ¤फÁªÂ򤹤뤳¤Ȥ¬¤¬¤Ǥ­¤ޤ¹¡£

    - -

    Apache 2.0 ¤Ǥϡ¢ - ¤³¤Υ⥸¥塼¥벽¤µ¤줿À߷פ򥵡¼¥ФδðËܵ¡ǽ¤ˤޤdzÈĥ¤·¤ޤ·¤¿¡£ - ¥µ¡¼¥ФˤÏÀºÁª¤µ¤줿¥ޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM) - ¤¬Éդ¤¤Ƥ­¤ơ¢¤³¤ì¤é¤ϥޥ·¥ó¤Υͥåȥ¥¯¥ݡ¼¥Ȥò¥Х¤¥ó¥ɤ·¤¿¤ꡢ - ¥ꥯ¥¨¥¹¥Ȥò¼õ¤±Éդ±¤¿¤ꡢ¥ꥯ¥¨¥¹¥Ȥ򰷤¦¤褦»ҥץí¥»¥¹¤˳ä¤êÅö¤Ƥ¿¤ꡢ - ¤Ȥ¤¤ä¿Ìò³ä¤ò»ý¤Á¤ޤ¹¡£

    - -

    ¥⥸¥塼¥벽¤µ¤줿À߷פ򥵡¼¥ФΤ³¤Υì¥٥ë¤ޤdzÈĥ¤¹¤뤳¤ȤÇ - Æó¤ĤνÅÍפÊÍøÅÀ¤¬À¸¤ޤì¤ޤ¹:

    - -
      -
    • Apache ¤ÏÉý¹­¤¤¥ª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤ò - ¤è¤êÈþ¤·¤¯¸úΨŪ¤˥µ¥ݡ¼¥ȤǤ­¤ޤ¹¡£ - ÆäË Windows ÈǤÎ Apache ¤Ͽïʬ¸úΨŪ¤ˤʤê¤ޤ·¤¿¡£ - ¤ʤ¼¤ʤé mpm_winnt - ¤ˤè¤äơ¢Apache 1.3 ¤ÇÍѤ¤¤é¤ì¤Ƥ¤¤¿ POSIX - ¥쥤¥ä¤ÎÂå¤ï¤ê¤˥ͥ¤¥ƥ£¥֤Υͥåȥ¥¯µ¡ǽ¤ò - ÍøÍѤǤ­¤뤫¤é¤Ǥ¹¡£ - ÆÃÊ̲½¤µ¤줿 MPM - ¤ò¼ÂÁõ¤·¤¿¾¤Υª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤Ǥ⡢ - ƱÍͤˤ³¤ÎÍøÅÀ¤ÏÀ¸¤ޤì¤ޤ¹¡£
    • - -
    • ¥µ¡¼¥ФÏÆÃÄê¤Υµ¥¤¥ȸþ¤±¤ˡ¢¤è¤ê¾å¼ê¤˥«¥¹¥¿¥ޥ¤¥º¤Ǥ­¤ޤ¹¡£ - Î㤨¤С¢Èó¾ï¤ËÂ礭¤ʥ¹¥±¡¼¥é¥ӥê¥ƥ£¤òɬÍפȤ¹¤륵¥¤¥ȤǤϡ¢ - worker ¤ä event ¤Ȥ¤¤ä¿¥¹¥ì¥åɲ½¤µ¤줿 - MPM ¤òÍøÍѤǤ­¤ë°ìÊý¤ǡ¢°ÂÄêÀ­¤ä¸Ť¤¥½¥եȥ¦¥§¥¢¤Ȥθߴ¹À­¤ò - ɬÍפȤ¹¤륵¥¤¥ȤǤÏ prefork - ¤¬ÍøÍѤǤ­¤ޤ¹¡£¤ޤ¿¡¢ - °ۤʤë¥ۥ¹¥Ȥò°ۤʤë¥桼¥¶ ID ¤Çưº¤»¤ë - (perchild) ¤Ȥ¤¤ä¿ - ÆÃÊ̤ʵ¡ǽ¤âÄ󶡤Ǥ­¤ޤ¹¡£
    • -
    - -

    ¥桼¥¶¥ì¥٥ë¤Ǥϡ¢MPM ¤Ï¾¤Î Apache - ¥⥸¥塼¥ë¤ÈƱÅù¤˸«¤¨¤ޤ¹¡£ - ¼ç¤ʰ㤤¤ϡ¢¤¤¤ĤǤâͣ°ì¤Î MPM - ¤¬¥í¡¼¥ɤµ¤ì¤ʤ±¤ì¤Фʤé¤ʤ¤¤Ȥ¤¤¦ÅÀ¤Ǥ¹¡£ - ÍøÍѲÄǽ¤Ê MPM ¤Ï - module ¥¤¥ó¥ǥ寥¹¤ˤ¢¤ê¤ޤ¹¡£

    - -
    top
    -
    -

    MPM ¤òÁª¤Ö

    - -

    MPM ¤ÏÀßÄêÃæ¤ËÁªÂ򤷤ơ¢¥µ¡¼¥ÐÆâÉô¤˥³¥ó¥ѥ¤¥뤵¤ì¤ʤ±¤ì¤Ð - ¤ʤê¤ޤ»¤ó¡£ - ¥³¥ó¥ѥ¤¥é¤ϡ¢¥¹¥ì¥åɤ¬»ÈÍѤµ¤ì¤Ƥ¤¤ë¾ì¹ç¤ËÍ͡¹¤ʵ¡ǽ¤òºÇŬ²½¤Ǥ­¤ޤ¹¤¬¡¢ - ¤½¤Τ¿¤á¤ˤϤ½¤⤽¤⥹¥ì¥åɤ¬»Ȥï¤ì¤Ƥ¤¤ë¤Ȥ¤¤¦¤³¤ȤòÃΤëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ˾¤ߤÎ MPM ¤ò¼ºݤËÁª¤֤¿¤á¤ˤϡ¢configure ¥¹¥¯¥ê¥ץȤÇ - --with-mpm=NAME °ú¿ô¤òÍѤ¤¤Ƥ¯¤À¤µ¤¤¡£ - NAME ¤Ï˾¤ߤÎ MPM ¤Î̾Á°¤Ǥ¹¡£

    - -

    ¥µ¡¼¥Х³¥ó¥ѥ¤¥ë¸å¤ϡ¢¤ɤÎ MPM ¤¬ÁªÂ򤵤줿¤«¤ò - ./httpd -l ¤dzΤ«¤á¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤Υ³¥ޥó¥ɤϡ¢MPM - ¤ò´ޤᡢ¥µ¡¼¥Ф˥³¥ó¥ѥ¤¥ë¤ÇÁȤ߹þ¤ޤ줿¥⥸¥塼¥ëÁ´¤Ƥò - Îóµ󤷤ޤ¹¡£

    -
    top
    -
    -

    MPM ¥ǥե©¥ë¥ÈÃÍ

    - -

    ¼¡ɽ¤ËÍ͡¹¤Ê OS ¸þ¤±¤Υǥե©¥ë¥ȤÎ MPM °ìÍ÷¤ò·Ǻܤ·¤Ƥ¤¤ޤ¹¡£ -¥³¥ó¥ѥ¤¥ë»þ¤˰տÞŪ¤Ë¾¤òÁªÂ򤷤ʤ±¤ì¤С¢¼«ưŪ¤ˤ³¤ì¤é¤Î MPM -¤¬ÁªÂ򤵤ì¤ޤ¹¡£

    - - - - - - - - -
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    -
    -
    -

    Available Languages:  de  | - en  | - es  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/mpm.html.ja.utf8 b/docs/manual/mpm.html.ja.utf8 new file mode 100644 index 00000000000..2875bdb717f --- /dev/null +++ b/docs/manual/mpm.html.ja.utf8 @@ -0,0 +1,164 @@ + + + + + +マルチプロセッシングモジュール (MPM) - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    マルチプロセッシングモジュール (MPM)

    +
    +

    翻訳済み言語:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    + +

    この文書ではマルチプロセッシングモジュールがどのようなもので、 +Apache HTTP サーバでどのように使用されるかについて解説しています。

    +
    + +
    top
    +
    +

    はじめに

    + +

    Apache HTTP サーバは異なる幅広い環境、多種多様なプラットホームで + 動作するように、パワフルで柔軟性に富んだ設計になっています。 + 異なるプラットホーム・異なる環境ではしばしば、 + 異なる機能が必要になったり、 + 同じ機能でも効率のために異なる実装が必要になったりします。 + Apache ではモジュール化された設計により幅広い環境に適応してきました。 + この設計のおかげで、管理者は + コンパイル時または実行時にどのモジュールをロードするか選ぶことによって、 + どの機能をサーバに取り込むか選択することができます。

    + +

    Apache 2.0 では、 + このモジュール化された設計をサーバの基本機能にまで拡張しました。 + サーバには精選されたマルチプロセッシングモジュール (MPM) + が付いてきて、これらはマシンのネットワークポートをバインドしたり、 + リクエストを受け付けたり、リクエストを扱うよう子プロセスに割り当てたり、 + といった役割を持ちます。

    + +

    モジュール化された設計をサーバのこのレベルまで拡張することで + 二つの重要な利点が生まれます:

    + +
      +
    • Apache は幅広いオペレーティングシステムを + より美しく効率的にサポートできます。 + 特に Windows 版の Apache は随分効率的になりました。 + なぜなら mpm_winnt + によって、Apache 1.3 で用いられていた POSIX + レイヤの代わりにネイティブのネットワーク機能を + 利用できるからです。 + 特別化された MPM + を実装した他のオペレーティングシステムでも、 + 同様にこの利点は生まれます。
    • + +
    • サーバは特定のサイト向けに、より上手にカスタマイズできます。 + 例えば、非常に大きなスケーラビリティを必要とするサイトでは、 + worker や event といったスレッド化された + MPM を利用できる一方で、安定性や古いソフトウェアとの互換性を + 必要とするサイトでは prefork + が利用できます。
    • +
    + +

    ユーザレベルでは、MPM は他の Apache + モジュールと同等に見えます。 + 主な違いは、いつでも唯一の MPM + がロードされなければならないという点です。 + 利用可能な MPM は + module インデックスにあります。

    + +
    top
    +
    +

    MPM を選ぶ

    + +

    MPM は設定中に選択して、サーバ内部にコンパイルされなければ + なりません。 + コンパイラは、スレッドが使用されている場合に様々な機能を最適化できますが、 + そのためにはそもそもスレッドが使われているということを知る必要があります。

    + +

    望みの MPM を実際に選ぶためには、configure スクリプトで + --with-mpm=NAME 引数を用いてください。 + NAME は望みの MPM の名前です。

    + +

    サーバコンパイル後は、どの MPM が選択されたかを + ./httpd -l で確かめることができます。 + このコマンドは、MPM + を含め、サーバにコンパイルで組み込まれたモジュール全てを + 列挙します。

    +
    top
    +
    +

    MPM デフォルト値

    + +

    次表に様々な OS 向けのデフォルトの MPM 一覧を掲載しています。 +コンパイル時に意図的に他を選択しなければ、自動的にこれらの MPM +が選択されます。

    + + + + + + + + +
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    +
    +
    +

    翻訳済み言語:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mpm.html.ko.euc-kr b/docs/manual/mpm.html.ko.euc-kr index a6e17a98bde..cc27b45023d 100644 --- a/docs/manual/mpm.html.ko.euc-kr +++ b/docs/manual/mpm.html.ko.euc-kr @@ -1,28 +1,38 @@ - -´ÙÁßó¸® ¸ðµâ (MPM) - Apache HTTP Server +´ÙÁßó¸® ¸ðµâ (MPM) - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ´ÙÁßó¸® ¸ðµâ (MPM)

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ´ÙÁßó¸® ¸ðµâ (MPM)

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  |  es  | + fr  |  ja  | - ko 

    + ko  | + tr  | + zh-cn 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -33,7 +43,7 @@ +
    top

    ¼Ұ³

    @@ -66,7 +76,7 @@ ¿¹¸¦ µé¾î ³ôÀº ȮÀ尡´ɼº(scalability)ÀÌ ÇʿäÇÑ »çÀÌƮ´Â worker¿Í °°Àº ¾²·¹µå MPMÀ» »ç¿ëÇϰí, ¾ÈÁ¤¼º°ú ¿À·¡µÈ ¼ÒÇÁƮ¿þ¾î¿ÍÀÇ ȣȯ¼ºÀÌ ÇʿäÇÑ »çÀÌƮ´Â - preforking MPMÀ» »ç¿ëÇÒ ¼ö ÀִÙ. + preforking MPM À» »ç¿ëÇÒ ¼ö ÀִÙ. Ã߰¡·Î ´ٸ¥ »ç¿ëÀھÆÀ̵ð·Î ¿©·¯ ȣ½ºƮ¸¦ ¼­ºñ½ºÇϴ °Í(perchild)°ú °°Àº Ưº°ÇÑ ±â´ɵµ Á¦°øµȴÙ. @@ -114,9 +124,33 @@

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  |  es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr  | + zh-cn 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/mpm.html.tr.utf8 b/docs/manual/mpm.html.tr.utf8 new file mode 100644 index 00000000000..c38dca51d6a --- /dev/null +++ b/docs/manual/mpm.html.tr.utf8 @@ -0,0 +1,156 @@ + + + + + +Çok Süreçlilik Modülleri (MPM’ler) - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Çok Süreçlilik Modülleri (MPM’ler)

    +
    +

    Mevcut Diller:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    + +

    Bu belgede Çok Süreçlilik Modülü denince ne anlaşıldığı ve bunların + Apache HTTP Sunucusu tarafından nasıl kullanıldıkları açıklanmıştır.

    +
    + +
    top
    +
    +

    Giriş

    + +

    Apache HTTP Sunucusu çok çeşitli platformlar üstünde farklı ortamlarda + çalışabilen güçlü ve esnek bir HTTP sunucusu olarak tasarlanmıştır. + Farklı platformlar ve farklı ortamlar çoğunlukla farklı özellikler veya + aynı özelliğin en yüksek verimlilikle gerçeklenmesi için farklı yöntemler + gerektirir. Apache, geniş ortam çeşitliliğini daima modüler tasarımı + sayesinde uzlaştırmıştır. Bu tasarım, site yöneticilerine, sunucularında + bulunmasını istedikleri özellikleri derleme sırasında veya çalışma anında + gerekli modülleri yüklemek suretiyle seçebilme imkanı verir.

    + +

    Apache 2.0, bu modüler tasarımı sunucunun en temel işlevlerine kadar + indirmiştir. Sunucu, Çok Süreçlilik Modülleri adı verilen ve makine + üzerindeki ağ portlarının bağlanmasından, isteklerin kabul edilmesinden + ve bu istekleri yanıtlayacak çocuklara dağıtmaktan sorumlu olan + modüllerin seçimine imkan verecek bir yapılanma ile gelir.

    + +

    Sunucunun modüler tasarımının bu seviyede genişletilmesi iki önemli + yarar sağlar:

    + +
      +
    • Apache geniş çeşitlilikteki işletim sistemlerini daha temiz ve daha + verimli bir şekilde destekleyebilmektedir. Özellikle, + mpm_winnt modülü, Apache 1.3’te kullanılan POSIX + katmanının yerine işletim sistemine özgü özellikleri + kullanabildiğinden, Apache HTTP Sunucusunun Windows sürümü artık çok + daha verimli bir duruma gelmiştir. Aynı fayda özelleştirilmiş MPM’lerle + diğer işletim sistemlerine de sağlanmıştır.
    • + +
    • Sunucu, belli bir sitenin ihtiyaçlarına uygun olarak daha iyi + kişiselleştirilebilmektedir. Örneğin, eski yazılım ile uyumluluk ve + kararlılığa önem veren siteler prefork modülünü + kullanabilirken, daha geniş ölçeklenebilirlik gerektiren siteler + worker veya event gibi evreli MPM + modüllerinden birini seçebilmektedir.
    • +
    + +

    Kullanıcı açısından MPM’lerin diğer Apache modüllerinden görünüşte bir + farkı yoktur. Asıl fark sunucuya yüklenebilecek azami MPM modülü + sayısının bir ve yalnız bir olarak sınırlanmış olmasıdır. Mevcut MPM + modülleri modül dizini sayfasında listelenmiştir..

    + +
    top
    +
    +

    MPM Seçimi

    + +

    MPM’ler paket yapılandırması sırasında seçilmeli ve sunucu içinde + derlenmelidir. Derleyiciler evrelerin kullanılacağını bildikleri + takdirde çoğu işlevi evreleri kullanacak şekilde + en iyileyebilmektedir.

    + +

    Kullanmak istediğiniz MPM’yi kendiniz seçmek istediğiniz takdirde + configure betiğini + --with-mpm=AD seçeneği ile kullanınız. Burada + AD istenen MPM’nin adıdır.

    + +

    Sunucu derlendikten sonra hangi MPM’nin seçilmiş olduğunu ./httpd + -l komutuyla saptamak mümkündür. Bu komut, MPM de dahil omak + üzere sunucuyla birlikte derlenmiş tüm modülleri listeleyecektir.

    +
    top
    +
    +

    Öntanımlı MPM’ler

    + +

    Aşağıdaki tabloda çeşitli işletim sistemlerinde öntanımlı olan MPM’ler + listelenmiştir. Derleme sırasında başka bir seçim yapmadığınız takdirde + bu işletim sistemlerinde bu MPM’ler seçilmiş olacaktır.

    + + + + + + + + +
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    +
    +
    +

    Mevcut Diller:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mpm.html.zh-cn.utf8 b/docs/manual/mpm.html.zh-cn.utf8 new file mode 100644 index 00000000000..83433e6a8ce --- /dev/null +++ b/docs/manual/mpm.html.zh-cn.utf8 @@ -0,0 +1,139 @@ + + + + + +多处理模块(MPM) - Apache HTTP 服务器 版本 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    多处理模块(MPM)

    +
    +

    可用语言:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    + +

    本文档介绍了什么是多处理模块,以及 Apache HTTP 服务器如何使用它们。

    +
    + +
    top
    +
    +

    介绍

    + +

    Apache HTTP 服务器被设计为一个功能强大,并且灵活的 web 服务器, + 可以在很多平台与环境中工作。不同平台和不同的环境往往需要不同 + 的特性,或可能以不同的方式实现相同的特性最有效率。Apache + 通过模块化的设计来适应各种环境。这种设计允许网站管理员通过在 + 编译时或运行时,选择哪些模块将会加载在服务器中,来选择服务器特性。

    + +

    Apache 2.0 扩展此模块化设计到最基本的 web 服务器功能。 + 它提供了可以选择的多处理模块(MPM),用来绑定到网络端口上,接受请求, + 以及调度子进程处理请求。

    + +

    扩展到这一级别的服务器模块化设计,带来两个重要的好处:

    + +
      +
    • Apache 能更优雅,更高效率的支持不同的平台。尤其是 + Apache 的 Windows 版本现在更有效率了,因为 + mpm_winnt 能使用原生网络特性取代在 + Apache 1.3 中使用的 POSIX 层。它也可以扩展到其它平台 + 来使用专用的 MPM。
    • + +
    • Apache 能更好的为有特殊要求的站点定制。例如,要求 + 更高伸缩性的站点可以选择使用线程的 MPM,即 + worker 或 event; + 需要可靠性或者与旧软件兼容的站点可以使用 + prefork。
    • +
    + +

    在用户看来,MPM 很像其它 Apache 模块。主要是区别是,在任何时间, + 必须有一个,而且只有一个 MPM 加载到服务器中。可用的 MPM 列表位于 + 模块索引页面。

    + +
    top
    +
    +

    选择 MPM

    + +

    MPM 必须在编译前夕,配置时指定,然后编译到服务器程序中。 + 仅当编译器知道使用了线程时,它才有能力优化许多函数。

    + +

    为了使用指定的 MPM,请在执行 configure + 时,使用参数 --with-mpm=NAME。NAME + 是指定的 MPM 名称。

    + +

    编译完成后,可以使用 ./httpd -l 来确定选择的 MPM。 + 此命令会列出编译到服务器程序中的所有模块,包括 MPM。

    +
    top
    +
    +

    默认 MPM

    + +

    下表列出了不同系统的默认 MPM。如果你不在编译时选择,那么它就是你将要使用的 MPM。

    + + + + + + + + +
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    +
    +
    +

    可用语言:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr  | + zh-cn 

    +
    top

    评论

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/mpm.xml b/docs/manual/mpm.xml index 30ec624582b..8eeb44e60cb 100644 --- a/docs/manual/mpm.xml +++ b/docs/manual/mpm.xml @@ -4,12 +4,12 @@ + + + + + + + + + + Modules multi-processus (MPMs) + + +

    Ce document décrit ce qu'est un Module Multi-Processus, ainsi +que la manière dont ces modules sont utilisés par le serveur HTTP Apache.

    +
    + +
    Introduction + +

    Le serveur HTTP Apache a été conçu comme un serveur web puissant et + flexible pouvant fonctionner sur une très grande variété de + plateformes et toute une gamme d'environnements différents. Plateformes + différentes et environnements différents signifient souvent fonctionnalités + différentes, ou utilisation de différentes méthodes pour + implémenter la même fonctionnalité le plus efficacement possible. + Apache s'est toujours accomodé d'une grande variété d'environnements + grâce à sa conception modulaire. Cette conception autorise le webmaster + à choisir quelles fonctionnalités seront incluses + dans le serveur en sélectionnant les modules à charger soit à la + compilation, soit à l'exécution.

    + +

    Apache 2.0 étend cette conception modulaire aux fonctions les plus + élémentaires d'un serveur web. Certains Modules Multi-Processus (MPMs) + sont responsables de l'association aux ports réseau de la machine, + acceptent les requêtes, et se chargent de répartir ces dernières + entre les différents processus enfants.

    + +

    L'extension de la conception modulaire à ce niveau du serveur + comporte deux avantages importants:

    + +
      +
    • Apache peut supporter plus proprement et efficacement une grande + variété de systèmes d'exploitation. En particulier, la version Windows + d'Apache est maintenant beaucoup plus efficace, depuis que + mpm_winnt peut utiliser les fonctionnalités réseau + natives à la place de la couche POSIX utilisée par + Apache 1.3. Cet avantage s'étend aussi aux systèmes d'exploitation + qui implémentent des MPMs spécialisés.
    • + +
    • le serveur est plus à même de répondre aux besoins d'un site + particulier. Par exemple, les sites qui sont très sollicités peuvent + utiliser un MPM threadé comme + worker ou event, tandis que les sites + qui privilégient la stabilité ou la compatibilité avec des logiciels + plus anciens peuvent utiliser un module comme + prefork.
    • +
    + +

    Du point de vue de l'utilisateur, les MPMs ne sont pas différents des + autres modules Apache. La principale différence réside dans le fait qu'un + et un seul MPM à la fois doit être chargé dans le serveur. La liste des + MPMs disponibles est fournie dans module index page.

    + +
    + +
    Choisir un MPM + +

    Les MPMs doivent être choisis à la configuration, et compilés avec + le serveur. Les compilateurs peuvent optimiser de nombreuses fonctions + si les threads sont utilisés, mais seulement s'ils savent que les threads + sont utilisés.

    + +

    Pour le choix proprement dit du MPM désiré, utiliser l'argument + --with-mpm=NOM du script + configure. NOM est le nom + du MPM désiré.

    + +

    Une fois le serveur compilé, il est possible de savoir quel MPM + a été choisi à l'aide de la commande ./httpd -l. + Cette commande fournit la liste de tous les modules compilés + avec le serveur, y compris le MPM.

    +
    + +
    MPM par défaut + +

    La table suivante fournit la liste des MPMs par défaut pour divers +systèmes d'exploitation. Il s'agit du MPM sélectionné si vous ne précisez +pas un choix différent à la compilation.

    + + + + + + + + +
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    +
    + +
    diff --git a/docs/manual/mpm.xml.ja b/docs/manual/mpm.xml.ja index 1efb9f4612f..d36f8f5993b 100644 --- a/docs/manual/mpm.xml.ja +++ b/docs/manual/mpm.xml.ja @@ -1,15 +1,15 @@ - + - + + - + mpm / . @@ -9,7 +10,10 @@ de en es + fr ja ko + tr + zh-cn diff --git a/docs/manual/mpm.xml.tr b/docs/manual/mpm.xml.tr new file mode 100644 index 00000000000..527e3d73de2 --- /dev/null +++ b/docs/manual/mpm.xml.tr @@ -0,0 +1,113 @@ + + + + + + + + + + + Çok Süreçlilik Modülleri (MPM’ler) + + +

    Bu belgede Çok Süreçlilik Modülü denince ne anlaşıldığı ve bunların + Apache HTTP Sunucusu tarafından nasıl kullanıldıkları açıklanmıştır.

    +
    + +
    Giriş + +

    Apache HTTP Sunucusu çok çeşitli platformlar üstünde farklı ortamlarda + çalışabilen güçlü ve esnek bir HTTP sunucusu olarak tasarlanmıştır. + Farklı platformlar ve farklı ortamlar çoğunlukla farklı özellikler veya + aynı özelliğin en yüksek verimlilikle gerçeklenmesi için farklı yöntemler + gerektirir. Apache, geniş ortam çeşitliliğini daima modüler tasarımı + sayesinde uzlaştırmıştır. Bu tasarım, site yöneticilerine, sunucularında + bulunmasını istedikleri özellikleri derleme sırasında veya çalışma anında + gerekli modülleri yüklemek suretiyle seçebilme imkanı verir.

    + +

    Apache 2.0, bu modüler tasarımı sunucunun en temel işlevlerine kadar + indirmiştir. Sunucu, Çok Süreçlilik Modülleri adı verilen ve makine + üzerindeki ağ portlarının bağlanmasından, isteklerin kabul edilmesinden + ve bu istekleri yanıtlayacak çocuklara dağıtmaktan sorumlu olan + modüllerin seçimine imkan verecek bir yapılanma ile gelir.

    + +

    Sunucunun modüler tasarımının bu seviyede genişletilmesi iki önemli + yarar sağlar:

    + +
      +
    • Apache geniş çeşitlilikteki işletim sistemlerini daha temiz ve daha + verimli bir şekilde destekleyebilmektedir. Özellikle, + mpm_winnt modülü, Apache 1.3’te kullanılan POSIX + katmanının yerine işletim sistemine özgü özellikleri + kullanabildiğinden, Apache HTTP Sunucusunun Windows sürümü artık çok + daha verimli bir duruma gelmiştir. Aynı fayda özelleştirilmiş MPM’lerle + diğer işletim sistemlerine de sağlanmıştır.
    • + +
    • Sunucu, belli bir sitenin ihtiyaçlarına uygun olarak daha iyi + kişiselleştirilebilmektedir. Örneğin, eski yazılım ile uyumluluk ve + kararlılığa önem veren siteler prefork modülünü + kullanabilirken, daha geniş ölçeklenebilirlik gerektiren siteler + worker veya event gibi evreli MPM + modüllerinden birini seçebilmektedir.
    • +
    + +

    Kullanıcı açısından MPM’lerin diğer Apache modüllerinden görünüşte bir + farkı yoktur. Asıl fark sunucuya yüklenebilecek azami MPM modülü + sayısının bir ve yalnız bir olarak sınırlanmış olmasıdır. Mevcut MPM + modülleri modül dizini sayfasında listelenmiştir..

    + +
    + +
    MPM Seçimi + +

    MPM’ler paket yapılandırması sırasında seçilmeli ve sunucu içinde + derlenmelidir. Derleyiciler evrelerin kullanılacağını bildikleri + takdirde çoğu işlevi evreleri kullanacak şekilde + en iyileyebilmektedir.

    + +

    Kullanmak istediğiniz MPM’yi kendiniz seçmek istediğiniz takdirde + configure betiğini + --with-mpm=AD seçeneği ile kullanınız. Burada + AD istenen MPM’nin adıdır.

    + +

    Sunucu derlendikten sonra hangi MPM’nin seçilmiş olduğunu ./httpd + -l komutuyla saptamak mümkündür. Bu komut, MPM de dahil omak + üzere sunucuyla birlikte derlenmiş tüm modülleri listeleyecektir.

    +
    + +
    Öntanımlı MPM’ler + +

    Aşağıdaki tabloda çeşitli işletim sistemlerinde öntanımlı olan MPM’ler + listelenmiştir. Derleme sırasında başka bir seçim yapmadığınız takdirde + bu işletim sistemlerinde bu MPM’ler seçilmiş olacaktır.

    + + + + + + + + +
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    +
    + +
    diff --git a/docs/manual/mpm.xml.zh-cn b/docs/manual/mpm.xml.zh-cn new file mode 100644 index 00000000000..04dd8808564 --- /dev/null +++ b/docs/manual/mpm.xml.zh-cn @@ -0,0 +1,92 @@ + + + + + + + + + + 多处理模块(MPM) + + +

    本文档介绍了什么是多处理模块,以及 Apache HTTP 服务器如何使用它们。

    +
    + +
    介绍 + +

    Apache HTTP 服务器被设计为一个功能强大,并且灵活的 web 服务器, + 可以在很多平台与环境中工作。不同平台和不同的环境往往需要不同 + 的特性,或可能以不同的方式实现相同的特性最有效率。Apache + 通过模块化的设计来适应各种环境。这种设计允许网站管理员通过在 + 编译时或运行时,选择哪些模块将会加载在服务器中,来选择服务器特性。

    + +

    Apache 2.0 扩展此模块化设计到最基本的 web 服务器功能。 + 它提供了可以选择的多处理模块(MPM),用来绑定到网络端口上,接受请求, + 以及调度子进程处理请求。

    + +

    扩展到这一级别的服务器模块化设计,带来两个重要的好处:

    + +
      +
    • Apache 能更优雅,更高效率的支持不同的平台。尤其是 + Apache 的 Windows 版本现在更有效率了,因为 + mpm_winnt 能使用原生网络特性取代在 + Apache 1.3 中使用的 POSIX 层。它也可以扩展到其它平台 + 来使用专用的 MPM。
    • + +
    • Apache 能更好的为有特殊要求的站点定制。例如,要求 + 更高伸缩性的站点可以选择使用线程的 MPM,即 + worker 或 event; + 需要可靠性或者与旧软件兼容的站点可以使用 + prefork。
    • +
    + +

    在用户看来,MPM 很像其它 Apache 模块。主要是区别是,在任何时间, + 必须有一个,而且只有一个 MPM 加载到服务器中。可用的 MPM 列表位于 + 模块索引页面。

    + +
    + +
    选择 MPM + +

    MPM 必须在编译前夕,配置时指定,然后编译到服务器程序中。 + 仅当编译器知道使用了线程时,它才有能力优化许多函数。

    + +

    为了使用指定的 MPM,请在执行 configure + 时,使用参数 --with-mpm=NAME。NAME + 是指定的 MPM 名称。

    + +

    编译完成后,可以使用 ./httpd -l 来确定选择的 MPM。 + 此命令会列出编译到服务器程序中的所有模块,包括 MPM。

    +
    + +
    默认 MPM + +

    下表列出了不同系统的默认 MPM。如果你不在编译时选择,那么它就是你将要使用的 MPM。

    + + + + + + + + +
    BeOSbeos
    Netwarempm_netware
    OS/2mpmt_os2
    Unixprefork
    Windowsmpm_winnt
    +
    + +
    diff --git a/docs/manual/new_features_2_0.html b/docs/manual/new_features_2_0.html index 798ba8a5915..5462c53dd52 100644 --- a/docs/manual/new_features_2_0.html +++ b/docs/manual/new_features_2_0.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: new_features_2_0.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,9 +12,9 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: new_features_2_0.html.ja.euc-jp +URI: new_features_2_0.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: new_features_2_0.html.ko.euc-kr Content-Language: ko @@ -25,3 +27,7 @@ URI: new_features_2_0.html.ru.koi8-r Content-Language: ru Content-type: text/html; charset=KOI8-R + +URI: new_features_2_0.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/new_features_2_0.html.de b/docs/manual/new_features_2_0.html.de index 4614a5acf84..0c8ef4642e5 100644 --- a/docs/manual/new_features_2_0.html.de +++ b/docs/manual/new_features_2_0.html.de @@ -1,38 +1,46 @@ - -Übersicht der neuen Funktionen in Apache 2.0 - Apache HTTP Server +Übersicht der neuen Funktionen in Apache 2.0 - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Übersicht der neuen Funktionen in Apache 2.0

    +Apache > HTTP-Server > Dokumentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Übersicht der neuen Funktionen in Apache 2.0

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    + pt-br  | + ru  | + tr 

    -

    Dieses Dokument beschreibt einige der wichtigsten Änderungen - des Apache HTTP Servers 2.0 gegenüber der Version 1.3.

    +

    Dieses Dokument beschreibt einige der wichtigsten Änderungen + des Apache HTTP Servers 2.0 gegenüber der Version 1.3.

    +

    Siehe auch

    top

    Core-Erweiterungen

    @@ -41,9 +49,9 @@
    Unix-Threading
    -
    Auf Unix-Systemen mit Unterstützung für POSIX-Threads, +
    Auf Unix-Systemen mit Unterstützung für POSIX-Threads, kann Apache jetzt in einem Multi-Process, Multi-Threaded Hybrid-Mode - gestartet werden. Dies verbessert die Skalierfähigkeit für + gestartet werden. Dies verbessert die Skalierfähigkeit für viele, jedoch nicht unbedingt alle Konfigurationen.
    Neues Build-System
    @@ -51,93 +59,93 @@
    Das Build-System wurde komplett auf der Basis von autoconf und libtool neu geschrieben. Dadurch wird das Apache-Konfigurationssystem dem vieler anderer Packages - ähnlicher.
    + ähnlicher. -
    Multi-Protokoll-Unterstützung
    +
    Multi-Protokoll-Unterstützung
    -
    Apache stellt jetzt die notwendigen Grundfunktionalitäten - bereit, um mehrere Protokolle unterstützen und verarbeiten zu - können. mod_echo wurde hierfür als +
    Apache stellt jetzt die notwendigen Grundfunktionalitäten + bereit, um mehrere Protokolle unterstützen und verarbeiten zu + können. mod_echo wurde hierfür als Beispiel geschrieben.
    -
    Bessere Unterstützung von +
    Bessere Unterstützung von Nicht-Unix-Plattformen
    Apache 2.0 ist schneller und stabiler auf Nicht-Unix-Plattformen - wie BeOS, OS/2 und Windows. Mit der Einführung von + wie BeOS, OS/2 und Windows. Mit der Einführung von Plattform-spezifischen Multi-Processing Modulen (MPMs) und der Apache Portable Runtime (APR), sind diese Plattformen jetzt in ihrem nativen API implementiert, wodurch die Verwendung der - häufig fehlerbehafteten und schlecht funktionierenden + häufig fehlerbehafteten und schlecht funktionierenden POSIX-Emulation-Layer vermieden wird.
    Neues Apache API
    -
    Das API für Module hat sich in 2.0 stark verändert. - Die meisten der Sortierungs-/Prioritätsprobleme von Modulen bei +
    Das API für Module hat sich in 2.0 stark verändert. + Die meisten der Sortierungs-/Prioritätsprobleme von Modulen bei 1.3 sollten nun verschwunden sein. In 2.0 wird hiervon vieles - automatisch durchgeführt. Die Modulsortierung wird jetzt - über einen pre-hook vorgenommen, um mehr Flexibilität - zu bieten. Außerdem wurden neue API-Calls hinzugefügt, - die zusätzliche Modulfähigkeiten zur Verfügung stellen, - ohne den Apache-Kern anpassen zu müssen.
    + automatisch durchgeführt. Die Modulsortierung wird jetzt + über einen pre-hook vorgenommen, um mehr Flexibilität + zu bieten. Außerdem wurden neue API-Calls hinzugefügt, + die zusätzliche Modulfähigkeiten zur Verfügung stellen, + ohne den Apache-Kern anpassen zu müssen. -
    IPv6-Unterstützung
    +
    IPv6-Unterstützung
    Auf Systemen, bei denen die zugrundeliegende Apache Portable - Runtime-Bibliothek IPv6 unterstützt, bekommt Apache - standarmäßig IPv6 Listening Sockets. Zusätzlich - unterstützen die Konfigurationsanweisungen Listen, NameVirtualHost und VirtualHost numerische IPv6-Adressangaben - (z.B., "Listen [fe80::1]:8080").
    + Runtime-Bibliothek IPv6 unterstützt, bekommt Apache + standarmäßig IPv6 Listening Sockets. Zusätzlich + unterstützen die Konfigurationsanweisungen Listen, NameVirtualHost und VirtualHost numerische IPv6-Adressangaben + (z.B., "Listen [2001:db8::1]:8080").
    Filterung
    -
    Apache-Module können jetzt als Filter entwickelt und zur +
    Apache-Module können jetzt als Filter entwickelt und zur Filterung des rein- und rausgehenden Datenstroms des Servers eingesetzt werden. Hierdurch kann beispielsweise die Ausgabe von CGI-Skripten durch den INCLUDES-Filter von mod_include bearbeitet werden und so Server-Side - Include-Anweisungen ausgeführt werden. Das Modul + Include-Anweisungen ausgeführt werden. Das Modul mod_ext_filter erlaubt externen Programmen als Filter zu agieren, in der gleichen Weise wie CGI-Programme als - Eingabe dienen können.
    + Eingabe dienen können.
    Mehrsprachige Fehlermeldungen
    Fehlermeldungen die an den Browser rausgehen, stehen jetzt als - SSI-Dokumente in verschiedenen Sprachen zur Verfügung. Sie - können bei Bedarf durch den Administrator angepasst werden, + SSI-Dokumente in verschiedenen Sprachen zur Verfügung. Sie + können bei Bedarf durch den Administrator angepasst werden, um ein einheitliches Design zu erreichen.
    Vereinfachte Konfiguration
    Viele der verwirrenden Konfigurationsanweisungen wurden vereinfacht. - Die oft für Verwirrung sorgenden Port- und + Die oft für Verwirrung sorgenden Port- und BindAddress-Anweisungen wurden entfernt. - Ausschließlich die Listen-Anweisung wird nun zum + Ausschließlich die Listen-Anweisung wird nun zum Setzen von IP-Addressen und Portnummern benutzt. - Der Servername und die Portnummer, die für Weiterleitungen und - zur Erkennung virtueller Server verwendet werden, werden über + Der Servername und die Portnummer, die für Weiterleitungen und + zur Erkennung virtueller Server verwendet werden, werden über die ServerName-Anweisung konfiguriert.
    -
    Native Windows NT Unicode-Unterstützung
    +
    Native Windows NT Unicode-Unterstützung
    -
    Apache 2.0 auf Windows NT benutzt jetzt utf-8 für alle +
    Apache 2.0 auf Windows NT benutzt jetzt utf-8 für alle Dateinamen-Kodierungen. Diese werden direkt auf das zugrundeliegende - Unicode-Dateisystem abgebildet, wodurch Mehrsprach-Unterstützung - für alle Windows NT-basierten Installationen, inklusive Windows - 2000 und Windows XP, zur Verfügung gestellt wird. - Diese Unterstützung ist nicht auf Windows 95, 98 oder ME - verfügbar. Hier wird weiterhin die jeweils lokale Codepage des - Rechners für den Zugriff auf das Dateisystem verwendet.
    + Unicode-Dateisystem abgebildet, wodurch Mehrsprach-Unterstützung + für alle Windows NT-basierten Installationen, inklusive Windows + 2000 und Windows XP, zur Verfügung gestellt wird. + Diese Unterstützung ist nicht auf Windows 95, 98 oder ME + verfügbar. Hier wird weiterhin die jeweils lokale Codepage des + Rechners für den Zugriff auf das Dateisystem verwendet. -
    Bibliothek für reguläre Ausdrücke aktualisiert
    +
    Bibliothek für reguläre Ausdrücke aktualisiert
    -
    Apache 2.0 enthält die "Perl Compatible +
    Apache 2.0 enthält die "Perl Compatible Regular Expression Library" (PCRE). - Bei der Auswertung aller regulären Ausdrücke wird nun - die leistungsfähigere Syntax von Perl 5 verwendet.
    + Bei der Auswertung aller regulären Ausdrücke wird nun + die leistungsfähigere Syntax von Perl 5 verwendet.
    top
    @@ -150,7 +158,7 @@
    Neues Modul in Apache 2.0. Dieses Modul ist ein Interface zu den von OpenSSL bereitgestellten SSL/TLS - Verschlüsselungs-Protokollen.
    + Verschlüsselungs-Protokollen.
    mod_dav
    @@ -161,57 +169,57 @@
    mod_deflate
    Neues Modul in Apache 2.0. Dieses Modul erlaubt es Browsern, die - dies unterstützen, eine Komprimierung des Inhaltes vor der + dies unterstützen, eine Komprimierung des Inhaltes vor der Auslieferung anzufordern, um so Netzwerk-Bandbreite zu sparen.
    -
    mod_auth_ldap
    +
    mod_auth_ldap
    -
    Neues Modul in Apache 2.0.41. Diese Modul ermöglicht +
    Neues Modul in Apache 2.0.41. Diese Modul ermöglicht die Verwendung einer LDAP-Datenbank zur Speicherung von - Berechtigungsdaten für die HTTP-Basic-Authentication. + Berechtigungsdaten für die HTTP-Basic-Authentication. Ein Begleitmodul, mod_ldap, stellt einen Verbindungs-Pool und die Pufferung von Abfrageergebnissen zur - Verfügung. + Verfügung.
    mod_auth_digest
    -
    Zusätzliche Unterstützung für - prozessübergreifendes Session-Caching mittels Shared-Memory. +
    Zusätzliche Unterstützung für + prozessübergreifendes Session-Caching mittels Shared-Memory.
    mod_charset_lite
    Neues Modul in Apache 2.0. - Dieses experimentelle Modul erlaubt Zeichensatz-Übersetzungen oder - -Umschlüsselung.
    + Dieses experimentelle Modul erlaubt Zeichensatz-Übersetzungen oder + -Umschlüsselung.
    mod_file_cache
    Neues Modul in Apache 2.0. Dieses Modul beinhaltet die - Funktionalität von mod_mmap_static aus Apache 1.3, + Funktionalität von mod_mmap_static aus Apache 1.3, plus einige weitere Caching-Funktionen.
    mod_headers
    Dieses Modul ist in Apache 2.0 deutlich flexibler geworden. Es kann jetzt die von mod_proxy genutzten Request-Header - manipulieren und es ist möglich Response-Header auf Basis von - definierten Bedingungen zu verändern.
    + manipulieren und es ist möglich Response-Header auf Basis von + definierten Bedingungen zu verändern.
    mod_proxy
    Das Proxy Modul wurde komplett neu geschrieben um die - Möglichkeiten der neuen Filter-Funktionalität - auszuschöpfen und um einen zuverlässigen Proxy zu haben, der + Möglichkeiten der neuen Filter-Funktionalität + auszuschöpfen und um einen zuverlässigen Proxy zu haben, der den HTTP/1.1-Spezifikationen entspricht. Neue <Proxy> -Konfigurationsabschnitte bieten eine besser lesbare (und intern schnellere) Kontrolle der vermittelten Seiten. - Die überladenen <Directory + Die überladenen <Directory "proxy:...">-Konfigurationen werden nicht - mehr unterstützt. Das Modul ist nun in mehrere Module - unterteilt, die jeweils ein bestimmtes Übertragungsprotokoll - unterstützen, wie proxy_connect, + mehr unterstützt. Das Modul ist nun in mehrere Module + unterteilt, die jeweils ein bestimmtes Übertragungsprotokoll + unterstützen, wie proxy_connect, proxy_ftp und proxy_http.
    mod_negotiation
    @@ -219,45 +227,67 @@
    Die neue Konfigurationsanweisung ForceLanguagePriority kann benutzt werden, um sicherzustellen, dass ein Client auf jeden Fall ein einzelnes Dokument, anstatt einer NOT ACCEPTABLE- oder - MULTIPLE CHOICES-Antwort, bekommt. Zusätzlich wurden die + MULTIPLE CHOICES-Antwort, bekommt. Zusätzlich wurden die Negotiation- und Multiview-Algorithmen angepasst um einheitlichere - Ergebnisse zu liefern. Außerdem wird ein neues + Ergebnisse zu liefern. Außerdem wird ein neues Type-Map-Format bereitgestellt, das Dokumenteninhalte direkt enthalten kann.
    mod_autoindex
    -
    Automatisch erzeugte Verzeichnisindizes können zur besseren - Übersichtlichkeit durch HTML-Tabellen dargestellt werden. +
    Automatisch erzeugte Verzeichnisindizes können zur besseren + Übersichtlichkeit durch HTML-Tabellen dargestellt werden. Genauere Sortierungen, wie Sortierung nach Versionsnummer und - Wildcard-Filterung des Verzeichnisindizes werden unterstützt.
    + Wildcard-Filterung des Verzeichnisindizes werden unterstützt.
    mod_include
    Neue Anweisungen erlauben es, die Standard Start- und Endtags von - SSI-Elementen zu ändern. Zudem können die Default-Formate - für Fehlermeldungen und Zeitangaben nun ebenfalls in der + SSI-Elementen zu ändern. Zudem können die Default-Formate + für Fehlermeldungen und Zeitangaben nun ebenfalls in der Serverkonfiguration vorgenommen werden. Auf die Ergebnisse der - Auswertung und Gruppierung von regulären Ausdrücken (jetzt - auf Basis der Perl-Syntax für reguläre Ausdrücke) kann - über die mod_include Variablen $0 + Auswertung und Gruppierung von regulären Ausdrücken (jetzt + auf Basis der Perl-Syntax für reguläre Ausdrücke) kann + über die mod_include Variablen $0 bis $9 zugegriffen werden.
    -
    mod_auth_dbm
    +
    mod_auth_dbm
    -
    DBM-ähnliche Datenbanken werden jetzt durch die - Konfigurationsaweisung AuthDBMType unterstützt.
    +
    DBM-ähnliche Datenbanken werden jetzt durch die + Konfigurationsaweisung AuthDBMType unterstützt.
    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    -
    + pt-br  | + ru  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.en b/docs/manual/new_features_2_0.html.en index 8470b22e35d..310c84fe466 100644 --- a/docs/manual/new_features_2_0.html.en +++ b/docs/manual/new_features_2_0.html.en @@ -1,30 +1,38 @@ - -Overview of new features in Apache 2.0 - Apache HTTP Server +Overview of new features in Apache 2.0 - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Overview of new features in Apache 2.0

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Overview of new features in Apache 2.0

    Available Languages:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    + pt-br  | + ru  | + tr 

    This document describes some of the major changes between the @@ -32,7 +40,7 @@

    +

    See also

    top

    Core Enhancements

    @@ -83,7 +91,7 @@ Apache Portable Runtime library, Apache gets IPv6 listening sockets by default. Additionally, the Listen, NameVirtualHost, and VirtualHost directives support IPv6 numeric address strings (e.g., "Listen - [fe80::1]:8080"). + [2001:db8::1]:8080
    ").
    Filtering
    @@ -153,7 +161,7 @@ browsers to request that content be compressed before delivery, saving network bandwidth. -
    mod_auth_ldap
    +
    mod_auth_ldap
    New module in Apache 2.0.41. This module allows an LDAP database to be used to store credentials for HTTP Basic @@ -221,23 +229,44 @@ using mod_include's variables $0 .. $9.
    -
    mod_auth_dbm
    +
    mod_auth_dbm
    Now supports multiple types of DBM-like databases using the - AuthDBMType - directive.
    + AuthDBMType directive.

    Available Languages:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    -
    + pt-br  | + ru  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.fr b/docs/manual/new_features_2_0.html.fr index 3996750f454..6c1318a83da 100644 --- a/docs/manual/new_features_2_0.html.fr +++ b/docs/manual/new_features_2_0.html.fr @@ -1,142 +1,155 @@ - -Vue d'ensemble des nouvelles fonctionnalités d'Apache 2.0 - Serveur Apache HTTP +Vue d'ensemble des nouvelles fonctionnalités d'Apache 2.0 - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    Vue d'ensemble des nouvelles fonctionnalités d'Apache 2.0

    +Apache > Serveur HTTP > Documentation > Version 2.2

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Vue d'ensemble des nouvelles fonctionnalités d'Apache 2.0

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    + pt-br  | + ru  | + tr 

    -

    Ce document décrit les changements majeurs apportés entre les +

    Ce document décrit les changements majeurs apportés entre les versions 1.3 et 2.0 du serveur HTTP Apache.

    - +
    top
    -

    Améliorations du Système de Base

    +

    Améliorations du Système de Base

    Threading Unix
    -
    Sur les systèmes Unix qui supportent les threads POSIX, Apache - peut à présent tourner en mode hybride multi-processus et - multi-threadé, ce qui augmente l'extensibilité et la performance +
    Sur les systèmes Unix qui supportent les threads POSIX, Apache + peut à présent tourner en mode hybride multi-processus et + multi-threadé, ce qui augmente l'extensibilité et la performance du serveur pour la plupart des configurations.
    -
    Nouveau Système de Compilation
    +
    Nouveau Système de Compilation
    -
    Le processus de compilation a été refait de A à Z; - il utilise à présent autoconf et libtool, - ce qui rend la compilation d'Apache plus familière aux utilisateurs - d'autre logiciels de mème type.
    +
    Le processus de compilation a été refait de A à Z; + il utilise à présent autoconf et libtool, + ce qui rend la compilation d'Apache plus familière aux utilisateurs + d'autre logiciels de mème type.
    Support Multiprotocole
    -
    Apache dispose désormais de l'infrastructure nécessaire pour supporter +
    Apache dispose désormais de l'infrastructure nécessaire pour supporter d'autres protocoles. Le module mod_echo illustre ces - possibilités.
    + possibilités. -
    Support amélioré des Plate-formes non-Unix
    +
    Support amélioré des Plate-formes non-Unix
    Apache 2.0 se montre plus rapide et plus stable sur les plate-formes non Unix, telles BeOS, OS/2, NetWare et Windows. L'apparition des Modules Multi-Processus (MPMs), ainsi que de - la bibliothèque "Apache Portable Runtime" (APR) permet a Apache de + la bibliothèque "Apache Portable Runtime" (APR) permet a Apache de tirer parti des API natives de ces plate-formes, sans s'appuyer sur leurs - couches POSIX souvent boguées et peu optimisées.
    + couches POSIX souvent boguées et peu optimisées.
    Nouvelle API Apache
    -
    L'Interface de Programmation (API) des modules a beaucoup changé - avec le passage à la version 2.0. - Les problèmes d'ordre et de priorité des modules, rencontrés - avec la version 1.3, devraient maintenant être résolus. Apache 2.0 - gère ces problèmes de façon automatique. L'ordre des modules - est géré au moyen de "crochets" (hooks), ce qui rend la gestion - flexible. De nouveaux appels ont été également créés - afin de permettre l'implémentation d'autres fonctions dans les modules, +
    L'Interface de Programmation (API) des modules a beaucoup changé + avec le passage à la version 2.0. + Les problèmes d'ordre et de priorité des modules, rencontrés + avec la version 1.3, devraient maintenant être résolus. Apache 2.0 + gère ces problèmes de façon automatique. L'ordre des modules + est géré au moyen de "crochets" (hooks), ce qui rend la gestion + flexible. De nouveaux appels ont été également créés + afin de permettre l'implémentation d'autres fonctions dans les modules, sans devoir corriger le noyau du serveur Apache.
    Support IPv6
    -
    Sur les systèmes où la bibliothèque Apache Portable Runtime - supporte IPv6, Apache peut par défaut écouter sur des interfaces +
    Sur les systèmes où la bibliothèque Apache Portable Runtime + supporte IPv6, Apache peut par défaut écouter sur des interfaces de connexions IPv6. Les directives Listen, NameVirtualHost et - VirtualHost supportent également - les adresses IPv6 (comme par exemple, dans "Listen[fe80::1]:8080").
    + VirtualHost supportent également + les adresses IPv6 (comme par exemple, dans "Listen[2001:db8::1]:8080").
    Filtering
    -
    Il est maintenant possible d'écrire des modules Apache pour filtrer - les flux de données entrant ou sortant du serveur. A titre d'exemple, +
    Il est maintenant possible d'écrire des modules Apache pour filtrer + les flux de données entrant ou sortant du serveur. A titre d'exemple, il est possible de filtrer des directives Server Side Include de la sortie standard d'un script CGI, au moyen du filtre INCLUDES fourni par le module mod_include. Le module - mod_ext_filter permet quant à lui l'utilisation comme - filtres de programmes externes à Apache, de la même manière + mod_ext_filter permet quant à lui l'utilisation comme + filtres de programmes externes à Apache, de la même manière qu'on peut utiliser des programmes CGI comme Handlers.
    -
    Réponses d'Erreurs Multilangues
    +
    Réponses d'Erreurs Multilangues
    -
    Les messages d'erreur envoyés au navigateur existent à présent en - plusieurs langues avec des documents SSI. Ces messages peuvent être - personnalisés par l'administrateur afin de s'intégrer avec le site web.
    +
    Les messages d'erreur envoyés au navigateur existent à présent en + plusieurs langues avec des documents SSI. Ces messages peuvent être + personnalisés par l'administrateur afin de s'intégrer avec le site web.
    Simplification de la Configuration
    -
    Beaucoup de directives, auparavant peu claires, ont été simplifiées. +
    Beaucoup de directives, auparavant peu claires, ont été simplifiées. Les directives Port et BindAddress, souvent - sources d'incompréhension, ont disparus. Désormais seule la directive + sources d'incompréhension, ont disparus. Désormais seule la directive Listen sert de liaison pour les adresses IP; la directive ServerName ne - précise le nom du serveur et son port que pour les redirections et la - gestion des hôtes virtuels.
    + précise le nom du serveur et son port que pour les redirections et la + gestion des hôtes virtuels.
    Support natif de l'Unicode sous Windows NT
    -
    Apache 2.0 sur Windows NT utilise à présent l'utf-8 pour tous les +
    Apache 2.0 sur Windows NT utilise à présent l'utf-8 pour tous les noms de fichiers. Ces noms de fichiers sont directement traduits vers - l'encodage Unicode du système de fichiers, ce qui permet le support + l'encodage Unicode du système de fichiers, ce qui permet le support multilangue pour toutes les installations sur la famille NT de Windows, y compris Windows 2000 et Windows XP.Ce support n'est pas fonctionnel pour Windows 95, 98 ni ME, qui utilisent les pages de code locales pour - les accès au système de fichiers, comme auparavant.
    + les accès au système de fichiers, comme auparavant. -
    Mise à jour de la Bibliothèque d'Expressions Rationnelles
    +
    Mise à jour de la Bibliothèque d'Expressions Rationnelles
    -
    Apache 2.0 contient la bibliothèque +
    Apache 2.0 contient la bibliothèque d'expressions rationnelles compatible Perl (Perl Compatible Regular Expression Library - PCRE). Toutes les expressions rationnelles sont dont - gérées avec la syntaxe de Perl 5, plus puissante.
    + gérées avec la syntaxe de Perl 5, plus puissante.
    top
    -

    Amélioration des Modules

    +

    Amélioration des Modules

    @@ -147,105 +160,127 @@
    mod_dav
    -
    Apparu dans Apache 2.0, ce module implémente les spécifications HTTP de - gestion distribuée de versions et de rédaction (Distributed Authoring and - Versioning - DAV), destinées à la mise en ligne et à la maintenance des +
    Apparu dans Apache 2.0, ce module implémente les spécifications HTTP de + gestion distribuée de versions et de rédaction (Distributed Authoring and + Versioning - DAV), destinées à la mise en ligne et à la maintenance des contenus Web.
    mod_deflate
    Module apparu dans Apachge 2.0, mod_deflate permet aux navigateurs qui - le supportent de demander la compression des contenus envoyés par le serveur. - Cela à l'avantage de réduite l'occupation de la bande passante.
    + le supportent de demander la compression des contenus envoyés par le serveur. + Cela à l'avantage de réduite l'occupation de la bande passante. -
    mod_auth_ldap
    +
    mod_auth_ldap
    Apparu dans Apache 2.0.41, ce module permet aux administrateurs - d'utiliser un arbre LDAP pour gérer la base d'utilisateurs pour les + d'utiliser un arbre LDAP pour gérer la base d'utilisateurs pour les Authentifications Basiques HTTP. Un module voisin, - mod_ldap, permet de globaliser les connexions à l'arbre LDAP - et de garder en mémoire cache ces accès.
    + mod_ldap, permet de globaliser les connexions à l'arbre LDAP + et de garder en mémoire cache ces accès.
    mod_auth_digest
    -
    Améliore les fonctions de cache sur une session entre les différents - processus, en utilisant de la mémoire partagée.
    +
    Améliore les fonctions de cache sur une session entre les différents + processus, en utilisant de la mémoire partagée.
    mod_charset_lite
    -
    Apparu dans Apache 2.0, ce module expérimental permet la conversion - et l'enregistrement entre jeux de caractères.
    +
    Apparu dans Apache 2.0, ce module expérimental permet la conversion + et l'enregistrement entre jeux de caractères.
    mod_file_cache
    -
    Apparu dans Apache 2.0, ce module implémente les fonctionnalités du - module mod_mmap_static présent dans Apache 1.3, et offre des - fonctions plus avancées pour la gestion de la cache.
    +
    Apparu dans Apache 2.0, ce module implémente les fonctionnalités du + module mod_mmap_static présent dans Apache 1.3, et offre des + fonctions plus avancées pour la gestion de la cache.
    mod_headers
    -
    Ce module gagne beaucoup de flexibilité avec Apache 2.0 : on peut - désormais l'utiliser pour modifier les en-têtes des requêtes - utilisés par mod_proxy, et peut aussi positionner les - en-têtes des réponses de manière conditionnelle.
    +
    Ce module gagne beaucoup de flexibilité avec Apache 2.0 : on peut + désormais l'utiliser pour modifier les en-têtes des requêtes + utilisés par mod_proxy, et peut aussi positionner les + en-têtes des réponses de manière conditionnelle.
    mod_proxy
    -
    Le module proxy a été réécrit de A à Z. Il tire - maintenant avantage de la nouvelle infrastructure de filtrage, et implémente +
    Le module proxy a été réécrit de A à Z. Il tire + maintenant avantage de la nouvelle infrastructure de filtrage, et implémente un mandataire plus fiable, et conforme aux normes HTTP/1.1. De nouvelles - sections de configuration ajoutées à + sections de configuration ajoutées à <Proxy> - donnent un contrôle plus lisible et un traitement plus rapide des requêtes - proxifiés; les configurations surcharchées <Directory - "proxy:..."> ne sont pas supportées. Le module a aussi été - fragmenté en plusieurs modules qui gérent chacun leur protocole : + donnent un contrôle plus lisible et un traitement plus rapide des requêtes + proxifiés; les configurations surcharchées <Directory + "proxy:..."> ne sont pas supportées. Le module a aussi été + fragmenté en plusieurs modules qui gérent chacun leur protocole : proxy_connect, proxy_ftp et proxy_http.
    mod_negotiation
    -
    Une nouvelles directive, ForceLanguagePriority a été ajoutée, - elle permet de garantir que le client reçoit un seul document dans tous les - cas, au lieu de réponses NOT ACCEPTABLE ou MULTIPLE CHOICES. Les - algorithmes gérant la négociation et les vues multiples (MultiViews) ont - été nettoyés et donnent des réponses plus logiques. Un nouveau format de - carte de types (map type) qui peut aussi gérer le contenu de documents a - aussi été ajouté.
    +
    Une nouvelles directive, ForceLanguagePriority a été ajoutée, + elle permet de garantir que le client reçoit un seul document dans tous les + cas, au lieu de réponses NOT ACCEPTABLE ou MULTIPLE CHOICES. Les + algorithmes gérant la négociation et les vues multiples (MultiViews) ont + été nettoyés et donnent des réponses plus logiques. Un nouveau format de + carte de types (map type) qui peut aussi gérer le contenu de documents a + aussi été ajouté.
    mod_autoindex
    -
    Les listes auto-générés par Autoindex sont à présent +
    Les listes auto-générés par Autoindex sont à présent configurables, et peuvent utiliser des tables HTML pour une mise en forme plus propre. - L'ordre d'affichage des fichiers est également finement paramètrable, - comme pour le tri par version, et le filtrage par caractères jokers du - listage du répertoire.
    + L'ordre d'affichage des fichiers est également finement paramètrable, + comme pour le tri par version, et le filtrage par caractères jokers du + listage du répertoire.
    mod_include
    -
    De nouvelles directives permettent de modifier la valeur par défaut - des drapeaux start et end des éléments SSI. Ces directives - permettent à la configuration d'affichage de dates et heures d'être - effectuée dans le fichier de configuration principal, plutôt que dans le - document SSI. Les réponses données par des recherches par expressions - rationnelles (qui gèrent à présent les regex Perl) sont - recupérés au moyen des variables $0 à $9.
    +
    De nouvelles directives permettent de modifier la valeur par défaut + des drapeaux start et end des éléments SSI. Ces directives + permettent à la configuration d'affichage de dates et heures d'être + effectuée dans le fichier de configuration principal, plutôt que dans le + document SSI. Les réponses données par des recherches par expressions + rationnelles (qui gèrent à présent les regex Perl) sont + recupérés au moyen des variables $0 à $9.
    -
    mod_auth_dbm
    +
    mod_auth_dbm
    -
    Plusieurs bases de données DBM sont supportées, et sélectionnables - au moyen de la directive AuthDBMType.
    +
    Plusieurs bases de données DBM sont supportées, et sélectionnables + via la directive AuthDBMType.

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    -
    + pt-br  | + ru  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.ja.euc-jp b/docs/manual/new_features_2_0.html.ja.euc-jp deleted file mode 100644 index 0c37b7af4e1..00000000000 --- a/docs/manual/new_features_2_0.html.ja.euc-jp +++ /dev/null @@ -1,253 +0,0 @@ - - - -Apache 2.0 ¤ο·µ¡ǽ¤γµÍ× - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    Apache 2.0 ¤ο·µ¡ǽ¤γµÍ×

    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    - -

    ¤³¤Îʸ½ñ¤Ǥϡ¢Apache HTTP ¥µ¡¼¥ХС¼¥¸¥ç¥ó 1.3 ¤È 2.0 - ¤μç¤ʰ㤤¤ˤĤ¤¤Ƶ­½Ҥ·¤Ƥ¤¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¥³¥¢µ¡ǽ¤γÈĥ

    - - -
    -
    Unix ¤Υ¹¥ì¥åÉ
    - -
    POSIX ¥¹¥ì¥åɤ򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ë Unix ¥·¥¹¥ƥà¾å¤Ǥϡ¢ - Apache ¤ϥޥë¥Á¥ץí¥»¥¹¡¢¥ޥë¥Á¥¹¥ì¥åɤΥϥ¤¥֥ê¥åɥ⡼¥ɤÇ - ¼¹ԤǤ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£¤³¤ì¤ˤè¤ê - ¿¤¯¤ÎÀßÄê¤ˤª¤¤¤ƥ¹¥±¡¼¥é¥ӥê¥ƥ£¤¬¸þ¾夷¤ޤ¹¡£
    - -
    ¿·¤·¤¤¥ӥë¥ɥ·¥¹¥ƥà
    - -
    ¥ӥë¥ɥ·¥¹¥ƥà¤Ï autoconf ¤È libtool - ¤˴ð¤Ť¤¤¿¤â¤Τˤʤë¤褦¤ˡ¢ - ¿·¤·¤¯½ñ¤­ľ¤µ¤ì¤ޤ·¤¿¡£¤³¤ì¤ˤè¤ꡢApache ¤Î configure ¤Υ·¥¹¥ƥà¤Ï - ¾¤Υѥ屡¼¥¸¤Ȼ÷¤¿¤â¤Τˤʤê¤ޤ·¤¿¡£
    - -
    ¥ޥë¥Á¥ץí¥ȥ³¥륵¥ݡ¼¥È
    - -
    Apache ¤Ëʣ¿ô¤Υץí¥ȥ³¥ë¤򰷤¦¤¿¤á¤ε¡¹½¤¬È÷¤ï¤ê¤ޤ·¤¿¡£ - Îã¤Ȥ·¤Æ mod_echo ¤¬½񤫤ì¤Ƥ¤¤ޤ¹¡£
    - -
    Unix °ʳ°¤Υץé¥åȥե©¡¼¥à¤Υµ¥ݡ¼¥ȤβþÁ±
    - -
    Apache 2.0 ¤Ï BeOS¡¢OS/2¡¢Windows ¤ʤɤÎ Unix °ʳ°¤Î - ¥ץé¥åȥե©¡¼¥à¤ǡ¢¤è¤ê®¤¯¡¢¤è¤ê°ÂÄꤷ¤Æưº¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£ - ¥ץé¥åȥե©¡¼¥àÆÃͭ¤Î ¥ޥë¥Á¥ץí¥»¥å·¥󥰥⥸¥塼¥ë (MPM) ¤È - Apache Portable Runtime (APR) ¤ÎƳÆþ¤ˤè¤ꡢ - ¥ͥ¤¥ƥ£¥ô¤Î API ¤ǼÂÁõ¤µ¤ì¤ë¤褦¤ˤʤꡢ - ¥Х°¤¬¿¤¯¡¢À­ǽ¤ΰ­¤¤¤³¤Ȥ¬¿¤¤ POSIX ¥¨¥ߥå¥졼¥·¥ç¥ó¥쥤¥ä¤λÈÍѤò - ²óÈ򤹤뤳¤Ȥ¬¤Ǥ­¤ޤ·¤¿¡£
    - -
    ¿·¤·¤¤ Apache API
    - -
    2.0 ¤Ǥϥ⥸¥塼¥ë¤Î API ¤¬Â礭¤¯ÊѤï¤ê¤ޤ·¤¿¡£ - 1.3 ¤ˤ¢¤ä¿¥⥸¥塼¥ë¤νçÈÖ/ͥÀèÅ٤ÎÌäÂê¤Î¿¤¯¤Ï - ¤ʤ¯¤ʤäƤ¤¤ë¤Ϥº¤Ǥ¹¡£2.0 ¤ÏͥÀèÅ٤ÎÁªÂò¤ò¤ۤȤó¤ɤò¼«ưŪ¤˹Ԥʤ¤¡¢ - ¥⥸¥塼¥ë¤νçÈ֤Ϥè¤ê½ÀÆðÀ­¤ò¹â¤á¤뤿¤á¤˥եå¯Ëè¤˹Ԥʤï¤ì¤ë¤褦¤Ë - ¤ʤê¤ޤ·¤¿¡£¤ޤ¿¡¢¥³¥¢ Apache ¥µ¡¼¥Ф˥ѥåÁ¤򤢤Ƥ뤳¤Ȥʤ¯ - ÄɲäΥ⥸¥塼¥뵡ǽ¤òÄ󶡤¹¤뤳¤Ȥ¬¤Ǥ­¤ë¤褦¤˿·¤·¤¤´ؿô¤¬ - Äɲ䵤ì¤ޤ·¤¿¡£
    - -
    IPv6 ¥µ¥ݡ¼¥È
    - -
    Apache ¤¬»ÈÍѤ·¤Ƥ¤¤ë Apache Portable Runtime library ¤¬ - IPv6 ¤򥵥ݡ¼¥Ȥ·¤Ƥ¤¤륷¥¹¥ƥà¤ǤÏ Apache ¤Ï ¥ǥե©¥ë¥ȤÇ - IPv6 ¤Υ½¥±¥åȤò listen ¤·¤ޤ¹¡£¤µ¤é¤ˡ¢ - Listen, - NameVirtualHost, - VirtualHost - ¤γƥǥ£¥쥯¥ƥ£¥֤¬ IPv6 ¤Υ¢¥ɥ쥹¤ò - ¥µ¥ݡ¼¥Ȥ¹¤ë¤褦¤ˤʤê¤ޤ·¤¿ (Î㤨¤С¢ - "Listen [fe80::1]:8080")¡£
    - -
    ¥ե£¥륿
    - -
    Apache ¤Υ⥸¥塼¥ë¤ϥµ¡¼¥Ф«¤éÁ÷¤é¤ì¤Ƥ­¤¿¤ꡢ¥µ¡¼¥ФØ - Á÷¤륹¥ȥ꡼¥à¤ËÂФ·¤Æưº¤ë¥ե£¥륿¤Ȥ·¤ƽ񤯤³¤Ȥ¬¤Ǥ­¤ë¤褦¤Ë - ¤ʤê¤ޤ·¤¿¡£¤³¤ì¤ˤè¤ꡢÎ㤨¤Ð CGI ¥¹¥¯¥ê¥ץȤνÐÎϤò - mod_include ¤Î INCLUDES ¥ե£¥륿¤ò»ȤäÆ - Server Side Include ¤Υǥ£¥쥯¥ƥ£¥֤ò²òÀϤ¹¤롢 - ¤Ȥ¤¤¦¤褦¤ʤ³¤Ȥ¬²Äǽ¤ˤʤê¤ޤ·¤¿¡£mod_ext_filter - ¤dz°Éô¥ץí¥°¥é¥à¤ò¥ե£¥륿¤Ȥ·¤Æưº¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤Ï CGI ¥ץí¥°¥é¥à¤ò¥ϥó¥ɥé¤Ȥ·¤Æưº¤»¤ë¤ΤÈ - ¤褯»÷¤¿Êýˡ¤ǤǤ­¤ޤ¹¡£
    - -
    ¿¸À¸쥨¥顼±þÅú
    - -
    ¥֥饦¥¶¤ؤΥ¨¥顼±þÅú¤Υá¥å»¡¼¥¸¤¬¡¢SSI ¤Îʸ½ñ¤ò»ȤäÆ - ʣ¿ô¤θÀ¸ì¤ÇÄ󶡤µ¤ì¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£¸«¤¿¤á¤ΰì´ÓÀ­¤òÊݤĤ¿¤á¤Ë - ´ÉÍý¼Ԥ¬¥«¥¹¥¿¥ޥ¤¥º¤¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£
    - -
    ÀßÄê¤δÊÁDz½
    - -
    ¿¤¯¤κ®Íð¤򾷤­¤¬¤Á¤ʥǥ£¥쥯¥ƥ£¥֤¬´ÊÁDz½¤µ¤ì¤ޤ·¤¿¡£ - ¤褯º®Íð¤ò°ú¤­µ¯¤³¤·¤Ƥ¤¤¿ Port ¥ǥ£¥쥯¥ƥ£¥֤È - Bind ¥ǥ£¥쥯¥ƥ£¥֤Ï - ¤ʤ¯¤ʤê¤ޤ·¤¿¡£Listen - ¥ǥ£¥쥯¥ƥ£¥֤Τߤ¬ IP ¥¢¥ɥ쥹¤ΥХ¤¥ó¥ɤ˻Ȥï¤ì¤ޤ¹¡£ - ServerName ¥ǥ£¥쥯¥ƥ£¥֤ǤÏ - ¥ê¥À¥¤¥쥯¥ȤÈ vhost ¤Îǧ¼±¤Τ¿¤á¤À¤±¤˥µ¡¼¥ФÎ̾Á°¤ȥݡ¼¥ÈÈֹæ¤ò - »ØÄꤷ¤ޤ¹¡£
    - -
    Windows NT ¤Υͥ¤¥ƥ£¥ô Unicode ¥µ¥ݡ¼¥È
    - -
    Windows NT ¾å¤Î Apache 2.0 ¤ϥե¡¥¤¥ë̾¤Îʸ»ú¥¨¥󥳡¼¥ÉÁ´¤ƤË - utf-8 ¤ò»Ȥ¦¤褦¤ˤʤê¤ޤ·¤¿¡£¤³¤ì¤é¤Ï Unicode ¥ե¡¥¤¥륷¥¹¥ƥà¤Ë - ľÀÜÊѴ¹¤µ¤ì¤ë¤Τǡ¢Windows 2000 ¤È Windows XP ¤ò´ޤࡢÁ´¤ƤÎ - Windows NT ·ϤÇ¿¸À¸쥵¥ݡ¼¥Ȥ¬Ä󶡤µ¤ì¤ޤ¹¡£ - ¤³¤Υµ¥ݡ¼¥Ȥϡ¢¥ե¡¥¤¥륷¥¹¥ƥà¤Υ¢¥¯¥»¥¹»þ¤˥í¡¼¥«¥ë¤Î - ¥³¡¼¥ɥڡ¼¥¸¤ò»Ȥ¦ Windows 95, 98, ME ¤ˤÏŬÍѤµ¤ì¤ޤ»¤ó¡£
    - -
    Àµµ¬ɽ¸½¥饤¥֥é¥ê¤Υ¢¥åץǡ¼¥È
    - -
    Apache 2.0 ¤Ï Perl - ¸ߴ¹Àµµ¬ɽ¸½¥饤¥֥é¥ê (PCRE) ¤ò´ޤó¤Ǥ¤¤ޤ¹¡£ - Àµµ¬ɽ¸½¤Îɾ²Á¤ˤϡ¢¤è¤궯ÎϤˤʤä¿ Perl 5 - ¹½ʸ¤ò»ÈÍѤ·¤ޤ¹¡£
    - -
    -
    top
    -
    -

    ¥⥸¥塼¥ë¤γÈĥ

    - - -
    -
    mod_ssl
    - -
    Apache 2.0 ¤ο·¥⥸¥塼¥롣¤³¤Υ⥸¥塼¥ë¤Ï OpenSSL ¤¬ - Ä󶡤¹¤ë SSL/TLS °Źæ¥ץí¥ȥ³¥ë¤ؤΥ¤¥󥿥ե§¡¼¥¹¤Ǥ¹¡£
    - -
    mod_dav
    - -
    Apache 2.0 ¤ο·¥⥸¥塼¥롣¤³¤Υ⥸¥塼¥ë¤ϥ¦¥§¥֥³¥ó¥ƥó¥Ĥò - Á÷¤ꡢ°ݻý¤¹¤뤿¤á¤ε¬³Ê - HTTP Distributed Authoring and Versioning (DAV) ¤ò¼ÂÁõ¤·¤Ƥ¤¤ޤ¹¡£
    - -
    mod_deflate
    - -
    Apache 2.0 ¤ο·¥⥸¥塼¥롣Á÷¿®Á°¤ËÁ÷¿®ÆâÍƤ򰵽̤·¤Æ - ¥ͥåȥ¥¯ÂӰè¤òÀáÌ󤹤롢¤Ȥ¤¤¦¥ꥯ¥¨¥¹¥Ȥò¥֥饦¥¶¤¬ - Í׵á¤Ǥ­¤ë¤褦¤ˤ·¤ޤ¹¡£
    - -
    mod_auth_ldap
    - -
    Apache 2.0.41 ¤ο·¥⥸¥塼¥롣HTTP ´ðËÜǧ¾ڤξÚÌÀ½ñ¤òÊݸ¤¹¤ë¤Τˡ¢ - LDAP ¥ǡ¼¥¿¥١¼¥¹¤ò»ÈÍѤǤ­¤ë¤褦¤ˤʤê¤ޤ¹¡£ - ´ØϢ¥⥸¥塼¥ë¤Î mod_ldap ¤ǡ¢ - ¥³¥ͥ¯¥·¥ç¥ó¤Υס¼¥뵡ǽ¤ȷë²̤Υ­¥ã¥å·¥嵡ǽ¤¬Ä󶡤µ¤ì¤ޤ¹¡£
    - -
    mod_auth_digest
    - -
    ¤³¤Υ⥸¥塼¥ë¤϶¦ͭ¥á¥â¥ê¤ò»Ȥ¦¤³¤Ȥˤè¤ꡢ¥ץí¥»¥¹¤ò¤ޤ¿¤¤¤À - ¥»¥å·¥ç¥ó¤Υ­¥ã¥å·¥å¤򥵥ݡ¼¥Ȥ¹¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£
    - -
    mod_charset_lite
    - -
    Apache 2.0 ¤ο·¥⥸¥塼¥롣¤³¤μ¸³Ū¤ʥ⥸¥塼¥ë¤Ï - ¥­¥ã¥饯¥¿¥»¥åȤÎÊѴ¹¤äºÆÉä¹沽¤ò²Äǽ¤ˤ·¤ޤ¹¡£
    - -
    mod_file_cache
    - -
    Apache 2.0 ¤ο·¥⥸¥塼¥롣¤³¤Υ⥸¥塼¥ë¤ˤϡ¢ - Apache 1.3 ¤ˤª¤±¤ë mod_mmap_static µ¡ǽ¤¬´ޤޤ졢 - ¤ޤ¿¡¢ÄɲäΥ­¥ã¥å·¥嵡ǽ¤¬²äï¤äƤ¤¤ޤ¹¡£
    - -
    mod_headers
    - -
    ¤³¤Υ⥸¥塼¥ë¤Ï Apache 2.0 ¤ÇÈó¾ï¤˽ÀÆðÀ­¤¬ - ¹⤯¤ʤê¤ޤ·¤¿¡£mod_proxy - ¤ǻȤï¤ì¤ë¥ꥯ¥¨¥¹¥ȤΥإåÀ¤òÊѹ¹¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¤·¡¢ - ±þÅú¥إåÀ¤ò¾ò·ï¤˱þ¤¸¤ÆÀßÄê¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£
    - -
    mod_proxy
    - -
    proxy ¥⥸¥塼¥ë¤Ͽ·¤·¤¤¥ե£¥륿¤ε¡¹½¤òÍøÍѤ¹¤뤿¤á¤ȡ¢ - ¤è¤꿮Íê¤Ǥ­¤롢HTTP/1.1 ¤˽àµ򤷤¿ proxy ¤ò¼ÂÁõ¤¹¤뤿¤á¤Ë - ´°Á´¤˽ñ¤­ľ¤µ¤ì¤ޤ·¤¿¡£¤µ¤é¤ˡ¢¿·¤·¤¤ - <Proxy> - ÀßÄꥻ¥¯¥·¥ç¥ó¤¬proxy ¤µ¤ì¤륵¥¤¥ȤΤè¤êÆɤߤ䤹¤¯ (ÆâÉôŪ¤ˤâ¤è¤ê®¤¤) - ÀßÄê¤òÄ󶡤·¤ޤ¹¡£¥ª¡¼¥С¼¥í¡¼¥ɤµ¤줿 - <Directory "proxy:... > - ÀßÄê¤ϥµ¥ݡ¼¥Ȥµ¤ì¤Ƥ¤¤ޤ»¤󡣤³¤Υ⥸¥塼¥ë¤Ï proxy_connect, - proxy_ftp, proxy_http - ¤Ȥ¤¤ä¿¡¢ÆÃÄê¤Υץí¥ȥ³¥ë¤򥵥ݡ¼¥Ȥ¹¤ë - ¥⥸¥塼¥ë¤Ëʬ³䤵¤ì¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£
    - -
    mod_negotiation
    - -
    ¥¯¥饤¥¢¥ó¥Ȥ¬ NOT ACCEPTABLE ¤ä MULTIPLE CHOICES ±þÅú¤Î - Âå¤ï¤ê¤˾ï¤ËñÆȤÎʸ½ñ¤ò¼õ¤±¤Ȥë¤褦¤ˤ¹¤뤿¤á¤ˡ¢¿·¤·¤¤¥ǥ£¥쥯¥ƥ£¥Ö - ForceLanguagePriority - ¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£ - ¤µ¤é¤ˡ¢¤è¤ê°ì´ÓÀ­¤Τ¢¤ë·ë²̤òÄ󶡤¹¤뤿¤á¤Ë - ¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤È MultiViews ¤Υ¢¥르¥ꥺ¥ब²þÁ±¤µ¤졢 - ʸ½ñ¤ÎÆâÍƤò´ޤá¤뤳¤ȤΤǤ­¤롢¿·¤·¤¤·Á¼°¤Υ¿¥¤¥ץޥåפ¬ - Ä󶡤µ¤ì¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£
    - -
    mod_autoindex
    - -
    Autoindex ¤µ¤ì¤ë¥ǥ£¥쥯¥ȥê¤ÎÆâÍưìÍ÷¤¬¡¢ - ¤­¤줤¤Ëɽ¼¨¤µ¤ì¤뤿¤á¤Ë HTML ¤Υơ¼¥֥ë¤ò»Ȥ¦¤褦¤Ë - ÀßÄê¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£¤ޤ¿¡¢¥С¼¥¸¥ç¥ó¤ˤè¤륽¡¼¥ƥ£¥󥰤ʤɡ¢ - ¤è¤êº٤«¤¤¥½¡¼¥ƥ£¥󥰤ÎÀ©¸椬¤Ǥ­¤ë¤褦¤ˤʤꡢ¥ǥ£¥쥯¥ȥê - ¤ÎÆâÍưìÍ÷¤ò¥磻¥ë¥ɥ«¡¼¥ɤˤè¤êÁªÊ̤¹¤뤳¤Ȥ¬¤Ǥ­¤ë¤褦¤ˤâ¤ʤê¤ޤ·¤¿¡£
    - -
    mod_include
    - -
    ¿·¤·¤¤¥ǥ£¥쥯¥ƥ£¥֤ˤè¤ꡢSSI ¤Υǥե©¥ë¥Ȥγ«»ϥ¿¥°¤Ƚªλ¥¿¥°¤ò - Êѹ¹¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£¤ޤ¿¡¢¥¨¥顼¤Ȼþ¹ï¤ηÁ¼°¤ÎÀßÄ꤬ SSI ¤Î - ʸ½ñÃæ¤ǤϤʤ¯¡¢¼çÀßÄê¥ե¡¥¤¥ëÃæ¤ǹԤʤ¨¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£ - Àµµ¬ɽ¸½¤βòÀϤȥ°¥롼¥ײ½¤ηë²Ì (Perl ¤ÎÀµµ¬ɽ¸½¤ι½ʸ¤Ë - ´ð¤Ť¤¤¿¤â¤Τˤʤê¤ޤ·¤¿) ¤ò mod_include - ¤ÎÊѿô $0 .. $9 ¤ˤè¤ê¼èÆÀ¤Ǥ­¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£
    - -
    mod_auth_dbm
    - -
    AuthDBMType - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤ꡢʣ¿ô¤Î DBM ·¿¤Υǡ¼¥¿¥١¼¥¹¤򥵥ݡ¼¥Ȥ¹¤ë - ¤褦¤ˤʤê¤ޤ·¤¿¡£
    - -
    -
    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    - \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.ja.utf8 b/docs/manual/new_features_2_0.html.ja.utf8 new file mode 100644 index 00000000000..e161f70b56c --- /dev/null +++ b/docs/manual/new_features_2_0.html.ja.utf8 @@ -0,0 +1,287 @@ + + + + + +Apache 2.0 の新機能の概要 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.0 の新機能の概要

    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + pt-br  | + ru  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    この文書では、Apache HTTP サーババージョン 1.3 と 2.0 + の主な違いについて記述しています。

    +
    + +
    top
    +
    +

    コア機能の拡張

    + + +
    +
    Unix のスレッド
    + +
    POSIX スレッドをサポートしている Unix システム上では、 + Apache はマルチプロセス、マルチスレッドのハイブリッドモードで + 実行できるようになりました。これにより + 多くの設定においてスケーラビリティが向上します。
    + +
    新しいビルドシステム
    + +
    ビルドシステムは autoconf と libtool + に基づいたものになるように、 + 新しく書き直されました。これにより、Apache の configure のシステムは + 他のパッケージと似たものになりました。
    + +
    マルチプロトコルサポート
    + +
    Apache に複数のプロトコルを扱うための機構が備わりました。 + 例として mod_echo が書かれています。
    + +
    Unix 以外のプラットフォームのサポートの改善
    + +
    Apache 2.0 は BeOS、OS/2、Windows などの Unix 以外の + プラットフォームで、より速く、より安定して動作するようになりました。 + プラットフォーム特有の マルチプロセッシングモジュール (MPM) と + Apache Portable Runtime (APR) の導入により、 + ネイティヴの API で実装されるようになり、 + バグが多く、性能の悪いことが多い POSIX エミュレーションレイヤの使用を + 回避することができました。
    + +
    新しい Apache API
    + +
    2.0 ではモジュールの API が大きく変わりました。 + 1.3 にあったモジュールの順番/優先度の問題の多くは + なくなっているはずです。2.0 は優先度の選択をほとんどを自動的に行ない、 + モジュールの順番はより柔軟性を高めるためにフック毎に行なわれるように + なりました。また、コア Apache サーバにパッチをあてることなく + 追加のモジュール機能を提供することができるように新しい関数が + 追加されました。
    + +
    IPv6 サポート
    + +
    Apache が使用している Apache Portable Runtime library が + IPv6 をサポートしているシステムでは Apache は デフォルトで + IPv6 のソケットを listen します。さらに、 + Listen, + NameVirtualHost, + VirtualHost + の各ディレクティブが IPv6 のアドレスを + サポートするようになりました (例えば、 + "Listen [2001:db8::1]:8080")。
    + +
    フィルタ
    + +
    Apache のモジュールはサーバから送られてきたり、サーバへ + 送るストリームに対して動作するフィルタとして書くことができるように + なりました。これにより、例えば CGI スクリプトの出力を + mod_include の INCLUDES フィルタを使って + Server Side Include のディレクティブを解析する、 + というようなことが可能になりました。mod_ext_filter + で外部プログラムをフィルタとして動作させることができます。 + これは CGI プログラムをハンドラとして動作させるのと + よく似た方法でできます。
    + +
    多言語エラー応答
    + +
    ブラウザへのエラー応答のメッセージが、SSI の文書を使って + 複数の言語で提供されるようになりました。見ための一貫性を保つために + 管理者がカスタマイズすることもできます。
    + +
    設定の簡素化
    + +
    多くの混乱を招きがちなディレクティブが簡素化されました。 + よく混乱を引き起こしていた Port ディレクティブと + Bind ディレクティブは + なくなりました。Listen + ディレクティブのみが IP アドレスのバインドに使われます。 + ServerName ディレクティブでは + リダイレクトと vhost の認識のためだけにサーバの名前とポート番号を + 指定します。
    + +
    Windows NT のネイティヴ Unicode サポート
    + +
    Windows NT 上の Apache 2.0 はファイル名の文字エンコード全てに + utf-8 を使うようになりました。これらは Unicode ファイルシステムに + 直接変換されるので、Windows 2000 と Windows XP を含む、全ての + Windows NT 系で多言語サポートが提供されます。 + このサポートは、ファイルシステムのアクセス時にローカルの + コードページを使う Windows 95, 98, ME には適用されません。
    + +
    正規表現ライブラリのアップデート
    + +
    Apache 2.0 は Perl + 互換正規表現ライブラリ (PCRE) を含んでいます。 + 正規表現の評価には、より強力になった Perl 5 + 構文を使用します。
    + +
    +
    top
    +
    +

    モジュールの拡張

    + + +
    +
    mod_ssl
    + +
    Apache 2.0 の新モジュール。このモジュールは OpenSSL が + 提供する SSL/TLS 暗号プロトコルへのインタフェースです。
    + +
    mod_dav
    + +
    Apache 2.0 の新モジュール。このモジュールはウェブコンテンツを + 送り、維持するための規格 + HTTP Distributed Authoring and Versioning (DAV) を実装しています。
    + +
    mod_deflate
    + +
    Apache 2.0 の新モジュール。送信前に送信内容を圧縮して + ネットワーク帯域を節約する、というリクエストをブラウザが + 要求できるようにします。
    + +
    mod_auth_ldap
    + +
    Apache 2.0.41 の新モジュール。HTTP 基本認証の証明書を保存するのに、 + LDAP データベースを使用できるようになります。 + 関連モジュールの mod_ldap で、 + コネクションのプール機能と結果のキャッシュ機能が提供されます。
    + +
    mod_auth_digest
    + +
    このモジュールは共有メモリを使うことにより、プロセスをまたいだ + セッションのキャッシュをサポートするようになりました。
    + +
    mod_charset_lite
    + +
    Apache 2.0 の新モジュール。この実験的なモジュールは + キャラクタセットの変換や再符号化を可能にします。
    + +
    mod_file_cache
    + +
    Apache 2.0 の新モジュール。このモジュールには、 + Apache 1.3 における mod_mmap_static 機能が含まれ、 + また、追加のキャッシュ機能が加わっています。
    + +
    mod_headers
    + +
    このモジュールは Apache 2.0 で非常に柔軟性が + 高くなりました。mod_proxy + で使われるリクエストのヘッダを変更できるようになりましたし、 + 応答ヘッダを条件に応じて設定できるようになりました。
    + +
    mod_proxy
    + +
    proxy モジュールは新しいフィルタの機構を利用するためと、 + より信頼できる、HTTP/1.1 に準拠した proxy を実装するために + 完全に書き直されました。さらに、新しい + <Proxy> + 設定セクションがproxy されるサイトのより読みやすく (内部的にもより速い) + 設定を提供します。オーバーロードされた + <Directory "proxy:... > + 設定はサポートされていません。このモジュールは proxy_connect, + proxy_ftp, proxy_http + といった、特定のプロトコルをサポートする + モジュールに分割されるようになりました。
    + +
    mod_negotiation
    + +
    クライアントが NOT ACCEPTABLE や MULTIPLE CHOICES 応答の + 代わりに常に単独の文書を受けとるようにするために、新しいディレクティブ + ForceLanguagePriority + を使うことができるようになりました。 + さらに、より一貫性のある結果を提供するために + ネゴシエーションと MultiViews のアルゴリズムが改善され、 + 文書の内容を含めることのできる、新しい形式のタイプマップが + 提供されるようになりました。
    + +
    mod_autoindex
    + +
    Autoindex されるディレクトリの内容一覧が、 + きれいに表示されるために HTML のテーブルを使うように + 設定できるようになりました。また、バージョンによるソーティングなど、 + より細かいソーティングの制御ができるようになり、ディレクトリ + の内容一覧をワイルドカードにより選別することができるようにもなりました。
    + +
    mod_include
    + +
    新しいディレクティブにより、SSI のデフォルトの開始タグと終了タグを + 変更できるようになりました。また、エラーと時刻の形式の設定が SSI の + 文書中ではなく、主設定ファイル中で行なえるようになりました。 + 正規表現の解析とグループ化の結果 (Perl の正規表現の構文に + 基づいたものになりました) を mod_include + の変数 $0 .. $9 により取得できるようになりました。
    + +
    mod_auth_dbm
    + +
    AuthDBMType + ディレクティブにより、複数の DBM 型のデータベースをサポートする + ようになりました。
    + +
    +
    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + pt-br  | + ru  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.ko.euc-kr b/docs/manual/new_features_2_0.html.ko.euc-kr index 268baeadbf2..67647a7217d 100644 --- a/docs/manual/new_features_2_0.html.ko.euc-kr +++ b/docs/manual/new_features_2_0.html.ko.euc-kr @@ -1,22 +1,29 @@ - -Apache 2.0ÀÇ »õ·οî ±â´É °³¿ä - Apache HTTP Server +Apache 2.0ÀÇ »õ·οî ±â´É °³¿ä - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Apache 2.0ÀÇ »õ·οî ±â´É °³¿ä

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.0ÀÇ »õ·οî ±â´É °³¿ä

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  | @@ -24,15 +31,18 @@  ja  |  ko  |  pt-br  | - ru 

    + ru  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ÀÌ ¹®¼­´Â ¾ÆÆÄġ À¥¼­¹ö 1.3 ¹öÀü°ú 2.0 ¹öÀü°£ÀÇ ÁֵÈ Â÷ÀÌÁ¡À» ¼³¸íÇѴÙ.

    +

    Âü°í

    top

    ÇٽÉ ºκп¡¼­ ³ª¾ÆÁø Á¡

    @@ -80,7 +90,7 @@ NameVirtualHost, VirtualHost Áö½þ IPv6 ¼ýÀÚ ÁּҸ¦ Áö¿øÇѴÙ. (¿¹, - "Listen [fe80::1]:8080"). + "Listen [2001:db8::1]:8080").
    ÇÊÅ͸µ
    @@ -226,8 +236,30 @@  ja  |  ko  |  pt-br  | - ru 

    -
    + ru  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.pt-br b/docs/manual/new_features_2_0.html.pt-br index 7aa074d9dfc..35284727297 100644 --- a/docs/manual/new_features_2_0.html.pt-br +++ b/docs/manual/new_features_2_0.html.pt-br @@ -1,38 +1,48 @@ - -Descrição das novas funcionalidades do Apache 2.0 - Servidor HTTP Apache +Descrição das novas funcionalidades do Apache 2.0 - Servidor HTTP Apache Versão 2.2 - - + + + +
    <-

    Descrição das novas funcionalidades do Apache 2.0

    +Apache > Servidor HTTP > Documentação > Versão 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Descrição das novas funcionalidades do Apache 2.0

    -

    Línguas Disponíveis:  de  | +

    Línguas Disponíveis:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    + pt-br  | + ru  | + tr 

    +
    Esta tradução pode estar desatualizada. + Verifique a versão em Inglês para mudanças recentes.
    -

    Esse documento descreve algumas das mudanças principais - entre as versões 1.3 e 2.0 do Servidor HTTP Apache.

    +

    Esse documento descreve algumas das mudanças principais + entre as versões 1.3 e 2.0 do Servidor HTTP Apache.

    +
  • Melhorias nos Módulos
  • +

    Veja também

    top

    Principais Melhorias

    @@ -42,201 +52,224 @@
    Threading Unix
    Em sistemas Unix com suporte a threads POSIX, o Apache pode - funcionar em modo híbrido multiprocesso e multithread. Não funciona - em todas configurações, mas melhora a escalabilidade em muitas.
    + funcionar em modo híbrido multiprocesso e multithread. Não funciona + em todas configurações, mas melhora a escalabilidade em muitas. -
    Novo Sistema de Compilação
    +
    Novo Sistema de Compilação
    -
    O sistema de compilação foi reescrito do zero para utilizar o +
    O sistema de compilação foi reescrito do zero para utilizar o autoconf e o libtool, tornando a - configuração do sistema Apache mais similar a de outros + configuração do sistema Apache mais similar a de outros pacotes.
    Suporte Multi-protocolo
    O Apache possui agora uma infraestrutura feita para suportar - múltiplos protocolos. O módulo mod_echo é um - exemplo ilustrativo de sua utilização.
    + múltiplos protocolos. O módulo mod_echo é um + exemplo ilustrativo de sua utilização. -
    Suporte Aperfeiçoado para Plataformas Não-Unix
    +
    Suporte Aperfeiçoado para Plataformas Não-Unix
    -
    O Apache 2.0 está mais rápido e mais estável em plataformas - Não-Unix como BeOS, OS/2 e Windows. Com a introdução de módulos - multi-processamento (MPMs) específicos e a - Apache Portable Runtime (APR), essas plataformas estão implementando - as suas APIs nativas, evitando as camadas de emulação POSIX que se +
    O Apache 2.0 está mais rápido e mais estável em plataformas + Não-Unix como BeOS, OS/2 e Windows. Com a introdução de módulos + multi-processamento (MPMs) específicos e a + Apache Portable Runtime (APR), essas plataformas estão implementando + as suas APIs nativas, evitando as camadas de emulação POSIX que se mostravam lentas e defeituosas.
    Nova API Apache
    -
    A API para módulos mudou significativamente na versão 2.0. - Muitos dos problemas de ordenamento/prioridade da versão - 1.3 foram resolvidos. A versão 2.0 faz o ordenamento automático +
    A API para módulos mudou significativamente na versão 2.0. + Muitos dos problemas de ordenamento/prioridade da versão + 1.3 foram resolvidos. A versão 2.0 faz o ordenamento automático "per-hook" para permitir mais flexibilidade. Novas chamadas foram adicionadas para fornecer capacidades adicionais sem a necessidade de se aplicar nenhum patch ao servidor Apache principal.
    Suporte IPv6
    -
    Em sistemas onde o IPv6 é suportado pela biblioteca de base - Apache Portable Runtime, o Apache monitora por padrão - as interfaces IPv6. Em adição as diretrizes Listen, NameVirtualHost e VirtualHost, suportam correntes (strings) de - endereços numéricos do tipo IPv6. (ex. "Listen - [fe80::1]:8080").
    +
    Em sistemas onde o IPv6 é suportado pela biblioteca de base + Apache Portable Runtime, o Apache monitora por padrão + as interfaces IPv6. Em adição as diretrizes Listen, NameVirtualHost e VirtualHost, suportam correntes (strings) de + endereços numéricos do tipo IPv6. (ex. "Listen + [2001:db8::1]:8080").
    Filtrando
    -
    Os módulos do Apache agora são feito filtros que - agem na corrente do conteúdo na medida que este é entregue, tanto - na entrada quando na saída de dados do servidor. É possível então, +
    Os módulos do Apache agora são feito filtros que + agem na corrente do conteúdo na medida que este é entregue, tanto + na entrada quando na saída de dados do servidor. É possível então, por exemplo, que o retorno de dados de scripts CGI sejam analisados - pelas diretrizes do "Server Side Include" usando o filtro INCLUDES do mod_include. O módulo mod_ext_filter, permite que programas externos trabalhem - como filtros do mesmo modo que aplicações CGI funcionam como + pelas diretrizes do "Server Side Include" usando o filtro INCLUDES do mod_include. O módulo mod_ext_filter, permite que programas externos trabalhem + como filtros do mesmo modo que aplicações CGI funcionam como manipuladores.
    Respostas de Erro Multi-linguais
    -
    Mensagens de erro para o navegador agora são fornecidas em - diversas línguas, usando documentos SSI. Podem ser personalizadas - pelo administrador que desejar definir seus próprios - padrões.
    +
    Mensagens de erro para o navegador agora são fornecidas em + diversas línguas, usando documentos SSI. Podem ser personalizadas + pelo administrador que desejar definir seus próprios + padrões.
    -
    Configuração Simplificada
    +
    Configuração Simplificada
    Muitas diretrizes confusas foram simplificadas. Entre elas, - Port e BindAddress não existem + Port e BindAddress não existem mais; apenas a diretriz Listen - é usada para direcionar endereços IP; a diretriz ServerName especifica o nome do servidor - e o número da porta apenas para redirecionamento e reconhecimento + é usada para direcionar endereços IP; a diretriz ServerName especifica o nome do servidor + e o número da porta apenas para redirecionamento e reconhecimento de hospedeiros virtuais.
    Suporte Nativo ao Unicode do Windows NT
    -
    O Apache 2.0 para Windows NT agora usa utf-8 para codificação - de todos os nomes de arquivos. A tradução para o sistema - base Unicode, torna possível o suporte multi-lingual para todas - as instalações da família NT, incluindo o Windows 2000 e Windows XP. - Esse suporte não se estende ao Windows 95, 98 ou ME, que - continuam usando o código de páginas da máquina local para o +
    O Apache 2.0 para Windows NT agora usa utf-8 para codificação + de todos os nomes de arquivos. A tradução para o sistema + base Unicode, torna possível o suporte multi-lingual para todas + as instalações da família NT, incluindo o Windows 2000 e Windows XP. + Esse suporte não se estende ao Windows 95, 98 ou ME, que + continuam usando o código de páginas da máquina local para o acesso ao sistema de arquivos.
    -
    Biblioteca de Expressões Regulares Atualizada
    +
    Biblioteca de Expressões Regulares Atualizada
    O Apache 2.0 inclui a Biblioteca - de Expressões Regulares Compatíveis Perl (PCRE). Todas as - avaliações de expressões regulares usam a mais poderosa sintaxe + de Expressões Regulares Compatíveis Perl (PCRE). Todas as + avaliações de expressões regulares usam a mais poderosa sintaxe do Perl 5.
    top
    -

    Melhorias nos Módulos

    +

    Melhorias nos Módulos

    mod_ssl
    -
    Novo módulo no Apache 2.0. Esse módulo é uma interface - para os protocolos de codificação SSL/TLS fornecidos pela +
    Novo módulo no Apache 2.0. Esse módulo é uma interface + para os protocolos de codificação SSL/TLS fornecidos pela OpenSSL.
    mod_dav
    -
    Novo módulo no Apache 2.0. Este módulo implementa as - especificações de Autoria Distribuída e Versões (Distributed - Authoring and Versioning - DAV) para HTTP, para a publicação - e a manutenção de conteúdo da web.
    +
    Novo módulo no Apache 2.0. Este módulo implementa as + especificações de Autoria Distribuída e Versões (Distributed + Authoring and Versioning - DAV) para HTTP, para a publicação + e a manutenção de conteúdo da web.
    mod_deflate
    -
    Novo módulo no Apache 2.0. Esse módulo permite o suporte - a navegadores que solicitam que o conteúdo seja comprimido antes +
    Novo módulo no Apache 2.0. Esse módulo permite o suporte + a navegadores que solicitam que o conteúdo seja comprimido antes da entrega, economizando banda da rede.
    mod_auth_ldap
    -
    Novo módulo no Apache 2.0.41. Este módulo permite que +
    Novo módulo no Apache 2.0.41. Este módulo permite que bancos de dados LDAP sejam usados para armazenar credenciais - para Autenticação Básica HTTP. Um módulo que o acompanha mod_ldap, fornece a conciliação de conexões e armazenamento + para Autenticação Básica HTTP. Um módulo que o acompanha mod_ldap, fornece a conciliação de conexões e armazenamento de resultados.
    mod_auth_digest
    -
    Inclui suporte adicional para armazenamento de sessões - através de processos que usam memória compartilhada.
    +
    Inclui suporte adicional para armazenamento de sessões + através de processos que usam memória compartilhada.
    mod_charset_lite
    -
    Novo módulo no Apache 2.0. Este modo experimental permite a - tradução de tabelas de caracteres ou re-codificação.
    +
    Novo módulo no Apache 2.0. Este modo experimental permite a + tradução de tabelas de caracteres ou re-codificação.
    mod_file_cache
    -
    Novo módulo no Apache 2.0. Esse módulo inclui a funcionalidade - do mod_mmap_static do Apache 1.3, além de disponibilizar +
    Novo módulo no Apache 2.0. Esse módulo inclui a funcionalidade + do mod_mmap_static do Apache 1.3, além de disponibilizar outras possibilidades de armazenamento.
    mod_headers
    -
    Este módulo está muito mais flexível no Apache 2.0. Pode - modificar pedidos de cabeçalhos usados pelo mod_proxy, e incondicionalmente pode ajustar cabeçalhos de respostas.
    +
    Este módulo está muito mais flexível no Apache 2.0. Pode + modificar pedidos de cabeçalhos usados pelo mod_proxy, e incondicionalmente pode ajustar cabeçalhos de respostas.
    mod_proxy
    -
    O módulo proxy foi totalmente reescrito para levar vantagem +
    O módulo proxy foi totalmente reescrito para levar vantagem da nova infraestrutura de filtro e implementar um proxy mais fiel e - de acordo com o padrão HTTP/1.1. Além disso, uma nova seção - de configuração <Proxy> fornece controles mais legíveis (e internamente - mais rápidos) para sites com proxies; configurações - sobrecarregadas <Directory "proxy:...">, não - são suportadas. O módulo agora é dividido em suporte - de protocolos específicos incluindo proxy_connect, + de acordo com o padrão HTTP/1.1. Além disso, uma nova seção + de configuração <Proxy> fornece controles mais legíveis (e internamente + mais rápidos) para sites com proxies; configurações + sobrecarregadas <Directory "proxy:...">, não + são suportadas. O módulo agora é dividido em suporte + de protocolos específicos incluindo proxy_connect, proxy_ftp e proxy_http.
    mod_negotiation
    A nova diretriz ForceLanguagePriority pode ser usada para assegurar que - o cliente receba um único documento em todos os casos, ao invés de + o cliente receba um único documento em todos os casos, ao invés de respostas "NOT ACCEPTABLE" ou "MULTIPLE CHOICES". Novos algoritmos - de negociação e visões múltiplas (MultiViews) foram organizados para + de negociação e visões múltiplas (MultiViews) foram organizados para obter resultados mais consistentes e uma nova forma de tipo de mapa - (map type) que podem incluir o conteúdo de documentos é fornecido.
    + (map type) que podem incluir o conteúdo de documentos é fornecido.
    mod_autoindex
    -
    As listagens de diretórios automáticas podem ser - configuradas para usar tabelas HTML para formatações mais limpas - e permitir controles mais acurados de classificação, incluindo - ordenação por versão e filtro da lista de - diretórios através de caracteres-coringa.
    +
    As listagens de diretórios automáticas podem ser + configuradas para usar tabelas HTML para formatações mais limpas + e permitir controles mais acurados de classificação, incluindo + ordenação por versão e filtro da lista de + diretórios através de caracteres-coringa.
    mod_include
    -
    Novas diretrizes permitem que as tags padrões start e +
    Novas diretrizes permitem que as tags padrões start e end para elementos SSI, possam ser alteradas e permitir que - as configurações de formatos de erro e hora sejam incluídos no - arquivo de configuração principal, ao invés de serem adicionadas - ao documento SSI. Resultados de análises de expressões regulares - e agrupamento (baseadas na sintaxe de expressões regulares do Perl) - podem ser obtidas usando as variáveis do módulo mod_include, de $0 a $9.
    + as configurações de formatos de erro e hora sejam incluídos no + arquivo de configuração principal, ao invés de serem adicionadas + ao documento SSI. Resultados de análises de expressões regulares + e agrupamento (baseadas na sintaxe de expressões regulares do Perl) + podem ser obtidas usando as variáveis do módulo mod_include, de $0 a $9.
    mod_auth_dbm
    -
    Agora suporta múltiplos tipos de banco de dados similares ao DBM, - usando a diretriz AuthDBMType +
    Agora suporta múltiplos tipos de banco de dados similares ao DBM, + usando a diretriz + AuthDBMType .
    -

    Línguas Disponíveis:  de  | +

    Línguas Disponíveis:  de  |  en  | - fr  | + fr  |  ja  |  ko  | - pt-br  | - ru 

    -
    + pt-br  | + ru  | + tr 

    +
    top

    Comentários

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.ru.koi8-r b/docs/manual/new_features_2_0.html.ru.koi8-r index e7c4466c238..98a724bb875 100644 --- a/docs/manual/new_features_2_0.html.ru.koi8-r +++ b/docs/manual/new_features_2_0.html.ru.koi8-r @@ -1,39 +1,48 @@ - -ïÂÚÏÒ ÎÏ×ÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ × Apache 2.0 - HTTP ÓÅÒ×ÅÒ Apache +ïÂÚÏÒ ÎÏ×ÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ × Apache 2.0 - HTTP ÓÅÒ×ÅÒ Apache ÷ÅÒÓÉÑ 2.2 - - + + + +
    <-

    ïÂÚÏÒ ÎÏ×ÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ × Apache 2.0

    +Apache > HTTP ÓÅÒ×ÅÒ > äÏËÕÍÅÎÔÁÃÉÑ > ÷ÅÒÓÉÑ 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ïÂÚÏÒ ÎÏ×ÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ × Apache 2.0

    -

    Available Languages:  de  | +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  de  |  en  |  fr  |  ja  |  ko  |  pt-br  | - ru 

    + ru  | + tr 

    -
    This translation may be out of date. Check the - English version for recent changes.
    +
    üÔÏÔ ÐÅÒÅ×ÏÄ ÍÏÖÅÔ ÂÙÔØ ÕÓÔÁÒÅ×ÛÉÍ. óÍÏÔÒÉÔÅ + ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÌÑ ÏÚÎÁËÏÍÌÅÎÉÑ ÓÏ ×ÓÅÍÉ ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ + × ÄÏËÕÍÅÎÔÅ.

    üÔÏÔ ÄÏËÕÍÅÎÔ ÏÐÉÓÙ×ÁÅÔ ÏÓÎÏ×ÎÙÅ ÒÁÚÌÉÞÉÑ ÍÅÖÄÕ ×ÅÒÓÉÑÍÉ 1.3 É 2.0 HTTP ÓÅÒ×ÅÒÁ Apache

    +

    óÍ. ÔÁËÖÅ

    top

    õÌÕÞÛÅÎÉÑ × ÑÄÒÅ ÓÅÒ×ÅÒÁ

    @@ -43,14 +52,14 @@
    íÎÏÇÏÐÏÔÏÞÎÏÓÔØ × UNIX
    îÁ UNIX ÓÉÓÔÅÍÁÈ, ËÏÔÏÒÙÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÐÏÔÏËÉ (ÎÉÔÉ) ÓÔÁÎÄÁÒÔÁ POSIX, - Apache ÔÅÐÅÒØ ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØÓÑ × ÇÉÂÒÉÄÎÏÍ ÍÎÏÇÏÐÒÏÃÅÓÓÏ×Ï - - ÍÎÏÇÏÐÏÔÏÞÎÏÍ ÒÅÖÉÍÅ. üÔÏ ÓÐÏÓÏÂÓÔ×ÕÅÔ ÒÁÓÛÉÒÑÅÍÏÓÔÉ - ÓÉÓÔÅÍÙ ÄÌÑ ÍÎÏÇÉÈ, ÎÏ ÎÅ ÄÌÑ ×ÓÅÈ ÓÐÏÓÏÂÏ× ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ.
    + Apache ÔÅÐÅÒØ ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØÓÑ × ÇÉÂÒÉÄÎÏÍ ÍÎÏÇÏÐÒÏÃÅÓÓÏ×Ï-ÍÎÏÇÏÐÏÔÏÞÎÏÍ ÒÅÖÉÍÅ. + üÔÏ ÓÐÏÓÏÂÓÔ×ÕÅÔ ÒÁÓÛÉÒÑÅÍÏÓÔÉ + ÓÉÓÔÅÍÙ ÄÌÑ ÍÎÏÇÉÈ, ÎÏ ÎÅ ÄÌÑ ×ÓÅÈ ËÏÎÆÉÇÕÒÁÃÉÊ.
    îÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÂÏÒËÉ
    -
    óÉÓÔÅÍÁ ÓÂÏÒËÉ ÂÙÌÁ ÐÏÌÎÏÓÔØÀ ÉÚÍÅÎÅÎÁ, É ÔÅÐÅÒØ ÏÓÎÏ×Ù×ÁÅÔÓÑ ÎÁ autoconf É libtool. - üÔÏ ÄÅÌÁÅÔ ÐÒÏÃÅÓÓ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ Apache ÂÏÌÅÅ ÐÏÈÏÖÉÍ ÎÁ ÐÏÄÏÂÎÙÊ ÐÒÏÃÅÓÓ × ÄÒÕÇÉÈ ÐÒÏÇÒÁÍÍÎÙÈ +
    óÉÓÔÅÍÁ ÓÂÏÒËÉ ÂÙÌÁ ÐÏÌÎÏÓÔØÀ ÉÚÍÅÎÅÎÁ, É ÔÅÐÅÒØ ÏÓÎÏ×Ù×ÁÅÔÓÑ ÎÁ autoconf É libtool. + üÔÏ ÄÅÌÁÅÔ ÐÒÏÃÅÓÓ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ Apache ÂÏÌÅÅ ÐÏÈÏÖÉÍ ÎÁ ÁÎÁÌÏÇÉÞÎÙÊ ÐÒÏÃÅÓÓ × ÄÒÕÇÉÈ ÐÒÏÇÒÁÍÍÎÙÈ ÐÒÏÄÕËÔÁÈ.
    ðÏÄÄÅÒÖËÁ ÒÁÚÌÉÞÎÙÈ ÐÒÏÔÏËÏÌÏ×
    @@ -74,36 +83,36 @@
    îÏ×ÙÊ API ÄÌÑ Apache
    -
    API ÄÌÑ ÎÁÐÉÓÁÎÉÑ ÍÏÄÕÌÅÊ ÚÎÁÞÉÔÅÌØÎÏ ÉÚÍÅÎÉÌÓÑ × ×ÅÒÓÉÉ 2.0 +
    API ÄÌÑ ÎÁÐÉÓÁÎÉÑ ÍÏÄÕÌÅÊ ÚÎÁÞÉÔÅÌØÎÏ ÉÚÍÅÎÉÌÓÑ × ×ÅÒÓÉÉ 2.0. íÎÏÇÉÅ ÉÚ ÐÒÏÂÌÅÍ ×ÅÒÓÉÉ 1.3, Ó×ÑÚÁÎÎÙÅ Ó ÐÏÒÑÄËÏÍ ÓÌÅÄÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ É ÉÈ ÐÒÉÏÒÉÔÅÔÁÍÉ, ÄÏÌÖÎÙ ÉÓÞÅÚÎÕÔØ. ÷ ×ÅÒÓÉÉ 2.0 - ÍÎÏÇÉÅ ÉÚ ÐÏÄÏÂÎÙÈ ×ÅÝÅÊ ÄÅÌÁÀÔÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ, É ÔÅÐÅÒØ - ÐÏÒÑÄÏË ÓÌÅÄÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÏÓÒÅÄÓÔ×ÏÍ ÓÐÅÃÉÁÌØÎÙÈ - ÐÒÏÇÒÁÍÍÎÙÈ ËÒÀÞËÏ× (hooks), ÏÔÞÅÇÏ ÎÁÓÔÒÏÊËÁ ÓÅÒ×ÅÒÁ ÓÔÁÎÏ×ÉÔÓÑ - ÂÏÌÅÅ ÇÉÂËÏÊ. ôÁËÖÅ ÂÙÌÉ ÄÏÂÁ×ÌÅÎÙ ÎÏ×ÙÅ ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ + ÂÏÌØÛÁÑ ÞÁÓÔØ ÄÁÎÎÏÊ ÒÁÂÏÔÙ ÔÅÐÅÒØ ÄÅÌÁÅÔÓÑ ÓÅÒ×ÅÒÏÍ Á×ÔÏÍÁÔÉÞÅÓËÉ, + Á ÐÏÒÑÄÏË ÓÌÅÄÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ ÏÐÒÅÄÅÌÑÅÔÓÑ ÏÔÄÅÌØÎÏ × ËÁÖÄÏÍ + ÈÕËÅ (hook), ÞÔÏ ÄÅÌÁÅÔ ÐÒÏÃÅÓÓ ÂÏÌÅÅ ÇÉÂËÉÍ É ËÏÎÆÉÇÕÒÉÒÕÅÍÙÍ. + ôÁËÖÅ ÂÙÌÉ ÄÏÂÁ×ÌÅÎÙ ÎÏ×ÙÅ ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ, - ÉÚÂÁ×ÌÑÑ ÏÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÎÅÓÅÎÉÑ ËÁËÉÈ - ÌÉÂÏ ÉÚÍÅÎÅÎÉÊ × ÑÄÒÏ + ÉÚÂÁ×ÌÑÑ ÏÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÎÅÓÅÎÉÑ ËÁËÉÈ-ÌÉÂÏ ÉÚÍÅÎÅÎÉÊ × ÑÄÒÏ ÓÅÒ×ÅÒÁ.
    ðÏÄÄÅÒÖËÁ ÐÒÏÔÏËÏÌÁ IPv6
    -
    îÁ ÓÉÓÔÅÍÁÈ, ÇÄÅ ÐÒÏÔÏËÏÌ IPv6 ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ - ÂÁÚÏ×ÏÊ ÂÉÂÌÉÏÔÅËÏÊ Apache Portable Runtime, Apache - ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÏÌÕÞÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ ÓÌÕÛÁÔØ IPv6 ÓÏËÅÔÙ - (sockets). ÷ ÄÏÂÁ×ÏË Ë ÜÔÏÍÕ ÄÉÒÅËÔÉ×Ù Listen, NameVirtualHost É VirtualHost ÍÏÇÕÔ ÒÁÂÏÔÁÔØ Ó ÁÄÒÅÓÎÙÍÉ ÓÔÒÏËÁÍÉ, - ÚÁÄÁÎÎÙÍÉ × ÆÏÒÍÁÔÅ IPv6 (Ô.Å. ÎÁÐÒÉÍÅÒ "Listen [fe80::1]:8080").
    +
    ÷ ÓÉÓÔÅÍÁÈ, ÇÄÅ ÐÒÏÔÏËÏÌ IPv6 ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ + ÎÉÖÅÌÅÖÁÝÅÊ ÂÉÂÌÉÏÔÅËÏÊ Apache Portable Runtime, Apache + ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÏÌÕÞÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ ÓÌÕÛÁÔØ IPv6 ÓÏËÅÔÙ. + ÷ ÄÏÂÁ×ÏË Ë ÜÔÏÍÕ ÄÉÒÅËÔÉ×Ù Listen, NameVirtualHost É VirtualHost ÍÏÇÕÔ ÒÁÂÏÔÁÔØ Ó ÁÄÒÅÓÎÙÍÉ ÓÔÒÏËÁÍÉ, + ÚÁÄÁÎÎÙÍÉ × ÆÏÒÍÁÔÅ IPv6 (Ô.Å. ÎÁÐÒÉÍÅÒ "Listen [2001:db8::1]:8080").
    éÓÐÏÌØÚÏ×ÁÎÉÅ ÆÉÌØÔÒÏ×
    -
    íÏÄÕÌÉ Apache ÔÅÐÅÒØ ÍÏÇÕÔ ÂÙÔØ ÎÁÐÉÓÁÎÙ ËÁË ÆÉÌØÔÒÙ, - ÏÂÒÁÂÁÔÙ×ÁÀÝÉÅ ÐÏÔÏËÉ ÄÁÎÎÙÈ, ËÏÔÏÒÙÅ ÐÒÉÈÏÄÑÔ ÉÌÉ ÕÈÏÄÑÔ +
    íÏÄÕÌÉ Apache ÔÅÐÅÒØ ÍÏÖÎÏ ÎÁÐÉÓÁÔØ ÔÁË, ÞÔÏ + ÏÎÉ ÂÕÄÕÔ ÉÓÐÏÌÎÑÔØ ÒÏÌØ ÆÉÌØÔÒÏ×, + ÏÂÒÁÂÁÔÙ×ÁÀÝÉÈ ÐÏÔÏËÉ ÄÁÎÎÙÈ, ËÏÔÏÒÙÅ ÐÒÉÈÏÄÑÔ ÉÌÉ ÕÈÏÄÑÔ ÉÚ ÓÅÒ×ÅÒÁ. üÔÏ ÐÏÚ×ÏÌÑÅÔ, Ë ÐÒÉÍÅÒÕ, ÄÁÎÎÙÍ, Ñ×ÌÑÀÝÉÍÓÑ ÒÅÚÕÌØÔÁÔÏÍ ÒÁÂÏÔÙ CGI-ÓËÒÉÐÔÁ, ÂÙÔØ ÏÂÒÁÂÏÔÁÎÎÙÍÉ SSI - ÆÉÌØÔÒÏÍ INCLUDES, ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÍ ÍÏÄÕÌÅÍ + ÆÉÌØÔÒÏÍ INCLUDES, ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÍ ÍÏÄÕÌÅÍ mod_include. íÏÄÕÌØ mod_ext_filter - ÐÏÚ×ÏÌÑÅÔ ×ÎÅÛÎÉÍ ÐÒÏÇÒÁÍÍÁÍ ÉÓÐÏÌÎÑÔØ ÒÏÌØ ÆÉÌØÔÒÏ× ÔÏÞÎÏ ÔÁË ÖÅ - ËÁË É CGI ÐÒÏÇÒÁÍÍÁÍ ÐÏÚ×ÏÌÑÅÔÓÑ ÄÅÊÓÔ×Ï×ÁÔØ × ËÁÞÅÓÔ×Å - ÏÂÒÁÂÏÔÞÉËÏ× (handlers).
    + ÐÏÚ×ÏÌÑÅÔ ×ÎÅÛÎÉÍ ÐÒÏÇÒÁÍÍÁÍ ÉÓÐÏÌÎÑÔØ ÒÏÌØ ÆÉÌØÔÒÏ× ÔÏÞÎÏ ÔÁËÉÍ ÖÅ ÏÂÒÁÚÏÍ, + ËÁËÉÍ CGI ÐÒÏÇÒÁÍÍÙ ÄÅÊÓÔ×ÕÀÔ × ËÁÞÅÓÔ×Å ÏÂÒÁÂÏÔÞÉËÏ× (handlers).
    óÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ ÎÁ ÒÁÚÎÙÈ ÑÚÙËÁÈ
    @@ -115,7 +124,7 @@
    õÐÒÏÝÅÎÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ
    íÎÏÇÉÅ ÚÁÐÕÔÁÎÎÙÅ ÄÉÒÅËÔÉ×Ù ÂÙÌÉ ÕÐÒÏÝÅÎÙ. îÁÉÂÏÌÅÅ - ÓÂÉ×ÁÀÝÉÅ Ó ÔÏÌËÕ Port É BindAddress ÂÙÌÉ ÕÂÒÁÎÙ; + ÓÂÉ×ÁÀÝÉÅ Ó ÔÏÌËÕ Port É BindAddress ÂÙÌÉ ÕÂÒÁÎÙ; ÄÌÑ ÐÒÉ×ÑÚËÉ Ë IP ÁÄÒÅÓÕ ÉÓÐÏÌØÚÕÅÔÓÑ ÔÏÌØËÏ ÄÉÒÅËÔÉ×Á Listen; ÄÉÒÅËÔÉ×Á ServerName ÏÐÒÅÄÅÌÑÅÔ ÉÍÑ ÓÅÒ×ÅÒÁ É ÎÏÍÅÒ ÐÏÒÔÁ @@ -130,9 +139,9 @@ ÓÉÓÔÅÍ, ×ËÌÀÞÁÑ Windows 2000 É Windows XP. üÔÏ ÎÅ ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÎÁ ÔÁËÉÅ ÏÐÅÒÁÃÉÏÎÎÙÅ ÓÉÓÔÅÍÙ, ËÁË Windows 95, 98 ÉÌÉ ME, ËÏÔÏÒÙÅ ÄÌÑ ÏÂÒÁÝÅÎÉÑ Ë ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ - ÉÓÐÏÌØÚÕÀÔ ÌÏËÁÌØÎÙÅ ÍÁÛÉÎÎÙÅ ËÏÄÏ×ÙÅ ÓÔÒÁÎÉÃÙ.
    + ÉÓÐÏÌØÚÕÀÔ ÌÏËÁÌØÎÙÅ ËÏÄÏ×ÙÅ ÓÔÒÁÎÉÃÙ.
    -
    îÏ×ÁÑ ÂÉÂÌÉÏÔÅËÁ ÄÌÑ ÒÁÂÏÔÙ Ó ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÑÍÉ
    +
    îÏ×ÁÑ ÂÉÂÌÉÏÔÅËÁ ÄÌÑ ÒÁÂÏÔÙ Ó ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÉÑÍÉ
    ÷ ÓÏÓÔÁ× Apache 2.0 ÂÙÌÁ ×ËÌÀÞÅÎÁ ÂÉÂÌÉÏÔÅËÁ ÄÌÑ ÒÁÂÏÔÙ Ó Perl-ÓÏ×ÍÅÓÔÉÍÙÍÉ ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÑÍÉ (PCRE). @@ -184,7 +193,7 @@
    mod_file_cache
    îÏ×ÙÊ ÍÏÄÕÌØ × Apache 2.0. üÔÏÔ ÍÏÄÕÌØ ×ËÌÀÞÁÅÔ × ÓÅÂÑ - ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÍÏÄÕÌÑ mod_mmap_static ÉÚ Apache 1.3 + ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÍÏÄÕÌÑ mod_mmap_static ÉÚ Apache 1.3 ÐÌÀÓ ÎÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ËÜÛÉÒÏ×ÁÎÉÑ.
    mod_headers
    @@ -201,10 +210,10 @@ ÂÏÌÅÅ ÎÁÄÅÖÎÕÀ, ÓÏ×ÍÅÓÔÉÍÕÀ Ó HTTP/1.1 ÐÒÏËÓÉ-ÔÅÈÎÏÌÏÇÉÀ. ÷ ÄÏÂÁ×ÏË Ë ÜÔÏÍÕ ÂÙÌÁ ××ÅÄÅÎÁ ÎÏ×ÁÑ ÓÅËÃÉÑ <Proxy>, ËÏÔÏÒÕÀ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÆÁÊÌÁÈ, ÞÔÏ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÂÏÌÅÅ ÕÄÏÂÎÙÊ (É ÂÏÌÅÅ ÂÙÓÔÒÙÊ ÄÌÑ ÑÄÒÁ ÓÅÒ×ÅÒÁ) ËÏÎÔÒÏÌØ ÎÁÄ ÓÁÊÔÁÍÉ, - ÉÓÐÏÌØÚÕÀÝÉÍÉ proxy-ÔÅÈÎÏÌÏÇÉÀ. ðÅÒÅÇÒÕÖÅÎÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ <Directory "proxy:..."> + ÉÓÐÏÌØÚÕÀÝÉÍÉ proxy-ÔÅÈÎÏÌÏÇÉÀ. ðÅÒÅÇÒÕÖÅÎÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ <Directory "proxy:..."> ÂÏÌÅÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. íÏÄÕÌØ ÔÅÐÅÒØ ÒÁÚÄÅÌÅÎ ÎÁ ÏÔÄÅÌØÎÙÅ ÓÐÅÃÉÆÉÞÎÙÅ ÍÏÄÕÌÉ, - ÐÏÄÄÅÒÖÉ×ÁÀÝÉÅ ÒÁÚÌÉÞÎÙÅ ÐÒÏÔÏËÏÌÙ. üÔÉ ÍÏÄÕÌÉ ×ËÌÀÞÁÀÔ × ÓÅÂÑ proxy_connect, proxy_ftp - É proxy_http. + ÐÏÄÄÅÒÖÉ×ÁÀÝÉÅ ÒÁÚÌÉÞÎÙÅ ÐÒÏÔÏËÏÌÙ. üÔÉ ÍÏÄÕÌÉ ×ËÌÀÞÁÀÔ × ÓÅÂÑ proxy_connect, proxy_ftp + É proxy_http.
    mod_negotiation
    @@ -213,13 +222,13 @@ ÏÐÒÅÄÅÌÅÎÎÙÊ ÄÏËÕÍÅÎÔ. ÷ ÄÏÐÏÌÎÅÎÉÅ Ë ÜÔÏÍÕ ÁÌÇÏÒÉÔÍÙ ÎÅÇÏÃÉÁÃÉÉ (negotiation) É MultiViews ÂÙÌÉ ×ÙÞÉÝÅÎÙ É ÉÓÐÒÁ×ÌÅÎÙ, ÄÌÑ ÏÂÅÓÐÅÞÅÎÉÑ ÂÏÌÅÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÇÏ ÒÅÚÕÌØÔÁÔÁ, Á ÔÁËÖÅ ÐÏÑ×ÉÌÁÓØ ×ÏÚÍÏÖÎÏÓÔØ - ×ËÌÀÞÅÎÉÑ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏÇÏ ÓÏÄÅÒÖÉÍÏÇÏ ÄÏËÕÍÅÎÔÏ× × ËÁÒÔÕ ÔÉÐÏ× (type map). + ×ËÌÀÞÅÎÉÑ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÓÏÄÅÒÖÉÍÏÇÏ ÄÏËÕÍÅÎÔÏ× × ËÁÒÔÕ ÔÉÐÏ× (type map).
    mod_autoindex
    ìÉÓÔÉÎÇÉ Á×ÔÏÉÎÄÅËÓÉÒÕÅÍÙÈ ËÁÔÁÌÏÇÏ× ÔÅÐÅÒØ ÍÏÇÕÔ ×ÙÄÁ×ÁÔØÓÑ × ×ÉÄÅ HTML-ÔÁÂÌÉÃ. ðÏÑ×ÉÌÁÓØ ×ÏÚÍÏÖÎÏÓÔØ ÂÏÌÅÅ ÇÉÂËÏÊ ÓÏÒÔÉÒÏ×ËÉ, ×ËÌÀÞÁÑ ÓÏÒÔÉÒÏ×ËÕ ÐÏ ×ÅÒÓÉÑÍ É - ÓÏÒÔÉÒÏ×ËÕ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÕÎÉ×ÅÒÓÁÌØÎÙÈ ÓÉÍ×ÏÌÏ× (wildcard).
    + ÓÏÒÔÉÒÏ×ËÕ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÛÁÂÌÏÎÎÙÈ ÓÉÍ×ÏÌÏ× (wildcard).
    mod_include
    @@ -229,7 +238,7 @@ × ÇÌÁ×ÎÏÍ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÏÍ ÆÁÊÌÅ, Á ÎÅ × SSI ÄÏËÕÍÅÎÔÅ. òÅÚÕÌØÔÁÔÙ ÏÂÒÁÂÏÔËÉ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ (ÔÅÐÅÒØ ÏÓÎÏ×Ù×ÁÀÝÉÈÓÑ ÎÁ ÓÉÎÔÁËÓÉÓÅ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ ÑÚÙËÁ Perl) ÍÏÇÕÔ ÂÙÔØ ÐÏÌÕÞÅÎÙ ÐÒÉ ÐÏÍÏÝÉ ÐÅÒÅÍÅÎÎÙÈ - $0 .. $9 ÍÏÄÕÌÑ mod_include. + $0 .. $9 ÍÏÄÕÌÑ mod_include.
    mod_auth_dbm
    @@ -239,14 +248,36 @@
    -

    Available Languages:  de  | +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  de  |  en  |  fr  |  ja  |  ko  |  pt-br  | - ru 

    -
    + ru  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/new_features_2_0.html.tr.utf8 b/docs/manual/new_features_2_0.html.tr.utf8 new file mode 100644 index 00000000000..4082980daad --- /dev/null +++ b/docs/manual/new_features_2_0.html.tr.utf8 @@ -0,0 +1,279 @@ + + + + + +Apache 2.0’da Yeni olan Özellikler - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 2.0’da Yeni olan Özellikler

    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + pt-br  | + ru  | + tr 

    +
    + +

    Bu belgede Apache HTTP Sunucusunun 1.3 ve 2.0 sürümleri arasındaki + başlıca değişikliklerin bazılarına değinilmiştir.

    +
    + +
    top
    +
    +

    Çekirdekteki Gelişmeler

    + + +
    +
    Unix Evreleri
    + +
    POSIX evreleri desteği olan Unix sistemlerinde Apache, çok evreli + kipte çok süreçlilik şeklinde melez bir yapıda çalışır. Bu bir çok + bakımdan ölçeklenebilirliği arttırsa da bütün yapılandırmalarda + sağlanamaz.
    + +
    Yeni Paket Derleme Sistemi
    + +
    Yeni kaynak paketi derleme sistemi autoconf ve + libtool’a dayalı olarak sıfırdan, yeni baştan yazıldı. + Böylece Apache’nin paket yapılandırma sistemi diğer paketlerinkiyle + benzerlik kazanmış oldu.
    + +
    Çok Sayıda Protokol Desteği
    + +
    Apache artık çok sayıda protokol ile hizmet sunacak bir alt yapıya + sahiptir. Örneğin, mod_echo modülü bu amaçla + yazılmıştır.
    + +
    Unix dışı platformalara daha iyi destek
    + +
    Apache 2.0 sürümleri, BeOS, OS/2, Windows gibi Unix olmayan + platformlarda daha hızlı ve daha kararlı çalışacak duruma + getirilmiştir. Genelde iyi geliştirilmemiş olan dolayısıyla istenen + başarımı sağlayamayan POSIX taklit katmanlarının kullanımından + vazgeçilmiş, platforma özgü çok süreçlilik + modülleri (MPM) ve Apache Taşınabilirlik Arayüzü (APR) sayesinde + bu platformlar artık kendi doğal programlama arayüzleriyle + gerçeklenir olmuştur.
    + +
    Yeni Apache Programlama Arayüzü
    + +
    Modüller için kullanılan programlama arayüzü 2.0 sürümüyle önemli + değişikliklere uğramıştır. 1.3 sürümünde görülen modüllerle ilgili + sıralama/öncelik sorunlarının çoğu giderilmiştir. 2.0 sürümü bu + işlemleri daha bir özdevimli yapar olmuştur; daha fazla esneklik + sağlamak için artık kancalı modül sıralaması kullanılabilmektedir. + Ayrıca, arayüze, Apache sunucu çekirdeğini yamamaya gerek kalmadan + modüllerle sunucu yeteneklerinin arttırılabilmesini sağlayan yeni + çağrılar eklenmiştir.
    + +
    IPv6 Desteği
    + +
    IPv6’nın Apache Taşınabilirlik Arayüzü kütüphanesi tarafından + desteklendiği sistemlerde Apache öntanımlı olarak IPv6 soketlerini + dinler. Bundan başka, Listen, NameVirtualHost ve VirtualHost yönergelerinin IPv6 sayısal adres + dizgelerini desteklemesi sağlanmıştır.
    Örnek: Listen + [2001:db8::1]:8080
    + +
    Süzme
    + +
    Apache modülleri, artık, sunucuya teslim edilen veya sunucudan + teslim alınan içerik akımları üzerinde süzgeç gibi davranacak şekilde + yazılabilmektedir. Bu sayede, örneğin CGI betiklerinin çıktılarının + mod_include modülünün INCLUDES süzgeci + kullanılarak SSI yönergeleri için çözümlenmesi mümkündür. CGI + programlarının birer eylemci olarak davranması gibi, + mod_ext_filter modülü de harici programların birer + süzgeç olarak davranabilmesini mümkün kılar.
    + +
    Çok Dilli Hata Yanıtları
    + +
    Hata yanıtlarının tarayıcılara yönelik iletileri artık SSI + belgeleri kullanılarak çeşitli dillerde sağlanabilmektedir. Bunlar + ayrıca yönetici tarafından görünüş ve kullanışlılık tutarlılığı + bakımından kişiselleştirilebilmektedir.
    + +
    Basitleştirilmiş Yapılandırma
    + +
    Bazı yönergelerle ilgili kafa karışıklıkları giderilmiştir. + Bilhassa belli bir IP adresini dinlemek için kullanılan + Port ve BindAddress yönergeleri ile ilgili + karışıklığın önüne geçmek için sadece Listen yönergesi yeterli olmaktadır. ServerName yönergesi ise sadece yönlendirme + ve sanal konak tanıma amacıyla sunucu ismi ve port belirtiminde + kullanılmaktadır.
    + +
    Doğal Windows NT Unicode Desteği
    + +
    Apache 2.0, Windows NT üzerinde artık tüm dosya sistemi + kodlamalarında utf-8 kullanmaktadır. Bu destek, Windows 2000 ve + Windows XP dahil tüm Windows NT temelli sistemlere çok dillilik + desteğini sağlamak üzere mevcut Unicode dosya sistemine doğrudan + uyarlanır. Dosya sisteminde makinenin yerel karakter kodlamasını + kullanan kullanan Windows 95, 98 ve ME için bu destek + yoktur.
    + +
    Düzenli İfade Kütüphanesi Güncellemesi
    + +
    Apache 2.0’da Perl uyumlu düzenli + ifade kütüphanesi bulunur. Tüm düzenli ifadelerde artık çok daha + güçlü olan Perl 5 sözdizimi kullanılmaktadır.
    + +
    +
    top
    +
    +

    Modüllerdeki Gelişmeler

    + + +
    +
    mod_ssl
    + +
    Apache 2.0’da yeni olan bu modül, OpenSSL tarafından sağlanan + SSL/TLS şifreleme protokollerine bir arayüzdür.
    + +
    mod_dav
    + +
    Apache 2.0’da yeni olan bu modül, site içeriğinin destek ve bakımı + için HTTP dağıtık yazım ve sürüm yönetimi (DAV - Distributed + Authoring and Versioning) belirtimini gerçekler.
    + +
    mod_deflate
    + +
    Apache 2.0’da yeni olan bu modül sayesinde ağ band genişliğinden + daha verimli yararlanabilmek için içeriğin sıkıştırılarak + gönderilmesini talep eden tarayıcıların desteklenmesi mümkün + olmuştur.
    + +
    mod_auth_ldap
    + +
    Apache 2.0.41’de yeni olan bu modül, HTTP temel kimlik + doğrulamasında kullanılan delillerin saklanması için LDAP + veritabanının kullanılabilmesini mümkün kılar. Kardeş modülü olan + mod_ldap ise bağlantı havuzlaması ve sonuçların + önbelleğe alınması ile ilgilenir.
    + +
    mod_auth_digest
    + +
    Paylaşımlı belleği kullanan süreçlere karşı oturum önbelleklemesi + için ek destek içerir.
    + +
    mod_charset_lite
    + +
    Apache 2.0’da yeni olan bu deneysel modül, karakter kümesi + dönüşümleri veya kaydı için destek sağlar.
    + +
    mod_file_cache
    + +
    Apache 2.0’da yeni olan bu modül, Apache 1.3’teki + mod_mmap_static modülünün işlevselliğini içermenin + yanında buna önbellekleme yetenekleri de ekler.
    + +
    mod_headers
    + +
    Bu modül Apache 2.0’da daha esnek hale getirilmiştir. Artık + mod_proxy tarafından kullanılan istek başlıkları + değiştirilebilmekte ve bunlar yanıt başlıklarına şartlı olarak + atanabilmektedir.
    + +
    mod_proxy
    + +
    Bu modül HTTP/1.1 uyumlu vekaleti daha güvenilir kılmak ve yeni + süzgeç alt yapısının getirilerinden de yararlanmak amacıyla yeni + baştan yazılmıştır. Bunun yanında, <Proxy> bölümünün yeni hali vekil siteleri + desteklemek bakımından daha okunabilir (ve kendi içinde daha hızlı) + olması sağlanmıştır; <Directory "proxy:..."> + yapılandırması artık desteklenmemektedir. Modül, + proxy_connect, proxy_ftp ve + proxy_http şeklinde her biri belli bir protokolü + destekleyen ayrı modüllere bölünmüştür.
    + +
    mod_negotiation
    + +
    Yeni ForceLanguagePriority yönergesi sayesinde istemciye + “Kabul edilebilir bir gösterim çeşidi yok” ya da “Çok sayıda seçim + belirtilmiş” yanıtını döndürmek yerine tüm durumlara uyan bir + sayfanın gönderilebilmesi sağlanmıştır. Bundan başka, uzlaşım ve + MultiViews algoritmaları daha tutarlı sonuçlar elde + etmek amacıyla elden geçirilmiş ve belge içeriği ile daha iyi eşleşen + yeni bir tür eşlem yapısı sağlanmıştır.
    + +
    mod_autoindex
    + +
    Dizin içeriklerinin özdevimli listelenmesi artık HTML tabloları + kullanılacak şekilde yapılandırılabilmektedir. Böylece sayfa daha iyi + biçemlenebilmekte, içerik daha hassas sıralanabilmekte, sürüm + numarasına göre sıralama yapılabilmekte ve dosya ismi kalıpları + kullanılarak sadece istenen içerik listelenebilmektedir.
    + +
    mod_include
    + +
    Yeni yönergeler, değiştirilecek SSI elemanları için öntanımlı + başlangıç ve bitiş etiketlerine izin vermekte, hataların ve zaman + biçemleme yapılandırmalarının SSI belgesinde değil ana yapılandırma + dosyasında bulunması mümkün olmaktadır. Düzenli ifadelerin gruplanmış + sonuçları (Perl düzenli ifade sözdizimi kullanılmaktadır) + mod_include modülünün $0 .. + $9 değişkenleri sayesinde kullanılabilmektedir.
    + +
    mod_auth_dbm
    + +
    AuthDBMType yönergesi + sayesinde artık çok sayıda DBM tarzı veritabanı türü + desteklenmektedir.
    +
    +
    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + pt-br  | + ru  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/new_features_2_0.xml b/docs/manual/new_features_2_0.xml index a9598506d06..582a27af683 100644 --- a/docs/manual/new_features_2_0.xml +++ b/docs/manual/new_features_2_0.xml @@ -4,12 +4,12 @@ + + + + - + new_features_2_0 / . @@ -9,9 +10,10 @@ de en fr - ja - ko - pt-br + ja + ko + pt-br ru + tr diff --git a/docs/manual/new_features_2_0.xml.pt-br b/docs/manual/new_features_2_0.xml.pt-br index 94a15caf6ec..06e22f36519 100644 --- a/docs/manual/new_features_2_0.xml.pt-br +++ b/docs/manual/new_features_2_0.xml.pt-br @@ -1,15 +1,15 @@ - + + + - + @@ -44,14 +45,14 @@
    íÎÏÇÏÐÏÔÏÞÎÏÓÔØ × UNIX
    îÁ UNIX ÓÉÓÔÅÍÁÈ, ËÏÔÏÒÙÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ÐÏÔÏËÉ (ÎÉÔÉ) ÓÔÁÎÄÁÒÔÁ POSIX, - Apache ÔÅÐÅÒØ ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØÓÑ × ÇÉÂÒÉÄÎÏÍ ÍÎÏÇÏÐÒÏÃÅÓÓÏ×Ï - - ÍÎÏÇÏÐÏÔÏÞÎÏÍ ÒÅÖÉÍÅ. üÔÏ ÓÐÏÓÏÂÓÔ×ÕÅÔ ÒÁÓÛÉÒÑÅÍÏÓÔÉ - ÓÉÓÔÅÍÙ ÄÌÑ ÍÎÏÇÉÈ, ÎÏ ÎÅ ÄÌÑ ×ÓÅÈ ÓÐÏÓÏÂÏ× ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ.
    + Apache ÔÅÐÅÒØ ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØÓÑ × ÇÉÂÒÉÄÎÏÍ ÍÎÏÇÏÐÒÏÃÅÓÓÏ×Ï-ÍÎÏÇÏÐÏÔÏÞÎÏÍ ÒÅÖÉÍÅ. + üÔÏ ÓÐÏÓÏÂÓÔ×ÕÅÔ ÒÁÓÛÉÒÑÅÍÏÓÔÉ + ÓÉÓÔÅÍÙ ÄÌÑ ÍÎÏÇÉÈ, ÎÏ ÎÅ ÄÌÑ ×ÓÅÈ ËÏÎÆÉÇÕÒÁÃÉÊ.
    îÏ×ÁÑ ÓÉÓÔÅÍÁ ÓÂÏÒËÉ
    -
    óÉÓÔÅÍÁ ÓÂÏÒËÉ ÂÙÌÁ ÐÏÌÎÏÓÔØÀ ÉÚÍÅÎÅÎÁ, É ÔÅÐÅÒØ ÏÓÎÏ×Ù×ÁÅÔÓÑ ÎÁ autoconf É libtool. - üÔÏ ÄÅÌÁÅÔ ÐÒÏÃÅÓÓ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ Apache ÂÏÌÅÅ ÐÏÈÏÖÉÍ ÎÁ ÐÏÄÏÂÎÙÊ ÐÒÏÃÅÓÓ × ÄÒÕÇÉÈ ÐÒÏÇÒÁÍÍÎÙÈ +
    óÉÓÔÅÍÁ ÓÂÏÒËÉ ÂÙÌÁ ÐÏÌÎÏÓÔØÀ ÉÚÍÅÎÅÎÁ, É ÔÅÐÅÒØ ÏÓÎÏ×Ù×ÁÅÔÓÑ ÎÁ autoconf É libtool. + üÔÏ ÄÅÌÁÅÔ ÐÒÏÃÅÓÓ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ Apache ÂÏÌÅÅ ÐÏÈÏÖÉÍ ÎÁ ÁÎÁÌÏÇÉÞÎÙÊ ÐÒÏÃÅÓÓ × ÄÒÕÇÉÈ ÐÒÏÇÒÁÍÍÎÙÈ ÐÒÏÄÕËÔÁÈ.
    ðÏÄÄÅÒÖËÁ ÒÁÚÌÉÞÎÙÈ ÐÒÏÔÏËÏÌÏ×
    @@ -76,39 +77,39 @@
    îÏ×ÙÊ API ÄÌÑ Apache
    -
    API ÄÌÑ ÎÁÐÉÓÁÎÉÑ ÍÏÄÕÌÅÊ ÚÎÁÞÉÔÅÌØÎÏ ÉÚÍÅÎÉÌÓÑ × ×ÅÒÓÉÉ 2.0 +
    API ÄÌÑ ÎÁÐÉÓÁÎÉÑ ÍÏÄÕÌÅÊ ÚÎÁÞÉÔÅÌØÎÏ ÉÚÍÅÎÉÌÓÑ × ×ÅÒÓÉÉ 2.0. íÎÏÇÉÅ ÉÚ ÐÒÏÂÌÅÍ ×ÅÒÓÉÉ 1.3, Ó×ÑÚÁÎÎÙÅ Ó ÐÏÒÑÄËÏÍ ÓÌÅÄÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ É ÉÈ ÐÒÉÏÒÉÔÅÔÁÍÉ, ÄÏÌÖÎÙ ÉÓÞÅÚÎÕÔØ. ÷ ×ÅÒÓÉÉ 2.0 - ÍÎÏÇÉÅ ÉÚ ÐÏÄÏÂÎÙÈ ×ÅÝÅÊ ÄÅÌÁÀÔÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ, É ÔÅÐÅÒØ - ÐÏÒÑÄÏË ÓÌÅÄÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÏÓÒÅÄÓÔ×ÏÍ ÓÐÅÃÉÁÌØÎÙÈ - ÐÒÏÇÒÁÍÍÎÙÈ ËÒÀÞËÏ× (hooks), ÏÔÞÅÇÏ ÎÁÓÔÒÏÊËÁ ÓÅÒ×ÅÒÁ ÓÔÁÎÏ×ÉÔÓÑ - ÂÏÌÅÅ ÇÉÂËÏÊ. ôÁËÖÅ ÂÙÌÉ ÄÏÂÁ×ÌÅÎÙ ÎÏ×ÙÅ ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ + ÂÏÌØÛÁÑ ÞÁÓÔØ ÄÁÎÎÏÊ ÒÁÂÏÔÙ ÔÅÐÅÒØ ÄÅÌÁÅÔÓÑ ÓÅÒ×ÅÒÏÍ Á×ÔÏÍÁÔÉÞÅÓËÉ, + Á ÐÏÒÑÄÏË ÓÌÅÄÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ ÏÐÒÅÄÅÌÑÅÔÓÑ ÏÔÄÅÌØÎÏ × ËÁÖÄÏÍ + ÈÕËÅ (hook), ÞÔÏ ÄÅÌÁÅÔ ÐÒÏÃÅÓÓ ÂÏÌÅÅ ÇÉÂËÉÍ É ËÏÎÆÉÇÕÒÉÒÕÅÍÙÍ. + ôÁËÖÅ ÂÙÌÉ ÄÏÂÁ×ÌÅÎÙ ÎÏ×ÙÅ ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÍÏÄÕÌÅÊ, - ÉÚÂÁ×ÌÑÑ ÏÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÎÅÓÅÎÉÑ ËÁËÉÈ - ÌÉÂÏ ÉÚÍÅÎÅÎÉÊ × ÑÄÒÏ + ÉÚÂÁ×ÌÑÑ ÏÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÎÅÓÅÎÉÑ ËÁËÉÈ-ÌÉÂÏ ÉÚÍÅÎÅÎÉÊ × ÑÄÒÏ ÓÅÒ×ÅÒÁ.
    ðÏÄÄÅÒÖËÁ ÐÒÏÔÏËÏÌÁ IPv6
    -
    îÁ ÓÉÓÔÅÍÁÈ, ÇÄÅ ÐÒÏÔÏËÏÌ IPv6 ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ - ÂÁÚÏ×ÏÊ ÂÉÂÌÉÏÔÅËÏÊ Apache Portable Runtime, Apache - ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÏÌÕÞÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ ÓÌÕÛÁÔØ IPv6 ÓÏËÅÔÙ - (sockets). ÷ ÄÏÂÁ×ÏË Ë ÜÔÏÍÕ ÄÉÒÅËÔÉ×Ù ÷ ÓÉÓÔÅÍÁÈ, ÇÄÅ ÐÒÏÔÏËÏÌ IPv6 ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ + ÎÉÖÅÌÅÖÁÝÅÊ ÂÉÂÌÉÏÔÅËÏÊ Apache Portable Runtime, Apache + ÐÏ ÕÍÏÌÞÁÎÉÀ ÐÏÌÕÞÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ ÓÌÕÛÁÔØ IPv6 ÓÏËÅÔÙ. + ÷ ÄÏÂÁ×ÏË Ë ÜÔÏÍÕ ÄÉÒÅËÔÉ×Ù Listen, NameVirtualHost É VirtualHost ÍÏÇÕÔ ÒÁÂÏÔÁÔØ Ó ÁÄÒÅÓÎÙÍÉ ÓÔÒÏËÁÍÉ, - ÚÁÄÁÎÎÙÍÉ × ÆÏÒÍÁÔÅ IPv6 (Ô.Å. ÎÁÐÒÉÍÅÒ "Listen [fe80::1]:8080").
    + ÚÁÄÁÎÎÙÍÉ × ÆÏÒÍÁÔÅ IPv6 (Ô.Å. ÎÁÐÒÉÍÅÒ "Listen [2001:db8::1]:8080").
    éÓÐÏÌØÚÏ×ÁÎÉÅ ÆÉÌØÔÒÏ×
    -
    íÏÄÕÌÉ Apache ÔÅÐÅÒØ ÍÏÇÕÔ ÂÙÔØ ÎÁÐÉÓÁÎÙ ËÁË ÆÉÌØÔÒÙ, - ÏÂÒÁÂÁÔÙ×ÁÀÝÉÅ ÐÏÔÏËÉ ÄÁÎÎÙÈ, ËÏÔÏÒÙÅ ÐÒÉÈÏÄÑÔ ÉÌÉ ÕÈÏÄÑÔ +
    íÏÄÕÌÉ Apache ÔÅÐÅÒØ ÍÏÖÎÏ ÎÁÐÉÓÁÔØ ÔÁË, ÞÔÏ + ÏÎÉ ÂÕÄÕÔ ÉÓÐÏÌÎÑÔØ ÒÏÌØ ÆÉÌØÔÒÏ×, + ÏÂÒÁÂÁÔÙ×ÁÀÝÉÈ ÐÏÔÏËÉ ÄÁÎÎÙÈ, ËÏÔÏÒÙÅ ÐÒÉÈÏÄÑÔ ÉÌÉ ÕÈÏÄÑÔ ÉÚ ÓÅÒ×ÅÒÁ. üÔÏ ÐÏÚ×ÏÌÑÅÔ, Ë ÐÒÉÍÅÒÕ, ÄÁÎÎÙÍ, Ñ×ÌÑÀÝÉÍÓÑ ÒÅÚÕÌØÔÁÔÏÍ ÒÁÂÏÔÙ CGI-ÓËÒÉÐÔÁ, ÂÙÔØ ÏÂÒÁÂÏÔÁÎÎÙÍÉ SSI - ÆÉÌØÔÒÏÍ INCLUDES, ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÍ ÍÏÄÕÌÅÍ + ÆÉÌØÔÒÏÍ INCLUDES, ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÍ ÍÏÄÕÌÅÍ mod_include. íÏÄÕÌØ mod_ext_filter - ÐÏÚ×ÏÌÑÅÔ ×ÎÅÛÎÉÍ ÐÒÏÇÒÁÍÍÁÍ ÉÓÐÏÌÎÑÔØ ÒÏÌØ ÆÉÌØÔÒÏ× ÔÏÞÎÏ ÔÁË ÖÅ - ËÁË É CGI ÐÒÏÇÒÁÍÍÁÍ ÐÏÚ×ÏÌÑÅÔÓÑ ÄÅÊÓÔ×Ï×ÁÔØ × ËÁÞÅÓÔ×Å - ÏÂÒÁÂÏÔÞÉËÏ× (handlers).
    + ÐÏÚ×ÏÌÑÅÔ ×ÎÅÛÎÉÍ ÐÒÏÇÒÁÍÍÁÍ ÉÓÐÏÌÎÑÔØ ÒÏÌØ ÆÉÌØÔÒÏ× ÔÏÞÎÏ ÔÁËÉÍ ÖÅ ÏÂÒÁÚÏÍ, + ËÁËÉÍ CGI ÐÒÏÇÒÁÍÍÙ ÄÅÊÓÔ×ÕÀÔ × ËÁÞÅÓÔ×Å ÏÂÒÁÂÏÔÞÉËÏ× (handlers).
    óÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ ÎÁ ÒÁÚÎÙÈ ÑÚÙËÁÈ
    @@ -120,7 +121,7 @@
    õÐÒÏÝÅÎÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ
    íÎÏÇÉÅ ÚÁÐÕÔÁÎÎÙÅ ÄÉÒÅËÔÉ×Ù ÂÙÌÉ ÕÐÒÏÝÅÎÙ. îÁÉÂÏÌÅÅ - ÓÂÉ×ÁÀÝÉÅ Ó ÔÏÌËÕ Port É BindAddress ÂÙÌÉ ÕÂÒÁÎÙ; + ÓÂÉ×ÁÀÝÉÅ Ó ÔÏÌËÕ Port É BindAddress ÂÙÌÉ ÕÂÒÁÎÙ; ÄÌÑ ÐÒÉ×ÑÚËÉ Ë IP ÁÄÒÅÓÕ ÉÓÐÏÌØÚÕÅÔÓÑ ÔÏÌØËÏ ÄÉÒÅËÔÉ×Á Listen; ÄÉÒÅËÔÉ×Á ServerName ÏÐÒÅÄÅÌÑÅÔ ÉÍÑ ÓÅÒ×ÅÒÁ É ÎÏÍÅÒ ÐÏÒÔÁ @@ -135,9 +136,9 @@ ÓÉÓÔÅÍ, ×ËÌÀÞÁÑ Windows 2000 É Windows XP. üÔÏ ÎÅ ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÎÁ ÔÁËÉÅ ÏÐÅÒÁÃÉÏÎÎÙÅ ÓÉÓÔÅÍÙ, ËÁË Windows 95, 98 ÉÌÉ ME, ËÏÔÏÒÙÅ ÄÌÑ ÏÂÒÁÝÅÎÉÑ Ë ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ - ÉÓÐÏÌØÚÕÀÔ ÌÏËÁÌØÎÙÅ ÍÁÛÉÎÎÙÅ ËÏÄÏ×ÙÅ ÓÔÒÁÎÉÃÙ.
    + ÉÓÐÏÌØÚÕÀÔ ÌÏËÁÌØÎÙÅ ËÏÄÏ×ÙÅ ÓÔÒÁÎÉÃÙ.
    -
    îÏ×ÁÑ ÂÉÂÌÉÏÔÅËÁ ÄÌÑ ÒÁÂÏÔÙ Ó ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÑÍÉ
    +
    îÏ×ÁÑ ÂÉÂÌÉÏÔÅËÁ ÄÌÑ ÒÁÂÏÔÙ Ó ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÉÑÍÉ
    ÷ ÓÏÓÔÁ× Apache 2.0 ÂÙÌÁ ×ËÌÀÞÅÎÁ ÂÉÂÌÉÏÔÅËÁ ÄÌÑ ÒÁÂÏÔÙ Ó Perl-ÓÏ×ÍÅÓÔÉÍÙÍÉ ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÑÍÉ (PCRE). @@ -189,7 +190,7 @@
    mod_file_cache
    îÏ×ÙÊ ÍÏÄÕÌØ × Apache 2.0. üÔÏÔ ÍÏÄÕÌØ ×ËÌÀÞÁÅÔ × ÓÅÂÑ - ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÍÏÄÕÌÑ mod_mmap_static ÉÚ Apache 1.3 + ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÍÏÄÕÌÑ mod_mmap_static ÉÚ Apache 1.3 ÐÌÀÓ ÎÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ËÜÛÉÒÏ×ÁÎÉÑ.
    mod_headers
    @@ -207,10 +208,10 @@ Ë ÜÔÏÍÕ ÂÙÌÁ ××ÅÄÅÎÁ ÎÏ×ÁÑ ÓÅËÃÉÑ Proxy, ËÏÔÏÒÕÀ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÆÁÊÌÁÈ, ÞÔÏ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÂÏÌÅÅ ÕÄÏÂÎÙÊ (É ÂÏÌÅÅ ÂÙÓÔÒÙÊ ÄÌÑ ÑÄÒÁ ÓÅÒ×ÅÒÁ) ËÏÎÔÒÏÌØ ÎÁÄ ÓÁÊÔÁÍÉ, - ÉÓÐÏÌØÚÕÀÝÉÍÉ proxy-ÔÅÈÎÏÌÏÇÉÀ. ðÅÒÅÇÒÕÖÅÎÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ <Directory "proxy:..."> + ÉÓÐÏÌØÚÕÀÝÉÍÉ proxy-ÔÅÈÎÏÌÏÇÉÀ. ðÅÒÅÇÒÕÖÅÎÎÁÑ ËÏÎÆÉÇÕÒÁÃÉÑ <Directory "proxy:..."> ÂÏÌÅÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. íÏÄÕÌØ ÔÅÐÅÒØ ÒÁÚÄÅÌÅÎ ÎÁ ÏÔÄÅÌØÎÙÅ ÓÐÅÃÉÆÉÞÎÙÅ ÍÏÄÕÌÉ, - ÐÏÄÄÅÒÖÉ×ÁÀÝÉÅ ÒÁÚÌÉÞÎÙÅ ÐÒÏÔÏËÏÌÙ. üÔÉ ÍÏÄÕÌÉ ×ËÌÀÞÁÀÔ × ÓÅÂÑ proxy_connect, proxy_ftp - É proxy_http. + ÐÏÄÄÅÒÖÉ×ÁÀÝÉÅ ÒÁÚÌÉÞÎÙÅ ÐÒÏÔÏËÏÌÙ. üÔÉ ÍÏÄÕÌÉ ×ËÌÀÞÁÀÔ × ÓÅÂÑ proxy_connect, proxy_ftp + É proxy_http.
    mod_negotiation
    @@ -220,13 +221,13 @@ ÏÐÒÅÄÅÌÅÎÎÙÊ ÄÏËÕÍÅÎÔ. ÷ ÄÏÐÏÌÎÅÎÉÅ Ë ÜÔÏÍÕ ÁÌÇÏÒÉÔÍÙ ÎÅÇÏÃÉÁÃÉÉ (negotiation) É MultiViews ÂÙÌÉ ×ÙÞÉÝÅÎÙ É ÉÓÐÒÁ×ÌÅÎÙ, ÄÌÑ ÏÂÅÓÐÅÞÅÎÉÑ ÂÏÌÅÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÇÏ ÒÅÚÕÌØÔÁÔÁ, Á ÔÁËÖÅ ÐÏÑ×ÉÌÁÓØ ×ÏÚÍÏÖÎÏÓÔØ - ×ËÌÀÞÅÎÉÑ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏÇÏ ÓÏÄÅÒÖÉÍÏÇÏ ÄÏËÕÍÅÎÔÏ× × ËÁÒÔÕ ÔÉÐÏ× (type map). + ×ËÌÀÞÅÎÉÑ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÓÏÄÅÒÖÉÍÏÇÏ ÄÏËÕÍÅÎÔÏ× × ËÁÒÔÕ ÔÉÐÏ× (type map).
    mod_autoindex
    ìÉÓÔÉÎÇÉ Á×ÔÏÉÎÄÅËÓÉÒÕÅÍÙÈ ËÁÔÁÌÏÇÏ× ÔÅÐÅÒØ ÍÏÇÕÔ ×ÙÄÁ×ÁÔØÓÑ × ×ÉÄÅ HTML-ÔÁÂÌÉÃ. ðÏÑ×ÉÌÁÓØ ×ÏÚÍÏÖÎÏÓÔØ ÂÏÌÅÅ ÇÉÂËÏÊ ÓÏÒÔÉÒÏ×ËÉ, ×ËÌÀÞÁÑ ÓÏÒÔÉÒÏ×ËÕ ÐÏ ×ÅÒÓÉÑÍ É - ÓÏÒÔÉÒÏ×ËÕ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÕÎÉ×ÅÒÓÁÌØÎÙÈ ÓÉÍ×ÏÌÏ× (wildcard).
    + ÓÏÒÔÉÒÏ×ËÕ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÛÁÂÌÏÎÎÙÈ ÓÉÍ×ÏÌÏ× (wildcard).
    mod_include
    @@ -236,7 +237,7 @@ × ÇÌÁ×ÎÏÍ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÏÍ ÆÁÊÌÅ, Á ÎÅ × SSI ÄÏËÕÍÅÎÔÅ. òÅÚÕÌØÔÁÔÙ ÏÂÒÁÂÏÔËÉ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ (ÔÅÐÅÒØ ÏÓÎÏ×Ù×ÁÀÝÉÈÓÑ ÎÁ ÓÉÎÔÁËÓÉÓÅ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ ÑÚÙËÁ Perl) ÍÏÇÕÔ ÂÙÔØ ÐÏÌÕÞÅÎÙ ÐÒÉ ÐÏÍÏÝÉ ÐÅÒÅÍÅÎÎÙÈ - $0 .. $9 ÍÏÄÕÌÑ mod_include. + $0 .. $9 ÍÏÄÕÌÑ mod_include.
    mod_auth_dbm
    diff --git a/docs/manual/new_features_2_0.xml.tr b/docs/manual/new_features_2_0.xml.tr new file mode 100644 index 00000000000..0bbbcbf022f --- /dev/null +++ b/docs/manual/new_features_2_0.xml.tr @@ -0,0 +1,246 @@ + + + + + + + + + + +Apache 2.0’da Yeni olan Özellikler + + +

    Bu belgede Apache HTTP Sunucusunun 1.3 ve 2.0 sürümleri arasındaki + başlıca değişikliklerin bazılarına değinilmiştir.

    +
    + +1.3’ten 2.0’a Yükseltme + +
    + Çekirdekteki Gelişmeler + +
    +
    Unix Evreleri
    + +
    POSIX evreleri desteği olan Unix sistemlerinde Apache, çok evreli + kipte çok süreçlilik şeklinde melez bir yapıda çalışır. Bu bir çok + bakımdan ölçeklenebilirliği arttırsa da bütün yapılandırmalarda + sağlanamaz.
    + +
    Yeni Paket Derleme Sistemi
    + +
    Yeni kaynak paketi derleme sistemi autoconf ve + libtool’a dayalı olarak sıfırdan, yeni baştan yazıldı. + Böylece Apache’nin paket yapılandırma sistemi diğer paketlerinkiyle + benzerlik kazanmış oldu.
    + +
    Çok Sayıda Protokol Desteği
    + +
    Apache artık çok sayıda protokol ile hizmet sunacak bir alt yapıya + sahiptir. Örneğin, mod_echo modülü bu amaçla + yazılmıştır.
    + +
    Unix dışı platformalara daha iyi destek
    + +
    Apache 2.0 sürümleri, BeOS, OS/2, Windows gibi Unix olmayan + platformlarda daha hızlı ve daha kararlı çalışacak duruma + getirilmiştir. Genelde iyi geliştirilmemiş olan dolayısıyla istenen + başarımı sağlayamayan POSIX taklit katmanlarının kullanımından + vazgeçilmiş, platforma özgü çok süreçlilik + modülleri (MPM) ve Apache Taşınabilirlik Arayüzü (APR) sayesinde + bu platformlar artık kendi doğal programlama arayüzleriyle + gerçeklenir olmuştur.
    + +
    Yeni Apache Programlama Arayüzü
    + +
    Modüller için kullanılan programlama arayüzü 2.0 sürümüyle önemli + değişikliklere uğramıştır. 1.3 sürümünde görülen modüllerle ilgili + sıralama/öncelik sorunlarının çoğu giderilmiştir. 2.0 sürümü bu + işlemleri daha bir özdevimli yapar olmuştur; daha fazla esneklik + sağlamak için artık kancalı modül sıralaması kullanılabilmektedir. + Ayrıca, arayüze, Apache sunucu çekirdeğini yamamaya gerek kalmadan + modüllerle sunucu yeteneklerinin arttırılabilmesini sağlayan yeni + çağrılar eklenmiştir.
    + +
    IPv6 Desteği
    + +
    IPv6’nın Apache Taşınabilirlik Arayüzü kütüphanesi tarafından + desteklendiği sistemlerde Apache öntanımlı olarak IPv6 soketlerini + dinler. Bundan başka, Listen, NameVirtualHost ve VirtualHost yönergelerinin IPv6 sayısal adres + dizgelerini desteklemesi sağlanmıştır.
    Örnek: Listen + [2001:db8::1]:8080
    + +
    Süzme
    + +
    Apache modülleri, artık, sunucuya teslim edilen veya sunucudan + teslim alınan içerik akımları üzerinde süzgeç gibi davranacak şekilde + yazılabilmektedir. Bu sayede, örneğin CGI betiklerinin çıktılarının + mod_include modülünün INCLUDES süzgeci + kullanılarak SSI yönergeleri için çözümlenmesi mümkündür. CGI + programlarının birer eylemci olarak davranması gibi, + mod_ext_filter modülü de harici programların birer + süzgeç olarak davranabilmesini mümkün kılar.
    + +
    Çok Dilli Hata Yanıtları
    + +
    Hata yanıtlarının tarayıcılara yönelik iletileri artık SSI + belgeleri kullanılarak çeşitli dillerde sağlanabilmektedir. Bunlar + ayrıca yönetici tarafından görünüş ve kullanışlılık tutarlılığı + bakımından kişiselleştirilebilmektedir.
    + +
    Basitleştirilmiş Yapılandırma
    + +
    Bazı yönergelerle ilgili kafa karışıklıkları giderilmiştir. + Bilhassa belli bir IP adresini dinlemek için kullanılan + Port ve BindAddress yönergeleri ile ilgili + karışıklığın önüne geçmek için sadece Listen yönergesi yeterli olmaktadır. ServerName yönergesi ise sadece yönlendirme + ve sanal konak tanıma amacıyla sunucu ismi ve port belirtiminde + kullanılmaktadır.
    + +
    Doğal Windows NT Unicode Desteği
    + +
    Apache 2.0, Windows NT üzerinde artık tüm dosya sistemi + kodlamalarında utf-8 kullanmaktadır. Bu destek, Windows 2000 ve + Windows XP dahil tüm Windows NT temelli sistemlere çok dillilik + desteğini sağlamak üzere mevcut Unicode dosya sistemine doğrudan + uyarlanır. Dosya sisteminde makinenin yerel karakter kodlamasını + kullanan kullanan Windows 95, 98 ve ME için bu destek + yoktur.
    + +
    Düzenli İfade Kütüphanesi Güncellemesi
    + +
    Apache 2.0’da Perl uyumlu düzenli + ifade kütüphanesi bulunur. Tüm düzenli ifadelerde artık çok daha + güçlü olan Perl 5 sözdizimi kullanılmaktadır.
    + +
    +
    + +
    + Modüllerdeki Gelişmeler + +
    +
    mod_ssl
    + +
    Apache 2.0’da yeni olan bu modül, OpenSSL tarafından sağlanan + SSL/TLS şifreleme protokollerine bir arayüzdür.
    + +
    mod_dav
    + +
    Apache 2.0’da yeni olan bu modül, site içeriğinin destek ve bakımı + için HTTP dağıtık yazım ve sürüm yönetimi (DAV - Distributed + Authoring and Versioning) belirtimini gerçekler.
    + +
    mod_deflate
    + +
    Apache 2.0’da yeni olan bu modül sayesinde ağ band genişliğinden + daha verimli yararlanabilmek için içeriğin sıkıştırılarak + gönderilmesini talep eden tarayıcıların desteklenmesi mümkün + olmuştur.
    + +
    mod_auth_ldap
    + +
    Apache 2.0.41’de yeni olan bu modül, HTTP temel kimlik + doğrulamasında kullanılan delillerin saklanması için LDAP + veritabanının kullanılabilmesini mümkün kılar. Kardeş modülü olan + mod_ldap ise bağlantı havuzlaması ve sonuçların + önbelleğe alınması ile ilgilenir.
    + +
    mod_auth_digest
    + +
    Paylaşımlı belleği kullanan süreçlere karşı oturum önbelleklemesi + için ek destek içerir.
    + +
    mod_charset_lite
    + +
    Apache 2.0’da yeni olan bu deneysel modül, karakter kümesi + dönüşümleri veya kaydı için destek sağlar.
    + +
    mod_file_cache
    + +
    Apache 2.0’da yeni olan bu modül, Apache 1.3’teki + mod_mmap_static modülünün işlevselliğini içermenin + yanında buna önbellekleme yetenekleri de ekler.
    + +
    mod_headers
    + +
    Bu modül Apache 2.0’da daha esnek hale getirilmiştir. Artık + mod_proxy tarafından kullanılan istek başlıkları + değiştirilebilmekte ve bunlar yanıt başlıklarına şartlı olarak + atanabilmektedir.
    + +
    mod_proxy
    + +
    Bu modül HTTP/1.1 uyumlu vekaleti daha güvenilir kılmak ve yeni + süzgeç alt yapısının getirilerinden de yararlanmak amacıyla yeni + baştan yazılmıştır. Bunun yanında, Proxy bölümünün yeni hali vekil siteleri + desteklemek bakımından daha okunabilir (ve kendi içinde daha hızlı) + olması sağlanmıştır; <Directory "proxy:..."> + yapılandırması artık desteklenmemektedir. Modül, + proxy_connect, proxy_ftp ve + proxy_http şeklinde her biri belli bir protokolü + destekleyen ayrı modüllere bölünmüştür.
    + +
    mod_negotiation
    + +
    Yeni ForceLanguagePriority yönergesi sayesinde istemciye + “Kabul edilebilir bir gösterim çeşidi yok” ya da “Çok sayıda seçim + belirtilmiş” yanıtını döndürmek yerine tüm durumlara uyan bir + sayfanın gönderilebilmesi sağlanmıştır. Bundan başka, uzlaşım ve + MultiViews algoritmaları daha tutarlı sonuçlar elde + etmek amacıyla elden geçirilmiş ve belge içeriği ile daha iyi eşleşen + yeni bir tür eşlem yapısı sağlanmıştır.
    + +
    mod_autoindex
    + +
    Dizin içeriklerinin özdevimli listelenmesi artık HTML tabloları + kullanılacak şekilde yapılandırılabilmektedir. Böylece sayfa daha iyi + biçemlenebilmekte, içerik daha hassas sıralanabilmekte, sürüm + numarasına göre sıralama yapılabilmekte ve dosya ismi kalıpları + kullanılarak sadece istenen içerik listelenebilmektedir.
    + +
    mod_include
    + +
    Yeni yönergeler, değiştirilecek SSI elemanları için öntanımlı + başlangıç ve bitiş etiketlerine izin vermekte, hataların ve zaman + biçemleme yapılandırmalarının SSI belgesinde değil ana yapılandırma + dosyasında bulunması mümkün olmaktadır. Düzenli ifadelerin gruplanmış + sonuçları (Perl düzenli ifade sözdizimi kullanılmaktadır) + mod_include modülünün $0 .. + $9 değişkenleri sayesinde kullanılabilmektedir.
    + +
    mod_auth_dbm
    + +
    AuthDBMType yönergesi + sayesinde artık çok sayıda DBM tarzı veritabanı türü + desteklenmektedir.
    +
    +
    +
    + diff --git a/docs/manual/new_features_2_2.html b/docs/manual/new_features_2_2.html index b79e2041d94..6a517769657 100644 --- a/docs/manual/new_features_2_2.html +++ b/docs/manual/new_features_2_2.html @@ -1,7 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: new_features_2_2.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: new_features_2_2.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: new_features_2_2.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + URI: new_features_2_2.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR @@ -9,3 +19,7 @@ URI: new_features_2_2.html.pt-br Content-Language: pt-br Content-type: text/html; charset=ISO-8859-1 + +URI: new_features_2_2.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/new_features_2_2.html.en b/docs/manual/new_features_2_2.html.en index f8f134ec7ee..e646545222c 100644 --- a/docs/manual/new_features_2_2.html.en +++ b/docs/manual/new_features_2_2.html.en @@ -1,26 +1,36 @@ - -Overview of new features in Apache 2.2 - Apache HTTP Server +Overview of new features in Apache 2.2 - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Overview of new features in Apache 2.2

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Overview of new features in Apache 2.2

    Available Languages:  en  | + fr  | + ja  |  ko  | - pt-br 

    + pt-br  | + tr 

    This document describes some of the major changes between the @@ -32,7 +42,7 @@

  • Module Enhancements
  • Program Enhancements
  • Module Developer Changes
  • -
    +
    top

    Core Enhancements

    @@ -41,28 +51,49 @@
    Authn/Authz
    The bundled authentication and authorization modules have - been refactored. There is a new authentication backend provider - scheme which greatly eases the construction of new authentication - backends.
    + been refactored. The new mod_authn_alias module + can greatly simplify certain authentication configurations. + See module name changes, and + the developer changes for more + information about how these changes affects users and module + writers.
    Caching
    mod_cache, mod_disk_cache, and - mod_mem_cache have undergone a lot of changes + mod_mem_cache have undergone a lot of changes, and are now considered production-quality. htcacheclean - has been introduced to cleanup mod_disk_cache + has been introduced to clean up mod_disk_cache setups.
    +
    Configuration
    +
    The default configuration layout has been simplified and + modularised. Configuration snippets which can be used to + enable commonly-used features are now bundled with Apache, and + can be easily added to the main server config.
    + +
    Graceful stop
    +
    The prefork, worker and + event MPMs now allow httpd + to be shutdown gracefully via the + graceful-stop + signal. The GracefulShutdownTimeout directive + has been added to specify an optional timeout, after which + httpd will terminate regardless of the status + of any requests being served.
    +
    Proxying
    -
    The new mod_proxy_balancer module provides +
    The new mod_proxy_balancer module provides load balancing services for mod_proxy. The new mod_proxy_ajp module adds support for the - Apache JServ Protocol version 1.3 used by - Apache Tomcat.
    + Apache JServ Protocol version 1.3 used by + Apache Tomcat.
    Regular Expression Library Updated
    -
    Version 5.0 of the +
    Version 5.0 of the Perl Compatible Regular Expression - Library (PCRE) is now included.
    + Library (PCRE) is now included. httpd can be + configured to use a system installation of PCRE by passing the + --with-pcre flag to configure.
    Smart Filtering
    mod_filter introduces dynamic configuration @@ -73,21 +104,22 @@
    Large File Support
    -
    httpd is now built with support for files larger than 2Gb on - modern 32-bit Unix systems. Support for handling >2Gb request - bodies has also been added.
    +
    httpd is now built with support for files larger + than 2GB on modern 32-bit Unix systems. Support for handling + >2GB request bodies has also been added.
    Event MPM
    -
    The event MPM uses a seperate thread to handle +
    The event MPM uses a separate thread to handle Keep Alive requests and accepting connections. Keep Alive requests have traditionally required httpd to dedicate a worker to handle it. - This dedicated worker could not be used again until the Keep Alive + This dedicated worker could not be used again until the Keep Alive timeout was reached.
    SQL Database Support
    -
    mod_dbd, together with the apr_dbd framework, - brings direct SQL support to modules that need it. Supports - connection pooling in threaded MPMs.
    +

    mod_dbd, together with the apr_dbd + framework, brings direct SQL support to modules that need it. + Supports connection pooling in threaded MPMs.

    +
    top
    @@ -95,26 +127,51 @@

    Module Enhancements

    +
    Authn/Authz
    +
    Modules in the aaa directory have been renamed and offer + better support for digest authentication. For example, + mod_auth is now split into + mod_auth_basic and + mod_authn_file; mod_auth_dbm is now + called mod_authn_dbm; mod_access has + been renamed mod_authz_host. There is also a new + mod_authn_alias module for simplifying + certain authentication configurations. +
    +
    mod_authnz_ldap
    -
    This module is a port of the 2.0 - mod_auth_ldap module to the 2.2 Authn/Authz - framework. New features include using LDAP attribute values and - complicated search filters in the +
    This module is a port of the 2.0 + mod_auth_ldap module to the 2.2 Authn/Authz + framework. New features include using LDAP attribute values and + complicated search filters in the Require directive.
    +
    mod_authz_owner
    +
    A new module that authorizes access to files based + on the owner of the file on the file system
    + +
    mod_version
    +
    A new module that allows configuration blocks to be enabled based on the + version number of the running server.
    +
    mod_info
    Added a new ?config argument which will show the configuration directives as parsed by Apache, including - their file name and line number. The module also + their file name and line number. The module also shows the order of all request hooks and additional build information, similar to httpd -V.
    mod_ssl
    -
    Added a support for - RFC 2817, which +
    Added a support for + RFC 2817, which allows connections to upgrade from clear text to TLS encryption.
    + +
    mod_imagemap
    +
    mod_imap has been renamed to + mod_imagemap to avoid user confusion.
    +
    top

    Program Enhancements

    @@ -125,23 +182,45 @@ lists all modules that are loaded based on the current configuration. Unlike the -l option, this list includes DSOs loaded via mod_so. + +
    httxt2dbm
    +
    A new program used to generate dbm files from text input, + for use in RewriteMap + with the dbm map type.
    top

    Module Developer Changes

    -
    APR 1.0 API
    +
    APR 1.0 API
    -
    Apache 2.2 uses the APR 1.0 API. All deprecated functions and - symbols have been removed from APR and - APR-Util. For details, see the +
    Apache 2.2 uses the APR 1.0 API. All deprecated functions and + symbols have been removed from APR and + APR-Util. For details, see the APR Website.
    +
    Authn/Authz
    +
    The bundled authentication and authorization modules have + been renamed along the following lines: +
      +
    • mod_auth_* -> Modules that implement an HTTP + authentication mechanism
    • +
    • mod_authn_* -> Modules that provide a backend + authentication provider
    • +
    • mod_authz_* -> Modules that implement + authorization (or access)
    • +
    • mod_authnz_* -> Module that implements both + authentication & authorization
    • +
    + There is a new authentication backend provider + scheme which greatly eases the construction of new authentication + backends.
    +
    Connection Error Logging
    A new function, ap_log_cerror has been added to log - errors that occure with the client's connection. When logged, + errors that occur with the client's connection. When logged, the message includes the client IP address.
    Test Configuration Hook Added
    @@ -152,14 +231,14 @@
    Set Threaded MPM's Stacksize
    -
    A new directive, ThreadStackSize has been added to +
    A new directive, ThreadStackSize has been added to set the stack size on all threaded MPMs. This is required for some third-party modules on platforms with small default thread stack size.
    Protocol handling for output filters
    -
    In the past, every filter has been responsible for ensuring +
    In the past, every filter has been responsible for ensuring that it generates the correct response headers where it affects them. Filters can now delegate common protocol management to mod_filter, using the @@ -169,13 +248,64 @@
    Monitor hook added
    Monitor hook enables modules to run regular/scheduled jobs in the parent (root) process.
    + +
    Regular expression API changes
    + +
    The pcreposix.h header is no longer available; + it is replaced by the new ap_regex.h header. The + POSIX.2 regex.h implementation exposed by the old + header is now available under the ap_ namespace + from ap_regex.h. Calls to regcomp, + regexec and so on can be replaced by calls to + ap_regcomp, ap_regexec.
    + +
    DBD Framework (SQL Database API)
    + +

    With Apache 1.x and 2.0, modules requiring an SQL backend + had to take responsibility for managing it themselves. Apart + from reinventing the wheel, this can be very inefficient, for + example when several modules each maintain their own connections.

    + +

    Apache 2.1 and later provides the ap_dbd API for + managing database connections (including optimised strategies + for threaded and unthreaded MPMs), while APR 1.2 and later provides + the apr_dbd API for interacting with the database.

    + +

    New modules SHOULD now use these APIs for all SQL database + operations. Existing applications SHOULD be upgraded to use it + where feasible, either transparently or as a recommended option + to their users.

    Available Languages:  en  | + fr  | + ja  |  ko  | - pt-br 

    -
    + pt-br  | + tr 

    +
    @@ -121,23 +169,45 @@ lists all modules that are loaded based on the current configuration. Unlike the -l option, this list includes DSOs loaded via mod_so. + +
    httxt2dbm
    +
    A new program used to generate dbm files from text input, + for use in RewriteMap + with the dbm map type.
    Module Developer Changes
    -
    APR 1.0 API
    +
    APR 1.0 API
    -
    Apache 2.2 uses the APR 1.0 API. All deprecated functions and - symbols have been removed from APR and - APR-Util. For details, see the +
    Apache 2.2 uses the APR 1.0 API. All deprecated functions and + symbols have been removed from APR and + APR-Util. For details, see the APR Website.
    +
    Authn/Authz
    +
    The bundled authentication and authorization modules have + been renamed along the following lines: +
      +
    • mod_auth_* -> Modules that implement an HTTP + authentication mechanism
    • +
    • mod_authn_* -> Modules that provide a backend + authentication provider
    • +
    • mod_authz_* -> Modules that implement + authorization (or access)
    • +
    • mod_authnz_* -> Module that implements both + authentication & authorization
    • +
    + There is a new authentication backend provider + scheme which greatly eases the construction of new authentication + backends.
    +
    Connection Error Logging
    A new function, ap_log_cerror has been added to log - errors that occure with the client's connection. When logged, + errors that occur with the client's connection. When logged, the message includes the client IP address.
    Test Configuration Hook Added
    @@ -148,14 +218,15 @@
    Set Threaded MPM's Stacksize
    -
    A new directive, ThreadStackSize has been added to +
    A new directive, ThreadStackSize has been added to set the stack size on all threaded MPMs. This is required for some third-party modules on platforms with small default thread stack size.
    Protocol handling for output filters
    -
    In the past, every filter has been responsible for ensuring +
    In the past, every filter has been responsible for ensuring that it generates the correct response headers where it affects them. Filters can now delegate common protocol management to mod_filter, using the @@ -165,6 +236,33 @@
    Monitor hook added
    Monitor hook enables modules to run regular/scheduled jobs in the parent (root) process.
    + +
    Regular expression API changes
    + +
    The pcreposix.h header is no longer available; + it is replaced by the new ap_regex.h header. The + POSIX.2 regex.h implementation exposed by the old + header is now available under the ap_ namespace + from ap_regex.h. Calls to regcomp, + regexec and so on can be replaced by calls to + ap_regcomp, ap_regexec.
    + +
    DBD Framework (SQL Database API)
    + +

    With Apache 1.x and 2.0, modules requiring an SQL backend + had to take responsibility for managing it themselves. Apart + from reinventing the wheel, this can be very inefficient, for + example when several modules each maintain their own connections.

    + +

    Apache 2.1 and later provides the ap_dbd API for + managing database connections (including optimised strategies + for threaded and unthreaded MPMs), while APR 1.2 and later provides + the apr_dbd API for interacting with the database.

    + +

    New modules SHOULD now use these APIs for all SQL database + operations. Existing applications SHOULD be upgraded to use it + where feasible, either transparently or as a recommended option + to their users.

    diff --git a/docs/manual/new_features_2_2.xml.fr b/docs/manual/new_features_2_2.xml.fr new file mode 100644 index 00000000000..e260b115e35 --- /dev/null +++ b/docs/manual/new_features_2_2.xml.fr @@ -0,0 +1,292 @@ + + + + + + + + + + + +Aperçu des nouvelles fonctionnalités dans Apache 2.2 + + +

    Ce document décrit quelques uns des changements principaux entre + les versions 2.0 et 2.2 du serveur HTTP Apache. Pour les + nouvelles fonctionnalités ajoutées depuis la version 1.3, se + référer au document + 2.0 new features.

    +
    + +
    + Améliorations du système de base +
    + +
    Authn/Authz
    +
    Les modules d'authentification et d'autorisation intégrés + ont été refondus. Le nouveau module + mod_authn_alias permet de + simplifier considérablement certaines configurations d'authentification. + Voir modification des noms de modules, + et + les changements pour le développeur + pour plus d'informations sur les conséquences de ces + changements pour les utilisateurs et les développeurs de + modules.
    + +
    Mise en cache
    +
    mod_cache, mod_disk_cache, et + mod_mem_cache ont subi de nombreuses + modifications, et l'on considère qu'ils ont maintenant atteint + un degré de qualité suffisant pour leur mise en production. Le programme + htcacheclean a été ajouté afin de rendre + plus propre la configuration du module + mod_disk_cache.
    + +
    Configuration
    +
    L'agencement de la configuration par défaut a été simplifié + et modularisé. Les portions de configuration qui peuvent être + utilisées pour activer des fonctionnalités courantes sont + maintenant intégrées à Apache, et peuvent être facilement + ajoutées à la configuration principale du serveur.
    + +
    Arrêt en douceur
    +
    Les modules MPM prefork, + worker et event permettent + maintenant l'arrêt en douceur de httpd + au moyen du signal + graceful-stop. + La directive GracefulShutdownTimeout a été ajoutée dans le but + de spécifier un délai optionnel, après lequel + httpd s'arrêtera quel que soit le statut + des requêtes en cours.
    + +
    Mise en oeuvre du proxy
    +
    Le nouveau module mod_proxy_balancer fournit + des services de répartition de charge (load balancing) pour le + module mod_proxy. + Le nouveau module mod_proxy_ajp ajoute le + support pour le + Protocole JServ de Apache version 1.3 qu'utilise + Apache Tomcat.
    + +
    Mise à jour de la bibliothèque des expressions rationnelles
    +
    La version 5.0 de la + Perl Compatible Regular Expression + Library (PCRE) est maintenant disponible. + httpd peut être configuré pour utiliser une + PCRE choisie en passant l'option --with-pcre au + script configure.
    + +
    Filtrage intelligent
    +
    Le module mod_filter permet la configuration + dynamique de la chaîne de filtrage en sortie. Il permet + d'insérer des filtres conditionnels basés sur toute + requête, en-tête de réponse ou variable + d'environnement, et fait table rase des problèmes de dépendances + et d'ordonnancement rencontrés avec l'architecture 2.0.
    + +
    Support des gros fichiers
    + +
    httpd supporte maintenant les fichiers d'une taille supérieure + à 2GB sur les systèmes 32 bits UNIX modernes. Le support des + corps de requête d'une taille supérieure à 2GB a aussi été + ajouté.
    + +
    Module MPM Event
    +
    Le module MPM event utilise un thread séparé + pour gérer les requêtes "Keep alive" et accepter des connexions. + Les requêtes "Keep alive" requéraient traditionnellement un + processus httpd dédié pour leur gestion. Ce processus dédié + ne pouvait plus être réutilisé jusqu'à ce que le délai "Keep Alive" + soit écoulé.
    + +
    Support des bases de données SQL
    +
    Le module

    mod_dbd, associé à l'environnement + apr_dbd, fournit le support SQL direct aux modules + qui en ont besoin. Supporte la mise en commun des connexions + dans les modules MPM threadés.

    +
    + +
    +
    + +
    + Améliorations des modules +
    +
    Authn/Authz
    +
    Les modules du répertoire aaa ont été renommés et fournissent + un support amélioré pour la méthode d'authentification digest. Par exemple, mod_auth + est maintenant scindé en deux modules : mod_auth_basic et + mod_authn_file; mod_auth_dbm s'appelle maintenant + mod_authn_dbm; mod_access a été renommé en + mod_authz_host. Est également apparu le nouveau module + mod_authn_alias qui simplifie + certaines configurations d'authentification. +
    + +
    mod_authnz_ldap
    +
    Ce module est un portage de la version 2.0 du module + mod_auth_ldap vers la version 2.2 du framework + Authn/Authz. + Les nouvelles fonctionnalités comprennent l'utilisation des valeurs + d'attributs LDAP et des filtres de recherche avancés dans la + directive Require.
    + +
    mod_authz_owner
    +
    Ce nouveau module propose une gestion des droits d'accès aux ressources web selon leur appartenance + à un utilisateur au niveau du système de fichiers.
    + +
    mod_version
    +
    Ce nouveau module permet de définir des blocs de configuration activables selon le numéro de version du serveur en fonctionnement.
    + +
    mod_info
    +
    Un nouvel argument ?config a été ajouté, qui permettra d'afficher + les directives de configuration telles qu'elles sont interprétées + par Apache, y compris le nom de fichier et le numéro de ligne. + Le module montre aussi l'ordre des point d'entrée de traitement d'une + requête (request hooks) ainsi que des informations de construction + supplémentaires, d'une manière similaire à httpd -V.
    + +
    mod_ssl
    + +
    Le support de RFC 2817, a été ajouté, ce qui permet de passer d'une + connexion en clair au cryptage TLS.
    + +
    mod_imagemap
    +
    mod_imap a été renommé en mod_imagemap afin + d'éviter une confusion pour les utilisateurs.
    +
    + +
    + +
    + Améliorations des programmes +
    +
    httpd
    +
    Une nouvelle option de ligne de commande -M + a été ajoutée, qui fournit la liste de tous les modules chargés + en fonction de la configuration réelle. À la différence de l'option + -l, cette liste inclut les Objets Dynamiques Partagés + (DSOs) chargés par l'intermédiaire du module + mod_so.
    +
    httxt2dbm
    +
    Un nouveau programme servant à générer des fichiers dbm à partir + d'une source texte, à utiliser avec la directive + RewriteMap + et le type de mise en correspondance dbm.
    +
    +
    + +
    + Changements pour le développeur de module +
    +
    APR 1.0 API
    + +
    Apache 2.2 utilise l'API APR 1.0. Toutes les fonctions et + symboles obsolètes ont été supprimés du code de APR et + APR-Util. Pour plus de détails, consultez le + site web de APR.
    + +
    Authn/Authz
    +
    Les modules d'authentification et d'autorisation intégrés ont + été renommés de la manière suivante: +
      +
    • mod_auth_* -> Modules qui implémentent un mécanisme + d'authentification HTTP
    • +
    • mod_authn_* -> Modules qui fournissent un dispositif + d'authentification en arrière-plan
    • +
    • mod_authz_* -> Modules qui implémentent l'autorisation (ou l'accès)
    • +
    • mod_authnz_* -> Module qui implémentent à la fois + l'authentification & l'autorisation
    • +
    + L'organisation des méthodes d'authentification a également été revue, ce qui va simplifier + grandement l'ajout de nouvelles méthodes d'authentification.
    + +
    Journalisation des erreurs de connexion
    + +
    Une nouvelle fonction a été ajoutée, ap_log_cerror, + afin de pouvoir enregistrer les erreurs qui surviennent au cours de + la connexion du client. Une fois enregistré, le message inclut l'adresse IP du client.
    + +
    Ajout d'une portion de code pour la vérification de la configuration
    + +
    Un nouvel élément de traitement a été ajouté, test_config, + afin d'aider les modules qui ne veulent exécuter un code spécial + que si l'utilisateur passe le paramètre -t à + httpd.
    + +
    Définition de la taille de la pile pour les modules MPM en processus légers
    + +
    Une nouvelle directive a été ajoutée, ThreadStackSize + afin de définir la taille de la pile pour tous les modules MPM en processus légers (modules threadés). + Ceci s'avère nécessaire pour certains modules tiers sur des plateformes + dont la taille de la pile des threads par défaut est + trop petite.
    + +
    Gestion de protocole pour les filtres en sortie
    + +
    Par le passé, chaque filtre devait s'assurer que les en-têtes de + réponse corrects étaient générés dans la mesure où il les affectait. + Les filtres peuvent maintenant déléguer la gestion courante du + protocole au module + mod_filter, à l'aide des appels + ap_register_output_filter_protocol ou + ap_filter_protocol.
    + +
    Ajout d'un élément de traitement pour le processus père (monitor hook)
    +
    Ce nouvel élément de traitement permet aux modules de lancer + des jobs réguliers/planifiés au niveau du processus père + (root).
    + +
    Modifications de l'API de traitement des expressions régulières
    + +
    Le fichier d'en-tête pcreposix.h n'est plus disponible; + il a été remplacé par le nouveau fichier + d'en-tête ap_regex.h. L'implémentation + POSIX.2 regex.h exposée dans l'ancien fichier d'en-tête + est maintenant disponible dans l'espace de nommage ap_ + depuis ap_regex.h. Les appels à regcomp, + regexec, etc... peuvent être remplacés par des appels à + ap_regcomp, ap_regexec.
    + +
    Cadre d'application DBD (API pour base de données SQL)
    + +

    Avec Apache 1.x et 2.0, les modules nécessitant un processus + SQL d'arrière-plan devaient s'en charger eux-mêmes. En dehors du fait + de réinventer la roue, ceci peut s'avérer très inefficace, par + exemple lorsque plusieurs modules maintiennent chacun leurs + propres connexions.

    +

    Apache 2.1 et supérieur fournissent l'API ap_dbd qui + permet la gestion des connexions à la base de données (y compris + les stratégies optimisées pour les modules MPM threadés + et non threadés), tandis que APR 1.2 et supérieur fournissent + l'API apr_dbd qui permet l'interaction avec la + base de données.

    +

    Les nouveaux modules DEVRAIENT désormais utiliser ces APIs pour + toutes les opérations liées aux bases de données SQL. + De même, les applications existantes DEVRAIENT être mises à jour + lorsque c'est possible, soit de manière transparente ou sous forme + d'une option recommandée à leurs utilisateurs.

    +
    +
    +
    diff --git a/docs/manual/new_features_2_2.xml.ja b/docs/manual/new_features_2_2.xml.ja new file mode 100644 index 00000000000..a8ea981918e --- /dev/null +++ b/docs/manual/new_features_2_2.xml.ja @@ -0,0 +1,276 @@ + + + + + + + + + +Apache 2.2 の新機能の概要 + + +

    この文書では、Apache HTTP サーババージョン 2.0 と 2.2 の主な違いについて + 記述しています。 バージョン 1.3 からの新機能 については + 2.0 の新機能 の文書をご覧下さい。

    +
    + +
    + コア機能の拡張 +
    + +
    Authn/Authz
    +
    認証と認可のモジュールは再構成されました。 + 新しい mod_authn_alias モジュールは認証の設定を + 非常に簡単化してくれます。 モジュール名の変更 + と 開発者向けの変更 を見てください。 そこには、 + これらの変更がどのようにユーザとモジュール開発者に影響するかが + 書いてあります。
    + +
    キャッシュ
    +
    mod_cache と + mod_disk_cache そして、 + mod_mem_cache はとても多くの変更を受けていて、 + 製品としての品質があると考えられます。 + htcacheclean が導入され、 + mod_disk_cache の設定がシンプルになりました。
    + +
    設定
    +
    デフォルトの設定レイアウトは簡単化されモジュラー化されました。 + 共通して使用される機能に使われる設定の断片は、今や Apache に + 組み込まれていて、メインのサーバ設定に容易に追加することが + できます。
    + +
    緩やかな停止
    +
    最新の prefork と、worker + そして event MPM は httpd + を、 + graceful-stop + のシグナル経由で、緩やかにシャットダウンさせます。 + GracefulShutdownTimeout + のディレクティブがオプションのタイムアウトとして追加され、これに + よってhttpd は、サービス中リクエストの + 状態如何に関わらず強制終了します。
    + +
    プロキシ
    +
    新しいモジュール mod_proxy_balancer は、 + 負荷分散サービスを mod_proxy に提供します。 + 新しいモジュール mod_proxy_ajp は、 + Apache Tomcat + で使われる、 Apache JServ Protocol version 1.3 の + サポートを提供します。
    + +
    正規表現ライブラリの更新
    +
    Perl Compatible Regular Expression + Library (PCRE: Perl 互換正規表現ライブラリ) の バージョン + 5.0 を入れました。 + httpd の configure 時に + --with-pcre のフラグを渡すことで、システムが + インストールしている PCRE を利用するように設定できます。
    + +
    高機能フィルター
    +
    mod_filter は、出力フィルターの連鎖に動的な + 設定を導入しています。 + これは、2.0 アーキテクチャにある、ややこしい依存と順序問題を + 回避するために、リクエスト又はレスポンスヘッダや環境変数に + 基づいて、フィルターを条件付きで挿入できるようにしています。
    + +
    大ファイルサポート
    + +
    httpd は、最新の 32-bit Unix システムでの 2GB + より大きなファイルのサポートを取り入れてビルドされます。 + >2GB であるリクエストボディの扱いも追加されています。
    + +
    Event MPM
    +
    event MPM は、 Keep Alive のリクエストを受け付けて + 処理するのに、別個のスレッドを使います。伝統的には Keep Alive の + リクエストを扱うのに、ワーカを使用する必要がありました。 + Keep Alive のタイムアウトが来るまでは、そのワーカを再利用 + できませんでした。
    + +
    SQL データベースのサポート
    +

    mod_dbdと、 apr_dbd の枠組みを + 併用することで、SQL を必要とするモジュールを直接サポートします。 + スレッド MPM でコネクションプールをサポートします。

    +
    + +
    +
    + +
    + モジュールの拡張 +
    +
    Authn/Authz
    +
    aaa ディレクトリのモジュールは名前を変えられ、ダイジェスト認証を + よりよくサポートするようになっています。 + 例えば、 mod_auth は + mod_auth_basic と + mod_authn_file に分けられ、 + mod_auth_dbm は + mod_authn_dbm と名前を変更し、 + mod_access は、 + mod_authz_hostと名前を変えられています。 + また、新しいモジュール mod_authn_alias ができて、 + ある種の認証設定を簡単化します。 +
    + +
    mod_authnz_ldap
    +
    このモジュールは 2.0 モジュールmod_auth_ldap の + 2.2 Authn/Authz 枠組みへの取り込みです。 + LDAP の属性値と複雑な検索フィルターを使って + Require ディレクティブに + 取り込むことを新機能として含んでいます。
    + +
    mod_authz_owner
    +
    ファイルシステムの所有者に基づいてファイルへのアクセスを認可する + 新しいモジュールです。
    + +
    mod_version
    +
    稼働するサーバのバージョン数に基づいて設定ブロックを有効にする、 + 新しいモジュールです。
    + +
    mod_info
    +
    新しく、 ?config 引数を追加しました。 + これは、Apache によって解析される設定ディレクティブを、ファイル名と + 行数を付けて表示します。 + また、モジュールは httpd -V と同様の、リクエストフックの + 順序と追加のビルド情報を表示します。
    + +
    mod_ssl
    + +
    RFC 2817 + に従って、非暗号クリアテキストから TLS 暗号へのコネクション + グレードアップを追加しました。
    + +
    mod_imagemap
    +
    mod_imap は、ユーザの混同を避けるため、 + mod_imagemap へと名前の変更を行いました。
    +
    + +
    + +
    + プログラムの拡張 +
    +
    httpd
    +
    新しくコマンドラインのオプションとして -M + が追加されました。このオプションでは現在の設定で読み込まれる + 全てのモジュールがリストされます。 + -l オプションとは違って、このリストには + mod_so で読み込まれる DSO を含んでいます。
    + +
    httxt2dbm
    +
    テキストの入力から dbm ファイルを生成するのに使われる、新しい + プログラムです。 + RewriteMap + で使われる dbm のマップタイプに使用されます。
    +
    +
    + +
    + モジュール開発者向けの変更 +
    +
    APR 1.0 API
    + +
    Apache 2.2 は APR 1.0 API を使用します。 + 使われなくなった関数とシンボルは APR と + APR-Utilから削除されました。 + 詳細については + APR Webサイトを見てください。
    + +
    Authn/Authz
    +
    付属の認証と認可のモジュールは次のように名前を変更しました: +
      +
    • mod_auth_* -> HTTP 認証メカニズムを実装する + モジュール
    • +
    • mod_authn_* -> 認証バックエンドを提供する + モジュール
    • +
    • mod_authz_* -> 認可(又はアクセスの制御)を + 実装するモジュール
    • +
    • mod_authnz_* -> 認証と認可の両方を実装する + モジュール
    • +
    + 新しい認証バックエンド提供のスキームがあって、新しいバックエンドの + 構築を非常にやさしくしてくれます。
    + +
    接続エラーのログ
    + +
    新しい関数 ap_log_cerror が、クライアントの接続の + 際のエラーを記録するために追加されました。ログの出力メッセージには + クライアントの IP アドレスが含まれます。
    + +
    設定テストのフックを追加
    + +
    あたらしいフックである test_config が追加されました。 + これにより、ユーザが -t を httpd の + 起動時に与えた時だけに実行される、特別なコードを入れることが + できます。
    + +
    スレッド MPM's のスタックサイズ設定
    + +
    新しいディレクティブである、 ThreadStackSize が全てのスレッド MPM のスタックサイズの + 設定に追加されました。これはサードパーティのモジュールで、 + デフォルトのスタックサイズが小さいことがあるために、必要と + なりました。
    + +
    出力フィルターのプロトコルハンドリング
    + +
    過去においては、個々のフィルターは、それぞれが影響をおよぼす + ところでは、応答ヘッダを正しく生成する責任がありました。 + フィルターは、今は、共通するプロトコル管理を + ap_register_output_filter_protocol 又は + ap_filter_protocol を呼び出して + mod_filter に 委任することができます。
    + +
    モニターフックを追加
    +
    モニターフックを使って、モジュールを親 (root) のプロセスで + レギュラー又はスケジュールのジョブを実行することが + できます。
    + +
    正規表現の API を変更
    + +
    pcreposix.h ヘッダは既に削除されました; + 新しい ap_regex.h によって置き換えました。 + 古いヘッダである POSIX.2 regex.h によって + 公開されている実装は、今は、ap_regex.h の + ap_ 名前空間の下に存在します。 + regcomp と、 regexec 等々への呼び出しは + ap_regcomp, ap_regexec などに置き換え + られます。
    + +
    DBD フレームワーク (SQL データベース API)
    + +

    Apache 1.x と 2.0 では、SQL バックエンドを必要とするモジュールは + それを自分で管理する責任がありました。車輪の再発明の問題を除いても、 + これはとても非効率的なことです。例えばそれぞれのモジュールが自分 + で接続を維持しなければなりません。

    + +

    Apache 2.1 とその後は、 ap_dbd API が提供されており、 + これを使ってデータベースの接続(スレッド化された又はスレッドでない + MPM に最適化した戦略を含んで)を管理することができます。 + 一方、APR 1.2 および以降では apr_dbd API でデータ + ベースとのやりとりを提供しています。

    + +

    新しいモジュールはこれらを全ての SQL データベースの運用に利用する + べきです。現存のアプリケーションは、実現可能であればどこでもこれらを + 使うように更新され、透過的にあるいは推奨オプションとして + ユーザに提供されるべきです。

    +
    +
    +
    diff --git a/docs/manual/new_features_2_2.xml.ko b/docs/manual/new_features_2_2.xml.ko index 0e8d3ab0101..1cc83209a42 100644 --- a/docs/manual/new_features_2_2.xml.ko +++ b/docs/manual/new_features_2_2.xml.ko @@ -1,15 +1,15 @@ - + - + new_features_2_2 / . en + fr + ja ko pt-br + tr diff --git a/docs/manual/new_features_2_2.xml.pt-br b/docs/manual/new_features_2_2.xml.pt-br index a97474c4d3d..0233579eb01 100644 --- a/docs/manual/new_features_2_2.xml.pt-br +++ b/docs/manual/new_features_2_2.xml.pt-br @@ -1,15 +1,15 @@ - + + + + + + + +Apache 2.2’de Yeni olan Özellikler + + +

    Bu belgede Apache HTTP Sunucusunun 2.0 ve 2.2 sürümleri arasındaki + başlıca farklara değinilmiştir. 1.3 sürümüne göre yeni özellikler için Apache 2.0’da Yeni olan Özellikler + belgesine bakınız.

    +
    + +
    + Çekirdekteki Gelişmeler +
    + +
    Authn/Authz
    +
    Mevcut kimlik doğrulama ve yetkilendirme modüllerinin iç işleyişi + yeniden düzenlendi. Yeni mod_authn_alias modülü + belli kimlik doğrulama yapılandırmalarını büyük oranda + basitleştirebilir. Bu değişikliklerin kullanıcıları ve modül + yazarlarını nasıl etkilediğini öğrenmek için modül + değişikliklerine ve geliştirici + değişikliklerine bakabilirsiniz.
    + +
    Önbellekleme
    +
    mod_cache, mod_disk_cache ve + mod_mem_cache modüllerinde büyük oranda değişikliğe + gidilerek bunlar deneysel olmaktan çıkarılıp üretim amaçlı modüller + haline getirildiler. mod_disk_cache tarafından + kullanılan disk alanının htcacheclean tarafından + düzenli aralıklarla temizlenebilmesi sağlandı.
    + +
    Yapılandırma
    +
    Öntanımlı yapılandırma basitleştirildi ve modüler bir yapıya + kavuşturuldu. Sık kullanılan ortak özellikleri etkinleştirmekte + kullanılan yapılandırmalar gruplanarak bunların Apache ile gelmesi ve + ana sunucu yapılandırılırken yapılandırmaya kolayca eklenebilmesi + sağlandı.
    + +
    Nazikçe Durdurma
    +
    prefork, worker ve + event MPM’leri artık httpd’yi graceful-stop + sinyali sayesinde nazikçe durdurabilmektedir. + httpd programının sonlandırılmasındaki gecikmelere + karşı bir önlem olarak, isteğe bağlı bir zaman aşımı belirtmeyi + mümkün kılan GracefulShutdownTimeout yönergesi + sayesinde sunum sürüyor olsa bile httpd + sonlandırılabilmektedir.
    + +
    Vekil Sunucu
    +
    Yeni mod_proxy_balancer modülü ile + mod_proxy için yük dengeleme hizmetleri sağlanmış, + yeni mod_proxy_ajp modülü ile Apache Tomcat tarafından + kullanılan Apache JServ Protokolünün 1.3 sürümü için destek + eklenmiştir.
    + +
    Düzenli İfade Kütüphanesi Güncellemesi
    +
    Apache, Perl uyumlu düzenli ifade + kütüphanesinin 5.0 sürümünü (PCRE) içermektedir. + configure betiğinin --with-pcre + seçeneği sayesinde httpd programı PCRE destekli + olarak derlenebilmektedir.
    + +
    Akıllı Süzme
    +
    mod_filter çıktı süzgeç zincirinin devingen olarak + yapılandırılmasını sağlar. Süzgeçlerin herhangi bir istek veya yanıt + başlığına veya bir ortam değişkenine dayanarak koşullu olarak + yerleştirilmesini mümkün kılar ve bunu yaparken 2.0 mimarisindeki + sorunlu bağımlılıklar ve sıralama sorunlarının da üstesinden + gelir.
    + +
    Büyük Dosya (>2GB) Desteği
    +
    httpd artık günümüzün 32 bitlik Unix + sistemlerinde bulunan 2 GB’lık büyük dosyaları destekleyecek tarzda + derlenebilmektedir. 2 GB’lık istek gövdelerine destek de ayrıca + eklenmiştir.
    + +
    Event MPM
    +
    event MPM modülü sürekli bağlantı isteklerinin + işlenmesi ve bağlantıların kabul edilmesi için ayrı bir evre + kullanır. Sürekli bağlantı (keepalive) isteklerinin işlenmesi + geleneksel olarak httpd’nin buna bir worker + adamasını gerektirirdi. Bu adanmış worker bağlantı + zaman aşımına uğrayıncaya değin tekrar kullanılamazdı.
    + +
    SQL Veritabanı Desteği
    +
    mod_dbd modülü apr_dbd arayüzü ile + birlikte, ihtiyacı olan modüllere SQL desteği sağlar. Evreli MPM’ler + için bağlantı havuzlamasını destekler.
    +
    +
    + +
    + Modüllerdeki Gelişmeler +
    +
    Authn/Authz
    +
    Kimlik Doğrulama, Yetkilendirme ve Erişim Denetimi ile ilgili + modüller özetli kimlik doğrulamasına daha iyi destek sağlamak + amacıyla yeniden isimlendirildi. Örneğin, mod_auth + modülü şimdi mod_auth_basic ve + mod_authn_file diye iki modüle bölünmüştür.; + mod_auth_dbm modülünün ismi + mod_authn_dbm ve mod_access modülünün + ismi de mod_authz_host olarak değiştirilmiştir. + Ayrıca, belli kimlik doğrulama yapılandırmalarını basitleştirmek + üzere mod_authn_alias diye yeni bir modül vardır. +
    + +
    mod_authnz_ldap
    +
    Bu modül 2.0 sürümü mod_auth_ldap modülünün 2.2 + Authn/Authz arayüzüne bir uyarlamasıdır. Require yönergesine LDAP + öznitelik değerlerinin ve karmaşık arama süzgeçlerinin kullanımı gibi + yeni özellikler eklenmiştir.
    + +
    mod_authz_owner
    +
    Dosya sistemi üzerindeki dosyalara erişimi dosya sahibine göre + düzenleyebilmeyi sağlayan yeni bir modüldür.
    + +
    mod_version
    +
    Çalışan sunucunun sürüm numarasına göre belli yapılandırma + bloklarını etkinleştirebilen bir modüldür.
    + +
    mod_info
    +
    Apache tarafından çözümlenen haliyle yapılandırma yönergelerinin + gösterilmesini sağlayan yeni ?config parametresini + ekler. Modül ayrıca, httpd -V’nin yaptığı gibi ek olarak + derleme bilgisini ve tüm istek kancalarının sırasını da gösterir.
    + +
    mod_ssl
    + +
    TLS şifrelemesini HTTP/1.1 için güncelleyen RFC 2817 için destek + sağlar.
    + +
    mod_imagemap
    +
    mod_imap modülünün ismi yanlış anlamalara meydan + vermemek için mod_imagemap olarak değiştirildi.
    +
    +
    + +
    + Programlardaki Gelişmeler +
    +
    httpd
    +
    Mevcut yapılandırmaya göre yüklenen modülleri listelemek için + -M diye yeni bir komut satırı seçeneği eklendi. + -l seçeneğinin aksine, bu seçenekle elde edilen liste + mod_so üzerinden yüklenen DSO’ları içerir.
    + +
    httxt2dbm
    +
    RewriteMap yönergesinde + dbm eşlem türü ile kullanmak üzere metin girdilerden DBM + dosyaları üretmek için kullanılan yeni bir program.
    +
    +
    + +
    + Modül Geliştirici Değişiklikleri +
    +
    APR 1.0 Programlama Arayüzü
    + +
    Apache 2.2’de APR 1.0 API kullanılmıştır. Kullanımı önerilmeyen + tüm işlevler ve simgeler APR ve + APR-Util’den kaldırılmıştır. Ayrıntılar için APR Sitesine bakınız.
    + +
    Authn/Authz
    +
    Dağıtımla gelen kimlik doğrulama ve yetkilendirme modüllerinin + isimleri aşağıdaki gibi değiştirildi: +
      +
    • mod_auth_* -> HTTP kimlik doğrulamasını + gerçekleştiren modüller.
    • +
    • mod_authn_* -> Kimlik doğrulamasının artalanına + destek sağlayan modüller.
    • +
    • mod_authz_* -> Yetkilendirmeyi (veya erişimi) + gerçekleştiren modüller.
    • +
    • mod_authnz_* -> Kimlik doğrulama ve + yetkilendirmeyi birlikte gerçekleştiren modüller.
    • +
    + Yeni kimlik doğrulama artalanının oluşturulmasını büyük oranda + kolaylaştıran yeni bir kimlik doğrulama artalanı sağlayıcı şeması + vardır.
    + +
    Bağlantı Hatalarının Günlüklenmesi
    + +
    İstemci bağlantısında ortaya çıkan hataları günlüğe kaydetmek için + ap_log_cerror isminde yeni bir işlev eklendi. Böyle bir + durumda günlük kaydı istemcinin IP adresini içermektedir.
    + +
    Deneme Yapılandırma Kancası Eklendi
    + +
    Kullanıcı, httpd’yi sadece -t + seçeneği ile kullandığı takdirde özel kod icra edilmesini isteyen + modüllere yardımcı olmak üzere test_config diye yeni bir + kanca işlev eklendi.
    + +
    Evreli MPM’lerin Yığıt Boyutunun Ayarlanması
    + +
    Tüm evreli MPM’lerin yığıt boyutunu ayarlamak üzere ThreadStackSize isminde yeni bir + yönerge eklendi. Öntanımlı yığıt boyutunun küçük olduğu platformlarda + bazı üçüncü parti modüller tarafından buna ihtiyaç duyulmaktadır.
    + +
    Çıktı süzgeçlerinde protokoller
    + +
    Evvelce her süzgeç etkilediğini yanıt başlıklarının doğru olarak + üretilmesini sağlamak zorundaydı. Süzgeçler artık protokol yönetimini + ap_register_output_filter_protocol veya + ap_filter_protocol işlevi üzerinden + mod_filter modülüne devredebilmektedir.
    + +
    İzleme kancası eklendi
    +
    İzleme kancası, modüllerin ana (tepe) süreçteki sıradan/zamanlanmış + işlerini yapacak modülleri etkinleştirir.
    + +
    Düzenli ifade programlama aryüzü değişti
    + +
    pcreposix.h başlık dosyası artık yok; yerine + ap_regex.h dosyası geçti. Eski başlık dosyasınca ifade + olunan POSIX.2 regex.h gerçeklenimi şimdi + ap_ isim alanı altında ap_regex.h başlık + dosyasındadır. regcomp, regexec gibi + işlevlerin yerine de artık ap_regcomp, + ap_regexec işlevleri geçerlidir.
    + +
    DBD Arayüzü (SQL Veritabanı API)
    + +

    Apache 1.x ve 2.0’da, modüller, SQL veritabanlarını kendileri + yönetebilmek için sorumluluğu alacak bir SQL artalanına ihtiyaç + duymaktadır. Her biri kendi bağlantısına sahip bir sürü modül + olduğunda bu yöntem çok verimsiz olabilmektedir.

    + +

    Apache 2.1 ve sonrasında veritabanı bağlantılarını (evreli olsun + olmasın MPM’lerin eniyilenmiş stratejileri dahil) yönetmek için + ap_dbd arayüzü kullanılmıştır. APR 1.2 ve sonrasında ise + veritabanı ile etkileşim apr_dbd arayüzüyle + sağlanmıştır.

    + +

    Yeni modüllerin tüm SQL veritabanı işlemlerinde bu arayüzü + kullanmaları ÖNERİlir. Mevcut uygulamaların uygulanabildiği takdirde + hem kullanıcılarına önerilen bir seçenek olarak hem de şeffaf olarak + kullanmak üzere kendilerini güncellemeleri ÖNERİir.

    +
    +
    +
    diff --git a/docs/manual/platform/ebcdic.html b/docs/manual/platform/ebcdic.html index f9b208e49cc..a48afa885d0 100644 --- a/docs/manual/platform/ebcdic.html +++ b/docs/manual/platform/ebcdic.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: ebcdic.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/platform/ebcdic.html.en b/docs/manual/platform/ebcdic.html.en index e2c2d8ce799..6178e7a4b5e 100644 --- a/docs/manual/platform/ebcdic.html.en +++ b/docs/manual/platform/ebcdic.html.en @@ -1,22 +1,29 @@ - -The Apache EBCDIC Port - Apache HTTP Server +The Apache EBCDIC Port - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    The Apache EBCDIC Port

    +
    top

    Overview of the Apache EBCDIC Port

    @@ -55,7 +62,7 @@

    The port was started initially to

    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/ebcdic.html.ko.euc-kr b/docs/manual/platform/ebcdic.html.ko.euc-kr index 1816f3125bf..93275c275be 100644 --- a/docs/manual/platform/ebcdic.html.ko.euc-kr +++ b/docs/manual/platform/ebcdic.html.ko.euc-kr @@ -1,22 +1,29 @@ - -¾ÆÆÄġ EBCDIC Æ÷ÆÃ - Apache HTTP Server +¾ÆÆÄġ EBCDIC Æ÷ÆÃ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    top

    ¾ÆÆÄġ EBCDIC Æ÷ÆÃ °³¿ä

    @@ -407,7 +414,7 @@ - mod_imap + mod_imagemap + @@ -553,7 +560,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/ebcdic.xml b/docs/manual/platform/ebcdic.xml index 40aef0634b2..e8b6ce06e56 100644 --- a/docs/manual/platform/ebcdic.xml +++ b/docs/manual/platform/ebcdic.xml @@ -1,15 +1,14 @@ - + - + ebcdic /platform/ .. diff --git a/docs/manual/platform/index.html b/docs/manual/platform/index.html index 5b7bb86fb20..56711cfb0cf 100644 --- a/docs/manual/platform/index.html +++ b/docs/manual/platform/index.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: index.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: index.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: index.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/platform/index.html.en b/docs/manual/platform/index.html.en index 589c69dd875..ecee45a1200 100644 --- a/docs/manual/platform/index.html.en +++ b/docs/manual/platform/index.html.en @@ -1,25 +1,33 @@ - -Platform Specific Notes - Apache HTTP Server +Platform Specific Notes - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Platform Specific Notes

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Platform Specific Notes

    Available Languages:  en  | - ko 

    + ko  | + zh-cn 

    Available Languages:  en  | - ko 

    + ko  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/platform/index.html.ko.euc-kr b/docs/manual/platform/index.html.ko.euc-kr index 28a7aaf367c..41c0e774f71 100644 --- a/docs/manual/platform/index.html.ko.euc-kr +++ b/docs/manual/platform/index.html.ko.euc-kr @@ -1,25 +1,33 @@ - -Ç÷¡Æûº° ¼³¸í - Apache HTTP Server +Ç÷¡Æûº° ¼³¸í - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Ç÷¡Æûº° ¼³¸í

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Ç÷¡Æûº° ¼³¸í

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + zh-cn 

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/platform/index.html.zh-cn.utf8 b/docs/manual/platform/index.html.zh-cn.utf8 new file mode 100644 index 00000000000..9446869c9da --- /dev/null +++ b/docs/manual/platform/index.html.zh-cn.utf8 @@ -0,0 +1,102 @@ + + + + + +平台相关说明 - Apache HTTP 服务器 版本 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    平台相关说明

    +
    +

    可用语言:  en  | + ko  | + zh-cn 

    +
    +
    + +
    top
    +
    +

    Microsoft Windows

    + + + +
    +
    使用 Apache
    +
    +

    这篇文档解释了如何在 Microsoft Windows 中安装,配置,以及运行 Apache 2.0 。

    + +

    参见: 在 Microsoft Windows 中使用 Apache

    +
    +
    + +
    +
    编译 Apache
    +
    +

    这篇文档解释了编译 Apache 的要点。

    + +

    参见: 为 Microsoft Windows 编译 Apache

    +
    +
    + +
    top
    +
    +

    其它平台

    + + + +
    +
    Novell NetWare
    +
    +

    这篇文档解释了如何在 Novell NetWare 5.1 或更新的版本中,如何安装,配置,以及运行 + Apache 2.0 。 +

    + +

    参见: 在 Novell NetWare 中使用 Apache

    +
    +
    + +
    +
    EBCDIC
    +
    +

    从 Apache HTTP 版本 1.3 开始支持使用 EBCDIC 字符集作为原生字符集的(非 ASCII)主机。

    + +
    警告: + 这篇文档尚未完全更新,以反映自 Apache HTTP 服务器版本 2.0 + 之后的修改。某些信息可能仍旧适用,但请小心使用它。
    + +

    参见: Apache 与 EBCDIC 系统

    +
    +
    + +
    +
    +

    可用语言:  en  | + ko  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/platform/index.xml b/docs/manual/platform/index.xml index c8cf35f3d4e..9e08f75374a 100644 --- a/docs/manual/platform/index.xml +++ b/docs/manual/platform/index.xml @@ -4,12 +4,12 @@ + - + index /platform/ .. @@ -8,5 +9,6 @@ en ko + zh-cn diff --git a/docs/manual/platform/index.xml.zh-cn b/docs/manual/platform/index.xml.zh-cn new file mode 100644 index 00000000000..88fa8a4217f --- /dev/null +++ b/docs/manual/platform/index.xml.zh-cn @@ -0,0 +1,82 @@ + + + + + + + + + + + 平台相关说明 + +
    + + Microsoft Windows + +
    +
    使用 Apache
    +
    +

    这篇文档解释了如何在 Microsoft Windows 中安装,配置,以及运行 Apache 2.0 。

    + +

    参见: 在 Microsoft Windows 中使用 Apache

    +
    +
    + +
    +
    编译 Apache
    +
    +

    这篇文档解释了编译 Apache 的要点。

    + +

    参见: 为 Microsoft Windows 编译 Apache

    +
    +
    + +
    + +
    + + 其它平台 + +
    +
    Novell NetWare
    +
    +

    这篇文档解释了如何在 Novell NetWare 5.1 或更新的版本中,如何安装,配置,以及运行 + Apache 2.0 。 +

    + +

    参见: 在 Novell NetWare 中使用 Apache

    +
    +
    + +
    +
    EBCDIC
    +
    +

    从 Apache HTTP 版本 1.3 开始支持使用 EBCDIC 字符集作为原生字符集的(非 ASCII)主机。

    + + 警告: + 这篇文档尚未完全更新,以反映自 Apache HTTP 服务器版本 2.0 + 之后的修改。某些信息可能仍旧适用,但请小心使用它。 + +

    参见: Apache 与 EBCDIC 系统

    +
    +
    + +
    + +
    diff --git a/docs/manual/platform/netware.html b/docs/manual/platform/netware.html index cb2d4221d78..953689aa586 100644 --- a/docs/manual/platform/netware.html +++ b/docs/manual/platform/netware.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: netware.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/platform/netware.html.en b/docs/manual/platform/netware.html.en index 57a519f6da1..0d332c12644 100644 --- a/docs/manual/platform/netware.html.en +++ b/docs/manual/platform/netware.html.en @@ -1,22 +1,29 @@ - -Using Apache With Novell NetWare - Apache HTTP Server +Using Apache With Novell NetWare - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Using Apache With Novell NetWare

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Using Apache With Novell NetWare

    Available Languages:  en  |  ko 

    @@ -32,7 +39,7 @@

    The bug reporting page and dev-httpd mailing list are not provided to answer questions about configuration or running Apache. Before you submit a bug report or request, first consult this document, the - Frequently Asked Questions page and the other + Frequently Asked Questions page and the other relevant documentation topics. If you still have a question or problem, post it to the novell.devsup.webserver newsgroup, where many Apache users are more than @@ -51,7 +58,7 @@

  • Running Apache for NetWare
  • Configuring Apache for NetWare
  • Compiling Apache for NetWare
  • -
    +
    top

    Requirements

    @@ -324,7 +331,7 @@

    Apache is configured by reading configuration files usually stored in the conf directory. These are the same as files used to configure the Unix version, but there are a few different directives for - Apache on NetWare. See the Apache + Apache on NetWare. See the Apache module documentation for all the available directives.

    The main differences in Apache for NetWare are:

    @@ -613,17 +620,10 @@ steps:

      -
    • Download the latest NetWare patch for OpenSSL from the - OpenSSL Contribution - page.
    • - -
    • Download the corresponding OpenSSL source code from the +
    • Download the recent OpenSSL 0.9.8 release source code from the OpenSSL Source - page.
    • - -
    • At the root of the OpenSSL source directory, apply the NetWare - patch using the "patch" utility, for example: -

      patch -p 1 -i netwarepatch-0.9.7g.diff

    • + page (older 0.9.7 versions need to be patched and are therefore not + recommended).
    • Edit the file NetWare/set_env.bat and modify any tools and utilities paths so that they correspond to your build @@ -632,14 +632,25 @@
    • From the root of the OpenSSL source directory, run the following scripts:

      - Netware/set_env netware-libc
      - Netware/build netware-libc -

    • + Netware\set_env netware-libc
      + Netware\build netware-libc +

    + For performance reasons you should enable to build with ASM code. + Download NASM from the SF site. + Then configure OpenSSL to use ASM code: +

    + Netware\build netware-libc nw-nasm enable-mdc2 enable-md5 +

    + Warning: dont use the CodeWarrior Assembler - it produces broken code! +
  • Before building Apache, set the environment variable OSSLSDK to the full path to the root of the openssl - source code directory. -

    Set OSSLSDK=d:\openssl-0.9.7x

  • + source code directory, and set WITH_MOD_SSL to 1. +

    + Set OSSLSDK=d:\openssl-0.9.8x
    + Set WITH_MOD_SSL=1 +

    @@ -649,7 +660,28 @@

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/netware.html.ko.euc-kr b/docs/manual/platform/netware.html.ko.euc-kr index 373abd3b0ef..45e9b612d36 100644 --- a/docs/manual/platform/netware.html.ko.euc-kr +++ b/docs/manual/platform/netware.html.ko.euc-kr @@ -1,22 +1,29 @@ - -Novell NetWare¿¡¼­ ¾ÆÆÄġ »ç¿ëÇϱâ - Apache HTTP Server +Novell NetWare¿¡¼­ ¾ÆÆÄġ »ç¿ëÇϱâ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Novell NetWare¿¡¼­ ¾ÆÆÄġ »ç¿ëÇϱâ

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Novell NetWare¿¡¼­ ¾ÆÆÄġ »ç¿ëÇϱâ

    +
    top

    ¿䱸Á¶°Ç

    @@ -575,7 +582,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/netware.xml b/docs/manual/platform/netware.xml index c9edbe4773e..d365a9c1143 100644 --- a/docs/manual/platform/netware.xml +++ b/docs/manual/platform/netware.xml @@ -4,12 +4,12 @@ + - + netware /platform/ .. diff --git a/docs/manual/platform/perf-hp.html b/docs/manual/platform/perf-hp.html index 23995ca4604..951a04bd2d6 100644 --- a/docs/manual/platform/perf-hp.html +++ b/docs/manual/platform/perf-hp.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: perf-hp.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/platform/perf-hp.html.en b/docs/manual/platform/perf-hp.html.en index 76731557b68..9538d6810af 100644 --- a/docs/manual/platform/perf-hp.html.en +++ b/docs/manual/platform/perf-hp.html.en @@ -1,35 +1,40 @@ - -Running a High-Performance Web Server on HPUX - Apache HTTP Server +Running a High-Performance Web Server on HPUX - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Running a High-Performance Web Server on HPUX

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Running a High-Performance Web Server on HPUX

    Available Languages:  en  |  ko 

    -
    -Date: Wed, 05 Nov 1997 16:59:34 -0800
    +
    Date: Wed, 05 Nov 1997 16:59:34 -0800
     From: Rick Jones <raj@cup.hp.com>
     Reply-To: raj@cup.hp.com
     Organization: Network Performance
    -Subject: HP-UX tuning tips
    -
    +Subject: HP-UX tuning tips

    Here are some tuning tips for HP-UX to add to the tuning page.

    @@ -92,14 +97,35 @@ Subject: HP-UX tuning tips

    rick jones

    -

    http://www.cup.hp.com/netperf/NetperfPage.html

    +

    http://www.netperf.org/netperf/

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/perf-hp.html.ko.euc-kr b/docs/manual/platform/perf-hp.html.ko.euc-kr index 150a823cb93..d2597f32e4a 100644 --- a/docs/manual/platform/perf-hp.html.ko.euc-kr +++ b/docs/manual/platform/perf-hp.html.ko.euc-kr @@ -1,35 +1,42 @@ - -HPUX¿¡¼­ °í¼º´É À¥¼­¹ö ½ÇÇàÇϱâ - Apache HTTP Server +HPUX¿¡¼­ °í¼º´É À¥¼­¹ö ½ÇÇàÇϱâ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    HPUX¿¡¼­ °í¼º´É À¥¼­¹ö ½ÇÇàÇϱâ

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    HPUX¿¡¼­ °í¼º´É À¥¼­¹ö ½ÇÇàÇϱâ

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    -
    -Date: Wed, 05 Nov 1997 16:59:34 -0800
    +
    Date: Wed, 05 Nov 1997 16:59:34 -0800
     From: Rick Jones <raj@cup.hp.com>
     Reply-To: raj@cup.hp.com
     Organization: Network Performance
    -Subject: HP-UX tuning tips
    -
    +Subject: HP-UX tuning tips

    ÀÌ ±ÛÀº ¼º´ÉÇâ»ó ÆäÀÌÁö¿¡ Ã߰¡ÇÒ HP-UX ¼º´ÉÇâ»ó ÆÁÀ̴Ù.

    @@ -94,7 +101,28 @@ Subject: HP-UX tuning tips

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/perf-hp.xml b/docs/manual/platform/perf-hp.xml index 1554acc9ddc..484f02cc315 100644 --- a/docs/manual/platform/perf-hp.xml +++ b/docs/manual/platform/perf-hp.xml @@ -4,12 +4,12 @@ + - + perf-hp /platform/ .. en - ko + ko diff --git a/docs/manual/platform/win_compiling.html b/docs/manual/platform/win_compiling.html index 6f9885da148..2ac828ca299 100644 --- a/docs/manual/platform/win_compiling.html +++ b/docs/manual/platform/win_compiling.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: win_compiling.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/platform/win_compiling.html.en b/docs/manual/platform/win_compiling.html.en index 38418cbf4e0..b490455bbcf 100644 --- a/docs/manual/platform/win_compiling.html.en +++ b/docs/manual/platform/win_compiling.html.en @@ -1,22 +1,29 @@ - -Compiling Apache for Microsoft Windows - Apache HTTP Server +Compiling Apache for Microsoft Windows - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Compiling Apache for Microsoft Windows

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Compiling Apache for Microsoft Windows

    top

    Requirements

    @@ -45,118 +54,203 @@
    • Disk Space

      -

      Make sure you have at least 50 MB of free disk space + +

      Make sure you have at least 200 MB of free disk space available. After installation Apache requires approximately - 10 MB of disk space, plus space for log and cache files, + 80 MB of disk space, plus space for log and cache files, which can grow rapidly. The actual disk space requirements will vary considerably based on your chosen configuration and - any third-party modules or libraries.

      + any third-party modules or libraries, especially when OpenSSL + is also built. Because many files are text and very easily + compressed, NTFS filesystem compression cuts these requirements + in half.

      +
    • + +
    • +

      Appropriate Patches

      + +

      The httpd binary is built with the help of several patches to + third party packages, which ensure the released code is buildable + and debuggable. These patches are available and distributed from http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ + and are recommended to be applied to obtain identical results as the + "official" ASF distributed binaries.

    • -

      Microsoft Visual C++ 5.0 or higher.

      +

      Microsoft Visual C++ 6.0 (Visual Studio 97) or later.

      +

      Apache can be built using the command line tools, or from within the Visual Studio IDE Workbench. The command line build requires the environment to reflect the PATH, INCLUDE, LIB and other variables - that can be configured with the vcvars32 batch file:

      - -

      - "c:\Program Files\DevStudio\VC\Bin\vcvars32.bat" -

      + that can be configured with the vcvars32.bat script.

      + +
      You may want the Visual Studio Processor Pack for your older + version of Visual Studio, or a full (not Express) version of newer + Visual Studio editions, for the ml.exe assembler. This will allow + you to build OpenSSL, if desired, using the more efficient assembly + code implementation.
      + +
      Only the Microsoft compiler tool chain is actively supported by + the active httpd contributors. Although the project regularly accepts + patches to ensure MinGW and other alternative builds work and improve + upon them, they are not actively maintained and are often broken in + the course of normal development.
    • -

      The Windows Platform SDK.

      -

      Visual C++ 5.0 builds require an updated Microsoft Windows - Platform SDK to enable some Apache features. For command line - builds, the Platform SDK environment is prepared by the - setenv batch file:

      +

      Updated Microsoft Windows Platform SDK, February 2003 or later.

      + +

      An appropriate Windows Platform SDK is included by default in the + full (not express/lite) versions of Visual C++ 7.1 (Visual Studio 2002) + and later, these users can ignore these steps unless explicitly choosing + a newer or different version of the Platform SDK.

      + +

      To use Visual C++ 6.0 or 7.0 (Studio 2000 .NET), the Platform SDK + environment must be prepared using the setenv.bat + script (installed by the Platform SDK) before starting the command + line build or launching the msdev/devenv GUI environment. Installing + the Platform SDK for Visual Studio Express versions (2003 and later) + should adjust the default environment appropriately.

      + "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
      "c:\Program Files\Platform SDK\setenv.bat"

      - -

      The Platform SDK files distributed with Visual C++ 6.0 and - later are sufficient, so users of later version may skip - this requirement.

      - -
      Note that the Windows Platform SDK update is required - to enable all supported mod_isapi features. - Without a recent update, Apache will issue warnings under - MSVC++ 5.0 that some mod_isapi features - will be disabled. Look for the update at http://msdn.microsoft.com/downloads/sdks/platform/platform.asp.
    • -

      The awk utility (awk, gawk or similar).

      +

      Perl and awk

      + +

      Several steps recommended here require a perl interpreter during + the build preparation process, but it is otherwise not required.

      +

      To install Apache within the build system, several files are - modified using the awk.exe utility. awk was chosen since it - is a very small download (compared with Perl or WSH/VB) and - accomplishes the task of generating files. Brian Kernighan's - http://cm.bell-labs.com/cm/cs/who/bwk/ + modified using the awk.exe utility. awk was chosen since + it is a very small download (compared with Perl or WSH/VB) and + accomplishes the task of modifying configuration files upon + installation. Brian Kernighan's + http://www.cs.princeton.edu/~bwk/btl.mirror/ site has a compiled native Win32 binary, - http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe which - you must save with the name awk.exe rather than - awk95.exe.

      - -
      Note that Developer Studio IDE will only find - awk.exe from the Tools menu Options... Directories - tab (the Projects - VC++ Directories pane in Developer Studio 7.0) - listing Executable file paths. Add the path for awk.exe - to this list, and your system PATH environment variable, - as needed.
      - -
      Also note that if you are using Cygwin (http://www.cygwin.com/) the awk utility is named gawk.exe and - that the file awk.exe is really a symlink to the gawk.exe - file. The Windows command shell does not recognize symlinks, and because of that - building InstallBin will fail. A workaround is to delete awk.exe from - the cygwin installation and rename gawk.exe to awk.exe.
      + http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe which + you must save with the name awk.exe (rather than + awk95.exe).

      + +
      If awk.exe is not found, Makefile.win's install target + will not perform substitutions in the installed .conf files. + You must manually modify the installed .conf files to allow + the server to start. Search and replace all "@token@" tags + as appropriate.
      + +
      The Visual Studio IDE will only find awk.exe + from the PATH, or executable path specified in the menu option + Tools -> Options -> (Projects ->) Directories. Ensure + awk.exe is in your system path.
      + +
      Also note that if you are using Cygwin tools + (http://www.cygwin.com/) + the awk utility is named gawk.exe and that the file + awk.exe is really a symlink to the gawk.exe + file. The Windows command shell does not recognize symlinks, and + because of this building InstallBin will fail. A workaround is + to delete awk.exe from the cygwin installation and + copy gawk.exe to awk.exe. Also note the + cygwin/mingw ports of gawk 3.0.x were buggy, please upgrade to 3.1.x + before attempting to use any gawk port.
      +
    • + +
    • +

      [Optional] zlib library (for mod_deflate)

      + +

      Zlib must be installed into a srclib subdirectory named + zlib. This must be built in-place. Zlib can be obtained + from http://www.zlib.net/ -- the + mod_deflate is confirmed to work correctly with + version 1.2.3.

      + +

      + nmake -f win32\Makefile.msc
      + nmake -f win32\Makefile.msc test +

    • [Optional] OpenSSL libraries (for mod_ssl and ab.exe with ssl support)

      -

      Caution: there are significant restrictions and - prohibitions on the use and distribution of strong cryptography - and patented intellectual property throughout the world. - OpenSSL includes strong cryptography controlled by both export - regulations and domestic law, as well as intellectual property - protected by patent, in the United States and elsewhere. Neither - the Apache Software Foundation nor the OpenSSL project can provide - legal advise regarding possession, use, or distribution of the code - provided by the OpenSSL project. Consult your own legal - counsel, you are responsible for your own actions.

      - -

      OpenSSL must be installed into a srclib subdirectory named - openssl, obtained from http://www.openssl.org/source/, in order to compile mod_ssl - or the abs project (ab.exe with SSL support.) To prepare OpenSSL - for both release and debug builds of Apache, and - disable the patent protected features in 0.9.7, you might use the following - build commands:

      + +
      The OpenSSL library is cryptographic software. The country + in which you currently reside may have restrictions on the import, + possession, use, and/or re-export to another country, of encryption + software. BEFORE using any encryption software, please check your + country's laws, regulations and policies concerning the import, + possession, or use, and re-export of encryption software, to see + if this is permitted. See + http://www.wassenaar.org/ + for more information.
      + +

      Configuring and building OpenSSL requires perl to be installed.

      + +

      OpenSSL must be installed into a srclib subdirectory + named openssl, obtained from + http://www.openssl.org/source/, in order to compile + mod_ssl or the abs.exe project, which + is ab.c with SSL support enabled. To prepare OpenSSL to be linked + to Apache mod_ssl or abs.exe, and disable patent encumbered features + in OpenSSL, you might use the following build commands:

      - perl Configure VC-WIN32
      - perl util\mkfiles.pl >MINFO
      - perl util\mk1mf.pl dll no-asm no-mdc2 no-rc5 no-idea VC-WIN32 >makefile
      - perl util\mk1mf.pl dll debug no-asm no-mdc2 no-rc5 no-idea VC-WIN32 >makefile.dbg
      - perl util\mkdef.pl 32 libeay no-asm no-mdc2 no-rc5 no-idea >ms\libeay32.def
      - perl util\mkdef.pl 32 ssleay no-asm no-mdc2 no-rc5 no-idea >ms\ssleay32.def
      - nmake
      - nmake -f makefile.dbg + perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32 + -Ipath/to/srclib/zlib -Lpath/to/srclib/zlib
      + ms\do_masm.bat
      + nmake -f ms\ntdll.mak

      +
      It is not advisable to use zlib-dynamic, as that transfers + the cost of deflating SSL streams to the first request which must + load the zlib dll. Note the suggested patch enables the -L flag to + work with windows builds, corrects the name of zdll.lib and ensures + .pdb files are generated for troubleshooting. If the assembler is + not installed, you would add no-asm above and use ms\do_ms.bat + instead of the ms\do_masm.bat script.
    • -

      [Optional] zlib sources (for mod_deflate)

      -

      Zlib must be installed into a srclib subdirectory named - zlib, however those sources need not be compiled. The build system - will compile the compression sources directly into the mod_deflate - module. Zlib can be obtained from http://www.gzip.org/zlib/ -- mod_deflate is - confirmed to build correctly with version 1.1.4.

      -
    • +

      [Optional] Database libraries (for mod_dbd + and mod_authn_dbm)

      + +

      The apr-util library exposes dbm (keyed database) and dbd (query + oriented database) client functionality to the httpd server and its + modules, such as authentication and authorization. The sdbm dbm and + odbc dbd providers are compiled unconditionally.

      + +

      The dbd support includes the Oracle instantclient package, MySQL, + PostgreSQL and sqlite. To build these all, for example, set up the + LIB to include the library path, INCLUDE to include the headers path, + and PATH to include the dll bin path of all four SDK's, and set the + DBD_LIST environment variable to inform the build which client driver + SDKs are installed correctly, e.g.;

      + +

      + set DBD_LIST=sqlite3 pgsql oracle mysql +

      + +

      Similarly, the dbm support can be extended with DBM_LIST to + build a Berkeley DB provider (db) and/or gdbm provider, by similarly + configuring LIB, INCLUDE and PATH first to ensure the client library + libs and headers are available.

      + +

      + set DBM_LIST=db gdbm +

      + +
      Depending on the choice of database distributions, it may be + necessary to change the actual link target name (e.g. gdbm.lib vs. + libgdb.lib) that are listed in the corresponding .dsp/.mak files + within the directories srclib\apr-util\dbd or ...\dbm.
      +

      See the README-win32.txt file for more hints on obtaining the + various database driver SDKs.

      +
    top
    @@ -165,24 +259,24 @@ -

    First, unpack the Apache distribution into an appropriate - directory. Open a command-line prompt and cd to that - directory.

    - -

    The master Apache makefile instructions are contained in the - Makefile.win file. To compile Apache on Windows - NT, simply use one of the following commands to compiled the - release or debug build, respectively:

    +

    Makefile.win is the top level Apache makefile. + To compile Apache on Windows, simply use one of the following commands + to build the release or debug flavor:

    -
    -nmake /f Makefile.win _apacher
    +    

    + nmake /f Makefile.win _apacher

    + nmake /f Makefile.win _apached +

    -nmake /f Makefile.win _apached -
    +

    Either command will compile Apache. The latter will disable + optimization of the resulting files, making it easier to single + step the code to find bugs and track down problems.

    -

    Either command will compile Apache. The latter will include - debugging information in the resulting files, making it easier - to find bugs and track down problems.

    +

    You can add your apr-util dbd and dbm provider choices with the + additional make (environment) variables DBD_LIST and DBM_LIST, + see the comments about [Optional] Database libraries, above. + Review the initial comments in Makefile.win for additional options + that can be provided when invoking the build.

    top
    @@ -208,35 +302,57 @@ nmake /f Makefile.win _apached /Apache2 directory. If you only want a test compile (without installing) you may build the BuildBin project instead.

    -

    The .dsp project files are distributed in Visual - C++ 6.0 format. Visual C++ 5.0 (97) will recognize them. Visual C++ - 7.0 (.net) must convert Apache.dsw plus the .dsp - files into an Apache.sln plus .msproj files, - be sure you reconvert the .msproj file if any of the source - .dsp files change! This is really trivial, just open - Apache.dsw in the VC++ 7.0 IDE once again.

    +

    The .dsp project files are distributed in Visual Studio 6.0 + (98) format. Visual C++ 5.0 (97) will recognize them. Visual Studio + 2002 (.NET) and later users must convert Apache.dsw plus + the .dsp files into an Apache.sln plus + .msproj files. Be sure you reconvert the .msproj + file again if its source .dsp file changes! This is really + trivial, just open Apache.dsw in the VC++ 7.0 IDE once again + and reconvert.

    + +
    There is a flaw in the .vcproj conversion of .dsp files. devenv.exe + will mis-parse the /D flag for RC flags containing long quoted /D'efines + which contain spaces. The command: +

    + perl srclib\apr\build\cvtdsp.pl -2005 +

    + will convert the /D flags for RC flags to use an alternate, parseable + syntax; unfortunately this syntax isn't supported by Visual Studio 97 + or its exported .mak files. These /D flags are used to pass the long + description of the mod_apachemodule.so files to the shared .rc resource + version-identifier build.
    -

    Visual C++ 7.0 (.net) users should also use the Build +

    Visual Studio 2002 (.NET) and later users should also use the Build menu, Configuration Manager dialog to uncheck both the Debug - and Release Solution modules abs, mod_ssl - and mod_deflate. - These modules are built by invoking nmake or the IDE directly - with the BinBuild target to build those modules explicitly, - only if the srclib directories openssl - and/or zlib exist.

    + and Release Solution modules abs, + mod_deflate and mod_ssl components, as + well as every component starting with apr_db*. These modules + are built by invoking nmake, or the IDE directly with the + BinBuild target, which builds those modules conditionally + if the srclib directories openssl and/or + zlib exist, and based on the setting of DBD_LIST + and DBM_LIST environment variables.

    + +
    top
    +
    +

    Exporting command-line .mak files

    + +

    Exported .mak files pose a greater hassle, but they are required for Visual C++ 5.0 users to build mod_ssl, abs (ab with SSL support) and/or - mod_deflate. - VC++ 7.0 (.net) users also benefit, nmake builds - are faster than binenv builds. - Build the entire project from within the VC++ 5.0 or 6.0 IDE, - then use the Project Menu Export for all makefiles. - You must build the projects first in order to create all dynamic - auto-generated targets, so that dependencies can be parsed - correctly. Run the following command to fix the paths so they - will build anywhere:

    + mod_deflate. The .mak files also support a broader + range of C++ tool chain distributions, such as Visual Studio Express.

    + +

    You must first build all projects in order to create all dynamic + auto-generated targets, so that dependencies can be parsed correctly. + Build the entire project from within the Visual Studio 6.0 (98) IDE, + using the BuildAll target, then use the Project Menu Export + for all makefiles (checking on "with dependencies".) Run the following + command to correct absolute paths into relative paths so they will build + anywhere:

    perl srclib\apr\build\fixwin32mak.pl @@ -248,72 +364,26 @@ nmake /f Makefile.win _apached the current directory and below will be corrected, and the timestamps adjusted to reflect the .dsp.

    +

    Always review the generated .mak and .dep + files for Platform SDK or other local, machine specific file paths. + The DevStudio\Common\MSDev98\bin\ (VC6) directory contains + a sysincl.dat file, which lists all exceptions. Update + this file (including both forward and backslashed paths, such as both + sys/time.h and sys\time.h) to ignore such + newer dependencies. Including local-install paths in a distributed + .mak file will cause the build to fail completely.

    +

    If you contribute back a patch that revises project files, we must commit project files in Visual Studio 6.0 format. Changes should be simple, with minimal compilation and linkage flags that - will be recognized by all VC++ 5.0 through 7.0 environments.

    + can be recognized by all Visual Studio environments.

    top
    -

    Project Components

    +

    Installation

    -

    The Apache.dsw workspace and makefile.win - nmake script both build the .dsp projects - of the Apache server in the following sequence:

    - -
      -
    1. srclib\apr\apr.dsp
    2. - -
    3. srclib\apr\libapr.dsp
    4. - -
    5. srclib\apr-util\uri\gen_uri_delims.dsp
    6. - -
    7. srclib\apr-util\xml\expat\lib\xml.dsp
    8. - -
    9. srclib\apr-util\aprutil.dsp
    10. - -
    11. srclib\apr-util\libaprutil.dsp
    12. - -
    13. srclib\pcre\dftables.dsp
    14. - -
    15. srclib\pcre\pcre.dsp
    16. - -
    17. srclib\pcre\pcreposix.dsp
    18. - -
    19. server\gen_test_char.dsp
    20. - -
    21. libhttpd.dsp
    22. - -
    23. Apache.dsp
    24. -
    - -

    In addition, the modules\ subdirectory tree contains - project files for the majority of the modules.

    - -

    The support\ directory contains project files for - additional programs that are not part of the Apache runtime, - but are used by the administrator to test Apache and maintain - password and log files. Windows-specific support projects are - broken out in the support\win32\ directory.

    - -
      -
    1. support\ab.dsp
    2. - -
    3. support\htdigest.dsp
    4. - -
    5. support\htpasswd.dsp
    6. - -
    7. support\logresolve.dsp
    8. - -
    9. support\rotatelogs.dsp
    10. - -
    11. support\win32\ApacheMonitor.dsp
    12. - -
    13. support\win32\wintty.dsp
    14. -
    -

    Once Apache has been compiled, it needs to be installed in its server root directory. The default is the \Apache2 directory, of the same drive.

    @@ -322,105 +392,56 @@ nmake /f Makefile.win _apached dir automatically, use one of the following nmake commands:

    -
    -nmake /f Makefile.win installr INSTDIR=dir
    -
    -nmake /f Makefile.win installd INSTDIR=dir
    -    
    +

    + nmake /f Makefile.win installr INSTDIR=dir
    + nmake /f Makefile.win installd INSTDIR=dir +

    -

    The dir argument to INSTDIR gives +

    The dir argument to INSTDIR provides the installation directory; it can be omitted if Apache is - to be installed into \Apache2.

    - -

    This will install the following:

    - -
      -
    • dir\bin\Apache.exe - Apache - executable
    • - -
    • dir\bin\ApacheMonitor.exe - Service - monitor taskbar icon utility
    • - -
    • dir\bin\htdigest.exe - Digest auth - password file utility
    • - -
    • dir\bin\htdbm.exe - SDBM auth - database password file utility
    • - -
    • dir\bin\htpasswd.exe - Basic auth - password file utility
    • - -
    • dir\bin\logresolve.exe - Log file - dns name lookup utility
    • - -
    • dir\bin\rotatelogs.exe - Log file - cycling utility
    • - -
    • dir\bin\wintty.exe - Console window - utility
    • + to be installed into \Apache22 (of the current + drive).

      -
    • dir\bin\libapr.dll - Apache - Portable Runtime shared library
    • - -
    • dir\bin\libaprutil.dll - Apache - Utility Runtime shared library
    • - -
    • dir\bin\libhttpd.dll - Apache Core - library
    • - -
    • dir\modules\mod_*.so - Loadable - Apache modules
    • - -
    • dir\conf - Configuration - directory
    • - -
    • dir\logs - Empty logging - directory
    • - -
    • dir\include - C language header - files
    • - -
    • dir\lib - Link library files
    • -
    - -

    Warning about building Apache from the development tree

    - - - -
    Note only the .dsp files are maintained between release - builds. The .mak files are NOT regenerated, due to the tremendous - waste of reviewer's time. Therefore, you cannot rely on the NMAKE - commands above to build revised .dsp project files unless you - then export all .mak files yourself from the project. This is - unnecessary if you build from within the Microsoft - Developer Studio environment.
    - -
    Also note it is very worthwhile to build the BuildBin - target project (or the command line _apacher or - _apached target) prior to exporting the make files. - Many files are autogenerated in the build process. Only a full - build provides all of the dependent files required to build proper - dependency trees for correct build behavior.
    - -

    In order to create distribution .mak files, always review - the generated .mak (or .dep) dependencies for - Platform SDK or other garbage includes. The DevStudio\SharedIDE\bin\ - (VC5) or DevStudio\Common\MSDev98\bin\ (VC6) directory contains - the sysincl.dat file, which must list all exceptions. Update this - file (including both forward and backslashed paths, such as both - sys/time.h and sys\time.h) to include such dependencies. - Including local-install paths in a distributed .mak file will - cause the build to fail completely. And don't forget to run - srclib/apr/build/fixwin32mak.pl in order to fix absolute - paths within the .mak files.

    +
    top
    +
    +

    Warning about building Apache from the development tree

    +
    Note only the .dsp files are maintained between release + builds. The .mak files are NOT regenerated, due to the tremendous + waste of reviewer's time. Therefore, you cannot rely on the NMAKE + commands above to build revised .dsp project files unless you + then export all .mak files yourself from the project. This is + unnecessary if you build from within the Microsoft + Developer Studio environment.
    +

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/win_compiling.html.ko.euc-kr b/docs/manual/platform/win_compiling.html.ko.euc-kr index 746879c0456..47b5a99dcfc 100644 --- a/docs/manual/platform/win_compiling.html.ko.euc-kr +++ b/docs/manual/platform/win_compiling.html.ko.euc-kr @@ -1,22 +1,29 @@ - -Microsoft Windows¿ë ¾ÆÆÄġ ÄÄÆÄÀÏ - Apache HTTP Server +Microsoft Windows¿ë ¾ÆÆÄġ ÄÄÆÄÀÏ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Microsoft Windows¿ë ¾ÆÆÄġ ÄÄÆÄÀÏ

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Microsoft Windows¿ë ¾ÆÆÄġ ÄÄÆÄÀÏ

    +
    top

    ¿䱸»çÇ×

    @@ -176,11 +183,9 @@ ÀִÙ. Windows NT¿¡¼­ release¿Í debug ÄÄÆÄÀÏÇϴ ¸í·ɾî´Â °¢°¢ ´ÙÀ½°ú °°´Ù:

    -
    -nmake /f Makefile.win _apacher
    +    
    nmake /f Makefile.win _apacher
     
    -nmake /f Makefile.win _apached
    -    
    +nmake /f Makefile.win _apached

    µÎ ¸í·ɾî ¸ðµÎ ¾ÆÆÄġ¸¦ ÄÄÆÄÀÏÇѴÙ. ÈÄÀڴ °á°úÆÄÀϿ¡ µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇϿ© ¹ö±׸¦ ã°í ¹®Á¦¸¦ ÃßÀûÇϱâ ½±°Ô @@ -320,8 +325,7 @@ nmake /f Makefile.win _apached

    ÄÄÆÄÀÏÇϰí ¸ðµç ÆÄÀÏÀ» ¿øÇϴ Æú´õ dir¿¡ Àڵ¿À¸·Î ¼³ġÇϷÁ¸é ´ÙÀ½ nmake ¸í·ɾîÁß Çϳª¸¦ »ç¿ëÇѴÙ:

    -
    -nmake /f Makefile.win installr INSTDIR=dir
    +    
    nmake /f Makefile.win installr INSTDIR=dir
     
     nmake /f Makefile.win installd INSTDIR=dir
         
    @@ -417,7 +421,28 @@ nmake /f Makefile.win installd INSTDIR=dir

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/win_compiling.xml b/docs/manual/platform/win_compiling.xml index 8b069606f9e..7555428076a 100644 --- a/docs/manual/platform/win_compiling.xml +++ b/docs/manual/platform/win_compiling.xml @@ -4,12 +4,12 @@ + - + win_compiling /platform/ .. diff --git a/docs/manual/platform/windows.html b/docs/manual/platform/windows.html index dbcab1c6551..a4e6fa1665f 100644 --- a/docs/manual/platform/windows.html +++ b/docs/manual/platform/windows.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: windows.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/platform/windows.html.en b/docs/manual/platform/windows.html.en index 05ab8970ba3..a90c558322a 100644 --- a/docs/manual/platform/windows.html.en +++ b/docs/manual/platform/windows.html.en @@ -1,116 +1,111 @@ - -Using Apache with Microsoft Windows - Apache HTTP Server +Using Apache HTTP Server on Microsoft Windows - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Using Apache with Microsoft Windows

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Using Apache HTTP Server on Microsoft Windows

    Available Languages:  en  |  ko 

    -

    This document explains how to install, configure and run - Apache 2.0 under Microsoft Windows. If you find any bugs, or - wish to contribute in other ways, please use our bug reporting - page.

    + Apache 2.2 under Microsoft Windows. If you have questions after + reviewing the documentation (and any event and error logs), you + should consult the peer-supported + users' mailing + list.

    This document assumes that you are installing a binary distribution of Apache. If you want to compile Apache yourself (possibly to help with development or tracking down bugs), see Compiling Apache for Microsoft Windows.

    - -

    Because of the current versioning policies on Microsoft - Windows operating system families, this document assumes the - following:

    -
      -
    • Windows NT: This means all versions of - Windows that are based on the Windows NT kernel. Includes Windows - NT, Windows 2000, Windows XP and Windows .Net Server 2003.
    • -
    • Windows 9x: This means older, - consumer-oriented versions of Windows. Includes Windows 95 (also - OSR2), Windows 98 and Windows ME.
    • -
    -
    +
  • Configuring Access to Network Resources
  • +
  • Windows Tuning
  • +
    top

    Operating System Requirements

    -

    The primary Windows platform for running Apache 2.0 is Windows - NT. The binary installer only works with the x86 family of - processors, such as Intel and AMD processors. Running Apache on - Windows 9x is not thoroughly tested, and it is never recommended on - production systems. -

    - -

    On all operating systems, TCP/IP networking must be installed - and working. If running on Windows 95, the Winsock 2 upgrade must - be installed. Winsock 2 for Windows 95 can be downloaded from here. -

    +

    The primary Windows platform for running Apache 2.2 is Windows + 2000 or later. The binary installer only works with the x86 family + of processors, such as Intel and AMD processors. Always obtain and + install the current service pack to avoid operating system bugs.

    -

    On Windows NT 4.0, installing Service Pack 6 is strongly - recommended, as Service Pack 4 created known issues with TCP/IP - and Winsock integrity that were resolved in later Service Packs.

    +
    Running Apache on Windows 9x is ignored by the developers, and + is strongly discouraged. On Windows NT 4.0, installing Service + Pack 6 is required. Apache HTTP Server versions later than 2.2 will + not run on any operating system earlier than Windows 2000.
    top

    Downloading Apache for Windows

    -

    Information on the latest versions of Apache can be found on the - web site of the Apache web server at - http://httpd.apache.org/download.cgi. - There you will find the current release, as well as more recent alpha - or beta test versions, and a list of HTTP and FTP mirrors from which - you can download the Apache web server. Please use a mirror near to - you for a fast and reliable download.

    - -

    For Windows installations you should download the version of - Apache for Windows with the .msi extension. This is a - single Microsoft Installer file, which contains a ready-to-run - version of Apache. There is a separate .zip file, - which contains only the source code. You can compile Apache - yourself with the Microsoft Visual C++ (Visual Studio) tools.

    +

    The Apache HTTP Server Project itself does not provide binary releases of + software, only source code. Individual committers may provide + binary packages as a convenience, but it is not a release deliverable.

    +

    If you cannot compile the Apache HTTP Server + yourself, you can obtain a binary package from numerous binary distributions + available on the Internet.

    + +

    Popular options for deploying Apache httpd, and, optionally, PHP + and MySQL, on Microsoft Windows, include:

    + +
    top

    Installing Apache for Windows

    -

    You need Microsoft Installer 1.2 or above for the installation - to work. On Windows 9x you can update your Microsoft Installer to - version 2.0 here - and on Windows NT 4.0 and 2000 the version 2.0 update can be found - here. - Windows XP does not need this update.

    +

    You need Microsoft Installer 2.0 or above for the installation + to work. For Windows NT 4.0 and 2000 refer to Microsoft's article + KB 292539. + Windows XP and later do not require this update. The Windows 98/ME + installer engine appears to no longer be available from Microsoft, + and these instructions no longer detail such prerequisites.

    -

    Note that you cannot install two versions of Apache 2.0 on the +

    Note that you cannot install two versions of Apache 2.2 on the same computer with the binary installer. You can, however, install a version of the 1.3 series and a version of the - 2.0 series on the same computer without problems. If you need to - have two different 2.0 versions on the same computer, you have to + 2.2 series on the same computer without problems. If you need to + have two different 2.2 versions on the same computer, you have to compile and install Apache from the source.

    @@ -149,8 +144,9 @@ site(s).

  • Where to install. The default path is - C:\Program Files\Apache Group under which a directory - called Apache2 will be created by default.

  • + C:\Program Files\Apache Software Foundation + under which a directory called + Apache2.2 will be created by default.

    During the installation, Apache will configure the files in the @@ -181,6 +177,63 @@ should work as installed.

    top
    +

    Advanced Installation Topics

    + + +

    One feature of the installer, "Build Headers and Libraries", can be + ignored by most users, but should be installed if compiling third party + modules. The "APR Iconv Code Pages" can similarly be omitted by most + users, unless using mod_charset_lite or a third party + module which relies on APR internationalization features.

    + +

    There are requests to ship a .zip file from time to time. There is + no point in the ASF consuming additional storage, mirroring and bandwidth + for this purpose, because the .msi installer allows the installation + artifacts to all be unpacked using the msiexec /a network + installation option. Using this command against any .msi will result + in an exploded tree of all of the individual files and components.

    + +

    The installation options above can be customized by users familiar + with msiexec.exe options and silent installation. The actual installer + sources are available in the httpd/httpd/win32-msi/ tree of the httpd + project subversion respository. For reference, some of the more common + variables which may be modified are;

    + +
      +
    • AgreeToLicense (toggle to "Yes")
    • +
    • ALLUSERS (choose between Null and "1")
    • +
    • ApplicationUsers (toggle to "OnlyCurrentUser")
    • +
    • EXISTING_APACHE_SERVICE_PATH
    • +
    • INSTALLDIR (default "ProgramFilesFolder\Apache Software Foundation\Apache2.2\")
    • +
    • INSTALLLEVEL (default "100", refer to list below)
    • +
    • RESOLVED_WINSOCK2 (toggle to "1")
    • +
    • SERVERADMIN
    • +
    • SERVERDOMAIN
    • +
    • SERVERNAME
    • +
    • SERVERPORT (default "80")
    • +
    • SERVERSSLPORT (default "443")
    • +
    • SERVICEINTERNALNAME (default "Apache2.2", no spaces!)
    • +
    • SERVICENAME (default "Apache2.2", include spaces)
    • +
    • SetupType (default "Typical")
    • +
    + +

    The installation level of various features, which may be individually + toggled, include;

    + +
      +
    • Apache (1, base Apache HTTP Server 2.2 feature)
    • +
    • ApacheDocs (11, Apache Documentation)
    • +
    • ApacheMonitoring (41, Apache Service Taskbar Icon)
    • +
    • ApacheRuntime (1, Apache Runtime)
    • +
    • BuildFiles (101, Build Headers and Libraries)
    • +
    • Iconv (21, APR Iconv Code Pages)
    • +
    • OpensslBin (31, OpenSSL Runtime)
    • +
    • SslBin (41, Ssl Binaries)
    • +
    + + +
    top
    +

    Customizing Apache for Windows

    @@ -193,7 +246,7 @@

    The main differences in Apache for Windows are:

    • Because Apache for Windows is multithreaded, it does not - use a separate process for each request, as Apache does on Unix. + use a separate process for each request, as Apache can on Unix. Instead there are usually only two Apache processes running: a parent process, and a child which handles the requests. Within the child process each request is handled by a separate thread. @@ -202,12 +255,12 @@

      The process management directives are also different:

      MaxRequestsPerChild: - Like the Unix directive, this controls how many requests a single - child process will serve before exiting. However, unlike on Unix, - a single process serves all the requests at once, not just one. - If this is set, it is recommended that a very high number is - used. The recommended default, MaxRequestsPerChild 0, - causes the child process to never exit.

      + Like the Unix directive, this controls how many requests (actually, + connections) which a single child process will serve before exiting. + However, unlike on Unix, a replacement process is not instantly + available. Use the default MaxRequestsPerChild 0, + unless instructed to change the behavior to overcome a memory leak + in third party modules or in-process applications.

      Warning: The server configuration file is reread when a new child process is started. If you have @@ -219,18 +272,49 @@ should use. This is the maximum number of connections the server can handle at once, so be sure to set this number high enough for your site if you get a lot of hits. The recommended default is - ThreadsPerChild 50.

    • + ThreadsPerChild 150, but this must be adjusted to + reflect the greatest anticipated number of simultaneous + connections to accept.

    • The directives that accept filenames as arguments must use Windows filenames instead of Unix ones. However, because Apache - uses Unix-style names internally, you must use forward slashes, - not backslashes. Drive letters can be used; if omitted, the drive - with the Apache executable will be assumed.

    • + may interpret backslashes as an "escape character" sequence, you + should consistently use forward slashes in path names, not + backslashes.

      + +
    • While filenames are generally case-insensitive on + Windows, URLs are still treated internally as case-sensitive + before they are mapped to the filesystem. For example, the + <Location>, + Alias, and ProxyPass directives all use + case-sensitive arguments. For this reason, it is particularly + important to use the <Directory> directive when attempting + to limit access to content in the filesystem, since this + directive applies to any content in a directory, regardless of + how it is accessed. If you wish to assure that only lowercase + is used in URLs, you can use something like:

      + +

      + RewriteEngine On
      + RewriteMap lowercase int:tolower
      + RewriteCond %{REQUEST_URI} [A-Z]
      + RewriteRule (.*) ${lowercase:$1} [R,L] +

    • + +
    • When running, Apache needs write access only to the logs + directory and any configured cache directory tree. Due to the + issue of case insensitive and short 8.3 format names, Apache must + validate all path names given. This means that each directory + which Apache evaluates, from the drive root up to the directory + leaf, must have read, list and traverse directory permissions. + If Apache2.2 is installed at C:\Program Files, then the root + directory, Program Files and Apache2.2 must all be visible + to Apache.

    • Apache for Windows contains the ability to load modules at runtime, without recompiling the server. If Apache is compiled normally, it will install a number of optional modules in the - \Apache2\modules directory. To activate these or + \Apache2.2\modules directory. To activate these or other modules, the new LoadModule directive must be used. For example, to activate the status module, use the following (in addition to the status-activating @@ -244,11 +328,11 @@ loadable modules is also available.

    • Apache can also load ISAPI (Internet Server Application - Programming Interface) extensions (i.e. internet server - applications), such as those used by Microsoft IIS and other - Windows servers. More information - is available. Note that Apache cannot load - ISAPI Filters.

    • + Programming Interface) extensions such as those used by Microsoft + IIS and other Windows servers. More + information is available. Note that Apache cannot + load ISAPI Filters, and ISAPI Handlers with some Microsoft feature + extensions will not work.

    • When running CGI scripts, the method Apache uses to find the interpreter for the script is configurable using the @@ -263,15 +347,11 @@

    • Any errors during Apache startup are logged into the Windows event log when running on Windows NT. This mechanism - acts as a backup for those situations where Apache cannot even - access the normally used error.log file. You can - view the Windows event log by using the Event Viewer application - on Windows NT 4.0, and the Event Viewer MMC snap-in on newer - versions of Windows.

      - -
      Note that there is no startup error logging on - Windows 9x because no Windows event log exists on those operating - systems.
    • + acts as a backup for those situations where Apache is not yet + prepared to use the error.log file. You can + review the Windows Application Event Log by using the Event Viewer, + e.g. Start - Settings - Control Panel - Administrative Tools + - Event Viewer.

    top
    @@ -279,9 +359,6 @@

    Running Apache as a Service

    -

    Apache can be run as a service on Windows NT. There is some - highly experimental support for similar behavior on Windows 9x.

    -

    You can install Apache as a service automatically during the installation. If you chose to install for all users, the installation will create an Apache service for you. If you specify @@ -300,78 +377,79 @@ the command prompt at the Apache bin subdirectory:

    - apache -k install + httpd.exe -k install

    If you need to specify the name of the service you want to install, use the following command. You have to do this if you have several different service installations of Apache on your - computer.

    + computer. If you specify a name during the install, you have to + also specify it during any other -k operation.

    - apache -k install -n "MyServiceName" + httpd.exe -k install -n "MyServiceName"

    If you need to have specifically named configuration files for different services, you must use this:

    - apache -k install -n "MyServiceName" -f "c:\files\my.conf" + httpd.exe -k install -n "MyServiceName" -f "c:\files\my.conf"

    If you use the first command without any special parameters except - -k install, the service will be called Apache2 + -k install, the service will be called Apache2.2 and the configuration will be assumed to be conf\httpd.conf.

    Removing an Apache service is easy. Just use:

    - apache -k uninstall + httpd.exe -k uninstall

    The specific Apache service to be uninstalled can be specified by using:

    - apache -k uninstall -n "MyServiceName" + httpd.exe -k uninstall -n "MyServiceName"

    Normal starting, restarting and shutting down of an Apache service is usually done via the Apache Service Monitor, by using - commands like NET START Apache2 and NET STOP - Apache2 or via normal Windows service management. Before + commands like NET START Apache2.2 and NET STOP + Apache2.2 or via normal Windows service management. Before starting Apache as a service by any means, you should test the service's configuration file by using:

    - apache -n "MyServiceName" -t + httpd.exe -n "MyServiceName" -t

    You can control an Apache service by its command line switches, too. To start an installed Apache service you'll use this:

    - apache -k start + httpd.exe -k start -n "MyServiceName"

    To stop an Apache service via the command line switches, use this:

    - apache -k stop + httpd.exe -k stop -n "MyServiceName"

    or

    - apache -k shutdown + httpd.exe -k shutdown -n "MyServiceName"

    You can also restart a running service and force it to reread its configuration file by using:

    - apache -k restart + httpd.exe -k restart -n "MyServiceName"

    By default, all Apache services are registered to run as the @@ -386,9 +464,9 @@ to access network resources, create a separate account for Apache as noted below.

    -

    You may want to create a separate account for running Apache - service(s). Especially, if you have to access network resources - via Apache, this is strongly recommended.

    +

    It is recommended that users create a separate account for running + Apache service(s). If you have to access network resources via Apache, + this is required.

    1. Create a normal domain user account, and be sure to @@ -413,17 +491,17 @@ Apache logs directory.
    2. Grant the account read and execute (RX) rights to the - Apache.exe binary executable.
    3. + httpd.exe binary executable.
    It is usually a good practice to grant the user the Apache - service runs as read and execute (RX) access to the whole Apache2 + service runs as read and execute (RX) access to the whole Apache2.2 directory, except the logs subdirectory, where the user has to have at least change (RWXD) rights.

    If you allow the account to log in as a user and as a service, - then you can log on with that account and test that the account has the - privileges to execute the scripts, read the web pages, and that + then you can log on with that account and test that the account has + the privileges to execute the scripts, read the web pages, and that you can start Apache in a console window. If this works, and you have followed the steps above, Apache should execute as a service with no problems.

    @@ -440,7 +518,7 @@ Windows Control Panel, you may get the following message:

    - Could not start the Apache2 service on \\COMPUTER
    + Could not start the Apache2.2 service on \\COMPUTER
    Error 1067; The process terminated unexpectedly.

    @@ -449,54 +527,10 @@ the problem you should follow the instructions for Running Apache for Windows from the Command Prompt.

    -

    There is some support for Apache on Windows 9x to behave in a - similar manner as a service on Windows NT. It is highly - experimental. It is not of production-class reliability, - and its future is not guaranteed. It can be mostly regarded as - a risky thing to play with - proceed with caution!

    - -

    There are some differences between the two kinds of services - you should be aware of:

    - -
      -
    • Apache will attempt to start and if successful it will run - in the background. If you run the command

      - -

      - apache -n "MyServiceName" -k start -

      - -

      via a shortcut on your desktop, for example, then if the - service starts successfully, a console window will flash up but - it immediately disappears. If Apache detects any errors on startup - such as incorrect entries in the httpd.conf configuration file, - the console window will remain visible. This will display an error - message which will be useful in tracking down the cause of the - problem.

    • - -
    • Windows 9x does not support NET START or - NET STOP commands. You must control the Apache - service on the command prompt via the -k switches. -

    • - -
    • Apache and Windows 9x offer no support for running Apache - as a specific user with network privileges. In fact, Windows 9x - offers no security on the local machine, either. This is the - simple reason because of which the Apache Software Foundation - never endorses use of a Windows 9x -based system as a public - Apache server. The primitive support for Windows 9x exists only - to assist the user in developing web content and learning the - Apache server, and perhaps as an intranet server on a secured, - private network.

    • - -
    - -

    Once you have confirmed that Apache runs correctly as a - console application you can install, control and uninstall the - pseudo-service with the same commands as on Windows NT. You can - also use the Apache Service Monitor to manage Windows 9x - pseudo-services.

    - +

    If you are having problems with the service, it is suggested + you follow the instructions below to try starting httpd.exe from + a console window, and work out the errors before struggling to + start it as a service again.

    top

    Running Apache as a Console Application

    @@ -511,7 +545,7 @@ use the following command:

    - apache + httpd.exe

    Apache will execute, and will remain running until it is stopped @@ -519,7 +553,7 @@

    You can also run Apache via the shortcut Start Apache in Console placed to Start Menu --> Programs --> Apache HTTP Server - 2.0.xx --> Control Apache Server during the installation. + 2.2.xx --> Control Apache Server during the installation. This will open a console window and start Apache inside it. If you don't have Apache installed as a service, the window will remain visible until you stop Apache by pressing Control-C in the console @@ -528,24 +562,32 @@ shortcut starts the service. If the Apache service is running already, the shortcut doesn't do anything.

    -

    You can tell a running Apache to stop by opening another console +

    If Apache is running as a service, you can tell it to stop by opening another console window and entering:

    - apache -k shutdown + httpd.exe -k shutdown

    -

    This should be preferred over pressing Control-C because this - lets Apache end any current operations and clean up gracefully.

    +

    Running as a service should be preferred over running in a + console window because this lets Apache end any current operations + and clean up gracefully.

    + +

    But if the server is running in a console window, you can + only stop it by pressing Control-C in the same window.

    You can also tell Apache to restart. This forces it to reread the configuration file. Any operations in progress are allowed to - complete without interruption. To restart Apache, use:

    + complete without interruption. To restart Apache, either press + Control-Break in the console window you used for starting Apache, + or enter

    - apache -k restart + httpd.exe -k restart

    +

    if the server is running as a service.

    +
    Note for people familiar with the Unix version of Apache: these commands provide a Windows equivalent to kill -TERM pid and kill -USR1 pid. The @@ -555,15 +597,15 @@

    If the Apache console window closes immediately or unexpectedly after startup, open the Command Prompt from the Start Menu --> Programs. Change to the folder to which you installed Apache, type - the command apache, and read the error message. Then + the command httpd.exe, and read the error message. Then change to the logs folder, and review the error.log file for configuration mistakes. If you accepted the defaults when you installed Apache, the commands would be:

    c:
    - cd "\Program Files\Apache Group\Apache2\bin"
    - apache + cd "\Program Files\Apache Software Foundation\Apache2.2\bin"
    + httpd.exe

    Then wait for Apache to stop, or press Control-C. Then enter the @@ -583,20 +625,20 @@ a particular configuration file:

    - apache -f "c:\my server files\anotherconfig.conf" + httpd.exe -f "c:\my server files\anotherconfig.conf"

    or

    - apache -f files\anotherconfig.conf + httpd.exe -f files\anotherconfig.conf

  • -n specifies the installed Apache service whose configuration file is to be used:

    - apache -n "MyServiceName" + httpd.exe -n "MyServiceName"

  • @@ -613,11 +655,10 @@ invoking Apache with the -V switch, like this:

    - apache -V + httpd.exe -V

    -

    Apache will then try to determine its - ServerRoot by trying the following, in this order:

    +

    Apache will then try to determine its ServerRoot by trying the following, in this order:

    1. A ServerRoot directive @@ -632,7 +673,7 @@
    2. The server root compiled into the server. This is /apache by default, you can verify it by using - apache -V and looking for a value labelled as + httpd.exe -V and looking for a value labelled as HTTPD_ROOT.
    @@ -645,7 +686,7 @@

    - HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.0.43 + HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Apache\2.2.2

    Correspondingly, if you chose to install Apache for the current @@ -654,7 +695,7 @@ logged on:

    - HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.0.43 + HKEY_CURRENT_USER\SOFTWARE\Apache Software Foundation\Apache\2.2.2

    This key is compiled into the server and can enable you to test @@ -679,7 +720,6 @@ location it is vital that you update the ServerRoot directive in the httpd.conf file to reflect the new location.

    -
    top

    Testing the Installation

    @@ -696,8 +736,8 @@ http://localhost/

    -

    Apache should respond with a welcome page and a link to the - Apache manual. If nothing happens or you get an error, look in the +

    Apache should respond with a welcome page and you should see + "It Works!". If nothing happens or you get an error, look in the error.log file in the logs subdirectory. If your host is not connected to the net, or if you have serious problems with your DNS (Domain Name Service) configuration, you @@ -709,9 +749,9 @@

    If you happen to be running Apache on an alternate port, you need to explicitly put that in the URL:

    - +

    - http://127.0.0.1:8080/ + http://127.0.0.1:8080/

    Once your basic installation is working, you should configure it @@ -723,14 +763,89 @@

    Because Apache cannot share the same port with another TCP/IP application, you may need to stop, uninstall or reconfigure certain other services before running Apache. These conflicting - services include other WWW servers and some firewall implementations. -

    + services include other WWW servers, some firewall implementations, + and even some client applications (such as Skype) which will use port + 80 to attempt to bypass firewall issues.

    +
    top
    +
    +

    Configuring Access to Network Resources

    + +

    Access to files over the network can be specified using two + mechanisms provided by Windows:

    + +
    +
    Mapped drive letters
    +
    e.g., Alias /images/ Z:/
    + +
    UNC paths
    +
    e.g., Alias /images/ //imagehost/www/images/
    +
    + +

    Mapped drive letters allow the administrator to maintain the + mapping to a specific machine and path outside of the Apache httpd + configuration. However, these mappings are associated only with + interactive sessions and are not directly available to Apache httpd + when it is started as a service. Use only UNC paths for + network resources in httpd.conf so that the resources can + be accessed consistently regardless of how Apache httpd is started. + (Arcane and error prone procedures may work around the restriction + on mapped drive letters, but this is not recommended.)

    + +

    Example DocumentRoot with UNC path

    + DocumentRoot //dochost/www/html/ +

    + +

    Example DocumentRoot with IP address in UNC path

    + DocumentRoot //192.168.1.50/docs/
    +

    + +

    Example Alias and corresponding Directory with UNC path

    + Alias /images/ //imagehost/www/images/
    +
    + <Directory //imagehost/www/images/>
    + ...
    + <Directory>
    +

    + +

    When running Apache httpd as a service, you must create a + separate account in order to access network resources, as described + above.

    +
    top
    +
    +

    Windows Tuning

    + +
      +
    • If more than a few dozen piped loggers are used on an operating system + instance, scaling up the "desktop heap" is often necessary. For + more detailed information, refer to the piped logging documentation.

    • +

    Available Languages:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/windows.html.ko.euc-kr b/docs/manual/platform/windows.html.ko.euc-kr index 18ccd033aa8..fb6aea1660c 100644 --- a/docs/manual/platform/windows.html.ko.euc-kr +++ b/docs/manual/platform/windows.html.ko.euc-kr @@ -1,22 +1,29 @@ - -Microsoft Windows¿¡¼­ ¾ÆÆÄġ »ç¿ë¹ý - Apache HTTP Server +Microsoft Windows¿¡¼­ ¾ÆÆÄġ »ç¿ë¹ý - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Microsoft Windows¿¡¼­ ¾ÆÆÄġ »ç¿ë¹ý

    +Apache > HTTP Server > Documentation > Version 2.2 > Platform Specific Notes

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    top

    ¿üÁ¦ ¿䱸Á¶°Ç

    @@ -682,7 +689,28 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ko 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/platform/windows.xml b/docs/manual/platform/windows.xml index 0872cbe87cf..fec7163f995 100644 --- a/docs/manual/platform/windows.xml +++ b/docs/manual/platform/windows.xml @@ -4,12 +4,12 @@ + - + windows /platform/ .. diff --git a/docs/manual/programs/ab.html b/docs/manual/programs/ab.html index 3ba123c4540..f5a9c816a23 100644 --- a/docs/manual/programs/ab.html +++ b/docs/manual/programs/ab.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: ab.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: ab.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: ab.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/ab.html.en b/docs/manual/programs/ab.html.en index c87b10b5a4b..541c9bd0b26 100644 --- a/docs/manual/programs/ab.html.en +++ b/docs/manual/programs/ab.html.en @@ -1,25 +1,33 @@ - -ab - Apache HTTP server benchmarking tool - Apache HTTP Server +ab - Apache HTTP server benchmarking tool - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ab - Apache HTTP server benchmarking tool

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ab - Apache HTTP server benchmarking tool

    Available Languages:  en  | - ko 

    + ko  | + tr 

    ab is a tool for benchmarking your Apache Hypertext @@ -30,17 +38,20 @@

    +

    See also

    top

    Synopsis

    ab [ -A auth-username:password ] + [ -b windowsize ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] + [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] @@ -50,10 +61,12 @@ [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] + [ -r ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type ] + [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] @@ -61,7 +74,8 @@ [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] - [http://]hostname[:port]/path

    + [ -Z ciphersuite ] + [http[s]://]hostname[:port]/path

    top

    Options

    @@ -72,6 +86,9 @@ base64 encoded. The string is sent regardless of whether the server needs it (i.e., has sent an 401 authentication needed). +
    -b windowsize
    +
    Size of TCP send/receive buffer, in bytes.
    +
    -c concurrency
    Number of multiple requests to perform at a time. Default is one request at a time.
    @@ -91,6 +108,9 @@ that percentage of the requests. This is usually more useful than the 'gnuplot' file; as the results are already 'binned'. +
    -f protocol
    +
    Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL).
    +
    -g gnuplot-file
    Write all measured values out as a 'gnuplot' or TSV (Tab separate values) file. This file can easily be imported into packages like Gnuplot, @@ -118,21 +138,24 @@ non-representative benchmarking results.
    -p POST-file
    -
    File containing data to POST.
    +
    File containing data to POST. Remember to also set -T.
    -P proxy-auth-username:password
    Supply BASIC Authentication credentials to a proxy en-route. The - username and password are separated by a single : and sent on + username and password are separated by a single : and sent on the wire base64 encoded. The string is sent regardless of whether the proxy needs it (i.e., has sent an 407 proxy authentication needed).
    -q
    When processing more than 150 requests, ab outputs a - progress count on stderr every 10% or 100 requests or so. The + progress count on stderr every 10% or 100 requests or so. The -q flag will suppress these messages.
    -
    -s
    +
    -r
    +
    Don't exit on socket receive errors.
    + +
    -s
    When compiled in (ab -h will show you) use the SSL protected https rather than the http protocol. This feature is experimental and very rudimentary. You probably @@ -141,7 +164,7 @@
    -S
    Do not display the median and standard deviation values, nor display the warning/error messages when the average and median are more than - one or two times the standard deviation apart. And default to the + one or two times the standard deviation apart. And default to the min/avg/max values. (legacy support).
    -t timelimit
    @@ -150,7 +173,12 @@ fixed total amount of time. Per default there is no timelimit.
    -T content-type
    -
    Content-type header to use for POST data.
    +
    Content-type header to use for POST/PUT data, eg. + application/x-www-form-urlencoded. + Default: text/plain.
    + +
    -u PUT-file
    +
    File containing data to PUT. Remember to also set -T.
    -v verbosity
    Set verbosity level - 4 and above prints information on @@ -176,6 +204,95 @@
    -z <td>-attributes
    String to use as attributes for <td>.
    + +
    -Z ciphersuite
    +
    Specify SSL/TLS cipher suite (See openssl ciphers).
    + +
    top
    +
    +

    Description of output

    +

    The following list describes the values returned by ab: +

    + +
    +
    Server Software
    +
    The value, if any, returned in the server HTTP header + of the first successful response. This includes all characters in the + header from beginning to the point a character with decimal value of 32 + (most notably: a space or CR/LF) is detected.
    + +
    Server Hostname
    +
    The DNS or IP address given on the command line
    + +
    Server Port
    +
    The port to which ab is connecting. If no port is given on the + command line, this will default to 80 for http and 443 for + https.
    + +
    SSL/TLS Protocol
    +
    The protocol parameters negotiated between the client and server. + This will only be printed if SSL is used.
    + +
    Document Path
    +
    The request URI parsed from the command line string.
    + +
    Document Length
    +
    This is size in bytes of the first succesfully returning document. + If the document length changes during testing, the response is + considered an error.
    + +
    Concurrency Level
    +
    The number of concurrent clients used during the test
    + +
    Time taken for tests
    +
    This is the time taken from the moment the first socket connection + is created to the moment the last response is recieved
    + +
    Complete requests
    +
    The number of successful responses recieved
    + +
    Failed requests
    +
    The number of requests that were considered a failure. If the + number is greater than zero, another line will be printed showing the + numer of requests that failed due to connecting, reading, incorrect + content length, or exceptions.
    + +
    Write errors
    +
    The number of errors that failed during write (broken pipe).
    + +
    Non-2xx responses
    +
    The number of responses that were not in the 200 series of response + codes. If all responses were 200, this field is not printed.
    + +
    Keep-Alive requests
    +
    The number of connections that resulted in Keep-Alive requests
    + +
    Total body sent
    +
    If configured to send data as part of the test, this is the total + number of bytes sent during the tests. This field is omitted if the test + did not include a body to send.
    + +
    Total transferred
    +
    The total number of bytes received from the server. This number + is essentially the number of bytes sent over the wire.
    + +
    HTML transferred
    +
    The total number of document bytes received from the server. This + number excludes bytes received in HTTP headers
    + +
    Requests per second
    +
    This is the number of requests per second. This value is the result + of dividing the number of requests by the total time taken
    + +
    Time per request
    +
    The average time spent per request. The first value is calculated + with the formula concurrency * timetaken * 1000 / done + while the second value is calculated with the formula + timetaken * 1000 / done
    + +
    Transfer rate
    +
    The rate of transfer as calculated by the formula + totalread / 1024 / timetaken
    top
    @@ -191,8 +308,30 @@

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/ab.html.ko.euc-kr b/docs/manual/programs/ab.html.ko.euc-kr index c2d4a4cf416..aacd961b605 100644 --- a/docs/manual/programs/ab.html.ko.euc-kr +++ b/docs/manual/programs/ab.html.ko.euc-kr @@ -1,25 +1,33 @@ - -ab - ¾ÆÆÄġ À¥¼­¹ö ¼º´ɰ˻ç µµ±¸ - Apache HTTP Server +ab - ¾ÆÆÄġ À¥¼­¹ö ¼º´ɰ˻ç µµ±¸ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ab - ¾ÆÆÄġ À¥¼­¹ö ¼º´ɰ˻ç µµ±¸

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ab - ¾ÆÆÄġ À¥¼­¹ö ¼º´ɰ˻ç µµ±¸

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -32,7 +40,7 @@ +

    Âü°í

    top

    °³¿ä

    @@ -194,8 +202,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/ab.html.tr.utf8 b/docs/manual/programs/ab.html.tr.utf8 new file mode 100644 index 00000000000..9361f32de72 --- /dev/null +++ b/docs/manual/programs/ab.html.tr.utf8 @@ -0,0 +1,362 @@ + + + + + +ab - Apache HTTP sunucusu başarım ölçme aracı - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ab - Apache HTTP sunucusu başarım ölçme aracı

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    ab Apache Hiper Metin Aktarım Protokolü + (HTTP) sunucunuzun başarımını ölçmek amacıyla kullanabileceğiniz bir + kıyaslama aracıdır. Mevcut Apache kurulumunuzun görevini nasıl yerine + getirdiği hakkında bir izlenim edinmeniz için tasarlanmıştır. + Özellikle, Apache kurulumunuzun saniyede kaç isteği sunma yeteneğinde + olduğunu gösterir.

    +
    + +
    top
    +
    +

    Kullanım

    +

    ab + [ -A yetkili-kullanıcı:parola ] + [ -b tampon-boyu ] + [ -c bağlantı-sayısı ] + [ -C çerez-ismi=değer ] + [ -d ] + [ -e csv-dosyası ] + [ -f protokol ] + [ -g gnuplot-dosyası ] + [ -h ] + [ -H özel-başlık ] + [ -i ] + [ -k ] + [ -n istek-sayısı ] + [ -p POST-dosyası ] + [ -P vekil-yetkilisi:parola ] + [ -q ] + [ -r ] + [ -s ] + [ -S ] + [ -t saniye ] + [ -T içerik-türü ] + [ -u PUT-dosyası ] + [ -v ayrıntı-düzeyi] + [ -V ] + [ -w ] + [ -x <table>-öznitelikleri ] + [ -X vekil[:port] ] + [ -y <tr>-öznitelikleri ] + [ -z <td>-öznitelikleri ] + [ -Z şifre-kümesi ] + [http[s]://]konakadı[:port]/dizin

    +
    top
    +
    +

    Seçenekler

    +
    +
    -A + yetkili-kullanıcı:parola
    +
    Sunucuya TEMEL Kimlik Doğrulamada kullanılmak üzere kanıt sağlar. + Kullanıcı adı ile parola arasına sadece : konur ve + sunucunun buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "401 + kimlik doğrulaması gerekli" yanıtı beklenmeden) bağlantı üzerinden + base64 kodlu olarak sunucuya gönderilir.
    + +
    -b tampon-boyu
    +
    TCP gönderme/alma tamponlarının bayt cinsinden uzunluğu.
    + +
    -c bağlantı-sayısı
    +
    Aynı anda işleme sokulacak bağlantı sayısı. Aynı anda bir bağlantı + öntanımlı değerdir.
    + +
    -C + çerez-ismi=değer
    +
    İsteğe bir Cookie: satırı ekler. Argüman olarak + genellikle bir isim=değer çifti kullanılır. Bu + çiftler birden fazla olabilir.
    + +
    -d
    +
    "percentage served within XX [ms] table" iletisi gösterilmez. (Geriye + uyumluluk için vardır).
    + +
    -e csv-dosyası
    +
    Sunulan isteğin birim zamanda (milisaniye) ne kadarının (yüzde + cinsinden) sunulduğunu gösteren virgül ayraçlı değerler (CSV) dosyası. + Sonuçlar 'bobin haline' getirilmiş olduğundan doğal olarak 'gnuplot' + dosyasından daha yararlıdır.
    + +
    -f protokol
    +
    SSL/TLS protokolü belirtilir (SSL2, SSL3, TLS1 veya ALL).
    + +
    -g gnuplot-dosyası
    +
    Ölçülen değerler bir 'gnuplot' veya TSV (sekme ayraçlı değerler) + dosyasına yazılır. Bu dosya, Gnuplot, IDL, Mathematica, Igor hatta + Excel tarafından veri dosyası olarak kabul edilir. Veri sütunlarının + başlıkları dosyanın ilk satırında bulunur.
    + +
    -h
    +
    Kullanım bilgisi gösterir.
    + +
    -H özel-başlık
    +
    İsteğe fazladan başlık ekler. özel-başlık, aralarında iki + nokta imi bulunan bir isim-değer çifti olarak belirtilir. Örnek: + "Accept-Encoding: zip/zop;8bit"
    + +
    -i
    +
    GET istekleri yerine HEAD istekleri + yapılır.
    + +
    -k
    +
    HTTP KeepAlive (kalıcı bağlantı) özelliğini etkinleştirir, yani tek + bir oturum içinde çok sayıda isteğe hizmet sunulabilir. Özellik + öntanımlı olarak kapalıdır.
    + +
    -n istek-sayısı
    +
    Kıyaslama oturumu sırasında sunucuya uygulanacak istek sayısı. + Öntanımlı olarak hiçbir başarım ölçütü sağlamayan tek bir istek + yapılır.
    + +
    -p POST-dosyası
    +
    POST isteği ile ilgili verileri içeren dosya. Ayrıca + -T seçeneğini de belirtmeyi + unutmayın..
    + +
    -P + vekil-yetkilisi:parola
    +
    Vekil sunucuya TEMEL Kimlik Doğrulamasında kullanılacak kanıtları + sağlar. Kullanıcı adı ile parola arasına sadece : konur ve + vekilin buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "407 + vekilde kimlik doğrulaması gerekiyor" yanıtı beklenmeden) bağlantı + üzerinden base64 kodlu olarak sunucuya gönderilir.
    + +
    -q
    +
    İstek sayısı 150'den fazla olduğunda, + ab her 100 veya %10 istekte bir, standart + hataya bir işlenen istek sayacı çıktılar. + -q seçeneği bu çıktının üretilmemesini + sağlar.
    + +
    -r
    +
    Soket hata alsa bile program çıkmaz.
    + +
    -s
    +
    Derlendiği takdirde (ab -h bunu + gösterir) http protokolü yerine SSL korumalı + https protokolü kullanılır. Bu özellik henüz + emekleme aşamasında olup geliştirilmeye devam edilmektedir. Bu + bakımdan kullanımı önerilmez.
    + +
    -S
    +
    Ortalama ve ortanca değerler arasında bir veya iki standart sapmadan + fazlası varsa ne ortalama değer ne standart sapma değeri ne de + uyarı/hata iletileri gösterilir. Öntanımlı olarak, + asgari/ortalama/azami değerler gösterilir. (Geriye uyumluluk).
    + +
    -t saniye
    +
    Ölçümleme işleminin ne kadar süreyle uygulanacağı belirtilir. Dahili + olarak -n 50000 seçeneği uygulanır. Bunu + belli bir süreye göre kıyaslama yapmak amacıyla kullanabilirsiniz. + Öntanımlı olarak bir süre kısıtlaması yoktur.
    + +
    -T içerik-türü
    +
    POST/PUT verisi için kullanılacak içerik türü belirtilir. Örnek: + application/x-www-form-urlencoded. + Öntanımlı değer: text/plain.
    + +
    -u PUT-dosyası
    +
    PUT verisini içeren dosya. Ayrıca, -T seçeneğini + belirtmeyi de unutmayın.
    + +
    -v ayrıntı-düzeyi
    +
    Çıktının ayrıntı düzeyi belirtilir. 4 ve üstü ile + başlıklar hakkında bilgi, 3 ve üstü ile yanıt kodları + (404, 200, vb.), 2 ve üstü ile ise uyarı ve bilgi + iletileri gösterilir.
    + +
    -V
    +
    Sürüm bilgilerini gösterir ve çıkar.
    + +
    -w
    +
    Sonuçları HTML tabloları olarak basar. Öntanımlı tablo, beyaz + artalanlı ve iki sütunludur.
    + +
    -x + <table>-öznitelikleri
    +
    <table> etiketinde kullanılacak öznitelikler + belirtilir. Belirtilen öznitelikler etiket içine <table + buraya > biçeminde yerleştirilir.
    + +
    -X + vekil[:port]
    +
    İstekler için bir vekil sunucu kullanılır.
    + +
    -y + <tr>-öznitelikleri
    +
    <tr> etiketinde kullanılacak öznitelikler + belirtilir.
    + +
    -z + <td>-öznitelikleri
    +
    <td> etiketinde kullanılacak öznitelikler + belirtilir.
    + +
    -Z şifre-kümesi
    +
    SSL/TLS şifre kümesi belirtilir (openssl(1) şifrelerine bakınız).
    +
    +
    top
    +
    +

    Çıktı

    +

    Aşağıdaki listede ab çıktısındaki değerler + açıklanmıştır: +

    + +
    +
    Server Software
    +
    Varsa, bu değer başarılı ilk yanıtın server HTTP + başlığında döner. Bu değer, başlıktan saptanan, başlangıçtan 32 onluk + değerli karaktere (gerçekte, bir boşluk veya CR/LF) kadar olan tüm + karakterleri içerir.
    + +
    Server Hostname
    +
    Komut satırında belirtilen DNS veya IP adresi.
    + +
    Server Port
    +
    ab'nin bağlandığı port. Komut + satırında bir port belirtilmemişse http için 80, https için + 443 öntanımlıdır.
    + +
    SSL/TLS Protocol
    +
    İstemci ile sunucu arasında alıp verilen protokol değerleri. Bu + sadece SSL kullanılıyorsa çıktılanır.
    + +
    Document Path
    +
    Komut satırından elde edilen istek URI'si.
    + +
    Document Length
    +
    Başarıyla dönen ilk belgenin bayt cinsinden uzunluğu. Eğer belge + uzunluğu sınama sırasında değişirse yanıt bir hata olarak ele + alınır.
    + +
    Concurrency Level
    +
    Sınama sırasında eşzamanlanan istemci sayısı.
    + +
    Time taken for tests
    +
    İlk soket bağlantısının kurulduğu andan son yanıtın alındığı ana + kadar geçen süre.
    + +
    Complete requests
    +
    Alınan başarılı yanıtların sayısı.
    + +
    Failed requests
    +
    Başarısız olarak kabul edilen istek sayısı. Bu sayı sıfırdan + farklıysa, ayrı bir satırda, bağlantıdan, okumadan, yanlış içerik + uzunluğundan veya istisnalardan kaynaklanan başarısızlık sayıları da + gösterilir.
    + +
    Write errors
    +
    Yazma sırasında oluşan hata (kırık boru) sayısı.
    + +
    Non-2xx responses
    +
    200 serisinden olmayan yanıt kodlarının sayısı. Tüm yanıtlar 200 + kodlu ise bu alan çıktılanmaz.
    + +
    Keep-Alive requests
    +
    Keep-Alive isteklerinde sonuçlanan bağlantı sayısı.
    + +
    Total body sent
    +
    Yapılandırılmışsa, sınamanın bir parçası olarak gönderilecek toplam + veri miktarı (bayt). Sınama sırasında gönderi bir veri gövdesi + içermiyorsa bu alan çıktılanmaz.
    + +
    Total transferred
    +
    Sunucudan alınan toplam bayt sayısı. Bu sayı aslında hattan + gönderilen bayt miktarıdır.
    + +
    HTML transferred
    +
    Sunucudan alınan toplam belge baytı miktarı. Bu miktar HTTP + başlıklarındaki baytları içermez.
    + +
    Requests per second
    +
    Saniyedeki istek sayısı. Toplam istek sayısının isteklerin toplam + zamanına oranıdır.
    + +
    Time per request
    +
    İstek başına harcanan ortalama zaman. İlk değerin formülü: + eşzamanlananİstemciSayısı * geçenSüre * 1000 / + tamamlananİstekSayısı, ikinci değerin formülü: + geçenSüre * 1000 / tamamlananİstekSayısı
    + +
    Transfer rate
    +
    okunanToplam / 1024 / geçenSüre formülü ile + hesaplanan aktarım hızı.
    +
    +
    top
    +
    +

    Börtü böcek

    +

    Duruk bildirimli sabit uzunlukta çeşitli tamponlar vardır. + Sunucudan gelen yanıt başlıkları ve diğer harici girdiler, komut satırı + argümanları ile birlikte basitçe çözümlenir, bu size can sıkıcı + gelebilir.

    + +

    HTTP/1.x protokolünü tamamen gerçeklemez; sadece yanıtların 'belli + başlı' bazı biçimlerini kabul eder. Aksi takdirde, + strstr(3) işlevinin yoğun kullanımı + nedeniyle sunucu yerine ab'nin başarımını + ölçerdiniz.

    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/ab.xml b/docs/manual/programs/ab.xml index 1aeec1b43af..3bda4bfd838 100644 --- a/docs/manual/programs/ab.xml +++ b/docs/manual/programs/ab.xml @@ -4,12 +4,12 @@ + - + ab /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/ab.xml.tr b/docs/manual/programs/ab.xml.tr new file mode 100644 index 00000000000..42eccfca2a8 --- /dev/null +++ b/docs/manual/programs/ab.xml.tr @@ -0,0 +1,331 @@ + + + + + + + + + +Programlar + +ab - Apache HTTP sunucusu başarım ölçme aracı + + +

    ab Apache Hiper Metin Aktarım Protokolü + (HTTP) sunucunuzun başarımını ölçmek amacıyla kullanabileceğiniz bir + kıyaslama aracıdır. Mevcut Apache kurulumunuzun görevini nasıl yerine + getirdiği hakkında bir izlenim edinmeniz için tasarlanmıştır. + Özellikle, Apache kurulumunuzun saniyede kaç isteği sunma yeteneğinde + olduğunu gösterir.

    +
    +httpd + +
    Kullanım +

    ab + [ -A yetkili-kullanıcı:parola ] + [ -b tampon-boyu ] + [ -c bağlantı-sayısı ] + [ -C çerez-ismi=değer ] + [ -d ] + [ -e csv-dosyası ] + [ -f protokol ] + [ -g gnuplot-dosyası ] + [ -h ] + [ -H özel-başlık ] + [ -i ] + [ -k ] + [ -n istek-sayısı ] + [ -p POST-dosyası ] + [ -P vekil-yetkilisi:parola ] + [ -q ] + [ -r ] + [ -s ] + [ -S ] + [ -t saniye ] + [ -T içerik-türü ] + [ -u PUT-dosyası ] + [ -v ayrıntı-düzeyi] + [ -V ] + [ -w ] + [ -x <table>-öznitelikleri ] + [ -X vekil[:port] ] + [ -y <tr>-öznitelikleri ] + [ -z <td>-öznitelikleri ] + [ -Z şifre-kümesi ] + [http[s]://]konakadı[:port]/dizin

    +
    + +
    Seçenekler +
    +
    -A + yetkili-kullanıcı:parola
    +
    Sunucuya TEMEL Kimlik Doğrulamada kullanılmak üzere kanıt sağlar. + Kullanıcı adı ile parola arasına sadece : konur ve + sunucunun buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "401 + kimlik doğrulaması gerekli" yanıtı beklenmeden) bağlantı üzerinden + base64 kodlu olarak sunucuya gönderilir.
    + +
    -b tampon-boyu
    +
    TCP gönderme/alma tamponlarının bayt cinsinden uzunluğu.
    + +
    -c bağlantı-sayısı
    +
    Aynı anda işleme sokulacak bağlantı sayısı. Aynı anda bir bağlantı + öntanımlı değerdir.
    + +
    -C + çerez-ismi=değer
    +
    İsteğe bir Cookie: satırı ekler. Argüman olarak + genellikle bir isim=değer çifti kullanılır. Bu + çiftler birden fazla olabilir.
    + +
    -d
    +
    "percentage served within XX [ms] table" iletisi gösterilmez. (Geriye + uyumluluk için vardır).
    + +
    -e csv-dosyası
    +
    Sunulan isteğin birim zamanda (milisaniye) ne kadarının (yüzde + cinsinden) sunulduğunu gösteren virgül ayraçlı değerler (CSV) dosyası. + Sonuçlar 'bobin haline' getirilmiş olduğundan doğal olarak 'gnuplot' + dosyasından daha yararlıdır.
    + +
    -f protokol
    +
    SSL/TLS protokolü belirtilir (SSL2, SSL3, TLS1 veya ALL).
    + +
    -g gnuplot-dosyası
    +
    Ölçülen değerler bir 'gnuplot' veya TSV (sekme ayraçlı değerler) + dosyasına yazılır. Bu dosya, Gnuplot, IDL, Mathematica, Igor hatta + Excel tarafından veri dosyası olarak kabul edilir. Veri sütunlarının + başlıkları dosyanın ilk satırında bulunur.
    + +
    -h
    +
    Kullanım bilgisi gösterir.
    + +
    -H özel-başlık
    +
    İsteğe fazladan başlık ekler. özel-başlık, aralarında iki + nokta imi bulunan bir isim-değer çifti olarak belirtilir. Örnek: + "Accept-Encoding: zip/zop;8bit"
    + +
    -i
    +
    GET istekleri yerine HEAD istekleri + yapılır.
    + +
    -k
    +
    HTTP KeepAlive (kalıcı bağlantı) özelliğini etkinleştirir, yani tek + bir oturum içinde çok sayıda isteğe hizmet sunulabilir. Özellik + öntanımlı olarak kapalıdır.
    + +
    -n istek-sayısı
    +
    Kıyaslama oturumu sırasında sunucuya uygulanacak istek sayısı. + Öntanımlı olarak hiçbir başarım ölçütü sağlamayan tek bir istek + yapılır.
    + +
    -p POST-dosyası
    +
    POST isteği ile ilgili verileri içeren dosya. Ayrıca + -T seçeneğini de belirtmeyi + unutmayın..
    + +
    -P + vekil-yetkilisi:parola
    +
    Vekil sunucuya TEMEL Kimlik Doğrulamasında kullanılacak kanıtları + sağlar. Kullanıcı adı ile parola arasına sadece : konur ve + vekilin buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "407 + vekilde kimlik doğrulaması gerekiyor" yanıtı beklenmeden) bağlantı + üzerinden base64 kodlu olarak sunucuya gönderilir.
    + +
    -q
    +
    İstek sayısı 150'den fazla olduğunda, + ab her 100 veya %10 istekte bir, standart + hataya bir işlenen istek sayacı çıktılar. + -q seçeneği bu çıktının üretilmemesini + sağlar.
    + +
    -r
    +
    Soket hata alsa bile program çıkmaz.
    + +
    -s
    +
    Derlendiği takdirde (ab -h bunu + gösterir) http protokolü yerine SSL korumalı + https protokolü kullanılır. Bu özellik henüz + emekleme aşamasında olup geliştirilmeye devam edilmektedir. Bu + bakımdan kullanımı önerilmez.
    + +
    -S
    +
    Ortalama ve ortanca değerler arasında bir veya iki standart sapmadan + fazlası varsa ne ortalama değer ne standart sapma değeri ne de + uyarı/hata iletileri gösterilir. Öntanımlı olarak, + asgari/ortalama/azami değerler gösterilir. (Geriye uyumluluk).
    + +
    -t saniye
    +
    Ölçümleme işleminin ne kadar süreyle uygulanacağı belirtilir. Dahili + olarak -n 50000 seçeneği uygulanır. Bunu + belli bir süreye göre kıyaslama yapmak amacıyla kullanabilirsiniz. + Öntanımlı olarak bir süre kısıtlaması yoktur.
    + +
    -T içerik-türü
    +
    POST/PUT verisi için kullanılacak içerik türü belirtilir. Örnek: + application/x-www-form-urlencoded. + Öntanımlı değer: text/plain.
    + +
    -u PUT-dosyası
    +
    PUT verisini içeren dosya. Ayrıca, -T seçeneğini + belirtmeyi de unutmayın.
    + +
    -v ayrıntı-düzeyi
    +
    Çıktının ayrıntı düzeyi belirtilir. 4 ve üstü ile + başlıklar hakkında bilgi, 3 ve üstü ile yanıt kodları + (404, 200, vb.), 2 ve üstü ile ise uyarı ve bilgi + iletileri gösterilir.
    + +
    -V
    +
    Sürüm bilgilerini gösterir ve çıkar.
    + +
    -w
    +
    Sonuçları HTML tabloları olarak basar. Öntanımlı tablo, beyaz + artalanlı ve iki sütunludur.
    + +
    -x + <table>-öznitelikleri
    +
    <table> etiketinde kullanılacak öznitelikler + belirtilir. Belirtilen öznitelikler etiket içine <table + buraya > biçeminde yerleştirilir.
    + +
    -X + vekil[:port]
    +
    İstekler için bir vekil sunucu kullanılır.
    + +
    -y + <tr>-öznitelikleri
    +
    <tr> etiketinde kullanılacak öznitelikler + belirtilir.
    + +
    -z + <td>-öznitelikleri
    +
    <td> etiketinde kullanılacak öznitelikler + belirtilir.
    + +
    -Z şifre-kümesi
    +
    SSL/TLS şifre kümesi belirtilir (openssl(1) şifrelerine bakınız).
    +
    +
    + +
    Çıktı +

    Aşağıdaki listede ab çıktısındaki değerler + açıklanmıştır: +

    + +
    +
    Server Software
    +
    Varsa, bu değer başarılı ilk yanıtın server HTTP + başlığında döner. Bu değer, başlıktan saptanan, başlangıçtan 32 onluk + değerli karaktere (gerçekte, bir boşluk veya CR/LF) kadar olan tüm + karakterleri içerir.
    + +
    Server Hostname
    +
    Komut satırında belirtilen DNS veya IP adresi.
    + +
    Server Port
    +
    ab'nin bağlandığı port. Komut + satırında bir port belirtilmemişse http için 80, https için + 443 öntanımlıdır.
    + +
    SSL/TLS Protocol
    +
    İstemci ile sunucu arasında alıp verilen protokol değerleri. Bu + sadece SSL kullanılıyorsa çıktılanır.
    + +
    Document Path
    +
    Komut satırından elde edilen istek URI'si.
    + +
    Document Length
    +
    Başarıyla dönen ilk belgenin bayt cinsinden uzunluğu. Eğer belge + uzunluğu sınama sırasında değişirse yanıt bir hata olarak ele + alınır.
    + +
    Concurrency Level
    +
    Sınama sırasında eşzamanlanan istemci sayısı.
    + +
    Time taken for tests
    +
    İlk soket bağlantısının kurulduğu andan son yanıtın alındığı ana + kadar geçen süre.
    + +
    Complete requests
    +
    Alınan başarılı yanıtların sayısı.
    + +
    Failed requests
    +
    Başarısız olarak kabul edilen istek sayısı. Bu sayı sıfırdan + farklıysa, ayrı bir satırda, bağlantıdan, okumadan, yanlış içerik + uzunluğundan veya istisnalardan kaynaklanan başarısızlık sayıları da + gösterilir.
    + +
    Write errors
    +
    Yazma sırasında oluşan hata (kırık boru) sayısı.
    + +
    Non-2xx responses
    +
    200 serisinden olmayan yanıt kodlarının sayısı. Tüm yanıtlar 200 + kodlu ise bu alan çıktılanmaz.
    + +
    Keep-Alive requests
    +
    Keep-Alive isteklerinde sonuçlanan bağlantı sayısı.
    + +
    Total body sent
    +
    Yapılandırılmışsa, sınamanın bir parçası olarak gönderilecek toplam + veri miktarı (bayt). Sınama sırasında gönderi bir veri gövdesi + içermiyorsa bu alan çıktılanmaz.
    + +
    Total transferred
    +
    Sunucudan alınan toplam bayt sayısı. Bu sayı aslında hattan + gönderilen bayt miktarıdır.
    + +
    HTML transferred
    +
    Sunucudan alınan toplam belge baytı miktarı. Bu miktar HTTP + başlıklarındaki baytları içermez.
    + +
    Requests per second
    +
    Saniyedeki istek sayısı. Toplam istek sayısının isteklerin toplam + zamanına oranıdır.
    + +
    Time per request
    +
    İstek başına harcanan ortalama zaman. İlk değerin formülü: + eşzamanlananİstemciSayısı * geçenSüre * 1000 / + tamamlananİstekSayısı, ikinci değerin formülü: + geçenSüre * 1000 / tamamlananİstekSayısı
    + +
    Transfer rate
    +
    okunanToplam / 1024 / geçenSüre formülü ile + hesaplanan aktarım hızı.
    +
    +
    + + +
    Börtü böcek +

    Duruk bildirimli sabit uzunlukta çeşitli tamponlar vardır. + Sunucudan gelen yanıt başlıkları ve diğer harici girdiler, komut satırı + argümanları ile birlikte basitçe çözümlenir, bu size can sıkıcı + gelebilir.

    + +

    HTTP/1.x protokolünü tamamen gerçeklemez; sadece yanıtların 'belli + başlı' bazı biçimlerini kabul eder. Aksi takdirde, + strstr(3) işlevinin yoğun kullanımı + nedeniyle sunucu yerine ab'nin başarımını + ölçerdiniz.

    +
    + +
    diff --git a/docs/manual/programs/apachectl.html b/docs/manual/programs/apachectl.html index b3966d8d903..7e1885c8f76 100644 --- a/docs/manual/programs/apachectl.html +++ b/docs/manual/programs/apachectl.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: apachectl.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: apachectl.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: apachectl.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/apachectl.html.en b/docs/manual/programs/apachectl.html.en index dac194ed9c9..c0cefd9acb6 100644 --- a/docs/manual/programs/apachectl.html.en +++ b/docs/manual/programs/apachectl.html.en @@ -1,25 +1,33 @@ - -apachectl - Apache HTTP Server Control Interface - Apache HTTP Server +apachectl - Apache HTTP Server Control Interface - Apache HTTP Server Version 2.2 - - + + + +
    <-

    apachectl - Apache HTTP Server Control Interface

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    apachectl - Apache HTTP Server Control Interface

    Available Languages:  en  | - ko 

    + ko  | + tr 

    apachectl is a front end to the Apache HyperText @@ -48,7 +56,7 @@

    +

    See also

    top

    Synopsis

    @@ -120,6 +128,13 @@ files as in configtest before initiating the restart to make sure Apache doesn't die. This is equivalent to apachectl -k graceful. +
    graceful-stop
    + +
    Gracefully stops the Apache httpd daemon. +This differs from a normal stop in that currently open connections are not +aborted. A side effect is that old log files will not be closed immediately. +This is equivalent to apachectl -k graceful-stop.
    +
    configtest
    Run a configuration file syntax test. It parses the configuration @@ -144,8 +159,30 @@ use the normal apachectl start.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/apachectl.html.ko.euc-kr b/docs/manual/programs/apachectl.html.ko.euc-kr index f569eea4648..7ae82459a85 100644 --- a/docs/manual/programs/apachectl.html.ko.euc-kr +++ b/docs/manual/programs/apachectl.html.ko.euc-kr @@ -1,25 +1,33 @@ - -apachectl - ¾ÆÆÄġ À¥¼­¹ö Á¶Àý ÀÎÅÍÆäÀ̽º - Apache HTTP Server +apachectl - ¾ÆÆÄġ À¥¼­¹ö Á¶Àý ÀÎÅÍÆäÀ̽º - Apache HTTP Server Version 2.2 - - + + + +
    <-

    apachectl - ¾ÆÆÄġ À¥¼­¹ö Á¶Àý ÀÎÅÍÆäÀ̽º

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    apachectl - ¾ÆÆÄġ À¥¼­¹ö Á¶Àý ÀÎÅÍÆäÀ̽º

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -50,7 +58,7 @@
    +

    Âü°í

    top

    °³¿ä

    @@ -137,8 +145,30 @@ Ok Ȥ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/apachectl.html.tr.utf8 b/docs/manual/programs/apachectl.html.tr.utf8 new file mode 100644 index 00000000000..0ea63c4eb5d --- /dev/null +++ b/docs/manual/programs/apachectl.html.tr.utf8 @@ -0,0 +1,195 @@ + + + + + +apachectl - Apache HTTP Sunucusu Denetim Arayüzü - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    apachectl - Apache HTTP Sunucusu Denetim Arayüzü

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    apachectl Apache Hiper Metin Aktarım + Protokolü (HTTP) sunucusu için bir denetim aracıdır. Sistem + yöneticisinin Apache httpd artalan + sürecini denetimi altında tutabilmesine yardımcı olmak amacıyla + tasarlanmıştır.

    + +

    apachectl iki kipte işleyebilir. + İlkinde, httpd komutu için basit + bir önyüz gibi davranarak, gerekli ortam değişkenlerini atar ve + belirtilen komut satırı seçenekleriyle + httpd sürecini başlatır. İkinci + kipte ise, apachectl bir SysV başlatma + betiği olarak start, + restart, + stop gibi tek sözcüklük basit argümanlar + alır ve bunları uygun sinyallere dönüştürerek + httpd'ye gönderir.

    + +

    Eğer Apache kurulumunuzda standart dışı dosya yolları kullanmışsanız, + httpd programına uygun yolları + atamak için apachectl betiğini elden + geçirmelisiniz. Bu arada gerek gördüğünüz + httpd komut satırı argümanlarını da + belirtebilirsiniz. Ayrıntılar için betik içindeki açıklamalara + bakınız.

    + +

    apachectl betiği başarı durumunda 0 + çıkış değeri ile döner. Bir hata durumunda ise sıfırdan farklı bir + değerle döner. Daha fazla bilgi için betik içindeki açıklamalara + bakınız.

    +
    + +
    top
    +
    +

    Kullanım

    + +

    apachectl önyüz kipinde çalıştığında + httpd programının bütün komut + satırı argümanlarını kabul edebilir.

    + +

    apachectl [ httpd-argümanları ] +

    + +

    SysV başlatma betiği kipinde ise, + apachectl aşağıda tanımlanan basit, tek + sözcüklük komutları kabul eder.

    + +

    apachectl komut

    + +
    top
    +
    +

    Seçenekler

    + +

    Burada sadece SysV başlatma betiğine özgü seçeneklere yer verilmiştir. + Diğer argümanlar için httpd kılavuz + sayfasına bakınız.

    + +
    +
    start
    +
    Apache httpd artalan sürecini + başlatır. Zaten çalışmaktaysa bir hata verir. apachectl + -k start komutuna eşdeğerdir.
    + +
    stop
    +
    Apache httpd artalan sürecini + durdurur. apachectl -k stop komutuna + eşdeğerdir.
    + +
    restart
    +
    Apache httpd artalan sürecini + yeniden başlatır; çalışmıyorsa çalıştırılır. Artalan sürecinin ölü + olmadığından emin olmak için yeniden başlatmadan önce + configtest seçeneği verilmiş gibi + yapılandırma dosyaları sınanır. apachectl -k + restart komutuna eşdeğerdir.
    + +
    fullstatus
    +
    mod_status üzerinden tam bir + durum raporu gösterir. Bunun çalışması için sunucuda + mod_status etkinleştirilmiş olmalı + ve sisteminizde lynx gibi bir metin + kipi HTTP tarayıcı kurulu olmalıdır. Durum raporuna erişmek için + kullanılacak adres betik içinde STATUSURL değişkenine + atanabilir.
    + +
    status
    +
    Özet halinde bir durum raporu gösterir. O an sunulmakta olan + isteklerin gösterilmemesi dışında + fullstatus seçeneği gibidir.
    + +
    graceful
    +
    Apache httpd artalan sürecini + nazikçe yeniden başlatır; çalışmıyorsa çalıştırılır. O an + hizmet sunmakta olan çocuk süreçleri hemen durdurmaması dışında + normal yeniden başlatma gibidir. Bir yan etki olarak eski günlük + dosyaları hemen kapatılmaz. Yani, günlük dosyalarını döndüren bir + betik kullanıyorsanız yenilerini başlatmadan önce eski dosyaların + tamamen kapandığından emin olmak için belli bir süre beklemeniz + gerekecektir. Artalan sürecinin ölü olmadığından emin olmak için + yeniden başlatmadan önce configtest + seçeneği verilmiş gibi yapılandırma dosyaları sınanır. + apachectl -k graceful komutuna + eşdeğerdir.
    + +
    graceful-stop
    +
    Apache httpd artalan sürecini + nazikçe durdurur. O an hizmet sunmakta olan çocuk süreçleri + hemen durdurmaması dışında normal durdurma gibidir. Bir yan etki + olarak eski günlük dosyaları hemen kapatılmaz. + apachectl -k graceful-stop komutuna + eşdeğerdir.
    + +
    configtest
    +
    Yapılandırma dosyasında sözdizimi denetimi yapılmasını sağlar. + Yapılandırma dosyaları çözümlenir ve bir sorun yoksa bir Syntax + Ok raporu verilir fakat, bir hata varsa o hataya ilişkin + ayrıntılı bilgi verilir. apachectl -t + komutuna eşdeğerdir.
    + +
    + +

    Aşağıdaki seçenek eski sürümlerde kullanılmaktaydı, fakat artık + kullanılmamaktadır.

    + +
    +
    startssl
    +
    httpd programını SSL destekli + başlatmak için, yapılandırma dosyanızı ilgili yönergeleri içermesi + için elden geçirmeli ve normal apachectl + start komutunu kullanmalısınız.
    +
    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/apachectl.xml b/docs/manual/programs/apachectl.xml index 8307ea73e36..a6f36207012 100644 --- a/docs/manual/programs/apachectl.xml +++ b/docs/manual/programs/apachectl.xml @@ -4,12 +4,12 @@ + - + apachectl /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/apachectl.xml.tr b/docs/manual/programs/apachectl.xml.tr new file mode 100644 index 00000000000..4b1802ac0d7 --- /dev/null +++ b/docs/manual/programs/apachectl.xml.tr @@ -0,0 +1,168 @@ + + + + + + + + + +Programlar + + apachectl - Apache HTTP Sunucusu Denetim Arayüzü + + +

    apachectl Apache Hiper Metin Aktarım + Protokolü (HTTP) sunucusu için bir denetim aracıdır. Sistem + yöneticisinin Apache httpd artalan + sürecini denetimi altında tutabilmesine yardımcı olmak amacıyla + tasarlanmıştır.

    + +

    apachectl iki kipte işleyebilir. + İlkinde, httpd komutu için basit + bir önyüz gibi davranarak, gerekli ortam değişkenlerini atar ve + belirtilen komut satırı seçenekleriyle + httpd sürecini başlatır. İkinci + kipte ise, apachectl bir SysV başlatma + betiği olarak start, + restart, + stop gibi tek sözcüklük basit argümanlar + alır ve bunları uygun sinyallere dönüştürerek + httpd'ye gönderir.

    + +

    Eğer Apache kurulumunuzda standart dışı dosya yolları kullanmışsanız, + httpd programına uygun yolları + atamak için apachectl betiğini elden + geçirmelisiniz. Bu arada gerek gördüğünüz + httpd komut satırı argümanlarını da + belirtebilirsiniz. Ayrıntılar için betik içindeki açıklamalara + bakınız.

    + +

    apachectl betiği başarı durumunda 0 + çıkış değeri ile döner. Bir hata durumunda ise sıfırdan farklı bir + değerle döner. Daha fazla bilgi için betik içindeki açıklamalara + bakınız.

    +
    +Apache'nin Başlatılması +Apache'nin Durdurulması +Yapılandırma Dosyaları +Platform Belgeleri +httpd + +
    Kullanım + +

    apachectl önyüz kipinde çalıştığında + httpd programının bütün komut + satırı argümanlarını kabul edebilir.

    + +

    apachectl [ httpd-argümanları ] +

    + +

    SysV başlatma betiği kipinde ise, + apachectl aşağıda tanımlanan basit, tek + sözcüklük komutları kabul eder.

    + +

    apachectl komut

    + +
    + +
    Seçenekler + +

    Burada sadece SysV başlatma betiğine özgü seçeneklere yer verilmiştir. + Diğer argümanlar için httpd kılavuz + sayfasına bakınız.

    + +
    +
    start
    +
    Apache httpd artalan sürecini + başlatır. Zaten çalışmaktaysa bir hata verir. apachectl + -k start komutuna eşdeğerdir.
    + +
    stop
    +
    Apache httpd artalan sürecini + durdurur. apachectl -k stop komutuna + eşdeğerdir.
    + +
    restart
    +
    Apache httpd artalan sürecini + yeniden başlatır; çalışmıyorsa çalıştırılır. Artalan sürecinin ölü + olmadığından emin olmak için yeniden başlatmadan önce + configtest seçeneği verilmiş gibi + yapılandırma dosyaları sınanır. apachectl -k + restart komutuna eşdeğerdir.
    + +
    fullstatus
    +
    mod_status üzerinden tam bir + durum raporu gösterir. Bunun çalışması için sunucuda + mod_status etkinleştirilmiş olmalı + ve sisteminizde lynx gibi bir metin + kipi HTTP tarayıcı kurulu olmalıdır. Durum raporuna erişmek için + kullanılacak adres betik içinde STATUSURL değişkenine + atanabilir.
    + +
    status
    +
    Özet halinde bir durum raporu gösterir. O an sunulmakta olan + isteklerin gösterilmemesi dışında + fullstatus seçeneği gibidir.
    + +
    graceful
    +
    Apache httpd artalan sürecini + nazikçe yeniden başlatır; çalışmıyorsa çalıştırılır. O an + hizmet sunmakta olan çocuk süreçleri hemen durdurmaması dışında + normal yeniden başlatma gibidir. Bir yan etki olarak eski günlük + dosyaları hemen kapatılmaz. Yani, günlük dosyalarını döndüren bir + betik kullanıyorsanız yenilerini başlatmadan önce eski dosyaların + tamamen kapandığından emin olmak için belli bir süre beklemeniz + gerekecektir. Artalan sürecinin ölü olmadığından emin olmak için + yeniden başlatmadan önce configtest + seçeneği verilmiş gibi yapılandırma dosyaları sınanır. + apachectl -k graceful komutuna + eşdeğerdir.
    + +
    graceful-stop
    +
    Apache httpd artalan sürecini + nazikçe durdurur. O an hizmet sunmakta olan çocuk süreçleri + hemen durdurmaması dışında normal durdurma gibidir. Bir yan etki + olarak eski günlük dosyaları hemen kapatılmaz. + apachectl -k graceful-stop komutuna + eşdeğerdir.
    + +
    configtest
    +
    Yapılandırma dosyasında sözdizimi denetimi yapılmasını sağlar. + Yapılandırma dosyaları çözümlenir ve bir sorun yoksa bir Syntax + Ok raporu verilir fakat, bir hata varsa o hataya ilişkin + ayrıntılı bilgi verilir. apachectl -t + komutuna eşdeğerdir.
    + +
    + +

    Aşağıdaki seçenek eski sürümlerde kullanılmaktaydı, fakat artık + kullanılmamaktadır.

    + +
    +
    startssl
    +
    httpd programını SSL destekli + başlatmak için, yapılandırma dosyanızı ilgili yönergeleri içermesi + için elden geçirmeli ve normal apachectl + start komutunu kullanmalısınız.
    +
    +
    +
    diff --git a/docs/manual/programs/apxs.html b/docs/manual/programs/apxs.html index b6d6d1debab..bcf33408ad5 100644 --- a/docs/manual/programs/apxs.html +++ b/docs/manual/programs/apxs.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: apxs.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: apxs.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: apxs.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/apxs.html.en b/docs/manual/programs/apxs.html.en index 6054cac678d..0b38b09efdf 100644 --- a/docs/manual/programs/apxs.html.en +++ b/docs/manual/programs/apxs.html.en @@ -1,25 +1,33 @@ - -apxs - APache eXtenSion tool - Apache HTTP Server +apxs - APache eXtenSion tool - Apache HTTP Server Version 2.2 - - + + + +
    <-

    apxs - APache eXtenSion tool

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    apxs - APache eXtenSion tool

    Available Languages:  en  | - ko 

    + ko  | + tr 

    apxs is a tool for building and installing extension @@ -76,7 +84,7 @@

    +

    See also

    top

    Synopsis

    @@ -323,8 +331,30 @@

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/apxs.html.ko.euc-kr b/docs/manual/programs/apxs.html.ko.euc-kr index e667e65a9f1..e4148a3cbd0 100644 --- a/docs/manual/programs/apxs.html.ko.euc-kr +++ b/docs/manual/programs/apxs.html.ko.euc-kr @@ -1,25 +1,33 @@ - -apxs - APache eXtenSion µµ±¸ - Apache HTTP Server +apxs - APache eXtenSion µµ±¸ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    apxs - APache eXtenSion µµ±¸

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    apxs - APache eXtenSion µµ±¸

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -77,7 +85,7 @@ +

    Âü°í

    top

    °³¿ä

    @@ -317,8 +325,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/apxs.html.tr.utf8 b/docs/manual/programs/apxs.html.tr.utf8 new file mode 100644 index 00000000000..547e8543c8a --- /dev/null +++ b/docs/manual/programs/apxs.html.tr.utf8 @@ -0,0 +1,382 @@ + + + + + +apxs - Apache Eklenti Aracı - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    apxs - Apache Eklenti Aracı

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    apxs, Apache Hiper Metin Aktarım + Protokolü (HTTP) sunucusu için ek modül derleme ve kurulum aracıdır. Bu + araç sayesinde, bir veya daha fazla kaynak veya nesne + dosyasından bir devingen paylaşımlı nesne (DSO - "Dynamic + Shared Object" kısaltması) derlemek ve bu nesneyi (modülü) Apache + sunucusuna çalışma anında mod_so + modülünün LoadModule yönergesi üzerinden yüklemek mümkün + olmaktadır.

    + +

    Bu eklenti mekanizmasını platformunuzda kullanmak için DSO desteğinin + olması ve httpd programının + mod_so modülünü içerecek şekilde + derlenmiş olması gerekir. Eğer bunlar mevcut değilse + apxs aracı durumu size bildirecektir. Bunu + aşağıdaki komutla kendiniz de sınayabilirsiniz:

    + +

    + $ httpd -l +

    + +

    mod_so modülü gösterilen listede yer + almalıdır. Bu gereksinimler sağlandığı takdirde + apxs aracı sayesinde DSO mekanizması + üzerinden kendi modüllerinizi kurmak suretiyle Apache sunucunuzun + işlevselliğini kolayca arttırabilirsiniz. Örnek bir uygulama:

    + +

    + $ apxs -i -a -c mod_foo.c
    + gcc -fpic -DSHARED_MODULE -I/dosya/yolu/apache/include -c mod_foo.c
    + ld -Bshareable -o mod_foo.so mod_foo.o
    + cp mod_foo.so /dosya/yolu/apache/modules/mod_foo.so
    + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/etc/httpd.conf'ta etkinleştiriliyor]
    + $ apachectl restart
    + /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    + [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
    + /dosya/yolu/apache/sbin/apachectl restart: httpd started
    + $ _ +

    + +

    dosya olarak bir C kaynak dosyası (.c), bir nesne dosyası + (.o) ve hatta bir kütüphane arşivi archive (.a) belirtebilirsiniz. + apxs aracı bu dosya uzantılarını + tanıdığından C dosyalarını derleme işleminden, arşiv ve nesne + dosyalarını ise doğrudan ilintileme işleminden geçirir. Fakat böyle + önceden derlenmiş nesne dosyalarını kullanırken, devingen paylaşımlı + nesne olarak kullanılmalarını sağlamak üzere konumdan bağımsız kod (PIC) + üretecek şekilde derlenmiş olduklarından emin olmalısınız. Örneğin + GCC'yi bunun için daima -fpic seçeneği ile + kullanmalısınız. Diğer C derleyiciler için, + apxs'in nesne dosyalarını derlerken + kullanacağı seçenekleri öğrenmek için o derleyicilerin kılavuz + sayfalarına bakınız.

    + +

    Apache'deki DSO desteği ile ilgili daha ayrıntılı bilgi edinmek için + mod_so belgesini okumakla yetinmeyip + src/modules/standard/mod_so.c kaynak dosyasını da + okuyunuz.

    +
    + +
    top
    +
    +

    Kullanım

    +

    apxs -g + [ -S isim=değer ] + -n modüladı

    + +

    apxs -q + [ -S isim=değer ] + sorgu ...

    + +

    apxs -c + [ -S isim=değer ] + [ -o dso-dosyası ] + [ -I include-dizini ] + [ -D isim=değer ] + [ -L lib-dizini ] + [ -l kütüphane-adı ] + [ -Wc,derleyici-seçenekleri ] + [ -Wl,ilintileyici-seçenekleri ] + dosya ...

    + +

    apxs -i + [ -S isim=değer ] + [ -n modüladı ] + [ -a ] + [ -A ] + dso-dosyası ...

    + +

    apxs -e + [ -S isim=değer ] + [ -n modüladı ] + [ -a ] + [ -A ] + dso-dosyası ...

    +
    top
    +
    +

    Seçenekler

    +

    Ortak Seçenekler

    +
    +
    -n modüladı
    +
    -i (kurulum) ve -g (şablon üretimi) + seçenekleri için modül ismi belirtmek amacıyla kullanılır. Bir modül + ismi belirtmek için bu seçeneği kullanın. + -g seçeneği için bu gereklidir. + -i seçeneği için ise araç, modül + ismini kaynağın ismine bakarak veya (son çare olarak) dosya isminden + tahmin etmeye çalışarak saptamaya çalışır.
    +
    + + +

    Sorgu Seçenekleri

    +
    +
    -q sorgu
    +
    apxs'in belli ayarlar hakkında + bilgisine başvurmak için bir sorgu gerçekleştirir. + sorgu olarak şu dizgelerden biri veya + birkaçı belirtilebilir: CC, CFLAGS, + CFLAGS_SHLIB, INCLUDEDIR, + LD_SHLIB, LDFLAGS_SHLIB, + LIBEXECDIR, LIBS_SHLIB, + SBINDIR, SYSCONFDIR, TARGET. + +

    Bu seçeneği ayarları öğrenmek için kullanın. Örneğin, Apache'nin C + başlık dosyalarının yerini kendi Makefile dosyalarınızın içinde + şöyle belirtebilirsiniz:

    +

    + INC=-I`apxs -q INCLUDEDIR` +

    +
    + + +

    Yapılandırma Seçenekleri

    +
    +
    -S isim=değer
    +
    Bu seçenek yukarıda açıklanan apxs + ayarlarını değiştirir.
    +
    + + +

    Şablon Üretme Seçenekleri

    +
    +
    -g
    +
    modüladı (-n seçeneğihe + bakınız) adında bir alt dizin oluşturur ve içine iki dosya + yerleştirir: Kendi modülünüzü oluşturabilmeniz için veya + apxs mekanizmaları ile hemen oynamaya + başlayabilmeniz için mod_modüladı.c adında bir + modül kaynak dosyası örneği ve bu modülü derleyip kurmayı + kolaylaştırmak için bir Makefile dosyası.
    +
    + + +

    DSO Derleme Seçenekleri

    +
    +
    -c
    +
    Bu seçenek derleme yapılacağını belirtir. Önce belirtilen C kaynak + dosyalarını (.c), nesne dosyalarını (.o) elde etmek için + derler. Sonra bunları kalan nesne dosyaları (.o ve .a) ile + ilintileyerek dso-dosyası adında bir devingen paylaşımlı + nesne oluşturur. Eğer -o seçeneği ile + modül ismi belirtilmemişse dosyalar arasındaki ilk dosyanın + ismine bakarak dosya ismi tahmin edilmeye çalışılır ve + mod_isim.so dosya adı bu isimden elde + edilir.
    + +
    -o dso-dosyası
    +
    Oluşturulacak devingen paylaşımlı nesnenin ismini belirtmek için + kullanılır. Modül ismi bu seçenekle belirtilmez ve dosya + listesinden bir isim tahmini de yapılamazsa son çare olarak + mod_unknown.so ismi kullanılır.
    + +
    -D isim=değer
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işlemine kendi tanımlarınızı belirtmek için kullanın.
    + +
    -I include-dizini
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işleminde kullanılmak üzere kendi başlık dosyalarınızı içeren + dizinleri arama yollarına eklemek için kullanın.
    + +
    -L lib-dizini
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işleminde kullanılmak üzere kendi kütüphane dizinlerinizi + arama yollarına eklemek için kullanın.
    + +
    -l kütüphane-adı
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işleminde kullanılmak üzere kendi kütüphanelerinizi arama + yollarına eklemek için kullanın.
    + +
    -Wc,derleyici-seçenekleri
    +
    Bu seçenek libtool --mode=compile komutuna doğrudan + seçenek aktarmak için kullanılır. Bu seçeneği yerel derleyiciniz için + gereken ek seçenekleri belirtmek için kullanın.
    + +
    -Wl,ilintileyici-seçenekleri
    +
    Bu seçenek libtool --mode=link komutuna doğrudan + seçenek aktarmak için kullanılır. Bu seçeneği yerel ilintileyiciniz + için gereken ek seçenekleri belirtmek için kullanın.
    +
    + + +

    DSO Kurulum ve Yapılandırma Seçenekleri

    + +
    +
    -i
    +
    Kurulum işlemini belirtir ve devingen olarak paylaşımlı nesneleri + sunucunun modules dizinine kurar.
    + +
    -a
    +
    İlgili LoadModule satırını + Apache'nin httpd.conf yapılandırma dosyasına özdevinimli + olarak ekleyerek veya böyle bir satır varsa bunu etkin kılarak modülü + etkinleştirir.
    + +
    -A
    +
    LoadModule + yönergesini daha sonra etkinleştirmek üzere satırın başına bir diyez + imi (#) yerleştirmesi dışında + -a seçeneği ile aynıdır.
    + +
    -e
    +
    Modülü kurmaya çalışmaksızın Apache'nin httpd.conf + yapılandırma dosyasını -i işlemine + benzer şekilde -a ve + -A seçenekleri ile düzenleme işlemini + belirtir.
    +
    + +
    top
    +
    +

    Örnekler

    +

    Apache'nin sunucu işlevselliğini genişletmek amacıyla kullanacağınız + mod_foo.c adında bir Apache modülünüz olduğunu varsayalım. + Öncelikle, C kaynak dosyasını, Apache sunucusuna çalışma anında + yüklenmeye uygun bir paylaşımlı nesne olarak derlemeniz gerekir. Bunu + sağlamak için şu komutları vermelisiniz:

    + +

    + $ apxs -c mod_foo.c
    + /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c
    + /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
    + $ _ +

    + +

    Bundan sonra, Apache yapılandırmanızın bu paylaşımlı nesneyi yüklemek + için bir LoadModule yönergesi içermesini + sağlamalısınız. apxs bu adımı + basitleştirmek amacıyla, paylaşımlı nesneyi sunucunun modules + dizinine özdevinimli olarak kurmak ve httpd.conf dosyasını + buna uygun olarak güncellemek için bir yol sağlar. Bu sonuç şöyle elde + edilebilir:

    + +

    + $ apxs -i -a mod_foo.la
    + /dosya/yolu/instdso.sh mod_foo.la /path/to/apache/modules
    + /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules + ... + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/conf/httpd.conf'da etkinleştiriliyor]
    + $ _ +

    + +

    Yapılandıma dosyasına (eğer yoksa) şu satır eklenir:

    + +

    + LoadModule foo_module modules/mod_foo.so +

    + +

    Bunu öntanımlı olarak iptal etmek isterseniz + -A seçeneğini kullanmanız gerekir:

    + +

    + $ apxs -i -A mod_foo.c +

    + +

    apxs mekanizmalarını hızlıca denemek + için örnek bir Apache modül şablonunu ve bir Makefile dosyasını şöyle + oluşturabilirsiniz:

    + +

    + $ apxs -g -n foo
    + Creating [DIR] foo
    + Creating [FILE] foo/Makefile
    + Creating [FILE] foo/modules.mk
    + Creating [FILE] foo/mod_foo.c
    + Creating [FILE] foo/.deps
    + $ _ +

    + +

    Ardından bu örnek modülü bir paylaşımlı nesne olarak derleyip Apache + sunucusuna yükleyebilirsiniz:

    + +

    + $ cd foo
    + $ make all reload
    + apxs -c mod_foo.c
    + /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c
    + /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
    + apxs -i -a -n "foo" mod_foo.la
    + /dosya/yolu/instdso.sh mod_foo.la /dosya/yolu/apache/modules
    + /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules + ... + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/conf/httpd.conf'ta etkinleştiriliyor]
    + apachectl restart
    + /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/etc/httpd.conf'ta etkinleştiriliyor]
    + apachectl restart
    + /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    + [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
    + /dosya/yolu/apache/sbin/apachectl restart: httpd started
    + $ _ +

    + +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/apxs.xml b/docs/manual/programs/apxs.xml index ba0e36afe54..997c7f1707a 100644 --- a/docs/manual/programs/apxs.xml +++ b/docs/manual/programs/apxs.xml @@ -4,12 +4,12 @@ + - + apxs /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/apxs.xml.tr b/docs/manual/programs/apxs.xml.tr new file mode 100644 index 00000000000..8b81d092ffa --- /dev/null +++ b/docs/manual/programs/apxs.xml.tr @@ -0,0 +1,353 @@ + + + + + + + + + +Programlar + +apxs - Apache Eklenti Aracı + + +

    apxs, Apache Hiper Metin Aktarım + Protokolü (HTTP) sunucusu için ek modül derleme ve kurulum aracıdır. Bu + araç sayesinde, bir veya daha fazla kaynak veya nesne + dosyasından bir devingen paylaşımlı nesne (DSO - "Dynamic + Shared Object" kısaltması) derlemek ve bu nesneyi (modülü) Apache + sunucusuna çalışma anında mod_so + modülünün LoadModule yönergesi üzerinden yüklemek mümkün + olmaktadır.

    + +

    Bu eklenti mekanizmasını platformunuzda kullanmak için DSO desteğinin + olması ve httpd programının + mod_so modülünü içerecek şekilde + derlenmiş olması gerekir. Eğer bunlar mevcut değilse + apxs aracı durumu size bildirecektir. Bunu + aşağıdaki komutla kendiniz de sınayabilirsiniz:

    + + + $ httpd -l + + +

    mod_so modülü gösterilen listede yer + almalıdır. Bu gereksinimler sağlandığı takdirde + apxs aracı sayesinde DSO mekanizması + üzerinden kendi modüllerinizi kurmak suretiyle Apache sunucunuzun + işlevselliğini kolayca arttırabilirsiniz. Örnek bir uygulama:

    + + + $ apxs -i -a -c mod_foo.c
    + gcc -fpic -DSHARED_MODULE -I/dosya/yolu/apache/include -c mod_foo.c
    + ld -Bshareable -o mod_foo.so mod_foo.o
    + cp mod_foo.so /dosya/yolu/apache/modules/mod_foo.so
    + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/etc/httpd.conf'ta etkinleştiriliyor]
    + $ apachectl restart
    + /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    + [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
    + /dosya/yolu/apache/sbin/apachectl restart: httpd started
    + $ _ +
    + +

    dosya olarak bir C kaynak dosyası (.c), bir nesne dosyası + (.o) ve hatta bir kütüphane arşivi archive (.a) belirtebilirsiniz. + apxs aracı bu dosya uzantılarını + tanıdığından C dosyalarını derleme işleminden, arşiv ve nesne + dosyalarını ise doğrudan ilintileme işleminden geçirir. Fakat böyle + önceden derlenmiş nesne dosyalarını kullanırken, devingen paylaşımlı + nesne olarak kullanılmalarını sağlamak üzere konumdan bağımsız kod (PIC) + üretecek şekilde derlenmiş olduklarından emin olmalısınız. Örneğin + GCC'yi bunun için daima -fpic seçeneği ile + kullanmalısınız. Diğer C derleyiciler için, + apxs'in nesne dosyalarını derlerken + kullanacağı seçenekleri öğrenmek için o derleyicilerin kılavuz + sayfalarına bakınız.

    + +

    Apache'deki DSO desteği ile ilgili daha ayrıntılı bilgi edinmek için + mod_so belgesini okumakla yetinmeyip + src/modules/standard/mod_so.c kaynak dosyasını da + okuyunuz.

    +
    +apachectl +httpd + +
    Kullanım +

    apxs -g + [ -S isim=değer ] + -n modüladı

    + +

    apxs -q + [ -S isim=değer ] + sorgu ...

    + +

    apxs -c + [ -S isim=değer ] + [ -o dso-dosyası ] + [ -I include-dizini ] + [ -D isim=değer ] + [ -L lib-dizini ] + [ -l kütüphane-adı ] + [ -Wc,derleyici-seçenekleri ] + [ -Wl,ilintileyici-seçenekleri ] + dosya ...

    + +

    apxs -i + [ -S isim=değer ] + [ -n modüladı ] + [ -a ] + [ -A ] + dso-dosyası ...

    + +

    apxs -e + [ -S isim=değer ] + [ -n modüladı ] + [ -a ] + [ -A ] + dso-dosyası ...

    +
    + +
    Seçenekler +
    Ortak Seçenekler +
    +
    -n modüladı
    +
    -i (kurulum) ve -g (şablon üretimi) + seçenekleri için modül ismi belirtmek amacıyla kullanılır. Bir modül + ismi belirtmek için bu seçeneği kullanın. + -g seçeneği için bu gereklidir. + -i seçeneği için ise araç, modül + ismini kaynağın ismine bakarak veya (son çare olarak) dosya isminden + tahmin etmeye çalışarak saptamaya çalışır.
    +
    +
    + +
    Sorgu Seçenekleri +
    +
    -q sorgu
    +
    apxs'in belli ayarlar hakkında + bilgisine başvurmak için bir sorgu gerçekleştirir. + sorgu olarak şu dizgelerden biri veya + birkaçı belirtilebilir: CC, CFLAGS, + CFLAGS_SHLIB, INCLUDEDIR, + LD_SHLIB, LDFLAGS_SHLIB, + LIBEXECDIR, LIBS_SHLIB, + SBINDIR, SYSCONFDIR, TARGET. + +

    Bu seçeneği ayarları öğrenmek için kullanın. Örneğin, Apache'nin C + başlık dosyalarının yerini kendi Makefile dosyalarınızın içinde + şöyle belirtebilirsiniz:

    + + INC=-I`apxs -q INCLUDEDIR` +
    +
    +
    + +
    Yapılandırma Seçenekleri +
    +
    -S isim=değer
    +
    Bu seçenek yukarıda açıklanan apxs + ayarlarını değiştirir.
    +
    +
    + +
    Şablon Üretme Seçenekleri +
    +
    -g
    +
    modüladı (-n seçeneğihe + bakınız) adında bir alt dizin oluşturur ve içine iki dosya + yerleştirir: Kendi modülünüzü oluşturabilmeniz için veya + apxs mekanizmaları ile hemen oynamaya + başlayabilmeniz için mod_modüladı.c adında bir + modül kaynak dosyası örneği ve bu modülü derleyip kurmayı + kolaylaştırmak için bir Makefile dosyası.
    +
    +
    + +
    DSO Derleme Seçenekleri +
    +
    -c
    +
    Bu seçenek derleme yapılacağını belirtir. Önce belirtilen C kaynak + dosyalarını (.c), nesne dosyalarını (.o) elde etmek için + derler. Sonra bunları kalan nesne dosyaları (.o ve .a) ile + ilintileyerek dso-dosyası adında bir devingen paylaşımlı + nesne oluşturur. Eğer -o seçeneği ile + modül ismi belirtilmemişse dosyalar arasındaki ilk dosyanın + ismine bakarak dosya ismi tahmin edilmeye çalışılır ve + mod_isim.so dosya adı bu isimden elde + edilir.
    + +
    -o dso-dosyası
    +
    Oluşturulacak devingen paylaşımlı nesnenin ismini belirtmek için + kullanılır. Modül ismi bu seçenekle belirtilmez ve dosya + listesinden bir isim tahmini de yapılamazsa son çare olarak + mod_unknown.so ismi kullanılır.
    + +
    -D isim=değer
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işlemine kendi tanımlarınızı belirtmek için kullanın.
    + +
    -I include-dizini
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işleminde kullanılmak üzere kendi başlık dosyalarınızı içeren + dizinleri arama yollarına eklemek için kullanın.
    + +
    -L lib-dizini
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işleminde kullanılmak üzere kendi kütüphane dizinlerinizi + arama yollarına eklemek için kullanın.
    + +
    -l kütüphane-adı
    +
    Bu seçenek doğrudan derleme komutlarına aktarılır. Bu seçeneği + derleme işleminde kullanılmak üzere kendi kütüphanelerinizi arama + yollarına eklemek için kullanın.
    + +
    -Wc,derleyici-seçenekleri
    +
    Bu seçenek libtool --mode=compile komutuna doğrudan + seçenek aktarmak için kullanılır. Bu seçeneği yerel derleyiciniz için + gereken ek seçenekleri belirtmek için kullanın.
    + +
    -Wl,ilintileyici-seçenekleri
    +
    Bu seçenek libtool --mode=link komutuna doğrudan + seçenek aktarmak için kullanılır. Bu seçeneği yerel ilintileyiciniz + için gereken ek seçenekleri belirtmek için kullanın.
    +
    +
    + +
    + DSO Kurulum ve Yapılandırma Seçenekleri +
    +
    -i
    +
    Kurulum işlemini belirtir ve devingen olarak paylaşımlı nesneleri + sunucunun modules dizinine kurar.
    + +
    -a
    +
    İlgili LoadModule satırını + Apache'nin httpd.conf yapılandırma dosyasına özdevinimli + olarak ekleyerek veya böyle bir satır varsa bunu etkin kılarak modülü + etkinleştirir.
    + +
    -A
    +
    LoadModule + yönergesini daha sonra etkinleştirmek üzere satırın başına bir diyez + imi (#) yerleştirmesi dışında + -a seçeneği ile aynıdır.
    + +
    -e
    +
    Modülü kurmaya çalışmaksızın Apache'nin httpd.conf + yapılandırma dosyasını -i işlemine + benzer şekilde -a ve + -A seçenekleri ile düzenleme işlemini + belirtir.
    +
    +
    +
    + +
    Örnekler +

    Apache'nin sunucu işlevselliğini genişletmek amacıyla kullanacağınız + mod_foo.c adında bir Apache modülünüz olduğunu varsayalım. + Öncelikle, C kaynak dosyasını, Apache sunucusuna çalışma anında + yüklenmeye uygun bir paylaşımlı nesne olarak derlemeniz gerekir. Bunu + sağlamak için şu komutları vermelisiniz:

    + + + $ apxs -c mod_foo.c
    + /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c
    + /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
    + $ _ +
    + +

    Bundan sonra, Apache yapılandırmanızın bu paylaşımlı nesneyi yüklemek + için bir LoadModule yönergesi içermesini + sağlamalısınız. apxs bu adımı + basitleştirmek amacıyla, paylaşımlı nesneyi sunucunun modules + dizinine özdevinimli olarak kurmak ve httpd.conf dosyasını + buna uygun olarak güncellemek için bir yol sağlar. Bu sonuç şöyle elde + edilebilir:

    + + + $ apxs -i -a mod_foo.la
    + /dosya/yolu/instdso.sh mod_foo.la /path/to/apache/modules
    + /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules + ... + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/conf/httpd.conf'da etkinleştiriliyor]
    + $ _ +
    + +

    Yapılandıma dosyasına (eğer yoksa) şu satır eklenir:

    + + + LoadModule foo_module modules/mod_foo.so + + +

    Bunu öntanımlı olarak iptal etmek isterseniz + -A seçeneğini kullanmanız gerekir:

    + + + $ apxs -i -A mod_foo.c + + +

    apxs mekanizmalarını hızlıca denemek + için örnek bir Apache modül şablonunu ve bir Makefile dosyasını şöyle + oluşturabilirsiniz:

    + + + $ apxs -g -n foo
    + Creating [DIR] foo
    + Creating [FILE] foo/Makefile
    + Creating [FILE] foo/modules.mk
    + Creating [FILE] foo/mod_foo.c
    + Creating [FILE] foo/.deps
    + $ _ +
    + +

    Ardından bu örnek modülü bir paylaşımlı nesne olarak derleyip Apache + sunucusuna yükleyebilirsiniz:

    + + + $ cd foo
    + $ make all reload
    + apxs -c mod_foo.c
    + /dosya/yolu/libtool --mode=compile gcc ... -c mod_foo.c
    + /dosya/yolu/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
    + apxs -i -a -n "foo" mod_foo.la
    + /dosya/yolu/instdso.sh mod_foo.la /dosya/yolu/apache/modules
    + /dosya/yolu/libtool --mode=install cp mod_foo.la /dosya/yolu/apache/modules + ... + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/conf/httpd.conf'ta etkinleştiriliyor]
    + apachectl restart
    + /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    + chmod 755 /dosya/yolu/apache/modules/mod_foo.so
    + [`foo' modülü /dosya/yolu/apache/etc/httpd.conf'ta etkinleştiriliyor]
    + apachectl restart
    + /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    + [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
    + /dosya/yolu/apache/sbin/apachectl restart: httpd started
    + $ _ +
    + +
    +
    diff --git a/docs/manual/programs/configure.html b/docs/manual/programs/configure.html index 9f569079b86..a8bdca0cc3d 100644 --- a/docs/manual/programs/configure.html +++ b/docs/manual/programs/configure.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: configure.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: configure.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: configure.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/configure.html.en b/docs/manual/programs/configure.html.en index 158058da4ec..f552e7ba490 100644 --- a/docs/manual/programs/configure.html.en +++ b/docs/manual/programs/configure.html.en @@ -1,25 +1,33 @@ - -configure - Configure the source tree - Apache HTTP Server +configure - Configure the source tree - Apache HTTP Server Version 2.2 - - + + + +
    <-

    configure - Configure the source tree

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    configure - Configure the source tree

    Available Languages:  en  | - ko 

    + ko  | + tr 

    The configure script configures the source tree @@ -29,12 +37,12 @@

    This script, included in the root directory of the source distribution, is for compilation on Unix and Unix-like systems - only. For other platforms, see the platform documentation.

    + only. For other platforms, see the platform documentation.

    +

    See also

    top

    Synopsis

    @@ -93,8 +101,8 @@
    --srcdir=DIR
    Defines directory DIR to be the source file directory. - Default is the directory, where configure is located, or the parent - directory ...
    + Default is the directory where configure is located, or + the parent directory.
    --silent
    Same as --quiet
    @@ -105,7 +113,7 @@ -

    Installation +

    Installation directories

    These options define the installation directory. The installation @@ -146,10 +154,10 @@

    Fine tuning of the installation directories

    - +

    For better control of the installation directories, use the options below. Please note that the directory defaults are set by - autoconf and be overwritten by the corresponding layout + autoconf and are overwritten by the corresponding layout setting.

    @@ -177,7 +185,7 @@ By default infodir is set to PREFIX/info. This option is currently unused. - +
    --libdir=DIR
    Install object code libraries in DIR. By default libdir is set to @@ -186,7 +194,7 @@
    --libexecdir=DIR
    Install the program executables (i.e., shared modules) in DIR. By default libexecdir is set to - EPREFIX/libexec.
    + EPREFIX/modules.
    --localstatedir=DIR
    Install modifiable single-machine data in DIR. @@ -195,16 +203,16 @@ autoconf and currently unused.
    --mandir=DIR
    -
    Install the man documentation in DIR. By default +
    Install the man documentation in DIR. By default mandir is set to EPREFIX/man.
    - +
    --oldincludedir=DIR
    Install C header files for non-gcc in DIR. By default oldincludedir is set to /usr/include. This option is offered by autoconf and currently unused.
    - +
    --sbindir=DIR
    Install the system administrator executables in DIR. Those are server programs like httpd, @@ -223,11 +231,11 @@
    Install read-only single-machine data like the server configuration files httpd.conf, mime.types, etc. in DIR. By default sysconfdir is set to - PREFIX/etc.
    -
    + PREFIX/conf. + - +

    System types

    These options are used to cross-compile the Apache HTTP Server to run on @@ -267,14 +275,14 @@ --enable-FEATURE=no.

    --enable-FEATURE[=ARG]
    -
    Include FEATURE. The default value for ARG +
    Include FEATURE. The default value for ARG is yes.
    --enable-MODULE=shared
    The corresponding module will be build as DSO module.
    --enable-MODULE=static
    -
    By default enabled modules are linked statically. You can force +
    By default enabled modules are linked statically. You can force this explicitly.
    @@ -290,7 +298,7 @@

    Some modules are compiled by default and have to be disabled explicitly. Use the following options to remove discrete modules from the compilation process.

    - +
    --disable-actions
    Disable action triggering on requests, which is provided by @@ -304,9 +312,9 @@
    Disable support for as-is filetypes, which is provided by mod_asis.
    -
    --disable-auth
    +
    --disable-auth-basic
    Disable user-based access control provided by - mod_auth. This module provides for HTTP Basic + mod_auth_basic. This module provides for HTTP Basic Authentication, where the usernames and passwords are stored in plain text files.
    @@ -314,18 +322,14 @@
    Disable the directory listing functionality provided by mod_autoindex.
    -
    --disable-access
    -
    Disable host-based access control provided by - mod_access.
    -
    --disable-cgi
    mod_cgi, which provides support for CGI scripts, is enabled by default when using a non-threaded MPM. Use this option to disable CGI support.
    - +
    --disable-cgid
    -
    When using the threaded MPMs worker or - perchild support for CGI scripts is provided by +
    When using the threaded MPMs worker + support for CGI scripts is provided by mod_cgid by default. To disable CGI support use this option.
    @@ -350,7 +354,7 @@ another protocol module instead. Don't disable this module unless you are really sure what you are doing.
    - Note: This module will always be linked statically. + Note: This module will always be linked statically.
    --disable-imagemap
    Disable support for server based imagemaps, which provided by @@ -366,10 +370,10 @@ to the server without this module.
    --disable-mime
    -
    mod_mime associates the requested filename's - extensions with the file's behavior and content (mime-type, - language, character set and encoding). Disabling the mapping of - file-extensions to MIME is normally not recommended.
    +
    mod_mime associates the requested + filename's extensions with the file's behavior and content + (mime-type, language, character set and + encoding). Disabling this module is normally not recommended.
    --disable-negotiation
    Disable content negotiation provided by @@ -397,15 +401,20 @@ below.

    -
    --enable-auth-anon
    +
    --enable-authn-anon
    Enable anonymous user access provided by - mod_auth_anon.
    + mod_authn_anon.
    -
    --enable-auth-dbm
    -
    mod_auth_dbm provides for HTTP Basic +
    --enable-authn-dbm
    +
    mod_authn_dbm provides for HTTP Basic Authentication, where the usernames and passwords are stored in DBM type database files. Use this option to enable the module.
    +
    --enable-authz-dbm
    +
    mod_authz_dbm provides for HTTP Basic + Authorization, where the usernames and groups are stored in DBM + type database files. Use this option to enable the module.
    +
    --enable-auth-digest
    Enable RFC2617 Digest authentication provided by mod_auth_digest. This module uses plain text files @@ -414,7 +423,7 @@
    --enable-authnz-ldap
    Enable LDAP based authentication provided by mod_authnz_ldap.
    - +
    --enable-cache
    Enable dynamic file caching provided by mod_cache. This experimental module may be @@ -446,7 +455,7 @@
    Enable DAV support for filesystem resources, which is provided by mod_dav_fs. This module is a provider for the mod_dav module, so you should also use - --enable-dav.
    + --enable-dav.
    --enable-dav-lock
    Enable mod_dav_lock which provides generic DAV @@ -463,7 +472,7 @@ mod_disk_cache.
    --enable-expires
    -
    Enable Expires header control provided by +
    Enable Expires header control provided by mod_expires.
    --enable-ext-filter
    @@ -495,8 +504,10 @@ mod_mem_cache.
    --enable-mime-magic
    -
    Enable automatical determining of MIME types, which is provided by - mod_mime_magic.
    +
    Enable + automatical determining of MIME + types, which is provided by + mod_mime_magic.
    --enable-isapi
    Enable the isapi extension support provided by @@ -609,7 +620,7 @@
    --enable-optional-fn-export
    Enable the example for an optional function exporter, which is - provided by mod_optional_fn_export.
    + provided by mod_optional_fn_export.
    --enable-optional-fn-import
    @@ -657,9 +668,9 @@ exactly one Multi-Processing Module. Otherwise the default MPM for your operating system will be taken. Possible MPMs are - beos, leader, - mpmt_os2, perchild, - prefork, threadpool and + beos, + mpmt_os2, + prefork, and worker.
    @@ -687,10 +698,20 @@

    will compile most modules and build them as DSO modules.

    +

    Caveat: + --enable-mods-shared=all does not actually build all + modules. To build all modules then, one might use:

    +

    + ./configure \
    + + --with-ldap \
    + --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache" +
    +

    - +
    --enable-modules=MODULE-LIST
    -
    This option behaves similar to --enable-mods-shared, +
    This option behaves similar to --enable-mods-shared, but will link the given modules statically. This mean, these modules will always be present while running httpd. They need not be loaded with LoadModule.
    @@ -720,7 +741,7 @@
    --with-PACKAGE[=ARG]
    Use the package PACKAGE. The default value for - ARG isyes.
    + ARG is yes.
    --without-PACKAGE
    Do not use the package PACKAGE. This is the same as @@ -735,15 +756,16 @@

    Specific packages

    --with-apr=DIR|FILE
    -
    The Apache Portable Runtime (APR) is part of the httpd +
    The Apache Portable Runtime (APR) + is part of the httpd source distribution and will automatically be build together with the HTTP server. If you want to use an already installed APR instead you have to tell configure the path to the apr-config script. You may set the absolute path and name or the directory to the installed APR. apr-config must - exists within this directory or the subdirectory + exist within this directory or the subdirectory bin.
    - +
    --with-apr-util=DIR|FILE
    The Apache Portable Runtime Utilities (APU) are part of the httpd source distribution and will automatically be build @@ -751,7 +773,7 @@ APU instead you have to tell configure the path to the apu-config script. You may set the absolute path and name or the directory to the installed APU. apu-config must - exists within this directory or the subdirectory + exist within this directory or the subdirectory bin.
    --with-ssl=DIR
    @@ -767,13 +789,14 @@

    Several features of the Apache HTTP Server, including - mod_authn_dbm and mod_rewrite's DBM + mod_authn_dbm, mod_authz_dbm, and + mod_rewrite's DBM RewriteMap use simple key/value databases for quick lookups of information. SDBM is included in the APU, so this database is always available. If you would like to use other database types, use the following options to enable them:

    - +
    --with-gdbm[=path]
    If no path is specified, configure will @@ -784,11 +807,11 @@ path/include for the relevant files. Finally, the path may specify specific include and library paths separated by a colon.
    - +
    --with-ndbm[=path]
    -
    Like --with-gdbm, bur searches for a New DBM +
    Like --with-gdbm, but searches for a New DBM installation.
    - +
    --with-berkeley-db[=path]
    Like --with-gdbm, but searches for a Berkeley DB installation.
    @@ -804,7 +827,7 @@
    - +

    Options for support programs

    --enable-static-support
    @@ -818,7 +841,8 @@ uid and gid for spawned processes. Do not use this option unless you understand all the security implications of running a suid binary on your server. Further options - to configure suexec are described below.
    + to configure suexec are described below. +

    It is possible to create a statically linked binary of a single support program by using the following options:

    @@ -836,7 +860,7 @@
    --enable-static-htdigest
    Build a statically linked version of htdigest.
    - +
    --enable-static-htpasswd
    Build a statically linked version of htpasswd.
    @@ -847,20 +871,21 @@
    Build a statically linked version of rotatelogs.
    -

    suexec configuration options

    +

    suexec configuration options

    +

    The following options are used to fine tune the behavior of suexec. See Configuring and installing suEXEC for further information.

    --with-suexec-bin
    -
    This defines the path to suexec binary. Default is - --sbindir (see Fine - tuning of installation directories).
    +
    This defines the path to suexec binary. + Default is --sbindir (see Fine tuning of installation + directories).
    --with-suexec-caller
    This defines the user allowed to call suexec. - It should be the same as the user under which httpd - normally runs.
    + It should be the same as the user under which + httpd normally runs.
    --with-suexec-docroot
    This defines the directory tree under which suexec access is allowed for executables. Default value is @@ -922,13 +947,35 @@
    LDFLAGS
    Set linker flags, e.g. -Llibdir if you have - libraries in a nonstandard directory libdir.
    + libraries in a nonstandard directory libdir.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/configure.html.ko.euc-kr b/docs/manual/programs/configure.html.ko.euc-kr index f6156ac5408..f9306299d97 100644 --- a/docs/manual/programs/configure.html.ko.euc-kr +++ b/docs/manual/programs/configure.html.ko.euc-kr @@ -1,25 +1,33 @@ - -configure - ¼ҽº Ʈ¸®¸¦ ±¸¼ºÇѴÙ - Apache HTTP Server +configure - ¼ҽº Ʈ¸®¸¦ ±¸¼ºÇѴÙ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    configure - ¼ҽº Ʈ¸®¸¦ ±¸¼ºÇѴÙ

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    configure - ¼ҽº Ʈ¸®¸¦ ±¸¼ºÇѴÙ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -36,7 +44,7 @@ +

    Âü°í

    top

    °³¿ä

    @@ -354,8 +362,8 @@
    ÁÖÀÇ: ÀÌ ¸ðµâÀº Ç׻ó Á¤ÀûÀ¸·Î ¸µũµȴÙ. -
    --disable-imap
    -
    mod_imapÀÌ Á¦°øÇϴ ¼­¹ö±â¹Ý imagemap +
    --disable-imagemap
    +
    mod_imagemapÀÌ Á¦°øÇϴ ¼­¹ö±â¹Ý imagemap ±â´ÉÀ» »ç¿ëÇÏÁö ¾ʴ´Ù.
    --disable-include
    @@ -923,8 +931,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/configure.html.tr.utf8 b/docs/manual/programs/configure.html.tr.utf8 new file mode 100644 index 00000000000..6d1fd5022a0 --- /dev/null +++ b/docs/manual/programs/configure.html.tr.utf8 @@ -0,0 +1,1048 @@ + + + + + +configure - kaynak ağacını yapılandırır - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    configure - kaynak ağacını yapılandırır

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    configure betiği, Apache HTTP Sunucusunun kaynak kodlarını + belli bir platform için yapılandırmakta ve derlemekte kullanılır. + Sunucuyu kişisel gereksinimlerinize uygun şekilde derlemek için çeşitli + seçeneklere sahiptir.

    + +

    Bu betik Apache HTTP Sunucusu kaynak paketinin kök dizininde bulunur ve + sadece Unix ve benzeri sistemlerde kullanılabilir. Kaynak paketinin + diğer platformalarda yapılandırılması ve derlenmesi hakkında bilgi + edinmek için platform belgelerine bakınız.

    +
    + +
    top
    +
    +

    Komut Satırı

    +

    configure betiğini kaynak paketinin kök dizininden başka + bir yere kopyalayıp çalıştırmamalısınız.

    + +

    ./configure [seçenek]... + [değişken=değer]...

    + +

    CC, CFLAGS gibi ortam değişkenlerini + değişken=değer atamaları biçiminde + kullanabilirsiniz. Kullanışlı değişkenlerin bazıları aşağıda açıklanmıştır.

    +
    top
    +
    +

    Seçenekler

    + + +

    Yapılandırma seçenekleri

    + +

    Aşağıdaki seçenekler configure betiğinin kendi davranışını + belirlemekte kullanılır.

    + +
    +
    -C
    +
    --config-cache
    +
    --cache-file=config.cache için bir kısaltmadır.
    + +
    --cache-file=dosya
    +
    Sınama sonuçları dosya dosyasında saklanır. + Bu seçenek açıkça belirtilmedikçe işlevsizdir.
    + +
    -h
    +
    --help [short|recursive]
    +
    Yardım metnini basar ve çıkar. short değeriyle sadece + bu pakete özgü seçenekler listelenir. recursive değeriyle + ise paketin içindeki tüm paketler için kısa bir yardım metni + basılır.
    + +
    -n
    +
    --no-create
    +
    configure betiği normal olarak çalışır fakat herhangi + bir çıktı dosyası üretmez. Derleme için Makefile + dosyalarını üretmeksizin sınamaların sonuçlarını görmek için + yararlıdır.
    + +
    -q
    +
    --quiet
    +
    Yapılandırma sürecinde checking ... iletilerini basmaz. +
    + +
    --srcdir=dizin
    +
    dizin dizinini kaynak dosyaları dizini olarak + tanımlar. configure betiğinin bulunduğu dizin veya bir + üst dizin öntanımlıdır.
    + +
    --silent
    +
    --quiet ile aynı.
    + +
    -V
    +
    --version
    +
    Telif hakkı bilgilerini gösterir ve çıkar.
    +
    + + +

    Kurulum dizinleri

    + +

    Bu seçenekler kurulum dizinlerini tanımlar. Kurulum dizinleri seçilmiş + yerleşime bağımlıdır.

    + +
    +
    --prefix=PREFIX
    +
    Mimariden bağımsız dosyalar PREFIX dizininin + altına kurulur. /usr/local/apache2 öntanımlı kurulum + dizinidir.
    + +
    --exec-prefix=EPREFIX
    +
    Mimariye bağımlı dosyalar EPREFIX dizininin + altına kurulur. Bunun için PREFIX dizini + öntanımlı kurulum dizinidir.
    +
    + +

    Öntanımlı olarak, make install tüm dosyaların + /usr/local/apache2/bin, /usr/local/apache2/lib + gibi dizinlere kurulmasını sağlar. Kurulum dizini önekini örneğin, + --prefix=$HOME şeklinde belirterek kurulumun başka bir yere + yapılmasını sağlayabilirsiniz.

    + +

    Bir dizin yerleşimi tanımlamak

    +
    +
    --enable-layout=LAYOUT
    +
    Kaynak kodu ve derleme betikleri kurulum ağacının + LAYOUT yerleşimine dayalı olduğu varsayımıyla + yapılandırılır. Bu seçenek sayesinde Apache HTTP Sunucusu kurulumu + içinde her dosya türü için farklı bir yer belirleyebilirsiniz. + config.layout dosyasında böyle yapılandırma örnekleri + vardır. Örnekleri izleyerek kendi yapılandırmanızı + oluşturabilirsiniz. Bu dosyada örneğin FOO isimli + yerleşim <Layout FOO>...</Layout> bölümü + içinde düzenlenmiştir ve her yerleşim için böyle ayrı bir bölüm + vardır. Öntanımlı yerleşim Apache’dir.
    +
    + + +

    Kurulum dizinlerinde ince ayar

    + + +

    Kurulum dizinlerini daha iyi denetim altında tutmak için aşağıdaki + seçenekler kullanılır. Lütfen, dizin öntanımlılarının + autoconf tarafından tanımlandığına ve seçilen yerleşim + ayarlarının bunları yerini aldığına dikkat ediniz.

    + +
    + +
    --bindir=dizin
    +
    Kullanıcı tarafından çalıştırılabilen dosyalar + dizin dizinine kurulur. Bunlar + htpasswd, dbmmanage gibi site + yönetimi için yararlı destek programlarıdır. Öntanımlı olarak bu + dosyalar EPREFIX/bin dizinine kurulur.
    + +
    --datadir=dizin
    +
    Mimariden bağımsız salt okunur veriler dizin + dizinine kurulur. Bunların öntanımlı kurulum dizini + PREFIX/share dizinidir. Bu seçenek + autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --includedir=dizin
    +
    C başlık dosyaları dizin dizinine kurulur. + Bunların öntanımlı kurulum dizini + PREFIX/include dizinidir.
    + +
    --infodir=dizin
    +
    Info belgeleri dizin dizinine kurulur. + Bunların öntanımlı kurulum dizini + PREFIX/info dizinidir. Bu seçenek şimdilik + kullanılmamıştır.
    + +
    --libdir=dizin
    +
    Nesne kod kütüphaneleri dizin dizinine + kurulur. Bunların öntanımlı kurulum dizini + PREFIX/lib dizinidir.
    + +
    --libexecdir=dizin
    +
    Paylaşımlı modüller gibi program dosyaları + dizin dizinine kurulur. Öntanımlı olarak + libexecdir bu dizini + EPREFIX/modules olarak tanımlar.
    + +
    --localstatedir=dizin
    +
    Düzenlenebilir tek makinelik veri dizin + dizinine kurulur. Öntanımlı olarak localstatedir bu + dizini PREFIX/var olarak tanımlar. Bu + seçenek autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --mandir=dizin
    +
    Kılavuz sayfaları dizin dizinine kurulur. + Öntanımlı olarak mandir bu dizini + EPREFIX/man olarak tanımlar.
    + +
    --oldincludedir=dizin
    +
    GCC harici C başlık dosyaları dizin dizinine + kurulur. Öntanımlı olarak oldincludedir bu dizini + /usr/include olarak tanımlar. Bu seçenek + autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --sbindir=dizin
    +
    Sistem yöneticisi tarafından kullanılabilen programlar + dizin dizinine kurulur. Bunlar + httpd, apachectl, + suexec gibi Apache HTTP Sunucusunu çalıştırmak + için gereken programlardır. Öntanımlı olarak sbindir bu + dizini EPREFIX/sbin olarak tanımlar.
    + +
    --sharedstatedir=dizin
    +
    Mimariye bağımlı düzenlenebilir veriler + dizin dizinine kurulur. Öntanımlı olarak + sharedstatedir bu dizini + PREFIX/com olarak tanımlar. Bu seçenek + autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --sysconfdir=dizin
    +
    httpd.conf, mime.types gibi tek + makinelik salt okunur sunucu yapılandırma dosyaları + dizin dizinine kurulur. Öntanımlı olarak + sysconfdir bu dizini PREFIX/conf + olarak tanımlar.
    +
    + + + +

    Sistem türleri

    + +

    Bu seçenekleri Apache HTTP Sunucusunu başka bir platformda çalıştırmak + üzere çapraz derleme yaparken kullanılır. Normal durumlarda sunucu + derlendiği platformda çalıştırıldığından bu seçenekler kullanılmaz.

    + +
    +
    --build=derleme-ortamı
    +
    Derleme araçlarının derleneceği sistemin sistem türünü tanımlar. + config.guess betiği ile elde edilen sonuç + öntanımlıdır.
    + +
    --host=çalışma-ortamı
    +
    Sunucunun çalışacağı sistemin sistem türünü tanımlar. Öntanımlı + sistem türü derleme-ortamı’dır.
    + +
    --target=hedef-ortam
    +
    Derleyicileri hedef-ortam sistem türü için + yapılandırır. Öntanımlı sistem türü + çalışma-ortamı’dır. Bu seçenek + autoconf tarafından atanır ve Apache HTTP Sunucusu için + gerekli değildir.
    +
    + + +

    Seçimlik özellikler

    + +

    Bu seçenekler HTTP sunucunuzun sahip olmasını istediğiniz özelliklerin + hassas olarak ayarlanmasını sağlar.

    + +

    Genel sözdizimi

    +

    Bir özelliği etkin kılmak veya iptal etmek için genellikle şu + sözdizimi kullanılır:

    + +
    +
    --disable-özellik
    +
    Sunucu özellik özelliğine sahip olmaz. Bu + seçenek--enable-özellik=no seçeneğine + eşdeğerdir.
    + +
    --enable-özellik[=değer]
    +
    Sunucu özellik özelliğine sahip olur. + değer belirtilmediği takdirde + yes (evet) öntanımlıdır.
    + +
    --enable-modül=shared
    +
    Belirtilen modül DSO modülü olarak derlenir.
    + +
    --enable-modül=static
    +
    Öntanımlı olarak etkin olan modüller durağan ilintilenir. Bunu bu + seçenekle alenen zorlayabilirsiniz.
    +
    + +

    Bilginize

    +

    --enable-filanca seçeneğinin varlığı + configure betiğinin filanca diye + bir modül var olmasa bile bundan şikayetçi olmasına sebep olmaz. Bu + bakımdan dikkatli olunuz.

    +
    + + + +

    Öntanımlı olarak etkin modüller

    +

    Bazı modüller öntanımlı olarak derlendiğinden iptal edilmek istenirse + bunun açıkça belirtilmesi gerekir. Aşağıdaki seçenekler bu tür + modüllerin diğerlerinden bağımsız olarak derlenmemesini sağlar.

    + +
    +
    --disable-actions
    +
    mod_actions modülü tarafından sağlanan ve + isteklerle tetiklenen eylemleri iptal eder.
    + +
    --disable-alias
    +
    mod_alias modülü tarafından sağlanan, isteklerin + farklı dosya sistemi bölümleriyle eşlenmesi iptal edilir.
    + +
    --disable-asis
    +
    mod_asis modülü tarafından sağlanan kendinden + HTTP başlıklı dosya türü desteğini iptal eder.
    + +
    --disable-auth-basic
    +
    mod_auth_basic modülü tarafından sağlanan + kullanıcıya dayalı erişim denetimi iptal edilir. Bu modül, kullanıcı + isminin ve parolasının salt metin dosyalarda saklandığı Temel HTTP + Kimlik Doğrulaması için kullanılır.
    + +
    --disable-autoindex
    +
    mod_autoindex modülü tarafından sağlanan dizin + içerik listelemesini iptal eder.
    + +
    --disable-cgi
    +
    CGI betiklerine destek sağlayan mod_cgi, çok + evreli olmayan MPM kullanıldığında öntanımlı olarak etkin kılınır. + CGI desteğini iptal etmek için bu seçeneği kullanın.
    + +
    --disable-cgid
    +
    worker çok evreli MPM’i kullanılırken CGI + betikleri için desteği öntanımlı olarak mod_cgid + modülü sağlar. CGI desteğini iptal etmek için bu seçeneği + kullanın.
    + +
    --disable-charset-lite
    +
    mod_charset_lite modülü tarafından sağlanan + karakter kümesi dönüşümleri iptal edilir. Bu modül sadece EBCDIC + sistemlerinde öntanımlı olarak kurulur.
    + +
    --disable-dir
    +
    mod_dir modülü tarafından sağlanan dizin + isteklerine destek iptal edilir.
    + +
    --disable-env
    +
    mod_env modülü tarafından sağlanan ortam + değişkenlerine destek iptal edilir.
    + + +
    --disable-http
    +
    HTTP protokolüne destek iptal edilir. http modülü + en temel modüldür ve sunucunun bir HTTP sunucusu olarak çalışmasını + sağlar. Sadece, HTTP protokolü yerine başka bir protokol kullanmak + isterseniz bu seçeneği kullunın. Ne yaptığınızdan gerçekten + emin olamıyorsanız bu desteği asla iptal etmeyin. +
    + Dikkat: Bu modül ana kodla daima durağan ilintilidir.
    + +
    --disable-imagemap
    +
    mod_imagemap modülü tarafından sağlanan resim + eşlemlerine destek iptal edilir.
    + +
    --disable-include
    +
    mod_include modülü tarafından sağlanan SSI + sayfaları desteği iptal edilir.
    + +
    --disable-log-config
    +
    mod_log_config modülü tarafından sağlanan günlük + kayıtları yapılandırması iptal edilir. Bu modül olmaksızın sunucu + yapılan isteklerin günlük kayıtlarını tutamaz.
    + +
    --disable-mime
    +
    mod_mime modülü istenen dosyanın uzantısına + bakarak dosya içeriğinin (MIME + türü, dil, karakter kümesi ve kodlama) nasıl ele + alınacağını belirler. Bu modülün iptal edilmesi önerilmez.
    + +
    --disable-negotiation
    +
    mod_negotiation modülü tarafından sağlanan içerik + dili uzlaşımı iptal edilir.
    + +
    --disable-setenvif
    +
    mod_setenvif modülü tarafından sağlanan + başlıklarla ilgili ortam değişkenlerine dayalı destek iptal + edilir.
    + +
    --disable-status
    +
    mod_status modülü tarafından sağlanan süreç/evre + izleme iptal edilir.
    + +
    --disable-userdir
    +
    mod_userdir modülü tarafından sağlanan, + isteklerin kullanıcıya özel dizinlere eşlenmesi iptal edilir.
    +
    + + +

    Öntanımlı olarak etkin olmayan modüller

    + + +

    Bazı modüller öntanımlı olarak derlendiği halde açıkça istenmedikçe + veya most ya da all anahtar sözcükleri + kullanılmadıkça etkin kılınmazlar (bu konu, aşağıda --enable-mods-shared + seçeneğinde daha ayrıntılı ele alınmıştır). Bu modülleri + etkinleştirmek için aşağıdaki seçenekleri kullanabilirsiniz.

    + +
    +
    --enable-authn-anon
    +
    mod_authn_anon modülünün sağladığı anonim + kullanıcı erişimi etkin kılınır.
    + +
    --enable-authn-dbm
    +
    mod_authn_dbm modülü kullanıcı isimlerinin ve + parolalarının DBM türü veritabanı dosyalarında saklandığı HTTP Temel + Kimlik Kanıtlaması için destek sağlar. Bu seçeneği bu modülü etkin + kılmak için kullanabilirsiniz.
    + +
    --enable-authz-dbm
    +
    mod_authz_dbm modülü kullanıcı isimlerinin ve + parolalarının DBM türü veritabanı dosyalarında saklandığı HTTP Temel + Kimlik Kanıtlaması için destek sağlar. Bu seçeneği bu modülü etkin + kılmak için kullanabilirsiniz.
    + +
    --enable-auth-digest
    +
    mod_auth_digest modülü tarafından sağlanan + RFC2617 Özet Kimlik Kanıtlaması etkin kılınır. Bu modül delilleri + salt metin dosyalarda saklar.
    + +
    --enable-authnz-ldap
    +
    mod_authnz_ldap modülü tarafından sağlanan LDAP’a + Dayalı Kimlik Kanıtlaması etkin kılınır.
    + +
    --enable-cache
    +
    mod_cache modülü tarafından sağlanan devingen + dosya önbelleklemesi etkin kılınır. Bu deneysel modülün kullanımı, + aşırı yüklü sunucularda ya da önbellekli vekillerde ilginç sonuçlar + verebilir. Bunun yanında en azından bir saklama alanı yönetim modülü + (örn, mod_disk_cache veya + mod_mem_cache) gerekebilir.
    + +
    --enable-cern-meta
    +
    mod_cern_meta modülü tarafından sağlanan CERN + türü temel veri dosyalarına destek etkin kılınır.
    + +
    --enable-charset-lite
    +
    mod_charset_lite modülü tarafından sağlanan + karakter kümesi dönüşümleri etkin kılınır. Bu modül sadece EBCDIC + sistemlerinde öntanımlı olarak etkindir. Diğer sistemlerde gerekirse + alenen etkin kılınması gerekir.
    + +
    --enable-dav
    +
    mod_dav modülü tarafından sağlanan WebDAV + protokolü desteği etkin kılınır. Dosya sistemi özkaynaklarına destek + için mod_dav_fs modülü de gerekir ve bu seçenekle o + da etkin kılınır.
    + Dikkat: mod_dav sadece http protokolü + modülü ile birlikte kullanılabilir.
    + +
    --enable-dav-fs
    +
    mod_dav_fs modülü tarafından sağlanan WebDAV + protokolünün dosya sistemi özkaynaklarına erişim desteği etkin + kılınır. Bu modül mod_dav modülü için destek + sağlar. Bu bakımdan, mod_dav modülünü de etkin + kılmak için --enable-dav seçeneğini de + kullanmalısınız.
    + +
    --enable-dav-lock
    +
    mod_dav_lock modülü tarafından sağlanan geri + destek modüllerine temel DAV kilitleme desteği etkin kılınır. Bu + modülün işlevsel olabilmesi için en azından mod_dav + modülünün etkin olması gerekir, dolayısıyla bu seçeneği + --enable-dav ile birlikte kullanmalısınız.
    + +
    --enable-deflate
    +
    mod_deflate modülü tarafından sağlanan + sıkıştırılmış aktarım kodlaması etkin kılınır.
    + +
    --enable-disk-cache
    +
    mod_disk_cache modülü tarafından sağlanan diskte + önbellekleme etkin kılınır.
    + +
    --enable-expires
    +
    mod_expires modülü tarafından sağlanan + Expires başlığıyla denetim etkin kılınır.
    + +
    --enable-ext-filter
    +
    mod_ext_filter modülü tarafından sağlanan harici + süzgeç desteği etkin kılınır.
    + +
    --enable-file-cache
    +
    mod_file_cache modülü tarafından sağlanan dosya + önbelleklemesi etkin kılınır.
    + +
    --enable-headers
    +
    mod_headers modülü tarafından sağlanan HTTP + başlıkları denetimi etkin kılınır.
    + +
    --enable-info
    +
    mod_info modülü tarafından sağlanan sunucu + bilgileri etkin kılınır.
    + +
    --enable-ldap
    +
    mod_ldap modülü tarafından sağlanan LDAP + önbelleklemesi ve bağlantı havuzu hizmetleri etkin kılınır.
    + +
    --enable-logio
    +
    mod_logio modülü tarafından sağlanan başlıklarda + bulunan girdi ve çıktı bayt sayılarının günlüklenmesi etkin + kılınır.
    + +
    --enable-mem-cache
    +
    mod_mem_cache modülü tarafından sağlanan bellekte + önbellekleme etkin kılınır.
    + +
    --enable-mime-magic
    +
    mod_mime_magic modülü tarafından sağlanan + MIME türlerinin kendiliğinden + belirlenmesi desteği etkin kılınır.
    + +
    --enable-isapi
    +
    mod_isapi modülü tarafından sağlanan isapi + eklenti desteği etkin kılınır.
    + +
    --enable-proxy
    +
    mod_proxy modülü tarafından sağlanan + vekil/ağ-geçidi işlevselliği etkin kılınır. AJP13, + CONNECT, FTP, HTTP ve + dengeleyici vekil yetenekleri ayrı olarak + mod_proxy_ajp, mod_proxy_connect, + mod_proxy_ftp, mod_proxy_http ve + mod_proxy_balancer modülleri tarafından sağlanır. + Bu beş modül bu seçenekle kendiliğinden etkin olur.
    + +
    --enable-proxy-ajp
    +
    mod_proxy_ajp modülü tarafından sağlanan + AJP13 (Apache JServ Protokolü 1.3) için vekil desteği + etkin kılınır. Bu modül mod_proxy modülünün bir + eklentisidir, dolayısıyla bu seçeneği --enable-proxy + seçeneği ile birlikte kullanmalısınız.
    + +
    --enable-proxy-balancer
    +
    mod_proxy_balancer modülü tarafından sağlanan + AJP13, FTP ve HTTP + protokollerine yük dengeleme desteği etkin kılınır. Bu modül + mod_proxy modülünün bir eklentisidir, dolayısıyla + bu seçeneği --enable-proxy seçeneği ile birlikte + kullanmalısınız.
    + +
    --enable-proxy-connect
    +
    mod_proxy_connect modülü tarafından sağlanan + CONNECT isteklerine vekil desteği etkin kılınır. Bu + modül mod_proxy modülünün bir eklentisidir, + dolayısıyla bu seçeneği --enable-proxy seçeneği ile + birlikte kullanmalısınız.
    + +
    --enable-proxy-ftp
    +
    mod_proxy_ftp modülü tarafından sağlanan + FTP isteklerine vekil desteği etkin kılınır. Bu modül + mod_proxy modülünün bir eklentisidir, dolayısıyla + bu seçeneği --enable-proxy seçeneği ile birlikte + kullanmalısınız.
    + +
    --enable-proxy-http
    +
    mod_proxy_http modülü tarafından sağlanan + HTTP isteklerine vekil desteği etkin kılınır. Bu modül + mod_proxy modülünün bir eklentisidir, dolayısıyla + bu seçeneği --enable-proxy seçeneği ile birlikte + kullanmalısınız.
    + +
    --enable-rewrite
    +
    mod_rewrite modülü tarafından sağlanan kurallara + dayalı URL kurgulaması etkin kılınır.
    + +
    --enable-so
    +
    mod_so modülü tarafından sağlanan DSO yeteneği + etkin kılınır. --enable-mods-shared seçeneği bu + seçeneği de etkin kılar.
    + +
    --enable-speling
    +
    mod_speling modülü tarafından sağlanan URL + yanlışlarını düzeltme desteği etkin kılınır.
    + +
    --enable-ssl
    +
    mod_ssl modülü tarafından sağlanan SSL/TLS + şifreleme desteği etkin kılınır.
    + +
    --enable-unique-id
    +
    mod_unique_id modülü tarafından sağlanan her + isteğe bir eşsiz kimlik atama desteği etkin kılınır.
    + +
    --enable-usertrack
    +
    mod_usertrack modülü tarafından sağlanan + kullanıcı oturumunu izleme desteği etkin kılınır.
    + +
    --enable-vhost-alias
    +
    mod_vhost_alias modülü tarafından sağlanan + kitlesel sanal barındırma desteği etkin kılınır.
    +
    + + +

    Geliştiriciler için modüller

    + + +

    Aşağıdakiler geliştiricilerin yaptıklarını sınamalar için yararlı + modülleri etkinleştiren seçeneklerdir. Bu seçenekler öntanımlı olarak + etkin değildir. Bu modüllere ihtiyacınız olup olmadığı konusunda bir + fikriniz yoksa bu bölümü atlayabilirsiniz.

    + +
    + +
    --enable-bucketeer
    +
    mod_bucketeer modülü tarafından sağlanan veri + kümelerine müdahale süzgeci etkin kılınır.
    + + +
    --enable-case-filter
    +
    mod_case_filter modülünün sağladığı çıktıda büyük + harfe dönüşüm süzgeci örneği etkin kılınır.
    + + +
    --enable-case-filter-in
    +
    mod_case_filter_in modülünün sağladığı girdide büyük + harfe dönüşüm süzgeci örneği etkin kılınır.
    + +
    --enable-echo
    +
    mod_echo modülünün sağladığı ECHO sunucusu etkin + kılınır.
    + +
    --enable-example
    +
    Örnek ve demo modülü mod_example etkin + kılınır.
    + + +
    --enable-optional-fn-export
    +
    mod_optional_fn_export modülünün sağladığı seçimlik + işlev ihraç örneği etkin kılınır.
    + + +
    --enable-optional-fn-import
    +
    mod_optional_fn_import modülünün sağladığı seçimlik + işlev ithal örneği etkin kılınır.
    + + +
    --enable-optional-hook-export
    +
    mod_optional_hook_export modülünün sağladığı seçimlik + kanca işlev ihraç örneği etkin kılınır.
    + + +
    --enable-optional-hook-import
    +
    mod_optional_hook_import modülünün sağladığı seçimlik + kanca işlev ithal örneği etkin kılınır.
    +
    + + +

    MPM'ler ve üçüncü parti modüller

    +

    Gereken çok süreçlilik modüllerini ve üçüncü parti modülleri etkin + kılmak için şu seçenekler kullanılır:

    + +
    +
    --with-module=modül-türü:modül-dosyası[,modül-türü:modül-dosyası]
    +

    Durağan ilintili modüller listesine belirtilen modülleri ekler. + Modül kaynak dosyası modül-dosyası, önce + Apache HTTP Sunucusu kaynak ağacı altında + modules/modül-türü alt dizininde aranır. + Modül orada değilse configure betiği + modül-dosyası ile bir mutlak dosya yolu + belirtildiği varsayımıyla kaynak dosyasını + modül-türü alt dizinine kopyalamaya çalışır. + Alt dizin mevcut değilse oluşturulur ve içine standart bir + Makefile.in yerleştirilir.

    + +

    Bu seçenek tek kaynak dosyasından oluşan küçük harici modülleri + eklemek için yararlıdır. Daha karmaşık modüller için modül üreticisi + tarafından sağlanan belgelere bakınız.

    + +

    Bilginize

    +

    Durağan ilintili modüller yerine bir DSO modülü derlemek + isterseniz apxs programını kullanınız.

    +
    +
    + +
    --with-mpm=MPM
    +
    Sunucu süreç modeli seçilir. Bu seçenekte çok süreçlilik modüllerinden sadece biri + belirtilebilir. Bu seçenek kullanılmadığı takdirde işletim + sisteminiz için öntanımlı MPM + etkin olur. Bu seçenekte belirtilebilecek MPM isimleri: + beos, mpmt_os2, + prefork ve worker.
    +
    + + +

    Kümeleme seçenekleri ve diğerleri

    +
    +
    --enable-maintainer-mode
    +
    Hata ayıklama iletileri ve derleme sırasındaki uyarıların + gösterilmesi etkin kılınır.
    + +
    --enable-mods-shared=modül-listesi
    +
    +

    Etkinleştirilip devingen paylaşımlı modül olarak derlenecek + modüllerin listesi belirtilir. Yani, bu modüller LoadModule yönergesi kullanılarak + devingen olarak yüklenir.

    + +

    modül-listesi tırnak içine alınmış boşluk + ayraçlı modül isimleri listesidir. Modül isimleri önlerindeki + mod_ öneki olmaksızın belirtilirler. Örnek:

    + +

    + --enable-mods-shared='headers rewrite dav' +

    + +

    modül-listesi yerine all ve + most anahtar sözcükleri de belirtilebilir. + Örneğin,

    + +

    + --enable-mods-shared=most +

    + +

    seçeneği ile çoğu modül DSO modülü olarak derlenecektir.

    + +

    Yetersizlikler: + --enable-mods-shared=all aslında bütün modüllerin + derlenmesini sağlamaz. Tüm modülleri derlemek için şunu + yapabilirsiniz:

    + +

    + ./configure \
    + + --with-ldap \
    + --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache" +
    +

    +
    + +
    --enable-modules=modül-listesi
    +
    Bu seçenek modülleri devingen değil de durağan ilintilemek dışında + --enable-mods-shared seçeneğine benzer. Yani bu + modüller httpd çalıştırılır çalıştırılmaz etkin + olurlar. Yüklenmeleri için LoadModule yönergesine ihtiyaçları + yoktur.
    + +
    --enable-v4-mapped
    +
    IPv6 soketlierinin IPv4 bağlantılar üzerinde kullanılması mümkün + olur.
    + +
    --with-port=port
    +
    Bu seçenek httpd'nin dinleyeceği portu + belirler. Bu port httpd.conf yapılandırma dosyası + üretilirken kullanılır. 80. port öntanımlıdır.
    + +
    --with-program-name
    +
    Öntanımlı olan httpd yerine başka bir çalıştırabilir + ismi tanımlar.
    +
    + + + +

    Seçimlik paketler

    +

    Buradaki seçenekler seçimlik paketleri tanımlamak için kullanılır.

    + +

    Genel sözdizimi

    +

    Bir seçimlik paketi tanımlamak için genellikle şöyle bir sözdizimi + kullanılır:

    + +
    +
    --with-paket[=değer]
    +
    paket paketi kullanılır. Öntanımlı + değer yes’tir.
    + +
    --without-paket
    +
    paket paketi kullanılmaz. Öntanımlı + değer no’dur. Bu seçenek + autoconf tarafından sağlanmıştır ve Apache HTTP + Sunucusu için pek yararlı değildir.
    +
    + + + + +

    Özel paketler

    +
    +
    --with-apr=dizin|dosya
    +
    Apache Taşınabilir Arayüzü (APR) + httpd kaynak paketinin bir parçası olup HTTP Sunucu ile birlikte + derlenir. Eğer kendi kurulu APR’nizi kullanmak isterseniz bunu + configure betiğine apr-config betiğinin + yolunu belirterek ifade edebilirsiniz. Kurulu APR için bid dizin, + dosya ismi veya mutlak dosya yolu belirtebilirsiniz. + apr-config ya belirttiğiniz dizinde ya da + bin alt dizininde bulunmalıdır.
    + +
    --with-apr-util=dizin|dosya
    +
    Apache Taşınabilir Arayüzü Araçları (APU) httpd kaynak paketinin + bir parçası olup HTTP Sunucu ile birlikte derlenir. Eğer kendi + kurulu APU’nuzu kullanmak isterseniz bunu configure + betiğine apu-config betiğinin yolunu belirterek ifade + edebilirsiniz. Kurulu APR için bir dizin, dosya ismi veya mutlak + dosya yolu belirtebilirsiniz. apr-config ya + belirttiğiniz dizinde ya da bin alt dizininde + bulunmalıdır.
    + +
    --with-ssl=dizin
    +
    mod_ssl modülü etkinse configure + betiği kurulu bir OpenSSL arayacaktır. Kendi SSL/TLS kurulumunuzun + yolunu bu seçenekle belirtebilirsiniz.
    + +
    --with-z=dizin
    +
    Yapılandırmanız gerektirdiği takdirde (örneğin, + mod_deflate etkinse) configure betiği + kurulu zlib kütüphanesinin yerini tespit etmeye + çalışacaktır. Kendi sıkıştırma kütüphanenizin yerini bu seçenekle + belirtebilirsiniz.
    +
    + +

    Apache HTTP Sunucusunun çeşitli bölümleri, + mod_authn_dbm, mod_authz_dbm ve + mod_rewrite + modülünün RewriteMap + yönergesi bilgilere erişimi hızlandırmak için basit anahtar/değer + veritabanları kullanırlar. SDBM, APU içinde mevcut olduğundan bu + veritabanı her zaman kullanılabilir durumdadır. Eğer başka veritabanı + türleri kullanmak isterseniz aşağıdaki seçeneklerle bunları etkin + kılabilirsiniz:

    + +
    +
    --with-gdbm[=dizin-yolu]
    +
    Bir dizin-yolu belirtilmemişse + configure betiği GNU DBM kurulumunun kütüphanelerini ve + başlık dosyalarını bulunması olası yerlerde arar. Bir + dizin-yolu belirtilmişse + configure betiği kurulumun kütüphanelerini + dizin-yolu/lib altında, başlık dosyalarını + ise dizin-yolu/include altında arayacaktır. + Bundan başka, başlık ve kütüphane dosyalarının bulundukları yerler + iki nokta imi ile ayrılarak dizin-yolu + olarak belirtilebilir.
    + +
    --with-ndbm[=dizin-yolu]
    +
    New DBM kurulumunu araştırması dışında --with-gdbm + seçeneği gibidir.
    + +
    --with-berkeley-db[=dizin-yolu]
    +
    Berkeley DB kurulumunu araştırması dışında + --with-gdbm seçeneği gibidir.
    +
    + +

    Bilginize

    +

    DBM seçenekleri APU tarafından sağlanmış olup onun yapılandırma + betiğine aktarılır. Bu seçenekler --with-apr-util + seçeneği ile tanımlanmış bir kurulu APU varsa kullanışlı olur.

    +

    HTTP sunucunuz ile birlikte birden fazla DBM gerçeklenimi + kullanabilirsiniz. Kullanılacak DBM türünü her zaman çalışma anı + yapılandırmanızla yapılandırabilirsiniz.

    +
    + + + +

    Destek programları için seçenekler

    +
    +
    --enable-static-support
    +
    Destek programlarını durağan ilintili olarak derler. Yani + çalıştırılabilirin kullandığı bütün kütüphaneler kodla + bütünleştirilir. Bu seçenek belirtilmedikçe destek programları daima + devingen ilintili olarak derlenir.
    + +
    --enable-suexec
    +
    Çatallanan sürecin kullanıcı ve grup kimliklerinin + değiştirilebilmesini sağlayan suexec programının + kullanımını etkinleştirir. Sunucunuz üzerinde suid biti + etkinleştirilmiş bir program çalıştırmanın sistem güvenliğinde + yaratacağı sorunlar hakkında bir fikriniz yoksa bu seçeneği + etkinleştirmeyin. suexec yapılandırma + seçenekleri aşağıda açıklanmıştır.
    +
    + +

    Tek bir destek programını aşağıdaki seçenekleri kullanarak bir durağan + ilintili çalıştırılabilir olarak derleyebilirsiniz:

    + +
    +
    --enable-static-ab
    +
    ab programının durağan ilintili sürümü + derlenir.
    + + +
    --enable-static-checkgid
    +
    checkgid programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-htdbm
    +
    htdbm programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-htdigest
    +
    htdigest programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-htpasswd
    +
    htpasswd programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-logresolve
    +
    logresolve programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-rotatelogs
    +
    rotatelogs programının durağan ilintili sürümü + derlenir.
    +
    + +

    suexec yapılandırma seçenekleri

    + + +

    Aşağıdaki seçeneklerle suexec programının + davranışı hassas bir şekilde ayarlanabilir. Daha ayrıntılı bilgi için + suEXEC yapılandırması ve kurulumuna + bakınız.

    + +
    +
    --with-suexec-bin
    +
    Bu seçenek ile suexec çalıştırılabilirinin yeri + belirtilir. Öntanımlı olarak --sbindir ile belirtilen + dizine kurulur (Kurulum dizinlerinde + ince ayar konusuna bakınız).
    + +
    --with-suexec-caller
    +
    Bu seçenek ile suexec’i çalıştırabilecek + kullanıcı belirtilir. Normalde httpd programını + çalıştıran kullanıcı olmalıdır.
    + +
    --with-suexec-docroot
    +
    Bu seçenek ile suexec'e erişebilecek + çalıştırılabilirlerin altında bulunacağı dizin belirtilir. + --datadir/htdocs öntanımlıdır.
    + +
    --with-suexec-gidmin
    +
    suexec için hedef kullanıcı olmasına izin + verilen en küçük grup kimliğini tanımlamak için kullanılır. 100 + öntanımlıdır.
    + +
    --with-suexec-logfile
    +
    suexec günlük dosyasının ismi belirtilir. + Öntanımlı olarak bu dosyanın ismi suexec_log olup + --logfiledir seçeneği ile belirtilen dizin altında + bulunur.
    + +
    --with-suexec-safepath
    +
    suexec tarafından çalıştırılacak süreçlerin + çalıştırılabilirlerinin bulunabileceği dizinleri PATH + ortam değişkenine tanımlamak için kullanılır. + /usr/local/bin:/usr/bin:/bin öntanımlıdır.
    + +
    --with-suexec-userdir
    +
    Bu seçenek, kullanıcı dizinleri altında suexec + tarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin + bulunabileceği alt dizini tanımlar. suexec + programını (mod_userdir tarafından sağlanan) + kullanıcıya özel dizinlerde kullanmak istediğinizde bu gereklidir. + public_html alt dizini öntanımlıdır.
    + +
    --with-suexec-uidmin
    +
    suexec için hedef kullanıcı olmasına izin + verilen en küçük kullanıcı kimliğini tanımlamak için kullanılır. + 100 öntanımlıdır.
    + +
    --with-suexec-umask
    +
    suexec tarafından çalıştırılacak süreçler için + umask tanımlar. Sisteminiz için geçerli ayarlar + öntanımlıdır.
    +
    + + +
    top
    +
    +

    Ortam Değişkenleri

    +

    configure betiğinin yerleri ve isimleri standartlara uygun + olmayan kütüphaneleri ve programları bulmasını yardımcı olan veya + configure betiği tarafından yapılan bazı seçimleri + değiştirmenizi sağlayacak bazı ortam değişkenleri vardır.

    + + +
    +
    CC
    +
    Bu değişkenle derleme sırasında kullanılacak C derleyici komutu + tanımlanır.
    + +
    CFLAGS
    +
    Bu değişkenle derleme sırasında kullanılacak C derleyici seçenekleri + tanımlanır.
    + +
    CPP
    +
    Bu değişkenle derleme sırasında kullanılacak C önişlemci komutu + tanımlanır.
    + +
    CPPFLAGS
    +
    C/C++ önişlemci seçenekleri tanımlanır. Örneğin, eğer başlık + dosyaları standart yerlerinde değil de + includedir dizinindeyse bunu + -Iincludedir seçeneği olarak + belirtebilirsiniz.
    + +
    LDFLAGS
    +
    İlintileyici seçenekleri tanımlanır. Örneğin, eğer kütüphane + dosyalarınız standart yerlerinde değil de + libdir dizinindeyse bunu + -Llibdir seçeneği olarak belirtebilirsiniz.
    +
    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/configure.xml b/docs/manual/programs/configure.xml index 08d62791fb6..0d8bf142352 100644 --- a/docs/manual/programs/configure.xml +++ b/docs/manual/programs/configure.xml @@ -4,12 +4,12 @@
    --enable-optional-fn-export
    Enable the example for an optional function exporter, which is - provided by mod_optional_fn_export.
    + provided by mod_optional_fn_export.
    --enable-optional-fn-import
    @@ -661,9 +664,9 @@ exactly one Multi-Processing Module. Otherwise the default MPM for your operating system will be taken. Possible MPMs are - beos, leader, - mpmt_os2, perchild, - prefork, threadpool and + beos, + mpmt_os2, + prefork, and worker.
    @@ -693,10 +696,20 @@

    will compile most modules and build them as DSO modules.

    +

    Caveat: + --enable-mods-shared=all does not actually build all + modules. To build all modules then, one might use:

    + + ./configure \
    + + --with-ldap \
    + --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache" +
    +
    - +
    --enable-modules=MODULE-LIST
    -
    This option behaves similar to --enable-mods-shared, +
    This option behaves similar to --enable-mods-shared, but will link the given modules statically. This mean, these modules will always be present while running httpd. They need not be loaded with
    --with-PACKAGE[=ARG]
    Use the package PACKAGE. The default value for - ARG isyes.
    + ARG is yes.
    --without-PACKAGE
    Do not use the package PACKAGE. This is the same as @@ -737,21 +750,22 @@
    -
    Specific packages
    --with-apr=DIR|FILE
    -
    The Apache Portable Runtime (APR) is part of the httpd +
    The Apache Portable Runtime (APR) + is part of the httpd source distribution and will automatically be build together with the HTTP server. If you want to use an already installed APR instead you have to tell configure the path to the apr-config script. You may set the absolute path and name or the directory to the installed APR. apr-config must - exists within this directory or the subdirectory + exist within this directory or the subdirectory bin.
    - +
    --with-apr-util=DIR|FILE
    The Apache Portable Runtime Utilities (APU) are part of the httpd source distribution and will automatically be build @@ -759,7 +773,7 @@ APU instead you have to tell configure the path to the apu-config script. You may set the absolute path and name or the directory to the installed APU. apu-config must - exists within this directory or the subdirectory + exist within this directory or the subdirectory bin.
    --with-ssl=DIR
    @@ -775,13 +789,14 @@

    Several features of the Apache HTTP Server, including - mod_authn_dbm and mod_rewrite's DBM + mod_authn_dbm, mod_authz_dbm, and + mod_rewrite's DBM RewriteMap use simple key/value databases for quick lookups of information. SDBM is included in the APU, so this database is always available. If you would like to use other database types, use the following options to enable them:

    - +
    --with-gdbm[=path]
    If no path is specified, configure will @@ -792,11 +807,11 @@ path/include for the relevant files. Finally, the path may specify specific include and library paths separated by a colon.
    - +
    --with-ndbm[=path]
    -
    Like --with-gdbm, bur searches for a New DBM +
    Like --with-gdbm, but searches for a New DBM installation.
    - +
    --with-berkeley-db[=path]
    Like --with-gdbm, but searches for a Berkeley DB installation.
    @@ -812,7 +827,7 @@
    - +
    Options for support programs
    --enable-static-support
    @@ -828,7 +843,8 @@ option unless you understand all the security implications of running a suid binary on your server.
    Further options to configure suexec are described below.
    + href="#suexec">below. +

    It is possible to create a statically linked binary of a single support program by using the following options:

    @@ -849,7 +865,7 @@
    --enable-static-htdigest
    Build a statically linked version of htdigest.
    - +
    --enable-static-htpasswd
    Build a statically linked version of htpasswd.
    @@ -863,7 +879,8 @@ rotatelogs. -
    suexec configuration options +
    + <code>suexec</code> configuration options

    The following options are used to fine tune the behavior of suexec. See Configuring and installing suEXEC @@ -871,14 +888,15 @@

    --with-suexec-bin
    -
    This defines the path to suexec binary. Default is - --sbindir (see Fine - tuning of installation directories).
    +
    This defines the path to suexec binary. + Default is --sbindir (see Fine tuning of installation + directories).
    --with-suexec-caller
    This defines the user allowed to call suexec. - It should be the same as the user under which httpd - normally runs.
    + It should be the same as the user under which + httpd normally runs.
    --with-suexec-docroot
    This defines the directory tree under which @@ -941,7 +959,7 @@
    LDFLAGS
    Set linker flags, e.g. -Llibdir if you have - libraries in a nonstandard directory libdir.
    + libraries in a nonstandard directory libdir.
    diff --git a/docs/manual/programs/configure.xml.ko b/docs/manual/programs/configure.xml.ko index a7b52f5ce09..12ea7f57565 100644 --- a/docs/manual/programs/configure.xml.ko +++ b/docs/manual/programs/configure.xml.ko @@ -1,15 +1,15 @@ - + - + configure /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/configure.xml.tr b/docs/manual/programs/configure.xml.tr new file mode 100644 index 00000000000..6c0275b3212 --- /dev/null +++ b/docs/manual/programs/configure.xml.tr @@ -0,0 +1,1027 @@ + + + + + + + + + +Programlar + + configure - kaynak ağacını yapılandırır + + +

    configure betiği, Apache HTTP Sunucusunun kaynak kodlarını + belli bir platform için yapılandırmakta ve derlemekte kullanılır. + Sunucuyu kişisel gereksinimlerinize uygun şekilde derlemek için çeşitli + seçeneklere sahiptir.

    + +

    Bu betik Apache HTTP Sunucusu kaynak paketinin kök dizininde bulunur ve + sadece Unix ve benzeri sistemlerde kullanılabilir. Kaynak paketinin + diğer platformalarda yapılandırılması ve derlenmesi hakkında bilgi + edinmek için platform belgelerine bakınız.

    +
    + +Derleme ve Kurulum + +
    Komut Satırı +

    configure betiğini kaynak paketinin kök dizininden başka + bir yere kopyalayıp çalıştırmamalısınız.

    + +

    ./configure [seçenek]... + [değişken=değer]...

    + +

    CC, CFLAGS gibi ortam değişkenlerini + değişken=değer atamaları biçiminde + kullanabilirsiniz. Kullanışlı değişkenlerin bazıları aşağıda açıklanmıştır.

    +
    + +
    Seçenekler + + +
    Yapılandırma seçenekleri + +

    Aşağıdaki seçenekler configure betiğinin kendi davranışını + belirlemekte kullanılır.

    + +
    +
    -C
    +
    --config-cache
    +
    --cache-file=config.cache için bir kısaltmadır.
    + +
    --cache-file=dosya
    +
    Sınama sonuçları dosya dosyasında saklanır. + Bu seçenek açıkça belirtilmedikçe işlevsizdir.
    + +
    -h
    +
    --help [short|recursive]
    +
    Yardım metnini basar ve çıkar. short değeriyle sadece + bu pakete özgü seçenekler listelenir. recursive değeriyle + ise paketin içindeki tüm paketler için kısa bir yardım metni + basılır.
    + +
    -n
    +
    --no-create
    +
    configure betiği normal olarak çalışır fakat herhangi + bir çıktı dosyası üretmez. Derleme için Makefile + dosyalarını üretmeksizin sınamaların sonuçlarını görmek için + yararlıdır.
    + +
    -q
    +
    --quiet
    +
    Yapılandırma sürecinde checking ... iletilerini basmaz. +
    + +
    --srcdir=dizin
    +
    dizin dizinini kaynak dosyaları dizini olarak + tanımlar. configure betiğinin bulunduğu dizin veya bir + üst dizin öntanımlıdır.
    + +
    --silent
    +
    --quiet ile aynı.
    + +
    -V
    +
    --version
    +
    Telif hakkı bilgilerini gösterir ve çıkar.
    +
    +
    + +
    Kurulum dizinleri + +

    Bu seçenekler kurulum dizinlerini tanımlar. Kurulum dizinleri seçilmiş + yerleşime bağımlıdır.

    + +
    +
    --prefix=PREFIX
    +
    Mimariden bağımsız dosyalar PREFIX dizininin + altına kurulur. /usr/local/apache2 öntanımlı kurulum + dizinidir.
    + +
    --exec-prefix=EPREFIX
    +
    Mimariye bağımlı dosyalar EPREFIX dizininin + altına kurulur. Bunun için PREFIX dizini + öntanımlı kurulum dizinidir.
    +
    + +

    Öntanımlı olarak, make install tüm dosyaların + /usr/local/apache2/bin, /usr/local/apache2/lib + gibi dizinlere kurulmasını sağlar. Kurulum dizini önekini örneğin, + --prefix=$HOME şeklinde belirterek kurulumun başka bir yere + yapılmasını sağlayabilirsiniz.

    + +
    Bir dizin yerleşimi tanımlamak +
    +
    --enable-layout=LAYOUT
    +
    Kaynak kodu ve derleme betikleri kurulum ağacının + LAYOUT yerleşimine dayalı olduğu varsayımıyla + yapılandırılır. Bu seçenek sayesinde Apache HTTP Sunucusu kurulumu + içinde her dosya türü için farklı bir yer belirleyebilirsiniz. + config.layout dosyasında böyle yapılandırma örnekleri + vardır. Örnekleri izleyerek kendi yapılandırmanızı + oluşturabilirsiniz. Bu dosyada örneğin FOO isimli + yerleşim <Layout FOO>...</Layout> bölümü + içinde düzenlenmiştir ve her yerleşim için böyle ayrı bir bölüm + vardır. Öntanımlı yerleşim Apache’dir.
    +
    +
    + +
    + Kurulum dizinlerinde ince ayar + +

    Kurulum dizinlerini daha iyi denetim altında tutmak için aşağıdaki + seçenekler kullanılır. Lütfen, dizin öntanımlılarının + autoconf tarafından tanımlandığına ve seçilen yerleşim + ayarlarının bunları yerini aldığına dikkat ediniz.

    + +
    + +
    --bindir=dizin
    +
    Kullanıcı tarafından çalıştırılabilen dosyalar + dizin dizinine kurulur. Bunlar + htpasswd, dbmmanage gibi site + yönetimi için yararlı destek programlarıdır. Öntanımlı olarak bu + dosyalar EPREFIX/bin dizinine kurulur.
    + +
    --datadir=dizin
    +
    Mimariden bağımsız salt okunur veriler dizin + dizinine kurulur. Bunların öntanımlı kurulum dizini + PREFIX/share dizinidir. Bu seçenek + autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --includedir=dizin
    +
    C başlık dosyaları dizin dizinine kurulur. + Bunların öntanımlı kurulum dizini + PREFIX/include dizinidir.
    + +
    --infodir=dizin
    +
    Info belgeleri dizin dizinine kurulur. + Bunların öntanımlı kurulum dizini + PREFIX/info dizinidir. Bu seçenek şimdilik + kullanılmamıştır.
    + +
    --libdir=dizin
    +
    Nesne kod kütüphaneleri dizin dizinine + kurulur. Bunların öntanımlı kurulum dizini + PREFIX/lib dizinidir.
    + +
    --libexecdir=dizin
    +
    Paylaşımlı modüller gibi program dosyaları + dizin dizinine kurulur. Öntanımlı olarak + libexecdir bu dizini + EPREFIX/modules olarak tanımlar.
    + +
    --localstatedir=dizin
    +
    Düzenlenebilir tek makinelik veri dizin + dizinine kurulur. Öntanımlı olarak localstatedir bu + dizini PREFIX/var olarak tanımlar. Bu + seçenek autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --mandir=dizin
    +
    Kılavuz sayfaları dizin dizinine kurulur. + Öntanımlı olarak mandir bu dizini + EPREFIX/man olarak tanımlar.
    + +
    --oldincludedir=dizin
    +
    GCC harici C başlık dosyaları dizin dizinine + kurulur. Öntanımlı olarak oldincludedir bu dizini + /usr/include olarak tanımlar. Bu seçenek + autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --sbindir=dizin
    +
    Sistem yöneticisi tarafından kullanılabilen programlar + dizin dizinine kurulur. Bunlar + httpd, apachectl, + suexec gibi Apache HTTP Sunucusunu çalıştırmak + için gereken programlardır. Öntanımlı olarak sbindir bu + dizini EPREFIX/sbin olarak tanımlar.
    + +
    --sharedstatedir=dizin
    +
    Mimariye bağımlı düzenlenebilir veriler + dizin dizinine kurulur. Öntanımlı olarak + sharedstatedir bu dizini + PREFIX/com olarak tanımlar. Bu seçenek + autoconf tarafından atanır ve şimdilik + kullanılmamıştır.
    + +
    --sysconfdir=dizin
    +
    httpd.conf, mime.types gibi tek + makinelik salt okunur sunucu yapılandırma dosyaları + dizin dizinine kurulur. Öntanımlı olarak + sysconfdir bu dizini PREFIX/conf + olarak tanımlar.
    +
    +
    +
    + +
    Sistem türleri + +

    Bu seçenekleri Apache HTTP Sunucusunu başka bir platformda çalıştırmak + üzere çapraz derleme yaparken kullanılır. Normal durumlarda sunucu + derlendiği platformda çalıştırıldığından bu seçenekler kullanılmaz.

    + +
    +
    --build=derleme-ortamı
    +
    Derleme araçlarının derleneceği sistemin sistem türünü tanımlar. + config.guess betiği ile elde edilen sonuç + öntanımlıdır.
    + +
    --host=çalışma-ortamı
    +
    Sunucunun çalışacağı sistemin sistem türünü tanımlar. Öntanımlı + sistem türü derleme-ortamı’dır.
    + +
    --target=hedef-ortam
    +
    Derleyicileri hedef-ortam sistem türü için + yapılandırır. Öntanımlı sistem türü + çalışma-ortamı’dır. Bu seçenek + autoconf tarafından atanır ve Apache HTTP Sunucusu için + gerekli değildir.
    +
    +
    + +
    Seçimlik özellikler + +

    Bu seçenekler HTTP sunucunuzun sahip olmasını istediğiniz özelliklerin + hassas olarak ayarlanmasını sağlar.

    + +
    Genel sözdizimi +

    Bir özelliği etkin kılmak veya iptal etmek için genellikle şu + sözdizimi kullanılır:

    + +
    +
    --disable-özellik
    +
    Sunucu özellik özelliğine sahip olmaz. Bu + seçenek--enable-özellik=no seçeneğine + eşdeğerdir.
    + +
    --enable-özellik[=değer]
    +
    Sunucu özellik özelliğine sahip olur. + değer belirtilmediği takdirde + yes (evet) öntanımlıdır.
    + +
    --enable-modül=shared
    +
    Belirtilen modül DSO modülü olarak derlenir.
    + +
    --enable-modül=static
    +
    Öntanımlı olarak etkin olan modüller durağan ilintilenir. Bunu bu + seçenekle alenen zorlayabilirsiniz.
    +
    + + Bilginize +

    --enable-filanca seçeneğinin varlığı + configure betiğinin filanca diye + bir modül var olmasa bile bundan şikayetçi olmasına sebep olmaz. Bu + bakımdan dikkatli olunuz.

    +
    +
    + + +
    Öntanımlı olarak etkin modüller +

    Bazı modüller öntanımlı olarak derlendiğinden iptal edilmek istenirse + bunun açıkça belirtilmesi gerekir. Aşağıdaki seçenekler bu tür + modüllerin diğerlerinden bağımsız olarak derlenmemesini sağlar.

    + +
    +
    --disable-actions
    +
    mod_actions modülü tarafından sağlanan ve + isteklerle tetiklenen eylemleri iptal eder.
    + +
    --disable-alias
    +
    mod_alias modülü tarafından sağlanan, isteklerin + farklı dosya sistemi bölümleriyle eşlenmesi iptal edilir.
    + +
    --disable-asis
    +
    mod_asis modülü tarafından sağlanan kendinden + HTTP başlıklı dosya türü desteğini iptal eder.
    + +
    --disable-auth-basic
    +
    mod_auth_basic modülü tarafından sağlanan + kullanıcıya dayalı erişim denetimi iptal edilir. Bu modül, kullanıcı + isminin ve parolasının salt metin dosyalarda saklandığı Temel HTTP + Kimlik Doğrulaması için kullanılır.
    + +
    --disable-autoindex
    +
    mod_autoindex modülü tarafından sağlanan dizin + içerik listelemesini iptal eder.
    + +
    --disable-cgi
    +
    CGI betiklerine destek sağlayan mod_cgi, çok + evreli olmayan MPM kullanıldığında öntanımlı olarak etkin kılınır. + CGI desteğini iptal etmek için bu seçeneği kullanın.
    + +
    --disable-cgid
    +
    worker çok evreli MPM’i kullanılırken CGI + betikleri için desteği öntanımlı olarak mod_cgid + modülü sağlar. CGI desteğini iptal etmek için bu seçeneği + kullanın.
    + +
    --disable-charset-lite
    +
    mod_charset_lite modülü tarafından sağlanan + karakter kümesi dönüşümleri iptal edilir. Bu modül sadece EBCDIC + sistemlerinde öntanımlı olarak kurulur.
    + +
    --disable-dir
    +
    mod_dir modülü tarafından sağlanan dizin + isteklerine destek iptal edilir.
    + +
    --disable-env
    +
    mod_env modülü tarafından sağlanan ortam + değişkenlerine destek iptal edilir.
    + + +
    --disable-http
    +
    HTTP protokolüne destek iptal edilir. http modülü + en temel modüldür ve sunucunun bir HTTP sunucusu olarak çalışmasını + sağlar. Sadece, HTTP protokolü yerine başka bir protokol kullanmak + isterseniz bu seçeneği kullunın. Ne yaptığınızdan gerçekten + emin olamıyorsanız bu desteği asla iptal etmeyin. +
    + Dikkat: Bu modül ana kodla daima durağan ilintilidir.
    + +
    --disable-imagemap
    +
    mod_imagemap modülü tarafından sağlanan resim + eşlemlerine destek iptal edilir.
    + +
    --disable-include
    +
    mod_include modülü tarafından sağlanan SSI + sayfaları desteği iptal edilir.
    + +
    --disable-log-config
    +
    mod_log_config modülü tarafından sağlanan günlük + kayıtları yapılandırması iptal edilir. Bu modül olmaksızın sunucu + yapılan isteklerin günlük kayıtlarını tutamaz.
    + +
    --disable-mime
    +
    mod_mime modülü istenen dosyanın uzantısına + bakarak dosya içeriğinin (MIME + türü, dil, karakter kümesi ve kodlama) nasıl ele + alınacağını belirler. Bu modülün iptal edilmesi önerilmez.
    + +
    --disable-negotiation
    +
    mod_negotiation modülü tarafından sağlanan içerik + dili uzlaşımı iptal edilir.
    + +
    --disable-setenvif
    +
    mod_setenvif modülü tarafından sağlanan + başlıklarla ilgili ortam değişkenlerine dayalı destek iptal + edilir.
    + +
    --disable-status
    +
    mod_status modülü tarafından sağlanan süreç/evre + izleme iptal edilir.
    + +
    --disable-userdir
    +
    mod_userdir modülü tarafından sağlanan, + isteklerin kullanıcıya özel dizinlere eşlenmesi iptal edilir.
    +
    +
    + +
    + Öntanımlı olarak etkin olmayan modüller + +

    Bazı modüller öntanımlı olarak derlendiği halde açıkça istenmedikçe + veya most ya da all anahtar sözcükleri + kullanılmadıkça etkin kılınmazlar (bu konu, aşağıda --enable-mods-shared + seçeneğinde daha ayrıntılı ele alınmıştır). Bu modülleri + etkinleştirmek için aşağıdaki seçenekleri kullanabilirsiniz.

    + +
    +
    --enable-authn-anon
    +
    mod_authn_anon modülünün sağladığı anonim + kullanıcı erişimi etkin kılınır.
    + +
    --enable-authn-dbm
    +
    mod_authn_dbm modülü kullanıcı isimlerinin ve + parolalarının DBM türü veritabanı dosyalarında saklandığı HTTP Temel + Kimlik Kanıtlaması için destek sağlar. Bu seçeneği bu modülü etkin + kılmak için kullanabilirsiniz.
    + +
    --enable-authz-dbm
    +
    mod_authz_dbm modülü kullanıcı isimlerinin ve + parolalarının DBM türü veritabanı dosyalarında saklandığı HTTP Temel + Kimlik Kanıtlaması için destek sağlar. Bu seçeneği bu modülü etkin + kılmak için kullanabilirsiniz.
    + +
    --enable-auth-digest
    +
    mod_auth_digest modülü tarafından sağlanan + RFC2617 Özet Kimlik Kanıtlaması etkin kılınır. Bu modül delilleri + salt metin dosyalarda saklar.
    + +
    --enable-authnz-ldap
    +
    mod_authnz_ldap modülü tarafından sağlanan LDAP’a + Dayalı Kimlik Kanıtlaması etkin kılınır.
    + +
    --enable-cache
    +
    mod_cache modülü tarafından sağlanan devingen + dosya önbelleklemesi etkin kılınır. Bu deneysel modülün kullanımı, + aşırı yüklü sunucularda ya da önbellekli vekillerde ilginç sonuçlar + verebilir. Bunun yanında en azından bir saklama alanı yönetim modülü + (örn, mod_disk_cache veya + mod_mem_cache) gerekebilir.
    + +
    --enable-cern-meta
    +
    mod_cern_meta modülü tarafından sağlanan CERN + türü temel veri dosyalarına destek etkin kılınır.
    + +
    --enable-charset-lite
    +
    mod_charset_lite modülü tarafından sağlanan + karakter kümesi dönüşümleri etkin kılınır. Bu modül sadece EBCDIC + sistemlerinde öntanımlı olarak etkindir. Diğer sistemlerde gerekirse + alenen etkin kılınması gerekir.
    + +
    --enable-dav
    +
    mod_dav modülü tarafından sağlanan WebDAV + protokolü desteği etkin kılınır. Dosya sistemi özkaynaklarına destek + için mod_dav_fs modülü de gerekir ve bu seçenekle o + da etkin kılınır.
    + Dikkat: mod_dav sadece http protokolü + modülü ile birlikte kullanılabilir.
    + +
    --enable-dav-fs
    +
    mod_dav_fs modülü tarafından sağlanan WebDAV + protokolünün dosya sistemi özkaynaklarına erişim desteği etkin + kılınır. Bu modül mod_dav modülü için destek + sağlar. Bu bakımdan, mod_dav modülünü de etkin + kılmak için --enable-dav seçeneğini de + kullanmalısınız.
    + +
    --enable-dav-lock
    +
    mod_dav_lock modülü tarafından sağlanan geri + destek modüllerine temel DAV kilitleme desteği etkin kılınır. Bu + modülün işlevsel olabilmesi için en azından mod_dav + modülünün etkin olması gerekir, dolayısıyla bu seçeneği + --enable-dav ile birlikte kullanmalısınız.
    + +
    --enable-deflate
    +
    mod_deflate modülü tarafından sağlanan + sıkıştırılmış aktarım kodlaması etkin kılınır.
    + +
    --enable-disk-cache
    +
    mod_disk_cache modülü tarafından sağlanan diskte + önbellekleme etkin kılınır.
    + +
    --enable-expires
    +
    mod_expires modülü tarafından sağlanan + Expires başlığıyla denetim etkin kılınır.
    + +
    --enable-ext-filter
    +
    mod_ext_filter modülü tarafından sağlanan harici + süzgeç desteği etkin kılınır.
    + +
    --enable-file-cache
    +
    mod_file_cache modülü tarafından sağlanan dosya + önbelleklemesi etkin kılınır.
    + +
    --enable-headers
    +
    mod_headers modülü tarafından sağlanan HTTP + başlıkları denetimi etkin kılınır.
    + +
    --enable-info
    +
    mod_info modülü tarafından sağlanan sunucu + bilgileri etkin kılınır.
    + +
    --enable-ldap
    +
    mod_ldap modülü tarafından sağlanan LDAP + önbelleklemesi ve bağlantı havuzu hizmetleri etkin kılınır.
    + +
    --enable-logio
    +
    mod_logio modülü tarafından sağlanan başlıklarda + bulunan girdi ve çıktı bayt sayılarının günlüklenmesi etkin + kılınır.
    + +
    --enable-mem-cache
    +
    mod_mem_cache modülü tarafından sağlanan bellekte + önbellekleme etkin kılınır.
    + +
    --enable-mime-magic
    +
    mod_mime_magic modülü tarafından sağlanan + MIME türlerinin kendiliğinden + belirlenmesi desteği etkin kılınır.
    + +
    --enable-isapi
    +
    mod_isapi modülü tarafından sağlanan isapi + eklenti desteği etkin kılınır.
    + +
    --enable-proxy
    +
    mod_proxy modülü tarafından sağlanan + vekil/ağ-geçidi işlevselliği etkin kılınır. AJP13, + CONNECT, FTP, HTTP ve + dengeleyici vekil yetenekleri ayrı olarak + mod_proxy_ajp, mod_proxy_connect, + mod_proxy_ftp, mod_proxy_http ve + mod_proxy_balancer modülleri tarafından sağlanır. + Bu beş modül bu seçenekle kendiliğinden etkin olur.
    + +
    --enable-proxy-ajp
    +
    mod_proxy_ajp modülü tarafından sağlanan + AJP13 (Apache JServ Protokolü 1.3) için vekil desteği + etkin kılınır. Bu modül mod_proxy modülünün bir + eklentisidir, dolayısıyla bu seçeneği --enable-proxy + seçeneği ile birlikte kullanmalısınız.
    + +
    --enable-proxy-balancer
    +
    mod_proxy_balancer modülü tarafından sağlanan + AJP13, FTP ve HTTP + protokollerine yük dengeleme desteği etkin kılınır. Bu modül + mod_proxy modülünün bir eklentisidir, dolayısıyla + bu seçeneği --enable-proxy seçeneği ile birlikte + kullanmalısınız.
    + +
    --enable-proxy-connect
    +
    mod_proxy_connect modülü tarafından sağlanan + CONNECT isteklerine vekil desteği etkin kılınır. Bu + modül mod_proxy modülünün bir eklentisidir, + dolayısıyla bu seçeneği --enable-proxy seçeneği ile + birlikte kullanmalısınız.
    + +
    --enable-proxy-ftp
    +
    mod_proxy_ftp modülü tarafından sağlanan + FTP isteklerine vekil desteği etkin kılınır. Bu modül + mod_proxy modülünün bir eklentisidir, dolayısıyla + bu seçeneği --enable-proxy seçeneği ile birlikte + kullanmalısınız.
    + +
    --enable-proxy-http
    +
    mod_proxy_http modülü tarafından sağlanan + HTTP isteklerine vekil desteği etkin kılınır. Bu modül + mod_proxy modülünün bir eklentisidir, dolayısıyla + bu seçeneği --enable-proxy seçeneği ile birlikte + kullanmalısınız.
    + +
    --enable-rewrite
    +
    mod_rewrite modülü tarafından sağlanan kurallara + dayalı URL kurgulaması etkin kılınır.
    + +
    --enable-so
    +
    mod_so modülü tarafından sağlanan DSO yeteneği + etkin kılınır. --enable-mods-shared seçeneği bu + seçeneği de etkin kılar.
    + +
    --enable-speling
    +
    mod_speling modülü tarafından sağlanan URL + yanlışlarını düzeltme desteği etkin kılınır.
    + +
    --enable-ssl
    +
    mod_ssl modülü tarafından sağlanan SSL/TLS + şifreleme desteği etkin kılınır.
    + +
    --enable-unique-id
    +
    mod_unique_id modülü tarafından sağlanan her + isteğe bir eşsiz kimlik atama desteği etkin kılınır.
    + +
    --enable-usertrack
    +
    mod_usertrack modülü tarafından sağlanan + kullanıcı oturumunu izleme desteği etkin kılınır.
    + +
    --enable-vhost-alias
    +
    mod_vhost_alias modülü tarafından sağlanan + kitlesel sanal barındırma desteği etkin kılınır.
    +
    +
    + +
    + Geliştiriciler için modüller + +

    Aşağıdakiler geliştiricilerin yaptıklarını sınamalar için yararlı + modülleri etkinleştiren seçeneklerdir. Bu seçenekler öntanımlı olarak + etkin değildir. Bu modüllere ihtiyacınız olup olmadığı konusunda bir + fikriniz yoksa bu bölümü atlayabilirsiniz.

    + +
    + +
    --enable-bucketeer
    +
    mod_bucketeer modülü tarafından sağlanan veri + kümelerine müdahale süzgeci etkin kılınır.
    + + +
    --enable-case-filter
    +
    mod_case_filter modülünün sağladığı çıktıda büyük + harfe dönüşüm süzgeci örneği etkin kılınır.
    + + +
    --enable-case-filter-in
    +
    mod_case_filter_in modülünün sağladığı girdide büyük + harfe dönüşüm süzgeci örneği etkin kılınır.
    + +
    --enable-echo
    +
    mod_echo modülünün sağladığı ECHO sunucusu etkin + kılınır.
    + +
    --enable-example
    +
    Örnek ve demo modülü mod_example etkin + kılınır.
    + + +
    --enable-optional-fn-export
    +
    mod_optional_fn_export modülünün sağladığı seçimlik + işlev ihraç örneği etkin kılınır.
    + + +
    --enable-optional-fn-import
    +
    mod_optional_fn_import modülünün sağladığı seçimlik + işlev ithal örneği etkin kılınır.
    + + +
    --enable-optional-hook-export
    +
    mod_optional_hook_export modülünün sağladığı seçimlik + kanca işlev ihraç örneği etkin kılınır.
    + + +
    --enable-optional-hook-import
    +
    mod_optional_hook_import modülünün sağladığı seçimlik + kanca işlev ithal örneği etkin kılınır.
    +
    +
    + +
    MPM'ler ve üçüncü parti modüller +

    Gereken çok süreçlilik modüllerini ve üçüncü parti modülleri etkin + kılmak için şu seçenekler kullanılır:

    + +
    +
    --with-module=modül-türü:modül-dosyası[,modül-türü:modül-dosyası]
    +

    Durağan ilintili modüller listesine belirtilen modülleri ekler. + Modül kaynak dosyası modül-dosyası, önce + Apache HTTP Sunucusu kaynak ağacı altında + modules/modül-türü alt dizininde aranır. + Modül orada değilse configure betiği + modül-dosyası ile bir mutlak dosya yolu + belirtildiği varsayımıyla kaynak dosyasını + modül-türü alt dizinine kopyalamaya çalışır. + Alt dizin mevcut değilse oluşturulur ve içine standart bir + Makefile.in yerleştirilir.

    + +

    Bu seçenek tek kaynak dosyasından oluşan küçük harici modülleri + eklemek için yararlıdır. Daha karmaşık modüller için modül üreticisi + tarafından sağlanan belgelere bakınız.

    + + Bilginize +

    Durağan ilintili modüller yerine bir DSO modülü derlemek + isterseniz apxs programını kullanınız.

    +
    +
    + +
    --with-mpm=MPM
    +
    Sunucu süreç modeli seçilir. Bu seçenekte çok süreçlilik modüllerinden sadece biri + belirtilebilir. Bu seçenek kullanılmadığı takdirde işletim + sisteminiz için öntanımlı MPM + etkin olur. Bu seçenekte belirtilebilecek MPM isimleri: + beos, mpmt_os2, + prefork ve worker.
    +
    +
    + +
    Kümeleme seçenekleri ve diğerleri +
    +
    --enable-maintainer-mode
    +
    Hata ayıklama iletileri ve derleme sırasındaki uyarıların + gösterilmesi etkin kılınır.
    + +
    --enable-mods-shared=modül-listesi
    +
    +

    Etkinleştirilip devingen paylaşımlı modül olarak derlenecek + modüllerin listesi belirtilir. Yani, bu modüller LoadModule yönergesi kullanılarak + devingen olarak yüklenir.

    + +

    modül-listesi tırnak içine alınmış boşluk + ayraçlı modül isimleri listesidir. Modül isimleri önlerindeki + mod_ öneki olmaksızın belirtilirler. Örnek:

    + + + --enable-mods-shared='headers rewrite dav' + + +

    modül-listesi yerine all ve + most anahtar sözcükleri de belirtilebilir. + Örneğin,

    + + + --enable-mods-shared=most + + +

    seçeneği ile çoğu modül DSO modülü olarak derlenecektir.

    + +

    Yetersizlikler: + --enable-mods-shared=all aslında bütün modüllerin + derlenmesini sağlamaz. Tüm modülleri derlemek için şunu + yapabilirsiniz:

    + + + ./configure \
    + + --with-ldap \
    + --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache" +
    +
    +
    + +
    --enable-modules=modül-listesi
    +
    Bu seçenek modülleri devingen değil de durağan ilintilemek dışında + --enable-mods-shared seçeneğine benzer. Yani bu + modüller httpd çalıştırılır çalıştırılmaz etkin + olurlar. Yüklenmeleri için LoadModule yönergesine ihtiyaçları + yoktur.
    + +
    --enable-v4-mapped
    +
    IPv6 soketlierinin IPv4 bağlantılar üzerinde kullanılması mümkün + olur.
    + +
    --with-port=port
    +
    Bu seçenek httpd'nin dinleyeceği portu + belirler. Bu port httpd.conf yapılandırma dosyası + üretilirken kullanılır. 80. port öntanımlıdır.
    + +
    --with-program-name
    +
    Öntanımlı olan httpd yerine başka bir çalıştırabilir + ismi tanımlar.
    +
    +
    +
    + +
    Seçimlik paketler +

    Buradaki seçenekler seçimlik paketleri tanımlamak için kullanılır.

    + +
    Genel sözdizimi +

    Bir seçimlik paketi tanımlamak için genellikle şöyle bir sözdizimi + kullanılır:

    + +
    +
    --with-paket[=değer]
    +
    paket paketi kullanılır. Öntanımlı + değer yes’tir.
    + +
    --without-paket
    +
    paket paketi kullanılmaz. Öntanımlı + değer no’dur. Bu seçenek + autoconf tarafından sağlanmıştır ve Apache HTTP + Sunucusu için pek yararlı değildir.
    +
    +
    + + + +
    Özel paketler +
    +
    --with-apr=dizin|dosya
    +
    Apache Taşınabilir Arayüzü (APR) + httpd kaynak paketinin bir parçası olup HTTP Sunucu ile birlikte + derlenir. Eğer kendi kurulu APR’nizi kullanmak isterseniz bunu + configure betiğine apr-config betiğinin + yolunu belirterek ifade edebilirsiniz. Kurulu APR için bid dizin, + dosya ismi veya mutlak dosya yolu belirtebilirsiniz. + apr-config ya belirttiğiniz dizinde ya da + bin alt dizininde bulunmalıdır.
    + +
    --with-apr-util=dizin|dosya
    +
    Apache Taşınabilir Arayüzü Araçları (APU) httpd kaynak paketinin + bir parçası olup HTTP Sunucu ile birlikte derlenir. Eğer kendi + kurulu APU’nuzu kullanmak isterseniz bunu configure + betiğine apu-config betiğinin yolunu belirterek ifade + edebilirsiniz. Kurulu APR için bir dizin, dosya ismi veya mutlak + dosya yolu belirtebilirsiniz. apr-config ya + belirttiğiniz dizinde ya da bin alt dizininde + bulunmalıdır.
    + +
    --with-ssl=dizin
    +
    mod_ssl modülü etkinse configure + betiği kurulu bir OpenSSL arayacaktır. Kendi SSL/TLS kurulumunuzun + yolunu bu seçenekle belirtebilirsiniz.
    + +
    --with-z=dizin
    +
    Yapılandırmanız gerektirdiği takdirde (örneğin, + mod_deflate etkinse) configure betiği + kurulu zlib kütüphanesinin yerini tespit etmeye + çalışacaktır. Kendi sıkıştırma kütüphanenizin yerini bu seçenekle + belirtebilirsiniz.
    +
    + +

    Apache HTTP Sunucusunun çeşitli bölümleri, + mod_authn_dbm, mod_authz_dbm ve + mod_rewrite + modülünün RewriteMap + yönergesi bilgilere erişimi hızlandırmak için basit anahtar/değer + veritabanları kullanırlar. SDBM, APU içinde mevcut olduğundan bu + veritabanı her zaman kullanılabilir durumdadır. Eğer başka veritabanı + türleri kullanmak isterseniz aşağıdaki seçeneklerle bunları etkin + kılabilirsiniz:

    + +
    +
    --with-gdbm[=dizin-yolu]
    +
    Bir dizin-yolu belirtilmemişse + configure betiği GNU DBM kurulumunun kütüphanelerini ve + başlık dosyalarını bulunması olası yerlerde arar. Bir + dizin-yolu belirtilmişse + configure betiği kurulumun kütüphanelerini + dizin-yolu/lib altında, başlık dosyalarını + ise dizin-yolu/include altında arayacaktır. + Bundan başka, başlık ve kütüphane dosyalarının bulundukları yerler + iki nokta imi ile ayrılarak dizin-yolu + olarak belirtilebilir.
    + +
    --with-ndbm[=dizin-yolu]
    +
    New DBM kurulumunu araştırması dışında --with-gdbm + seçeneği gibidir.
    + +
    --with-berkeley-db[=dizin-yolu]
    +
    Berkeley DB kurulumunu araştırması dışında + --with-gdbm seçeneği gibidir.
    +
    + + Bilginize +

    DBM seçenekleri APU tarafından sağlanmış olup onun yapılandırma + betiğine aktarılır. Bu seçenekler --with-apr-util + seçeneği ile tanımlanmış bir kurulu APU varsa kullanışlı olur.

    +

    HTTP sunucunuz ile birlikte birden fazla DBM gerçeklenimi + kullanabilirsiniz. Kullanılacak DBM türünü her zaman çalışma anı + yapılandırmanızla yapılandırabilirsiniz.

    +
    +
    +
    + +
    Destek programları için seçenekler +
    +
    --enable-static-support
    +
    Destek programlarını durağan ilintili olarak derler. Yani + çalıştırılabilirin kullandığı bütün kütüphaneler kodla + bütünleştirilir. Bu seçenek belirtilmedikçe destek programları daima + devingen ilintili olarak derlenir.
    + +
    --enable-suexec
    +
    Çatallanan sürecin kullanıcı ve grup kimliklerinin + değiştirilebilmesini sağlayan suexec programının + kullanımını etkinleştirir. Sunucunuz üzerinde suid biti + etkinleştirilmiş bir program çalıştırmanın sistem güvenliğinde + yaratacağı sorunlar hakkında bir fikriniz yoksa bu seçeneği + etkinleştirmeyin. suexec yapılandırma + seçenekleri aşağıda açıklanmıştır.
    +
    + +

    Tek bir destek programını aşağıdaki seçenekleri kullanarak bir durağan + ilintili çalıştırılabilir olarak derleyebilirsiniz:

    + +
    +
    --enable-static-ab
    +
    ab programının durağan ilintili sürümü + derlenir.
    + + +
    --enable-static-checkgid
    +
    checkgid programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-htdbm
    +
    htdbm programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-htdigest
    +
    htdigest programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-htpasswd
    +
    htpasswd programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-logresolve
    +
    logresolve programının durağan ilintili sürümü + derlenir.
    + +
    --enable-static-rotatelogs
    +
    rotatelogs programının durağan ilintili sürümü + derlenir.
    +
    + +
    + <code>suexec</code> yapılandırma seçenekleri + +

    Aşağıdaki seçeneklerle suexec programının + davranışı hassas bir şekilde ayarlanabilir. Daha ayrıntılı bilgi için + suEXEC yapılandırması ve kurulumuna + bakınız.

    + +
    +
    --with-suexec-bin
    +
    Bu seçenek ile suexec çalıştırılabilirinin yeri + belirtilir. Öntanımlı olarak --sbindir ile belirtilen + dizine kurulur (Kurulum dizinlerinde + ince ayar konusuna bakınız).
    + +
    --with-suexec-caller
    +
    Bu seçenek ile suexec’i çalıştırabilecek + kullanıcı belirtilir. Normalde httpd programını + çalıştıran kullanıcı olmalıdır.
    + +
    --with-suexec-docroot
    +
    Bu seçenek ile suexec'e erişebilecek + çalıştırılabilirlerin altında bulunacağı dizin belirtilir. + --datadir/htdocs öntanımlıdır.
    + +
    --with-suexec-gidmin
    +
    suexec için hedef kullanıcı olmasına izin + verilen en küçük grup kimliğini tanımlamak için kullanılır. 100 + öntanımlıdır.
    + +
    --with-suexec-logfile
    +
    suexec günlük dosyasının ismi belirtilir. + Öntanımlı olarak bu dosyanın ismi suexec_log olup + --logfiledir seçeneği ile belirtilen dizin altında + bulunur.
    + +
    --with-suexec-safepath
    +
    suexec tarafından çalıştırılacak süreçlerin + çalıştırılabilirlerinin bulunabileceği dizinleri PATH + ortam değişkenine tanımlamak için kullanılır. + /usr/local/bin:/usr/bin:/bin öntanımlıdır.
    + +
    --with-suexec-userdir
    +
    Bu seçenek, kullanıcı dizinleri altında suexec + tarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin + bulunabileceği alt dizini tanımlar. suexec + programını (mod_userdir tarafından sağlanan) + kullanıcıya özel dizinlerde kullanmak istediğinizde bu gereklidir. + public_html alt dizini öntanımlıdır.
    + +
    --with-suexec-uidmin
    +
    suexec için hedef kullanıcı olmasına izin + verilen en küçük kullanıcı kimliğini tanımlamak için kullanılır. + 100 öntanımlıdır.
    + +
    --with-suexec-umask
    +
    suexec tarafından çalıştırılacak süreçler için + umask tanımlar. Sisteminiz için geçerli ayarlar + öntanımlıdır.
    +
    +
    +
    +
    + +
    Ortam Değişkenleri +

    configure betiğinin yerleri ve isimleri standartlara uygun + olmayan kütüphaneleri ve programları bulmasını yardımcı olan veya + configure betiği tarafından yapılan bazı seçimleri + değiştirmenizi sağlayacak bazı ortam değişkenleri vardır.

    + + +
    +
    CC
    +
    Bu değişkenle derleme sırasında kullanılacak C derleyici komutu + tanımlanır.
    + +
    CFLAGS
    +
    Bu değişkenle derleme sırasında kullanılacak C derleyici seçenekleri + tanımlanır.
    + +
    CPP
    +
    Bu değişkenle derleme sırasında kullanılacak C önişlemci komutu + tanımlanır.
    + +
    CPPFLAGS
    +
    C/C++ önişlemci seçenekleri tanımlanır. Örneğin, eğer başlık + dosyaları standart yerlerinde değil de + includedir dizinindeyse bunu + -Iincludedir seçeneği olarak + belirtebilirsiniz.
    + +
    LDFLAGS
    +
    İlintileyici seçenekleri tanımlanır. Örneğin, eğer kütüphane + dosyalarınız standart yerlerinde değil de + libdir dizinindeyse bunu + -Llibdir seçeneği olarak belirtebilirsiniz.
    +
    +
    +
    diff --git a/docs/manual/programs/dbmmanage.html b/docs/manual/programs/dbmmanage.html index 443de47d702..dcbee7abdff 100644 --- a/docs/manual/programs/dbmmanage.html +++ b/docs/manual/programs/dbmmanage.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: dbmmanage.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: dbmmanage.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: dbmmanage.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/dbmmanage.html.en b/docs/manual/programs/dbmmanage.html.en index 0e24e056807..2a0974d1cbc 100644 --- a/docs/manual/programs/dbmmanage.html.en +++ b/docs/manual/programs/dbmmanage.html.en @@ -1,25 +1,33 @@ - -dbmmanage - Manage user authentication files in DBM format - Apache HTTP Server +dbmmanage - Manage user authentication files in DBM format - Apache HTTP Server Version 2.2 - - + + + +
    <-

    dbmmanage - Manage user authentication files in DBM format

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    dbmmanage - Manage user authentication files in DBM format

    Available Languages:  en  | - ko 

    + ko  | + tr 

    dbmmanage is used to create and update the DBM format files @@ -38,7 +46,7 @@

    +

    See also

    top

    Synopsis

    @@ -184,8 +192,30 @@

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/dbmmanage.html.ko.euc-kr b/docs/manual/programs/dbmmanage.html.ko.euc-kr index 6db76b44997..faf85d086f5 100644 --- a/docs/manual/programs/dbmmanage.html.ko.euc-kr +++ b/docs/manual/programs/dbmmanage.html.ko.euc-kr @@ -1,25 +1,33 @@ - -dbmmanage - DBM Çü½ÄÀÇ »ç¿ëÀÚÀÎÁõ ÆÄÀÏÀ» °ü¸®ÇѴÙ - Apache HTTP Server +dbmmanage - DBM Çü½ÄÀÇ »ç¿ëÀÚÀÎÁõ ÆÄÀÏÀ» °ü¸®ÇѴÙ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    dbmmanage - DBM Çü½ÄÀÇ »ç¿ëÀÚÀÎÁõ ÆÄÀÏÀ» °ü¸®ÇѴÙ

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    dbmmanage - DBM Çü½ÄÀÇ »ç¿ëÀÚÀÎÁõ ÆÄÀÏÀ» °ü¸®ÇѴÙ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -38,7 +46,7 @@ +

    Âü°í

    top

    °³¿ä

    @@ -165,8 +173,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/dbmmanage.html.tr.utf8 b/docs/manual/programs/dbmmanage.html.tr.utf8 new file mode 100644 index 00000000000..d05510096cc --- /dev/null +++ b/docs/manual/programs/dbmmanage.html.tr.utf8 @@ -0,0 +1,237 @@ + + + + + +dbmmanage - DBM biçemli kullanıcı kimlik doğrulama dosyalarını yönetir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    dbmmanage - DBM biçemli kullanıcı kimlik doğrulama dosyalarını yönetir

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    dbmmanage, + mod_authn_dbm üzerinden HTTP kullanıcılarının temel + kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak DBM dosyalarını oluşturmak ve güncellemek için + kullanılır. Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı + sadece dbmmanage tarafından oluşturulan + dosyalarda listelenmiş kullanıcılara tahsis edilebilir. Bu program + sadece, kullanıcı isimleri bir DBM dosyasında saklanmak istenirse işe + yarar. Düz metin bir veritabanı kullanmak isterseniz + htpasswd sayfasına bakınız.

    + +

    Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler. + Kullanıcı kimlik doğrulamasını + httpd'de yapılandırmak için gerekli + yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan + ve http://httpd.apache.org/ + adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.

    +
    + +
    top
    +
    +

    Kullanım

    +

    dbmmanage [ kodlama ] + dosyaismi add|adduser|check|delete|update + kullanıcı + [ şifreli_parola + [ grup[,grup...] + [ açıklama ] ] ]

    + +

    dbmmanage dosyaismi + view [ kullanıcı ]

    + +

    dbmmanage dosyaismi import

    +
    top
    +
    +

    Seçenekler

    +
    +
    dosyaismi
    +
    DBM dosyasının ismi. Genellikle, .db, .pag + veya .dir eklentisi olmaksızın belirtilir.
    + +
    kullanıcı
    +
    İşlemleri gerçekleştirecek kullanıcı ismi. + kullanıcı ismi ikinokta imi (:) + içeremez.
    + +
    şifreli_parola
    +
    update ve + add komutları için kullanılacak şifreli + paroladır. Parolanın istenmesini sağlamak, fakat hemen ardından alanları + doldurmak için bir tire imi (-) kullanabilirsiniz. Buna ek + olarak, update komutunu kullanırken özgün + parolaya dokunulmaması için bir nokta imi (.) + kullanabilirsiniz.
    + +
    grup
    +
    Kullanıcının üyesi olduğu grup. Grup ismi ikinokta imi + (:) içeremez.Kullanıcıyı bir gruba atamadan açıklama alanını + doldurmak istiyorsanız bir tire imi (-) kullanabilirsiniz. + Buna ek olarak, update komutunu kullanırken + özgün gruba dokunulmaması için bir nokta imi (.) + kullanabilirsiniz.
    + +
    açıklama
    +
    Adı ve soyadı, eposta adresi gibi kullanıcıyla ilgili bir takım + bilgiler buraya yazılır. Sunucu bu alanı gözardı eder.
    +
    + +

    Kodlamalar

    +
    +
    -d
    +
    CRYPT şifrelemesi (Win32 ve Netware hariç, öntanımlı)
    + +
    -m
    +
    MD5 şifrelemesi (Win32 ve Netware için öntanımlı)
    + +
    -s
    +
    SHA1 şifrelemesi
    + +
    -p
    +
    düz metin (önerilmez)
    +
    + + +

    Komutlar

    +
    +
    add
    +
    şifreli_parola'yı kullanarak + dosyaismi dosyasına + kullanıcı için bir girdi ekler. + +

    dbmmanage passwords.dat add rbowen foKntnEF3KSXA

    +
    + +
    adduser
    +
    Parola sorduktan sonra dosyaismi + dosyasına kullanıcı için bir girdi ekler. + +

    dbmmanage passwords.dat adduser krietz

    +
    + +
    check
    +
    Parola sorduktan sonra belirtilen kullanıcı, + dosyaismi dosyasında var mı diye bakar; varsa + belirtilen parolayı kullanıcınınkiyle eşleştirmeye çalışır. + +

    dbmmanage passwords.dat check rbowen

    +
    + +
    delete
    +
    dosyaismi dosyasından + kullanıcı girdisini siler. + +

    dbmmanage passwords.dat delete rbowen

    +
    + +
    import
    +
    Standart girdiden + kullanıcı:parola satırlarını (her + satırda bir tane) okur ve bunları dosyaismi + dosyasına ekler. Parola şifrelenmiş olmalıdır.
    + +
    update
    +
    Belirtilen kullanıcı'nın + dosyaismi dosyasında mevcut olması dışında + adduser komutu gibidir. + +

    dbmmanage passwords.dat update rbowen

    +
    + +
    view
    +
    Sadece, DBM dosyasının içeriğini gösterir. Bir + kullanıcı belirtirseniz sadece o kaydı + gösterir. + +

    dbmmanage passwords.dat view

    +
    +
    + +
    top
    +
    +

    Hatalar

    +

    Birden fazla DBM dosya biçemi vardır ve büyük bir olasılıkla da + sisteminizde bu birden fazla biçemle ilgili kütüphaneler vardır. SDBM, + NDBM, GNU'nun GDBM projesi ve Berkeley DB 2 bunların başlıcalarıdır. Ne + yazık ki, bu kütüphanelerin her birinin dosya biçimleri farklıdır. Bu + bakımdan, dosyaismi dosyasında kullanılan dosya + biçeminin dbmmanage tarafından kullanılanla + aynı biçemde olduğundan emin olmalısınız. + dbmmanage hangi tür DBM dosyasına baktığını + saptayacak yeterliliğe sahip değildir. Yanlış biçemli bir dosya + belirtirseniz hiçbir şey dönmeyebileceği gibi, başka isimde bir DBM + dosyasının oluşturulması veya daha da kötüsü üzerine yazmaya + çalışıyorsanız DBM dosyasının bozulması bile olasıdır.

    + +

    dbmmanage programının başlangıcında + @AnyDBM::ISA dizisi olarak tanımlanmış DBM biçem + tercihlerinin bir listesi vardır. Berkeley DB 2 biçemini tercih + ettiğimizden dbmmanage sistem + kütüphanelerini şu sıraya göre arar: Berkeley DB 2, NDBM, GDBM ve SDBM. + dbmmanage DBM dosyası hareketleri için bu + sıralamaya göre bulduğu ilk kütüphaneyi kullanacaktır. Sıralama Perl'deki + dbmopen() çağrısının kullandığından faklı olduğu gibi + Perl'deki standart @AnyDBM::ISA sıralamasından da oldukça + farklıdır. Bu bakımdan, DBM dosyalarınızı yönetmek için Perl ile yazılmış + başka araçlar kullanıyorsanız, onların da bu tercih sırasını izlemesini + sağlamalısınız. Benzer şekilde, bu dosyalara erişmek için diğer dillerde + (C gibi) yazılmış programlar kullanıyorsanız bunlar için de aynı durum + geçerlidir.

    + +

    Unix sistemlerinde, kullanılan DBM dosyasının biçemini öğrenmek için + file programı kullanılabilir.

    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/dbmmanage.xml b/docs/manual/programs/dbmmanage.xml index 14dd69820e3..29a3132f5b0 100644 --- a/docs/manual/programs/dbmmanage.xml +++ b/docs/manual/programs/dbmmanage.xml @@ -4,12 +4,12 @@ + - + dbmmanage /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/dbmmanage.xml.tr b/docs/manual/programs/dbmmanage.xml.tr new file mode 100644 index 00000000000..fb1a16b970d --- /dev/null +++ b/docs/manual/programs/dbmmanage.xml.tr @@ -0,0 +1,208 @@ + + + + + + + + + +Programlar + +dbmmanage - DBM biçemli kullanıcı kimlik doğrulama dosyalarını yönetir + + +

    dbmmanage, + mod_authn_dbm üzerinden HTTP kullanıcılarının temel + kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak DBM dosyalarını oluşturmak ve güncellemek için + kullanılır. Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı + sadece dbmmanage tarafından oluşturulan + dosyalarda listelenmiş kullanıcılara tahsis edilebilir. Bu program + sadece, kullanıcı isimleri bir DBM dosyasında saklanmak istenirse işe + yarar. Düz metin bir veritabanı kullanmak isterseniz + htpasswd sayfasına bakınız.

    + +

    Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler. + Kullanıcı kimlik doğrulamasını + httpd'de yapılandırmak için gerekli + yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan + ve http://httpd.apache.org/ + adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.

    +
    +httpd +mod_authn_dbm +mod_authz_dbm + +
    Kullanım +

    dbmmanage [ kodlama ] + dosyaismi add|adduser|check|delete|update + kullanıcı + [ şifreli_parola + [ grup[,grup...] + [ açıklama ] ] ]

    + +

    dbmmanage dosyaismi + view [ kullanıcı ]

    + +

    dbmmanage dosyaismi import

    +
    + +
    Seçenekler +
    +
    dosyaismi
    +
    DBM dosyasının ismi. Genellikle, .db, .pag + veya .dir eklentisi olmaksızın belirtilir.
    + +
    kullanıcı
    +
    İşlemleri gerçekleştirecek kullanıcı ismi. + kullanıcı ismi ikinokta imi (:) + içeremez.
    + +
    şifreli_parola
    +
    update ve + add komutları için kullanılacak şifreli + paroladır. Parolanın istenmesini sağlamak, fakat hemen ardından alanları + doldurmak için bir tire imi (-) kullanabilirsiniz. Buna ek + olarak, update komutunu kullanırken özgün + parolaya dokunulmaması için bir nokta imi (.) + kullanabilirsiniz.
    + +
    grup
    +
    Kullanıcının üyesi olduğu grup. Grup ismi ikinokta imi + (:) içeremez.Kullanıcıyı bir gruba atamadan açıklama alanını + doldurmak istiyorsanız bir tire imi (-) kullanabilirsiniz. + Buna ek olarak, update komutunu kullanırken + özgün gruba dokunulmaması için bir nokta imi (.) + kullanabilirsiniz.
    + +
    açıklama
    +
    Adı ve soyadı, eposta adresi gibi kullanıcıyla ilgili bir takım + bilgiler buraya yazılır. Sunucu bu alanı gözardı eder.
    +
    + +
    Kodlamalar +
    +
    -d
    +
    CRYPT şifrelemesi (Win32 ve Netware hariç, öntanımlı)
    + +
    -m
    +
    MD5 şifrelemesi (Win32 ve Netware için öntanımlı)
    + +
    -s
    +
    SHA1 şifrelemesi
    + +
    -p
    +
    düz metin (önerilmez)
    +
    +
    + +
    Komutlar +
    +
    add
    +
    şifreli_parola'yı kullanarak + dosyaismi dosyasına + kullanıcı için bir girdi ekler. + + dbmmanage passwords.dat add rbowen foKntnEF3KSXA +
    + +
    adduser
    +
    Parola sorduktan sonra dosyaismi + dosyasına kullanıcı için bir girdi ekler. + + dbmmanage passwords.dat adduser krietz +
    + +
    check
    +
    Parola sorduktan sonra belirtilen kullanıcı, + dosyaismi dosyasında var mı diye bakar; varsa + belirtilen parolayı kullanıcınınkiyle eşleştirmeye çalışır. + + dbmmanage passwords.dat check rbowen +
    + +
    delete
    +
    dosyaismi dosyasından + kullanıcı girdisini siler. + + dbmmanage passwords.dat delete rbowen +
    + +
    import
    +
    Standart girdiden + kullanıcı:parola satırlarını (her + satırda bir tane) okur ve bunları dosyaismi + dosyasına ekler. Parola şifrelenmiş olmalıdır.
    + +
    update
    +
    Belirtilen kullanıcı'nın + dosyaismi dosyasında mevcut olması dışında + adduser komutu gibidir. + + dbmmanage passwords.dat update rbowen +
    + +
    view
    +
    Sadece, DBM dosyasının içeriğini gösterir. Bir + kullanıcı belirtirseniz sadece o kaydı + gösterir. + + dbmmanage passwords.dat view +
    +
    +
    +
    + +
    Hatalar +

    Birden fazla DBM dosya biçemi vardır ve büyük bir olasılıkla da + sisteminizde bu birden fazla biçemle ilgili kütüphaneler vardır. SDBM, + NDBM, GNU'nun GDBM projesi ve Berkeley DB 2 bunların başlıcalarıdır. Ne + yazık ki, bu kütüphanelerin her birinin dosya biçimleri farklıdır. Bu + bakımdan, dosyaismi dosyasında kullanılan dosya + biçeminin dbmmanage tarafından kullanılanla + aynı biçemde olduğundan emin olmalısınız. + dbmmanage hangi tür DBM dosyasına baktığını + saptayacak yeterliliğe sahip değildir. Yanlış biçemli bir dosya + belirtirseniz hiçbir şey dönmeyebileceği gibi, başka isimde bir DBM + dosyasının oluşturulması veya daha da kötüsü üzerine yazmaya + çalışıyorsanız DBM dosyasının bozulması bile olasıdır.

    + +

    dbmmanage programının başlangıcında + @AnyDBM::ISA dizisi olarak tanımlanmış DBM biçem + tercihlerinin bir listesi vardır. Berkeley DB 2 biçemini tercih + ettiğimizden dbmmanage sistem + kütüphanelerini şu sıraya göre arar: Berkeley DB 2, NDBM, GDBM ve SDBM. + dbmmanage DBM dosyası hareketleri için bu + sıralamaya göre bulduğu ilk kütüphaneyi kullanacaktır. Sıralama Perl'deki + dbmopen() çağrısının kullandığından faklı olduğu gibi + Perl'deki standart @AnyDBM::ISA sıralamasından da oldukça + farklıdır. Bu bakımdan, DBM dosyalarınızı yönetmek için Perl ile yazılmış + başka araçlar kullanıyorsanız, onların da bu tercih sırasını izlemesini + sağlamalısınız. Benzer şekilde, bu dosyalara erişmek için diğer dillerde + (C gibi) yazılmış programlar kullanıyorsanız bunlar için de aynı durum + geçerlidir.

    + +

    Unix sistemlerinde, kullanılan DBM dosyasının biçemini öğrenmek için + file programı kullanılabilir.

    +
    + +
    diff --git a/docs/manual/programs/htcacheclean.html b/docs/manual/programs/htcacheclean.html index 454c00465f8..28d47ea810e 100644 --- a/docs/manual/programs/htcacheclean.html +++ b/docs/manual/programs/htcacheclean.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: htcacheclean.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: htcacheclean.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: htcacheclean.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/htcacheclean.html.en b/docs/manual/programs/htcacheclean.html.en index 0d1c4a6960c..c880759afd5 100644 --- a/docs/manual/programs/htcacheclean.html.en +++ b/docs/manual/programs/htcacheclean.html.en @@ -1,25 +1,33 @@ - -htcacheclean - Clean up the disk cache - Apache HTTP Server +htcacheclean - Clean up the disk cache - Apache HTTP Server Version 2.2 - - + + + +
    <-

    htcacheclean - Clean up the disk cache

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htcacheclean - Clean up the disk cache

    Available Languages:  en  | - ko 

    + ko  | + tr 

    htcacheclean is used to keep the size of @@ -32,7 +40,7 @@

    +

    See also

    top

    Synopsis

    @@ -45,7 +53,7 @@ -ppath -llimit

    -

    htcacheclean -b +

    htcacheclean [ -n ] [ -t ] [ -i ] @@ -113,8 +121,30 @@

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/htcacheclean.html.ko.euc-kr b/docs/manual/programs/htcacheclean.html.ko.euc-kr index eedcdb76e89..00fc9ed873c 100644 --- a/docs/manual/programs/htcacheclean.html.ko.euc-kr +++ b/docs/manual/programs/htcacheclean.html.ko.euc-kr @@ -1,25 +1,33 @@ - -htcacheclean - µð½ºũ ij½¬¸¦ û¼ÒÇѴÙ - Apache HTTP Server +htcacheclean - µð½ºũ ij½¬¸¦ û¼ÒÇѴÙ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    htcacheclean - µð½ºũ ij½¬¸¦ û¼ÒÇѴÙ

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htcacheclean - µð½ºũ ij½¬¸¦ û¼ÒÇѴÙ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -34,7 +42,7 @@ +

    Âü°í

    top

    °³¿ä

    @@ -106,8 +114,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/htcacheclean.html.tr.utf8 b/docs/manual/programs/htcacheclean.html.tr.utf8 new file mode 100644 index 00000000000..89943fa5ef3 --- /dev/null +++ b/docs/manual/programs/htcacheclean.html.tr.utf8 @@ -0,0 +1,154 @@ + + + + + +htcacheclean - Disk arabelleğini temizler - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htcacheclean - Disk arabelleğini temizler

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    htcacheclean, + mod_disk_cache deposunun boyutlarını belli sınırlar + içinde tutmak için kullanılır. Bu araç ya elle ya da bir artalan süreci + olarak çalıştırılır. Artalan süreci olarak çalıştırıldığında, silinecek + arabellek içeriğini tespit etmek için arabellek dizinlerine belli + aralıklarla bakmak dışında uykuda olur. Artalan sürecini temiz olarak + durdurmak için TERM veya INT sinyali göndermeniz yeterlidir.

    +
    + +
    top
    +
    +

    Kullanım

    +

    htcacheclean + [ -D ] + [ -v ] + [ -t ] + [ -r ] + [ -n ] + -pyol + -lsınır

    + +

    htcacheclean + [ -n ] + [ -t ] + [ -i ] + -dsüre + -pyol + -lsınır

    +
    top
    +
    +

    Options

    +
    +
    -d süre
    +
    Artalanda çalışarak süre dakikada bir + arabelleği temizler. Bu seçenek -D, + -v ve -r + seçenekleri ile birlikte kullanılamaz. Artalan sürecini temiz olarak + sonlandırmak için SIGTERM veya SIGINT göndermek + yeterlidir.
    + +
    -D
    +
    Kuru kuruya çalışıp, hiçbir şeyi silmez. + -d seçeneği ile birlikte kullanılamaz.
    + +
    -v
    +
    Çıktı daha ayrıntılı olur. -d seçeneği + ile birlikte kullanılamaz.
    + +
    -r
    +
    İyice temizlik yapılır. Bunun için Apache HTTP sunucusunun + çalışmadığı varsayılır (aksi takdirde arabellek içeriği bozulabilir). + -t seçeneğinin de uygulanmasını sağlar. + -d seçeneği ile birlikte kullanılamaz.
    + +
    -n
    +
    Nazik olur. Diğer süreçlerin yararına daha yavaş çalışır. (a) disk + G/Ç işlemlerinde gecikmeler olursa ve (b) çekirdek bu arada başka bir + süreci öne çekmişse htcacheclean uyumayı + tercih edecektir.
    + +
    -t
    +
    Tüm boş dizinleri siler. Öntanımlı olarak, sadece arabellek dosyaları + silinirse de bazı yapılandırmalarda büyük miktarda dizin oluşturulması bu + seçeneğin kullanılmasını gerektirebilir. Yapılandırmanız çok sayıda dizin + gerektiriyorsa ve dosya düğümlerinin veya dosya ayırma tablolarının + tükenmesi sözkonusu ise bu seçeneğin kullanılması önerilir.
    + +
    -p yol
    +
    yol, disk arabelleğinin kök dizini olarak + belirtilir. CacheRoot + yönergesinde belirtilen dizin olmalıdır.
    + +
    -l sınır
    +
    sınır, disk arabelleğinin toplam boyutu + olarak belirtilir. Değerin öntanımlı olarak bayt cinsinden belirtileceği + varsayılır. Değerin sonuna kilobayt için K, megabayt + M, bayt için B harfi konulabilir.
    + +
    -i
    +
    Akıllı olup sadece disk arabelleği değiştiği zaman çalışır. Bu + seçenek -d seçeneği ile birlikte + belirtilmek zorundadır.
    +
    +
    top
    +
    +

    Çıkış Durumu

    +

    htcacheclean, tüm işlemler başarıyla + yerine getirildiğinde 0, aksi takdirde 1 + döndürür.

    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/htcacheclean.xml b/docs/manual/programs/htcacheclean.xml index e021af966a4..cb3a9b43402 100644 --- a/docs/manual/programs/htcacheclean.xml +++ b/docs/manual/programs/htcacheclean.xml @@ -4,12 +4,12 @@ + - + htcacheclean /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/htcacheclean.xml.tr b/docs/manual/programs/htcacheclean.xml.tr new file mode 100644 index 00000000000..d863a415d00 --- /dev/null +++ b/docs/manual/programs/htcacheclean.xml.tr @@ -0,0 +1,123 @@ + + + + + + + + + +Programlar + +htcacheclean - Disk arabelleğini temizler + + +

    htcacheclean, + mod_disk_cache deposunun boyutlarını belli sınırlar + içinde tutmak için kullanılır. Bu araç ya elle ya da bir artalan süreci + olarak çalıştırılır. Artalan süreci olarak çalıştırıldığında, silinecek + arabellek içeriğini tespit etmek için arabellek dizinlerine belli + aralıklarla bakmak dışında uykuda olur. Artalan sürecini temiz olarak + durdurmak için TERM veya INT sinyali göndermeniz yeterlidir.

    +
    +mod_disk_cache + +
    Kullanım +

    htcacheclean + [ -D ] + [ -v ] + [ -t ] + [ -r ] + [ -n ] + -pyol + -lsınır

    + +

    htcacheclean + [ -n ] + [ -t ] + [ -i ] + -dsüre + -pyol + -lsınır

    +
    + +
    Options +
    +
    -d süre
    +
    Artalanda çalışarak süre dakikada bir + arabelleği temizler. Bu seçenek -D, + -v ve -r + seçenekleri ile birlikte kullanılamaz. Artalan sürecini temiz olarak + sonlandırmak için SIGTERM veya SIGINT göndermek + yeterlidir.
    + +
    -D
    +
    Kuru kuruya çalışıp, hiçbir şeyi silmez. + -d seçeneği ile birlikte kullanılamaz.
    + +
    -v
    +
    Çıktı daha ayrıntılı olur. -d seçeneği + ile birlikte kullanılamaz.
    + +
    -r
    +
    İyice temizlik yapılır. Bunun için Apache HTTP sunucusunun + çalışmadığı varsayılır (aksi takdirde arabellek içeriği bozulabilir). + -t seçeneğinin de uygulanmasını sağlar. + -d seçeneği ile birlikte kullanılamaz.
    + +
    -n
    +
    Nazik olur. Diğer süreçlerin yararına daha yavaş çalışır. (a) disk + G/Ç işlemlerinde gecikmeler olursa ve (b) çekirdek bu arada başka bir + süreci öne çekmişse htcacheclean uyumayı + tercih edecektir.
    + +
    -t
    +
    Tüm boş dizinleri siler. Öntanımlı olarak, sadece arabellek dosyaları + silinirse de bazı yapılandırmalarda büyük miktarda dizin oluşturulması bu + seçeneğin kullanılmasını gerektirebilir. Yapılandırmanız çok sayıda dizin + gerektiriyorsa ve dosya düğümlerinin veya dosya ayırma tablolarının + tükenmesi sözkonusu ise bu seçeneğin kullanılması önerilir.
    + +
    -p yol
    +
    yol, disk arabelleğinin kök dizini olarak + belirtilir. CacheRoot + yönergesinde belirtilen dizin olmalıdır.
    + +
    -l sınır
    +
    sınır, disk arabelleğinin toplam boyutu + olarak belirtilir. Değerin öntanımlı olarak bayt cinsinden belirtileceği + varsayılır. Değerin sonuna kilobayt için K, megabayt + M, bayt için B harfi konulabilir.
    + +
    -i
    +
    Akıllı olup sadece disk arabelleği değiştiği zaman çalışır. Bu + seçenek -d seçeneği ile birlikte + belirtilmek zorundadır.
    +
    +
    + +
    Çıkış Durumu +

    htcacheclean, tüm işlemler başarıyla + yerine getirildiğinde 0, aksi takdirde 1 + döndürür.

    +
    + +
    diff --git a/docs/manual/programs/htdbm.html b/docs/manual/programs/htdbm.html index ad1f2a28673..9adf3229f9e 100644 --- a/docs/manual/programs/htdbm.html +++ b/docs/manual/programs/htdbm.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: htdbm.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: htdbm.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/htdbm.html.en b/docs/manual/programs/htdbm.html.en index e6a935abb55..189cc3e4c9f 100644 --- a/docs/manual/programs/htdbm.html.en +++ b/docs/manual/programs/htdbm.html.en @@ -1,29 +1,37 @@ - -htdbm - Manipulate DBM password databases - Apache HTTP Server +htdbm - Manipulate DBM password databases - Apache HTTP Server Version 2.2 - - + + + +
    <-

    htdbm - Manipulate DBM password databases

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htdbm - Manipulate DBM password databases

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + tr 

    htdbm is used to manipulate the DBM format files used to store usernames and password for basic authentication of HTTP users via - mod_auth_dbm. See the dbmmanage + mod_authn_dbm. See the dbmmanage documentation for more information about these DBM files.

    +

    See also

    top

    Synopsis

    @@ -274,8 +282,30 @@ character :.

    -

    Available Languages:  en 

    -
    +

    Available Languages:  en  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/htdbm.html.tr.utf8 b/docs/manual/programs/htdbm.html.tr.utf8 new file mode 100644 index 00000000000..f4b40343f1f --- /dev/null +++ b/docs/manual/programs/htdbm.html.tr.utf8 @@ -0,0 +1,318 @@ + + + + + +htdbm - DBM parola veritabanlarını yönetir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htdbm - DBM parola veritabanlarını yönetir

    +
    +

    Mevcut Diller:  en  | + tr 

    +
    + +

    htdbm, + mod_authn_dbm üzerinden HTTP kullanıcılarının temel + kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak DBM dosyalarını yönetmek için kullanılır. DBM + dosyaları hakkında daha ayrıntılı bilgi edinmek için + dbmmanage sayfasına bakınız.

    +
    + +
    top
    +
    +

    Kullanım

    +

    htdbm + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + [ -x ] + parola-dosyası kullanıcı

    + +

    htdbm -b + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + parola-dosyası kullanıcı parola

    + +

    htdbm -n + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + kullanıcı

    + +

    htdbm -nb + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + kullanıcı parola

    + +

    htdbm -v + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + parola-dosyası kullanıcı

    + +

    htdbm -vb + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + parola-dosyası kullanıcı parola

    + +

    htdbm -x + [ -TVTtürü ] + [ -m | + -d | + -p | + -s ] + parola-dosyası kullanıcı

    + +

    htdbm -l + [ -TVTtürü ] +

    +
    top
    +
    +

    Seçenekler

    +
    +
    -b
    +
    Betik kipi; parola için istek yapmak yerine parola komut satırından + verilir. Parola komut satırında görünür olacağından çok + dikkatli kullanmak gerekir.
    + +
    -c
    +
    parola-dosyası oluşturur. Dosya mevcutsa, + dosya silinip yeniden yazılır. Bu seçenek + -n seçeneği ile birlikte kullanılamaz.
    + +
    -n
    +
    Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir. + parola-dosyası belirtilmediğinden, bu seçenek + komut satırı sözdizimini değiştirir. Bu seçenek + -c seçeneği ile birlikte kullanılamaz.
    + +
    -m
    +
    Parolalar için MD5 şifrelemesi kullanılır. Windows, Netware ve TPF + için öntanımlıdır.
    + +
    -d
    +
    Parolaları şifrelemek için crypt() kullanılır. Windows, + Netware ve TPF dışında öntanımlıdır. + htdbm tarafından tüm platformlarda + destekleniyor olsa da Windows, Netware ve TPF üzerinde + httpd sunucusu tarafından desteklenmez.
    + +
    -s
    +
    Parolalar için SHA şifrelemesi kullanılır. LDAP Dizin değişim + biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü + kolaylaştırır.
    + +
    -p
    +
    Düz metin parolalar kullanılır. htdbm + tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve + TPF üzerinde httpd sunucusu tarafından sadece düz + metin parolalar kabul edilir.
    + +
    -l
    +
    Veritabanındaki kullanıcıları açıklamalarıyla birlikte standart + çıktıya gönderir.
    + +
    -t
    +
    Son değiştirgenin bir açıklama olarak yorumlanmasını sağlar. Bu + seçenek kullanıldığında komut satırının sonuna fazladan bir dizge + eklenebilir. Bu dizge, veritabanında belirtilen kullanıcının "Comment" + alanında saklanır.
    + +
    -v
    +
    Kullanıcı adını ve parolasını doğrular. Program belirtilen parolanın + geçerli olup olmadığını belirten bir ileti basar. Eğer parola geçersizse + program hata kodu 3 ile çıkar.
    + +
    -x
    +
    Kullanıcıyı siler. Kullanıcı belirtilen DBM dosyasında mevcutsa + silinir.
    + +
    parola-dosyası
    +
    DBM dosyasının ismi. Genellikle, .db, .pag + veya .dir eklentisi olmaksızın belirtilir. + -c seçeneği ile birlikte verilmişse ve DBM + dosyası mevcut değilse dosya oluşturulur, mevcutsa dosya güncellenir.
    + +
    kullanıcı
    +
    parola-dosyası'nda oluşturulacak veya + güncellenecek kullanıcı ismi. kullanıcı bu + dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası + değiştirilir.
    + +
    parola
    +
    Şifrelenip DBM dosyasında saklanacak düz metin parola. Sadece + -b seçeneği ile kullanılır.
    + +
    -T VTtürü
    +
    DBM dosyasının türü; SDBM, GDBM, DB, veya "default" olabilir.
    +
    +
    top
    +
    +

    Hatalar

    +

    Birden fazla DBM dosya biçemi vardır ve büyük bir olasılıkla da + sisteminizde bu birden fazla biçemle ilgili kütüphaneler vardır. SDBM, + NDBM, GNU'nun GDBM projesi ve Berkeley/Sleepycat DB 2/3/4 bunların + başlıcalarıdır. Ne yazık ki, bu kütüphanelerin her birinin dosya + biçimleri farklıdır. Bu bakımdan, dosyaismi + dosyasında kullanılan dosya biçeminin htdbm + tarafından kullanılanla aynı biçemde olduğundan emin olmalısınız. + htdbm hangi tür DBM dosyasına baktığını + saptayacak yeterliliğe sahip değildir. Yanlış biçemli bir dosya + belirtirseniz hiçbir şey dönmeyebileceği gibi, başka isimde bir DBM + dosyasının oluşturulması veya daha da kötüsü üzerine yazmaya + çalışıyorsanız DBM dosyasının bozulması bile olasıdır.

    + +

    Unix sistemlerinde, kullanılan DBM dosyasının biçemini öğrenmek için + file programı kullanılabilir.

    +
    top
    +
    +

    Çıkış Durumu

    +

    htdbm, kullanıcı ismi ve parolasını DBM + dosyasına başarıyla eklemiş veya güncellemişse 0, dosyalara + erişirken bir sorun çıkmışsa 1, komut satırında bir + sözdizimi hatası varsa 2, parola etkileşimli alınmış fakat + girdi ile eşleşme sağlanamamışsa 3, işlem kesintiye + uğramışsa 4, bir değer çok uzunsa 5 (kullanıcı, + parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter + içeriyorsa (Kısıtlamalar bölümüne bakınız) + 6 ve dosya geçerli bir DBM parola dosyası değilse + 7 değeriyle döner.

    +
    top
    +
    +

    Örnekler

    +

    + htdbm /usr/local/etc/apache/.htdbm-users jsmith +

    + +

    jsmith kullanıcısı için parolayı ekler veya değiştirir. + Parolayı vermesi için kullanıcıya parola isteği yapılır. Windows üzerinde + çalıştırılırsa parola Apache MD5 algoritması ile şifrelenir, aksi + takdirde sistemin crypt() yordamı kullanılır. Dosya mevcut + değilse htdbm beklenen hiçbir işlemi + yapmadan bir hata vererek çıkar.

    + +

    + htdbm -c /home/doe/public_html/.htdbm jane +

    + +

    Yeni bir dosya oluşturur ve kullanıcı jane için kaydı bir + girdi olarak bu dosyaya yazar. Dosya mevcutsa fakat okunamıyor veya + yazılamıyorsa dosyada bir değişiklik yapılmaz ve + htdbm bir ileti gösterip bir hata durumu + ile çıkar.

    + +

    + htdbm -mb /usr/web/.htdbm-all jones Pwd4Steve +

    + +

    Komut satırından verilen parolayı (Pwd4Steve) MD5 + algoritmasıyla şifreler ve bunu belirtilen dosyada saklar.

    +
    top
    +
    +

    Güvenlik Değerlendirmeleri

    +

    htdbm tarafından yönetilen parola + dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir + tarayıcı ile okunabilecek bir yerde bulunmamalıdır.

    + +

    Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle + -b seçeneğinin kullanımından kaçınılmasını + öneriyoruz.

    +
    top
    +
    +

    Kısıtlamalar

    +

    Windows ve MPE platformlarında, htdbm + ile şifrelenen parolalar 255 karakterden daha uzun olamaz. + 255 karakterden sonrası kırpılır.

    + +

    htdbm tarafından kullanılan MD5 + algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen + parolalar başka HTTP sunucularında kullanılamayabilir.

    + +

    Kullanıcı isimleri 255 bayttan uzun olamaz ve iki nokta + imi (:) içeremez.

    +
    +
    +

    Mevcut Diller:  en  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/htdbm.xml b/docs/manual/programs/htdbm.xml index de888d8aa02..59c52016910 100644 --- a/docs/manual/programs/htdbm.xml +++ b/docs/manual/programs/htdbm.xml @@ -4,12 +4,12 @@ - + htdbm /programs/ .. en + tr diff --git a/docs/manual/programs/htdbm.xml.tr b/docs/manual/programs/htdbm.xml.tr new file mode 100644 index 00000000000..b4039b9e627 --- /dev/null +++ b/docs/manual/programs/htdbm.xml.tr @@ -0,0 +1,287 @@ + + + + + + + + + +Programlar + +htdbm - DBM parola veritabanlarını yönetir + + +

    htdbm, + mod_authn_dbm üzerinden HTTP kullanıcılarının temel + kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak DBM dosyalarını yönetmek için kullanılır. DBM + dosyaları hakkında daha ayrıntılı bilgi edinmek için + dbmmanage sayfasına bakınız.

    +
    +httpd +dbmmanage +mod_authn_dbm + +
    Kullanım +

    htdbm + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + [ -x ] + parola-dosyası kullanıcı

    + +

    htdbm -b + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + parola-dosyası kullanıcı parola

    + +

    htdbm -n + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + kullanıcı

    + +

    htdbm -nb + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + kullanıcı parola

    + +

    htdbm -v + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + parola-dosyası kullanıcı

    + +

    htdbm -vb + [ -TVTtürü ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + parola-dosyası kullanıcı parola

    + +

    htdbm -x + [ -TVTtürü ] + [ -m | + -d | + -p | + -s ] + parola-dosyası kullanıcı

    + +

    htdbm -l + [ -TVTtürü ] +

    +
    + +
    Seçenekler +
    +
    -b
    +
    Betik kipi; parola için istek yapmak yerine parola komut satırından + verilir. Parola komut satırında görünür olacağından çok + dikkatli kullanmak gerekir.
    + +
    -c
    +
    parola-dosyası oluşturur. Dosya mevcutsa, + dosya silinip yeniden yazılır. Bu seçenek + -n seçeneği ile birlikte kullanılamaz.
    + +
    -n
    +
    Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir. + parola-dosyası belirtilmediğinden, bu seçenek + komut satırı sözdizimini değiştirir. Bu seçenek + -c seçeneği ile birlikte kullanılamaz.
    + +
    -m
    +
    Parolalar için MD5 şifrelemesi kullanılır. Windows, Netware ve TPF + için öntanımlıdır.
    + +
    -d
    +
    Parolaları şifrelemek için crypt() kullanılır. Windows, + Netware ve TPF dışında öntanımlıdır. + htdbm tarafından tüm platformlarda + destekleniyor olsa da Windows, Netware ve TPF üzerinde + httpd sunucusu tarafından desteklenmez.
    + +
    -s
    +
    Parolalar için SHA şifrelemesi kullanılır. LDAP Dizin değişim + biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü + kolaylaştırır.
    + +
    -p
    +
    Düz metin parolalar kullanılır. htdbm + tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve + TPF üzerinde httpd sunucusu tarafından sadece düz + metin parolalar kabul edilir.
    + +
    -l
    +
    Veritabanındaki kullanıcıları açıklamalarıyla birlikte standart + çıktıya gönderir.
    + +
    -t
    +
    Son değiştirgenin bir açıklama olarak yorumlanmasını sağlar. Bu + seçenek kullanıldığında komut satırının sonuna fazladan bir dizge + eklenebilir. Bu dizge, veritabanında belirtilen kullanıcının "Comment" + alanında saklanır.
    + +
    -v
    +
    Kullanıcı adını ve parolasını doğrular. Program belirtilen parolanın + geçerli olup olmadığını belirten bir ileti basar. Eğer parola geçersizse + program hata kodu 3 ile çıkar.
    + +
    -x
    +
    Kullanıcıyı siler. Kullanıcı belirtilen DBM dosyasında mevcutsa + silinir.
    + +
    parola-dosyası
    +
    DBM dosyasının ismi. Genellikle, .db, .pag + veya .dir eklentisi olmaksızın belirtilir. + -c seçeneği ile birlikte verilmişse ve DBM + dosyası mevcut değilse dosya oluşturulur, mevcutsa dosya güncellenir.
    + +
    kullanıcı
    +
    parola-dosyası'nda oluşturulacak veya + güncellenecek kullanıcı ismi. kullanıcı bu + dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası + değiştirilir.
    + +
    parola
    +
    Şifrelenip DBM dosyasında saklanacak düz metin parola. Sadece + -b seçeneği ile kullanılır.
    + +
    -T VTtürü
    +
    DBM dosyasının türü; SDBM, GDBM, DB, veya "default" olabilir.
    +
    +
    + +
    Hatalar +

    Birden fazla DBM dosya biçemi vardır ve büyük bir olasılıkla da + sisteminizde bu birden fazla biçemle ilgili kütüphaneler vardır. SDBM, + NDBM, GNU'nun GDBM projesi ve Berkeley/Sleepycat DB 2/3/4 bunların + başlıcalarıdır. Ne yazık ki, bu kütüphanelerin her birinin dosya + biçimleri farklıdır. Bu bakımdan, dosyaismi + dosyasında kullanılan dosya biçeminin htdbm + tarafından kullanılanla aynı biçemde olduğundan emin olmalısınız. + htdbm hangi tür DBM dosyasına baktığını + saptayacak yeterliliğe sahip değildir. Yanlış biçemli bir dosya + belirtirseniz hiçbir şey dönmeyebileceği gibi, başka isimde bir DBM + dosyasının oluşturulması veya daha da kötüsü üzerine yazmaya + çalışıyorsanız DBM dosyasının bozulması bile olasıdır.

    + +

    Unix sistemlerinde, kullanılan DBM dosyasının biçemini öğrenmek için + file programı kullanılabilir.

    +
    + +
    Çıkış Durumu +

    htdbm, kullanıcı ismi ve parolasını DBM + dosyasına başarıyla eklemiş veya güncellemişse 0, dosyalara + erişirken bir sorun çıkmışsa 1, komut satırında bir + sözdizimi hatası varsa 2, parola etkileşimli alınmış fakat + girdi ile eşleşme sağlanamamışsa 3, işlem kesintiye + uğramışsa 4, bir değer çok uzunsa 5 (kullanıcı, + parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter + içeriyorsa (Kısıtlamalar bölümüne bakınız) + 6 ve dosya geçerli bir DBM parola dosyası değilse + 7 değeriyle döner.

    +
    + +
    Örnekler + + htdbm /usr/local/etc/apache/.htdbm-users jsmith + + +

    jsmith kullanıcısı için parolayı ekler veya değiştirir. + Parolayı vermesi için kullanıcıya parola isteği yapılır. Windows üzerinde + çalıştırılırsa parola Apache MD5 algoritması ile şifrelenir, aksi + takdirde sistemin crypt() yordamı kullanılır. Dosya mevcut + değilse htdbm beklenen hiçbir işlemi + yapmadan bir hata vererek çıkar.

    + + + htdbm -c /home/doe/public_html/.htdbm jane + + +

    Yeni bir dosya oluşturur ve kullanıcı jane için kaydı bir + girdi olarak bu dosyaya yazar. Dosya mevcutsa fakat okunamıyor veya + yazılamıyorsa dosyada bir değişiklik yapılmaz ve + htdbm bir ileti gösterip bir hata durumu + ile çıkar.

    + + + htdbm -mb /usr/web/.htdbm-all jones Pwd4Steve + + +

    Komut satırından verilen parolayı (Pwd4Steve) MD5 + algoritmasıyla şifreler ve bunu belirtilen dosyada saklar.

    +
    + +
    Güvenlik Değerlendirmeleri +

    htdbm tarafından yönetilen parola + dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir + tarayıcı ile okunabilecek bir yerde bulunmamalıdır.

    + +

    Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle + -b seçeneğinin kullanımından kaçınılmasını + öneriyoruz.

    +
    + +
    Kısıtlamalar +

    Windows ve MPE platformlarında, htdbm + ile şifrelenen parolalar 255 karakterden daha uzun olamaz. + 255 karakterden sonrası kırpılır.

    + +

    htdbm tarafından kullanılan MD5 + algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen + parolalar başka HTTP sunucularında kullanılamayabilir.

    + +

    Kullanıcı isimleri 255 bayttan uzun olamaz ve iki nokta + imi (:) içeremez.

    +
    + +
    diff --git a/docs/manual/programs/htdigest.html b/docs/manual/programs/htdigest.html index bb29be39ca0..f2c567991e7 100644 --- a/docs/manual/programs/htdigest.html +++ b/docs/manual/programs/htdigest.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: htdigest.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: htdigest.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: htdigest.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/htdigest.html.en b/docs/manual/programs/htdigest.html.en index 0ada2731fb1..6893d6bea82 100644 --- a/docs/manual/programs/htdigest.html.en +++ b/docs/manual/programs/htdigest.html.en @@ -1,25 +1,33 @@ - -htdigest - manage user files for digest authentication - Apache HTTP Server +htdigest - manage user files for digest authentication - Apache HTTP Server Version 2.2 - - + + + +
    <-

    htdigest - manage user files for digest authentication

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htdigest - manage user files for digest authentication

    Available Languages:  en  | - ko 

    + ko  | + tr 

    htdigest is used to create and update the flat-files used @@ -35,7 +43,8 @@

    +
  • Security Considerations
  • +

    See also

    top

    Synopsis

    @@ -55,18 +64,48 @@ exist, or deleted and recreated if it does exist.
    realm
    -
    The realm name to which the user name belongs.
    +
    The realm name to which the user name belongs. See + + http://tools.ietf.org/html/rfc2617#section-3.2.1 for more details. +
    username
    The user name to create or update in passwdfile. If username does not exist is this file, an entry is added. If it does exist, the password is changed.
    +
    top
    +
    +

    Security Considerations

    +

    This program is not safe as a setuid executable. Do not make it + setuid.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/htdigest.html.ko.euc-kr b/docs/manual/programs/htdigest.html.ko.euc-kr index a4942f025c3..65ee87cefad 100644 --- a/docs/manual/programs/htdigest.html.ko.euc-kr +++ b/docs/manual/programs/htdigest.html.ko.euc-kr @@ -1,27 +1,35 @@ - htdigest - digest authentication¿¡ »ç¿ëÇÒ »ç¿ëÀÚÆÄÀÏÀ» -°ü¸®ÇѴÙ - Apache HTTP Server +°ü¸®ÇѴÙ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    htdigest - digest authentication¿¡ »ç¿ëÇÒ »ç¿ëÀÚÆÄÀÏÀ» +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htdigest - digest authentication¿¡ »ç¿ëÇÒ »ç¿ëÀÚÆÄÀÏÀ» °ü¸®ÇѴÙ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -38,7 +46,7 @@
    +

    Âü°í

    top

    °³¿ä

    @@ -68,8 +76,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/htdigest.html.tr.utf8 b/docs/manual/programs/htdigest.html.tr.utf8 new file mode 100644 index 00000000000..8f6ff28d147 --- /dev/null +++ b/docs/manual/programs/htdigest.html.tr.utf8 @@ -0,0 +1,114 @@ + + + + + +htdigest - Özet kimlik doğrulama dosyalarını yönetir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htdigest - Özet kimlik doğrulama dosyalarını yönetir

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    htdigest, HTTP kullanıcılarının digest + türü kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek + için kullanılır. Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı + sadece htdigest tarafından oluşturulan + dosyalarda listelenmiş kullanıcılara tahsis edilebilir.

    + +

    Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler. + Kullanıcı kimlik doğrulamasını + httpd'de yapılandırmak için gerekli + yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan + ve http://httpd.apache.org/ + adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.

    +
    + +
    top
    +
    +

    Kullanım

    +

    htdigest [ -c ] + parola-dosyası bölge kullanıcı

    +
    top
    +
    +

    Seçenekler

    +
    +
    -c
    +
    parola-dosyası oluşturur. Dosya mevcutsa, + dosya silinip yeniden yazılır.
    + +
    parola-dosyası
    +
    Kullanıcı ismi, parola ve bölge bilgilerini içeren dosyanın ismi. + -c seçeneği verilmişse ve dosya mevcut + değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur.
    + +
    bölge
    +
    Kullanıcının mensup olduğu bölge ismi. Ayrıntılı bilgi için + http://tools.ietf.org/html/rfc2617#section-3.2.1 adresine + bakınız.
    + +
    kullanıcı
    +
    parola-dosyası'nda oluşturulacak veya + güncellenecek kullanıcı ismi. kullanıcı bu + dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası + değiştirilir.
    +
    +
    top
    +
    +

    Güvenlik Değerlendirmeleri

    +

    Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından + setuid yapılmamalıdır.

    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/htdigest.xml b/docs/manual/programs/htdigest.xml index 74cc97dc648..1459a8d446c 100644 --- a/docs/manual/programs/htdigest.xml +++ b/docs/manual/programs/htdigest.xml @@ -4,12 +4,12 @@ + - + htdigest /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/htdigest.xml.tr b/docs/manual/programs/htdigest.xml.tr new file mode 100644 index 00000000000..359b4c92763 --- /dev/null +++ b/docs/manual/programs/htdigest.xml.tr @@ -0,0 +1,85 @@ + + + + + + + + + +Programlar + +htdigest - Özet kimlik doğrulama dosyalarını yönetir + + +

    htdigest, HTTP kullanıcılarının digest + türü kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek + için kullanılır. Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı + sadece htdigest tarafından oluşturulan + dosyalarda listelenmiş kullanıcılara tahsis edilebilir.

    + +

    Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler. + Kullanıcı kimlik doğrulamasını + httpd'de yapılandırmak için gerekli + yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan + ve http://httpd.apache.org/ + adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.

    +
    +httpd +mod_auth_digest + +
    Kullanım +

    htdigest [ -c ] + parola-dosyası bölge kullanıcı

    +
    + +
    Seçenekler +
    +
    -c
    +
    parola-dosyası oluşturur. Dosya mevcutsa, + dosya silinip yeniden yazılır.
    + +
    parola-dosyası
    +
    Kullanıcı ismi, parola ve bölge bilgilerini içeren dosyanın ismi. + -c seçeneği verilmişse ve dosya mevcut + değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur.
    + +
    bölge
    +
    Kullanıcının mensup olduğu bölge ismi. Ayrıntılı bilgi için + http://tools.ietf.org/html/rfc2617#section-3.2.1 adresine + bakınız.
    + +
    kullanıcı
    +
    parola-dosyası'nda oluşturulacak veya + güncellenecek kullanıcı ismi. kullanıcı bu + dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası + değiştirilir.
    +
    +
    + +
    Güvenlik Değerlendirmeleri +

    Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından + setuid yapılmamalıdır.

    +
    + +
    diff --git a/docs/manual/programs/htpasswd.html b/docs/manual/programs/htpasswd.html index 5462afe3c6c..919ac18a64f 100644 --- a/docs/manual/programs/htpasswd.html +++ b/docs/manual/programs/htpasswd.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: htpasswd.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: htpasswd.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: htpasswd.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/htpasswd.html.en b/docs/manual/programs/htpasswd.html.en index 5c655b88e7a..533c9364c16 100644 --- a/docs/manual/programs/htpasswd.html.en +++ b/docs/manual/programs/htpasswd.html.en @@ -1,25 +1,33 @@ - -htpasswd - Manage user files for basic authentication - Apache HTTP Server +htpasswd - Manage user files for basic authentication - Apache HTTP Server Version 2.2 - - + + + +
    <-

    htpasswd - Manage user files for basic authentication

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htpasswd - Manage user files for basic authentication

    Available Languages:  en  | - ko 

    + ko  | + tr 

    htpasswd is used to create and update the flat-files used to @@ -52,7 +60,7 @@

  • Security Considerations
  • Restrictions
  • See also

    • httpd
    • The scripts in support/SHA1 which come with the -distribution.
    +distribution.
    top

    Synopsis

    @@ -104,14 +112,15 @@ distribution.
    one) is omitted. It cannot be combined with the -c option.
    -m
    -
    Use MD5 encryption for passwords. On Windows, Netware and TPF, this is - the default.
    +
    Use MD5 encryption for passwords. This is the default (since version + 2.2.18).
    -d
    -
    Use crypt() encryption for passwords. The default on all - platforms but Windows, Netware and TPF. Though possibly supported by - htpasswd on all platforms, it is not supported by the - httpd server on Windows, Netware and TPF.
    +
    Use crypt() encryption for passwords. This is not + supported by the httpd server on Windows and + Netware and TPF. This algorithm limits the password length to 8 + characters. This algorithm is insecure by today's + standards. It used to be the default algorithm until version 2.2.17.
    -s
    Use SHA encryption for passwords. Facilitates migration from/to Netscape @@ -162,10 +171,9 @@ distribution.

    Adds or modifies the password for user jsmith. The user - is prompted for the password. If executed on a Windows system, the password - will be encrypted using the modified Apache MD5 algorithm; otherwise, the - system's crypt() routine will be used. If the file does not - exist, htpasswd will do nothing except return an error.

    + is prompted for the password. The password will be encrypted using the + modified Apache MD5 algorithm. If the file does not exist, + htpasswd will do nothing except return an error.

    htpasswd -c /home/doe/public_html/.htpasswd jane @@ -177,11 +185,12 @@ distribution.

    will display a message and return an error status.

    - htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve + htpasswd -db /usr/web/.htpasswd-all jones Pwd4Steve

    Encrypts the password from the command line (Pwd4Steve) - using the MD5 algorithm, and stores it in the specified file.

    + using the crypt() algorithm, and stores it in the specified + file.

    top

    Security Considerations

    @@ -189,8 +198,20 @@ distribution.
    not be within the Web server's URI space -- that is, they should not be fetchable with a browser.

    +

    This program is not safe as a setuid executable. Do not make it + setuid.

    +

    The use of the -b option is discouraged, since when it is used the unencrypted password appears on the command line.

    + +

    When using the crypt() algorithm, note that only the first + 8 characters of the password are used to form the password. If the supplied + password is longer, the extra characters will be silently discarded.

    + +

    The SHA encryption format does not use salting: for a given password, + there is only one encrypted representation. The crypt() and + MD5 formats permute the representation by prepending a random salt string, + to make dictionary attacks against the passwords more difficult.

    top

    Restrictions

    @@ -208,8 +229,30 @@ distribution.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/htpasswd.html.ko.euc-kr b/docs/manual/programs/htpasswd.html.ko.euc-kr index cba6c7ea3da..facda451912 100644 --- a/docs/manual/programs/htpasswd.html.ko.euc-kr +++ b/docs/manual/programs/htpasswd.html.ko.euc-kr @@ -1,27 +1,35 @@ - htpasswd - basic authentication¿¡ »ç¿ëÇÒ »ç¿ëÀÚÆÄÀÏÀ» - °ü¸®ÇѴÙ - Apache HTTP Server + °ü¸®ÇѴÙ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    htpasswd - basic authentication¿¡ »ç¿ëÇÒ »ç¿ëÀÚÆÄÀÏÀ» +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htpasswd - basic authentication¿¡ »ç¿ëÇÒ »ç¿ëÀÚÆÄÀÏÀ» °ü¸®ÇѴÙ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -54,7 +62,7 @@
  • ¿¹Á¦
  • º¸¾Ȼó °í·ÁÇÒ Á¡
  • Á¦ÇÑ
  • -

    Âü°í

    • httpd
    • ¹èÆ÷º»¿¡´Â SHA1À» Áö¿øÇϴ ½ºũ¸³Ʈµµ ÀִÙ.
    +

    Âü°í

    • httpd
    • ¹èÆ÷º»¿¡´Â SHA1À» Áö¿øÇϴ ½ºũ¸³Ʈµµ ÀִÙ.
    top

    °³¿ä

    @@ -210,8 +218,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/htpasswd.html.tr.utf8 b/docs/manual/programs/htpasswd.html.tr.utf8 new file mode 100644 index 00000000000..753cc4f7e61 --- /dev/null +++ b/docs/manual/programs/htpasswd.html.tr.utf8 @@ -0,0 +1,270 @@ + + + + + +htpasswd - Temel kimlik doğrulama dosyalarını yönetir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    htpasswd - Temel kimlik doğrulama dosyalarını yönetir

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    htpasswd, HTTP kullanıcılarının temel + kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek + için kullanılır. htpasswd, güncelleme + sırasında yazmak veya okumak için bir dosyaya erişemezse beklenen hiçbir + işlemi yapmaz ve hata vererek çıkar.

    + +

    Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı + sadece htpasswd tarafından oluşturulan + dosyalarda listelenmiş kullanıcılara tahsis edilebilir. + htpasswd sadece düz metin dosyalarda + saklanmış kullanıcı isimlerini ve parolalarını yönetirse de, diğer veri + saklama türleri için parolayı şifreleyip gösterebilir. Bir DBM veritabanı + kullanmak isterseniz dbmmanage + sayfasına bakınız.

    + +

    htpasswd, parolaları şifrelemek için ya + Apache'nin kendine özgü MD5 algoritmasını ya da sistemin + crypt() yordamını kullanır. Bazı kullanıcılar MD5 şifreli + parolalara, bazıları da crypt() ile şifrelenmiş parolalara + sahip olabileceğinden htpasswd tarafından + yönetilen dosyalar her iki tür parolayı da içerebilir.

    + +

    Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler. + Kullanıcı kimlik doğrulamasını + httpd'de yapılandırmak için gerekli + yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan + ve http://httpd.apache.org/ + adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.

    +
    +

    Ayrıca bakınız:

    • httpd
    • Kaynak paketinin support/SHA1 dizinindeki betikler.
    +
    top
    +
    +

    Kullanım

    +

    htpasswd + [ -c ] + [ -m ] + [ -D ] parola-dosyası kullanıcı

    + +

    htpasswd -b + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -D ] parola-dosyası kullanıcı + parola

    + +

    htpasswd -n + [ -m | + -d | + -s | + -p ] kullanıcı

    + +

    htpasswd -nb + [ -m | + -d | + -s | + -p ] kullanıcı parola

    +
    top
    +
    +

    Seçenekler

    +
    +
    -b
    +
    Betik kipi; parola için istek yapmak yerine parola komut satırından + verilir. Parola komut satırında görünür olacağından çok + dikkatli kullanmak gerekir.
    + +
    -c
    +
    parola-dosyası oluşturur. Dosya mevcutsa, + dosya silinip yeniden yazılır. Bu seçenek + -n seçeneği ile birlikte kullanılamaz.
    + +
    -n
    +
    Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir. + Bu seçenek, Apache'nin metin veriler içermeyen veri depolarına dahil + edilebilecek parolaları üretmekte yararlıdır. + parola-dosyası belirtilmediğinden, bu seçenek + komut satırı sözdizimini değiştirir. Bu seçenek + -c seçeneği ile birlikte kullanılamaz.
    + +
    -m
    +
    Parolalar için MD5 şifrelemesi kullanılır ve bu 2.2.18 sürümünden beri + öntanımlıdır.
    + +
    -d
    +
    Parolaları şifrelemek için crypt() kullanılır. Windows, + Netware ve TPF üzerinde httpd sunucusu tarafından + desteklenmez. Bu algoritma parola uzuluğunu 8 karakterle sınırlar. + Bugünün standatlarında bu algoritma güvenilmez kabul + edilmektedir. 2.2.17 sürümüne kadar öntanımlı algoritma olarak + kullanılmıştır.
    + +
    -s
    +
    Parolalar için SHA şifrelemesi kullanılır. LDAP Dizin değişim + biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü + kolaylaştırır.
    + +
    -p
    +
    Düz metin parolalar kullanılır. htpasswd + tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve + TPF üzerinde httpd sunucusu tarafından sadece düz + metin parolalar kabul edilir.
    + +
    -D
    +
    Kullanıcıyı siler. Kullanıcı belirtilen dosyada mevcutsa + silinir.
    + +
    parola-dosyası
    +
    Kullanıcı ismini ve parolasını içeren dosyanın ismi. + -c seçeneği verilmişse ve dosya mevcut + değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur.
    + +
    kullanıcı
    +
    parola-dosyası'nda oluşturulacak veya + güncellenecek kullanıcı ismi. kullanıcı bu + dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası + değiştirilir.
    + +
    parola
    +
    Şifrelenip dosyada saklanacak düz metin parola. Sadece + -b seçeneği ile kullanılır.
    +
    +
    top
    +
    +

    Çıkış Durumu

    +

    htpasswd, kullanıcı ismi ve parolasını DBM + dosyasına başarıyla eklemiş veya güncellemişse 0, dosyalara + erişirken bir sorun çıkmışsa 1, komut satırında bir + sözdizimi hatası varsa 2, parola etkileşimli alınmış fakat + girdi ile eşleşme sağlanamamışsa 3, işlem kesintiye + uğramışsa 4, bir değer çok uzunsa 5 (kullanıcı, + parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter + içeriyorsa (Kısıtlamalar bölümüne bakınız) + 6 ve dosya geçerli bir DBM parola dosyası değilse + 7 değeriyle döner.

    +
    top
    +
    +

    Örnekler

    +

    + htpasswd /usr/local/etc/apache/.htpasswd-users jsmith +

    + +

    jsmith kullanıcısı için parolayı ekler veya değiştirir. + Parolayı vermesi için kullanıcıya parola isteği yapılır. Parola Apache MD5 + algoritması ile şifrelenir. Dosya mevcut değilse + htpasswd beklenen hiçbir işlemi yapmadan bir + hata vererek çıkar.

    + +

    + htpasswd -c /home/doe/public_html/.htpasswd jane +

    + +

    Yeni bir dosya oluşturur ve kullanıcı jane için kaydı bir + girdi olarak bu dosyaya yazar. Dosya mevcutsa fakat okunamıyor veya + yazılamıyorsa dosyada bir değişiklik yapılmaz ve + htpasswd bir ileti gösterip bir hata durumu + ile çıkar.

    + +

    + htpasswd -db /usr/web/.htpasswd-all jones Pwd4Steve +

    + +

    Komut satırından verilen parolayı (Pwd4Steve) + crypt() algoritmasıyla şifreler ve bunu belirtilen dosyada + saklar.

    +
    top
    +
    +

    Güvenlik Değerlendirmeleri

    +

    htpasswd tarafından yönetilen parola + dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir + tarayıcı ile okunabilecek bir yerde bulunmamalıdır.

    + +

    Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından + setuid yapılmamalıdır.

    + +

    Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle + -b seçeneğinin kullanımından kaçınılmasını + öneriyoruz.

    + +

    crypt() algoritması kullanılırken, parolayı + şekillendirmek için parolanın ilk 8 baytının kullanılacağına dikkat + ediniz. Eğer parola 8 bayttan uzunsa kalanlar bir uyarı verilmeksizin + iptal edilir.

    + +

    SHA şifreleme biçeminde tuz kullanılmaz; yani, bir parolanın + sadece bir şifreli gösterimi olabilir. crypt() ve + MD5 biçemleri parolanın önüne rasgele üretilmiş bir tuz dizgesi + eklediklerinden sözlük saldırılarına karşı daha dayanıklıdırlar.

    +
    top
    +
    +

    Kısıtlamalar

    +

    Windows ve MPE platformlarında, htpasswd + ile şifrelenen parolalar 255 karakterden daha uzun olamaz. + 255 karakterden sonrası kırpılır.

    + +

    htpasswd tarafından kullanılan MD5 + algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen + parolalar başka HTTP sunucularında kullanılamayabilir.

    + +

    Kullanıcı isimleri 255 bayttan uzun olamaz ve iki nokta + imi (:) içeremez.

    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/htpasswd.xml b/docs/manual/programs/htpasswd.xml index 294a1a02df6..35097870668 100644 --- a/docs/manual/programs/htpasswd.xml +++ b/docs/manual/programs/htpasswd.xml @@ -4,12 +4,12 @@ + - + htpasswd /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/htpasswd.xml.tr b/docs/manual/programs/htpasswd.xml.tr new file mode 100644 index 00000000000..35bb07ecb84 --- /dev/null +++ b/docs/manual/programs/htpasswd.xml.tr @@ -0,0 +1,237 @@ + + + + + + + + + +Programlar + +htpasswd - Temel kimlik doğrulama dosyalarını yönetir + + +

    htpasswd, HTTP kullanıcılarının temel + kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının + saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek + için kullanılır. htpasswd, güncelleme + sırasında yazmak veya okumak için bir dosyaya erişemezse beklenen hiçbir + işlemi yapmaz ve hata vererek çıkar.

    + +

    Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı + sadece htpasswd tarafından oluşturulan + dosyalarda listelenmiş kullanıcılara tahsis edilebilir. + htpasswd sadece düz metin dosyalarda + saklanmış kullanıcı isimlerini ve parolalarını yönetirse de, diğer veri + saklama türleri için parolayı şifreleyip gösterebilir. Bir DBM veritabanı + kullanmak isterseniz dbmmanage + sayfasına bakınız.

    + +

    htpasswd, parolaları şifrelemek için ya + Apache'nin kendine özgü MD5 algoritmasını ya da sistemin + crypt() yordamını kullanır. Bazı kullanıcılar MD5 şifreli + parolalara, bazıları da crypt() ile şifrelenmiş parolalara + sahip olabileceğinden htpasswd tarafından + yönetilen dosyalar her iki tür parolayı da içerebilir.

    + +

    Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler. + Kullanıcı kimlik doğrulamasını + httpd'de yapılandırmak için gerekli + yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan + ve http://httpd.apache.org/ + adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız.

    +
    +httpd +Kaynak paketinin support/SHA1 dizinindeki betikler. + +
    Kullanım +

    htpasswd + [ -c ] + [ -m ] + [ -D ] parola-dosyası kullanıcı

    + +

    htpasswd -b + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -D ] parola-dosyası kullanıcı + parola

    + +

    htpasswd -n + [ -m | + -d | + -s | + -p ] kullanıcı

    + +

    htpasswd -nb + [ -m | + -d | + -s | + -p ] kullanıcı parola

    +
    + +
    Seçenekler +
    +
    -b
    +
    Betik kipi; parola için istek yapmak yerine parola komut satırından + verilir. Parola komut satırında görünür olacağından çok + dikkatli kullanmak gerekir.
    + +
    -c
    +
    parola-dosyası oluşturur. Dosya mevcutsa, + dosya silinip yeniden yazılır. Bu seçenek + -n seçeneği ile birlikte kullanılamaz.
    + +
    -n
    +
    Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir. + Bu seçenek, Apache'nin metin veriler içermeyen veri depolarına dahil + edilebilecek parolaları üretmekte yararlıdır. + parola-dosyası belirtilmediğinden, bu seçenek + komut satırı sözdizimini değiştirir. Bu seçenek + -c seçeneği ile birlikte kullanılamaz.
    + +
    -m
    +
    Parolalar için MD5 şifrelemesi kullanılır ve bu 2.2.18 sürümünden beri + öntanımlıdır.
    + +
    -d
    +
    Parolaları şifrelemek için crypt() kullanılır. Windows, + Netware ve TPF üzerinde httpd sunucusu tarafından + desteklenmez. Bu algoritma parola uzuluğunu 8 karakterle sınırlar. + Bugünün standatlarında bu algoritma güvenilmez kabul + edilmektedir. 2.2.17 sürümüne kadar öntanımlı algoritma olarak + kullanılmıştır.
    + +
    -s
    +
    Parolalar için SHA şifrelemesi kullanılır. LDAP Dizin değişim + biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü + kolaylaştırır.
    + +
    -p
    +
    Düz metin parolalar kullanılır. htpasswd + tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve + TPF üzerinde httpd sunucusu tarafından sadece düz + metin parolalar kabul edilir.
    + +
    -D
    +
    Kullanıcıyı siler. Kullanıcı belirtilen dosyada mevcutsa + silinir.
    + +
    parola-dosyası
    +
    Kullanıcı ismini ve parolasını içeren dosyanın ismi. + -c seçeneği verilmişse ve dosya mevcut + değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur.
    + +
    kullanıcı
    +
    parola-dosyası'nda oluşturulacak veya + güncellenecek kullanıcı ismi. kullanıcı bu + dosyada mevcut değilse yeni bir girdi eklenir. Girdi mevcutsa parolası + değiştirilir.
    + +
    parola
    +
    Şifrelenip dosyada saklanacak düz metin parola. Sadece + -b seçeneği ile kullanılır.
    +
    +
    + +
    Çıkış Durumu +

    htpasswd, kullanıcı ismi ve parolasını DBM + dosyasına başarıyla eklemiş veya güncellemişse 0, dosyalara + erişirken bir sorun çıkmışsa 1, komut satırında bir + sözdizimi hatası varsa 2, parola etkileşimli alınmış fakat + girdi ile eşleşme sağlanamamışsa 3, işlem kesintiye + uğramışsa 4, bir değer çok uzunsa 5 (kullanıcı, + parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter + içeriyorsa (Kısıtlamalar bölümüne bakınız) + 6 ve dosya geçerli bir DBM parola dosyası değilse + 7 değeriyle döner.

    +
    + +
    Örnekler + + htpasswd /usr/local/etc/apache/.htpasswd-users jsmith + + +

    jsmith kullanıcısı için parolayı ekler veya değiştirir. + Parolayı vermesi için kullanıcıya parola isteği yapılır. Parola Apache MD5 + algoritması ile şifrelenir. Dosya mevcut değilse + htpasswd beklenen hiçbir işlemi yapmadan bir + hata vererek çıkar.

    + + + htpasswd -c /home/doe/public_html/.htpasswd jane + + +

    Yeni bir dosya oluşturur ve kullanıcı jane için kaydı bir + girdi olarak bu dosyaya yazar. Dosya mevcutsa fakat okunamıyor veya + yazılamıyorsa dosyada bir değişiklik yapılmaz ve + htpasswd bir ileti gösterip bir hata durumu + ile çıkar.

    + + + htpasswd -db /usr/web/.htpasswd-all jones Pwd4Steve + + +

    Komut satırından verilen parolayı (Pwd4Steve) + crypt() algoritmasıyla şifreler ve bunu belirtilen dosyada + saklar.

    +
    + +
    Güvenlik Değerlendirmeleri +

    htpasswd tarafından yönetilen parola + dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir + tarayıcı ile okunabilecek bir yerde bulunmamalıdır.

    + +

    Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından + setuid yapılmamalıdır.

    + +

    Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle + -b seçeneğinin kullanımından kaçınılmasını + öneriyoruz.

    + +

    crypt() algoritması kullanılırken, parolayı + şekillendirmek için parolanın ilk 8 baytının kullanılacağına dikkat + ediniz. Eğer parola 8 bayttan uzunsa kalanlar bir uyarı verilmeksizin + iptal edilir.

    + +

    SHA şifreleme biçeminde tuz kullanılmaz; yani, bir parolanın + sadece bir şifreli gösterimi olabilir. crypt() ve + MD5 biçemleri parolanın önüne rasgele üretilmiş bir tuz dizgesi + eklediklerinden sözlük saldırılarına karşı daha dayanıklıdırlar.

    +
    + +
    Kısıtlamalar +

    Windows ve MPE platformlarında, htpasswd + ile şifrelenen parolalar 255 karakterden daha uzun olamaz. + 255 karakterden sonrası kırpılır.

    + +

    htpasswd tarafından kullanılan MD5 + algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen + parolalar başka HTTP sunucularında kullanılamayabilir.

    + +

    Kullanıcı isimleri 255 bayttan uzun olamaz ve iki nokta + imi (:) içeremez.

    +
    + +
    diff --git a/docs/manual/programs/httpd.html b/docs/manual/programs/httpd.html index 7d7ff916d35..9ef8b2b7acc 100644 --- a/docs/manual/programs/httpd.html +++ b/docs/manual/programs/httpd.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: httpd.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: httpd.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: httpd.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/httpd.html.en b/docs/manual/programs/httpd.html.en index 5bf7675083d..44d9534853a 100644 --- a/docs/manual/programs/httpd.html.en +++ b/docs/manual/programs/httpd.html.en @@ -1,25 +1,33 @@ - -httpd - Apache Hypertext Transfer Protocol Server - Apache HTTP Server +httpd - Apache Hypertext Transfer Protocol Server - Apache HTTP Server Version 2.2 - - + + + +
    <-

    httpd - Apache Hypertext Transfer Protocol Server

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    httpd - Apache Hypertext Transfer Protocol Server

    Available Languages:  en  | - ko 

    + ko  | + tr 

    httpd is the Apache HyperText Transfer Protocol @@ -34,7 +42,7 @@

    +

    See also

    top

    Synopsis

    @@ -43,11 +51,13 @@ [ -C directive ] [ -c directive ] [ -D parameter ] [ -e level ] [ -E - file ] [ -k start|restart|graceful|stop ] - [ -R directory ] [ -h ] + file ] + [ -k start|restart|graceful|stop|graceful-stop ] + [ -h ] [ -l ] [ -L ] [ -S ] [ -t ] [ -v ] [ -V ] - [ -X ] [ -M ]

    + [ -X ] [ -M ] [ -T ] +

    On Windows systems, the following additional arguments are available:

    @@ -74,9 +84,9 @@ directive in the configuration file. The default is path relative to the ServerRoot. The default is conf/httpd.conf. -
    -k start|restart|graceful|stop
    +
    -k start|restart|graceful|stop|graceful-stop
    -
    Signals httpd to start, restart, or stop. See Stopping Apache for more information.
    +
    Signals httpd to start, restart, or stop. See Stopping Apache httpd for more information.
    -C directive
    @@ -93,8 +103,11 @@ files.
    Sets a configuration parameter which can be used with <IfDefine> sections -in the configuration files to conditionally skip or process -commands at server startup and restart.
    +in the configuration files to conditionally skip or process commands +at server startup and restart. Also can be used to set certain +less-common startup parameters including -DNO_DETACH +(prevent the parent from forking) and -DFOREGROUND +(prevent the parent from calling setsid() et al).
    -e level
    @@ -137,6 +150,10 @@ places where the directive is valid.
    Show the settings as parsed from the config file (currently only shows the virtualhost settings).
    +
    -T (Available in 2.2.17 and later)
    + +
    Skip document root check at startup/restart.
    +
    -t
    Run syntax tests for configuration files only. The program @@ -168,12 +185,12 @@ server will not detach from the console.
    -k install|config|uninstall
    -
    Install Apache as a Windows NT service; change startup options for -the Apache service; and uninstall the Apache service.
    +
    Install Apache httpd as a Windows NT service; change startup options for +the Apache httpd service; and uninstall the Apache httpd service.
    -n name
    -
    The name of the Apache service to signal.
    +
    The name of the Apache httpd service to signal.
    -w
    @@ -185,8 +202,30 @@ be read.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/httpd.html.ko.euc-kr b/docs/manual/programs/httpd.html.ko.euc-kr index 374924cbc82..94a0ff2b042 100644 --- a/docs/manual/programs/httpd.html.ko.euc-kr +++ b/docs/manual/programs/httpd.html.ko.euc-kr @@ -1,25 +1,33 @@ - -httpd - ¾ÆÆÄġ ÇÏÀÌÆÛÅؽºƮ Àü¼Û ÇÁ·ÎÅäÄÝ ¼­¹ö - Apache HTTP Server +httpd - ¾ÆÆÄġ ÇÏÀÌÆÛÅؽºƮ Àü¼Û ÇÁ·ÎÅäÄÝ ¼­¹ö - Apache HTTP Server Version 2.2 - - + + + +
    <-

    httpd - ¾ÆÆÄġ ÇÏÀÌÆÛÅؽºƮ Àü¼Û ÇÁ·ÎÅäÄÝ ¼­¹ö

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    httpd - ¾ÆÆÄġ ÇÏÀÌÆÛÅؽºƮ Àü¼Û ÇÁ·ÎÅäÄÝ ¼­¹ö

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -36,7 +44,7 @@
    +

    Âü°í

    top

    °³¿ä

    @@ -181,8 +189,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/httpd.html.tr.utf8 b/docs/manual/programs/httpd.html.tr.utf8 new file mode 100644 index 00000000000..1fbd0f1eded --- /dev/null +++ b/docs/manual/programs/httpd.html.tr.utf8 @@ -0,0 +1,220 @@ + + + + + +httpd - Apache Hiper Metin Aktarım Protokolü Sunucusu - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    httpd - Apache Hiper Metin Aktarım Protokolü Sunucusu

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    +
    Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.
    + +

    httpd, Apache Hiper Metin Aktarım + Protokolü (HTTP) sunucusu programıdır. Tek başına çalışan bir artalan + süreci olarak tasarlanmıştır. Bu tarz kullanıldığında istekleri işleme + sokmak için çocuk süreçlerden ve evrelerden oluşan bir havuz + oluşturur.

    + +

    Genelde, httpd'nin doğrudan çağrılmaması + gerekir. Unix ve benzerlerinde apachectl + aracılığıyla, Windows NT, 2000 + ve XP'de bir hizmet olarak, Windows 9x ve ME'de ise bir + konsol uygulaması olarak çalıştırılır.

    +
    + +
    top
    +
    +

    Kullanım

    +

    httpd [ -d + sunucu-kök-dizini ] [ -f + yapılandırma-dosyası ] + [ -C yönerge ] [ -c + yönerge ] [ -D parametre ] + [ -e seviye ] [ -E + dosya ] + [ -k start | restart | graceful | stop | graceful-stop ] + [ -R dizin ] [ -h ] + [ -l ] [ -L ] [ -S ] + [ -t ] [ -v ] [ -V ] + [ -X ] [ -M ] [ -T ] +

    + +

    Windows sistemlerinde, ek + olarak şunlar vardır:

    + +

    httpd [ -k install | config | + uninstall ] [ -n isim ] + [ -w ]

    +
    top
    +
    +

    Seçenekler

    + +
    +
    -d sunucu-kök-dizini
    +
    sunucu-kök-dizini'ni ServerRoot yönergesine ilk değer olarak atar. Yapılandırma + dosyasındaki bir ServerRoot + yönergesiyle bu atama geçersiz kılınabilir. Bu seçenek belirtilmediği + takdirde /usr/local/apache2 dizini öntanımlıdır.
    + +
    -f yapılandırma-dosyası
    +
    Başlatma sırasında yapılandırma-dosyası'ndaki yönergeler + kullanılır. Eğer yapılandırma-dosyası bir / ile başlamıyorsa + dosyanın ServerRoot yönergesinin + değerine göreli olduğu varsayılır. Seçenek belirtilmediği takdirde + conf/httpd.conf öntanımlı değerdir.
    + +
    -k start | restart | graceful | stop | + graceful-stop
    +
    httpd'yi başlatmak, durdurmak ve yeniden + başlatmak için sinyal gönderir. Daha ayrıntılı bilgi edinmek için Apache httpd'nin Durdurulması belgesine + bakınız.
    + +
    -C yönerge
    +
    Yapılandırma yönerge'sini yapılandırma dosyalarını okumadan + önce işleme sokar.
    + +
    -c yönerge
    +
    Yapılandırma yönerge'sini yapılandırma dosyalarını + okuduktan sonra işleme sokar.
    + +
    -D parametre
    +
    Sunucu başlatılırken veya yeniden başlatılırken komutları şarta bağlı + olarak işleme sokmak veya atlamak için yapılandırma dosyalarında + kullanılan <IfDefine> + bölümlerinde kullanılmak üzere bir yapılandırma parametre'si + tanımlar. Ayrıca, -DNO_DETACH (ana sürecin çatallanmasını + engellemek için), -DFOREGROUND (ana sürecin + setsid() ve benzerlerinden çağrılmasını engellemek için) + gibi daha az bilinen bazı başlatma parametrelerini atamakta da + kullanılabilir.
    + +
    -e seviye
    +
    Hata günlüğü seviyesi olarak LogLevel yönergesine sunucu başlatılırken seviye + değerini atar. Bu seçenek, başlatma sırasındaki sorunları saptamak + amacıyla hata iletilerinin ayrıntı seviyesini geçici olarak arttırmak + için kullanılır.
    + +
    -E dosya
    +
    Sunucunun başlatılması sırasında hata iletilerinin belirtilen + dosya'ya gönderilmesini sağlar.
    + +
    -h
    +
    Mevcut komut satırı seçeneklerinin kısa bir özetini çıktılar.
    + +
    -l
    +
    Sunucunun içinde derlenmiş modüllerin listesini çıktılar. Bu liste + LoadModule yönergesi kullanılarak + devingen olarak yüklenen modülleri içermez.
    + +
    -L
    +
    Durağan modüllerce sağlanmış yönergeleri olası değerleriyle geçerli + konumlarına yerleştirerek listeler.
    + +
    -M
    +
    Yüklü durağan ve paylaşımlı modülleri listeler.
    + +
    -R dizin
    +
    Sunucu SHARED_CORE kullanılarak derlendiği takdirde bu + seçenek paylaşımlı nesne dosyaları için dizin belirtir.
    + +
    -S
    +
    Yapılandırma dosyasından çözümlenmiş haliyle ayarları gösterir (şu an + sadece sanal konak ayarları gösterilmektedir).
    + +
    -T (2.2.17 ve sonrasında + kullanılabilir.)
    +
    Başlatma veya yeniden başlatma sırasında belge kök dizini + sınamasını yapmadan geçer.
    + +
    -t
    +
    Yapılandırma dosyasını sözdizimi hatalarına karşı denetler. Program + sözdizimini denetledikten sonra sözdizimi geçerliyse 0 ile, değilse + sıfırdan farklı bir değerle çıkar. + -DDUMP_VHOSTS seçeneği ile birlikte + kullanılmışsa ek olarak sanal konak ayrıntıları da basılır. + -DDUMP_MODULES seçeneği ile ise ek olarak + tüm modüller listelenir.
    + +
    -v
    +
    httpd sürümünü basar ve çıkar.
    + +
    -V
    +
    Sürümü ve httpd kurulum parametrelerini + basar ve çıkar.
    + +
    -X
    +
    httpd hata ayıklama kipinde çalışır. Tek + çocuk süreç başlatılır ve sunucu konsolu terketmez.
    +
    + +

    Aşağıdaki seçenekler sadece Windows + platformunda geçerlidir:

    + +
    +
    -k install | config | uninstall
    +
    Parametreler bakımından sırasıyla: Apache httpd bir Windows NT hizmeti + haline getirilir; başlatma seçenekleri Apache httpd hizmeti için + değiştirilir; ve Apache httpd hizmeti sistemden kaldırılır.
    + +
    -n isim
    +
    Sinyal gönderilecek Apache httpd hizmetinin ismi.
    + +
    -w
    +
    Hata durumunda konsol penceresi açık tutularak hata iletilerinin + okunması sağlanır.
    +
    + +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/httpd.xml b/docs/manual/programs/httpd.xml index 4710eaf19b9..c8fb1aa041a 100644 --- a/docs/manual/programs/httpd.xml +++ b/docs/manual/programs/httpd.xml @@ -4,12 +4,12 @@ + - + httpd /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/httpd.xml.tr b/docs/manual/programs/httpd.xml.tr new file mode 100644 index 00000000000..fd49b623180 --- /dev/null +++ b/docs/manual/programs/httpd.xml.tr @@ -0,0 +1,197 @@ + + + + + + + + +Programlar + + httpd - Apache Hiper Metin Aktarım Protokolü Sunucusu + + +

    httpd, Apache Hiper Metin Aktarım + Protokolü (HTTP) sunucusu programıdır. Tek başına çalışan bir artalan + süreci olarak tasarlanmıştır. Bu tarz kullanıldığında istekleri işleme + sokmak için çocuk süreçlerden ve evrelerden oluşan bir havuz + oluşturur.

    + +

    Genelde, httpd'nin doğrudan çağrılmaması + gerekir. Unix ve benzerlerinde apachectl + aracılığıyla, Windows NT, 2000 + ve XP'de bir hizmet olarak, Windows 9x ve ME'de ise bir + konsol uygulaması olarak çalıştırılır.

    +
    + +Apache httpd'nin Başlatılması +Apache httpd'nin Durdurulması +Yapılandırma Dosyaları +Platforma Özgü Belgeler +apachectl + +
    Kullanım +

    httpd [ -d + sunucu-kök-dizini ] [ -f + yapılandırma-dosyası ] + [ -C yönerge ] [ -c + yönerge ] [ -D parametre ] + [ -e seviye ] [ -E + dosya ] + [ -k start | restart | graceful | stop | graceful-stop ] + [ -R dizin ] [ -h ] + [ -l ] [ -L ] [ -S ] + [ -t ] [ -v ] [ -V ] + [ -X ] [ -M ] [ -T ] +

    + +

    Windows sistemlerinde, ek + olarak şunlar vardır:

    + +

    httpd [ -k install | config | + uninstall ] [ -n isim ] + [ -w ]

    +
    + +
    Seçenekler + +
    +
    -d sunucu-kök-dizini
    +
    sunucu-kök-dizini'ni ServerRoot yönergesine ilk değer olarak atar. Yapılandırma + dosyasındaki bir ServerRoot + yönergesiyle bu atama geçersiz kılınabilir. Bu seçenek belirtilmediği + takdirde /usr/local/apache2 dizini öntanımlıdır.
    + +
    -f yapılandırma-dosyası
    +
    Başlatma sırasında yapılandırma-dosyası'ndaki yönergeler + kullanılır. Eğer yapılandırma-dosyası bir / ile başlamıyorsa + dosyanın ServerRoot yönergesinin + değerine göreli olduğu varsayılır. Seçenek belirtilmediği takdirde + conf/httpd.conf öntanımlı değerdir.
    + +
    -k start | restart | graceful | stop | + graceful-stop
    +
    httpd'yi başlatmak, durdurmak ve yeniden + başlatmak için sinyal gönderir. Daha ayrıntılı bilgi edinmek için Apache httpd'nin Durdurulması belgesine + bakınız.
    + +
    -C yönerge
    +
    Yapılandırma yönerge'sini yapılandırma dosyalarını okumadan + önce işleme sokar.
    + +
    -c yönerge
    +
    Yapılandırma yönerge'sini yapılandırma dosyalarını + okuduktan sonra işleme sokar.
    + +
    -D parametre
    +
    Sunucu başlatılırken veya yeniden başlatılırken komutları şarta bağlı + olarak işleme sokmak veya atlamak için yapılandırma dosyalarında + kullanılan IfDefine + bölümlerinde kullanılmak üzere bir yapılandırma parametre'si + tanımlar. Ayrıca, -DNO_DETACH (ana sürecin çatallanmasını + engellemek için), -DFOREGROUND (ana sürecin + setsid() ve benzerlerinden çağrılmasını engellemek için) + gibi daha az bilinen bazı başlatma parametrelerini atamakta da + kullanılabilir.
    + +
    -e seviye
    +
    Hata günlüğü seviyesi olarak LogLevel yönergesine sunucu başlatılırken seviye + değerini atar. Bu seçenek, başlatma sırasındaki sorunları saptamak + amacıyla hata iletilerinin ayrıntı seviyesini geçici olarak arttırmak + için kullanılır.
    + +
    -E dosya
    +
    Sunucunun başlatılması sırasında hata iletilerinin belirtilen + dosya'ya gönderilmesini sağlar.
    + +
    -h
    +
    Mevcut komut satırı seçeneklerinin kısa bir özetini çıktılar.
    + +
    -l
    +
    Sunucunun içinde derlenmiş modüllerin listesini çıktılar. Bu liste + LoadModule yönergesi kullanılarak + devingen olarak yüklenen modülleri içermez.
    + +
    -L
    +
    Durağan modüllerce sağlanmış yönergeleri olası değerleriyle geçerli + konumlarına yerleştirerek listeler.
    + +
    -M
    +
    Yüklü durağan ve paylaşımlı modülleri listeler.
    + +
    -R dizin
    +
    Sunucu SHARED_CORE kullanılarak derlendiği takdirde bu + seçenek paylaşımlı nesne dosyaları için dizin belirtir.
    + +
    -S
    +
    Yapılandırma dosyasından çözümlenmiş haliyle ayarları gösterir (şu an + sadece sanal konak ayarları gösterilmektedir).
    + +
    -T (2.2.17 ve sonrasında + kullanılabilir.)
    +
    Başlatma veya yeniden başlatma sırasında belge kök dizini + sınamasını yapmadan geçer.
    + +
    -t
    +
    Yapılandırma dosyasını sözdizimi hatalarına karşı denetler. Program + sözdizimini denetledikten sonra sözdizimi geçerliyse 0 ile, değilse + sıfırdan farklı bir değerle çıkar. + -DDUMP_VHOSTS seçeneği ile birlikte + kullanılmışsa ek olarak sanal konak ayrıntıları da basılır. + -DDUMP_MODULES seçeneği ile ise ek olarak + tüm modüller listelenir.
    + +
    -v
    +
    httpd sürümünü basar ve çıkar.
    + +
    -V
    +
    Sürümü ve httpd kurulum parametrelerini + basar ve çıkar.
    + +
    -X
    +
    httpd hata ayıklama kipinde çalışır. Tek + çocuk süreç başlatılır ve sunucu konsolu terketmez.
    +
    + +

    Aşağıdaki seçenekler sadece Windows + platformunda geçerlidir:

    + +
    +
    -k install | config | uninstall
    +
    Parametreler bakımından sırasıyla: Apache httpd bir Windows NT hizmeti + haline getirilir; başlatma seçenekleri Apache httpd hizmeti için + değiştirilir; ve Apache httpd hizmeti sistemden kaldırılır.
    + +
    -n isim
    +
    Sinyal gönderilecek Apache httpd hizmetinin ismi.
    + +
    -w
    +
    Hata durumunda konsol penceresi açık tutularak hata iletilerinin + okunması sağlanır.
    +
    + +
    + +
    diff --git a/docs/manual/programs/httxt2dbm.html b/docs/manual/programs/httxt2dbm.html index c6222ab25a5..0583e75a497 100644 --- a/docs/manual/programs/httxt2dbm.html +++ b/docs/manual/programs/httxt2dbm.html @@ -1,3 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: httxt2dbm.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: httxt2dbm.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/httxt2dbm.html.en b/docs/manual/programs/httxt2dbm.html.en index 72e6ddccae3..819c55a1843 100644 --- a/docs/manual/programs/httxt2dbm.html.en +++ b/docs/manual/programs/httxt2dbm.html.en @@ -1,34 +1,43 @@ - -httxt2dbm - Generate dbm files for use with RewriteMap - Apache HTTP Server +httxt2dbm - Generate dbm files for use with RewriteMap - Apache HTTP Server Version 2.2 - - + + + +
    <-

    httxt2dbm - Generate dbm files for use with RewriteMap

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    httxt2dbm - Generate dbm files for use with RewriteMap

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + tr 

    httxt2dbm is used to generate dbm files from text input, for - use in RewriteMap with the dbm map type. + use in RewriteMap with + the dbm map type.

    +

    See also

    top

    Synopsis

    @@ -45,25 +54,24 @@
    -v
    More verbose output
    -
    -f
    +
    -f DBM_TYPE
    Specify the DBM type to be used for the output. If not specified, will - use the APR Default. Available types are:
    - GDBM for GDBM files
    - SDBM for SDBM files
    - DB for berkeley DB files
    - NDBM for NDBM files
    - default for the default DBM type + use the APR Default. Available types are: + GDBM for GDBM files, + SDBM for SDBM files, + DB for berkeley DB files, + NDBM for NDBM files, + default for the default DBM type.
    -
    -i
    +
    -i SOURCE_TXT
    Input file from which the dbm is to be created. The file should be formated - with one record per line, of the form:
    - key value
    + with one record per line, of the form: key value. See the documentation for RewriteMap for further details of this file's format and meaning.
    -
    -o
    +
    -o OUTPUT_DBM
    Name of the output dbm files.
    top
    @@ -75,8 +83,30 @@

    -

    Available Languages:  en 

    -
    +

    Available Languages:  en  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/httxt2dbm.html.tr.utf8 b/docs/manual/programs/httxt2dbm.html.tr.utf8 new file mode 100644 index 00000000000..a191579be26 --- /dev/null +++ b/docs/manual/programs/httxt2dbm.html.tr.utf8 @@ -0,0 +1,112 @@ + + + + + +httxt2dbm - RewriteMap ile kullanmak için DBM dosyaları üretir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    httxt2dbm - RewriteMap ile kullanmak için DBM dosyaları üretir

    +
    +

    Mevcut Diller:  en  | + tr 

    +
    + +

    httxt2dbm, RewriteMap ile kullanmak için düz metin + dosyalardan DBM dosyaları üretir.

    +
    + +
    top
    +
    +

    Kullanım

    +

    httxt2dbm + [ -v ] + [ -f DBM_türü ] + -i kaynak_metin + -o çıktı_DBM +

    +
    top
    +
    +

    Seçenekler

    +
    +
    -v
    +
    Çıktı daha ayrıntılı olur.
    + +
    -f DBM_türü
    +
    Çıktı için kullanılacak DBM türü belirtilir. Belirtilmediği takdirde + APR öntanımlısı kullanılır. Belirtilebilecek DBM + türleri: + GDBM dosyalar için GDBM + SDBM dosyalar için SDBM + Berkeley DB dosyalar için DB + NDBM dosyalar için NDBM + öntanımlı DBM türü için default +
    + +
    -i kaynak_metin
    +
    DBM dosyasının üretiminde kullanılacak girdi dosyası belirtilir. Bu + dosya, her satırda bir kayıt bulunmak üzere her satırı şöyle biçemlenmiş + olmalıdır: anahtar değer. + Bu dosyanın biçemi ve manası ile ilgili ayrıntılar için RewriteMap yönergesinin açıklamasına + bakınız. +
    + +
    -o çıktı_DBM
    +
    Çıktılanacak DBM dosyasının ismi belirtilir.
    +
    +
    top
    +
    +

    Örnekler

    +

    + httxt2dbm -i rewritemap.txt -o rewritemap.dbm
    + httxt2dbm -f SDBM -i rewritemap.txt -o rewritemap.dbm
    +

    +
    +
    +

    Mevcut Diller:  en  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/httxt2dbm.xml b/docs/manual/programs/httxt2dbm.xml index 582957d041d..1e8c19d0553 100644 --- a/docs/manual/programs/httxt2dbm.xml +++ b/docs/manual/programs/httxt2dbm.xml @@ -4,12 +4,12 @@ - + httxt2dbm /programs/ .. en + tr diff --git a/docs/manual/programs/httxt2dbm.xml.tr b/docs/manual/programs/httxt2dbm.xml.tr new file mode 100644 index 00000000000..d3b7959fc0c --- /dev/null +++ b/docs/manual/programs/httxt2dbm.xml.tr @@ -0,0 +1,86 @@ + + + + + + + + + +Programlar + +httxt2dbm - RewriteMap ile kullanmak için DBM dosyaları üretir + + +

    httxt2dbm, RewriteMap ile kullanmak için düz metin + dosyalardan DBM dosyaları üretir.

    +
    +httpd +mod_rewrite + +
    Kullanım +

    httxt2dbm + [ -v ] + [ -f DBM_türü ] + -i kaynak_metin + -o çıktı_DBM +

    +
    + +
    Seçenekler +
    +
    -v
    +
    Çıktı daha ayrıntılı olur.
    + +
    -f DBM_türü
    +
    Çıktı için kullanılacak DBM türü belirtilir. Belirtilmediği takdirde + APR öntanımlısı kullanılır. Belirtilebilecek DBM + türleri: + GDBM dosyalar için GDBM + SDBM dosyalar için SDBM + Berkeley DB dosyalar için DB + NDBM dosyalar için NDBM + öntanımlı DBM türü için default +
    + +
    -i kaynak_metin
    +
    DBM dosyasının üretiminde kullanılacak girdi dosyası belirtilir. Bu + dosya, her satırda bir kayıt bulunmak üzere her satırı şöyle biçemlenmiş + olmalıdır: anahtar değer. + Bu dosyanın biçemi ve manası ile ilgili ayrıntılar için RewriteMap yönergesinin açıklamasına + bakınız. +
    + +
    -o çıktı_DBM
    +
    Çıktılanacak DBM dosyasının ismi belirtilir.
    +
    +
    + +
    Örnekler + + httxt2dbm -i rewritemap.txt -o rewritemap.dbm
    + httxt2dbm -f SDBM -i rewritemap.txt -o rewritemap.dbm
    +
    +
    + +
    diff --git a/docs/manual/programs/index.html b/docs/manual/programs/index.html index 37d824cf97e..52190324274 100644 --- a/docs/manual/programs/index.html +++ b/docs/manual/programs/index.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: index.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -6,6 +8,22 @@ Content-Language: es Content-type: text/html; charset=ISO-8859-1 +URI: index.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + URI: index.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: index.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: index.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 + +URI: index.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/index.html.en b/docs/manual/programs/index.html.en index 29772712f96..40d07a7463b 100644 --- a/docs/manual/programs/index.html.en +++ b/docs/manual/programs/index.html.en @@ -1,26 +1,37 @@ - -Server and Supporting Programs - Apache HTTP Server +Server and Supporting Programs - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Server and Supporting Programs

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Server and Supporting Programs

    Available Languages:  en  | - es  | - ko 

    + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    This page documents all the executable programs included @@ -96,9 +107,17 @@

    Available Languages:  en  | - es  | - ko 

    + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/programs/index.html.es b/docs/manual/programs/index.html.es index c088b63bfa6..7b2dfb24ced 100644 --- a/docs/manual/programs/index.html.es +++ b/docs/manual/programs/index.html.es @@ -1,43 +1,54 @@ - -El Servidor Apache y Programas de Soporte - Servidor HTTP Apache +El Servidor Apache y Programas de Soporte - Servidor HTTP Apache Versión 2.2 - - + + + +
    <-

    El Servidor Apache y Programas de Soporte

    +Apache > Servidor HTTP > Documentación > Versión 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    El Servidor Apache y Programas de Soporte

    Idiomas disponibles:  en  | - es  | - ko 

    + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    -
    Esta traducción podría estar - obsoleta. Consulte la versión en inglés de la - documentación para comprobar si se han producido cambios +
    Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios recientemente.
    -

    Esta página contiene toda la documentación sobre los programas +

    Esta página contiene toda la documentación sobre los programas ejecutables incluidos en el servidor Apache.

    top
    -

    Índice

    +

    Índice

    httpd
    -
    Servidor Apache del Protocolo de Transmisión de +
    Servidor Apache del Protocolo de Transmisión de Hipertexto (HTTP)
    apachectl
    @@ -50,30 +61,30 @@
    apxs
    -
    Herramienta de Extensión de Apache
    +
    Herramienta de Extensión de Apache
    configure
    -
    Configuración de la estructura de directorios de Apache
    +
    Configuración de la estructura de directorios de Apache
    dbmmanage
    -
    Crea y actualiza los archivos de autentificación de usuarios - en formato DBM para autentificación básica
    +
    Crea y actualiza los archivos de autentificación de usuarios + en formato DBM para autentificación básica
    htdigest
    -
    Crea y actualiza los ficheros de autentificación de usuarios - para autentificación tipo digest
    +
    Crea y actualiza los ficheros de autentificación de usuarios + para autentificación tipo digest
    htpasswd
    -
    Crea y actualiza los ficheros de autentificación de usuarios - para autentificación básica
    +
    Crea y actualiza los ficheros de autentificación de usuarios + para autentificación básica
    logresolve
    -
    Resuelve los nombres de host para direcciones IP que estén +
    Resuelve los nombres de host para direcciones IP que estén en los ficheros log de Apache
    rotatelogs
    @@ -86,15 +97,23 @@ usuario con la que se ejecuta un CGI
    Otros Programas
    -
    Herramientas de soporte sin sección propia en la - documentación.
    +
    Herramientas de soporte sin sección propia en la + documentación.

    Idiomas disponibles:  en  | - es  | - ko 

    + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licencia bajo los términos de la Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/programs/index.html.ja.utf8 b/docs/manual/programs/index.html.ja.utf8 new file mode 100644 index 00000000000..39f66369658 --- /dev/null +++ b/docs/manual/programs/index.html.ja.utf8 @@ -0,0 +1,121 @@ + + + + + +サーバーと補助プログラム - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    サーバーと補助プログラム

    +
    +

    翻訳済み言語:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + +

    このページでは Apache HTTP サーバー に含まれる全ての + 実行可能プログラムについて説明します。 +

    +
    +
    top
    +
    +

    Index

    + +
    +
    httpd
    + +
    Apache ハイパーテキスト転送プロトコルサーバー
    + +
    apachectl
    + +
    Apache HTTP サーバー制御インタフェース
    + +
    ab
    + +
    Apache HTTP サーバー・ベンチマークツール
    + +
    apxs
    + +
    Apache 拡張 (APache eXtenSion) ツール
    + +
    configure
    + +
    ソースツリーの設定
    + +
    dbmmanage
    + +
    Basic 認証用 ユーザ認証ファイルを DBM 形式で作成・更新するプログラム +
    + +
    htcacheclean
    +
    ディスクキャッシュのクリーンアップ
    + +
    htdigest
    + +
    Digest 認証用のユーザ認証ファイルの作成と更新
    + +
    htdbm
    + +
    DBM パスワードデータベースの操作
    + +
    htpasswd
    + +
    Basic 認証用のユーザ認証ファイルの作成と更新
    + +
    httxt2dbm
    + +
    RewriteMap 用に dbm ファイルを作成する
    + +
    logresolve
    + +
    Apache のログファイルの IP アドレスをホスト名に解決する
    + +
    rotatelogs
    + +
    サーバを停止せずに Apache ログファイルのローテーションを行う
    + +
    suexec
    + +
    Exec (CGI) のためにユーザを変更する
    + +
    その他のプログラム
    +
    マニュアルページの無いサポートツール
    +
    +
    +
    +

    翻訳済み言語:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/programs/index.html.ko.euc-kr b/docs/manual/programs/index.html.ko.euc-kr index d6a1fe7b904..591be9a1b2c 100644 --- a/docs/manual/programs/index.html.ko.euc-kr +++ b/docs/manual/programs/index.html.ko.euc-kr @@ -1,26 +1,37 @@ - -¼­¹ö¿Í Áö¿ø ÇÁ·α׷¥ - Apache HTTP Server +¼­¹ö¿Í Áö¿ø ÇÁ·α׷¥ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¼­¹ö¿Í Áö¿ø ÇÁ·α׷¥

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¼­¹ö¿Í Áö¿ø ÇÁ·α׷¥

    °¡´ÉÇÑ ¾ð¾î:  en  |  es  | - ko 

    + ja  | + ko  | + ru  | + tr  | + zh-cn 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -89,8 +100,16 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  es  | - ko 

    + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/programs/index.html.ru.koi8-r b/docs/manual/programs/index.html.ru.koi8-r new file mode 100644 index 00000000000..89dfe586ad0 --- /dev/null +++ b/docs/manual/programs/index.html.ru.koi8-r @@ -0,0 +1,117 @@ + + + + + +óÅÒ×ÅÒ É ×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÐÒÏÇÒÁÍÍÙ - HTTP ÓÅÒ×ÅÒ Apache ÷ÅÒÓÉÑ 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    óÅÒ×ÅÒ É ×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÐÒÏÇÒÁÍÍÙ

    +
    +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + +

    üÔÏÔ ÄÏËÕÍÅÎÔ ÏÐÉÓÙ×ÁÅÔ ÎÁÚÎÁÞÅÎÉÅ É ÉÐÏÌØÚÏ×ÁÎÉÅ + ×ÓÅÈ ÉÓÐÏÌÎÑÅÍÙÈ ÆÁÊÌÏ× HTTP ÓÅÒ×ÅÒÁ Apache.

    +
    +
    top
    +
    +

    õËÁÚÁÔÅÌØ

    + +
    +
    httpd
    + +
    HTTP ÓÅÒ×ÅÒ Apache
    + +
    apachectl
    + +
    éÎÔÅÒÆÅÊÓ ÕÐÒÁ×ÌÅÎÉÑ HTTP ÓÅÒ×ÅÒÏÍ Apache
    + +
    ab
    + +
    õÔÉÌÉÔÁ ÄÌÑ ÔÅÓÔÉÒÏ×ÁÎÉÑ HTTP ÓÅÒ×ÅÒÁ Apache
    + +
    apxs
    + +
    õÔÉÌÉÔÁ APache eXtenSion
    + +
    dbmmanage
    + +
    óÏÚÄÁÎÉÅ É ÏÂÎÏ×ÌÅÎÉÅ ÆÁÊÌÏ× ÐÁÒÏÌÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ × ÆÏÒÍÁÔÅ DBM, + ÎÅÏÂÈÏÄÉÍÙÈ ÄÌÑ ÂÁÚÏ×ÏÊ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ (basic authentification)
    + +
    htcacheclean
    +
    ïÞÉÓÔÉÔØ ËÜÛ ÎÁ ÄÉÓËÅ
    + +
    htdigest
    + +
    óÏÚÄÁÎÉÅ É ÏÂÎÏ×ÌÅÎÉÅ ÆÁÊÌÏ× ÐÁÒÏÌÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÄÌÑ + ÄÁÊÄÖÅÓÔÎÏÊ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ (digest authentification)
    + +
    htpasswd
    + +
    óÏÚÄÁÎÉÅ É ÏÂÎÏ×ÌÅÎÉÅ ÆÁÊÌÏ× ÐÁÒÏÌÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ + ÄÌÑ ÂÁÚÏ×ÏÊ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ (basic authentification)
    + +
    httxt2dbm
    + +
    óÏÚÄÁÎÉÅ dbm ÆÁÊÌÏ× ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ó RewriteMap
    + +
    logresolve
    + +
    õÔÉÌÉÔÁ ÄÌÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ IP-ÁÄÒÅÓÏ× × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ + ÉÍ ÉÍÅÎÁ ÈÏÓÔÏ× × ÌÏÇ-ÆÁÊÌÁÈ Apache
    + +
    rotatelogs
    + +
    õÔÉÌÉÔÁ, ÐÏÚ×ÏÌÑÀÝÁÑ ÐÒÏÉÚ×ÏÄÉÔØ ÒÏÔÁÃÉÀ ÌÏÇ-ÆÁÊÌÏ× Apache ÂÅÚ + ÏÓÔÁÎÏ×ËÉ ÓÅÒ×ÅÒÁ
    + +
    suexec
    + +
    Switch User For Exec - ÕÔÉÌÉÔÁ, ÐÏÚ×ÏÌÑÀÝÁÑ ×ÙÐÏÌÎÑÔØ CGI-ÓËÒÉÐÔ ÏÔ ÉÍÅÎÉ + ÄÒÕÇÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ
    + +
    äÒÕÇÉÅ ÐÒÏÇÒÁÍÍÙ
    +
    ÷ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÕÔÉÌÉÔÙ, ÎÅ ÉÍÅÀÝÉÅ Ó×ÏÉÈ ÓÏÂÓÔ×ÅÎÎÙÈ ÓÐÒÁ×ÏÞÎÙÈ ÒÕËÏ×ÏÄÓÔ×
    +
    +
    +
    +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/programs/index.html.tr.utf8 b/docs/manual/programs/index.html.tr.utf8 new file mode 100644 index 00000000000..ef3aa9b757d --- /dev/null +++ b/docs/manual/programs/index.html.tr.utf8 @@ -0,0 +1,118 @@ + + + + + +Sunucu ve Destek Programları - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Sunucu ve Destek Programları

    +
    +

    Mevcut Diller:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + +

    Bu sayfada Apache HTTP Sunucusuna dahil tüm çalıştırılabilir programlar tanıtılmıştır.

    +
    +
    top
    +
    +

    Dizin

    + +
    +
    httpd
    + +
    Apache hiper metin aktarım protokolü sunucusu.
    + +
    apachectl
    + +
    Apache HTTP Sunucusu denetim arayüzü.
    + +
    ab
    + +
    Apache HTTP Sunucusu başarım ölçme aracı.
    + +
    apxs
    + +
    Apache HTTP Sunucusu eklenti aracı (APache eXtenSion tool).
    + +
    configure
    + +
    Kaynak ağacını yapılandırır.
    + +
    dbmmanage
    + +
    Kullanıcı kimlik doğrulama dosyalarını temel kimlik doğrulaması için DBM biçeminde oluşturur ve günceller.
    + +
    htcacheclean
    +
    Disk arabelleğini temizler.
    + +
    htdigest
    + +
    Kullanıcı kimlik doğrulama dosyalarını özet kimlik doğrulaması için oluşturur ve günceller.
    + +
    htdbm
    + +
    DBM parola veritabanlarını idare eder.
    + +
    htpasswd
    + +
    Kullanıcı kimlik doğrulama dosyalarını temel kimlik doğrulaması için oluşturur ve günceller.
    + +
    httxt2dbm
    + +
    RewriteMap ile kullanmak üzere DBM dosyaları oluşturur.
    + +
    logresolve
    + +
    Apache günlük dosyalarındaki IP adreslerini konak isimlerine dönüştürür.
    + +
    rotatelogs
    + +
    Sunucuyu öldürmek gerekmeksizin günlük dosyalarının döndürülmesini sağlar.
    + +
    suexec
    + +
    Bir dosyayı belli bir kullanıcı adına çalıştırır.
    + +
    Diğer Programlar
    +
    Kendi kılavuz sayfası bulunmayan destek araçları.
    +
    +
    +
    +

    Mevcut Diller:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/programs/index.html.zh-cn.utf8 b/docs/manual/programs/index.html.zh-cn.utf8 new file mode 100644 index 00000000000..c6f55df616f --- /dev/null +++ b/docs/manual/programs/index.html.zh-cn.utf8 @@ -0,0 +1,118 @@ + + + + + +Apache HTTP 服务器与支持程序 - Apache HTTP 服务器 版本 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache HTTP 服务器与支持程序

    +
    +

    可用语言:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + +

    本页描述了 Apache HTTP 服务器包含的所有可执行程序。

    +
    +
    top
    +
    +

    索引

    + +
    +
    httpd
    + +
    Apache 服务器。
    + +
    apachectl
    + +
    Apache HTTP 服务器控制工具。
    + +
    ab
    + +
    Apache HTTP 服务器性能基准工具。
    + +
    apxs
    + +
    Apache 扩展工具。
    + +
    configure
    + +
    配置源代码。
    + +
    dbmmanage
    + +
    为基本认证创建和更新 DBM 格式的用户认证文件。
    + +
    htcacheclean
    +
    清理磁盘缓存。
    + +
    htdigest
    + +
    为摘要认证创建和更新用户认证文件。
    + +
    htdbm
    + +
    操作 DBM 密码数据库。
    + +
    htpasswd
    + +
    为基本认证创建和更新用户认证文件。
    + +
    httxt2dbm
    + +
    为 RewriteMap 创建 dbm 文件。
    + +
    logresolve
    + +
    将 Apache 日志文件中的 IP 地址解析到主机名称。
    + +
    rotatelogs
    + +
    不关闭 Apache 而切换日志文件。
    + +
    suexec
    + +
    执行外部程序前切换用户。
    + +
    其它程序
    +
    没有手册页的支持工具。
    +
    +
    +
    +

    可用语言:  en  | + es  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/programs/index.xml b/docs/manual/programs/index.xml index ff3a382eaab..ea4055d1ae2 100644 --- a/docs/manual/programs/index.xml +++ b/docs/manual/programs/index.xml @@ -4,12 +4,12 @@ + + + + + + + + サーバーと補助プログラム + + +

    このページでは Apache HTTP サーバー に含まれる全ての + 実行可能プログラムについて説明します。 +

    +
    + +
    Index + +
    +
    httpd
    + +
    Apache ハイパーテキスト転送プロトコルサーバー
    + +
    apachectl
    + +
    Apache HTTP サーバー制御インタフェース
    + +
    ab
    + +
    Apache HTTP サーバー・ベンチマークツール
    + +
    apxs
    + +
    Apache 拡張 (APache eXtenSion) ツール
    + +
    configure
    + +
    ソースツリーの設定
    + +
    dbmmanage
    + +
    Basic 認証用 ユーザ認証ファイルを DBM 形式で作成・更新するプログラム +
    + +
    htcacheclean
    +
    ディスクキャッシュのクリーンアップ
    + +
    htdigest
    + +
    Digest 認証用のユーザ認証ファイルの作成と更新
    + +
    htdbm
    + +
    DBM パスワードデータベースの操作
    + +
    htpasswd
    + +
    Basic 認証用のユーザ認証ファイルの作成と更新
    + +
    httxt2dbm
    + +
    RewriteMap 用に dbm ファイルを作成する
    + +
    logresolve
    + +
    Apache のログファイルの IP アドレスをホスト名に解決する
    + +
    rotatelogs
    + +
    サーバを停止せずに Apache ログファイルのローテーションを行う
    + +
    suexec
    + +
    Exec (CGI) のためにユーザを変更する
    + +
    その他のプログラム
    +
    マニュアルページの無いサポートツール
    +
    +
    + +
    diff --git a/docs/manual/programs/index.xml.ko b/docs/manual/programs/index.xml.ko index 2ba28c17615..23bd9a48e0f 100644 --- a/docs/manual/programs/index.xml.ko +++ b/docs/manual/programs/index.xml.ko @@ -1,15 +1,15 @@ - + - + index /programs/ .. @@ -8,6 +9,10 @@ en es + ja ko + ru + tr + zh-cn diff --git a/docs/manual/programs/index.xml.ru b/docs/manual/programs/index.xml.ru new file mode 100644 index 00000000000..c39a17e6a5b --- /dev/null +++ b/docs/manual/programs/index.xml.ru @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + óÅÒ×ÅÒ É ×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÐÒÏÇÒÁÍÍÙ + + +

    üÔÏÔ ÄÏËÕÍÅÎÔ ÏÐÉÓÙ×ÁÅÔ ÎÁÚÎÁÞÅÎÉÅ É ÉÐÏÌØÚÏ×ÁÎÉÅ + ×ÓÅÈ ÉÓÐÏÌÎÑÅÍÙÈ ÆÁÊÌÏ× HTTP ÓÅÒ×ÅÒÁ Apache.

    +
    + +
    õËÁÚÁÔÅÌØ + +
    +
    httpd
    + +
    HTTP ÓÅÒ×ÅÒ Apache
    + +
    apachectl
    + +
    éÎÔÅÒÆÅÊÓ ÕÐÒÁ×ÌÅÎÉÑ HTTP ÓÅÒ×ÅÒÏÍ Apache
    + +
    ab
    + +
    õÔÉÌÉÔÁ ÄÌÑ ÔÅÓÔÉÒÏ×ÁÎÉÑ HTTP ÓÅÒ×ÅÒÁ Apache
    + +
    apxs
    + +
    õÔÉÌÉÔÁ APache eXtenSion
    + +
    dbmmanage
    + +
    óÏÚÄÁÎÉÅ É ÏÂÎÏ×ÌÅÎÉÅ ÆÁÊÌÏ× ÐÁÒÏÌÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ × ÆÏÒÍÁÔÅ DBM, + ÎÅÏÂÈÏÄÉÍÙÈ ÄÌÑ ÂÁÚÏ×ÏÊ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ (basic authentification)
    + +
    htcacheclean
    +
    ïÞÉÓÔÉÔØ ËÜÛ ÎÁ ÄÉÓËÅ
    + +
    htdigest
    + +
    óÏÚÄÁÎÉÅ É ÏÂÎÏ×ÌÅÎÉÅ ÆÁÊÌÏ× ÐÁÒÏÌÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÄÌÑ + ÄÁÊÄÖÅÓÔÎÏÊ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ (digest authentification)
    + +
    htpasswd
    + +
    óÏÚÄÁÎÉÅ É ÏÂÎÏ×ÌÅÎÉÅ ÆÁÊÌÏ× ÐÁÒÏÌÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ + ÄÌÑ ÂÁÚÏ×ÏÊ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ (basic authentification)
    + +
    httxt2dbm
    + +
    óÏÚÄÁÎÉÅ dbm ÆÁÊÌÏ× ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ó RewriteMap
    + +
    logresolve
    + +
    õÔÉÌÉÔÁ ÄÌÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ IP-ÁÄÒÅÓÏ× × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ + ÉÍ ÉÍÅÎÁ ÈÏÓÔÏ× × ÌÏÇ-ÆÁÊÌÁÈ Apache
    + +
    rotatelogs
    + +
    õÔÉÌÉÔÁ, ÐÏÚ×ÏÌÑÀÝÁÑ ÐÒÏÉÚ×ÏÄÉÔØ ÒÏÔÁÃÉÀ ÌÏÇ-ÆÁÊÌÏ× Apache ÂÅÚ + ÏÓÔÁÎÏ×ËÉ ÓÅÒ×ÅÒÁ
    + +
    suexec
    + +
    Switch User For Exec - ÕÔÉÌÉÔÁ, ÐÏÚ×ÏÌÑÀÝÁÑ ×ÙÐÏÌÎÑÔØ CGI-ÓËÒÉÐÔ ÏÔ ÉÍÅÎÉ + ÄÒÕÇÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ
    + +
    äÒÕÇÉÅ ÐÒÏÇÒÁÍÍÙ
    +
    ÷ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÕÔÉÌÉÔÙ, ÎÅ ÉÍÅÀÝÉÅ Ó×ÏÉÈ ÓÏÂÓÔ×ÅÎÎÙÈ ÓÐÒÁ×ÏÞÎÙÈ ÒÕËÏ×ÏÄÓÔ×
    +
    +
    + +
    diff --git a/docs/manual/programs/index.xml.tr b/docs/manual/programs/index.xml.tr new file mode 100644 index 00000000000..af8e1ca20c7 --- /dev/null +++ b/docs/manual/programs/index.xml.tr @@ -0,0 +1,99 @@ + + + + + + + + + + + + Sunucu ve Destek Programları + + +

    Bu sayfada Apache HTTP Sunucusuna dahil tüm çalıştırılabilir programlar tanıtılmıştır.

    +
    + +
    Dizin + +
    +
    httpd
    + +
    Apache hiper metin aktarım protokolü sunucusu.
    + +
    apachectl
    + +
    Apache HTTP Sunucusu denetim arayüzü.
    + +
    ab
    + +
    Apache HTTP Sunucusu başarım ölçme aracı.
    + +
    apxs
    + +
    Apache HTTP Sunucusu eklenti aracı (APache eXtenSion tool).
    + +
    configure
    + +
    Kaynak ağacını yapılandırır.
    + +
    dbmmanage
    + +
    Kullanıcı kimlik doğrulama dosyalarını temel kimlik doğrulaması için DBM biçeminde oluşturur ve günceller.
    + +
    htcacheclean
    +
    Disk arabelleğini temizler.
    + +
    htdigest
    + +
    Kullanıcı kimlik doğrulama dosyalarını özet kimlik doğrulaması için oluşturur ve günceller.
    + +
    htdbm
    + +
    DBM parola veritabanlarını idare eder.
    + +
    htpasswd
    + +
    Kullanıcı kimlik doğrulama dosyalarını temel kimlik doğrulaması için oluşturur ve günceller.
    + +
    httxt2dbm
    + +
    RewriteMap ile kullanmak üzere DBM dosyaları oluşturur.
    + +
    logresolve
    + +
    Apache günlük dosyalarındaki IP adreslerini konak isimlerine dönüştürür.
    + +
    rotatelogs
    + +
    Sunucuyu öldürmek gerekmeksizin günlük dosyalarının döndürülmesini sağlar.
    + +
    suexec
    + +
    Bir dosyayı belli bir kullanıcı adına çalıştırır.
    + +
    Diğer Programlar
    +
    Kendi kılavuz sayfası bulunmayan destek araçları.
    +
    +
    + +
    diff --git a/docs/manual/programs/index.xml.zh-cn b/docs/manual/programs/index.xml.zh-cn new file mode 100644 index 00000000000..26f29524159 --- /dev/null +++ b/docs/manual/programs/index.xml.zh-cn @@ -0,0 +1,95 @@ + + + + + + + + + + + Apache HTTP 服务器与支持程序 + + +

    本页描述了 Apache HTTP 服务器包含的所有可执行程序。

    +
    + +
    索引 + +
    +
    httpd
    + +
    Apache 服务器。
    + +
    apachectl
    + +
    Apache HTTP 服务器控制工具。
    + +
    ab
    + +
    Apache HTTP 服务器性能基准工具。
    + +
    apxs
    + +
    Apache 扩展工具。
    + +
    configure
    + +
    配置源代码。
    + +
    dbmmanage
    + +
    为基本认证创建和更新 DBM 格式的用户认证文件。
    + +
    htcacheclean
    +
    清理磁盘缓存。
    + +
    htdigest
    + +
    为摘要认证创建和更新用户认证文件。
    + +
    htdbm
    + +
    操作 DBM 密码数据库。
    + +
    htpasswd
    + +
    为基本认证创建和更新用户认证文件。
    + +
    httxt2dbm
    + +
    为 RewriteMap 创建 dbm 文件。
    + +
    logresolve
    + +
    将 Apache 日志文件中的 IP 地址解析到主机名称。
    + +
    rotatelogs
    + +
    不关闭 Apache 而切换日志文件。
    + +
    suexec
    + +
    执行外部程序前切换用户。
    + +
    其它程序
    +
    没有手册页的支持工具。
    +
    +
    + +
    diff --git a/docs/manual/programs/logresolve.html b/docs/manual/programs/logresolve.html index 6c1b8a70bb0..a8958c831e9 100644 --- a/docs/manual/programs/logresolve.html +++ b/docs/manual/programs/logresolve.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: logresolve.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: logresolve.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: logresolve.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/logresolve.html.en b/docs/manual/programs/logresolve.html.en index 94f6859d448..d25284c8de8 100644 --- a/docs/manual/programs/logresolve.html.en +++ b/docs/manual/programs/logresolve.html.en @@ -1,27 +1,35 @@ - logresolve - Resolve IP-addresses to hostnames in Apache - log files - Apache HTTP Server + log files - Apache HTTP Server Version 2.2 - - + + + +
    <-

    logresolve - Resolve IP-addresses to hostnames in Apache +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    logresolve - Resolve IP-addresses to hostnames in Apache log files

    Available Languages:  en  | - ko 

    + ko  | + tr 

    logresolve is a post-processing program to @@ -36,7 +44,7 @@

    +
    top

    Synopsis

    @@ -65,8 +73,30 @@ original address.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/logresolve.html.ko.euc-kr b/docs/manual/programs/logresolve.html.ko.euc-kr index ce7b4f5ad10..81b4477d67a 100644 --- a/docs/manual/programs/logresolve.html.ko.euc-kr +++ b/docs/manual/programs/logresolve.html.ko.euc-kr @@ -1,27 +1,35 @@ - logresolve - ¾ÆÆÄġ ·αׯÄÀÏÀÇ IP-ÁּҸ¦ ȣ½ºƮ¸íÀ¸·Î - º¯ȯÇѴÙ - Apache HTTP Server + º¯ȯÇѴÙ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    logresolve - ¾ÆÆÄġ ·αׯÄÀÏÀÇ IP-ÁּҸ¦ ȣ½ºƮ¸íÀ¸·Î +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    logresolve - ¾ÆÆÄġ ·αׯÄÀÏÀÇ IP-ÁּҸ¦ ȣ½ºƮ¸íÀ¸·Î º¯ȯÇѴÙ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    logresolve´Â ¾ÆÆÄġ Á¢±ٷαׯÄÀϿ¡ Àִ @@ -34,7 +42,7 @@

    +
    top

    °³¿ä

    @@ -62,8 +70,30 @@ IP

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/logresolve.html.tr.utf8 b/docs/manual/programs/logresolve.html.tr.utf8 new file mode 100644 index 00000000000..59048f9a396 --- /dev/null +++ b/docs/manual/programs/logresolve.html.tr.utf8 @@ -0,0 +1,99 @@ + + + + + +logresolve - Apache günlük dosyalarındaki IP adreslerini konak + isimlerine dönüştürür - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    logresolve - Apache günlük dosyalarındaki IP adreslerini konak + isimlerine dönüştürür

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    logresolve, Apache'nin erişim + günlüklerindeki IP adreslerini çözümlemek için bir ardıl işlem + uygulamasıdır. İsim sunucunuza bindirdiği yükü en aza indirmek için + logresolve kendi arabelleğinde oluşturduğu + eşleme tablosunu kullanır.

    + +

    Apache günlük dosyasını standart girdisinden okur. IP adresleri günlük + dosyası satırlarında ilk bileşen olmalı ve sonraki bileşenlerden bir + boşluk ile ayrılmalıdır.

    +
    + +
    top
    +
    +

    Kullanım

    + +

    logresolve [ -s + dosyaismi ] [ -c ] < + günlük_dosyası > yeni_günlük_dosyası

    +
    top
    +
    +

    Seçenekler

    + +
    +
    -s dosyaismi
    +
    İstatistiklerin kaydedileceği dosyanın ismi belirtilir.
    + +
    -c
    +
    logresolve uygulamasının bazı DNS + sorguları yapmasına sebep olur: IP adresine karşılık olan konak ismini + bulduktan sonra özgün adresle karşılaştırmak için bu konak ismine karşılık + gelen IP adresini sorgular.
    + +
    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/logresolve.xml b/docs/manual/programs/logresolve.xml index 76e0f9fcfdb..0646c61ddff 100644 --- a/docs/manual/programs/logresolve.xml +++ b/docs/manual/programs/logresolve.xml @@ -4,12 +4,12 @@ + - + logresolve /programs/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/programs/logresolve.xml.tr b/docs/manual/programs/logresolve.xml.tr new file mode 100644 index 00000000000..7ca4c1fb409 --- /dev/null +++ b/docs/manual/programs/logresolve.xml.tr @@ -0,0 +1,68 @@ + + + + + + + + + +Programlar + + logresolve - Apache günlük dosyalarındaki IP adreslerini konak + isimlerine dönüştürür + + +

    logresolve, Apache'nin erişim + günlüklerindeki IP adreslerini çözümlemek için bir ardıl işlem + uygulamasıdır. İsim sunucunuza bindirdiği yükü en aza indirmek için + logresolve kendi arabelleğinde oluşturduğu + eşleme tablosunu kullanır.

    + +

    Apache günlük dosyasını standart girdisinden okur. IP adresleri günlük + dosyası satırlarında ilk bileşen olmalı ve sonraki bileşenlerden bir + boşluk ile ayrılmalıdır.

    +
    + +
    Kullanım + +

    logresolve [ -s + dosyaismi ] [ -c ] < + günlük_dosyası > yeni_günlük_dosyası

    +
    + + +
    Seçenekler + +
    +
    -s dosyaismi
    +
    İstatistiklerin kaydedileceği dosyanın ismi belirtilir.
    + +
    -c
    +
    logresolve uygulamasının bazı DNS + sorguları yapmasına sebep olur: IP adresine karşılık olan konak ismini + bulduktan sonra özgün adresle karşılaştırmak için bu konak ismine karşılık + gelen IP adresini sorgular.
    + +
    +
    + +
    diff --git a/docs/manual/programs/other.html b/docs/manual/programs/other.html index 2f9477404b5..d9c31cd3c0c 100644 --- a/docs/manual/programs/other.html +++ b/docs/manual/programs/other.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: other.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: other.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: other.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/other.html.en b/docs/manual/programs/other.html.en index a41a76331dd..8b3ac4f1d59 100644 --- a/docs/manual/programs/other.html.en +++ b/docs/manual/programs/other.html.en @@ -1,25 +1,33 @@ - -Other Programs - Apache HTTP Server +Other Programs - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Other Programs

    Available Languages:  en  | - ko 

    + ko  | + tr 

    The following programs are simple support programs included with the @@ -29,7 +37,7 @@

    +
    top

    log_server_status

    @@ -49,11 +57,36 @@

    The combined log file is read from stdin. Records read will be appended to any existing log files.

    + +

    split-logfile < access_log

    +

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/other.html.ko.euc-kr b/docs/manual/programs/other.html.ko.euc-kr index b8d5bbc4e76..e416fc5bb4b 100644 --- a/docs/manual/programs/other.html.ko.euc-kr +++ b/docs/manual/programs/other.html.ko.euc-kr @@ -1,26 +1,36 @@ - -Other Programs - Apache HTTP Server +Other Programs - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Other Programs

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ´ÙÀ½Àº °£´ÜÇϿ© manpage°¡ ¾ø´Â, ¾ÆÆÄġ À¥¼­¹ö¿¡ Æ÷ÇԵÈ Áö¿ø ÇÁ·α׷¥µéÀ̴Ù. Àڵ¿À¸·Î À̵éÀ» ¼³ġÇÏÁö ¾ʴ´Ù. @@ -29,7 +39,7 @@

    +
    top

    log_server_status

    @@ -50,8 +60,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/other.html.tr.utf8 b/docs/manual/programs/other.html.tr.utf8 new file mode 100644 index 00000000000..7a8a409ea68 --- /dev/null +++ b/docs/manual/programs/other.html.tr.utf8 @@ -0,0 +1,92 @@ + + + + + +Diğer Programlar - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Diğer Programlar

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    Aşağıdaki programlar Apache HTTP Sunucusu ile gelen basit destek + programları olup kendilerine ait kılavuz sayfaları yoktur. Bunlar + özdevinimli olarak kurulmazlar. Derleme işleminden sonra bunları + support/ dizininde bulabilirsiniz.

    +
    + +
    top
    +
    +

    log_server_status

    +

    Bu perl betiği cron gibi bir şeyleri belli aralıklarla çalıştırmak için + tasarlanmıştır. Sunucuya bağlanıp durum bilgisini indirdikten sonra bunları + tek bir satır haline getirip bir günlük dosyasına kaydeder. Sonuçların + kaydedileceği günlük dosyasını betiğin başlangıcındaki değişkenlerde + değişiklik yaparak belirtebilirsiniz.

    +
    top
    +
    +

    split-logfile

    +

    Bu perl betiği sanal konaklı bir birleşik günlük dosyasını girdi olarak + alır ve içeriğini ayrı dosyalara böler. Günlük dosyaları isimlendirilirken + sanal konak isimlerinin sonlarına .log uzantısı getirilir. + Günlük dosyasındaki her kaydın ilk bileşeninin, LogFormat yönergesinde + "%v" belirteci ile ifade edilen sanal konak adı olduğu + varsayılır.

    + +

    Birleşik günlük dosyası standart girdiden okunur. Kayıtlar okundukça + her biri kendi günlük dosyasına kaydedilir.

    + +

    split-logfile < access_log

    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/other.xml b/docs/manual/programs/other.xml index 8939827f36c..bc2402e7759 100644 --- a/docs/manual/programs/other.xml +++ b/docs/manual/programs/other.xml @@ -4,12 +4,12 @@ + - + other /programs/ .. en - ko + ko + tr diff --git a/docs/manual/programs/other.xml.tr b/docs/manual/programs/other.xml.tr new file mode 100644 index 00000000000..aa2026b9279 --- /dev/null +++ b/docs/manual/programs/other.xml.tr @@ -0,0 +1,62 @@ + + + + + + + + + +Programlar + +Diğer Programlar + + +

    Aşağıdaki programlar Apache HTTP Sunucusu ile gelen basit destek + programları olup kendilerine ait kılavuz sayfaları yoktur. Bunlar + özdevinimli olarak kurulmazlar. Derleme işleminden sonra bunları + support/ dizininde bulabilirsiniz.

    +
    + +
    log_server_status +

    Bu perl betiği cron gibi bir şeyleri belli aralıklarla çalıştırmak için + tasarlanmıştır. Sunucuya bağlanıp durum bilgisini indirdikten sonra bunları + tek bir satır haline getirip bir günlük dosyasına kaydeder. Sonuçların + kaydedileceği günlük dosyasını betiğin başlangıcındaki değişkenlerde + değişiklik yaparak belirtebilirsiniz.

    +
    + +
    split-logfile +

    Bu perl betiği sanal konaklı bir birleşik günlük dosyasını girdi olarak + alır ve içeriğini ayrı dosyalara böler. Günlük dosyaları isimlendirilirken + sanal konak isimlerinin sonlarına .log uzantısı getirilir. + Günlük dosyasındaki her kaydın ilk bileşeninin, LogFormat yönergesinde + "%v" belirteci ile ifade edilen sanal konak adı olduğu + varsayılır.

    + +

    Birleşik günlük dosyası standart girdiden okunur. Kayıtlar okundukça + her biri kendi günlük dosyasına kaydedilir.

    + + split-logfile < access_log +
    + +
    diff --git a/docs/manual/programs/rotatelogs.html b/docs/manual/programs/rotatelogs.html index d4b500ffa02..3879fb33677 100644 --- a/docs/manual/programs/rotatelogs.html +++ b/docs/manual/programs/rotatelogs.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: rotatelogs.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: rotatelogs.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: rotatelogs.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/rotatelogs.html.en b/docs/manual/programs/rotatelogs.html.en index c71d5809414..eac2a4cc2e7 100644 --- a/docs/manual/programs/rotatelogs.html.en +++ b/docs/manual/programs/rotatelogs.html.en @@ -1,69 +1,54 @@ - -rotatelogs - Piped logging program to rotate Apache logs - Apache HTTP Server +rotatelogs - Piped logging program to rotate Apache logs - Apache HTTP Server Version 2.2 - - + + + +
    <-

    rotatelogs - Piped logging program to rotate Apache logs

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    rotatelogs - Piped logging program to rotate Apache logs

    Available Languages:  en  | - ko 

    + ko  | + tr 

    rotatelogs is a simple program for use in - conjunction with Apache's piped logfile feature. For example:

    - -

    - CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common -

    - -

    This creates the files /var/logs/logfile.nnnn where nnnn is - the system time at which the log nominally starts (this time - will always be a multiple of the rotation time, so you can - synchronize cron scripts with it). At the end of each rotation - time (here after 24 hours) a new log is started.

    - -

    - CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common -

    - -

    This configuration will rotate the logfile whenever it reaches - a size of 5 megabytes.

    - -

    - ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" -

    -

    This configuration will rotate the error logfile whenever it - reaches a size of 5 megabytes, and the suffix to the logfile name - will be created of the form - errorlog.YYYY-mm-dd-HH_MM_SS.

    - + conjunction with Apache's piped logfile feature. It supports + rotation based on a time interval or maximum size of the log.

    +
    top

    Synopsis

    rotatelogs [ -l ] + [ -f ] logfile - [ rotationtime [ offset ]] | - [ filesizeM ]

    + rotationtime|filesizeM + [ offset ]

    top

    Options

    @@ -72,34 +57,103 @@
    -l
    Causes the use of local time rather than GMT as the base for the -interval. Note that using -l in an environment which changes the -GMT offset (such as for BST or DST) can lead to unpredictable results!
    +interval or for strftime(3) formatting with size-based +rotation. Note that using -l in an environment which +changes the GMT offset (such as for BST or DST) can lead to unpredictable +results! + +
    -f
    +
    Causes the logfile to be opened immediately, as soon as +rotatelogs starts, instead of waiting for the +first logfile entry to be read (for non-busy sites, there may be +a substantial delay between when the server is started +and when the first request is handled, meaning that the +associated logfile does not "exist" until then, which +causes problems from some automated logging tools). +Available in version 2.2.9 and later.
    logfile
    -
    The path plus basename of the logfile. If logfile +

    The path plus basename of the logfile. If logfile includes any '%' characters, it is treated as a format string for strftime(3). Otherwise, the suffix .nnnnnnnnnn is automatically added and is the time in seconds. Both formats compute the start time from the beginning of -the current period.

    +the current period. For example, if a rotation time of 86400 is +specified, the hour, minute, and second fields created from the +strftime(3) format will all be zero, referring to the +beginning of the current 24-hour period (midnight).

    +

    When using strftime(3) filename formatting, +be sure the log file format has enough granularity to produce +a different file name each time the logs are rotated. Otherwise +rotation will overwrite the same file instead of starting a new +one. For example, if logfile was +/var/logs/errorlog.%Y-%m-%d with log rotation at 5 +megabytes, but 5 megabytes was reached twice in the same day, the +same log file name would be produced and log rotation would keep +writing to the same file.

    +
    rotationtime
    -
    The time between log file rotations in seconds.
    +
    The time between log file rotations in seconds. The rotation +occurs at the beginning of this interval. For example, if the +rotation time is 3600, the log file will be rotated at the beginning +of every hour; if the rotation time is 86400, the log file will be +rotated every night at midnight. (If no data is logged during an +interval, no file will be created.)
    + +
    filesizeM
    + +
    The maximum file size in megabytes followed by the letter +M to specify size rather than time.
    offset
    The number of minutes offset from UTC. If omitted, zero is assumed and UTC is used. For example, to use local time in the zone -UTC -5 hours, specify a value of -300 for this argument.
    - -
    filesizeM
    +UTC -5 hours, specify a value of -300 for this argument. +In most cases, -l should be used instead of specifying +an offset. -
    The maximum file size in megabytes followed by the letter -M to specify size rather than time. Use this parameter -in place of both rotationtime and offset.
    +
    top
    +
    +

    Examples

    + +

    + CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common +

    + +

    This creates the files /var/logs/logfile.nnnn where nnnn is + the system time at which the log nominally starts (this time + will always be a multiple of the rotation time, so you can + synchronize cron scripts with it). At the end of each rotation + time (here after 24 hours) a new log is started.

    + +

    + CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common +

    + +

    This creates the files /var/logs/logfile.yyyy.mm.dd where + yyyy is the year, mm is the month, and dd is the day of the month. + Logging will switch to a new file every day at midnight, local time.

    + +

    + CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common +

    + +

    This configuration will rotate the logfile whenever it reaches + a size of 5 megabytes.

    + +

    + ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" +

    +

    This configuration will rotate the error logfile whenever it + reaches a size of 5 megabytes, and the suffix to the logfile name + will be created of the form + errorlog.YYYY-mm-dd-HH_MM_SS.

    +
    top

    Portability

    @@ -139,8 +193,30 @@ extensions.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/rotatelogs.html.ko.euc-kr b/docs/manual/programs/rotatelogs.html.ko.euc-kr index 6a5b70820e4..efa2ef23187 100644 --- a/docs/manual/programs/rotatelogs.html.ko.euc-kr +++ b/docs/manual/programs/rotatelogs.html.ko.euc-kr @@ -1,28 +1,38 @@ - rotatelogs - ¾ÆÆÄġ ·α׸¦ ¼øȯÇϱâÀ§ÇØ ÆÄÀÌÇÁ·Î ¿¬°áÇÒ - ·α× ÇÁ·α׷¥ - Apache HTTP Server + ·α× ÇÁ·α׷¥ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    rotatelogs - ¾ÆÆÄġ ·α׸¦ ¼øȯÇϱâÀ§ÇØ ÆÄÀÌÇÁ·Î ¿¬°áÇÒ +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    rotatelogs - ¾ÆÆÄġ ·α׸¦ ¼øȯÇϱâÀ§ÇØ ÆÄÀÌÇÁ·Î ¿¬°áÇÒ ·α× ÇÁ·α׷¥

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    rotatelogs´Â ¾ÆÆÄġÀÇ ÆÄÀÌÇÁ ·αׯÄÀÏ ±â´ÉÀ» À§ÇÑ °£´ÜÇÑ ÇÁ·α׷¥À̴Ù. ¿¹¸¦ µé¾î:

    @@ -54,7 +64,7 @@ +
    top

    °³¿ä

    @@ -136,8 +146,30 @@ GMT

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/rotatelogs.html.tr.utf8 b/docs/manual/programs/rotatelogs.html.tr.utf8 new file mode 100644 index 00000000000..5b299c5cad6 --- /dev/null +++ b/docs/manual/programs/rotatelogs.html.tr.utf8 @@ -0,0 +1,218 @@ + + + + + +rotatelogs - Apache günlüklerini döndürmek için borulu günlük kayıt + programı - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    rotatelogs - Apache günlüklerini döndürmek için borulu günlük kayıt + programı

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    rotatelogs, Apache'nin borulu günlük + dosyaları özelliği ile birlikte kullanmak için tasarlanmış basit bir + programdır. Günlük dosyasının azami boyutuna göre veya belli aralıklarla + günlük dosyalarını döndürür.

    +
    + +
    top
    +
    +

    Kullanım

    + +

    rotatelogs + [ -l ] + [ -f ] + dosyaismi + süre|boyutM + [ saat_farkı ]

    +
    top
    +
    +

    Seçenekler

    + +
    +
    -l
    +
    GMT yerine yerel zamanın kullanılmasını sağlar. Zaman dilimi değişik + olan ortamlarda (BST, DST gibi) bu seçeneğin kullanımı beklenmedik + sonuçlar verebilir!
    + +
    -f
    +
    İlk günlük giridisinin okunmasını beklemeden + rotatelogs başlar başlamaz günlük + dosyasının açılmasını sağlar. Çok meşgul sitelerde, sunucu başlatılıp ilk + istek sunuluncaya kadar geçen zamanda günlük dosyasının yokluğu + özdevinimli işlemler yapan bazı günlükleme araçlarında sorunlara yol + açabilir. Bu seçenek bu gibi durumlarda yararlıdır. 2.2.9 ve sonrası + için geçerlidir.
    + +
    dosyaismi
    +

    Günlük dosyasının ismi yoluyla birlikte belirtilir. + dosyaismi '%' karakterleri içeriyorsa bunlar + strftime(3) biçem belirteçleri olarak ele alınır. Aksi + takdirde, özdevinimli olarak .nnnnnnnnnn uzantısı üretilir. + Uzantı saniye cinsindendir ve her iki durumda da bu değer, mevcut döngü + diliminin başlangıcına göre hesaplanır. Örneğin, döndürmenin 86400 + saniyede bir yapılacağı belirtilmişse, strftime(3) biçeminde + oluşturulan saat, dakika ve saniye alanları, 24 saatlik sürenin + başlangıcını (geceyarısı) göstermek üzere sıfırlarla doldurulur.

    +

    strftime(3) dosya ismi biçimlemesini kullanırken, günlük + dosyası biçiminin günlüğün her döndürülüşünde farklı bir dosya ismi üretecek + ayrıntılara sahip olmasın sağlamalısınız. Aksi takdirde, döndürme işlemi + sonucunda günlük yeni bir dosya yerine aynı dosyanın üzerine yazılacaktır. + Örneğin, dosyaismi olarak + /var/logs/errorlog.%Y-%m-%d belirtilmişse, günlük dosyası da 5 + megabayta ulaşıyorsa, günlük döndürme ile aynı dosya ismi üretilir ve günlük + aynı dosyaya yazılmaya devam ederek bu boyut ikiye katlanır.

    + +
    süre
    +
    Günlük dosyasının yenisinin kaç saniyede bir açılacağı belirtilir. + Örneğin, bu süre 3600 saniye ise günlük dosyası her saat başında + yenilenir; 86400 saniye ise her geceyarısı yenilenir. (Bu süre zarfında + günlüğe kaydedilecek bir olay gerçekleşmemişse dosya oluşturulmaz.)
    + +
    boyutM
    +
    Boyuta göre döndürme için azami dosya boyutu. Belirtilenin bir süre + değil de bir boyut değeri olarak ele alınması için değerin sonuna + M (megabayt) harfi konmalıdır. + +

    Süre ve boyut birlikte belirtilmişse boyut süreden sonra + belirtilmelidir. Dosya yenilemesi, bunlardan hangisi daha önce aşılırsa o + zaman gerçekleşir.

    + +
    saat_farkı
    +
    Koordinatlı evrensel zamana göre "dakika" farkı. Belirtilmezse, sıfır + öntanımlıdır. Örneğin, -5 saatlik bir zaman diliminde bulunuyorsanız bu + değer -300 olmalıdır. Çoğu durumda, bunun yerine + -l seçeneğini kullanmak gerekir.
    + +
    +
    top
    +
    +

    Örnekler

    + +

    + CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common +

    + +

    nnnn, günlük kaydının başladığı sistem zamanı olmak üzere + /var/logs/logfile.nnnn dosyası oluşturulur. Bu zaman, daima döngü + süresinin katları olacağından bunu cron betiklerinizi eşzamanlamakta + kullanabilirsiniz. Her döngü süresinin sonunda (burada 24 saat sonra) + yeni bir günlük dosyası açılır.

    + +

    + CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common +

    + +

    yyyy, yıl; mm, ay; dd, ayın gününü belirtmek üzere + /var/logs/logfile.yyyy.mm.dd dosyası oluşturulur. Her gün yerel zamanla + geceyarısı yeni bir günlük dosyasına geçilecektir.

    + +

    + CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common +

    + +

    Günlük dosyası 5 megabaytlık olunca yenisinin oluşturulmasını sağlar. +

    + +

    + ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" +

    +

    Hata günlüğünün 5 megabaytta bir + errorlog.YYYY-mm-dd-HH_MM_SS biçemli bir isimle + oluşturulmasını sağlar.

    + +
    top
    +
    +

    Taşınabilirlik

    + +

    Aşağıdaki günlük dosyası biçem belirteçlerinin tüm + strftime(3) gerçeklenimlerince desteklenmesi gerekir. + Kullandığınız kütüphaneye özgü belirteçler için sisteminizdeki + strftime(3) kılavuz sayfasına bakınız.

    + + + + + + + + + + + + + + + + + + + + + + + +
    %Atam gün ismi (yerelleştirilmiş)
    %a3 harflik gün ismi +(yerelleştirilmiş)
    %Btam ay ismi (yerelleştirilmiş)
    %b3 harflik ay ismi (yerelleştirilmiş)
    %ctarih ve saat (yerelleştirilmiş)
    %d2 haneli ay günü numarası
    %H2 haneli saat (24 saatlik)
    %I2 haneli saat (12 saatlik)
    %j3 hanelik yıl günü numarası
    %M2 haneli dakika
    %m2 haneli ay
    %p12 saatlik kip için öö/ös +(yerelleştirilmiş)
    %S2 haneli saniye
    %U2 haneli yılın hafta numarası +(Haftanın ilk gününün Pazar olduğu varsayımıyla)
    %W2 haneli yılın hafta numarası +(Haftanın ilk gününün Pazartesi olduğu varsayımıyla)
    %w1 hanelik haftanın gün numarası +(Haftanın ilk gününün Pazar olduğu varsayımıyla)
    %Xsaat (yerelleştirilmiş)
    %xtarih (yerelleştirilmiş)
    %Y4 hanelik yıl
    %y2 hanelik yıl
    %Zzaman dilimi ismi
    %%`%' iminin kendisi
    + +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/rotatelogs.xml b/docs/manual/programs/rotatelogs.xml index d24268eb317..bdfb34bbd8d 100644 --- a/docs/manual/programs/rotatelogs.xml +++ b/docs/manual/programs/rotatelogs.xml @@ -4,12 +4,12 @@ + - + rotatelogs /programs/ .. en - ko + ko + tr diff --git a/docs/manual/programs/rotatelogs.xml.tr b/docs/manual/programs/rotatelogs.xml.tr new file mode 100644 index 00000000000..03a7ee9cdf5 --- /dev/null +++ b/docs/manual/programs/rotatelogs.xml.tr @@ -0,0 +1,184 @@ + + + + + + + + + +Programlar + + rotatelogs - Apache günlüklerini döndürmek için borulu günlük kayıt + programı + + +

    rotatelogs, Apache'nin borulu günlük + dosyaları özelliği ile birlikte kullanmak için tasarlanmış basit bir + programdır. Günlük dosyasının azami boyutuna göre veya belli aralıklarla + günlük dosyalarını döndürür.

    +
    + +
    Kullanım + +

    rotatelogs + [ -l ] + [ -f ] + dosyaismi + süre|boyutM + [ saat_farkı ]

    +
    + +
    Seçenekler + +
    +
    -l
    +
    GMT yerine yerel zamanın kullanılmasını sağlar. Zaman dilimi değişik + olan ortamlarda (BST, DST gibi) bu seçeneğin kullanımı beklenmedik + sonuçlar verebilir!
    + +
    -f
    +
    İlk günlük giridisinin okunmasını beklemeden + rotatelogs başlar başlamaz günlük + dosyasının açılmasını sağlar. Çok meşgul sitelerde, sunucu başlatılıp ilk + istek sunuluncaya kadar geçen zamanda günlük dosyasının yokluğu + özdevinimli işlemler yapan bazı günlükleme araçlarında sorunlara yol + açabilir. Bu seçenek bu gibi durumlarda yararlıdır. 2.2.9 ve sonrası + için geçerlidir.
    + +
    dosyaismi
    +

    Günlük dosyasının ismi yoluyla birlikte belirtilir. + dosyaismi '%' karakterleri içeriyorsa bunlar + strftime(3) biçem belirteçleri olarak ele alınır. Aksi + takdirde, özdevinimli olarak .nnnnnnnnnn uzantısı üretilir. + Uzantı saniye cinsindendir ve her iki durumda da bu değer, mevcut döngü + diliminin başlangıcına göre hesaplanır. Örneğin, döndürmenin 86400 + saniyede bir yapılacağı belirtilmişse, strftime(3) biçeminde + oluşturulan saat, dakika ve saniye alanları, 24 saatlik sürenin + başlangıcını (geceyarısı) göstermek üzere sıfırlarla doldurulur.

    +

    strftime(3) dosya ismi biçimlemesini kullanırken, günlük + dosyası biçiminin günlüğün her döndürülüşünde farklı bir dosya ismi üretecek + ayrıntılara sahip olmasın sağlamalısınız. Aksi takdirde, döndürme işlemi + sonucunda günlük yeni bir dosya yerine aynı dosyanın üzerine yazılacaktır. + Örneğin, dosyaismi olarak + /var/logs/errorlog.%Y-%m-%d belirtilmişse, günlük dosyası da 5 + megabayta ulaşıyorsa, günlük döndürme ile aynı dosya ismi üretilir ve günlük + aynı dosyaya yazılmaya devam ederek bu boyut ikiye katlanır.

    + +
    süre
    +
    Günlük dosyasının yenisinin kaç saniyede bir açılacağı belirtilir. + Örneğin, bu süre 3600 saniye ise günlük dosyası her saat başında + yenilenir; 86400 saniye ise her geceyarısı yenilenir. (Bu süre zarfında + günlüğe kaydedilecek bir olay gerçekleşmemişse dosya oluşturulmaz.)
    + +
    boyutM
    +
    Boyuta göre döndürme için azami dosya boyutu. Belirtilenin bir süre + değil de bir boyut değeri olarak ele alınması için değerin sonuna + M (megabayt) harfi konmalıdır. + +

    Süre ve boyut birlikte belirtilmişse boyut süreden sonra + belirtilmelidir. Dosya yenilemesi, bunlardan hangisi daha önce aşılırsa o + zaman gerçekleşir.

    + +
    saat_farkı
    +
    Koordinatlı evrensel zamana göre "dakika" farkı. Belirtilmezse, sıfır + öntanımlıdır. Örneğin, -5 saatlik bir zaman diliminde bulunuyorsanız bu + değer -300 olmalıdır. Çoğu durumda, bunun yerine + -l seçeneğini kullanmak gerekir.
    + +
    +
    + +
    Örnekler + + + CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common + + +

    nnnn, günlük kaydının başladığı sistem zamanı olmak üzere + /var/logs/logfile.nnnn dosyası oluşturulur. Bu zaman, daima döngü + süresinin katları olacağından bunu cron betiklerinizi eşzamanlamakta + kullanabilirsiniz. Her döngü süresinin sonunda (burada 24 saat sonra) + yeni bir günlük dosyası açılır.

    + + + CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common + + +

    yyyy, yıl; mm, ay; dd, ayın gününü belirtmek üzere + /var/logs/logfile.yyyy.mm.dd dosyası oluşturulur. Her gün yerel zamanla + geceyarısı yeni bir günlük dosyasına geçilecektir.

    + + + CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common + + +

    Günlük dosyası 5 megabaytlık olunca yenisinin oluşturulmasını sağlar. +

    + + + ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" + +

    Hata günlüğünün 5 megabaytta bir + errorlog.YYYY-mm-dd-HH_MM_SS biçemli bir isimle + oluşturulmasını sağlar.

    + +
    + +
    Taşınabilirlik + +

    Aşağıdaki günlük dosyası biçem belirteçlerinin tüm + strftime(3) gerçeklenimlerince desteklenmesi gerekir. + Kullandığınız kütüphaneye özgü belirteçler için sisteminizdeki + strftime(3) kılavuz sayfasına bakınız.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    %Atam gün ismi (yerelleştirilmiş)
    %a3 harflik gün ismi +(yerelleştirilmiş)
    %Btam ay ismi (yerelleştirilmiş)
    %b3 harflik ay ismi (yerelleştirilmiş)
    %ctarih ve saat (yerelleştirilmiş)
    %d2 haneli ay günü numarası
    %H2 haneli saat (24 saatlik)
    %I2 haneli saat (12 saatlik)
    %j3 hanelik yıl günü numarası
    %M2 haneli dakika
    %m2 haneli ay
    %p12 saatlik kip için öö/ös +(yerelleştirilmiş)
    %S2 haneli saniye
    %U2 haneli yılın hafta numarası +(Haftanın ilk gününün Pazar olduğu varsayımıyla)
    %W2 haneli yılın hafta numarası +(Haftanın ilk gününün Pazartesi olduğu varsayımıyla)
    %w1 hanelik haftanın gün numarası +(Haftanın ilk gününün Pazar olduğu varsayımıyla)
    %Xsaat (yerelleştirilmiş)
    %xtarih (yerelleştirilmiş)
    %Y4 hanelik yıl
    %y2 hanelik yıl
    %Zzaman dilimi ismi
    %%`%' iminin kendisi
    + +
    +
    diff --git a/docs/manual/programs/suexec.html b/docs/manual/programs/suexec.html index f9408988ff0..439a0689a74 100644 --- a/docs/manual/programs/suexec.html +++ b/docs/manual/programs/suexec.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: suexec.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: suexec.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: suexec.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/programs/suexec.html.en b/docs/manual/programs/suexec.html.en index b40770f1c9c..06a1923177e 100644 --- a/docs/manual/programs/suexec.html.en +++ b/docs/manual/programs/suexec.html.en @@ -1,25 +1,33 @@ - -suexec - Switch user before executing external programs - Apache HTTP Server +suexec - Switch user before executing external programs - Apache HTTP Server Version 2.2 - - + + + +
    <-

    suexec - Switch user before executing external programs

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    suexec - Switch user before executing external programs

    Available Languages:  en  | - ko 

    + ko  | + tr 

    suexec is used by the Apache HTTP Server to switch @@ -29,12 +37,12 @@ setuid bit set and must be owned by root. It should never be writable for any other person than root.

    -

    For further information about the concepts and and the security model - of suexec please refer to the suexec documentation (http://httpd.apache.org/docs-2.1/suexec.html).

    +

    For further information about the concepts and the security model + of suexec please refer to the suexec documentation (http://httpd.apache.org/docs/2.2/suexec.html).

    +
    top

    Synopsis

    @@ -54,8 +62,30 @@ changeable only at compile time.

    Available Languages:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/suexec.html.ko.euc-kr b/docs/manual/programs/suexec.html.ko.euc-kr index 3b3eb94bfc2..1855e18533b 100644 --- a/docs/manual/programs/suexec.html.ko.euc-kr +++ b/docs/manual/programs/suexec.html.ko.euc-kr @@ -1,26 +1,36 @@ - -suexec - ¿ܺÎ ÇÁ·α׷¥À» ½ÇÇàÇϱâ Àü¿¡ »ç¿ëÀڸ¦ º¯°æÇѴÙ - Apache HTTP Server +suexec - ¿ܺÎ ÇÁ·α׷¥À» ½ÇÇàÇϱâ Àü¿¡ »ç¿ëÀڸ¦ º¯°æÇѴÙ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    suexec - ¿ܺÎ ÇÁ·α׷¥À» ½ÇÇàÇϱâ Àü¿¡ »ç¿ëÀڸ¦ º¯°æÇѴÙ

    +Apache > HTTP Server > Documentation > Version 2.2 > Programs

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    suexec - ¿ܺÎ ÇÁ·α׷¥À» ½ÇÇàÇϱâ Àü¿¡ »ç¿ëÀڸ¦ º¯°æÇѴÙ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ¾ÆÆÄġ À¥¼­¹ö´Â CGI ÇÁ·α׷¥À» ½ÇÇàÇϱâ Àü¿¡ ´ٸ¥ »ç¿ëÀڷÎ ÀüȯÇϱâÀ§ÇØ suexec¸¦ »ç¿ëÇѴÙ. À̸¦ »ç¿ëÇϷÁ¸é @@ -31,11 +41,11 @@ ´ٸ¥ »ç¿ëÀڰ¡ ¾²±â±ÇÇÑÀ» °¡Áö¸é ¾ȵȴÙ.

    suexecÀÇ °³³ä°ú º¸¾ȸ𵨿¡ ´ëÇÑ Á¤º¸´Â suexec ¹®¼­¸¦ - (http://httpd.apache.org/docs-2.1/suexec.html) Âü°íÇ϶ó.

    + (http://httpd.apache.org/docs/2.2/suexec.html) Âü°íÇ϶ó.

    +
    top

    °³¿ä

    @@ -55,8 +65,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/programs/suexec.html.tr.utf8 b/docs/manual/programs/suexec.html.tr.utf8 new file mode 100644 index 00000000000..842db6fb3ef --- /dev/null +++ b/docs/manual/programs/suexec.html.tr.utf8 @@ -0,0 +1,91 @@ + + + + + +suexec - harici programları çalıştırmadan önce kullanıcıyı değiştirir - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    suexec - harici programları çalıştırmadan önce kullanıcıyı değiştirir

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + +

    suexec, CGI programlarını çalıştırmadan + önce Apache HTTP Sunucusu tarafından kullanıcı değiştirmek için kullanılır. + Bunu yapabilmek için sunucunun root tarafından çalıştırılmış + olması gerekir. HTTP artalan süreci normalde root aidiyetinde + çalışmadığından suexec'in çalıştırılabilir + dosyasının sahibi root olmalı, setuid biti etkin + (u+s) olmalı ve dosyaya root dışında hiç kimse + yazamamalıdır.

    + +

    suexec güvenlik modeli ve kavramlar + hakkında bilgi edinmek için suexec belgesine (http://httpd.apache.org/docs/2.2/suexec.html) bakınız.

    +
    + +
    top
    +
    +

    Kullanım

    +

    suexec -V

    +
    top
    +
    +

    Seçenekler

    +
    +
    -V
    +
    root iseniz, bu seçenek + suexec + derleme seçeneklerini gösterir. Güvenlik sebebiyle tüm yapılandırma + seçenekleri sadece derleme sırasında değiştirilebilir.
    +
    +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/programs/suexec.xml b/docs/manual/programs/suexec.xml index 14649f1225e..7ddf54e5458 100644 --- a/docs/manual/programs/suexec.xml +++ b/docs/manual/programs/suexec.xml @@ -4,12 +4,12 @@ + - + suexec /programs/ .. en - ko + ko + tr diff --git a/docs/manual/programs/suexec.xml.tr b/docs/manual/programs/suexec.xml.tr new file mode 100644 index 00000000000..048367d8920 --- /dev/null +++ b/docs/manual/programs/suexec.xml.tr @@ -0,0 +1,61 @@ + + + + + + + + + +Programlar + +suexec - harici programları çalıştırmadan önce kullanıcıyı değiştirir + + +

    suexec, CGI programlarını çalıştırmadan + önce Apache HTTP Sunucusu tarafından kullanıcı değiştirmek için kullanılır. + Bunu yapabilmek için sunucunun root tarafından çalıştırılmış + olması gerekir. HTTP artalan süreci normalde root aidiyetinde + çalışmadığından suexec'in çalıştırılabilir + dosyasının sahibi root olmalı, setuid biti etkin + (u+s) olmalı ve dosyaya root dışında hiç kimse + yazamamalıdır.

    + +

    suexec güvenlik modeli ve kavramlar + hakkında bilgi edinmek için suexec belgesine (http://httpd.apache.org/docs/&httpd.docs;/suexec.html) bakınız.

    +
    + +
    Kullanım +

    suexec -V

    +
    + +
    Seçenekler +
    +
    -V
    +
    root iseniz, bu seçenek + suexec + derleme seçeneklerini gösterir. Güvenlik sebebiyle tüm yapılandırma + seçenekleri sadece derleme sırasında değiştirilebilir.
    +
    +
    + +
    diff --git a/docs/manual/rewrite/access.html b/docs/manual/rewrite/access.html new file mode 100644 index 00000000000..dad5faec447 --- /dev/null +++ b/docs/manual/rewrite/access.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: access.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/access.html.en b/docs/manual/rewrite/access.html.en new file mode 100644 index 00000000000..19d8794ca72 --- /dev/null +++ b/docs/manual/rewrite/access.html.en @@ -0,0 +1,331 @@ + + + + + +Using mod_rewrite to control access - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Using mod_rewrite to control access

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how you can use mod_rewrite to control access to +various resources, and other related techniques. +This includes many examples of common uses of mod_rewrite, +including detailed descriptions of how each works.

    + +
    Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration.
    + +
    + +
    top
    +
    +

    Forbidding Image "Hotlinking"

    + + + +
    +
    Description:
    + +
    +

    The following technique forbids the practice of other sites + including your images inline in their pages. This practice is + often referred to as "hotlinking", and results in + your bandwidth being used to serve content for someone else's + site.

    +
    + +
    Solution:
    + +
    +

    This technique relies on the value of the + HTTP_REFERER variable, which is optional. As + such, it's possible for some people to circumvent this + limitation. However, most users will experience the failed + request, which should, over time, result in the image being + removed from that other site.

    +

    There are several ways that you can handle this + situation.

    + +

    In this first example, we simply deny the request, if it didn't + initiate from a page on our site. For the purpose of this example, + we assume that our site is www.example.com.

    + +

    +RewriteCond %{HTTP_REFERER} !^$
    +RewriteCond %{HTTP_REFERER} !www.example.com [NC]
    +RewriteRule \.(gif|jpg|png)$ - [F,NC] +

    + +

    In this second example, instead of failing the request, we display + an alternate image instead.

    + +

    +RewriteCond %{HTTP_REFERER} !^$
    +RewriteCond %{HTTP_REFERER} !www.example.com [NC]
    +RewriteRule \.(gif|jpg|png)$ /images/go-away.png [R,NC] +

    + +

    In the third example, we redirect the request to an image on some + other site.

    + +

    +RewriteCond %{HTTP_REFERER} !^$
    +RewriteCond %{HTTP_REFERER} !www.example.com [NC]
    +RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif [R,NC] +

    + +

    Of these techniques, the last two tend to be the most effective + in getting people to stop hotlinking your images, because they will + simply not see the image that they expected to see.

    + +
    + +
    Discussion:
    + +
    +

    If all you wish to do is deny access to the resource, rather + than redirecting that request elsewhere, this can be + accomplished without the use of mod_rewrite:

    + +

    + SetEnvIf Referer example\.com localreferer
    + <FilesMatch \.(jpg|png|gif)$>
    + Order deny,allow
    + Deny from all
    + Allow from env=localreferer
    + </FilesMatch> +

    +
    +
    + +
    top
    +
    +

    Blocking of Robots

    + + + +
    +
    Description:
    + +
    +

    + In this recipe, we discuss how to block persistent requests from + a particular robot, or user agent.

    + +

    The standard for robot exclusion defines a file, + /robots.txt that specifies those portions of your + website where you which to exclude robots. However, some robots + do not honor these files. +

    + +

    Note that there are methods of accomplishing this which do + not use mod_rewrite. Note also that any technique that relies on + the clients USER_AGENT string can be circumvented + very easily, since that string can be changed.

    +
    + +
    Solution:
    + +
    +

    We use a ruleset that specifies the directory to be + protected, and the client USER_AGENT that + identifies the malicious or persistent robot.

    + +

    In this example, we are blocking a robot called + NameOfBadRobot from a location + /secret/files. You may also specify an IP address + range, if you are trying to block that user agent only from the + particular source.

    + +

    +RewriteCond %{HTTP_USER_AGENT} ^NameOfBadRobot
    +RewriteCond %{REMOTE_ADDR} =123\.45\.67\.[8-9]
    +RewriteRule ^/secret/files/ - [F] +

    +
    + +
    Discussion:
    + +
    +

    + Rather than using mod_rewrite for this, you can accomplish the + same end using alternate means, as illustrated here: +

    +

    + SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
    + <Location /secret/files>
    + Order allow,deny
    + Allow from all
    + Deny from env=goaway
    + </Location> +

    +

    + As noted above, this technique is trivial to circumvent, by simply + modifying the USER_AGENT request header. If you + are experiencing a sustained attack, you should consider blocking + it at a higher level, such as at your firewall. +

    + +
    + +
    + +
    top
    +
    +

    Denying Hosts in a Blacklist

    + + + +
    +
    Description:
    + +
    +

    We wish to maintain a blacklist of hosts, rather like + hosts.deny, and have those hosts blocked from + accessing our server.

    +
    + +
    Solution:
    + +
    +

    +RewriteEngine on
    +RewriteMap hosts-deny txt:/path/to/hosts.deny
    +RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]
    +RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND
    +RewriteRule ^ - [F] +

    + +

    +##
    +## hosts.deny
    +##
    +## ATTENTION! This is a map, not a list, even when we treat it as such.
    +## mod_rewrite parses it for key/value pairs, so at least a
    +## dummy value "-" must be present for each entry.
    +##
    +
    +193.102.180.41 -
    +bsdti1.sdm.de -
    +192.76.162.40 -
    +

    +
    + +
    Discussion:
    +
    +

    + The second RewriteCond assumes that you have HostNameLookups turned + on, so that client IP addresses will be resolved. If that's not the + case, you should drop the second RewriteCond, and drop the + [OR] flag from the first RewriteCond. +

    +
    +
    + +
    top
    +
    +

    Referer-based Deflector

    + + + +
    +
    Description:
    + +
    +

    Redirect requests based on the Referer from which the request + came, with different targets per Referer.

    +
    + +
    Solution:
    + +
    +

    The following ruleset uses a map file to associate each Referer + with a redirection target.

    + +

    +RewriteMap deflector txt:/path/to/deflector.map
    +
    +RewriteCond %{HTTP_REFERER} !=""
    +RewriteCond ${deflector:%{HTTP_REFERER}} =-
    +RewriteRule ^ %{HTTP_REFERER} [R,L]
    +
    +RewriteCond %{HTTP_REFERER} !=""
    +RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
    +RewriteRule ^.* ${deflector:%{HTTP_REFERER}} [R,L] +

    + +

    The map file lists redirection targets for each referer, or, if + we just wish to redirect back to where they came from, a "-" is + placed in the map:

    + +

    +##
    +## deflector.map
    +##
    +
    +http://badguys.example.com/bad/index.html -
    +http://badguys.example.com/bad/index2.html -
    +http://badguys.example.com/bad/index3.html http://somewhere.example.com/ +

    + +
    +
    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/access.xml b/docs/manual/rewrite/access.xml new file mode 100644 index 00000000000..c6fe5aa3a92 --- /dev/null +++ b/docs/manual/rewrite/access.xml @@ -0,0 +1,307 @@ + + + + + + + + + Rewrite + +Using mod_rewrite to control access + + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how you can use mod_rewrite to control access to +various resources, and other related techniques. +This includes many examples of common uses of mod_rewrite, +including detailed descriptions of how each works.

    + +Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration. + +
    +Module documentation +mod_rewrite introduction +Redirection and remapping + +Virtual hosts +Proxying +Using RewriteMap +Advanced techniques and tricks +When not to use mod_rewrite + +
    + + Forbidding Image "Hotlinking" + +
    +
    Description:
    + +
    +

    The following technique forbids the practice of other sites + including your images inline in their pages. This practice is + often referred to as "hotlinking", and results in + your bandwidth being used to serve content for someone else's + site.

    +
    + +
    Solution:
    + +
    +

    This technique relies on the value of the + HTTP_REFERER variable, which is optional. As + such, it's possible for some people to circumvent this + limitation. However, most users will experience the failed + request, which should, over time, result in the image being + removed from that other site.

    +

    There are several ways that you can handle this + situation.

    + +

    In this first example, we simply deny the request, if it didn't + initiate from a page on our site. For the purpose of this example, + we assume that our site is www.example.com.

    + + +RewriteCond %{HTTP_REFERER} !^$
    +RewriteCond %{HTTP_REFERER} !www.example.com [NC]
    +RewriteRule \.(gif|jpg|png)$ - [F,NC] +
    + +

    In this second example, instead of failing the request, we display + an alternate image instead.

    + + +RewriteCond %{HTTP_REFERER} !^$
    +RewriteCond %{HTTP_REFERER} !www.example.com [NC]
    +RewriteRule \.(gif|jpg|png)$ /images/go-away.png [R,NC] +
    + +

    In the third example, we redirect the request to an image on some + other site.

    + + +RewriteCond %{HTTP_REFERER} !^$
    +RewriteCond %{HTTP_REFERER} !www.example.com [NC]
    +RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif [R,NC] +
    + +

    Of these techniques, the last two tend to be the most effective + in getting people to stop hotlinking your images, because they will + simply not see the image that they expected to see.

    + +
    + +
    Discussion:
    + +
    +

    If all you wish to do is deny access to the resource, rather + than redirecting that request elsewhere, this can be + accomplished without the use of mod_rewrite:

    + + + SetEnvIf Referer example\.com localreferer
    + <FilesMatch \.(jpg|png|gif)$>
    + Order deny,allow
    + Deny from all
    + Allow from env=localreferer
    + </FilesMatch> +
    +
    +
    + +
    + +
    + + Blocking of Robots + +
    +
    Description:
    + +
    +

    + In this recipe, we discuss how to block persistent requests from + a particular robot, or user agent.

    + +

    The standard for robot exclusion defines a file, + /robots.txt that specifies those portions of your + website where you which to exclude robots. However, some robots + do not honor these files. +

    + +

    Note that there are methods of accomplishing this which do + not use mod_rewrite. Note also that any technique that relies on + the clients USER_AGENT string can be circumvented + very easily, since that string can be changed.

    +
    + +
    Solution:
    + +
    +

    We use a ruleset that specifies the directory to be + protected, and the client USER_AGENT that + identifies the malicious or persistent robot.

    + +

    In this example, we are blocking a robot called + NameOfBadRobot from a location + /secret/files. You may also specify an IP address + range, if you are trying to block that user agent only from the + particular source.

    + + +RewriteCond %{HTTP_USER_AGENT} ^NameOfBadRobot
    +RewriteCond %{REMOTE_ADDR} =123\.45\.67\.[8-9]
    +RewriteRule ^/secret/files/ - [F] +
    +
    + +
    Discussion:
    + +
    +

    + Rather than using mod_rewrite for this, you can accomplish the + same end using alternate means, as illustrated here: +

    + + SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
    + <Location /secret/files>
    + Order allow,deny
    + Allow from all
    + Deny from env=goaway
    + </Location> +
    +

    + As noted above, this technique is trivial to circumvent, by simply + modifying the USER_AGENT request header. If you + are experiencing a sustained attack, you should consider blocking + it at a higher level, such as at your firewall. +

    + +
    + +
    + +
    + +
    + + Denying Hosts in a Blacklist + +
    +
    Description:
    + +
    +

    We wish to maintain a blacklist of hosts, rather like + hosts.deny, and have those hosts blocked from + accessing our server.

    +
    + +
    Solution:
    + +
    + +RewriteEngine on
    +RewriteMap hosts-deny txt:/path/to/hosts.deny
    +RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]
    +RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND
    +RewriteRule ^ - [F] +
    + + +##
    +## hosts.deny
    +##
    +## ATTENTION! This is a map, not a list, even when we treat it as such.
    +## mod_rewrite parses it for key/value pairs, so at least a
    +## dummy value "-" must be present for each entry.
    +##
    +
    +193.102.180.41 -
    +bsdti1.sdm.de -
    +192.76.162.40 -
    +
    +
    + +
    Discussion:
    +
    +

    + The second RewriteCond assumes that you have HostNameLookups turned + on, so that client IP addresses will be resolved. If that's not the + case, you should drop the second RewriteCond, and drop the + [OR] flag from the first RewriteCond. +

    +
    +
    + +
    + +
    + + Referer-based Deflector + +
    +
    Description:
    + +
    +

    Redirect requests based on the Referer from which the request + came, with different targets per Referer.

    +
    + +
    Solution:
    + +
    +

    The following ruleset uses a map file to associate each Referer + with a redirection target.

    + + +RewriteMap deflector txt:/path/to/deflector.map
    +
    +RewriteCond %{HTTP_REFERER} !=""
    +RewriteCond ${deflector:%{HTTP_REFERER}} =-
    +RewriteRule ^ %{HTTP_REFERER} [R,L]
    +
    +RewriteCond %{HTTP_REFERER} !=""
    +RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
    +RewriteRule ^.* ${deflector:%{HTTP_REFERER}} [R,L] +
    + +

    The map file lists redirection targets for each referer, or, if + we just wish to redirect back to where they came from, a "-" is + placed in the map:

    + + +##
    +## deflector.map
    +##
    +
    +http://badguys.example.com/bad/index.html -
    +http://badguys.example.com/bad/index2.html -
    +http://badguys.example.com/bad/index3.html http://somewhere.example.com/ +
    + +
    +
    + +
    + +
    diff --git a/docs/manual/rewrite/access.xml.meta b/docs/manual/rewrite/access.xml.meta new file mode 100644 index 00000000000..aa67bf49f9f --- /dev/null +++ b/docs/manual/rewrite/access.xml.meta @@ -0,0 +1,12 @@ + + + + + access + /rewrite/ + .. + + + en + + diff --git a/docs/manual/rewrite/advanced.html b/docs/manual/rewrite/advanced.html new file mode 100644 index 00000000000..64d0639fcfe --- /dev/null +++ b/docs/manual/rewrite/advanced.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: advanced.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/advanced.html.en b/docs/manual/rewrite/advanced.html.en new file mode 100644 index 00000000000..ef70b6a0c8c --- /dev/null +++ b/docs/manual/rewrite/advanced.html.en @@ -0,0 +1,522 @@ + + + + + +Advanced Techniques with mod_rewrite - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Advanced Techniques with mod_rewrite

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It provides +a few advanced techniques and tricks using mod_rewrite.

    + +
    Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration.
    + +
    + +
    top
    +
    +

    URL-based sharding accross multiple backends

    + + + +
    +
    Description:
    + +
    +

    A common technique for distributing the burden of + server load or storage space is called "sharding". + When using this method, a front-end server will use the + url to consistently "shard" users or objects to separate + backend servers.

    +
    + +
    Solution:
    + +
    +

    A mapping is maintained, from users to target servers, in + external map files. They look like:

    + +

    +user1 physical_host_of_user1
    +user2 physical_host_of_user2
    +: : +

    + +

    We put this into a map.users-to-hosts file. The + aim is to map;

    + +

    +/u/user1/anypath +

    + +

    to

    + +

    +http://physical_host_of_user1/u/user/anypath +

    + +

    thus every URL path need not be valid on every backend physical + host. The following ruleset does this for us with the help of the map + files assuming that server0 is a default server which will be used if + a user has no entry in the map:

    + +

    +RewriteEngine on
    +
    +RewriteMap users-to-hosts txt:/path/to/map.users-to-hosts
    +
    +RewriteRule ^/u/([^/]+)/?(.*) http://${users-to-hosts:$1|server0}/u/$1/$2 +

    +
    +
    + +

    See the RewriteMap + documentation for more discussion of the syntax of this directive.

    + +
    top
    +
    +

    On-the-fly Content-Regeneration

    + + + +
    +
    Description:
    + +
    +

    We wish to dynamically generate content, but store it + statically once it is generated. This rule will check for the + existence of the static file, and if it's not there, generate + it. The static files can be removed periodically, if desired (say, + via cron) and will be regenerated on demand.

    +
    + +
    Solution:
    + +
    + This is done via the following ruleset: + +
    # This example is valid in per-directory context only
    +RewriteCond %{REQUEST_URI}   !-U
    +RewriteRule ^(.+)\.html$          /regenerate_page.cgi   [PT,L]
    + + +

    The -U operator determines whether the test string + (in this case, REQUEST_URI) is a valid URL. It does + this via a subrequest. In the event that this subrequest fails - + that is, the requested resource doesn't exist - this rule invokes + the CGI program /regenerate_page.cgi, which generates + the requested resource and saves it into the document directory, so + that the next time it is requested, a static copy can be served.

    + +

    In this way, documents that are infrequently updated can be served in + static form. if documents need to be refreshed, they can be deleted + from the document directory, and they will then be regenerated the + next time they are requested.

    +
    +
    + +
    top
    +
    +

    Load Balancing

    + + + +
    +
    Description:
    + +
    +

    We wish to randomly distribute load across several servers + using mod_rewrite.

    +
    + +
    Solution:
    + +
    +

    We'll use RewriteMap and a list of servers + to accomplish this.

    + +

    +RewriteEngine on
    +RewriteMap lb rnd:/path/to/serverlist.txt
    +
    +RewriteRule ^/(.*) http://${lb:servers}/$1 [P,L] +

    + +

    serverlist.txt will contain a list of the servers:

    + +

    +## serverlist.txt
    +
    +servers one.example.com|two.example.com|three.example.com
    +

    + +

    If you want one particular server to get more of the load than the +others, add it more times to the list.

    + +
    + +
    Discussion
    +
    +

    Apache comes with a load-balancing module - +mod_proxy_balancer - which is far more flexible and +featureful than anything you can cobble together using mod_rewrite.

    +
    +
    + +
    top
    +
    +

    Document With Autorefresh

    + + + +
    +
    Description:
    + +
    +

    Wouldn't it be nice, while creating a complex web page, if + the web browser would automatically refresh the page every + time we save a new version from within our editor? + Impossible?

    +
    + +
    Solution:
    + +
    +

    No! We just combine the MIME multipart feature, the + web server NPH feature, and the URL manipulation power of + mod_rewrite. First, we establish a new + URL feature: Adding just :refresh to any + URL causes the 'page' to be refreshed every time it is + updated on the filesystem.

    + +

    +RewriteRule ^(/[uge]/[^/]+/?.*):refresh /internal/cgi/apache/nph-refresh?f=$1 +

    + +

    Now when we reference the URL

    + +

    +/u/foo/bar/page.html:refresh +

    + +

    this leads to the internal invocation of the URL

    + +

    +/internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html +

    + +

    The only missing part is the NPH-CGI script. Although + one would usually say "left as an exercise to the reader" + ;-) I will provide this, too.

    + +
    #!/sw/bin/perl
    +##
    +##  nph-refresh -- NPH/CGI script for auto refreshing pages
    +##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
    +##
    +$| = 1;
    +
    +#   split the QUERY_STRING variable
    +@pairs = split( /&/, $ENV{'QUERY_STRING'} );
    +foreach $pair (@pairs) {
    +    ( $name, $value ) = split( /=/, $pair );
    +    $name =~ tr/A-Z/a-z/;
    +    $name = 'QS_' . $name;
    +    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    +    eval "\$$name = \"$value\"";
    +}
    +$QS_s = 1    if ( $QS_s eq '' );
    +$QS_n = 3600 if ( $QS_n eq '' );
    +if ( $QS_f eq '' ) {
    +    print "HTTP/1.0 200 OK\n";
    +    print "Content-type: text/html\n\n";
    +print "&lt;b&gt;ERROR&lt;/b&gt;: No file given\n";
    +    exit(0);
    +}
    +if ( !-f $QS_f ) {
    +    print "HTTP/1.0 200 OK\n";
    +    print "Content-type: text/html\n\n";
    +print "&lt;b&gt;ERROR&lt;/b&gt;: File $QS_f not found\n";
    +    exit(0);
    +}
    +
    +sub print_http_headers_multipart_begin {
    +    print "HTTP/1.0 200 OK\n";
    +    $bound = "ThisRandomString12345";
    +    print "Content-type: multipart/x-mixed-replace;boundary=$bound\n";
    +    &print_http_headers_multipart_next;
    +}
    +
    +sub print_http_headers_multipart_next {
    +    print "\n--$bound\n";
    +}
    +
    +sub print_http_headers_multipart_end {
    +    print "\n--$bound--\n";
    +}
    +
    +sub displayhtml {
    +    local ($buffer) = @_;
    +    $len = length($buffer);
    +    print "Content-type: text/html\n";
    +    print "Content-length: $len\n\n";
    +    print $buffer;
    +}
    +
    +sub readfile {
    +    local ($file) = @_;
    +    local ( *FP, $size, $buffer, $bytes );
    +    ( $x, $x, $x, $x, $x, $x, $x, $size ) = stat($file);
    +    $size = sprintf( "%d", $size );
    +open(FP, "&lt;$file");
    +    $bytes = sysread( FP, $buffer, $size );
    +    close(FP);
    +    return $buffer;
    +}
    +
    +$buffer = &readfile($QS_f);
    +&print_http_headers_multipart_begin;
    +&displayhtml($buffer);
    +
    +sub mystat {
    +    local ($file) = $_[0];
    +    local ($time);
    +
    +    ( $x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime ) = stat($file);
    +    return $mtime;
    +}
    +
    +$mtimeL = &mystat($QS_f);
    +$mtime  = $mtime;
    +for ( $n = 0 ; $n & lt ; $QS_n ; $n++ ) {
    +    while (1) {
    +        $mtime = &mystat($QS_f);
    +        if ( $mtime ne $mtimeL ) {
    +            $mtimeL = $mtime;
    +            sleep(2);
    +            $buffer = &readfile($QS_f);
    +            &print_http_headers_multipart_next;
    +            &displayhtml($buffer);
    +            sleep(5);
    +            $mtimeL = &mystat($QS_f);
    +            last;
    +        }
    +        sleep($QS_s);
    +    }
    +}
    +
    +&print_http_headers_multipart_end;
    +
    +exit(0);
    +
    +##EOF##
    +
    +
    + +
    top
    +
    +

    Structured Userdirs

    + + + +
    +
    Description:
    + +
    +

    Some sites with thousands of users use a + structured homedir layout, i.e. each homedir is in a + subdirectory which begins (for instance) with the first + character of the username. So, /~larry/anypath + is /home/l/larry/public_html/anypath + while /~waldo/anypath is + /home/w/waldo/public_html/anypath.

    +
    + +
    Solution:
    + +
    +

    We use the following ruleset to expand the tilde URLs + into the above layout.

    + +

    +RewriteEngine on
    +RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2/$1/public_html$3 +

    +
    +
    + +
    top
    +
    +

    Redirecting Anchors

    + + + +
    +
    Description:
    + +
    +

    By default, redirecting to an HTML anchor doesn't work, + because mod_rewrite escapes the # character, + turning it into %23. This, in turn, breaks the + redirection.

    +
    + +
    Solution:
    + +
    +

    Use the [NE] flag on the + RewriteRule. NE stands for No Escape. +

    +
    + +
    Discussion:
    +
    This technique will of course also work with other + special characters that mod_rewrite, by default, URL-encodes.
    +
    + +
    top
    +
    +

    Time-Dependent Rewriting

    + + + +
    +
    Description:
    + +
    +

    We wish to use mod_rewrite to serve different content based on + the time of day.

    +
    + +
    Solution:
    + +
    +

    There are a lot of variables named TIME_xxx + for rewrite conditions. In conjunction with the special + lexicographic comparison patterns <STRING, + >STRING and =STRING we can + do time-dependent redirects:

    + +

    +RewriteEngine on
    +RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700
    +RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900
    +RewriteRule ^foo\.html$ foo.day.html [L]
    +RewriteRule ^foo\.html$ foo.night.html +

    + +

    This provides the content of foo.day.html + under the URL foo.html from + 07:01-18:59 and at the remaining time the + contents of foo.night.html.

    + +
    mod_cache, intermediate proxies + and browsers may each cache responses and cause the either page to be + shown outside of the time-window configured. + mod_expires may be used to control this + effect. You are, of course, much better off simply serving the + content dynamically, and customizing it based on the time of day.
    + +
    +
    + +
    top
    +
    +

    Set Environment Variables Based On URL Parts

    + + + +
    +
    Description:
    + +
    +

    At time, we want to maintain some kind of status when we + perform a rewrite. For example, you want to make a note that + you've done that rewrite, so that you can check later to see if a + request can via that rewrite. One way to do this is by setting an + environment variable.

    +
    + +
    Solution:
    + +
    +

    Use the [E] flag to set an environment variable.

    + +

    +RewriteEngine on
    +RewriteRule ^/horse/(.*) /pony/$1 [E=rewritten:1] +

    + +

    Later in your ruleset you might check for this environment + variable using a RewriteCond:

    + +

    +RewriteCond %{ENV:rewritten} =1 +

    + +
    +
    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/advanced.xml b/docs/manual/rewrite/advanced.xml new file mode 100644 index 00000000000..287a9b56be3 --- /dev/null +++ b/docs/manual/rewrite/advanced.xml @@ -0,0 +1,498 @@ + + + + + + + + + Rewrite + +Advanced Techniques with mod_rewrite + + + +

    This document supplements the mod_rewrite +reference documentation. It provides +a few advanced techniques and tricks using mod_rewrite.

    + +Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration. + +
    +Module documentation +mod_rewrite introduction +Redirection and remapping +Controlling access +Virtual hosts +Proxying +Using RewriteMap + +When not to use mod_rewrite + +
    + + URL-based sharding accross multiple backends + +
    +
    Description:
    + +
    +

    A common technique for distributing the burden of + server load or storage space is called "sharding". + When using this method, a front-end server will use the + url to consistently "shard" users or objects to separate + backend servers.

    +
    + +
    Solution:
    + +
    +

    A mapping is maintained, from users to target servers, in + external map files. They look like:

    + + +user1 physical_host_of_user1
    +user2 physical_host_of_user2
    +: : +
    + +

    We put this into a map.users-to-hosts file. The + aim is to map;

    + + +/u/user1/anypath + + +

    to

    + + +http://physical_host_of_user1/u/user/anypath + + +

    thus every URL path need not be valid on every backend physical + host. The following ruleset does this for us with the help of the map + files assuming that server0 is a default server which will be used if + a user has no entry in the map:

    + + +RewriteEngine on
    +
    +RewriteMap users-to-hosts txt:/path/to/map.users-to-hosts
    +
    +RewriteRule ^/u/([^/]+)/?(.*) http://${users-to-hosts:$1|server0}/u/$1/$2 +
    +
    +
    + +

    See the RewriteMap + documentation for more discussion of the syntax of this directive.

    + +
    + +
    + + On-the-fly Content-Regeneration + +
    +
    Description:
    + +
    +

    We wish to dynamically generate content, but store it + statically once it is generated. This rule will check for the + existence of the static file, and if it's not there, generate + it. The static files can be removed periodically, if desired (say, + via cron) and will be regenerated on demand.

    +
    + +
    Solution:
    + +
    + This is done via the following ruleset: + + +# This example is valid in per-directory context only +RewriteCond %{REQUEST_URI} !-U +RewriteRule ^(.+)\.html$ /regenerate_page.cgi [PT,L] + + +

    The -U operator determines whether the test string + (in this case, REQUEST_URI) is a valid URL. It does + this via a subrequest. In the event that this subrequest fails - + that is, the requested resource doesn't exist - this rule invokes + the CGI program /regenerate_page.cgi, which generates + the requested resource and saves it into the document directory, so + that the next time it is requested, a static copy can be served.

    + +

    In this way, documents that are infrequently updated can be served in + static form. if documents need to be refreshed, they can be deleted + from the document directory, and they will then be regenerated the + next time they are requested.

    +
    +
    + +
    + +
    + + Load Balancing + +
    +
    Description:
    + +
    +

    We wish to randomly distribute load across several servers + using mod_rewrite.

    +
    + +
    Solution:
    + +
    +

    We'll use RewriteMap and a list of servers + to accomplish this.

    + + +RewriteEngine on
    +RewriteMap lb rnd:/path/to/serverlist.txt
    +
    +RewriteRule ^/(.*) http://${lb:servers}/$1 [P,L] +
    + +

    serverlist.txt will contain a list of the servers:

    + + +## serverlist.txt
    +
    +servers one.example.com|two.example.com|three.example.com
    +
    + +

    If you want one particular server to get more of the load than the +others, add it more times to the list.

    + +
    + +
    Discussion
    +
    +

    Apache comes with a load-balancing module - +mod_proxy_balancer - which is far more flexible and +featureful than anything you can cobble together using mod_rewrite.

    +
    +
    + +
    + +
    + + Document With Autorefresh + +
    +
    Description:
    + +
    +

    Wouldn't it be nice, while creating a complex web page, if + the web browser would automatically refresh the page every + time we save a new version from within our editor? + Impossible?

    +
    + +
    Solution:
    + +
    +

    No! We just combine the MIME multipart feature, the + web server NPH feature, and the URL manipulation power of + mod_rewrite. First, we establish a new + URL feature: Adding just :refresh to any + URL causes the 'page' to be refreshed every time it is + updated on the filesystem.

    + + +RewriteRule ^(/[uge]/[^/]+/?.*):refresh /internal/cgi/apache/nph-refresh?f=$1 + + +

    Now when we reference the URL

    + + +/u/foo/bar/page.html:refresh + + +

    this leads to the internal invocation of the URL

    + + +/internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html + + +

    The only missing part is the NPH-CGI script. Although + one would usually say "left as an exercise to the reader" + ;-) I will provide this, too.

    + +
    +#!/sw/bin/perl
    +##
    +##  nph-refresh -- NPH/CGI script for auto refreshing pages
    +##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
    +##
    +$| = 1;
    +
    +#   split the QUERY_STRING variable
    +@pairs = split( /&/, $ENV{'QUERY_STRING'} );
    +foreach $pair (@pairs) {
    +    ( $name, $value ) = split( /=/, $pair );
    +    $name =~ tr/A-Z/a-z/;
    +    $name = 'QS_' . $name;
    +    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    +    eval "\$$name = \"$value\"";
    +}
    +$QS_s = 1    if ( $QS_s eq '' );
    +$QS_n = 3600 if ( $QS_n eq '' );
    +if ( $QS_f eq '' ) {
    +    print "HTTP/1.0 200 OK\n";
    +    print "Content-type: text/html\n\n";
    +print "&lt;b&gt;ERROR&lt;/b&gt;: No file given\n";
    +    exit(0);
    +}
    +if ( !-f $QS_f ) {
    +    print "HTTP/1.0 200 OK\n";
    +    print "Content-type: text/html\n\n";
    +print "&lt;b&gt;ERROR&lt;/b&gt;: File $QS_f not found\n";
    +    exit(0);
    +}
    +
    +sub print_http_headers_multipart_begin {
    +    print "HTTP/1.0 200 OK\n";
    +    $bound = "ThisRandomString12345";
    +    print "Content-type: multipart/x-mixed-replace;boundary=$bound\n";
    +    &print_http_headers_multipart_next;
    +}
    +
    +sub print_http_headers_multipart_next {
    +    print "\n--$bound\n";
    +}
    +
    +sub print_http_headers_multipart_end {
    +    print "\n--$bound--\n";
    +}
    +
    +sub displayhtml {
    +    local ($buffer) = @_;
    +    $len = length($buffer);
    +    print "Content-type: text/html\n";
    +    print "Content-length: $len\n\n";
    +    print $buffer;
    +}
    +
    +sub readfile {
    +    local ($file) = @_;
    +    local ( *FP, $size, $buffer, $bytes );
    +    ( $x, $x, $x, $x, $x, $x, $x, $size ) = stat($file);
    +    $size = sprintf( "%d", $size );
    +open(FP, "&lt;$file");
    +    $bytes = sysread( FP, $buffer, $size );
    +    close(FP);
    +    return $buffer;
    +}
    +
    +$buffer = &readfile($QS_f);
    +&print_http_headers_multipart_begin;
    +&displayhtml($buffer);
    +
    +sub mystat {
    +    local ($file) = $_[0];
    +    local ($time);
    +
    +    ( $x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime ) = stat($file);
    +    return $mtime;
    +}
    +
    +$mtimeL = &mystat($QS_f);
    +$mtime  = $mtime;
    +for ( $n = 0 ; $n & lt ; $QS_n ; $n++ ) {
    +    while (1) {
    +        $mtime = &mystat($QS_f);
    +        if ( $mtime ne $mtimeL ) {
    +            $mtimeL = $mtime;
    +            sleep(2);
    +            $buffer = &readfile($QS_f);
    +            &print_http_headers_multipart_next;
    +            &displayhtml($buffer);
    +            sleep(5);
    +            $mtimeL = &mystat($QS_f);
    +            last;
    +        }
    +        sleep($QS_s);
    +    }
    +}
    +
    +&print_http_headers_multipart_end;
    +
    +exit(0);
    +
    +##EOF##
    +
    +
    +
    + +
    + +
    + + Structured Userdirs + +
    +
    Description:
    + +
    +

    Some sites with thousands of users use a + structured homedir layout, i.e. each homedir is in a + subdirectory which begins (for instance) with the first + character of the username. So, /~larry/anypath + is /home/l/larry/public_html/anypath + while /~waldo/anypath is + /home/w/waldo/public_html/anypath.

    +
    + +
    Solution:
    + +
    +

    We use the following ruleset to expand the tilde URLs + into the above layout.

    + + +RewriteEngine on
    +RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2/$1/public_html$3 +
    +
    +
    + +
    + +
    + + Redirecting Anchors + +
    +
    Description:
    + +
    +

    By default, redirecting to an HTML anchor doesn't work, + because mod_rewrite escapes the # character, + turning it into %23. This, in turn, breaks the + redirection.

    +
    + +
    Solution:
    + +
    +

    Use the [NE] flag on the + RewriteRule. NE stands for No Escape. +

    +
    + +
    Discussion:
    +
    This technique will of course also work with other + special characters that mod_rewrite, by default, URL-encodes.
    +
    + +
    + +
    + + Time-Dependent Rewriting + +
    +
    Description:
    + +
    +

    We wish to use mod_rewrite to serve different content based on + the time of day.

    +
    + +
    Solution:
    + +
    +

    There are a lot of variables named TIME_xxx + for rewrite conditions. In conjunction with the special + lexicographic comparison patterns <STRING, + >STRING and =STRING we can + do time-dependent redirects:

    + + +RewriteEngine on
    +RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700
    +RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900
    +RewriteRule ^foo\.html$ foo.day.html [L]
    +RewriteRule ^foo\.html$ foo.night.html +
    + +

    This provides the content of foo.day.html + under the URL foo.html from + 07:01-18:59 and at the remaining time the + contents of foo.night.html.

    + + mod_cache, intermediate proxies + and browsers may each cache responses and cause the either page to be + shown outside of the time-window configured. + mod_expires may be used to control this + effect. You are, of course, much better off simply serving the + content dynamically, and customizing it based on the time of day. + +
    +
    + +
    + +
    + + Set Environment Variables Based On URL Parts + +
    +
    Description:
    + +
    +

    At time, we want to maintain some kind of status when we + perform a rewrite. For example, you want to make a note that + you've done that rewrite, so that you can check later to see if a + request can via that rewrite. One way to do this is by setting an + environment variable.

    +
    + +
    Solution:
    + +
    +

    Use the [E] flag to set an environment variable.

    + + +RewriteEngine on
    +RewriteRule ^/horse/(.*) /pony/$1 [E=rewritten:1] +
    + +

    Later in your ruleset you might check for this environment + variable using a RewriteCond:

    + + +RewriteCond %{ENV:rewritten} =1 + + +
    +
    + +
    + +
    diff --git a/docs/manual/rewrite/advanced.xml.meta b/docs/manual/rewrite/advanced.xml.meta new file mode 100644 index 00000000000..dbee8d81a5b --- /dev/null +++ b/docs/manual/rewrite/advanced.xml.meta @@ -0,0 +1,12 @@ + + + + + advanced + /rewrite/ + .. + + + en + + diff --git a/docs/manual/rewrite/avoid.html b/docs/manual/rewrite/avoid.html new file mode 100644 index 00000000000..c45209be5b0 --- /dev/null +++ b/docs/manual/rewrite/avoid.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: avoid.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/avoid.html.en b/docs/manual/rewrite/avoid.html.en new file mode 100644 index 00000000000..ec7c502ab87 --- /dev/null +++ b/docs/manual/rewrite/avoid.html.en @@ -0,0 +1,226 @@ + + + + + +When not to use mod_rewrite - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    When not to use mod_rewrite

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It describes +perhaps one of the most important concepts about mod_rewrite - namely, +when to avoid using it.

    + +

    mod_rewrite should be considered a last resort, when other +alternatives are found wanting. Using it when there are simpler +alternatives leads to configurations which are confusing, fragile, and +hard to maintain. Understanding what other alternatives are available is +a very important step towards mod_rewrite mastery.

    + +

    Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration.

    + +

    The most common situation in which mod_rewrite is +the right tool is when the very best solution requires access to the +server configuration files, and you don't have that access. Some +configuration directives are only available in the server configuration +file. So if you are in a hosting situation where you only have .htaccess +files to work with, you may need to resort to +mod_rewrite.

    + +
    + +
    top
    +
    +

    Simple Redirection

    + + +

    mod_alias provides the Redirect and RedirectMatch directives, which provide a +means to redirect one URL to another. This kind of simple redirection of +one URL, or a class of URLs, to somewhere else, should be accomplished +using these directives rather than RewriteRule. RedirectMatch +allows you to include a regular expression in your redirection criteria, +providing many of the benefits of using RewriteRule.

    + +

    A common use for RewriteRule is to redirect an entire +class of URLs. For example, all URLs in the /one directory +must be redirected to http://one.example.com/, or perhaps +all http requests must be redirected to +https.

    + +

    These situations are better handled by the Redirect +directive. Remember that Redirect preserves path +information. That is to say, a redirect for a URL /one will +also redirect all URLs under that, such as /one/two.html +and /one/three/four.html.

    + +

    To redirect URLs under /one to +http://one.example.com, do the following:

    + +

    +Redirect /one/ http://one.example.com/ +

    + +

    To redirect http URLs to https, do the +following:

    + +

    +<VirtualHost *:80> +ServerName www.example.com
    +Redirect / https://www.example.com/
    +</VirtualHost > +
    +<VirtualHost *:443> +ServerName www.example.com
    +
    +# ... SSL configuration goes here
    +</VirtualHost > +

    + +

    The use of RewriteRule to perform this task may be +appropriate if there are other RewriteRule directives in +the same scope. This is because, when there are Redirect +and RewriteRule directives in the same scope, the +RewriteRule directives will run first, regardless of the +order of appearance in the configuration file.

    + +

    In the case of the http-to-https redirection, the use of +RewriteRule would be appropriate if you don't have access +to the main server configuration file, and are obliged to perform this +task in a .htaccess file instead.

    + +
    top
    +
    +

    URL Aliasing

    +

    The Alias directive +provides mapping from a URI to a directory - usually a directory outside +of your DocumentRoot. Although it +is possible to perform this mapping with mod_rewrite, +Alias is the preferred method, for reasons of simplicity +and performance.

    + +

    Using Alias

    +Alias /cats /var/www/virtualhosts/felines/htdocs +

    + +

    +The use of mod_rewrite to perform this mapping may be +appropriate when you do not have access to the server configuration +files. Alias may only be used in server or virtualhost context, and not +in a .htaccess file. +

    + +

    Symbolic links would be another way to accomplish the same thing, if +you have Options FollowSymLinks enabled on your +server.

    +
    top
    +
    +

    Virtual Hosting

    +

    Although it is possible to handle virtual hosts +with mod_rewrite, it is seldom the right way. Creating individual +<VirtualHost> blocks is almost always the right way to go. In the +event that you have an enormous number of virtual hosts, consider using +mod_vhost_alias to create these hosts automatically.

    + +

    Third-party modules such as mod_macro are +also useful for creating a large number of virtual hosts dynamically.

    + +

    Using mod_rewrite for vitualhost creation may be +appropriate if you are using a hosting service that does not provide +you access to the server configuration files, and you are therefore +restricted to configuration using .htaccess files.

    + +

    See the virtual hosts with mod_rewrite +document for more details on how you might accomplish this if it still +seems like the right approach.

    + +
    top
    +
    +

    Simple Proxying

    + +

    RewriteRule provides the [P] flag to pass rewritten URIs through +mod_proxy.

    + +

    +RewriteRule ^/?images(.*) http://imageserver.local/images$1 [P] +

    + +

    However, in many cases, when there is no actual pattern matching +needed, as in the example shown above, the ProxyPass directive is a better choice. +The example here could be rendered as:

    + +

    +ProxyPass /images/ http://imageserver.local/images/ +

    + +

    Note that whether you use RewriteRule or ProxyPass, you'll still need to use the +ProxyPassReverse directive to +catch redirects issued from the back-end server:

    + +

    +ProxyPassReverse /images/ http://imageserver.local/images/ +

    + +

    You may need to use RewriteRule instead when there are +other RewriteRules in effect in the same scope, as a +RewriteRule will usually take effect before a +ProxyPass, and so may preempt what you're trying to +accomplish.

    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/avoid.xml b/docs/manual/rewrite/avoid.xml new file mode 100644 index 00000000000..e7ca01a9b77 --- /dev/null +++ b/docs/manual/rewrite/avoid.xml @@ -0,0 +1,210 @@ + + + + + + + + + Rewrite + +When not to use mod_rewrite + + + +

    This document supplements the mod_rewrite +reference documentation. It describes +perhaps one of the most important concepts about mod_rewrite - namely, +when to avoid using it.

    + +

    mod_rewrite should be considered a last resort, when other +alternatives are found wanting. Using it when there are simpler +alternatives leads to configurations which are confusing, fragile, and +hard to maintain. Understanding what other alternatives are available is +a very important step towards mod_rewrite mastery.

    + +

    Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration.

    + +

    The most common situation in which mod_rewrite is +the right tool is when the very best solution requires access to the +server configuration files, and you don't have that access. Some +configuration directives are only available in the server configuration +file. So if you are in a hosting situation where you only have .htaccess +files to work with, you may need to resort to +mod_rewrite.

    + +
    +Module documentation +mod_rewrite introduction +Redirection and remapping +Controlling access +Virtual hosts +Proxying +Using RewriteMap +Advanced techniques and tricks + + +
    +Simple Redirection + +

    mod_alias provides the Redirect and RedirectMatch directives, which provide a +means to redirect one URL to another. This kind of simple redirection of +one URL, or a class of URLs, to somewhere else, should be accomplished +using these directives rather than RewriteRule. RedirectMatch +allows you to include a regular expression in your redirection criteria, +providing many of the benefits of using RewriteRule.

    + +

    A common use for RewriteRule is to redirect an entire +class of URLs. For example, all URLs in the /one directory +must be redirected to http://one.example.com/, or perhaps +all http requests must be redirected to +https.

    + +

    These situations are better handled by the Redirect +directive. Remember that Redirect preserves path +information. That is to say, a redirect for a URL /one will +also redirect all URLs under that, such as /one/two.html +and /one/three/four.html.

    + +

    To redirect URLs under /one to +http://one.example.com, do the following:

    + + +Redirect /one/ http://one.example.com/ + + +

    To redirect http URLs to https, do the +following:

    + + +<VirtualHost *:80> +ServerName www.example.com
    +Redirect / https://www.example.com/
    +</VirtualHost > +
    +<VirtualHost *:443> +ServerName www.example.com
    +
    +# ... SSL configuration goes here
    +</VirtualHost > +
    + +

    The use of RewriteRule to perform this task may be +appropriate if there are other RewriteRule directives in +the same scope. This is because, when there are Redirect +and RewriteRule directives in the same scope, the +RewriteRule directives will run first, regardless of the +order of appearance in the configuration file.

    + +

    In the case of the http-to-https redirection, the use of +RewriteRule would be appropriate if you don't have access +to the main server configuration file, and are obliged to perform this +task in a .htaccess file instead.

    + +
    + +
    URL Aliasing +

    The Alias directive +provides mapping from a URI to a directory - usually a directory outside +of your DocumentRoot. Although it +is possible to perform this mapping with mod_rewrite, +Alias is the preferred method, for reasons of simplicity +and performance.

    + +Using Alias +Alias /cats /var/www/virtualhosts/felines/htdocs + + +

    +The use of mod_rewrite to perform this mapping may be +appropriate when you do not have access to the server configuration +files. Alias may only be used in server or virtualhost context, and not +in a .htaccess file. +

    + +

    Symbolic links would be another way to accomplish the same thing, if +you have Options FollowSymLinks enabled on your +server.

    +
    + +
    Virtual Hosting +

    Although it is possible to handle virtual hosts +with mod_rewrite, it is seldom the right way. Creating individual +<VirtualHost> blocks is almost always the right way to go. In the +event that you have an enormous number of virtual hosts, consider using +mod_vhost_alias to create these hosts automatically.

    + +

    Third-party modules such as mod_macro are +also useful for creating a large number of virtual hosts dynamically.

    + +

    Using mod_rewrite for vitualhost creation may be +appropriate if you are using a hosting service that does not provide +you access to the server configuration files, and you are therefore +restricted to configuration using .htaccess files.

    + +

    See the virtual hosts with mod_rewrite +document for more details on how you might accomplish this if it still +seems like the right approach.

    + +
    + +
    Simple Proxying + +

    RewriteRule provides the [P] flag to pass rewritten URIs through +mod_proxy.

    + + +RewriteRule ^/?images(.*) http://imageserver.local/images$1 [P] + + +

    However, in many cases, when there is no actual pattern matching +needed, as in the example shown above, the ProxyPass directive is a better choice. +The example here could be rendered as:

    + + +ProxyPass /images/ http://imageserver.local/images/ + + +

    Note that whether you use RewriteRule or ProxyPass, you'll still need to use the +ProxyPassReverse directive to +catch redirects issued from the back-end server:

    + + +ProxyPassReverse /images/ http://imageserver.local/images/ + + +

    You may need to use RewriteRule instead when there are +other RewriteRules in effect in the same scope, as a +RewriteRule will usually take effect before a +ProxyPass, and so may preempt what you're trying to +accomplish.

    + +
    + +
    + diff --git a/docs/manual/rewrite/avoid.xml.meta b/docs/manual/rewrite/avoid.xml.meta new file mode 100644 index 00000000000..c734d099c01 --- /dev/null +++ b/docs/manual/rewrite/avoid.xml.meta @@ -0,0 +1,12 @@ + + + + + avoid + /rewrite/ + .. + + + en + + diff --git a/docs/manual/rewrite/flags.html b/docs/manual/rewrite/flags.html new file mode 100644 index 00000000000..91c8a2883cd --- /dev/null +++ b/docs/manual/rewrite/flags.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: flags.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: flags.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/flags.html.en b/docs/manual/rewrite/flags.html.en new file mode 100644 index 00000000000..bde729ac70a --- /dev/null +++ b/docs/manual/rewrite/flags.html.en @@ -0,0 +1,711 @@ + + + + + +RewriteRule Flags - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    RewriteRule Flags

    +
    +

    Available Languages:  en  | + fr 

    +
    + +

    This document discusses the flags which are available to the +RewriteRule directive, +providing detailed explanations and examples.

    +
    + +
    top
    +
    +

    Introduction

    +

    A RewriteRule can have +its behavior modified by one or more flags. Flags are included in +square brackets at the end of the rule, and multiple flags are separated +by commas.

    +

    +RewriteRule pattern target [Flag1,Flag2,Flag3] +

    + +

    Each flag (with a few exceptions) has a short form, such as +CO, as well as a longer form, such as cookie. +While it is most common to use +the short form, it is recommended that you familiarize yourself with the +long form, so that you remember what each flag is supposed to do. +Some flags take one or more arguments. Flags are not case sensitive.

    + +

    Flags that alter metadata associated with the request (T=, H=, E=) +have no affect in per-directory and htaccess context, when a substitution +(other than '-') is performed during the same round of rewrite processing. +

    + +

    Presented here are each of the available flags, along with an example +of how you might use them.

    +
    top
    +
    +

    B (escape backreferences)

    +

    The [B] flag instructs RewriteRule to escape non-alphanumeric +characters before applying the transformation. +

    + +

    mod_rewrite has to unescape URLs before mapping them, +so backreferences will be unescaped at the time they are applied. +Using the B flag, non-alphanumeric characters in backreferences +will be escaped. For example, consider the rule:

    + +
    RewriteRule ^search/(.*)$ /search.php?term=$1
    + + +

    Given a search term of 'x & y/z', a browser will encode it as +'x%20%26%20y%2Fz', making the request 'search/x%20%26%20y%2Fz'. Without the B +flag, this rewrite rule will map to 'search.php?term=x & y/z', which +isn't a valid URL, and so would be encoded as +search.php?term=x%20&y%2Fz=, which is not what was intended.

    + +

    With the B flag set on this same rule, the parameters are re-encoded +before being passed on to the output URL, resulting in a correct mapping to +/search.php?term=x%20%26%20y%2Fz.

    + +

    Note that you may also need to set AllowEncodedSlashes to On to get this +particular example to work, as httpd does not allow encoded slashes in URLs, and +returns a 404 if it sees one.

    + +

    This escaping is particularly necessary in a proxy situation, +when the backend may break if presented with an unescaped URL.

    + +
    top
    +
    +

    C|chain

    +

    The [C] or [chain] flag indicates that the RewriteRule is chained to the next +rule. That is, if the rule matches, then it is processed as usual and +control moves on to the next rule. However, if it does not match, then +the next rule, and any other rules that are chained together, will be +skipped.

    + +
    top
    +
    +

    CO|cookie

    +

    The [CO], or [cookie] flag, allows you to set a cookie when a +particular RewriteRule +matches. The argument consists of three required fields and four optional +fields.

    + +

    The full syntax for the flag, including all attributes, is as +follows:

    + +

    +[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] +

    + +

    You must declare a name, a value, and a domain for the cookie to be set.

    + +
    +
    Domain
    +
    The domain for which you want the cookie to be valid. This may be a +hostname, such as www.example.com, or it may be a domain, +such as .example.com. It must be at least two parts +separated by a dot. That is, it may not be merely .com or +.net. Cookies of that kind are forbidden by the cookie +security model.
    +
    + +

    You may optionally also set the following values:

    + +
    +
    Lifetime
    +
    The time for which the cookie will persist, in minutes.
    +
    A value of 0 indicates that the cookie will persist only for the +current browser session. This is the default value if none is +specified. Prior to 2.2.28, a value of 0 indicates immediate expiration +and it was not possible to specify session lifetime if any later +parameters (Path, Secure, httponly) were specified
    + +
    Path
    +
    The path, on the current website, for which the cookie is valid, +such as /customers/ or /files/download/.
    +
    By default, this is set to / - that is, the entire +website.
    + +
    Secure
    +
    If set to secure, true, or 1, +the cookie will only be permitted to be translated via secure (https) +connections.
    + +
    httponly
    +
    If set to HttpOnly, true, or +1, the cookie will have the HttpOnly flag set, +which means that the cookie will be inaccessible to JavaScript code on +browsers that support this feature.
    +
    + +

    Several examples are offered here:

    + +

    +RewriteEngine On
    +RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.com:1440:/] +

    + +

    In the example give, the rule doesn't rewrite the request. +The "-" rewrite target tells mod_rewrite to pass the request +through unchanged. Instead, it sets a cookie +called 'frontdoor' to a value of 'yes'. The cookie is valid for any host +in the .example.com domain. It will be set to expire in 1440 +minutes (24 hours) and will be returned for all URIs.

    + +
    top
    +
    +

    DPI|discardpathinfo

    +

    The DPI flag causes the PATH_INFO portion of the rewritten URI to be +discarded.

    +

    This flag is available in version 2.2.12 and later.

    +

    In per-directory context, the URI each RewriteRule +compares against is the concatenation of the current values of the URI +and PATH_INFO.

    + +

    The current URI can be the initial URI as requested by the client, the +result of a previous round of mod_rewrite processing, or the result of +a prior rule in the current round of mod_rewrite processing.

    + +

    In contrast, the PATH_INFO that is appended to the URI before each +rule reflects only the value of PATH_INFO before this round of +mod_rewrite processing. As a consequence, if large portions +of the URI are matched and copied into a substitution in multiple +RewriteRule directives, without regard for +which parts of the URI came from the current PATH_INFO, the final +URI may have multiple copies of PATH_INFO appended to it.

    + +

    Use this flag on any substitution where the PATH_INFO that resulted +from the previous mapping of this request to the filesystem is not of +interest. This flag permanently forgets the PATH_INFO established +before this round of mod_rewrite processing began. PATH_INFO will +not be recalculated until the current round of mod_rewrite processing +completes. Subsequent rules during this round of processing will see +only the direct result of substitutions, without any PATH_INFO +appended.

    +
    top
    +
    +

    E|env

    +

    With the [E], or [env] flag, you can set the value of an environment +variable. Note that some environment variables may be set after the rule +is run, thus unsetting what you have set. See the +Environment Variables document for more details on how Environment +variables work.

    + +

    The full syntax for this flag is:

    + +

    +[E=VAR:VAL] +[E=!VAR] +

    + +

    VAL may contain backreferences ($N or +%N) which will be expanded.

    + +

    Using the short form

    + +

    +[E=VAR] +

    + +

    you can set the environment variable named VAR to an +empty value.

    + +

    The form

    + +

    +[E=!VAR] +

    + +

    allows to unset a previously set environment variable named +VAR.

    + +

    Environment variables can then be used in a variety of +contexts, including CGI programs, other RewriteRule directives, or +CustomLog directives.

    + +

    The following example sets an environment variable called 'image' to a +value of '1' if the requested URI is an image file. Then, that +environment variable is used to exclude those requests from the access +log.

    + +

    +RewriteRule \.(png|gif|jpg) - [E=image:1]
    +CustomLog logs/access_log combined env=!image +

    + +

    Note that this same effect can be obtained using SetEnvIf. This technique is offered as +an example, not as a recommendation.

    +
    top
    +
    +

    F|forbidden

    +

    Using the [F] flag causes the server to return a 403 Forbidden status +code to the client. While the same behavior can be accomplished using +the Deny directive, this +allows more flexibility in assigning a Forbidden status.

    + +

    The following rule will forbid .exe files from being +downloaded from your server.

    + +

    +RewriteRule \.exe - [F] +

    + +

    This example uses the "-" syntax for the rewrite target, which means +that the requested URI is not modified. There's no reason to rewrite to +another URI, if you're going to forbid the request.

    + +

    When using [F], an [L] is implied - that is, the response is returned +immediately, and no further rules are evaluated.

    + +
    top
    +
    +

    G|gone

    +

    The [G] flag forces the server to return a 410 Gone status with the +response. This indicates that a resource used to be available, but is no +longer available.

    + +

    As with the [F] flag, you will typically use the "-" syntax for the +rewrite target when using the [G] flag:

    + +

    +RewriteRule oldproduct - [G,NC] +

    + +

    When using [G], an [L] is implied - that is, the response is returned +immediately, and no further rules are evaluated.

    + +
    top
    +
    +

    H|handler

    +

    Forces the resulting request to be handled with the specified +handler. For example, one might use this to force all files without a +file extension to be parsed by the php handler:

    + +

    +RewriteRule !\. - [H=application/x-httpd-php] +

    + +

    +The regular expression above - !\. - will match any request +that does not contain the literal . character. +

    + +

    This can be also used to force the handler based on some conditions. +For example, the following snippet used in per-server context allows +.php files to be displayed by mod_php +if they are requested with the .phps extension:

    + +

    +RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source] +

    + +

    The regular expression above - ^(/source/.+\.php)s$ - will +match any request that starts with /source/ followed by 1 or +n characters followed by .phps literally. The backreference +$1 referrers to the captured match within parenthesis of the regular +expression.

    +
    top
    +
    +

    L|last

    +

    The [L] flag causes mod_rewrite to stop processing +the rule set. In most contexts, this means that if the rule matches, no +further rules will be processed. This corresponds to the +last command in Perl, or the break command in +C. Use this flag to indicate that the current rule should be applied +immediately without considering further rules.

    + +

    If you are using RewriteRule in either +.htaccess files or in +<Directory> sections, +it is important to have some understanding of how the rules are +processed. The simplified form of this is that once the rules have been +processed, the rewritten request is handed back to the URL parsing +engine to do what it may with it. It is possible that as the rewritten +request is handled, the .htaccess file or +<Directory> section +may be encountered again, and thus the ruleset may be run again from the +start. Most commonly this will happen if one of the rules causes a +redirect - either internal or external - causing the request process to +start over.

    + +

    It is therefore important, if you are using RewriteRule directives in one of these +contexts, that you take explicit steps to avoid rules looping, and not +count solely on the [L] flag to terminate execution of a series of +rules, as shown below.

    + +

    The example given here will rewrite any request to +index.php, giving the original request as a query string +argument to index.php, however, the RewriteCond ensures that if the request +is already for index.php, the RewriteRule will be skipped.

    + +

    +RewriteBase /
    +RewriteCond %{REQUEST_URI} !=/index.php
    +RewriteRule ^(.*) /index.php?req=$1 [L,PT] +

    +
    top
    +
    +

    N|next

    +

    +The [N] flag causes the ruleset to start over again from the top, using +the result of the ruleset so far as a starting point. Use +with extreme caution, as it may result in loop. +

    +

    +The [Next] flag could be used, for example, if you wished to replace a +certain string or letter repeatedly in a request. The example shown here +will replace A with B everywhere in a request, and will continue doing +so until there are no more As to be replaced. +

    + +

    +RewriteRule (.*)A(.*) $1B$2 [N] +

    + +

    You can think of this as a while loop: While this +pattern still matches (i.e., while the URI still contains an +A), perform this substitution (i.e., replace the +A with a B).

    + +
    top
    +
    +

    NC|nocase

    +

    Use of the [NC] flag causes the RewriteRule to be matched in a +case-insensitive manner. That is, it doesn't care whether letters appear +as upper-case or lower-case in the matched URI.

    + +

    In the example below, any request for an image file will be proxied +to your dedicated image server. The match is case-insensitive, so that +.jpg and .JPG files are both acceptable, for +example.

    + +

    +RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC] +

    +
    top
    +
    +

    NE|noescape

    +

    By default, special characters, such as & and +?, for example, will be converted to their hexcode +equivalent. Using the [NE] flag prevents that from happening. +

    + +

    +RewriteRule ^/anchor/(.+) /bigpage.html#$1 [NE,R] +

    + +

    +The above example will redirect /anchor/xyz to +/bigpage.html#xyz. Omitting the [NE] will result in the # +being converted to its hexcode equivalent, %23, which will +then result in a 404 Not Found error condition. +

    + +
    top
    +
    +

    NS|nosubreq

    +

    Use of the [NS] flag prevents the rule from being used on +subrequests. For example, a page which is included using an SSI (Server +Side Include) is a subrequest, and you may want to avoid rewrites +happening on those subrequests. Also, when mod_dir +tries to find out information about possible directory default files +(such as index.html files), this is an internal +subrequest, and you often want to avoid rewrites on such subrequests. +On subrequests, it is not always useful, and can even cause errors, if +the complete set of rules are applied. Use this flag to exclude +problematic rules.

    + +

    To decide whether or not to use this rule: if you prefix URLs with +CGI-scripts, to force them to be processed by the CGI-script, it's +likely that you will run into problems (or significant overhead) +on sub-requests. In these cases, use this flag.

    + +

    +Images, javascript files, or css files, loaded as part of an HTML page, +are not subrequests - the browser requests them as separate HTTP +requests. +

    +
    top
    +
    +

    P|proxy

    +

    Use of the [P] flag causes the request to be handled by +mod_proxy, and handled via a proxy request. For +example, if you wanted all image requests to be handled by a back-end +image server, you might do something like the following:

    + +

    +RewriteRule /(.*)\.(jpg|gif|png) http://images.example.com/$1.$2 [P] +

    + +

    Use of the [P] flag implies [L] - that is, the request is immediately +pushed through the proxy, and any following rules will not be +considered.

    + +

    +You must make sure that the substitution string is a valid URI +(typically starting with http://hostname) which can be +handled by the mod_proxy. If not, you will get an +error from the proxy module. Use this flag to achieve a +more powerful implementation of the ProxyPass directive, +to map remote content into the namespace of the local server.

    + +
    +

    Security Warning

    +

    Take care when constructing the target URL of the rule, considering +the security impact from allowing the client influence over the set of +URLs to which your server will act as a proxy. Ensure that the scheme +and hostname part of the URL is either fixed, or does not allow the +client undue influence.

    +
    + +

    Note: mod_proxy must be enabled in order +to use this flag.

    + +
    top
    +
    +

    PT|passthrough

    + +

    +The target (or substitution string) in a RewriteRule is assumed to be a +file path, by default. The use of the [PT] flag causes it to be treated +as a URI instead. That is to say, the +use of the [PT] flag causes the result of the RewriteRule to be passed back through +URL mapping, so that location-based mappings, such as Alias, Redirect, or ScriptAlias, for example, might have a +chance to take effect. +

    + +

    +If, for example, you have an +Alias +for /icons, and have a RewriteRule pointing there, you should +use the [PT] flag to ensure that the +Alias is evaluated. +

    + +

    +Alias /icons /usr/local/apache/icons
    +RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT] +

    + +

    +Omission of the [PT] flag in this case will cause the Alias to be +ignored, resulting in a 'File not found' error being returned. +

    + +

    The PT flag implies the L flag: +rewriting will be stopped in order to pass the request to +the next phase of processing.

    + +

    Note that the PT flag is implied in per-directory +contexts such as +<Directory> sections +or in .htaccess files. The only way to circumvent that +is to rewrite to -.

    + +
    top
    +
    +

    QSA|qsappend

    +

    +When the replacement URI contains a query string, the default behavior +of RewriteRule is to discard +the existing query string, and replace it with the newly generated one. +Using the [QSA] flag causes the query strings to be combined. +

    + +

    Consider the following rule:

    + +

    +RewriteRule /pages/(.+) /page.php?page=$1 [QSA] +

    + +

    With the [QSA] flag, a request for /pages/123?one=two will be +mapped to /page.php?page=123&one=two. Without the [QSA] +flag, that same request will be mapped to +/page.php?page=123 - that is, the existing query string +will be discarded. +

    +
    top
    +
    +

    R|redirect

    +

    +Use of the [R] flag causes a HTTP redirect to be issued to the browser. +If a fully-qualified URL is specified (that is, including +http://servername/) then a redirect will be issued to that +location. Otherwise, the current protocol, servername, and port number +will be used to generate the URL sent with the redirect. +

    + +

    +Any valid HTTP response status code may be specified, +using the syntax [R=305], with a 302 status code being used by +default if none is specified. The status code specified need not +necessarily be a redirect (3xx) status code. However, +if a status code is outside the redirect range (300-399) then the +substitution string is dropped entirely, and rewriting is stopped as if +the L were used.

    + +

    In addition to response status codes, you may also specify redirect +status using their symbolic names: temp (default), +permanent, or seeother.

    + +

    +You will almost always want to use [R] in conjunction with [L] (that is, +use [R,L]) because on its own, the [R] flag prepends +http://thishost[:thisport] to the URI, but then passes this +on to the next rule in the ruleset, which can often result in 'Invalid +URI in request' warnings. +

    + +
    top
    +
    +

    S|skip

    +

    The [S] flag is used to skip rules that you don't want to run. The +syntax of the skip flag is [S=N], where N signifies +the number of rules to skip (provided the +RewriteRule matches). This can be thought of as a goto +statement in your rewrite ruleset. In the following example, we only want +to run the RewriteRule if the +requested URI doesn't correspond with an actual file.

    + +

    +# Is the request for a non-existent file?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +# If so, skip these two RewriteRules
    +RewriteRule .? - [S=2]
    +RewriteRule (.*\.gif) images.php?$1
    +RewriteRule (.*\.html) docs.php?$1
    +

    + +

    This technique is useful because a RewriteCond only applies to the +RewriteRule immediately +following it. Thus, if you want to make a RewriteCond apply +to several RewriteRules, one possible technique is to +negate those conditions and add a RewriteRule with a [Skip] flag. You can +use this to make pseudo if-then-else constructs: The last rule of +the then-clause becomes skip=N, where N is the +number of rules in the else-clause:

    +

    +# Does the file exist?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
    +RewriteRule .? - [S=3]
    +
    +# IF the file exists, then: + + RewriteRule (.*\.gif) images.php?$1
    + RewriteRule (.*\.html) docs.php?$1
    + # Skip past the "else" stanza.
    + RewriteRule .? - [S=1]
    +
    +# ELSE... + + RewriteRule (.*) 404.php?file=$1
    +
    +# END +

    +
    top
    +
    +

    T|type

    +

    Sets the MIME type with which the resulting response will be +sent. This has the same effect as the AddType directive.

    + +

    For example, you might use the following technique to serve Perl +source code as plain text, if requested in a particular way:

    + +

    +# Serve .pl files as plain text
    +RewriteRule \.pl$ - [T=text/plain] +

    + +

    Or, perhaps, if you have a camera that produces jpeg images without +file extensions, you could force those images to be served with the +correct MIME type by virtue of their file names:

    + +

    +# Files with 'IMG' in the name are jpg images.
    +RewriteRule IMG - [T=image/jpg] +

    + +

    Please note that this is a trivial example, and could be better done +using <FilesMatch> +instead. Always consider the alternate +solutions to a problem before resorting to rewrite, which will +invariably be a less efficient solution than the alternatives.

    + +

    +If used in per-directory context, use only - (dash) +as the substitution for the entire round of mod_rewrite processing, +otherwise the MIME-type set with this flag is lost due to an internal +re-processing (including subsequent rounds of mod_rewrite processing). +The L flag can be useful in this context to end the +current round of mod_rewrite processing.

    + +
    +
    +

    Available Languages:  en  | + fr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/flags.html.fr b/docs/manual/rewrite/flags.html.fr new file mode 100644 index 00000000000..0469c46439e --- /dev/null +++ b/docs/manual/rewrite/flags.html.fr @@ -0,0 +1,786 @@ + + + + + +Les drapeaux de réécriture - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Les drapeaux de réécriture

    +
    +

    Langues Disponibles:  en  | + fr 

    +
    + +

    Ce document décrit les drapeaux disponibles dans la directive +RewriteRule, en fournissant +des explications détaillées et des exemples.

    +
    + +
    top
    +
    +

    Introduction

    +

    Le comportement d'une directive RewriteRule peut être modifié par un ou +plusieurs drapeaux. Les drapeaux sont situés en fin de règle, entourés +de crochets, et séparés le cas échéant par des virgules.

    +

    +RewriteRule modèle cible [drapeau1,drapeau2,drapeau3] +

    + +

    Chaque drapeau (à quelques exceptions près) +possède une forme courte, comme CO, ainsi qu'une forme longue, +comme cookie. Bien que +la forme courte soit la plus couramment utilisée, nous vous recommandons +de vous familiariser avec les drapeaux sous leur forme longue, afin de +bien mémoriser ce que chaque drapeau est supposé faire. +Certains drapeaux acceptent un ou plusieurs arguments. Les drapeaux ne +sont pas sensibles à la casse.

    + +

    Les drapeaux qui modifient les métadonnées associées à la requête +(T=, H=, E=) n'ont aucun effet dans un contexte de répertoire ou de +fichier htaccess, lorsqu'une substitution (autre que '-') est effectuée +au cours de la même passe du processus de réécriture. +

    + +

    Chaque drapeau disponible est présenté ici, avec un exemple +d'utilisation.

    +
    top
    +
    +

    B (échappement dans les références arrières)

    +

    Avec le drapeau [B], la directive RewriteRule échappe les caractères +non-alphanumériques avant d'appliquer la transformation.

    + +

    mod_rewrite doit supprimer les séquences d'échappement +des URLs avant leur +mise en correspondance avec le système de fichiers ; les séquences +d'échappement sont donc supprimées des références arrières au moment où +ces dernières sont appliquées. Avec le drapeau B, les caractères +non-alphanumériques des références arrières seront échappés. Considérons +par exemple cette règle :

    + +
    RewriteRule ^search/(.*)$ /search.php?term=$1
    + + +

    Soit la chaîne 'x & y/z' ; un navigateur va la coder en +'x%20%26%20y%2Fz', transformant la requête en 'search/x%20%26%20y%2Fz'. +Sans le drapeau B, la règle va intercepter la chaîne 'search.php?term=x +& y/z' qui n'est pas une URL valide, et la coder en +search.php?term=x%20&y%2Fz=, ce qui ne correspond pas +au résultat attendu.

    + +

    Avec le drapeau B, la règle va réencoder les paramètres avant de les +passer à l'URL de sortie, ce qui va produire l'URL correcte +/search.php?term=x%20%26%20y%2Fz.

    + +

    Notez que vous serez peut-être amené à définir la directive +AllowEncodedSlashes à +On pour que cet exemple fonctionne, car httpd n'autorise +pas les slashes encodés dans les URLs et renvoie une erreur 404 s'il en +rencontre un.

    + +

    Ce processus d'échappement est en particulier nécessaire dans le +contexte d'un mandataire, où l'accès au serveur d'arrière-plan échouera +si on présente à ce dernier une URL non échappée.

    + +
    top
    +
    +

    C|chain

    +

    Le drapeau [C] ou [chain] indique que la règle RewriteRule est chaînée avec la +suivante. Autrement dit, si la règle s'applique, elle est traitée +normalement et passe le contrôle à la règle suivante. Par contre, si +elle ne s'applique pas, la règle suivante, ainsi que toutes les règles +chaînées qui suivent, seront sautées.

    + +
    top
    +
    +

    CO|cookie

    +

    Le drapeau [CO], ou [cookie], vous permet de définir un cookie +lorsqu'une règle RewriteRule +s'applique. Il possède trois arguments obligatoires et +quatre arguments optionnels.

    + +

    La syntaxe complète de ce drapeau, avec tous ses attributs, est la +suivante :

    + +

    +[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] +

    + +

    Vous devez déclarer un nom, une valeur et un domaine pour que +le cookie puisse être défini.

    + +
    +
    Domain
    +
    Le domaine pour lequel vous souhaitez que le cookie soit valide. Ce +peut être un nom de serveur, comme www.example.com, ou un +domaine, comme .example.com. Il doit comporter au moins +deux parties séparées par un point. C'est à dire que vous ne pouvez pas +utiliser les valeurs .com ou .net. En effet, +ce style de cookie est interdit par le modèle de sécurité des cookies.
    +
    + +

    Vous pouvez aussi définir les valeurs suivantes :

    + +
    +
    Lifetime
    +
    La durée de vie du cookie, en minutes.
    + +
    Avec la valeur 0 (valeur par défaut), le cookie est maintenu pendant +la durée de la session du navigateur. Avant la version 2.2.28, la +valeur 0 impliquait une expiration immédiate du cookie, et il était +impossible de spécifié une autre durée de vie si un autre paramètre +(Path, Secure, httponly) était présent.
    + +
    Path
    +
    Le chemin, sur le site web concerné, pour lequel le cookie est +valide, du style /clients/ or +/fichiers/telechargement/.
    +
    La valeur par défaut est / - c'est à dire l'ensemble du +site web.
    + +
    Secure
    +
    Si cet argument a pour valeur secure, +true, ou 1, le cookie ne pourra être transmis +que dans le cadre d'une connexion sécurisée (https).
    + +
    httponly
    +
    Si cet argument a pour valeur HttpOnly, +true, ou 1, le cookie aura son drapeau +HttpOnly activé, ce qui signifie qu'il sera inaccessible au +code JavaScript pour les navigateurs qui supportent cette +fonctionnalité.
    +
    + +

    Voici un exemple :

    + +

    +RewriteEngine On
    +RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.org:1440:/] +

    + +

    Dans l'exemple ci-dessus, la règle ne réécrit +pas la requête. La cible de réécriture "-" +indique à mod_rewrite de transmettre la requête sans +modification. Par contre, il +définit un cookie nommé 'frontdoor' avec une valeur 'yes'. Le cookie est +valide pour tout hôte situé dans le domaine .example.org. Sa +durée de vie est limitée à 1440 minutes (24 heures), et il sera renvoyé +pour tous les URIs.

    + +
    top
    +
    +

    DPI|discardpathinfo

    +

    Avec le drapeau DPI, la partie PATH_INFO de l'URI +réécrit est supprimée.

    +

    Ce drapeau est disponible dans les versions 2.2.12 et supérieures.

    +

    Dans un contexte de répertoire, l'URI mis en comparaison par chaque +règle RewriteRule est la concaténation des +valeurs courantes de l'URI et de PATH_INFO.

    + +

    L'URI courant peut être l'URI initial tel qu'il a été fourni par le +client, le résultat d'une passe précédente du processus de réécriture, +ou le résultat de la règle précédente dans le processus courant de +réécriture.

    + +

    Par contre, la partie PATH_INFO ajoutée à l'URI avant chaque règle ne +reflète que la valeur de PATH_INFO avant la passe courante du processus +de réécriture. En conséquence, si de larges portions de l'URI +correspondent et sont traduites via plusieurs directives +RewriteRule, sans prendre en compte +quelles parties de l'URI provenaient du PATH_INFO courant, l'URI final +pourra se voir ajouter plusieurs copies de PATH_INFO.

    + +

    Utilisez ce drapeau pour toute substitution où la présence du PATH_INFO qui +résultait de la mise en correspondance précédente de cette requête avec +le système de fichier n'est pas nécessaire. Avec ce drapeau, le +PATH_INFO établi avant que cette passe du processus de réécriture ne +débute est oublié. PATH_INFO ne sera pas recalculé tant que la passe +courante du processus de réécriture ne sera pas achevée. Les règles +suivantes de cette passe ne verront que le résultat direct des +substitutions, sans aucun PATH_INFO ajouté.

    +
    top
    +
    +

    E|env

    +

    Avec le drapeau [E], ou [env], vous pouvez définir la valeur d'une +variable d'environnement. Notez que certaines variables d'environnement +peuvent être définies après le traitement de la règle, annulant par +la-même ce que vous avez défini. Voir le document +sur les variables d'environnement pour plus de détails sur le +fonctionnement des variables d'environnement.

    + +

    La syntaxe complète pour ce drapeau est :

    + +

    +[E=!VAR] +

    + +

    VAL peut comporter des références arrières +($N ou %N) qui seront développées.

    + +

    En utilisant la version courte

    + +

    +[E=VAR] +

    + +

    vous pouvez définir la variable d'environnement nommée +VAR avec une valeur vide.

    + +

    La forme

    + +

    +[E=!VAR] +

    + +

    permet d'annuler la définition de la variable VAR.

    + +

    Les variables d'environnement s'emploient dans différents contextes, +comme les programmes CGI, d'autres directives RewriteRule, ou des +directives CustomLog.

    + +

    L'exemple suivant définit une variable d'environnement nommée 'image' +avec une valeur de '1' si l'URI de la requête correspond à un fichier +image. Cette variable d'environnement est ensuite utilisée pour exclure +une telle requête du journal des accès.

    + +

    +RewriteRule \.(png|gif|jpg) - [E=image:1]
    +CustomLog logs/access_log combined env=!image +

    + +

    Notez que le même effet peut être obtenu à l'aide de la directive +SetEnvIf. Cette technique +est présentée à titre d'exemple et non de recommandation.

    +
    top
    +
    +

    F|forbidden

    +

    L'utilisation du drapeau [F] permet de faire envoyer par le serveur au +client un code de statut "403 Forbidden". Le même effet peut être obtenu à +l'aide de la directive Deny, +mais ce drapeau offre plus de souplesse dans l'attribution d'un statut +Forbidden.

    + +

    La règle suivante va interdire la téléchargement de fichiers +.exe depuis votre serveur.

    + +

    +RewriteRule \.exe - [F] +

    + +

    Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce +qui signifie que l'URI de la requête n'est pas modifié. Il n'y a aucune +raison de réécrire un URI, si vous avez l'intention d'interdire la +requête.

    + +

    Lorsqu'on utilise [F], [L] est implicite - c'est à dire que la +réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.

    + +
    top
    +
    +

    G|gone

    +

    Le drapeau [G] permet de faire envoyer par le serveur un code de statut +"410 Gone" avec la réponse. Ce code indique qu'une ressource qui était +disponible auparavant ne l'est plus actuellement.

    + +

    Comme dans le cas du drapeau [F], on utilise en général la syntaxe +"-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :

    + +

    +RewriteRule ancienne-ressource - [G,NC] +

    + +

    Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la +réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.

    + +
    top
    +
    +

    H|handler

    +

    Force le traitement de la requête résultante par le gestionnaire +spécifié. Par exemple, on peut utiliser ce drapeau pour forcer +l'interprétation de tous les fichiers sans extension par le gestionnaire +php :

    + +

    +RewriteRule !\. - [H=application/x-httpd-php] +

    + +

    +L'expression rationnelle ci-dessus - !\. - correspond à +toute requête qui ne contient pas le caractère .. +

    +

    On peut aussi utiliser ce drapeau pour forcer l'utilisation d'un +certain gestionnaire en fonction de certaines conditions. Par exemple, +l'extrait suivant utilisé dans un contexte de niveau serveur permet de +faire en sorte que les fichiers .php soient +affichés par mod_php dans le cas où ils font +l'objet d'une requête avec l'extension .phps :

    + +

    +RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source] +

    + + +

    L'expression rationnelle ci-dessus - +^(/source/.+\.php)s$ - va correspondre à toute requête qui +débutera par /source/, continuera par 1 ou n caractères +puis par .phps. La référence arrière $1 fait référence à la +correspondance capturée entre parenthèses de l'expression +rationnelle.

    + + +
    top
    +
    +

    L|last

    +

    Lorsque le drapeau [L] est présent, mod_rewrite +arrête le traitement du jeu de règles. Cela signifie dans la plupart des +situations que si la règle s'applique, aucune autre règle ne sera +traitée. Ce drapeau correspond à la commande Perl last, ou +à la commande break en C. Utilisez ce drapeau pour indiquer +que la règle courante doit être appliquée immédiatement, sans tenir +compte des règles ultérieures.

    + +

    Si vous utilisez des règles RewriteRule dans des fichiers +.htaccess ou des sections <Directory>, il est important d'avoir quelques +notions sur la manière dont les règles sont traitées. Pour simplifier, +une fois les règles traitées, la requête réécrite est passée à nouveau +au moteur d'interprétation des URLs afin que ce dernier puisse la +traiter. Il est possible qu'au cours du traitement de la requête +réécrite, le fichier .htaccess ou la section <Directory> soient à nouveau +rencontrés, entraînant un nouveau traitement du jeu de règles depuis le +début. Cette situation se présente le plus souvent lorsqu'une des règles +provoque une redirection - interne ou externe - ce qui réinitialise le +traitement de la requête.

    + +

    Si vous utilisez des directives RewriteRule dans un de ces contextes, +il importe par conséquent de prévoir explicitement des étapes permettant +d'éviter un bouclage infini sur les règles, +et de ne pas compter seulement sur +le drapeau [L] pour terminer l'exécution d'une série de règles, comme +décrit ci-dessous.

    + +

    Dans l'exemple donné ici, toute requête est réécrite en +index.php, la requête originale étant ajoutée comme chaîne +de requête en argument à index.php ; cependant, la +directive RewriteCond permet de s'assurer que si +la requête concerne déjà index.php, la directive RewriteRule sera sautée.

    + +

    +RewriteBase /
    +RewriteCond %{REQUEST_URI} !=/index.php
    +RewriteRule ^(.*) /index.php?req=$1 [L,PT] +

    +
    top
    +
    +

    N|next

    +

    Le drapeau [N] provoque un redémarrage du traitement des règles +depuis le début, en utilisant le résultat du jeu de règles, sous +réserve qu'il existe un point de démarrage ; à utiliser avec précautions +car il peut provoquer un bouclage infini. +

    +

    +Le drapeau [Next] peut servir, par exemple, +à remplacer de manière répétitive +une chaîne de caractère ou une lettre dans une requête. Dans l'exemple +suivant, chaque occurence de A sera remplacée par B dans la requête, et +ceci jusqu'il n'y ait plus de A à remplacer. +

    + +

    +RewriteRule (.*)A(.*) $1B$2 [N] +

    + +

    Vous pouvez vous représenter ce traitement comme une boucle +while : tant que le modèle de la règle correspond (c'est à +dire, tant que l'URI contient un A), +effectuer la substitution (c'est à dire, remplacer le A par +un B).

    + +
    top
    +
    +

    NC|nocase

    +

    Avec le drapeau [NC], le modèle de la règle RewriteRule est comparé à la requête de +manière insensible à la casse. C'est à dire que cette comparaison +s'effectue sans tenir compte des majuscules/minuscules dans l'URI +comparé.

    + +

    Dans l'exemple suivant, toute requête pour un fichier image sera +transmise par Apache à votre serveur d'images dédié. La correspondance est +insensible à la casse, si bien que par exemple, .jpg aussi +bien que .JPG seront acceptés.

    + +

    +RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC] +

    +
    top
    +
    +

    NE|noescape

    +

    Par défaut, les caractères spéciaux, comme & et +?, sont convertis en leur équivalent +hexadécimal. Le drapeau [NE] permet d'éviter cette conversion. +

    + +

    +RewriteRule ^/ancre/(.+) /grosse-page.html#$1 [NE,R] +

    + +

    +Dans l'exemple ci-dessus, /anchor/xyz est réécrit en +/bigpage.html#xyz. En l'absence du drapeau [NE], le # +aurait été converti en son équivalent hexadécimal, %23, ce +qui aurait provoqué un code d'erreur "404 Not Found". +

    + +
    top
    +
    +

    NS|nosubreq

    +

    Le drapeau [NS] empêche la règle de s'appliquer aux sous-requêtes. +Par exemple, une page incluse au moyen d'une SSI (Server +Side Include) est une sous-requête, et vous ne voudrez probablement pas que +la réécriture s'applique à ces sous-requêtes. Ainsi, lorsque +mod_dir recherche des informations à propos des +fichiers par défaut du répertoire (comme les fichiers +index.html), il s'agit d'une sous-requête interne, et vous +ne désirez en général pas que ces sous-requêtes soient réécrites. Cette +réécriture +n'est pas toujours utile pour les sous-requêtes, et peut même causer des +erreurs si l'ensemble du jeu de règles est appliqué. L'utilisation de +ce drapeau permet d'exclure les règles qui peuvent poser problème.

    + +

    Comment déterminer si vous devez utiliser cette règle ou non : si +vous préfixez les URLs avec des scripts CGI, afin de forcer leur +traitement par le script CGI, vous vous exposez à des problèmes (ou du +moins à une surcharge significative) avec les sous-requêtes. Dans ces +cas, vous devez utiliser ce drapeau.

    + +

    +Les images, scripts java, ou fichiers css, chargés en tant que partie +d'une page html, ne sont pas des sous-requêtes - le navigateur les +appelle sous forme de requêtes HTTP à part entière. +

    +
    top
    +
    +

    P|proxy

    +

    L'utilisation du drapeau [P] entraîne le traitement de la requête par +le module mod_proxy, et ceci via une requête de +mandataire. Par exemple, si vous voulez que toutes les requêtes d'images +soient traitées par un serveur d'images annexe, vous pouvez utiliser +une règle de ce style :

    + +

    +RewriteRule /(.*)\.(jpg|gif|png) http://images.example.com/$1.$2 [P] +

    + +

    L'utilisation du drapeau [P] provoque aussi l'effet du drapeau [L] - +autrement dit, la requête est immédiatement envoyée au mandataire, et +toute règle ultérieure sera ignorée.

    + +

    +Vous devez vous assurer que la chaîne de substitution soit un URI valide +(commençant typiquement par http://nom-serveur) +qui puisse être traitée par le module mod_proxy. Dans +le cas contraire, le module mandataire vous renverra une erreur. +L'utilisation de ce drapeau implémente de manière plus puissante la +directive ProxyPass, pour +faire correspondre le contenu distant à l'espace de nommage du serveur +local.

    + +
    +

    Avertissement à propos de la sécurité

    +

    Lors de la construction de l'URL cible de la règle, il convient + de prendre en compte l'impact en matière de sécurité qu'aura le + fait de permettre au client d'influencer le jeu d'URLs pour + lesquelles votre serveur agira en tant que mandataire. + Assurez-vous que la partie protocole://nom-serveur de l'URL soit + fixe, ou ne permette pas au client de l'influencer induement.

    +
    + +

    Note: mod_proxy doit être activé pour pouvoir +utiliser ce drapeau.

    + +
    top
    +
    +

    PT|passthrough

    + +

    +Par défaut, la cible (ou chaîne de substitution) d'une règle +RewriteRule est sensée être un chemin de fichier. Avec le drapeau [PT], +par contre, elle est traitée comme un URI. Autrement dit, avec le +drapeau [PT], le résultat de la règle RewriteRule est passé à nouveau au +système de mise en correspondance des URLs avec le système de fichiers, +de façon à ce que les systèmes de mise en correspondance basés sur les +chemins de fichiers, comme la directive Alias, Redirect, ou ScriptAlias, par exemple, puissent avoir une +chance d'accomplir leur tâche. +

    + +

    +Si par exemple, vous avez un Alias pour /icons, et une règle RewriteRule qui renvoie vers /icons, +vous devez utiliser le drapeau [PT] pour être sûr que l'Alias sera bien évalué. +

    + +

    +Alias /icons /usr/local/apache/icons
    +RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT] +

    + +

    +Dans l'exemple précédent, en l'absence du drapeau [PT], l'Alias aurait +été ignoré, ce qui aurait provoqué une erreur 'File not found'. +

    + +

    Avec le drapeau PT, le drapeau L est +implicite : la réécriture s'arrêtera afin de transmettre la requête à la +phase suivante du traitement.

    + +

    Notez que le drapeau PT est implicite dans des contextes +de répertoire comme les sections <Directory> ou les fichiers +.htaccess. Le seul moyen de contourner ceci consiste à +réécrire vers -.

    + +
    top
    +
    +

    QSA|qsappend

    +

    +Quand l'URI de remplacement contient une chaîne de requête, le +comportement par défaut de la règle RewriteRule est de supprimer la +query string (il s'agit des paramètres éventuellement passés dans l'URL après le +caractère ?, usuellement pour les formulaires traités par la +méthode HTTP GET) existante, et de la remplacer par celle nouvellement créée. +Avec le drapeau [QSA], les chaînes de requête peuvent être combinées. +

    + +

    Considérons la règle suivante :

    + +

    +RewriteRule /pages/(.+) /page.php?page=$1 [QSA] +

    + +

    Avec le drapeau [QSA], une requête pour +/pages/123?one=two sera réécrite en +/page.php?page=123&one=two. Sans le drapeau [QSA], la +même requête sera réécrite en /page.php?page=123 - +autrement dit, la chaîne de requête (query string) existante sera supprimée. +

    +
    top
    +
    +

    QSD|qsdiscard

    +

    +Lorsque l'URI de la requête contient une chaîne de paramètres, et si +l'URI cible n'en contient pas, le comportement par défaut de la +directive RewriteRule consiste à copier cette +chaîne de paramètres dans l'URI cible. Avec le drapeau [QSD], la chaîne +de paramètres est supprimée. +

    + +

    Ce drapeau est disponible dans les versions 2.4.0 et supérieures.

    + +

    +Lorsque les drapeaux [QSD] et [QSA] sont utilisés ensemble, c'est le +drapeau [QSD] qui l'emporte. +

    + +

    +Si l'URI cible possède une chaîne de paramètres, le comportement par +défaut sera respecté - c'est à dire que la chaîne de paramètres +originale sera supprimée et remplacée par la chaîne de paramètres de +l'URI cible. +

    + +
    top
    +
    +

    R|redirect

    +

    +L'utilisation du drapeau [R] provoque l'envoi d'une redirection au +navigateur. Si une URL pleinement qualifiée (FQDN - fully qualified domain name) + est spécifiée (c'est à dire incluant http://nom-du-serveur/), + une redirection sera effectuée vers cette adresse. Dans le cas contraire, + le protocole courant, le nom du serveur et le numéro de port seront + utilisés pour générer l'URL envoyée avec la redirection. +

    + +

    Tout code de statut de réponse HTTP valide peut être +spécifié, en utilisant la syntaxe [R=305], le code de statut 302 étant +utilisé par défaut si aucun code n'est spécifié. Le code de statut +spécifié n'est pas nécessairement un code de statut +de redirection (3xx). Cependant, si le code de statut est en dehors de la plage des codes de +redirection (300-399), la chaîne de substitution est entièrement +supprimée, et la réécriture s'arrête comme si le drapeau L +était utilisé.

    + +

    En plus des codes de statut de réponse, vous pouvez spécifier les +codes de redirection en utilisant leurs noms symboliques : +temp (défaut), permanent, ou +seeother.

    + +

    +Vous utiliserez presque toujours [R] en conjonction avec [L] (c'est à +dire [R,L]), car employé seul, le drapeau [R] préfixe l'URI avec +http://cet-hôte[:ce-port], mais passe ensuite cette adresse +à la règle suivante, ce qui provoquera le plus souvent des +avertissements 'Invalid URI in request'. +

    + +
    top
    +
    +

    S|skip

    +

    Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir +exécuter. La syntaxe du drapeau skip est [S=N], où +N correspond au nombre de règles à sauter (sous +réserve que la règle RewriteRule corresponde). +Ceci peut s'interpréter comme une instruction +goto dans votre jeu de règles de réécriture. Dans +l'exemple suivant, nous ne voulons exécuter la règle RewriteRule que si l'URI demandé ne +correspond pas à un fichier existant.

    + +

    +# La requête concerne-t-elle un fichier qui n'existe pas ?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +# Si c'est la cas, on saute les deux règles de réécriture suivantes
    +RewriteRule .? - [S=2]
    +RewriteRule (.*\.gif) images.php?$1
    +RewriteRule (.*\.html) docs.php?$1 +

    + +

    Cette technique trouve son utilité dans le fait qu'une directive +RewriteCond ne s'applique +qu'à la règle qui la suit immédiatement. Ainsi, si vous voulez +qu'une directive RewriteCond s'applique à plusieurs règles +RewriteRule, une technique possible consiste à inverser ces +conditions et à ajouter une RewriteRule avec le drapeau [Skip]. Cette technique permet +d'élaborer des pseudo-constructions if-then-else : la dernière règle du +bloc then contiendra skip=N, où N est le nombre de règles +contenues dans le bloc else :

    +

    +# Est-ce que le fichier existe ?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    + +# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
    +RewriteRule .? - [S=3]
    +
    +# Si le fichier existe, alors : + + RewriteRule (.*\.gif) images.php?$1
    + RewriteRule (.*\.html) docs.php?$1
    + # Skip past the "else" stanza.
    + RewriteRule .? - [S=1]
    +
    +# ELSE... + + RewriteRule (.*) 404.php?file=$1
    +
    +# END +

    + +
    top
    +
    +

    T|type

    +

    Définit le type MIME de la réponse résultante renvoyée. L'effet est +identique à celui de la directive AddType.

    + +

    Par exemple, vous pouvez utiliser la technique suivante pour servir +du code source Perl en tant que plein texte, s'il est requis d'une +certaine manière :

    + +

    +# Sert les fichier .pl en tant que plein texte
    +RewriteRule \.pl$ - [T=text/plain] +

    + +

    Ou encore, si vous possédez une caméra qui produit des fichiers +images jpeg sans extension, vous pouvez forcer le renvoi de ces images +avec le type MIME correct en se basant sur le nom du fichier :

    + +

    +# Les fichiers dont le nom contient 'IMG' sont des images jpg.
    +RewriteRule IMG - [T=image/jpg] +

    + +

    Notez cependant qu'il s'agit d'un exemple trivial, et que le problème +aurait pu être résolu en utilisant à la place la directive <FilesMatch>. Il faut toujours +envisager la possibilité d'une solution alternative à un problème avant +d'avoir recours à la réécriture, qui sera toujours moins efficace qu'une +solution alternative.

    + +

    +Dans un contexte de niveau répertoire, n'utilisez que - +(tiret) comme substitution, dans toute la séquence de réécriture de +mod_rewrite, sinon le type MIME défini avec ce drapeau +sera perdu suite à un retraitement interne (y compris les séquences de +réécriture suivantes de mod_rewrite). Dans ce contexte, vous pouvez +utiliser le drapeau L pour terminer la séquence +courante de réécriture de mod_rewrite.

    + +
    +
    +

    Langues Disponibles:  en  | + fr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/flags.xml b/docs/manual/rewrite/flags.xml new file mode 100644 index 00000000000..56f6f0bf27c --- /dev/null +++ b/docs/manual/rewrite/flags.xml @@ -0,0 +1,687 @@ + + + + + + + + +Rewrite + + RewriteRule Flags + + +

    This document discusses the flags which are available to the +RewriteRule directive, +providing detailed explanations and examples.

    +
    + +Module documentation +mod_rewrite introduction +Redirection and remapping +Controlling access +Virtual hosts +Proxying +Using RewriteMap +Advanced techniques +When not to use mod_rewrite + +
    Introduction +

    A RewriteRule can have +its behavior modified by one or more flags. Flags are included in +square brackets at the end of the rule, and multiple flags are separated +by commas.

    + +RewriteRule pattern target [Flag1,Flag2,Flag3] + + +

    Each flag (with a few exceptions) has a short form, such as +CO, as well as a longer form, such as cookie. +While it is most common to use +the short form, it is recommended that you familiarize yourself with the +long form, so that you remember what each flag is supposed to do. +Some flags take one or more arguments. Flags are not case sensitive.

    + +

    Flags that alter metadata associated with the request (T=, H=, E=) +have no affect in per-directory and htaccess context, when a substitution +(other than '-') is performed during the same round of rewrite processing. +

    + +

    Presented here are each of the available flags, along with an example +of how you might use them.

    +
    + +
    B (escape backreferences) +

    The [B] flag instructs RewriteRule to escape non-alphanumeric +characters before applying the transformation. +

    + +

    mod_rewrite has to unescape URLs before mapping them, +so backreferences will be unescaped at the time they are applied. +Using the B flag, non-alphanumeric characters in backreferences +will be escaped. For example, consider the rule:

    + +RewriteRule ^search/(.*)$ /search.php?term=$1 + +

    Given a search term of 'x & y/z', a browser will encode it as +'x%20%26%20y%2Fz', making the request 'search/x%20%26%20y%2Fz'. Without the B +flag, this rewrite rule will map to 'search.php?term=x & y/z', which +isn't a valid URL, and so would be encoded as +search.php?term=x%20&y%2Fz=, which is not what was intended.

    + +

    With the B flag set on this same rule, the parameters are re-encoded +before being passed on to the output URL, resulting in a correct mapping to +/search.php?term=x%20%26%20y%2Fz.

    + +

    Note that you may also need to set AllowEncodedSlashes to On to get this +particular example to work, as httpd does not allow encoded slashes in URLs, and +returns a 404 if it sees one.

    + +

    This escaping is particularly necessary in a proxy situation, +when the backend may break if presented with an unescaped URL.

    + +
    + +
    C|chain +

    The [C] or [chain] flag indicates that the RewriteRule is chained to the next +rule. That is, if the rule matches, then it is processed as usual and +control moves on to the next rule. However, if it does not match, then +the next rule, and any other rules that are chained together, will be +skipped.

    + +
    + +
    CO|cookie +

    The [CO], or [cookie] flag, allows you to set a cookie when a +particular RewriteRule +matches. The argument consists of three required fields and four optional +fields.

    + +

    The full syntax for the flag, including all attributes, is as +follows:

    + + +[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] + + +

    You must declare a name, a value, and a domain for the cookie to be set.

    + +
    +
    Domain
    +
    The domain for which you want the cookie to be valid. This may be a +hostname, such as www.example.com, or it may be a domain, +such as .example.com. It must be at least two parts +separated by a dot. That is, it may not be merely .com or +.net. Cookies of that kind are forbidden by the cookie +security model.
    +
    + +

    You may optionally also set the following values:

    + +
    +
    Lifetime
    +
    The time for which the cookie will persist, in minutes.
    +
    A value of 0 indicates that the cookie will persist only for the +current browser session. This is the default value if none is +specified. Prior to 2.2.28, a value of 0 indicates immediate expiration +and it was not possible to specify session lifetime if any later +parameters (Path, Secure, httponly) were specified
    + +
    Path
    +
    The path, on the current website, for which the cookie is valid, +such as /customers/ or /files/download/.
    +
    By default, this is set to / - that is, the entire +website.
    + +
    Secure
    +
    If set to secure, true, or 1, +the cookie will only be permitted to be translated via secure (https) +connections.
    + +
    httponly
    +
    If set to HttpOnly, true, or +1, the cookie will have the HttpOnly flag set, +which means that the cookie will be inaccessible to JavaScript code on +browsers that support this feature.
    +
    + +

    Several examples are offered here:

    + + +RewriteEngine On
    +RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.com:1440:/] +
    + +

    In the example give, the rule doesn't rewrite the request. +The "-" rewrite target tells mod_rewrite to pass the request +through unchanged. Instead, it sets a cookie +called 'frontdoor' to a value of 'yes'. The cookie is valid for any host +in the .example.com domain. It will be set to expire in 1440 +minutes (24 hours) and will be returned for all URIs.

    + +
    + +
    DPI|discardpathinfo +

    The DPI flag causes the PATH_INFO portion of the rewritten URI to be +discarded.

    +

    This flag is available in version 2.2.12 and later.

    +

    In per-directory context, the URI each RewriteRule +compares against is the concatenation of the current values of the URI +and PATH_INFO.

    + +

    The current URI can be the initial URI as requested by the client, the +result of a previous round of mod_rewrite processing, or the result of +a prior rule in the current round of mod_rewrite processing.

    + +

    In contrast, the PATH_INFO that is appended to the URI before each +rule reflects only the value of PATH_INFO before this round of +mod_rewrite processing. As a consequence, if large portions +of the URI are matched and copied into a substitution in multiple +RewriteRule directives, without regard for +which parts of the URI came from the current PATH_INFO, the final +URI may have multiple copies of PATH_INFO appended to it.

    + +

    Use this flag on any substitution where the PATH_INFO that resulted +from the previous mapping of this request to the filesystem is not of +interest. This flag permanently forgets the PATH_INFO established +before this round of mod_rewrite processing began. PATH_INFO will +not be recalculated until the current round of mod_rewrite processing +completes. Subsequent rules during this round of processing will see +only the direct result of substitutions, without any PATH_INFO +appended.

    +
    + +
    E|env +

    With the [E], or [env] flag, you can set the value of an environment +variable. Note that some environment variables may be set after the rule +is run, thus unsetting what you have set. See the +Environment Variables document for more details on how Environment +variables work.

    + +

    The full syntax for this flag is:

    + + +[E=VAR:VAL] +[E=!VAR] + + +

    VAL may contain backreferences ($N or +%N) which will be expanded.

    + +

    Using the short form

    + + +[E=VAR] + + +

    you can set the environment variable named VAR to an +empty value.

    + +

    The form

    + + +[E=!VAR] + + +

    allows to unset a previously set environment variable named +VAR.

    + +

    Environment variables can then be used in a variety of +contexts, including CGI programs, other RewriteRule directives, or +CustomLog directives.

    + +

    The following example sets an environment variable called 'image' to a +value of '1' if the requested URI is an image file. Then, that +environment variable is used to exclude those requests from the access +log.

    + + +RewriteRule \.(png|gif|jpg) - [E=image:1]
    +CustomLog logs/access_log combined env=!image +
    + +

    Note that this same effect can be obtained using SetEnvIf. This technique is offered as +an example, not as a recommendation.

    +
    + +
    F|forbidden +

    Using the [F] flag causes the server to return a 403 Forbidden status +code to the client. While the same behavior can be accomplished using +the Deny directive, this +allows more flexibility in assigning a Forbidden status.

    + +

    The following rule will forbid .exe files from being +downloaded from your server.

    + + +RewriteRule \.exe - [F] + + +

    This example uses the "-" syntax for the rewrite target, which means +that the requested URI is not modified. There's no reason to rewrite to +another URI, if you're going to forbid the request.

    + +

    When using [F], an [L] is implied - that is, the response is returned +immediately, and no further rules are evaluated.

    + +
    + +
    G|gone +

    The [G] flag forces the server to return a 410 Gone status with the +response. This indicates that a resource used to be available, but is no +longer available.

    + +

    As with the [F] flag, you will typically use the "-" syntax for the +rewrite target when using the [G] flag:

    + + +RewriteRule oldproduct - [G,NC] + + +

    When using [G], an [L] is implied - that is, the response is returned +immediately, and no further rules are evaluated.

    + +
    + +
    H|handler +

    Forces the resulting request to be handled with the specified +handler. For example, one might use this to force all files without a +file extension to be parsed by the php handler:

    + + +RewriteRule !\. - [H=application/x-httpd-php] + + +

    +The regular expression above - !\. - will match any request +that does not contain the literal . character. +

    + +

    This can be also used to force the handler based on some conditions. +For example, the following snippet used in per-server context allows +.php files to be displayed by mod_php +if they are requested with the .phps extension:

    + + +RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source] + + +

    The regular expression above - ^(/source/.+\.php)s$ - will +match any request that starts with /source/ followed by 1 or +n characters followed by .phps literally. The backreference +$1 referrers to the captured match within parenthesis of the regular +expression.

    +
    + +
    L|last +

    The [L] flag causes mod_rewrite to stop processing +the rule set. In most contexts, this means that if the rule matches, no +further rules will be processed. This corresponds to the +last command in Perl, or the break command in +C. Use this flag to indicate that the current rule should be applied +immediately without considering further rules.

    + +

    If you are using RewriteRule in either +.htaccess files or in +Directory sections, +it is important to have some understanding of how the rules are +processed. The simplified form of this is that once the rules have been +processed, the rewritten request is handed back to the URL parsing +engine to do what it may with it. It is possible that as the rewritten +request is handled, the .htaccess file or +Directory section +may be encountered again, and thus the ruleset may be run again from the +start. Most commonly this will happen if one of the rules causes a +redirect - either internal or external - causing the request process to +start over.

    + +

    It is therefore important, if you are using RewriteRule directives in one of these +contexts, that you take explicit steps to avoid rules looping, and not +count solely on the [L] flag to terminate execution of a series of +rules, as shown below.

    + +

    The example given here will rewrite any request to +index.php, giving the original request as a query string +argument to index.php, however, the RewriteCond ensures that if the request +is already for index.php, the RewriteRule will be skipped.

    + + +RewriteBase /
    +RewriteCond %{REQUEST_URI} !=/index.php
    +RewriteRule ^(.*) /index.php?req=$1 [L,PT] +
    +
    + +
    N|next +

    +The [N] flag causes the ruleset to start over again from the top, using +the result of the ruleset so far as a starting point. Use +with extreme caution, as it may result in loop. +

    +

    +The [Next] flag could be used, for example, if you wished to replace a +certain string or letter repeatedly in a request. The example shown here +will replace A with B everywhere in a request, and will continue doing +so until there are no more As to be replaced. +

    + + +RewriteRule (.*)A(.*) $1B$2 [N] + + +

    You can think of this as a while loop: While this +pattern still matches (i.e., while the URI still contains an +A), perform this substitution (i.e., replace the +A with a B).

    + +
    + +
    NC|nocase +

    Use of the [NC] flag causes the RewriteRule to be matched in a +case-insensitive manner. That is, it doesn't care whether letters appear +as upper-case or lower-case in the matched URI.

    + +

    In the example below, any request for an image file will be proxied +to your dedicated image server. The match is case-insensitive, so that +.jpg and .JPG files are both acceptable, for +example.

    + + +RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC] + +
    + +
    NE|noescape +

    By default, special characters, such as & and +?, for example, will be converted to their hexcode +equivalent. Using the [NE] flag prevents that from happening. +

    + + +RewriteRule ^/anchor/(.+) /bigpage.html#$1 [NE,R] + + +

    +The above example will redirect /anchor/xyz to +/bigpage.html#xyz. Omitting the [NE] will result in the # +being converted to its hexcode equivalent, %23, which will +then result in a 404 Not Found error condition. +

    + +
    + +
    NS|nosubreq +

    Use of the [NS] flag prevents the rule from being used on +subrequests. For example, a page which is included using an SSI (Server +Side Include) is a subrequest, and you may want to avoid rewrites +happening on those subrequests. Also, when mod_dir +tries to find out information about possible directory default files +(such as index.html files), this is an internal +subrequest, and you often want to avoid rewrites on such subrequests. +On subrequests, it is not always useful, and can even cause errors, if +the complete set of rules are applied. Use this flag to exclude +problematic rules.

    + +

    To decide whether or not to use this rule: if you prefix URLs with +CGI-scripts, to force them to be processed by the CGI-script, it's +likely that you will run into problems (or significant overhead) +on sub-requests. In these cases, use this flag.

    + +

    +Images, javascript files, or css files, loaded as part of an HTML page, +are not subrequests - the browser requests them as separate HTTP +requests. +

    +
    + +
    P|proxy +

    Use of the [P] flag causes the request to be handled by +mod_proxy, and handled via a proxy request. For +example, if you wanted all image requests to be handled by a back-end +image server, you might do something like the following:

    + + +RewriteRule /(.*)\.(jpg|gif|png) http://images.example.com/$1.$2 [P] + + +

    Use of the [P] flag implies [L] - that is, the request is immediately +pushed through the proxy, and any following rules will not be +considered.

    + +

    +You must make sure that the substitution string is a valid URI +(typically starting with http://hostname) which can be +handled by the mod_proxy. If not, you will get an +error from the proxy module. Use this flag to achieve a +more powerful implementation of the ProxyPass directive, +to map remote content into the namespace of the local server.

    + + +Security Warning +

    Take care when constructing the target URL of the rule, considering +the security impact from allowing the client influence over the set of +URLs to which your server will act as a proxy. Ensure that the scheme +and hostname part of the URL is either fixed, or does not allow the +client undue influence.

    +
    + +

    Note: mod_proxy must be enabled in order +to use this flag.

    + +
    + +
    PT|passthrough + +

    +The target (or substitution string) in a RewriteRule is assumed to be a +file path, by default. The use of the [PT] flag causes it to be treated +as a URI instead. That is to say, the +use of the [PT] flag causes the result of the RewriteRule to be passed back through +URL mapping, so that location-based mappings, such as Alias, Redirect, or ScriptAlias, for example, might have a +chance to take effect. +

    + +

    +If, for example, you have an +Alias +for /icons, and have a RewriteRule pointing there, you should +use the [PT] flag to ensure that the +Alias is evaluated. +

    + + +Alias /icons /usr/local/apache/icons
    +RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT] +
    + +

    +Omission of the [PT] flag in this case will cause the Alias to be +ignored, resulting in a 'File not found' error being returned. +

    + +

    The PT flag implies the L flag: +rewriting will be stopped in order to pass the request to +the next phase of processing.

    + +

    Note that the PT flag is implied in per-directory +contexts such as +Directory sections +or in .htaccess files. The only way to circumvent that +is to rewrite to -.

    + +
    + +
    QSA|qsappend +

    +When the replacement URI contains a query string, the default behavior +of RewriteRule is to discard +the existing query string, and replace it with the newly generated one. +Using the [QSA] flag causes the query strings to be combined. +

    + +

    Consider the following rule:

    + + +RewriteRule /pages/(.+) /page.php?page=$1 [QSA] + + +

    With the [QSA] flag, a request for /pages/123?one=two will be +mapped to /page.php?page=123&one=two. Without the [QSA] +flag, that same request will be mapped to +/page.php?page=123 - that is, the existing query string +will be discarded. +

    +
    + +
    R|redirect +

    +Use of the [R] flag causes a HTTP redirect to be issued to the browser. +If a fully-qualified URL is specified (that is, including +http://servername/) then a redirect will be issued to that +location. Otherwise, the current protocol, servername, and port number +will be used to generate the URL sent with the redirect. +

    + +

    +Any valid HTTP response status code may be specified, +using the syntax [R=305], with a 302 status code being used by +default if none is specified. The status code specified need not +necessarily be a redirect (3xx) status code. However, +if a status code is outside the redirect range (300-399) then the +substitution string is dropped entirely, and rewriting is stopped as if +the L were used.

    + +

    In addition to response status codes, you may also specify redirect +status using their symbolic names: temp (default), +permanent, or seeother.

    + +

    +You will almost always want to use [R] in conjunction with [L] (that is, +use [R,L]) because on its own, the [R] flag prepends +http://thishost[:thisport] to the URI, but then passes this +on to the next rule in the ruleset, which can often result in 'Invalid +URI in request' warnings. +

    + +
    + +
    S|skip +

    The [S] flag is used to skip rules that you don't want to run. The +syntax of the skip flag is [S=N], where N signifies +the number of rules to skip (provided the +RewriteRule matches). This can be thought of as a goto +statement in your rewrite ruleset. In the following example, we only want +to run the RewriteRule if the +requested URI doesn't correspond with an actual file.

    + + +# Is the request for a non-existent file?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +# If so, skip these two RewriteRules
    +RewriteRule .? - [S=2]
    +RewriteRule (.*\.gif) images.php?$1
    +RewriteRule (.*\.html) docs.php?$1
    +
    + +

    This technique is useful because a RewriteCond only applies to the +RewriteRule immediately +following it. Thus, if you want to make a RewriteCond apply +to several RewriteRules, one possible technique is to +negate those conditions and add a RewriteRule with a [Skip] flag. You can +use this to make pseudo if-then-else constructs: The last rule of +the then-clause becomes skip=N, where N is the +number of rules in the else-clause:

    + +# Does the file exist?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
    +RewriteRule .? - [S=3]
    +
    +# IF the file exists, then: + + RewriteRule (.*\.gif) images.php?$1
    + RewriteRule (.*\.html) docs.php?$1
    + # Skip past the "else" stanza.
    + RewriteRule .? - [S=1]
    +
    +# ELSE... + + RewriteRule (.*) 404.php?file=$1
    +
    +# END +
    +
    + +
    T|type +

    Sets the MIME type with which the resulting response will be +sent. This has the same effect as the AddType directive.

    + +

    For example, you might use the following technique to serve Perl +source code as plain text, if requested in a particular way:

    + + +# Serve .pl files as plain text
    +RewriteRule \.pl$ - [T=text/plain] +
    + +

    Or, perhaps, if you have a camera that produces jpeg images without +file extensions, you could force those images to be served with the +correct MIME type by virtue of their file names:

    + + +# Files with 'IMG' in the name are jpg images.
    +RewriteRule IMG - [T=image/jpg] +
    + +

    Please note that this is a trivial example, and could be better done +using FilesMatch +instead. Always consider the alternate +solutions to a problem before resorting to rewrite, which will +invariably be a less efficient solution than the alternatives.

    + +

    +If used in per-directory context, use only - (dash) +as the substitution for the entire round of mod_rewrite processing, +otherwise the MIME-type set with this flag is lost due to an internal +re-processing (including subsequent rounds of mod_rewrite processing). +The L flag can be useful in this context to end the +current round of mod_rewrite processing.

    + +
    + +
    + diff --git a/docs/manual/rewrite/flags.xml.fr b/docs/manual/rewrite/flags.xml.fr new file mode 100644 index 00000000000..3c53913723d --- /dev/null +++ b/docs/manual/rewrite/flags.xml.fr @@ -0,0 +1,765 @@ + + + + + + + + + + +Rewrite + + Les drapeaux de réécriture + + +

    Ce document décrit les drapeaux disponibles dans la directive +RewriteRule, en fournissant +des explications détaillées et des exemples.

    +
    + +Documentation du module +Introduction à mod_rewrite +Redirection and remise en +correspondance +Contrôle d'accès +Serveurs virtuels +Mise en cache +Utilisation de RewriteMap +Techniques avancées +Quand ne pas utiliser mod_rewrite + +
    Introduction +

    Le comportement d'une directive RewriteRule peut être modifié par un ou +plusieurs drapeaux. Les drapeaux sont situés en fin de règle, entourés +de crochets, et séparés le cas échéant par des virgules.

    + +RewriteRule modèle cible [drapeau1,drapeau2,drapeau3] + + +

    Chaque drapeau (à quelques exceptions près) +possède une forme courte, comme CO, ainsi qu'une forme longue, +comme cookie. Bien que +la forme courte soit la plus couramment utilisée, nous vous recommandons +de vous familiariser avec les drapeaux sous leur forme longue, afin de +bien mémoriser ce que chaque drapeau est supposé faire. +Certains drapeaux acceptent un ou plusieurs arguments. Les drapeaux ne +sont pas sensibles à la casse.

    + +

    Les drapeaux qui modifient les métadonnées associées à la requête +(T=, H=, E=) n'ont aucun effet dans un contexte de répertoire ou de +fichier htaccess, lorsqu'une substitution (autre que '-') est effectuée +au cours de la même passe du processus de réécriture. +

    + +

    Chaque drapeau disponible est présenté ici, avec un exemple +d'utilisation.

    +
    + +
    B (échappement dans les références arrières) +

    Avec le drapeau [B], la directive RewriteRule échappe les caractères +non-alphanumériques avant d'appliquer la transformation.

    + +

    mod_rewrite doit supprimer les séquences d'échappement +des URLs avant leur +mise en correspondance avec le système de fichiers ; les séquences +d'échappement sont donc supprimées des références arrières au moment où +ces dernières sont appliquées. Avec le drapeau B, les caractères +non-alphanumériques des références arrières seront échappés. Considérons +par exemple cette règle :

    + +RewriteRule ^search/(.*)$ /search.php?term=$1 + +

    Soit la chaîne 'x & y/z' ; un navigateur va la coder en +'x%20%26%20y%2Fz', transformant la requête en 'search/x%20%26%20y%2Fz'. +Sans le drapeau B, la règle va intercepter la chaîne 'search.php?term=x +& y/z' qui n'est pas une URL valide, et la coder en +search.php?term=x%20&y%2Fz=, ce qui ne correspond pas +au résultat attendu.

    + +

    Avec le drapeau B, la règle va réencoder les paramètres avant de les +passer à l'URL de sortie, ce qui va produire l'URL correcte +/search.php?term=x%20%26%20y%2Fz.

    + +

    Notez que vous serez peut-être amené à définir la directive +AllowEncodedSlashes à +On pour que cet exemple fonctionne, car httpd n'autorise +pas les slashes encodés dans les URLs et renvoie une erreur 404 s'il en +rencontre un.

    + +

    Ce processus d'échappement est en particulier nécessaire dans le +contexte d'un mandataire, où l'accès au serveur d'arrière-plan échouera +si on présente à ce dernier une URL non échappée.

    + +
    + +
    C|chain +

    Le drapeau [C] ou [chain] indique que la règle RewriteRule est chaînée avec la +suivante. Autrement dit, si la règle s'applique, elle est traitée +normalement et passe le contrôle à la règle suivante. Par contre, si +elle ne s'applique pas, la règle suivante, ainsi que toutes les règles +chaînées qui suivent, seront sautées.

    + +
    + +
    CO|cookie +

    Le drapeau [CO], ou [cookie], vous permet de définir un cookie +lorsqu'une règle RewriteRule +s'applique. Il possède trois arguments obligatoires et +quatre arguments optionnels.

    + +

    La syntaxe complète de ce drapeau, avec tous ses attributs, est la +suivante :

    + + +[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] + + +

    Vous devez déclarer un nom, une valeur et un domaine pour que +le cookie puisse être défini.

    + +
    +
    Domain
    +
    Le domaine pour lequel vous souhaitez que le cookie soit valide. Ce +peut être un nom de serveur, comme www.example.com, ou un +domaine, comme .example.com. Il doit comporter au moins +deux parties séparées par un point. C'est à dire que vous ne pouvez pas +utiliser les valeurs .com ou .net. En effet, +ce style de cookie est interdit par le modèle de sécurité des cookies.
    +
    + +

    Vous pouvez aussi définir les valeurs suivantes :

    + +
    +
    Lifetime
    +
    La durée de vie du cookie, en minutes.
    + +
    Avec la valeur 0 (valeur par défaut), le cookie est maintenu pendant +la durée de la session du navigateur. Avant la version 2.2.28, la +valeur 0 impliquait une expiration immédiate du cookie, et il était +impossible de spécifié une autre durée de vie si un autre paramètre +(Path, Secure, httponly) était présent.
    + +
    Path
    +
    Le chemin, sur le site web concerné, pour lequel le cookie est +valide, du style /clients/ or +/fichiers/telechargement/.
    +
    La valeur par défaut est / - c'est à dire l'ensemble du +site web.
    + +
    Secure
    +
    Si cet argument a pour valeur secure, +true, ou 1, le cookie ne pourra être transmis +que dans le cadre d'une connexion sécurisée (https).
    + +
    httponly
    +
    Si cet argument a pour valeur HttpOnly, +true, ou 1, le cookie aura son drapeau +HttpOnly activé, ce qui signifie qu'il sera inaccessible au +code JavaScript pour les navigateurs qui supportent cette +fonctionnalité.
    +
    + +

    Voici un exemple :

    + + +RewriteEngine On
    +RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.org:1440:/] +
    + +

    Dans l'exemple ci-dessus, la règle ne réécrit +pas la requête. La cible de réécriture "-" +indique à mod_rewrite de transmettre la requête sans +modification. Par contre, il +définit un cookie nommé 'frontdoor' avec une valeur 'yes'. Le cookie est +valide pour tout hôte situé dans le domaine .example.org. Sa +durée de vie est limitée à 1440 minutes (24 heures), et il sera renvoyé +pour tous les URIs.

    + +
    + +
    DPI|discardpathinfo +

    Avec le drapeau DPI, la partie PATH_INFO de l'URI +réécrit est supprimée.

    +

    Ce drapeau est disponible dans les versions 2.2.12 et supérieures.

    +

    Dans un contexte de répertoire, l'URI mis en comparaison par chaque +règle RewriteRule est la concaténation des +valeurs courantes de l'URI et de PATH_INFO.

    + +

    L'URI courant peut être l'URI initial tel qu'il a été fourni par le +client, le résultat d'une passe précédente du processus de réécriture, +ou le résultat de la règle précédente dans le processus courant de +réécriture.

    + +

    Par contre, la partie PATH_INFO ajoutée à l'URI avant chaque règle ne +reflète que la valeur de PATH_INFO avant la passe courante du processus +de réécriture. En conséquence, si de larges portions de l'URI +correspondent et sont traduites via plusieurs directives +RewriteRule, sans prendre en compte +quelles parties de l'URI provenaient du PATH_INFO courant, l'URI final +pourra se voir ajouter plusieurs copies de PATH_INFO.

    + +

    Utilisez ce drapeau pour toute substitution où la présence du PATH_INFO qui +résultait de la mise en correspondance précédente de cette requête avec +le système de fichier n'est pas nécessaire. Avec ce drapeau, le +PATH_INFO établi avant que cette passe du processus de réécriture ne +débute est oublié. PATH_INFO ne sera pas recalculé tant que la passe +courante du processus de réécriture ne sera pas achevée. Les règles +suivantes de cette passe ne verront que le résultat direct des +substitutions, sans aucun PATH_INFO ajouté.

    +
    + +
    E|env +

    Avec le drapeau [E], ou [env], vous pouvez définir la valeur d'une +variable d'environnement. Notez que certaines variables d'environnement +peuvent être définies après le traitement de la règle, annulant par +la-même ce que vous avez défini. Voir le document +sur les variables d'environnement pour plus de détails sur le +fonctionnement des variables d'environnement.

    + +

    La syntaxe complète pour ce drapeau est :

    + + +[E=!VAR] + + +

    VAL peut comporter des références arrières +($N ou %N) qui seront développées.

    + +

    En utilisant la version courte

    + + +[E=VAR] + + +

    vous pouvez définir la variable d'environnement nommée +VAR avec une valeur vide.

    + +

    La forme

    + + +[E=!VAR] + + +

    permet d'annuler la définition de la variable VAR.

    + +

    Les variables d'environnement s'emploient dans différents contextes, +comme les programmes CGI, d'autres directives RewriteRule, ou des +directives CustomLog.

    + +

    L'exemple suivant définit une variable d'environnement nommée 'image' +avec une valeur de '1' si l'URI de la requête correspond à un fichier +image. Cette variable d'environnement est ensuite utilisée pour exclure +une telle requête du journal des accès.

    + + +RewriteRule \.(png|gif|jpg) - [E=image:1]
    +CustomLog logs/access_log combined env=!image +
    + +

    Notez que le même effet peut être obtenu à l'aide de la directive +SetEnvIf. Cette technique +est présentée à titre d'exemple et non de recommandation.

    +
    + +
    F|forbidden +

    L'utilisation du drapeau [F] permet de faire envoyer par le serveur au +client un code de statut "403 Forbidden". Le même effet peut être obtenu à +l'aide de la directive Deny, +mais ce drapeau offre plus de souplesse dans l'attribution d'un statut +Forbidden.

    + +

    La règle suivante va interdire la téléchargement de fichiers +.exe depuis votre serveur.

    + + +RewriteRule \.exe - [F] + + +

    Cet exemple utilise la syntaxe "-" pour la cible de réécriture, ce +qui signifie que l'URI de la requête n'est pas modifié. Il n'y a aucune +raison de réécrire un URI, si vous avez l'intention d'interdire la +requête.

    + +

    Lorsqu'on utilise [F], [L] est implicite - c'est à dire que la +réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.

    + +
    + +
    G|gone +

    Le drapeau [G] permet de faire envoyer par le serveur un code de statut +"410 Gone" avec la réponse. Ce code indique qu'une ressource qui était +disponible auparavant ne l'est plus actuellement.

    + +

    Comme dans le cas du drapeau [F], on utilise en général la syntaxe +"-" pour la cible de réécriture lorsqu'on utilise le drapeau [G] :

    + + +RewriteRule ancienne-ressource - [G,NC] + + +

    Lorsqu'on utilise [G], [L] est implicite - c'est à dire que la +réponse est renvoyée immédiatement, et aucune autre règle n'est évaluée.

    + +
    + +
    H|handler +

    Force le traitement de la requête résultante par le gestionnaire +spécifié. Par exemple, on peut utiliser ce drapeau pour forcer +l'interprétation de tous les fichiers sans extension par le gestionnaire +php :

    + + +RewriteRule !\. - [H=application/x-httpd-php] + + +

    +L'expression rationnelle ci-dessus - !\. - correspond à +toute requête qui ne contient pas le caractère .. +

    +

    On peut aussi utiliser ce drapeau pour forcer l'utilisation d'un +certain gestionnaire en fonction de certaines conditions. Par exemple, +l'extrait suivant utilisé dans un contexte de niveau serveur permet de +faire en sorte que les fichiers .php soient +affichés par mod_php dans le cas où ils font +l'objet d'une requête avec l'extension .phps :

    + + +RewriteRule ^(/source/.+\.php)s$ $1 [H=application/x-httpd-php-source] + + + +

    L'expression rationnelle ci-dessus - +^(/source/.+\.php)s$ - va correspondre à toute requête qui +débutera par /source/, continuera par 1 ou n caractères +puis par .phps. La référence arrière $1 fait référence à la +correspondance capturée entre parenthèses de l'expression +rationnelle.

    + + +
    + +
    L|last +

    Lorsque le drapeau [L] est présent, mod_rewrite +arrête le traitement du jeu de règles. Cela signifie dans la plupart des +situations que si la règle s'applique, aucune autre règle ne sera +traitée. Ce drapeau correspond à la commande Perl last, ou +à la commande break en C. Utilisez ce drapeau pour indiquer +que la règle courante doit être appliquée immédiatement, sans tenir +compte des règles ultérieures.

    + +

    Si vous utilisez des règles RewriteRule dans des fichiers +.htaccess ou des sections Directory, il est important d'avoir quelques +notions sur la manière dont les règles sont traitées. Pour simplifier, +une fois les règles traitées, la requête réécrite est passée à nouveau +au moteur d'interprétation des URLs afin que ce dernier puisse la +traiter. Il est possible qu'au cours du traitement de la requête +réécrite, le fichier .htaccess ou la section Directory soient à nouveau +rencontrés, entraînant un nouveau traitement du jeu de règles depuis le +début. Cette situation se présente le plus souvent lorsqu'une des règles +provoque une redirection - interne ou externe - ce qui réinitialise le +traitement de la requête.

    + +

    Si vous utilisez des directives RewriteRule dans un de ces contextes, +il importe par conséquent de prévoir explicitement des étapes permettant +d'éviter un bouclage infini sur les règles, +et de ne pas compter seulement sur +le drapeau [L] pour terminer l'exécution d'une série de règles, comme +décrit ci-dessous.

    + +

    Dans l'exemple donné ici, toute requête est réécrite en +index.php, la requête originale étant ajoutée comme chaîne +de requête en argument à index.php ; cependant, la +directive RewriteCond permet de s'assurer que si +la requête concerne déjà index.php, la directive RewriteRule sera sautée.

    + + +RewriteBase /
    +RewriteCond %{REQUEST_URI} !=/index.php
    +RewriteRule ^(.*) /index.php?req=$1 [L,PT] +
    +
    + +
    N|next +

    Le drapeau [N] provoque un redémarrage du traitement des règles +depuis le début, en utilisant le résultat du jeu de règles, sous +réserve qu'il existe un point de démarrage ; à utiliser avec précautions +car il peut provoquer un bouclage infini. +

    +

    +Le drapeau [Next] peut servir, par exemple, +à remplacer de manière répétitive +une chaîne de caractère ou une lettre dans une requête. Dans l'exemple +suivant, chaque occurence de A sera remplacée par B dans la requête, et +ceci jusqu'il n'y ait plus de A à remplacer. +

    + + +RewriteRule (.*)A(.*) $1B$2 [N] + + +

    Vous pouvez vous représenter ce traitement comme une boucle +while : tant que le modèle de la règle correspond (c'est à +dire, tant que l'URI contient un A), +effectuer la substitution (c'est à dire, remplacer le A par +un B).

    + +
    + +
    NC|nocase +

    Avec le drapeau [NC], le modèle de la règle RewriteRule est comparé à la requête de +manière insensible à la casse. C'est à dire que cette comparaison +s'effectue sans tenir compte des majuscules/minuscules dans l'URI +comparé.

    + +

    Dans l'exemple suivant, toute requête pour un fichier image sera +transmise par Apache à votre serveur d'images dédié. La correspondance est +insensible à la casse, si bien que par exemple, .jpg aussi +bien que .JPG seront acceptés.

    + + +RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC] + +
    + +
    NE|noescape +

    Par défaut, les caractères spéciaux, comme & et +?, sont convertis en leur équivalent +hexadécimal. Le drapeau [NE] permet d'éviter cette conversion. +

    + + +RewriteRule ^/ancre/(.+) /grosse-page.html#$1 [NE,R] + + +

    +Dans l'exemple ci-dessus, /anchor/xyz est réécrit en +/bigpage.html#xyz. En l'absence du drapeau [NE], le # +aurait été converti en son équivalent hexadécimal, %23, ce +qui aurait provoqué un code d'erreur "404 Not Found". +

    + +
    + +
    NS|nosubreq +

    Le drapeau [NS] empêche la règle de s'appliquer aux sous-requêtes. +Par exemple, une page incluse au moyen d'une SSI (Server +Side Include) est une sous-requête, et vous ne voudrez probablement pas que +la réécriture s'applique à ces sous-requêtes. Ainsi, lorsque +mod_dir recherche des informations à propos des +fichiers par défaut du répertoire (comme les fichiers +index.html), il s'agit d'une sous-requête interne, et vous +ne désirez en général pas que ces sous-requêtes soient réécrites. Cette +réécriture +n'est pas toujours utile pour les sous-requêtes, et peut même causer des +erreurs si l'ensemble du jeu de règles est appliqué. L'utilisation de +ce drapeau permet d'exclure les règles qui peuvent poser problème.

    + +

    Comment déterminer si vous devez utiliser cette règle ou non : si +vous préfixez les URLs avec des scripts CGI, afin de forcer leur +traitement par le script CGI, vous vous exposez à des problèmes (ou du +moins à une surcharge significative) avec les sous-requêtes. Dans ces +cas, vous devez utiliser ce drapeau.

    + +

    +Les images, scripts java, ou fichiers css, chargés en tant que partie +d'une page html, ne sont pas des sous-requêtes - le navigateur les +appelle sous forme de requêtes HTTP à part entière. +

    +
    + +
    P|proxy +

    L'utilisation du drapeau [P] entraîne le traitement de la requête par +le module mod_proxy, et ceci via une requête de +mandataire. Par exemple, si vous voulez que toutes les requêtes d'images +soient traitées par un serveur d'images annexe, vous pouvez utiliser +une règle de ce style :

    + + +RewriteRule /(.*)\.(jpg|gif|png) http://images.example.com/$1.$2 [P] + + +

    L'utilisation du drapeau [P] provoque aussi l'effet du drapeau [L] - +autrement dit, la requête est immédiatement envoyée au mandataire, et +toute règle ultérieure sera ignorée.

    + +

    +Vous devez vous assurer que la chaîne de substitution soit un URI valide +(commençant typiquement par http://nom-serveur) +qui puisse être traitée par le module mod_proxy. Dans +le cas contraire, le module mandataire vous renverra une erreur. +L'utilisation de ce drapeau implémente de manière plus puissante la +directive ProxyPass, pour +faire correspondre le contenu distant à l'espace de nommage du serveur +local.

    + + + Avertissement à propos de la sécurité +

    Lors de la construction de l'URL cible de la règle, il convient + de prendre en compte l'impact en matière de sécurité qu'aura le + fait de permettre au client d'influencer le jeu d'URLs pour + lesquelles votre serveur agira en tant que mandataire. + Assurez-vous que la partie protocole://nom-serveur de l'URL soit + fixe, ou ne permette pas au client de l'influencer induement.

    +
    + +

    Note: mod_proxy doit être activé pour pouvoir +utiliser ce drapeau.

    + +
    + +
    PT|passthrough + +

    +Par défaut, la cible (ou chaîne de substitution) d'une règle +RewriteRule est sensée être un chemin de fichier. Avec le drapeau [PT], +par contre, elle est traitée comme un URI. Autrement dit, avec le +drapeau [PT], le résultat de la règle RewriteRule est passé à nouveau au +système de mise en correspondance des URLs avec le système de fichiers, +de façon à ce que les systèmes de mise en correspondance basés sur les +chemins de fichiers, comme la directive Alias, Redirect, ou ScriptAlias, par exemple, puissent avoir une +chance d'accomplir leur tâche. +

    + +

    +Si par exemple, vous avez un Alias pour /icons, et une règle RewriteRule qui renvoie vers /icons, +vous devez utiliser le drapeau [PT] pour être sûr que l'Alias sera bien évalué. +

    + + +Alias /icons /usr/local/apache/icons
    +RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT] +
    + +

    +Dans l'exemple précédent, en l'absence du drapeau [PT], l'Alias aurait +été ignoré, ce qui aurait provoqué une erreur 'File not found'. +

    + +

    Avec le drapeau PT, le drapeau L est +implicite : la réécriture s'arrêtera afin de transmettre la requête à la +phase suivante du traitement.

    + +

    Notez que le drapeau PT est implicite dans des contextes +de répertoire comme les sections Directory ou les fichiers +.htaccess. Le seul moyen de contourner ceci consiste à +réécrire vers -.

    + +
    + +
    QSA|qsappend +

    +Quand l'URI de remplacement contient une chaîne de requête, le +comportement par défaut de la règle RewriteRule est de supprimer la +query string (il s'agit des paramètres éventuellement passés dans l'URL après le +caractère ?, usuellement pour les formulaires traités par la +méthode HTTP GET) existante, et de la remplacer par celle nouvellement créée. +Avec le drapeau [QSA], les chaînes de requête peuvent être combinées. +

    + +

    Considérons la règle suivante :

    + + +RewriteRule /pages/(.+) /page.php?page=$1 [QSA] + + +

    Avec le drapeau [QSA], une requête pour +/pages/123?one=two sera réécrite en +/page.php?page=123&one=two. Sans le drapeau [QSA], la +même requête sera réécrite en /page.php?page=123 - +autrement dit, la chaîne de requête (query string) existante sera supprimée. +

    +
    + +
    QSD|qsdiscard +

    +Lorsque l'URI de la requête contient une chaîne de paramètres, et si +l'URI cible n'en contient pas, le comportement par défaut de la +directive RewriteRule consiste à copier cette +chaîne de paramètres dans l'URI cible. Avec le drapeau [QSD], la chaîne +de paramètres est supprimée. +

    + +

    Ce drapeau est disponible dans les versions 2.4.0 et supérieures.

    + +

    +Lorsque les drapeaux [QSD] et [QSA] sont utilisés ensemble, c'est le +drapeau [QSD] qui l'emporte. +

    + +

    +Si l'URI cible possède une chaîne de paramètres, le comportement par +défaut sera respecté - c'est à dire que la chaîne de paramètres +originale sera supprimée et remplacée par la chaîne de paramètres de +l'URI cible. +

    + +
    + + +
    R|redirect +

    +L'utilisation du drapeau [R] provoque l'envoi d'une redirection au +navigateur. Si une URL pleinement qualifiée (FQDN - fully qualified domain name) + est spécifiée (c'est à dire incluant http://nom-du-serveur/), + une redirection sera effectuée vers cette adresse. Dans le cas contraire, + le protocole courant, le nom du serveur et le numéro de port seront + utilisés pour générer l'URL envoyée avec la redirection. +

    + +

    Tout code de statut de réponse HTTP valide peut être +spécifié, en utilisant la syntaxe [R=305], le code de statut 302 étant +utilisé par défaut si aucun code n'est spécifié. Le code de statut +spécifié n'est pas nécessairement un code de statut +de redirection (3xx). Cependant, si le code de statut est en dehors de la plage des codes de +redirection (300-399), la chaîne de substitution est entièrement +supprimée, et la réécriture s'arrête comme si le drapeau L +était utilisé.

    + +

    En plus des codes de statut de réponse, vous pouvez spécifier les +codes de redirection en utilisant leurs noms symboliques : +temp (défaut), permanent, ou +seeother.

    + +

    +Vous utiliserez presque toujours [R] en conjonction avec [L] (c'est à +dire [R,L]), car employé seul, le drapeau [R] préfixe l'URI avec +http://cet-hôte[:ce-port], mais passe ensuite cette adresse +à la règle suivante, ce qui provoquera le plus souvent des +avertissements 'Invalid URI in request'. +

    + +
    + +
    S|skip +

    Le drapeau [S] sert à sauter des règles que vous ne voulez pas voir +exécuter. La syntaxe du drapeau skip est [S=N], où +N correspond au nombre de règles à sauter (sous +réserve que la règle RewriteRule corresponde). +Ceci peut s'interpréter comme une instruction +goto dans votre jeu de règles de réécriture. Dans +l'exemple suivant, nous ne voulons exécuter la règle RewriteRule que si l'URI demandé ne +correspond pas à un fichier existant.

    + + +# La requête concerne-t-elle un fichier qui n'existe pas ?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +# Si c'est la cas, on saute les deux règles de réécriture suivantes
    +RewriteRule .? - [S=2]
    +RewriteRule (.*\.gif) images.php?$1
    +RewriteRule (.*\.html) docs.php?$1 +
    + +

    Cette technique trouve son utilité dans le fait qu'une directive +RewriteCond ne s'applique +qu'à la règle qui la suit immédiatement. Ainsi, si vous voulez +qu'une directive RewriteCond s'applique à plusieurs règles +RewriteRule, une technique possible consiste à inverser ces +conditions et à ajouter une RewriteRule avec le drapeau [Skip]. Cette technique permet +d'élaborer des pseudo-constructions if-then-else : la dernière règle du +bloc then contiendra skip=N, où N est le nombre de règles +contenues dans le bloc else :

    + +# Est-ce que le fichier existe ?
    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    + +# Create an if-then-else construct by skipping 3 lines if we meant to go to the "else" stanza.
    +RewriteRule .? - [S=3]
    +
    +# Si le fichier existe, alors : + + RewriteRule (.*\.gif) images.php?$1
    + RewriteRule (.*\.html) docs.php?$1
    + # Skip past the "else" stanza.
    + RewriteRule .? - [S=1]
    +
    +# ELSE... + + RewriteRule (.*) 404.php?file=$1
    +
    +# END +
    + +
    + +
    T|type +

    Définit le type MIME de la réponse résultante renvoyée. L'effet est +identique à celui de la directive AddType.

    + +

    Par exemple, vous pouvez utiliser la technique suivante pour servir +du code source Perl en tant que plein texte, s'il est requis d'une +certaine manière :

    + + +# Sert les fichier .pl en tant que plein texte
    +RewriteRule \.pl$ - [T=text/plain] +
    + +

    Ou encore, si vous possédez une caméra qui produit des fichiers +images jpeg sans extension, vous pouvez forcer le renvoi de ces images +avec le type MIME correct en se basant sur le nom du fichier :

    + + +# Les fichiers dont le nom contient 'IMG' sont des images jpg.
    +RewriteRule IMG - [T=image/jpg] +
    + +

    Notez cependant qu'il s'agit d'un exemple trivial, et que le problème +aurait pu être résolu en utilisant à la place la directive FilesMatch. Il faut toujours +envisager la possibilité d'une solution alternative à un problème avant +d'avoir recours à la réécriture, qui sera toujours moins efficace qu'une +solution alternative.

    + +

    +Dans un contexte de niveau répertoire, n'utilisez que - +(tiret) comme substitution, dans toute la séquence de réécriture de +mod_rewrite, sinon le type MIME défini avec ce drapeau +sera perdu suite à un retraitement interne (y compris les séquences de +réécriture suivantes de mod_rewrite). Dans ce contexte, vous pouvez +utiliser le drapeau L pour terminer la séquence +courante de réécriture de mod_rewrite.

    + +
    + +
    + diff --git a/docs/manual/rewrite/flags.xml.meta b/docs/manual/rewrite/flags.xml.meta new file mode 100644 index 00000000000..912229af035 --- /dev/null +++ b/docs/manual/rewrite/flags.xml.meta @@ -0,0 +1,13 @@ + + + + + flags + /rewrite/ + .. + + + en + fr + + diff --git a/docs/manual/rewrite/htaccess.html b/docs/manual/rewrite/htaccess.html new file mode 100644 index 00000000000..491a51c7abb --- /dev/null +++ b/docs/manual/rewrite/htaccess.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: htaccess.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/htaccess.html.en b/docs/manual/rewrite/htaccess.html.en new file mode 100644 index 00000000000..0ed1e4e0771 --- /dev/null +++ b/docs/manual/rewrite/htaccess.html.en @@ -0,0 +1,66 @@ + + + + + +mod_rewrite and .htaccess files - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    mod_rewrite and .htaccess files

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It describes +the way that the rules change when you use mod_rewrite in .htaccess files, +and how to deal with these changes.

    + +
    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/htaccess.xml b/docs/manual/rewrite/htaccess.xml new file mode 100644 index 00000000000..b67dfaaff62 --- /dev/null +++ b/docs/manual/rewrite/htaccess.xml @@ -0,0 +1,46 @@ + + + + + + + + + Rewrite + +mod_rewrite and .htaccess files + + + +

    This document supplements the mod_rewrite +reference documentation. It describes +the way that the rules change when you use mod_rewrite in .htaccess files, +and how to deal with these changes.

    + +
    +Module documentation +mod_rewrite introduction +Redirection and remapping + +Virtual hosts +Proxying +Using RewriteMap +Advanced techniques and tricks +When not to use mod_rewrite + +
    diff --git a/docs/manual/rewrite/htaccess.xml.meta b/docs/manual/rewrite/htaccess.xml.meta new file mode 100644 index 00000000000..dfb5bbd5501 --- /dev/null +++ b/docs/manual/rewrite/htaccess.xml.meta @@ -0,0 +1,12 @@ + + + + + htaccess + /rewrite/ + .. + + + en + + diff --git a/docs/manual/rewrite/index.html b/docs/manual/rewrite/index.html index 5f97bff8c6d..a5c3a44835e 100644 --- a/docs/manual/rewrite/index.html +++ b/docs/manual/rewrite/index.html @@ -1,3 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: index.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 + +URI: index.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/rewrite/index.html.en b/docs/manual/rewrite/index.html.en index 496825ed963..c9bdb1f62ff 100644 --- a/docs/manual/rewrite/index.html.en +++ b/docs/manual/rewrite/index.html.en @@ -1,96 +1,98 @@ - -Apache mod_rewrite - Apache HTTP Server +Apache mod_rewrite - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Apache mod_rewrite

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache mod_rewrite

    -

    Available Languages:  en 

    +

    Available Languages:  en  | + fr  | + tr  | + zh-cn 

    -
    -

    ``The great thing about mod_rewrite is it gives you - all the configurability and flexibility of Sendmail. - The downside to mod_rewrite is that it gives you all - the configurability and flexibility of Sendmail.''

    - -

    -- Brian Behlendorf
    - Apache Group

    - -
    - -
    -

    `` Despite the tons of examples and docs, - mod_rewrite is voodoo. Damned cool voodoo, but still - voodoo.''

    - -

    -- Brian Moore
    - bem@news.cmc.net

    - -
    -

    Welcome to mod_rewrite, the Swiss Army Knife of URL - manipulation!

    +

    mod_rewrite provides a way to modify incoming + URL requests, dynamically, based on regular + expression rules. This allows you to map arbitrary URLs onto + your internal URL structure in any way you like.

    -

    This module uses a rule-based rewriting engine (based on a - regular-expression parser) to rewrite requested URLs on the - fly. It supports an unlimited number of rules and an +

    It supports an unlimited number of rules and an unlimited number of attached rule conditions for each rule to provide a really flexible and powerful URL manipulation - mechanism. The URL manipulations can depend on various tests, - for instance server variables, environment variables, HTTP - headers, time stamps and even external database lookups in - various formats can be used to achieve granular URL + mechanism. The URL manipulations can depend on various tests: + server variables, environment variables, HTTP + headers, time stamps, external database lookups, and various other + external programs or handlers, can be used to achieve granular URL matching.

    -

    This module operates on the full URLs (including the - path-info part) both in per-server context - (httpd.conf) and per-directory context - (.htaccess) and can even generate query-string - parts on result. The rewritten result can lead to internal - sub-processing, external request redirection or even to an - internal proxy throughput.

    +

    Rewrite rules can operate on the full URLs, including the path-info + and query string portions, and may be used in per-server context + (httpd.conf), per-virtualhost context (<VirtualHost> blocks), or + per-directory context (.htaccess files and <Directory> blocks). The + rewritten result can lead to further rules, internal + sub-processing, external request redirection, or proxy + passthrough, depending on what flags you + attach to the rules.

    + +

    Since mod_rewrite is so powerful, it can indeed be rather + complex. This document supplements the reference documentation, and + attempts to allay some of that complexity, and provide highly + annotated examples of common scenarios that you may handle with + mod_rewrite. But we also attempt to show you when you should not + use mod_rewrite, and use other standard Apache features instead, + thus avoiding this unnecessary complexity.

    -

    But all this functionality and flexibility has its - drawback: complexity. So don't expect to understand this - entire module in just one day.

    -
    - -
    top
    -
    +
    + +
    -

    Available Languages:  en 

    +

    Available Languages:  en  | + fr  | + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    + \ No newline at end of file diff --git a/docs/manual/rewrite/index.html.fr b/docs/manual/rewrite/index.html.fr new file mode 100644 index 00000000000..4643a775ab7 --- /dev/null +++ b/docs/manual/rewrite/index.html.fr @@ -0,0 +1,117 @@ + + + + + +Le module Apache mod_rewrite - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Le module Apache mod_rewrite

    +
    +

    Langues Disponibles:  en  | + fr  | + tr  | + zh-cn 

    +
    + + +

    mod_rewrite permet de modifier les requêtes + entrantes dynamiquement, en fonction de règles manipulant des expressions rationnelles. Vous pouvez + ainsi relier des URLs arbitraires à votre propre structure d'URLs + interne comme vous le souhaitez.

    + +

    Il fournit un + mécanisme de manipulation d'URL particulièrement souple et + puissant en supportant un nombre illimité de règles et de + conditions attachées à chaque règle. Les manipulations d'URLs + peuvent dépendre de tests variés : les URLs peuvent + être finement caractérisées en fonction de variables du serveur, + de variables d'environnement, d'en-têtes HTTP, de repères + temporels, de recherches dans des bases de données + externes, ou même de requêtes vers des bases de données externes + et de différents gestionnaires ou programmes externes.

    + +

    Les règles de réécriture peuvent agir sur l'ensemble des URLs (la partie chemin + et la chaîne de paramètres) et peuvent être utilisées dans le contexte du serveur principal + (httpd.conf), mais aussi dans le contexte des + serveurs virtuels (sections <VirtualHost>), ou dans le + contexte des + répertoires (fichiers .htaccess et blocs + <Directory>. Le résultat + réécrit peut conduire vers d'autres règles à un + traitement secondaire interne, une redirection vers une requête + externe ou même l'envoi vers un serveur mandataire, en fonction + des drapeaux que vous attachez aux + règles

    + +

    mod_rewrite étant très puissant, il peut par + conséquent être très complexe. Ce document + complè la documentation de + référence, et est sensé alléger un + peu cette complexité, et présenter des exemples largement + commentés, ainsi que des situations courantes que vous + pourrez traiter avec mod_rewrite. Mais nous voulons aussi vous + montrer des situations où vous ne devrez pas utiliser + mod_rewrite, et lui préférer d'autres + fonctionnalités standard d'Apache, évitant ainsi + d'entrer dans une complexité inutile.

    + + +
    + +
    +
    +

    Langues Disponibles:  en  | + fr  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/index.html.tr.utf8 b/docs/manual/rewrite/index.html.tr.utf8 new file mode 100644 index 00000000000..3d48a5f2b92 --- /dev/null +++ b/docs/manual/rewrite/index.html.tr.utf8 @@ -0,0 +1,100 @@ + + + + + +Apache mod_rewrite - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache mod_rewrite

    +
    +

    Mevcut Diller:  en  | + fr  | + tr  | + zh-cn 

    +
    + +
    +

    mod_rewrite gelen URL isteklerini + düzenli ifade kurallarına dayanarak + devingen olarak dönüştürmek için bir yöntem sağlar. Böylece keyfi URL'leri + kendi URL yapınızla istediğiniz şekilde eşleştirmeniz mümkün olur.

    +
    + +

    Gerçekten esnek ve güçlü bir URL kurgulama + mekanizması oluşturmak için sınısız sayıda kural ve her kural için de + sınırsız sayıda koşul destekler. URL değişiklikleri çeşitli sınamalara + bağlı olabilir: sunucu değişkenleri, HTTP başlıkları, ortam değişkenleri, + zaman damgaları, çeşitli biçimlerde harici veritabanı sorguları. Ayrıca, + harici birtakım uygulamalar da bu amaçla kullanılabilir.

    + +

    Bu modül URL’lerin tamamında (path-info kısmı dahil), sunucu + bağlamında (httpd.conf), sanal konaklar bağlamında (<VirtualHost> bölümleri), dizin + bağlamında (.htaccess dosyaları ve + <Directory> bölümleri) çalışır. Kurallara eklediğiniz + seçeneklere bağlı olarak, yeniden yazılan URL + sonuçta dahili işlemlerde, harici yönlendirmelerde ve hatta dahili vekalet + işlemlerinde kullanılabilir.

    + +

    mod_rewrite çok güçlü bir araç olduğundan oldukça + karmaşık görünebilir. Bu belge + mod_rewrite başvuru kılavuzunun + tamamlayıcısı olup bu karmaşıklığı biraz hafifletmeyi amaçlar ve + mod_rewrite ile elde edilebilen kullanışlı ve oldukça + açıklamalı senaryo örnekleri içerir. Ayrıca, + mod_rewrite'ı hangi durumlarda kullanmamanız gerektiğini + ve bunun yerine standart Apache özelliklerinin kullanımını göstermeye, + böylece gereksiz karmaşıklıktan sizi kurtarmayı amaçladık.

    + + + +
    + +
    +
    +

    Mevcut Diller:  en  | + fr  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/index.html.zh-cn.utf8 b/docs/manual/rewrite/index.html.zh-cn.utf8 new file mode 100644 index 00000000000..20c462205c1 --- /dev/null +++ b/docs/manual/rewrite/index.html.zh-cn.utf8 @@ -0,0 +1,82 @@ + + + + + +Apache mod_rewrite - Apache HTTP 服务器 版本 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache mod_rewrite

    +
    +

    可用语言:  en  | + fr  | + tr  | + zh-cn 

    +
    +
    此翻译可能过期。要了解最近的更改,请阅读英文版。
    + +

    mod_rewrite 提供了基于正则表达式规则动态修改传入的请求的 URL 的方法。 + 这允许你以自己喜欢的任意方法映射任意 URL 到你的内部 URL 结构。

    + +

    它支持无限的规则,以及为每个规则附加条件,从而提供了一个真正灵活且强大的 URL + 操作机制。URL 操作可以依赖于各种测试,例如服务器变量,环境变量,HTTP + 头,时戳,甚至外部数据库查询等,以便完成 URL 单元匹配。

    + +

    这个模块在服务器上下文 (httpd.conf),虚拟主机上下文 (<VirtualHost> 指令块),目录上下文 + (.htaccess 文件和 <Directory> + 指令块) 对完整的 URL (包含目录信息部分和查询字符串部分) 操作。 + 重写结果可以导致新的规则处理,内部的后续处理,外部请求重定向,甚至透过内部代理, + 这取决于你为规则附加的标志。

    + +

    既然 mod_rewrite 这么强大,它当然是相当复杂。这篇文档作为参考手册的补充,试图减轻一些复杂性, + 提供你可能使用 mod_rewrite 的常见场景的有充分注释的例子。 + 但是,我们也试图告诉你,在什么时候你不应当使用 mod_rewrite, + 可以使用其它标准的 Apache 特性来达到目的,以避免无谓的复杂性。

    + + +
    + +
    +
    +

    可用语言:  en  | + fr  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/index.xml b/docs/manual/rewrite/index.xml index c292db85aec..494c8842f64 100644 --- a/docs/manual/rewrite/index.xml +++ b/docs/manual/rewrite/index.xml @@ -4,12 +4,12 @@ + + + + + + + + + Le module Apache mod_rewrite + + + +

    mod_rewrite permet de modifier les requêtes + entrantes dynamiquement, en fonction de règles manipulant des expressions rationnelles. Vous pouvez + ainsi relier des URLs arbitraires à votre propre structure d'URLs + interne comme vous le souhaitez.

    + +

    Il fournit un + mécanisme de manipulation d'URL particulièrement souple et + puissant en supportant un nombre illimité de règles et de + conditions attachées à chaque règle. Les manipulations d'URLs + peuvent dépendre de tests variés : les URLs peuvent + être finement caractérisées en fonction de variables du serveur, + de variables d'environnement, d'en-têtes HTTP, de repères + temporels, de recherches dans des bases de données + externes, ou même de requêtes vers des bases de données externes + et de différents gestionnaires ou programmes externes.

    + +

    Les règles de réécriture peuvent agir sur l'ensemble des URLs (la partie chemin + et la chaîne de paramètres) et peuvent être utilisées dans le contexte du serveur principal + (httpd.conf), mais aussi dans le contexte des + serveurs virtuels (sections VirtualHost), ou dans le + contexte des + répertoires (fichiers .htaccess et blocs + <Directory>. Le résultat + réécrit peut conduire vers d'autres règles à un + traitement secondaire interne, une redirection vers une requête + externe ou même l'envoi vers un serveur mandataire, en fonction + des drapeaux que vous attachez aux + règles

    + +

    mod_rewrite étant très puissant, il peut par + conséquent être très complexe. Ce document + complè la documentation de + référence, et est sensé alléger un + peu cette complexité, et présenter des exemples largement + commentés, ainsi que des situations courantes que vous + pourrez traiter avec mod_rewrite. Mais nous voulons aussi vous + montrer des situations où vous ne devrez pas utiliser + mod_rewrite, et lui préférer d'autres + fonctionnalités standard d'Apache, évitant ainsi + d'entrer dans une complexité inutile.

    + + +
    + +Documentation de +référence de mod_rewrite +Mise en correspondance des URLs +avec le système de fichiers +wiki mod_rewrite + +Glossaire + +
    + + diff --git a/docs/manual/rewrite/index.xml.meta b/docs/manual/rewrite/index.xml.meta index dd496b6d2cc..abe6d6ca220 100644 --- a/docs/manual/rewrite/index.xml.meta +++ b/docs/manual/rewrite/index.xml.meta @@ -1,11 +1,15 @@ + - + index /rewrite/ .. en + fr + tr + zh-cn diff --git a/docs/manual/rewrite/index.xml.tr b/docs/manual/rewrite/index.xml.tr new file mode 100644 index 00000000000..d7a264458f5 --- /dev/null +++ b/docs/manual/rewrite/index.xml.tr @@ -0,0 +1,93 @@ + + + + + + + + + + + + Apache mod_rewrite + + +
    +

    mod_rewrite gelen URL isteklerini + düzenli ifade kurallarına dayanarak + devingen olarak dönüştürmek için bir yöntem sağlar. Böylece keyfi URL'leri + kendi URL yapınızla istediğiniz şekilde eşleştirmeniz mümkün olur.

    +
    + +

    Gerçekten esnek ve güçlü bir URL kurgulama + mekanizması oluşturmak için sınısız sayıda kural ve her kural için de + sınırsız sayıda koşul destekler. URL değişiklikleri çeşitli sınamalara + bağlı olabilir: sunucu değişkenleri, HTTP başlıkları, ortam değişkenleri, + zaman damgaları, çeşitli biçimlerde harici veritabanı sorguları. Ayrıca, + harici birtakım uygulamalar da bu amaçla kullanılabilir.

    + +

    Bu modül URL’lerin tamamında (path-info kısmı dahil), sunucu + bağlamında (httpd.conf), sanal konaklar bağlamında (VirtualHost bölümleri), dizin + bağlamında (.htaccess dosyaları ve + <Directory> bölümleri) çalışır. Kurallara eklediğiniz + seçeneklere bağlı olarak, yeniden yazılan URL + sonuçta dahili işlemlerde, harici yönlendirmelerde ve hatta dahili vekalet + işlemlerinde kullanılabilir.

    + +

    mod_rewrite çok güçlü bir araç olduğundan oldukça + karmaşık görünebilir. Bu belge + mod_rewrite başvuru kılavuzunun + tamamlayıcısı olup bu karmaşıklığı biraz hafifletmeyi amaçlar ve + mod_rewrite ile elde edilebilen kullanışlı ve oldukça + açıklamalı senaryo örnekleri içerir. Ayrıca, + mod_rewrite'ı hangi durumlarda kullanmamanız gerektiğini + ve bunun yerine standart Apache özelliklerinin kullanımını göstermeye, + böylece gereksiz karmaşıklıktan sizi kurtarmayı amaçladık.

    + + + +
    +mod_rewrite Başvuru Kılavuzu + +URL’lerin Dosya Sistemine Eşlenmesi + +mod_rewrite wiki + +Terimler + +
    + + diff --git a/docs/manual/rewrite/index.xml.zh-cn b/docs/manual/rewrite/index.xml.zh-cn new file mode 100644 index 00000000000..03fb1705ade --- /dev/null +++ b/docs/manual/rewrite/index.xml.zh-cn @@ -0,0 +1,71 @@ + + + + + + + + + + + Apache mod_rewrite + + +

    mod_rewrite 提供了基于正则表达式规则动态修改传入的请求的 URL 的方法。 + 这允许你以自己喜欢的任意方法映射任意 URL 到你的内部 URL 结构。

    + +

    它支持无限的规则,以及为每个规则附加条件,从而提供了一个真正灵活且强大的 URL + 操作机制。URL 操作可以依赖于各种测试,例如服务器变量,环境变量,HTTP + 头,时戳,甚至外部数据库查询等,以便完成 URL 单元匹配。

    + +

    这个模块在服务器上下文 (httpd.conf),虚拟主机上下文 (VirtualHost 指令块),目录上下文 + (.htaccess 文件和 <Directory> + 指令块) 对完整的 URL (包含目录信息部分和查询字符串部分) 操作。 + 重写结果可以导致新的规则处理,内部的后续处理,外部请求重定向,甚至透过内部代理, + 这取决于你为规则附加的标志。

    + +

    既然 mod_rewrite 这么强大,它当然是相当复杂。这篇文档作为参考手册的补充,试图减轻一些复杂性, + 提供你可能使用 mod_rewrite 的常见场景的有充分注释的例子。 + 但是,我们也试图告诉你,在什么时候你不应当使用 mod_rewrite, + 可以使用其它标准的 Apache 特性来达到目的,以避免无谓的复杂性。

    + + +
    + +mod_rewrite 参考手册 +从 URL 映射到文件系统 +mod_rewrite +wiki +术语 + +
    diff --git a/docs/manual/rewrite/intro.html b/docs/manual/rewrite/intro.html new file mode 100644 index 00000000000..b83f88363cd --- /dev/null +++ b/docs/manual/rewrite/intro.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: intro.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: intro.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/intro.html.en b/docs/manual/rewrite/intro.html.en new file mode 100644 index 00000000000..484b8d27728 --- /dev/null +++ b/docs/manual/rewrite/intro.html.en @@ -0,0 +1,367 @@ + + + + + +Apache mod_rewrite Introduction - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache mod_rewrite Introduction

    +
    +

    Available Languages:  en  | + fr 

    +
    + +

    This document supplements the mod_rewrite +reference documentation. It +describes the basic concepts necessary for use of +mod_rewrite. Other documents go into greater detail, +but this doc should help the beginner get their feet wet. +

    +
    + +
    top
    +
    +

    Introduction

    +

    The Apache module mod_rewrite is a very powerful and +sophisticated module which provides a way to do URL manipulations. With +it, you can do nearly all types of URL rewriting that you may need. It +is, however, somewhat complex, and may be intimidating to the beginner. +There is also a tendency to treat rewrite rules as magic incantation, +using them without actually understanding what they do.

    + +

    This document attempts to give sufficient background so that what +follows is understood, rather than just copied blindly. +

    + +

    Remember that many common URL-manipulation tasks don't require the +full power and complexity of mod_rewrite. For simple +tasks, see mod_alias and the documentation +on mapping URLs to the +filesystem.

    + +

    Finally, before proceeding, be sure to configure +mod_rewrite's log level to one of the trace levels using +the LogLevel directive. Although this +can give an overwhelming amount of information, it is indispensable in +debugging problems with mod_rewrite configuration, since +it will tell you exactly how each rule is processed.

    + +
    top
    +
    +

    Regular Expressions

    + +

    mod_rewrite uses the Perl Compatible +Regular Expression vocabulary. In this document, we do not attempt +to provide a detailed reference to regular expressions. For that, we +recommend the PCRE man pages, the +Perl regular +expression man page, and Mastering +Regular Expressions, by Jeffrey Friedl.

    + +

    In this document, we attempt to provide enough of a regex vocabulary +to get you started, without being overwhelming, in the hope that +RewriteRules will be scientific +formulae, rather than magical incantations.

    + +

    Regex vocabulary

    + +

    The following are the minimal building blocks you will need, in order +to write regular expressions and RewriteRules. They certainly do not +represent a complete regular expression vocabulary, but they are a good +place to start, and should help you read basic regular expressions, as +well as write your own.

    + + + + + + + + + + + + + + + + + + +
    CharacterMeaningExample
    .Matches any single +characterc.t will match cat, +cot, cut, etc.
    +Repeats the previous match one or more +timesa+ matches a, aa, +aaa, etc
    *Repeats the previous match zero or more +times.a* matches all the same things +a+ matches, but will also match an empty string.
    ?Makes the match optional. +colou?r will match color and colour.
    ^Called an anchor, matches the beginning +of the string^a matches a string that begins with +a
    $The other anchor, this matches the end of +the string.a$ matches a string that ends with +a.
    ( )Groups several characters into a single +unit, and captures a match for use in a backreference.(ab)+ +matches ababab - that is, the + applies to the group. +For more on backreferences see below.
    [ ]A character class - matches one of the +charactersc[uoa]t matches cut, +cot or cat.
    [^ ]Negative character class - matches any character not specifiedc[^/]t matches cat or c=t but not c/t
    + +

    In mod_rewrite the ! character can be +used before a regular expression to negate it. This is, a string will +be considered to have matched only if it does not match the rest of +the expression.

    + + + +

    Regex Back-Reference Availability

    + +

    One important thing here has to be remembered: Whenever you + use parentheses in Pattern or in one of the + CondPattern, back-references are internally created + which can be used with the strings $N and + %N (see below). These are available for creating + the strings Substitution and TestString as + outlined in the following chapters. Figure 1 shows to which + locations the back-references are transferred for expansion as + well as illustrating the flow of the RewriteRule, RewriteCond + matching. In the next chapters, we will be exploring how to use + these back-references, so do not fret if it seems a bit alien + to you at first. +

    + +

    + Flow of RewriteRule and RewriteCond matching
    + Figure 1: The back-reference flow through a rule.
    + In this example, a request for /test/1234 would be transformed into /admin.foo?page=test&id=1234&host=admin.example.com. +

    + + +
    top
    +
    +

    RewriteRule Basics

    +

    A RewriteRule consists +of three arguments separated by spaces. The arguments are

    +
      +
    1. Pattern: which incoming URLs should be affected by the rule;
    2. +
    3. Substitution: where should the matching requests be sent;
    4. +
    5. [flags]: options affecting the rewritten request.
    6. +
    + +

    The Pattern is a regular expression. +It is initially (for the first rewrite rule or until a substitution occurs) +matched against the URL-path of the incoming request (the part after the +hostname but before any question mark indicating the beginning of a query +string) or, in per-directory context, against the request's path relative +to the directory for which the rule is defined. Once a substitution has +occurred, the rules that follow are matched against the substituted +value. +

    + +

    + Syntax of the RewriteRule directive
    + Figure 2: Syntax of the RewriteRule directive. +

    + + +

    The Substitution can itself be one of three things:

    + +
    +
    1. A full filesystem path to a resource
    +
    +

    +RewriteRule ^/games.* /usr/local/games/web +

    +

    This maps a request to an arbitrary location on your filesystem, much +like the Alias directive.

    +
    + +
    2. A web-path to a resource
    +
    +

    +RewriteRule ^/foo/?$ /bar +

    +

    If DocumentRoot is set +to /usr/local/apache2/htdocs, then this directive would +map requests for http://example.com/foo to the +path /usr/local/apache2/htdocs/bar.

    +
    + +
    3. An absolute URL
    +
    +

    +RewriteRule ^/product/view$ http://site2.example.com/seeproduct.html [R] +

    +

    This tells the client to make a new request for the specified URL.

    +
    +
    + +
    Note that 1 and 2 have exactly the same syntax. The difference between them is that in the case of 1, the top level of the target path (i.e., /usr/) exists on the filesystem, where as in the case of 2, it does not. (i.e., there's no /bar/ as a root-level directory in the filesystem.)
    + +

    The Substitution can also +contain back-references to parts of the incoming URL-path +matched by the Pattern. Consider the following:

    +

    +RewriteRule ^/product/(.*)/view$ /var/web/productdb/$1 +

    +

    The variable $1 will be replaced with whatever text +was matched by the expression inside the parenthesis in +the Pattern. For example, a request +for http://example.com/product/r14df/view will be mapped +to the path /var/web/productdb/r14df.

    + +

    If there is more than one expression in parenthesis, they are +available in order in the +variables $1, $2, $3, and so +on.

    + + +
    top
    +
    +

    Rewrite Flags

    +

    The behavior of a RewriteRule can be modified by the +application of one or more flags to the end of the rule. For example, the +matching behavior of a rule can be made case-insensitive by the +application of the [NC] flag: +

    +

    +RewriteRule ^puppy.html smalldog.html [NC] +

    + +

    For more details on the available flags, their meanings, and +examples, see the Rewrite Flags document.

    + +
    top
    +
    +

    Rewrite Conditions

    +

    One or more RewriteCond +directives can be used to restrict the types of requests that will be +subject to the +following RewriteRule. The +first argument is a variable describing a characteristic of the +request, the second argument is a regular +expression that must match the variable, and a third optional +argument is a list of flags that modify how the match is evaluated.

    + +

    + Syntax of the RewriteCond directive
    + Figure 3: Syntax of the RewriteCond directive +

    + +

    For example, to send all requests from a particular IP range to a +different server, you could use:

    +

    +RewriteCond %{REMOTE_ADDR} ^10\.2\.
    +RewriteRule (.*) http://intranet.example.com$1 +

    + +

    When more than +one RewriteCond is +specified, they must all match for +the RewriteRule to be +applied. For example, to deny requests that contain the word "hack" in +their query string, unless they also contain a cookie containing +the word "go", you could use:

    +

    +RewriteCond %{QUERY_STRING} hack
    +RewriteCond %{HTTP_COOKIE} !go
    +RewriteRule .* - [F] +

    +

    Notice that the exclamation mark specifies a negative match, so the rule is only applied if the cookie does not contain "go".

    + +

    Matches in the regular expressions contained in +the RewriteConds can be +used as part of the Substitution in +the RewriteRule using the +variables %1, %2, etc. For example, this +will direct the request to a different directory depending on the +hostname used to access the site:

    +

    +RewriteCond %{HTTP_HOST} (.*)
    +RewriteRule ^/(.*) /sites/%1/$1 +

    +

    If the request was for http://example.com/foo/bar, +then %1 would contain example.com +and $1 would contain foo/bar.

    + + + +
    top
    +
    +

    Rewrite maps

    + +

    The RewriteMap directive +provides a way to call an external function, so to speak, to do your +rewriting for you. This is discussed in greater detail in the RewriteMap supplementary documentation.

    +
    top
    +
    +

    .htaccess files

    + +

    Rewriting is typically configured in the main server configuration +setting (outside any <Directory> section) or +inside <VirtualHost> +containers. This is the easiest way to do rewriting and is +recommended. It is possible, however, to do rewriting +inside <Directory> +sections or .htaccess +files at the expense of some additional complexity. This technique +is called per-directory rewrites.

    + +

    The main difference with per-server rewrites is that the path +prefix of the directory containing the .htaccess file is +stripped before matching in +the RewriteRule. In addition, the RewriteBase should be used to assure the request is properly mapped.

    + +
    +
    +

    Available Languages:  en  | + fr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/intro.html.fr b/docs/manual/rewrite/intro.html.fr new file mode 100644 index 00000000000..313dc4f139c --- /dev/null +++ b/docs/manual/rewrite/intro.html.fr @@ -0,0 +1,398 @@ + + + + + +Introduction au module Apache mod_rewrite - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Introduction au module Apache mod_rewrite

    +
    +

    Langues Disponibles:  en  | + fr 

    +
    +
    Cette traduction peut être périmée. Vérifiez la version + anglaise pour les changements récents.
    + +

    Ce document est un complément à la documentation de référence du module +mod_rewrite. Il décrit les concepts de base dont la +connaissance est nécessaire pour l'utilisation de +mod_rewrite. D'autres documents entrent d'avantage dans +les détails, mais celui-ci devrait aider le débutant à se mouiller les +pieds. +

    +
    + +
    top
    +
    +

    Introduction

    +

    Le module Apache mod_rewrite est un module puissant +et sophistiqué qui permet la réécriture des URLs. Grâce à lui, vous +pouvez effectuer quasiment tous les types de réécriture d'URLs dont vous +avez besoin. Il est cependant assez complexe, et peut paraître +intimidant au débutant. Certains ont aussi tendance à traiter les +règles de réécriture comme des incantations magiques, et à les utiliser +sans vraiment comprendre leur manière d'agir.

    + +

    Ce document a pour ambition d'être suffisamment explicite pour +permettre la compréhension, et non la copie en aveugle, de ce qui suit. +

    + +

    Gardez à l'esprit que de nombreuses tâches de manipulation d'URLs +courantes n'ont pas besoin de la puissance et de la complexité de +mod_rewrite. Pour les tâches simples, voir +mod_alias et la documentation sur la Mise en correspondance des URLs avec le +système de fichiers.

    + +

    Enfin, avant de procéder, assurez-vous d'avoir configuré le niveau de +journalisation de mod_rewrite à un des niveaux de trace +via la directive LogLevel. Bien que +ceci risque de vous submerger sous une énorme quantité d'informations, +le débogage des problèmes avec la configuration de +mod_rewrite est à ce prix car vous verrez alors +exactement comment chaque règle est traitée.

    + +
    top
    +
    +

    Expressions rationnelles

    + +

    mod_rewrite utilise le vocabulaire des Expressions rationnelles compatibles Perl. +Ce document n'a pas pour prétention d'être une référence détaillée des +expressions rationnelles. A cet effet, nous recommandons les pages de manuel de PCRE, la page de manuel des +expressions rationnelles Perl, et l'ouvrage Mastering +Regular Expressions, by Jeffrey Friedl.

    + +

    Dans ce document, nous avons pour but de vous fournir suffisamment de +vocabulaire des expressions rationnelles pour vous mettre le pied à +l'étrier, sans être dépassé, en espérant que les directives RewriteRule vous apparaîtront comme des +formules scientifiques, plutôt que comme des incantations magiques.

    + +

    Vocabulaire des expressions rationnelles

    + +

    Vous trouverez dans ce qui suit le minimum à connaître pour être en +mesure d'écrire des expressions rationnelles et des règles RewriteRule. Ceci ne représente +certainement pas un vocabulaire des expressions rationnelles complet, +mais constitue un bon point de départ, et devrait vous aider à +déchiffrer les expressions rationnelles simples, et à écrire vos propres +expressions.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    MotifSignificationExemple
    .Correspond à tout caractère unique +c.t correspondra à cat, +cot, cut, etc.
    +Répète le caractère de correspondance +précédent une ou plusieurs foisa+ correspond à a, aa, +aaa, etc.
    *Répète le caractère de correspondance +précédent zéro ou plusieurs foisa* correspond à tout ce à quoi correspond +a+, mais correspond aussi à la chaîne vide.
    ?Rend la correspondance optionnelle. +colou?r correspondra à color et colour.
    ^Appelé ancrage, correspond au début de la +chaîne^a correspond à une chaîne qui commence par +a
    $L'autre ancrage, correspond à la fin de +la chaîne.a$ correspond à une chaîne qui se termine par +a.
    ( )Regroupe plusieurs caractères en une +seule entité, et conserve une correspondance à des fins d'utilisation +dans une référence arrière.(ab)+ +correspond à ababab - à savoir, le + +s'applique au groupe. +Pour plus de détails sur les références arrières, voir ci-dessous.
    [ ]Une classe de caractères - correspond à +un des caractères de la classec[uoa]t correspond à cut, +cot ou cat.
    [^ ]Négation de la classe de caractères - +correspond à tout caractère ne faisant pas partie de la classec[^/]t correspond à cat ou +c=t mais pas à c/t
    + +

    Avec mod_rewrite, le caractère ! peut +préfixer une expression rationnelle afin d'en exprimer la négation. +Autrement dit, une chaîne ne correspondra que si elle ne correspond pas +à l'expression située après le !.

    + + + +

    Disponibilité des références +arrières dans les expressions rationnelles

    + +

    Vous devez vous souvenir d'une chose importante : chaque fois + que vous utilisez des parenthèses dans un Modèle ou dans + un des modèles de conditions, des références arrières + sont créées en interne et peuvent être rappelées via les chaînes + $N et %N (voir ci-dessous). Ces + références sont disponibles lors de la création des chaînes de + Substitution et des Chaînes de test comme indiqué dans les chapitres suivants. + La figure 1 + montre à quels endroits les références arrières sont suceptibles + d'être développées, et illustre le flux des comparaisons + effectuées par les règles RewriteRule et + RewriteCond. Nous verrons comment utiliser ces références arrières + dans les chapitres suivant, donc ne vous effrayez pas si cela vous + paraît un peu compliqué au premier abord.

    + +

    + Flux des comparaisons effectuées par les règles RewriteRule       et RewriteCond
    + Figure 1 : Le cheminement d'une référence arrière à + travers une règle.
    + Dans cet exemple, une requête pour /test/1234 sera + traduite en + /admin.foo?page=test&id=1234&host=admin.example.com. +

    + + +
    top
    +
    +

    Les bases des règles de réécriture

    +

    Une règle de réécriture RewriteRule est constituée de trois +arguments séparés par des espaces. Les arguments sont :

    +
      +
    1. Modèle: le modèle des URLs auxquelles la règle doit +s'appliquer;
    2. +
    3. Substitution: vers quoi la requête correspondante doit être +transformée;
    4. +
    5. [drapeaux]: options affectant la requête réécrite.
    6. +
    + +

    Le Modèle est une expression +rationnelle. Pour la première règle de réécriture ou jusqu'à ce +qu'une substitution intervienne, elle est tout d'abord comparée +au chemin de l'URL de la requête entrante (la +partie située après le nom d'hôte mais avant tout point d'interrogation +qui indique le début d'une chaîne de requête), ou +dans un contexte de répertoire, au chemin de la requête relatif au +répertoire pour lequel la règle a été définie. Lorsqu'une substitution a +été effectuée, les règles suivantes s'appliquent à la valeur de +substitution.

    + +

    + Syntaxe de la directive RewriteRule
    + Figure 2 : Syntaxe de la directive RewriteRule. +

    + +

    La chaîne de Substitution peut, quant à elle, être de +trois types :

    + +
    +
    Un chemin complet du système de fichiers vers une ressource
    +
    +

    +RewriteRule ^/jeux.* /usr/local/jeux/web +

    +

    Ceci peut faire correspondre une requête à toute localisation voulue de +votre système de fichiers, un peu comme la directive Alias.

    +
    + +
    Un chemin web vers une ressource
    +
    +

    +RewriteRule ^/foo$ /bar +

    +

    Si la directive DocumentRoot a +pour valeur /usr/local/apache2/htdocs, cette règle va faire +correspondre les requêtes pour http://example.com/foo au +chemin /usr/local/apache2/htdocs/bar.

    +
    + +
    Une URL absolue
    +
    +

    +RewriteRule ^/produits/vues$ http://site2.example.com/voirproduits.html [R] +

    +

    Ceci informe le client qu'il doit effectuer une nouvelle requête vers +l'URL spécifiée.

    +
    +
    + +

    La chaîne de Substitution peut aussi contenir des +références arrières vers des parties du chemin d'URL entrant +correspondant au Modèle. Considérons ce qui suit :

    +

    +RewriteRule ^/produits/(.*)/view$ /var/web/produitsdb/$1 +

    +

    La variable $1 sera remplacée par tout texte +correspondant à l'expression située entre les parenthèses dans le +Modèle. Par exemple, une requête pour +http://example.com/produits/r14df/vue correspondra au +chemin /var/web/produitsdb/r14df.

    + +

    S'il y a plus d'une expression entre parenthèses, elle seront +accessibles selon leur ordre d'apparition via les variables +$1, $2, $3, etc...

    + + +
    top
    +
    +

    Drapeaux de réécriture

    +

    Le comportement d'une règle RewriteRule peut être modifié par la +présence d'un ou plusieurs drapeaux en fin de règle. Par exemple, les +conditions de correspondance d'une règle peuvent être rendues +insensibles à la casse par la présence du drapeau [NC] : +

    +

    +RewriteRule ^puppy.html petitchien.html [NC] +

    + +

    Pour une liste des drapeaux disponibles, leurs significations, et des +exemples, voir le document Drapeaux de +réécriture.

    + +
    top
    +
    +

    Conditions de réécriture

    +

    Il est possible d'utiliser une ou plusieurs directives RewriteCond pour restreindre les types +de requêtes auxquelles devra s'appliquer la règle RewriteRule suivante. Le premier +argument est une variable décrivant une caractéristique de la requête, +le second argument est une expression rationnelle +qui doit correspondre à la variable, et un troisième argument optionnel +est une liste de drapeaux qui modifient la manière dont la +correspondance est évaluée.

    + +

    + Syntaxe de la directive RewriteCond
    + Figure 3 : Syntaxe de la directive RewriteCond +

    + + +

    Par exemple, pour renvoyer toutes les requêtes en provenance d'une +certaine tranche d'adresses IP vers un autre serveur, vous pouvez +utiliser :

    +

    +RewriteCond %{REMOTE_ADDR} ^10\.2\.
    +RewriteRule (.*) http://intranet.example.com$1 +

    + +

    Si vous spécifiez plus d'une directive RewriteCond, ces directives +doivent toutes être satisfaites pour que la règle RewriteRule suivante s'applique. Par exemple, +pour interdire les requêtes qui contiennent le mot "hack" dans la chaîne +de requête, sauf si elles contiennent aussi un cookie contenant le mot +"go", vous pouvez utiliser :

    +

    +RewriteCond %{QUERY_STRING} hack
    +RewriteCond %{HTTP_COOKIE} !go
    +RewriteRule .* - [F] +

    +

    Notez que le point d'exclamation indique une correspondance négative +; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"

    + +

    Les correspondances dans les expressions rationnelles contenues dans +les directives RewriteCond +peuvent constituer des parties de la chaîne de Substitution +de la règle RewriteRule via +les variables %1, %2, etc... Par +exemple, ce qui suit va diriger la requête vers un répertoire différent +en fonction du nom d'hôte utilisé pour accéder au site :

    +

    +RewriteCond %{HTTP_HOST} (.*)
    +RewriteRule ^/(.*) /sites/%1/$1 +

    +

    Si la requête concernait http://example.com/foo/bar, +alors %1 contiendrait example.com et +$1 contiendrait foo/bar.

    + + + +
    top
    +
    +

    Tables de réécriture

    + +

    La directive RewriteMap +permet en quelque sorte de faire appel à une fonction externe pour +effectuer la réécriture à votre place. Tout ceci est décrit plus en +détails dans la Documentation +supplémentaire sur RewriteMap.

    +
    top
    +
    +

    Fichiers .htaccess

    + +

    La réécriture est en général définie au niveau de la configuration du +serveur principal (en dehors de toute section <Directory>) ou dans une section <VirtualHost>. Il s'agit là de la +manière la plus simple de mettre en oeuvre la réécriture et nous la +recommandons. Il est possible, cependant, de mettre en oeuvre la +réécriture au sein d'une section <Directory> ou d'un fichier .htaccess ; ce type de +configuration est cependant plus complexe. Cette technique est appelée +réécriture par répertoire.

    + +

    La principale différence avec les réécritures au niveau du serveur réside +dans le fait que le préfixe du chemin du répertoire contenant le fichier +.htaccess est supprimé avant la mise en correspondance dans +la règle RewriteRule. De +plus, on doit utiliser la directive RewriteBase pour s'assurer que la +requête est correctement mise en correspondance.

    + +
    +
    +

    Langues Disponibles:  en  | + fr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/intro.xml b/docs/manual/rewrite/intro.xml new file mode 100644 index 00000000000..29abd39c2cd --- /dev/null +++ b/docs/manual/rewrite/intro.xml @@ -0,0 +1,351 @@ + + + + + + + + +Rewrite + + Apache mod_rewrite Introduction + + +

    This document supplements the mod_rewrite +reference documentation. It +describes the basic concepts necessary for use of +mod_rewrite. Other documents go into greater detail, +but this doc should help the beginner get their feet wet. +

    +
    + +Module documentation + +Redirection and remapping +Controlling access +Virtual hosts +Proxying +Using RewriteMap +Advanced techniques +When not to use mod_rewrite + +
    Introduction +

    The Apache module mod_rewrite is a very powerful and +sophisticated module which provides a way to do URL manipulations. With +it, you can do nearly all types of URL rewriting that you may need. It +is, however, somewhat complex, and may be intimidating to the beginner. +There is also a tendency to treat rewrite rules as magic incantation, +using them without actually understanding what they do.

    + +

    This document attempts to give sufficient background so that what +follows is understood, rather than just copied blindly. +

    + +

    Remember that many common URL-manipulation tasks don't require the +full power and complexity of mod_rewrite. For simple +tasks, see mod_alias and the documentation +on mapping URLs to the +filesystem.

    + +

    Finally, before proceeding, be sure to configure +mod_rewrite's log level to one of the trace levels using +the LogLevel directive. Although this +can give an overwhelming amount of information, it is indispensable in +debugging problems with mod_rewrite configuration, since +it will tell you exactly how each rule is processed.

    + +
    + +
    Regular Expressions + +

    mod_rewrite uses the Perl Compatible +Regular Expression vocabulary. In this document, we do not attempt +to provide a detailed reference to regular expressions. For that, we +recommend the PCRE man pages, the +Perl regular +expression man page, and Mastering +Regular Expressions, by Jeffrey Friedl.

    + +

    In this document, we attempt to provide enough of a regex vocabulary +to get you started, without being overwhelming, in the hope that +RewriteRules will be scientific +formulae, rather than magical incantations.

    + +
    Regex vocabulary + +

    The following are the minimal building blocks you will need, in order +to write regular expressions and RewriteRules. They certainly do not +represent a complete regular expression vocabulary, but they are a good +place to start, and should help you read basic regular expressions, as +well as write your own.

    + + + + + + + + + + + + + + + + + + +
    CharacterMeaningExample
    .Matches any single +characterc.t will match cat, +cot, cut, etc.
    +Repeats the previous match one or more +timesa+ matches a, aa, +aaa, etc
    *Repeats the previous match zero or more +times.a* matches all the same things +a+ matches, but will also match an empty string.
    ?Makes the match optional. +colou?r will match color and colour.
    ^Called an anchor, matches the beginning +of the string^a matches a string that begins with +a
    $The other anchor, this matches the end of +the string.a$ matches a string that ends with +a.
    ( )Groups several characters into a single +unit, and captures a match for use in a backreference.(ab)+ +matches ababab - that is, the + applies to the group. +For more on backreferences see below.
    [ ]A character class - matches one of the +charactersc[uoa]t matches cut, +cot or cat.
    [^ ]Negative character class - matches any character not specifiedc[^/]t matches cat or c=t but not c/t
    + +

    In mod_rewrite the ! character can be +used before a regular expression to negate it. This is, a string will +be considered to have matched only if it does not match the rest of +the expression.

    + +
    + +
    Regex Back-Reference Availability + +

    One important thing here has to be remembered: Whenever you + use parentheses in Pattern or in one of the + CondPattern, back-references are internally created + which can be used with the strings $N and + %N (see below). These are available for creating + the strings Substitution and TestString as + outlined in the following chapters. Figure 1 shows to which + locations the back-references are transferred for expansion as + well as illustrating the flow of the RewriteRule, RewriteCond + matching. In the next chapters, we will be exploring how to use + these back-references, so do not fret if it seems a bit alien + to you at first. +

    + +

    + Flow of RewriteRule and RewriteCond matching
    + Figure 1: The back-reference flow through a rule.
    + In this example, a request for /test/1234 would be transformed into /admin.foo?page=test&id=1234&host=admin.example.com. +

    + +
    +
    + +
    RewriteRule Basics +

    A RewriteRule consists +of three arguments separated by spaces. The arguments are

    +
      +
    1. Pattern: which incoming URLs should be affected by the rule;
    2. +
    3. Substitution: where should the matching requests be sent;
    4. +
    5. [flags]: options affecting the rewritten request.
    6. +
    + +

    The Pattern is a regular expression. +It is initially (for the first rewrite rule or until a substitution occurs) +matched against the URL-path of the incoming request (the part after the +hostname but before any question mark indicating the beginning of a query +string) or, in per-directory context, against the request's path relative +to the directory for which the rule is defined. Once a substitution has +occurred, the rules that follow are matched against the substituted +value. +

    + +

    + Syntax of the RewriteRule directive
    + Figure 2: Syntax of the RewriteRule directive. +

    + + +

    The Substitution can itself be one of three things:

    + +
    +
    1. A full filesystem path to a resource
    +
    + +RewriteRule "^/games" "/usr/local/games/web/puzzles.html" + +

    This maps a request to an arbitrary location on your filesystem, much +like the Alias directive.

    +
    + +
    2. A web-path to a resource
    +
    + +RewriteRule "^/games$" "/puzzles.html" + +

    If DocumentRoot is set +to /usr/local/apache2/htdocs, then this directive would +map requests for http://example.com/games to the +path /usr/local/apache2/htdocs/puzzles.html.

    + +
    + +
    3. An absolute URL
    +
    + +RewriteRule ^/product/view$ http://site2.example.com/seeproduct.html [R] + +

    This tells the client to make a new request for the specified URL.

    +
    +
    + +Note that 1 and 2 have exactly the same syntax. The difference between them is that in the case of 1, the top level of the target path (i.e., /usr/) exists on the filesystem, where as in the case of 2, it does not. (i.e., there's no /bar/ as a root-level directory in the filesystem.) + +

    The Substitution can also +contain back-references to parts of the incoming URL-path +matched by the Pattern. Consider the following:

    + +RewriteRule ^/product/(.*)/view$ /var/web/productdb/$1 + +

    The variable $1 will be replaced with whatever text +was matched by the expression inside the parenthesis in +the Pattern. For example, a request +for http://example.com/product/r14df/view will be mapped +to the path /var/web/productdb/r14df.

    + +

    If there is more than one expression in parenthesis, they are +available in order in the +variables $1, $2, $3, and so +on.

    + + +
    + +
    Rewrite Flags +

    The behavior of a RewriteRule can be modified by the +application of one or more flags to the end of the rule. For example, the +matching behavior of a rule can be made case-insensitive by the +application of the [NC] flag: +

    + +RewriteRule ^puppy.html smalldog.html [NC] + + +

    For more details on the available flags, their meanings, and +examples, see the Rewrite Flags document.

    + +
    + + +
    Rewrite Conditions +

    One or more RewriteCond +directives can be used to restrict the types of requests that will be +subject to the +following RewriteRule. The +first argument is a variable describing a characteristic of the +request, the second argument is a regular +expression that must match the variable, and a third optional +argument is a list of flags that modify how the match is evaluated.

    + +

    + Syntax of the RewriteCond directive
    + Figure 3: Syntax of the RewriteCond directive +

    + +

    For example, to send all requests from a particular IP range to a +different server, you could use:

    + +RewriteCond %{REMOTE_ADDR} ^10\.2\.
    +RewriteRule (.*) http://intranet.example.com$1 +
    + +

    When more than +one RewriteCond is +specified, they must all match for +the RewriteRule to be +applied. For example, to deny requests that contain the word "hack" in +their query string, unless they also contain a cookie containing +the word "go", you could use:

    + +RewriteCond %{QUERY_STRING} hack
    +RewriteCond %{HTTP_COOKIE} !go
    +RewriteRule .* - [F] +
    +

    Notice that the exclamation mark specifies a negative match, so the rule is only applied if the cookie does not contain "go".

    + +

    Matches in the regular expressions contained in +the RewriteConds can be +used as part of the Substitution in +the RewriteRule using the +variables %1, %2, etc. For example, this +will direct the request to a different directory depending on the +hostname used to access the site:

    + +RewriteCond %{HTTP_HOST} (.*)
    +RewriteRule ^/(.*) /sites/%1/$1 +
    +

    If the request was for http://example.com/foo/bar, +then %1 would contain example.com +and $1 would contain foo/bar.

    + + + +
    + +
    Rewrite maps + +

    The RewriteMap directive +provides a way to call an external function, so to speak, to do your +rewriting for you. This is discussed in greater detail in the RewriteMap supplementary documentation.

    +
    + +
    .htaccess files + +

    Rewriting is typically configured in the main server configuration +setting (outside any Directory section) or +inside VirtualHost +containers. This is the easiest way to do rewriting and is +recommended. It is possible, however, to do rewriting +inside Directory +sections or .htaccess +files at the expense of some additional complexity. This technique +is called per-directory rewrites.

    + +

    The main difference with per-server rewrites is that the path +prefix of the directory containing the .htaccess file is +stripped before matching in +the RewriteRule. In addition, the RewriteBase should be used to assure the request is properly mapped.

    + +
    + +
    + + diff --git a/docs/manual/rewrite/intro.xml.fr b/docs/manual/rewrite/intro.xml.fr new file mode 100644 index 00000000000..49c6389d4c0 --- /dev/null +++ b/docs/manual/rewrite/intro.xml.fr @@ -0,0 +1,392 @@ + + + + + + + + + + +Rewrite + + Introduction au module Apache mod_rewrite + + +

    Ce document est un complément à la documentation de référence du module +mod_rewrite. Il décrit les concepts de base dont la +connaissance est nécessaire pour l'utilisation de +mod_rewrite. D'autres documents entrent d'avantage dans +les détails, mais celui-ci devrait aider le débutant à se mouiller les +pieds. +

    +
    + +Documentation du +module mod_rewrite + +Redirection and remise en +correspondance +Contrôle d'accès +Serveurs virtuels +Mise en cache +Utilisation de RewriteMap +Techniques avancées +Quand ne pas utiliser mod_rewrite + +
    Introduction +

    Le module Apache mod_rewrite est un module puissant +et sophistiqué qui permet la réécriture des URLs. Grâce à lui, vous +pouvez effectuer quasiment tous les types de réécriture d'URLs dont vous +avez besoin. Il est cependant assez complexe, et peut paraître +intimidant au débutant. Certains ont aussi tendance à traiter les +règles de réécriture comme des incantations magiques, et à les utiliser +sans vraiment comprendre leur manière d'agir.

    + +

    Ce document a pour ambition d'être suffisamment explicite pour +permettre la compréhension, et non la copie en aveugle, de ce qui suit. +

    + +

    Gardez à l'esprit que de nombreuses tâches de manipulation d'URLs +courantes n'ont pas besoin de la puissance et de la complexité de +mod_rewrite. Pour les tâches simples, voir +mod_alias et la documentation sur la Mise en correspondance des URLs avec le +système de fichiers.

    + +

    Enfin, avant de procéder, assurez-vous d'avoir configuré le niveau de +journalisation de mod_rewrite à un des niveaux de trace +via la directive LogLevel. Bien que +ceci risque de vous submerger sous une énorme quantité d'informations, +le débogage des problèmes avec la configuration de +mod_rewrite est à ce prix car vous verrez alors +exactement comment chaque règle est traitée.

    + +
    + +
    Expressions rationnelles + +

    mod_rewrite utilise le vocabulaire des Expressions rationnelles compatibles Perl. +Ce document n'a pas pour prétention d'être une référence détaillée des +expressions rationnelles. A cet effet, nous recommandons les pages de manuel de PCRE, la page de manuel des +expressions rationnelles Perl, et l'ouvrage Mastering +Regular Expressions, by Jeffrey Friedl.

    + +

    Dans ce document, nous avons pour but de vous fournir suffisamment de +vocabulaire des expressions rationnelles pour vous mettre le pied à +l'étrier, sans être dépassé, en espérant que les directives RewriteRule vous apparaîtront comme des +formules scientifiques, plutôt que comme des incantations magiques.

    + +
    Vocabulaire des expressions rationnelles + +

    Vous trouverez dans ce qui suit le minimum à connaître pour être en +mesure d'écrire des expressions rationnelles et des règles RewriteRule. Ceci ne représente +certainement pas un vocabulaire des expressions rationnelles complet, +mais constitue un bon point de départ, et devrait vous aider à +déchiffrer les expressions rationnelles simples, et à écrire vos propres +expressions.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    MotifSignificationExemple
    .Correspond à tout caractère unique +c.t correspondra à cat, +cot, cut, etc.
    +Répète le caractère de correspondance +précédent une ou plusieurs foisa+ correspond à a, aa, +aaa, etc.
    *Répète le caractère de correspondance +précédent zéro ou plusieurs foisa* correspond à tout ce à quoi correspond +a+, mais correspond aussi à la chaîne vide.
    ?Rend la correspondance optionnelle. +colou?r correspondra à color et colour.
    ^Appelé ancrage, correspond au début de la +chaîne^a correspond à une chaîne qui commence par +a
    $L'autre ancrage, correspond à la fin de +la chaîne.a$ correspond à une chaîne qui se termine par +a.
    ( )Regroupe plusieurs caractères en une +seule entité, et conserve une correspondance à des fins d'utilisation +dans une référence arrière.(ab)+ +correspond à ababab - à savoir, le + +s'applique au groupe. +Pour plus de détails sur les références arrières, voir ci-dessous.
    [ ]Une classe de caractères - correspond à +un des caractères de la classec[uoa]t correspond à cut, +cot ou cat.
    [^ ]Négation de la classe de caractères - +correspond à tout caractère ne faisant pas partie de la classec[^/]t correspond à cat ou +c=t mais pas à c/t
    + +

    Avec mod_rewrite, le caractère ! peut +préfixer une expression rationnelle afin d'en exprimer la négation. +Autrement dit, une chaîne ne correspondra que si elle ne correspond pas +à l'expression située après le !.

    + +
    + +
    Disponibilité des références +arrières dans les expressions rationnelles + +

    Vous devez vous souvenir d'une chose importante : chaque fois + que vous utilisez des parenthèses dans un Modèle ou dans + un des modèles de conditions, des références arrières + sont créées en interne et peuvent être rappelées via les chaînes + $N et %N (voir ci-dessous). Ces + références sont disponibles lors de la création des chaînes de + Substitution et des Chaînes de test comme indiqué dans les chapitres suivants. + La figure 1 + montre à quels endroits les références arrières sont suceptibles + d'être développées, et illustre le flux des comparaisons + effectuées par les règles RewriteRule et + RewriteCond. Nous verrons comment utiliser ces références arrières + dans les chapitres suivant, donc ne vous effrayez pas si cela vous + paraît un peu compliqué au premier abord.

    + +

    + Flux des comparaisons effectuées par les règles RewriteRule
+      et RewriteCond
    + Figure 1 : Le cheminement d'une référence arrière à + travers une règle.
    + Dans cet exemple, une requête pour /test/1234 sera + traduite en + /admin.foo?page=test&id=1234&host=admin.example.com. +

    + +
    +
    + +
    Les bases des règles de réécriture +

    Une règle de réécriture RewriteRule est constituée de trois +arguments séparés par des espaces. Les arguments sont :

    +
      +
    1. Modèle: le modèle des URLs auxquelles la règle doit +s'appliquer;
    2. +
    3. Substitution: vers quoi la requête correspondante doit être +transformée;
    4. +
    5. [drapeaux]: options affectant la requête réécrite.
    6. +
    + +

    Le Modèle est une expression +rationnelle. Pour la première règle de réécriture ou jusqu'à ce +qu'une substitution intervienne, elle est tout d'abord comparée +au chemin de l'URL de la requête entrante (la +partie située après le nom d'hôte mais avant tout point d'interrogation +qui indique le début d'une chaîne de requête), ou +dans un contexte de répertoire, au chemin de la requête relatif au +répertoire pour lequel la règle a été définie. Lorsqu'une substitution a +été effectuée, les règles suivantes s'appliquent à la valeur de +substitution.

    + +

    + Syntaxe de la directive RewriteRule
    + Figure 2 : Syntaxe de la directive RewriteRule. +

    + +

    La chaîne de Substitution peut, quant à elle, être de +trois types :

    + +
    +
    Un chemin complet du système de fichiers vers une ressource
    +
    + +RewriteRule ^/jeux.* /usr/local/jeux/web + +

    Ceci peut faire correspondre une requête à toute localisation voulue de +votre système de fichiers, un peu comme la directive Alias.

    +
    + +
    Un chemin web vers une ressource
    +
    + +RewriteRule ^/foo$ /bar + +

    Si la directive DocumentRoot a +pour valeur /usr/local/apache2/htdocs, cette règle va faire +correspondre les requêtes pour http://example.com/foo au +chemin /usr/local/apache2/htdocs/bar.

    +
    + +
    Une URL absolue
    +
    + +RewriteRule ^/produits/vues$ http://site2.example.com/voirproduits.html [R] + +

    Ceci informe le client qu'il doit effectuer une nouvelle requête vers +l'URL spécifiée.

    +
    +
    + +

    La chaîne de Substitution peut aussi contenir des +références arrières vers des parties du chemin d'URL entrant +correspondant au Modèle. Considérons ce qui suit :

    + +RewriteRule ^/produits/(.*)/view$ /var/web/produitsdb/$1 + +

    La variable $1 sera remplacée par tout texte +correspondant à l'expression située entre les parenthèses dans le +Modèle. Par exemple, une requête pour +http://example.com/produits/r14df/vue correspondra au +chemin /var/web/produitsdb/r14df.

    + +

    S'il y a plus d'une expression entre parenthèses, elle seront +accessibles selon leur ordre d'apparition via les variables +$1, $2, $3, etc...

    + + +
    + +
    Drapeaux de réécriture +

    Le comportement d'une règle RewriteRule peut être modifié par la +présence d'un ou plusieurs drapeaux en fin de règle. Par exemple, les +conditions de correspondance d'une règle peuvent être rendues +insensibles à la casse par la présence du drapeau [NC] : +

    + +RewriteRule ^puppy.html petitchien.html [NC] + + +

    Pour une liste des drapeaux disponibles, leurs significations, et des +exemples, voir le document Drapeaux de +réécriture.

    + +
    + + +
    Conditions de réécriture +

    Il est possible d'utiliser une ou plusieurs directives RewriteCond pour restreindre les types +de requêtes auxquelles devra s'appliquer la règle RewriteRule suivante. Le premier +argument est une variable décrivant une caractéristique de la requête, +le second argument est une expression rationnelle +qui doit correspondre à la variable, et un troisième argument optionnel +est une liste de drapeaux qui modifient la manière dont la +correspondance est évaluée.

    + +

    + Syntaxe de la directive RewriteCond
    + Figure 3 : Syntaxe de la directive RewriteCond +

    + + +

    Par exemple, pour renvoyer toutes les requêtes en provenance d'une +certaine tranche d'adresses IP vers un autre serveur, vous pouvez +utiliser :

    + +RewriteCond %{REMOTE_ADDR} ^10\.2\.
    +RewriteRule (.*) http://intranet.example.com$1 +
    + +

    Si vous spécifiez plus d'une directive RewriteCond, ces directives +doivent toutes être satisfaites pour que la règle RewriteRule suivante s'applique. Par exemple, +pour interdire les requêtes qui contiennent le mot "hack" dans la chaîne +de requête, sauf si elles contiennent aussi un cookie contenant le mot +"go", vous pouvez utiliser :

    + +RewriteCond %{QUERY_STRING} hack
    +RewriteCond %{HTTP_COOKIE} !go
    +RewriteRule .* - [F] +
    +

    Notez que le point d'exclamation indique une correspondance négative +; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"

    + +

    Les correspondances dans les expressions rationnelles contenues dans +les directives RewriteCond +peuvent constituer des parties de la chaîne de Substitution +de la règle RewriteRule via +les variables %1, %2, etc... Par +exemple, ce qui suit va diriger la requête vers un répertoire différent +en fonction du nom d'hôte utilisé pour accéder au site :

    + +RewriteCond %{HTTP_HOST} (.*)
    +RewriteRule ^/(.*) /sites/%1/$1 +
    +

    Si la requête concernait http://example.com/foo/bar, +alors %1 contiendrait example.com et +$1 contiendrait foo/bar.

    + + + +
    + +
    Tables de réécriture + +

    La directive RewriteMap +permet en quelque sorte de faire appel à une fonction externe pour +effectuer la réécriture à votre place. Tout ceci est décrit plus en +détails dans la Documentation +supplémentaire sur RewriteMap.

    +
    + +
    Fichiers .htaccess + +

    La réécriture est en général définie au niveau de la configuration du +serveur principal (en dehors de toute section Directory) ou dans une section VirtualHost. Il s'agit là de la +manière la plus simple de mettre en oeuvre la réécriture et nous la +recommandons. Il est possible, cependant, de mettre en oeuvre la +réécriture au sein d'une section Directory ou d'un fichier .htaccess ; ce type de +configuration est cependant plus complexe. Cette technique est appelée +réécriture par répertoire.

    + +

    La principale différence avec les réécritures au niveau du serveur réside +dans le fait que le préfixe du chemin du répertoire contenant le fichier +.htaccess est supprimé avant la mise en correspondance dans +la règle RewriteRule. De +plus, on doit utiliser la directive RewriteBase pour s'assurer que la +requête est correctement mise en correspondance.

    + +
    + +
    + diff --git a/docs/manual/rewrite/intro.xml.meta b/docs/manual/rewrite/intro.xml.meta new file mode 100644 index 00000000000..ce245b2841c --- /dev/null +++ b/docs/manual/rewrite/intro.xml.meta @@ -0,0 +1,13 @@ + + + + + intro + /rewrite/ + .. + + + en + fr + + diff --git a/docs/manual/rewrite/proxy.html b/docs/manual/rewrite/proxy.html new file mode 100644 index 00000000000..94eceb093eb --- /dev/null +++ b/docs/manual/rewrite/proxy.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: proxy.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/proxy.html.en b/docs/manual/rewrite/proxy.html.en new file mode 100644 index 00000000000..e47ab3f4b2f --- /dev/null +++ b/docs/manual/rewrite/proxy.html.en @@ -0,0 +1,121 @@ + + + + + +Using mod_rewrite for Proxying - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Using mod_rewrite for Proxying

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how to use the RewriteRule's [P] flag to proxy content to another server. +A number of recipes are provided that describe common scenarios.

    + +
    + +
    top
    +
    +

    Proxying Content with mod_rewrite

    + + + +
    +
    Description:
    + +
    +

    + mod_rewrite provides the [P] flag, which allows URLs to be passed, + via mod_proxy, to another server. Two examples are given here. In + one example, a URL is passed directly to another server, and served + as though it were a local URL. In the other example, we proxy + missing content to a back-end server.

    +
    + +
    Solution:
    + +
    +

    To simply map a URL to another server, we use the [P] flag, as + follows:

    + +

    +RewriteEngine on
    +RewriteBase /products/
    +RewriteRule ^widget/(.*)$ http://product.example.com/widget/$1 [P]
    +ProxyPassReverse /products/widget/ http://product.example.com/widget/ +

    + +

    In the second example, we proxy the request only if we can't find + the resource locally. This can be very useful when you're migrating + from one server to another, and you're not sure if all the content + has been migrated yet.

    + +

    +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +RewriteRule ^/(.*) http://old.example.com/$1 [P]
    +ProxyPassReverse / http://old.example.com/ +

    +
    + +
    Discussion:
    + +

    In each case, we add a ProxyPassReverse directive to ensure + that any redirects issued by the backend are correctly passed on to + the client.

    + +

    Consider using either ProxyPass or ProxyPassMatch whenever possible in + preference to mod_rewrite.

    +
    +
    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/proxy.xml b/docs/manual/rewrite/proxy.xml new file mode 100644 index 00000000000..113fed4fa1e --- /dev/null +++ b/docs/manual/rewrite/proxy.xml @@ -0,0 +1,104 @@ + + + + + + + + + Rewrite + +Using mod_rewrite for Proxying + + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how to use the RewriteRule's [P] flag to proxy content to another server. +A number of recipes are provided that describe common scenarios.

    + +
    +Module documentation +mod_rewrite introduction +Redirection and remapping +Controlling access +Virtual hosts + +Using RewriteMap +Advanced techniques and tricks +When not to use mod_rewrite + +
    + + Proxying Content with mod_rewrite + +
    +
    Description:
    + +
    +

    + mod_rewrite provides the [P] flag, which allows URLs to be passed, + via mod_proxy, to another server. Two examples are given here. In + one example, a URL is passed directly to another server, and served + as though it were a local URL. In the other example, we proxy + missing content to a back-end server.

    +
    + +
    Solution:
    + +
    +

    To simply map a URL to another server, we use the [P] flag, as + follows:

    + + +RewriteEngine on
    +RewriteBase /products/
    +RewriteRule ^widget/(.*)$ http://product.example.com/widget/$1 [P]
    +ProxyPassReverse /products/widget/ http://product.example.com/widget/ +
    + +

    In the second example, we proxy the request only if we can't find + the resource locally. This can be very useful when you're migrating + from one server to another, and you're not sure if all the content + has been migrated yet.

    + + +RewriteCond %{REQUEST_FILENAME} !-f
    +RewriteCond %{REQUEST_FILENAME} !-d
    +RewriteRule ^/(.*) http://old.example.com/$1 [P]
    +ProxyPassReverse / http://old.example.com/ +
    +
    + +
    Discussion:
    + +

    In each case, we add a ProxyPassReverse directive to ensure + that any redirects issued by the backend are correctly passed on to + the client.

    + +

    Consider using either ProxyPass or ProxyPassMatch whenever possible in + preference to mod_rewrite.

    +
    +
    + +
    + +
    diff --git a/docs/manual/rewrite/proxy.xml.meta b/docs/manual/rewrite/proxy.xml.meta new file mode 100644 index 00000000000..554a80c0966 --- /dev/null +++ b/docs/manual/rewrite/proxy.xml.meta @@ -0,0 +1,12 @@ + + + + + proxy + /rewrite/ + .. + + + en + + diff --git a/docs/manual/rewrite/remapping.html b/docs/manual/rewrite/remapping.html new file mode 100644 index 00000000000..5f04461b09a --- /dev/null +++ b/docs/manual/rewrite/remapping.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: remapping.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/remapping.html.en b/docs/manual/rewrite/remapping.html.en new file mode 100644 index 00000000000..4d39662d44b --- /dev/null +++ b/docs/manual/rewrite/remapping.html.en @@ -0,0 +1,653 @@ + + + + + +Redirecting and Remapping with mod_rewrite - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Redirecting and Remapping with mod_rewrite

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how you can use mod_rewrite to redirect and remap +request. This includes many examples of common uses of mod_rewrite, +including detailed descriptions of how each works.

    + +
    Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration.
    + +
    + +
    top
    +
    +

    From Old to New (internal)

    + + + +
    +
    Description:
    + +
    +

    Assume we have recently renamed the page + foo.html to bar.html and now want + to provide the old URL for backward compatibility. However, + we want that users of the old URL even not recognize that + the pages was renamed - that is, we don't want the address to + change in their browser.

    +
    + +
    Solution:
    + +
    +

    We rewrite the old URL to the new one internally via the + following rule:

    + +

    +RewriteEngine on
    +RewriteRule ^/foo\.html$ /bar.html [PT] +

    +
    +
    + +
    top
    +
    +

    Rewriting From Old to New (external)

    + + + +
    +
    Description:
    + +
    +

    Assume again that we have recently renamed the page + foo.html to bar.html and now want + to provide the old URL for backward compatibility. But this + time we want that the users of the old URL get hinted to + the new one, i.e. their browsers Location field should + change, too.

    +
    + +
    Solution:
    + +
    +

    We force a HTTP redirect to the new URL which leads to a + change of the browsers and thus the users view:

    + +

    +RewriteEngine on
    +RewriteRule ^/foo\.html$ bar.html [R] +

    +
    + +
    Discussion
    + +
    +

    In this example, as contrasted to the internal example above, we can simply + use the Redirect directive. mod_rewrite was used in that earlier + example in order to hide the redirect from the client:

    + +

    + Redirect /foo.html /bar.html +

    + +
    +
    + +
    top
    +
    +

    Resource Moved to Another Server

    + + + +
    +
    Description:
    + +
    +

    If a resource has moved to another server, you may wish to have + URLs continue to work for a time on the old server while people + update their bookmarks.

    +
    + +
    Solution:
    + +
    +

    You can use mod_rewrite to redirect these URLs + to the new server, but you might also consider using the Redirect + or RedirectMatch directive.

    + +

    With mod_rewrite

    +RewriteEngine on
    +RewriteRule ^/docs/(.+) http://new.example.com/docs/$1 [R,L] +

    + +

    With RedirectMatch

    +RedirectMatch ^/docs/(.*) http://new.example.com/docs/$1 +

    + +

    With Redirect

    +Redirect /docs/ http://new.example.com/docs/ +

    +
    +
    + +
    top
    +
    +

    From Static to Dynamic

    + + + +
    +
    Description:
    + +
    +

    How can we transform a static page + foo.html into a dynamic variant + foo.cgi in a seamless way, i.e. without notice + by the browser/user.

    +
    + +
    Solution:
    + +
    +

    We just rewrite the URL to the CGI-script and force the + handler to be cgi-script so that it is + executed as a CGI program. + This way a request to /~quux/foo.html + internally leads to the invocation of + /~quux/foo.cgi.

    + +

    +RewriteEngine on
    +RewriteBase /~quux/
    +RewriteRule ^foo\.html$ foo.cgi [H=cgi-script] +

    +
    +
    + +
    top
    +
    +

    Backward Compatibility for file extension change

    + + + +
    +
    Description:
    + +
    +

    How can we make URLs backward compatible (still + existing virtually) after migrating document.YYYY + to document.XXXX, e.g. after translating a + bunch of .html files to .php?

    +
    + +
    Solution:
    + +
    +

    We rewrite the name to its basename and test for + existence of the new extension. If it exists, we take + that name, else we rewrite the URL to its original state.

    + +

    +# backward compatibility ruleset for
    +# rewriting document.html to document.php
    +# when and only when document.php exists
    +<Directory /var/www/htdocs>
    + +RewriteEngine on
    +RewriteBase /var/www/htdocs
    +
    +RewriteCond $1.php -f
    +RewriteCond $1.html !-f
    +RewriteRule ^(.*).html$ $1.php
    +
    +</Directory> +

    +
    + +
    Discussion
    +
    +

    This example uses an often-overlooked feature of mod_rewrite, + by taking advantage of the order of execution of the ruleset. In + particular, mod_rewrite evaluates the left-hand-side of the + RewriteRule before it evaluates the RewriteCond directives. + Consequently, $1 is already defined by the time the RewriteCond + directives are evaluated. This allows us to test for the existence + of the original (document.html) and target + (document.php) files using the same base filename.

    + +

    This ruleset is designed to use in a per-directory context (In a + <Directory> block or in a .htaccess file), so that the + -f checks are looking at the correct directory path. + You may need to set a RewriteBase directive to specify the + directory base that you're working in.

    +
    +
    + +
    top
    +
    +

    Canonical Hostnames

    + + + +
    +
    Description:
    + +
    The goal of this rule is to force the use of a particular + hostname, in preference to other hostnames which may be used to + reach the same site. For example, if you wish to force the use + of www.example.com instead of + example.com, you might use a variant of the + following recipe.
    + +
    Solution:
    + +
    + +

    The very best way to solve this doesn't involve mod_rewrite at all, +but rather uses the Redirect +directive placed in a virtual host for the non-canonical +hostname(s).

    + +

    +<VirtualHost *:80>
    + + ServerName undesired.example.com
    + ServerAlias example.com notthis.example.com
    +
    + Redirect / http://www.example.com/
    +
    +</VirtualHost>
    +
    +<VirtualHost *:80>
    + + ServerName www.example.com
    +
    +</VirtualHost> +

    + +

    If, for whatever reason, you still want to use mod_rewrite +- if, for example, you need this to work with a larger set of RewriteRules - +you might use one of the recipes below.

    + +

    For sites running on a port other than 80:

    +

    +RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    +RewriteCond %{HTTP_HOST} !^$
    +RewriteCond %{SERVER_PORT} !^80$
    +RewriteRule ^/?(.*) http://www.example.com:%{SERVER_PORT}/$1 [L,R,NE] +

    + +

    And for a site running on port 80

    +

    +RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    +RewriteCond %{HTTP_HOST} !^$
    +RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE] +

    + +

    + If you wanted to do this generically for all domain names - that + is, if you want to redirect example.com to + www.example.com for all possible values of + example.com, you could use the following + recipe:

    + +

    +RewriteCond %{HTTP_HOST} !^www\. [NC]
    +RewriteCond %{HTTP_HOST} !^$
    +RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE] +

    + +

    These rulesets will work either in your main server configuration + file, or in a .htaccess file placed in the DocumentRoot of the server.

    +
    +
    + +
    top
    +
    +

    Search for pages in more than one directory

    + + + +
    +
    Description:
    + +
    +

    A particular resource might exist in one of several places, and + we want to look in those places for the resource when it is + requested. Perhaps we've recently rearranged our directory + structure, dividing content into several locations.

    +
    + +
    Solution:
    + +
    +

    The following ruleset searches in two directories to find the + resource, and, if not finding it in either place, will attempt to + just serve it out of the location requested.

    + +

    +RewriteEngine on
    +
    +# first try to find it in dir1/...
    +# ...and if found stop and be happy:
    +RewriteCond %{DOCUMENT_ROOT}/dir1/%{REQUEST_URI} -f
    +RewriteRule ^(.+) %{DOCUMENT_ROOT}/dir1/$1 [L]
    +
    +# second try to find it in dir2/...
    +# ...and if found stop and be happy:
    +RewriteCond %{DOCUMENT_ROOT}/dir2/%{REQUEST_URI} -f
    +RewriteRule ^(.+) %{DOCUMENT_ROOT}/dir2/$1 [L]
    +
    +# else go on for other Alias or ScriptAlias directives,
    +# etc.
    +RewriteRule ^ - [PT] +

    +
    +
    + +
    top
    +
    +

    Redirecting to Geographically Distributed Servers

    + + + +
    +
    Description:
    + +
    +

    We have numerous mirrors of our website, and want to redirect + people to the one that is located in the country where they are + located.

    +
    + +
    Solution:
    + +
    +

    Looking at the hostname of the requesting client, we determine + which country they are coming from. If we can't do a lookup on their + IP address, we fall back to a default server.

    +

    We'll use a RewriteMap + directive to build a list of servers that we wish to use.

    + +

    +HostnameLookups on
    +RewriteEngine on
    +RewriteMap multiplex txt:/path/to/map.mirrors
    +RewriteCond %{REMOTE_HOST} ([a-z]+)$ [NC]
    +RewriteRule ^/(.*)$ ${multiplex:%1|http://www.example.com/}$1 [R,L] +

    + +

    +## map.mirrors -- Multiplexing Map
    +
    +de http://www.example.de/
    +uk http://www.example.uk/
    +com http://www.example.com/
    +##EOF## +

    +
    + +
    Discussion
    +
    +
    This ruleset relies on + HostNameLookups + being set on, which can be + a significant performance hit.
    + +

    The RewriteCond + directive captures the last portion of the hostname of the + requesting client - the country code - and the following RewriteRule + uses that value to look up the appropriate mirror host in the map + file.

    +
    +
    + +
    top
    +
    +

    Browser Dependent Content

    + + + +
    +
    Description:
    + +
    +

    We wish to provide different content based on the browser, or + user-agent, which is requesting the content.

    +
    + + + +
    Solution:
    + +
    +

    We have to decide, based on the HTTP header "User-Agent", + which content to serve. The following config + does the following: If the HTTP header "User-Agent" + contains "Mozilla/3", the page foo.html + is rewritten to foo.NS.html and the + rewriting stops. If the browser is "Lynx" or "Mozilla" of + version 1 or 2, the URL becomes foo.20.html. + All other browsers receive page foo.32.html. + This is done with the following ruleset:

    + +

    +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/3.*
    +RewriteRule ^foo\.html$ foo.NS.html [L]
    +
    +RewriteCond %{HTTP_USER_AGENT} ^Lynx/ [OR]
    +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[12]
    +RewriteRule ^foo\.html$ foo.20.html [L]
    +
    +RewriteRule ^foo\.html$ foo.32.html [L] +

    +
    +
    + +
    top
    +
    +

    Canonical URLs

    + + + +
    +
    Description:
    + +
    +

    On some webservers there is more than one URL for a + resource. Usually there are canonical URLs (which are be + actually used and distributed) and those which are just + shortcuts, internal ones, and so on. Independent of which URL the + user supplied with the request, they should finally see the + canonical one in their browser address bar.

    +
    + +
    Solution:
    + +
    +

    We do an external HTTP redirect for all non-canonical + URLs to fix them in the location view of the Browser and + for all subsequent requests. In the example ruleset below + we replace /puppies and /canines + by the canonical /dogs.

    + +

    +RewriteRule ^/(puppies|canines)/(.*) /dogs/$2 [R] +

    +
    + +
    Discussion:
    +
    + This should really be accomplished with Redirect or RedirectMatch + directives: + +

    + RedirectMatch ^/(puppies|canines)/(.*) /dogs/$2 +

    +
    +
    + +
    top
    +
    +

    Moved DocumentRoot

    + + + +
    +
    Description:
    + +
    +

    Usually the DocumentRoot +of the webserver directly relates to the URL "/". +But often this data is not really of top-level priority. For example, +you may wish for visitors, on first entering a site, to go to a +particular subdirectory /about/. This may be accomplished +using the following ruleset:

    +
    + +
    Solution:
    + +
    +

    We redirect the URL / to + /about/: +

    + +

    +RewriteEngine on
    +RewriteRule ^/$ /about/ [R] +

    + +

    Note that this can also be handled using the RedirectMatch directive:

    + +

    +RedirectMatch ^/$ http://example.com/about/ +

    + +

    Note also that the example rewrites only the root URL. That is, it +rewrites a request for http://example.com/, but not a +request for http://example.com/page.html. If you have in +fact changed your document root - that is, if all of +your content is in fact in that subdirectory, it is greatly preferable +to simply change your DocumentRoot +directive, or move all of the content up one directory, +rather than rewriting URLs.

    +
    +
    + +
    top
    +
    +

    Fallback Resource

    + + +
    +
    Description:
    +
    You want a single resource (say, a certain file, like index.php) to +handle all requests that come to a particular directory, except those +that should go to an existing resource such as an image, or a css file.
    + +
    Solution:
    +
    +

    As of version 2.2.16, you should use the FallbackResource directive for this:

    + +

    +<Directory /var/www/my_blog>
    + + FallbackResource index.php
    +
    +</Directory> +

    + +

    However, in earlier versions of Apache, or if your needs are more +complicated than this, you can use a variation of the following rewrite +set to accomplish the same thing:

    + +

    +<Directory /var/www/my_blog>
    + + RewriteBase /my_blog
    +
    + RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
    + RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d
    + RewriteRule ^ index.php [PT]
    +
    +</Directory> +

    + +

    If, on the other hand, you wish to pass the requested URI as a query +string argument to index.php, you can replace that RewriteRule with:

    + +

    + RewriteRule (.*) index.php?$1 [PT,QSA] +

    + +

    Note that these rulesets can be uses in a .htaccess +file, as well as in a <Directory> block.

    + +
    + +
    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/remapping.xml b/docs/manual/rewrite/remapping.xml new file mode 100644 index 00000000000..3b6af5e8d69 --- /dev/null +++ b/docs/manual/rewrite/remapping.xml @@ -0,0 +1,626 @@ + + + + + + + + + Rewrite + +Redirecting and Remapping with mod_rewrite + + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how you can use mod_rewrite to redirect and remap +request. This includes many examples of common uses of mod_rewrite, +including detailed descriptions of how each works.

    + +Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration. + +
    +Module documentation +mod_rewrite introduction + +Controlling access +Virtual hosts +Proxying +Using RewriteMap +Advanced techniques and tricks +When not to use mod_rewrite + +
    + + From Old to New (internal) + +
    +
    Description:
    + +
    +

    Assume we have recently renamed the page + foo.html to bar.html and now want + to provide the old URL for backward compatibility. However, + we want that users of the old URL even not recognize that + the pages was renamed - that is, we don't want the address to + change in their browser.

    +
    + +
    Solution:
    + +
    +

    We rewrite the old URL to the new one internally via the + following rule:

    + + +RewriteEngine on
    +RewriteRule ^/foo\.html$ /bar.html [PT] +
    +
    +
    + +
    + +
    + + Rewriting From Old to New (external) + +
    +
    Description:
    + +
    +

    Assume again that we have recently renamed the page + foo.html to bar.html and now want + to provide the old URL for backward compatibility. But this + time we want that the users of the old URL get hinted to + the new one, i.e. their browsers Location field should + change, too.

    +
    + +
    Solution:
    + +
    +

    We force a HTTP redirect to the new URL which leads to a + change of the browsers and thus the users view:

    + + +RewriteEngine on
    +RewriteRule ^/foo\.html$ bar.html [R] +
    +
    + +
    Discussion
    + +
    +

    In this example, as contrasted to the internal example above, we can simply + use the Redirect directive. mod_rewrite was used in that earlier + example in order to hide the redirect from the client:

    + + + Redirect /foo.html /bar.html + + +
    +
    + +
    + +
    + + Resource Moved to Another Server + +
    +
    Description:
    + +
    +

    If a resource has moved to another server, you may wish to have + URLs continue to work for a time on the old server while people + update their bookmarks.

    +
    + +
    Solution:
    + +
    +

    You can use mod_rewrite to redirect these URLs + to the new server, but you might also consider using the Redirect + or RedirectMatch directive.

    + +With mod_rewrite +RewriteEngine on
    +RewriteRule ^/docs/(.+) http://new.example.com/docs/$1 [R,L] +
    + +With RedirectMatch +RedirectMatch ^/docs/(.*) http://new.example.com/docs/$1 + + +With Redirect +Redirect /docs/ http://new.example.com/docs/ + +
    +
    + +
    + +
    + + From Static to Dynamic + +
    +
    Description:
    + +
    +

    How can we transform a static page + foo.html into a dynamic variant + foo.cgi in a seamless way, i.e. without notice + by the browser/user.

    +
    + +
    Solution:
    + +
    +

    We just rewrite the URL to the CGI-script and force the + handler to be cgi-script so that it is + executed as a CGI program. + This way a request to /~quux/foo.html + internally leads to the invocation of + /~quux/foo.cgi.

    + + +RewriteEngine on
    +RewriteBase /~quux/
    +RewriteRule ^foo\.html$ foo.cgi [H=cgi-script] +
    +
    +
    + +
    + +
    + + Backward Compatibility for file extension change + +
    +
    Description:
    + +
    +

    How can we make URLs backward compatible (still + existing virtually) after migrating document.YYYY + to document.XXXX, e.g. after translating a + bunch of .html files to .php?

    +
    + +
    Solution:
    + +
    +

    We rewrite the name to its basename and test for + existence of the new extension. If it exists, we take + that name, else we rewrite the URL to its original state.

    + + +# backward compatibility ruleset for
    +# rewriting document.html to document.php
    +# when and only when document.php exists
    +<Directory /var/www/htdocs>
    + +RewriteEngine on
    +RewriteBase /var/www/htdocs
    +
    +RewriteCond $1.php -f
    +RewriteCond $1.html !-f
    +RewriteRule ^(.*).html$ $1.php
    +
    +</Directory> +
    +
    + +
    Discussion
    +
    +

    This example uses an often-overlooked feature of mod_rewrite, + by taking advantage of the order of execution of the ruleset. In + particular, mod_rewrite evaluates the left-hand-side of the + RewriteRule before it evaluates the RewriteCond directives. + Consequently, $1 is already defined by the time the RewriteCond + directives are evaluated. This allows us to test for the existence + of the original (document.html) and target + (document.php) files using the same base filename.

    + +

    This ruleset is designed to use in a per-directory context (In a + <Directory> block or in a .htaccess file), so that the + -f checks are looking at the correct directory path. + You may need to set a RewriteBase directive to specify the + directory base that you're working in.

    +
    +
    + +
    + +
    + +Canonical Hostnames + +
    +
    Description:
    + +
    The goal of this rule is to force the use of a particular + hostname, in preference to other hostnames which may be used to + reach the same site. For example, if you wish to force the use + of www.example.com instead of + example.com, you might use a variant of the + following recipe.
    + +
    Solution:
    + +
    + +

    The very best way to solve this doesn't involve mod_rewrite at all, +but rather uses the Redirect +directive placed in a virtual host for the non-canonical +hostname(s).

    + + +<VirtualHost *:80>
    + + ServerName undesired.example.com
    + ServerAlias example.com notthis.example.com
    +
    + Redirect / http://www.example.com/
    +
    +</VirtualHost>
    +
    +<VirtualHost *:80>
    + + ServerName www.example.com
    +
    +</VirtualHost> +
    + +

    If, for whatever reason, you still want to use mod_rewrite +- if, for example, you need this to work with a larger set of RewriteRules - +you might use one of the recipes below.

    + +

    For sites running on a port other than 80:

    + +RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    +RewriteCond %{HTTP_HOST} !^$
    +RewriteCond %{SERVER_PORT} !^80$
    +RewriteRule ^/?(.*) http://www.example.com:%{SERVER_PORT}/$1 [L,R,NE] +
    + +

    And for a site running on port 80

    + +RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
    +RewriteCond %{HTTP_HOST} !^$
    +RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE] +
    + +

    + If you wanted to do this generically for all domain names - that + is, if you want to redirect example.com to + www.example.com for all possible values of + example.com, you could use the following + recipe:

    + + +RewriteCond %{HTTP_HOST} !^www\. [NC]
    +RewriteCond %{HTTP_HOST} !^$
    +RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE] +
    + +

    These rulesets will work either in your main server configuration + file, or in a .htaccess file placed in the DocumentRoot of the server.

    +
    +
    + +
    + +
    + + Search for pages in more than one directory + +
    +
    Description:
    + +
    +

    A particular resource might exist in one of several places, and + we want to look in those places for the resource when it is + requested. Perhaps we've recently rearranged our directory + structure, dividing content into several locations.

    +
    + +
    Solution:
    + +
    +

    The following ruleset searches in two directories to find the + resource, and, if not finding it in either place, will attempt to + just serve it out of the location requested.

    + + +RewriteEngine on
    +
    +# first try to find it in dir1/...
    +# ...and if found stop and be happy:
    +RewriteCond %{DOCUMENT_ROOT}/dir1/%{REQUEST_URI} -f
    +RewriteRule ^(.+) %{DOCUMENT_ROOT}/dir1/$1 [L]
    +
    +# second try to find it in dir2/...
    +# ...and if found stop and be happy:
    +RewriteCond %{DOCUMENT_ROOT}/dir2/%{REQUEST_URI} -f
    +RewriteRule ^(.+) %{DOCUMENT_ROOT}/dir2/$1 [L]
    +
    +# else go on for other Alias or ScriptAlias directives,
    +# etc.
    +RewriteRule ^ - [PT] +
    +
    +
    + +
    + +
    + + Redirecting to Geographically Distributed Servers + +
    +
    Description:
    + +
    +

    We have numerous mirrors of our website, and want to redirect + people to the one that is located in the country where they are + located.

    +
    + +
    Solution:
    + +
    +

    Looking at the hostname of the requesting client, we determine + which country they are coming from. If we can't do a lookup on their + IP address, we fall back to a default server.

    +

    We'll use a RewriteMap + directive to build a list of servers that we wish to use.

    + + +HostnameLookups on
    +RewriteEngine on
    +RewriteMap multiplex txt:/path/to/map.mirrors
    +RewriteCond %{REMOTE_HOST} ([a-z]+)$ [NC]
    +RewriteRule ^/(.*)$ ${multiplex:%1|http://www.example.com/}$1 [R,L] +
    + + +## map.mirrors -- Multiplexing Map
    +
    +de http://www.example.de/
    +uk http://www.example.uk/
    +com http://www.example.com/
    +##EOF## +
    +
    + +
    Discussion
    +
    + This ruleset relies on + HostNameLookups + being set on, which can be + a significant performance hit. + +

    The RewriteCond + directive captures the last portion of the hostname of the + requesting client - the country code - and the following RewriteRule + uses that value to look up the appropriate mirror host in the map + file.

    +
    +
    + +
    + +
    + + Browser Dependent Content + +
    +
    Description:
    + +
    +

    We wish to provide different content based on the browser, or + user-agent, which is requesting the content.

    +
    + + + +
    Solution:
    + +
    +

    We have to decide, based on the HTTP header "User-Agent", + which content to serve. The following config + does the following: If the HTTP header "User-Agent" + contains "Mozilla/3", the page foo.html + is rewritten to foo.NS.html and the + rewriting stops. If the browser is "Lynx" or "Mozilla" of + version 1 or 2, the URL becomes foo.20.html. + All other browsers receive page foo.32.html. + This is done with the following ruleset:

    + + +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/3.*
    +RewriteRule ^foo\.html$ foo.NS.html [L]
    +
    +RewriteCond %{HTTP_USER_AGENT} ^Lynx/ [OR]
    +RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[12]
    +RewriteRule ^foo\.html$ foo.20.html [L]
    +
    +RewriteRule ^foo\.html$ foo.32.html [L] +
    +
    +
    + +
    + +
    + +Canonical URLs + +
    +
    Description:
    + +
    +

    On some webservers there is more than one URL for a + resource. Usually there are canonical URLs (which are be + actually used and distributed) and those which are just + shortcuts, internal ones, and so on. Independent of which URL the + user supplied with the request, they should finally see the + canonical one in their browser address bar.

    +
    + +
    Solution:
    + +
    +

    We do an external HTTP redirect for all non-canonical + URLs to fix them in the location view of the Browser and + for all subsequent requests. In the example ruleset below + we replace /puppies and /canines + by the canonical /dogs.

    + + +RewriteRule ^/(puppies|canines)/(.*) /dogs/$2 [R] + +
    + +
    Discussion:
    +
    + This should really be accomplished with Redirect or RedirectMatch + directives: + + + RedirectMatch ^/(puppies|canines)/(.*) /dogs/$2 + +
    +
    + +
    + +
    + + Moved <code>DocumentRoot</code> + +
    +
    Description:
    + +
    +

    Usually the DocumentRoot +of the webserver directly relates to the URL "/". +But often this data is not really of top-level priority. For example, +you may wish for visitors, on first entering a site, to go to a +particular subdirectory /about/. This may be accomplished +using the following ruleset:

    +
    + +
    Solution:
    + +
    +

    We redirect the URL / to + /about/: +

    + + +RewriteEngine on
    +RewriteRule ^/$ /about/ [R] +
    + +

    Note that this can also be handled using the RedirectMatch directive:

    + + +RedirectMatch ^/$ http://example.com/about/ + + +

    Note also that the example rewrites only the root URL. That is, it +rewrites a request for http://example.com/, but not a +request for http://example.com/page.html. If you have in +fact changed your document root - that is, if all of +your content is in fact in that subdirectory, it is greatly preferable +to simply change your DocumentRoot +directive, or move all of the content up one directory, +rather than rewriting URLs.

    +
    +
    + +
    + +
    +Fallback Resource + +
    +
    Description:
    +
    You want a single resource (say, a certain file, like index.php) to +handle all requests that come to a particular directory, except those +that should go to an existing resource such as an image, or a css file.
    + +
    Solution:
    +
    +

    As of version 2.2.16, you should use the FallbackResource directive for this:

    + + +<Directory /var/www/my_blog>
    + + FallbackResource index.php
    +
    +</Directory> +
    + +

    However, in earlier versions of Apache, or if your needs are more +complicated than this, you can use a variation of the following rewrite +set to accomplish the same thing:

    + + +<Directory /var/www/my_blog>
    + + RewriteBase /my_blog
    +
    + RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
    + RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d
    + RewriteRule ^ index.php [PT]
    +
    +</Directory> +
    + +

    If, on the other hand, you wish to pass the requested URI as a query +string argument to index.php, you can replace that RewriteRule with:

    + + + RewriteRule (.*) index.php?$1 [PT,QSA] + + +

    Note that these rulesets can be uses in a .htaccess +file, as well as in a <Directory> block.

    + +
    + +
    + +
    + +
    diff --git a/docs/manual/rewrite/remapping.xml.meta b/docs/manual/rewrite/remapping.xml.meta new file mode 100644 index 00000000000..ddeef59539b --- /dev/null +++ b/docs/manual/rewrite/remapping.xml.meta @@ -0,0 +1,12 @@ + + + + + remapping + /rewrite/ + .. + + + en + + diff --git a/docs/manual/rewrite/rewrite_guide.html b/docs/manual/rewrite/rewrite_guide.html deleted file mode 100644 index 49f623e98f9..00000000000 --- a/docs/manual/rewrite/rewrite_guide.html +++ /dev/null @@ -1,3 +0,0 @@ -URI: rewrite_guide.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/rewrite_guide.html.en b/docs/manual/rewrite/rewrite_guide.html.en deleted file mode 100644 index baca86e90d8..00000000000 --- a/docs/manual/rewrite/rewrite_guide.html.en +++ /dev/null @@ -1,789 +0,0 @@ - - - -URL Rewriting Guide - Apache HTTP Server - - - - - -
    <-
    -

    URL Rewriting Guide

    -
    -

    Available Languages:  en 

    -
    - - -

    This document supplements the mod_rewrite - reference documentation. - It describes how one can use Apache's mod_rewrite - to solve typical URL-based problems with which webmasters are - commonony confronted. We give detailed descriptions on how to - solve each problem by configuring URL rewriting rulesets.

    - -
    ATTENTION: Depending on your server configuration - it may be necessary to slightly change the examples for your - situation, e.g. adding the [PT] flag when - additionally using mod_alias and - mod_userdir, etc. Or rewriting a ruleset - to fit in .htaccess context instead - of per-server context. Always try to understand what a - particular ruleset really does before you use it. This - avoids many problems.
    - -
    - -
    top
    -
    -

    Canonical URLs

    - - - -
    -
    Description:
    - -
    -

    On some webservers there are more than one URL for a - resource. Usually there are canonical URLs (which should be - actually used and distributed) and those which are just - shortcuts, internal ones, etc. Independent of which URL the - user supplied with the request he should finally see the - canonical one only.

    -
    - -
    Solution:
    - -
    -

    We do an external HTTP redirect for all non-canonical - URLs to fix them in the location view of the Browser and - for all subsequent requests. In the example ruleset below - we replace /~user by the canonical - /u/user and fix a missing trailing slash for - /u/user.

    - -
    -RewriteRule   ^/~([^/]+)/?(.*)    /u/$1/$2  [R]
    -RewriteRule   ^/([uge])/([^/]+)$  /$1/$2/   [R]
    -
    -
    -
    - -
    top
    -
    -

    Canonical Hostnames

    - -
    -
    Description:
    - -
    The goal of this rule is to force the use of a particular - hostname, in preference to other hostnames which may be used to - reach the same site. For example, if you wish to force the use - of www.example.com instead of - example.com, you might use a variant of the - following recipe.
    - -
    Solution:
    - -
    -

    For sites running on a port other than 80:

    -
    -RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
    -RewriteCond %{HTTP_HOST}   !^$
    -RewriteCond %{SERVER_PORT} !^80$
    -RewriteRule ^/(.*)         http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]
    -
    - -

    And for a site running on port 80

    -
    -RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
    -RewriteCond %{HTTP_HOST}   !^$
    -RewriteRule ^/(.*)         http://fully.qualified.domain.name/$1 [L,R]
    -
    -
    -
    - -
    top
    -
    -

    Moved DocumentRoot

    - - - -
    -
    Description:
    - -
    -

    Usually the DocumentRoot -of the webserver directly relates to the URL "/". -But often this data is not really of top-level priority. For example, -you may wish for visitors, on first entering a site, to go to a -particular subdirectory /about/. This may be accomplished -using the following ruleset:

    -
    - -
    Solution:
    - -
    -

    We redirect the URL / to - /about/: -

    - -
    -RewriteEngine on
    -RewriteRule   ^/$  /about/  [R]
    -
    - -

    Note that this can also be handled using the RedirectMatch directive:

    - -

    -RedirectMatch ^/$ http://example.com/e/www/ -

    -
    -
    - -
    top
    -
    -

    Trailing Slash Problem

    - - - -
    -
    Description:
    - -

    The vast majority of "trailing slash" problems can be dealt - with using the techniques discussed in the FAQ - entry. However, occasionally, there is a need to use mod_rewrite - to handle a case where a missing trailing slash causes a URL to - fail. This can happen, for example, after a series of complex - rewrite rules.

    -
    - -
    Solution:
    - -
    -

    The solution to this subtle problem is to let the server - add the trailing slash automatically. To do this - correctly we have to use an external redirect, so the - browser correctly requests subsequent images etc. If we - only did a internal rewrite, this would only work for the - directory page, but would go wrong when any images are - included into this page with relative URLs, because the - browser would request an in-lined object. For instance, a - request for image.gif in - /~quux/foo/index.html would become - /~quux/image.gif without the external - redirect!

    - -

    So, to do this trick we write:

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo$  foo/  [R]
    -
    - -

    Alternately, you can put the following in a - top-level .htaccess file in the content directory. - But note that this creates some processing overhead.

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteCond    %{REQUEST_FILENAME}  -d
    -RewriteRule    ^(.+[^/])$           $1/  [R]
    -
    -
    -
    - -
    top
    -
    -

    Move Homedirs to Different Webserver

    - - - -
    -
    Description:
    - -
    -

    Many webmasters have asked for a solution to the - following situation: They wanted to redirect just all - homedirs on a webserver to another webserver. They usually - need such things when establishing a newer webserver which - will replace the old one over time.

    -
    - -
    Solution:
    - -
    -

    The solution is trivial with mod_rewrite. - On the old webserver we just redirect all - /~user/anypath URLs to - http://newserver/~user/anypath.

    - -
    -RewriteEngine on
    -RewriteRule   ^/~(.+)  http://newserver/~$1  [R,L]
    -
    -
    -
    - -
    top
    -
    -

    Search pages in more than one directory

    - - - -
    -
    Description:
    - -
    -

    Sometimes it is necessary to let the webserver search - for pages in more than one directory. Here MultiViews or - other techniques cannot help.

    -
    - -
    Solution:
    - -
    -

    We program a explicit ruleset which searches for the - files in the directories.

    - -
    -RewriteEngine on
    -
    -#   first try to find it in custom/...
    -#   ...and if found stop and be happy:
    -RewriteCond         /your/docroot/dir1/%{REQUEST_FILENAME}  -f
    -RewriteRule  ^(.+)  /your/docroot/dir1/$1  [L]
    -
    -#   second try to find it in pub/...
    -#   ...and if found stop and be happy:
    -RewriteCond         /your/docroot/dir2/%{REQUEST_FILENAME}  -f
    -RewriteRule  ^(.+)  /your/docroot/dir2/$1  [L]
    -
    -#   else go on for other Alias or ScriptAlias directives,
    -#   etc.
    -RewriteRule   ^(.+)  -  [PT]
    -
    -
    -
    - -
    top
    -
    -

    Set Environment Variables According To URL Parts

    - - - -
    -
    Description:
    - -
    -

    Perhaps you want to keep status information between - requests and use the URL to encode it. But you don't want - to use a CGI wrapper for all pages just to strip out this - information.

    -
    - -
    Solution:
    - -
    -

    We use a rewrite rule to strip out the status information - and remember it via an environment variable which can be - later dereferenced from within XSSI or CGI. This way a - URL /foo/S=java/bar/ gets translated to - /foo/bar/ and the environment variable named - STATUS is set to the value "java".

    - -
    -RewriteEngine on
    -RewriteRule   ^(.*)/S=([^/]+)/(.*)    $1/$3 [E=STATUS:$2]
    -
    -
    -
    - -
    top
    -
    -

    Virtual User Hosts

    - - - -
    -
    Description:
    - -
    -

    Assume that you want to provide - www.username.host.domain.com - for the homepage of username via just DNS A records to the - same machine and without any virtualhosts on this - machine.

    -
    - -
    Solution:
    - -
    -

    For HTTP/1.0 requests there is no solution, but for - HTTP/1.1 requests which contain a Host: HTTP header we - can use the following ruleset to rewrite - http://www.username.host.com/anypath - internally to /home/username/anypath:

    - -
    -RewriteEngine on
    -RewriteCond   %{HTTP_HOST}                 ^www\.[^.]+\.host\.com$
    -RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
    -RewriteRule   ^www\.([^.]+)\.host\.com(.*) /home/$1$2
    -
    -
    -
    - -
    top
    -
    -

    Redirect Homedirs For Foreigners

    - - - -
    -
    Description:
    - -
    -

    We want to redirect homedir URLs to another webserver - www.somewhere.com when the requesting user - does not stay in the local domain - ourdomain.com. This is sometimes used in - virtual host contexts.

    -
    - -
    Solution:
    - -
    -

    Just a rewrite condition:

    - -
    -RewriteEngine on
    -RewriteCond   %{REMOTE_HOST}  !^.+\.ourdomain\.com$
    -RewriteRule   ^(/~.+)         http://www.somewhere.com/$1 [R,L]
    -
    -
    -
    - -
    top
    -
    -

    Redirecting Anchors

    - - - -
    -
    Description:
    - -
    -

    By default, redirecting to an HTML anchor doesn't work, - because mod_rewrite escapes the # character, - turning it into %23. This, in turn, breaks the - redirection.

    -
    - -
    Solution:
    - -
    -

    Use the [NE] flag on the - RewriteRule. NE stands for No Escape. -

    -
    -
    - -
    top
    -
    -

    Time-Dependent Rewriting

    - - - -
    -
    Description:
    - -
    -

    When tricks like time-dependent content should happen a - lot of webmasters still use CGI scripts which do for - instance redirects to specialized pages. How can it be done - via mod_rewrite?

    -
    - -
    Solution:
    - -
    -

    There are a lot of variables named TIME_xxx - for rewrite conditions. In conjunction with the special - lexicographic comparison patterns <STRING, - >STRING and =STRING we can - do time-dependent redirects:

    - -
    -RewriteEngine on
    -RewriteCond   %{TIME_HOUR}%{TIME_MIN} >0700
    -RewriteCond   %{TIME_HOUR}%{TIME_MIN} <1900
    -RewriteRule   ^foo\.html$             foo.day.html
    -RewriteRule   ^foo\.html$             foo.night.html
    -
    - -

    This provides the content of foo.day.html - under the URL foo.html from - 07:00-19:00 and at the remaining time the - contents of foo.night.html. Just a nice - feature for a homepage...

    -
    -
    - -
    top
    -
    -

    Backward Compatibility for YYYY to XXXX migration

    - - - -
    -
    Description:
    - -
    -

    How can we make URLs backward compatible (still - existing virtually) after migrating document.YYYY - to document.XXXX, e.g. after translating a - bunch of .html files to .phtml?

    -
    - -
    Solution:
    - -
    -

    We just rewrite the name to its basename and test for - existence of the new extension. If it exists, we take - that name, else we rewrite the URL to its original state.

    - - -
    -#   backward compatibility ruleset for
    -#   rewriting document.html to document.phtml
    -#   when and only when document.phtml exists
    -#   but no longer document.html
    -RewriteEngine on
    -RewriteBase   /~quux/
    -#   parse out basename, but remember the fact
    -RewriteRule   ^(.*)\.html$              $1      [C,E=WasHTML:yes]
    -#   rewrite to document.phtml if exists
    -RewriteCond   %{REQUEST_FILENAME}.phtml -f
    -RewriteRule   ^(.*)$ $1.phtml                   [S=1]
    -#   else reverse the previous basename cutout
    -RewriteCond   %{ENV:WasHTML}            ^yes$
    -RewriteRule   ^(.*)$ $1.html
    -
    -
    -
    - -
    top
    -
    -

    Content Handling

    - - - -

    From Old to New (intern)

    - - - -
    -
    Description:
    - -
    -

    Assume we have recently renamed the page - foo.html to bar.html and now want - to provide the old URL for backward compatibility. Actually - we want that users of the old URL even not recognize that - the pages was renamed.

    -
    - -
    Solution:
    - -
    -

    We rewrite the old URL to the new one internally via the - following rule:

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo\.html$  bar.html
    -
    -
    -
    - - - -

    From Old to New (extern)

    - - - -
    -
    Description:
    - -
    -

    Assume again that we have recently renamed the page - foo.html to bar.html and now want - to provide the old URL for backward compatibility. But this - time we want that the users of the old URL get hinted to - the new one, i.e. their browsers Location field should - change, too.

    -
    - -
    Solution:
    - -
    -

    We force a HTTP redirect to the new URL which leads to a - change of the browsers and thus the users view:

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo\.html$  bar.html  [R]
    -
    -
    -
    - - - -

    From Static to Dynamic

    - - - -
    -
    Description:
    - -
    -

    How can we transform a static page - foo.html into a dynamic variant - foo.cgi in a seamless way, i.e. without notice - by the browser/user.

    -
    - -
    Solution:
    - -
    -

    We just rewrite the URL to the CGI-script and force the - correct MIME-type so it gets really run as a CGI-script. - This way a request to /~quux/foo.html - internally leads to the invocation of - /~quux/foo.cgi.

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo\.html$  foo.cgi  [T=application/x-httpd-cgi]
    -
    -
    -
    - - -
    top
    -
    -

    Access Restriction

    - - - -

    Blocking of Robots

    - - - -
    -
    Description:
    - -
    -

    How can we block a really annoying robot from - retrieving pages of a specific webarea? A - /robots.txt file containing entries of the - "Robot Exclusion Protocol" is typically not enough to get - rid of such a robot.

    -
    - -
    Solution:
    - -
    -

    We use a ruleset which forbids the URLs of the webarea - /~quux/foo/arc/ (perhaps a very deep - directory indexed area where the robot traversal would - create big server load). We have to make sure that we - forbid access only to the particular robot, i.e. just - forbidding the host where the robot runs is not enough. - This would block users from this host, too. We accomplish - this by also matching the User-Agent HTTP header - information.

    - -
    -RewriteCond %{HTTP_USER_AGENT}   ^NameOfBadRobot.*
    -RewriteCond %{REMOTE_ADDR}       ^123\.45\.67\.[8-9]$
    -RewriteRule ^/~quux/foo/arc/.+   -   [F]
    -
    -
    -
    - - - -

    Blocked Inline-Images

    - - - -
    -
    Description:
    - -
    -

    Assume we have under http://www.quux-corp.de/~quux/ - some pages with inlined GIF graphics. These graphics are - nice, so others directly incorporate them via hyperlinks to - their pages. We don't like this practice because it adds - useless traffic to our server.

    -
    - -
    Solution:
    - -
    -

    While we cannot 100% protect the images from inclusion, - we can at least restrict the cases where the browser - sends a HTTP Referer header.

    - -
    -RewriteCond %{HTTP_REFERER} !^$
    -RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
    -RewriteRule .*\.gif$        -                                    [F]
    -
    - -
    -RewriteCond %{HTTP_REFERER}         !^$
    -RewriteCond %{HTTP_REFERER}         !.*/foo-with-gif\.html$
    -RewriteRule ^inlined-in-foo\.gif$   -                        [F]
    -
    -
    -
    - - - -

    Proxy Deny

    - - - -
    -
    Description:
    - -
    -

    How can we forbid a certain host or even a user of a - special host from using the Apache proxy?

    -
    - -
    Solution:
    - -
    -

    We first have to make sure mod_rewrite - is below(!) mod_proxy in the Configuration - file when compiling the Apache webserver. This way it gets - called before mod_proxy. Then we - configure the following for a host-dependent deny...

    - -
    -RewriteCond %{REMOTE_HOST} ^badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    - -

    ...and this one for a user@host-dependent deny:

    - -
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST}  ^badguy@badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    -
    -
    - - - -
    top
    -
    -

    Other

    - - - -

    External Rewriting Engine

    - - - -
    -
    Description:
    - -
    -

    A FAQ: How can we solve the FOO/BAR/QUUX/etc. - problem? There seems no solution by the use of - mod_rewrite...

    -
    - -
    Solution:
    - -
    -

    Use an external RewriteMap, i.e. a program which acts - like a RewriteMap. It is run once on startup of Apache - receives the requested URLs on STDIN and has - to put the resulting (usually rewritten) URL on - STDOUT (same order!).

    - -
    -RewriteEngine on
    -RewriteMap    quux-map       prg:/path/to/map.quux.pl
    -RewriteRule   ^/~quux/(.*)$  /~quux/${quux-map:$1}
    -
    - -
    -#!/path/to/perl
    -
    -#   disable buffered I/O which would lead
    -#   to deadloops for the Apache server
    -$| = 1;
    -
    -#   read URLs one per line from stdin and
    -#   generate substitution URL on stdout
    -while (<>) {
    -    s|^foo/|bar/|;
    -    print $_;
    -}
    -
    - -

    This is a demonstration-only example and just rewrites - all URLs /~quux/foo/... to - /~quux/bar/.... Actually you can program - whatever you like. But notice that while such maps can be - used also by an average user, only the - system administrator can define it.

    -
    -
    - - - -
    -
    -

    Available Languages:  en 

    -
    - \ No newline at end of file diff --git a/docs/manual/rewrite/rewrite_guide.xml b/docs/manual/rewrite/rewrite_guide.xml deleted file mode 100644 index 85aae9728ae..00000000000 --- a/docs/manual/rewrite/rewrite_guide.xml +++ /dev/null @@ -1,783 +0,0 @@ - - - - - - - - - - - URL Rewriting Guide - - - -

    This document supplements the mod_rewrite - reference documentation. - It describes how one can use Apache's mod_rewrite - to solve typical URL-based problems with which webmasters are - commonony confronted. We give detailed descriptions on how to - solve each problem by configuring URL rewriting rulesets.

    - - ATTENTION: Depending on your server configuration - it may be necessary to slightly change the examples for your - situation, e.g. adding the [PT] flag when - additionally using mod_alias and - mod_userdir, etc. Or rewriting a ruleset - to fit in .htaccess context instead - of per-server context. Always try to understand what a - particular ruleset really does before you use it. This - avoids many problems. - -
    -Module -documentation -mod_rewrite -introduction -Practical solutions to -advanced problems -Technical details - - -
    - -Canonical URLs - -
    -
    Description:
    - -
    -

    On some webservers there are more than one URL for a - resource. Usually there are canonical URLs (which should be - actually used and distributed) and those which are just - shortcuts, internal ones, etc. Independent of which URL the - user supplied with the request he should finally see the - canonical one only.

    -
    - -
    Solution:
    - -
    -

    We do an external HTTP redirect for all non-canonical - URLs to fix them in the location view of the Browser and - for all subsequent requests. In the example ruleset below - we replace /~user by the canonical - /u/user and fix a missing trailing slash for - /u/user.

    - -
    -RewriteRule   ^/~([^/]+)/?(.*)    /u/$1/$2  [R]
    -RewriteRule   ^/([uge])/([^/]+)$  /$1/$2/   [R]
    -
    -
    -
    - -
    - -
    Canonical Hostnames - -
    -
    Description:
    - -
    The goal of this rule is to force the use of a particular - hostname, in preference to other hostnames which may be used to - reach the same site. For example, if you wish to force the use - of www.example.com instead of - example.com, you might use a variant of the - following recipe.
    - -
    Solution:
    - -
    -

    For sites running on a port other than 80:

    -
    -RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
    -RewriteCond %{HTTP_HOST}   !^$
    -RewriteCond %{SERVER_PORT} !^80$
    -RewriteRule ^/(.*)         http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]
    -
    - -

    And for a site running on port 80

    -
    -RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
    -RewriteCond %{HTTP_HOST}   !^$
    -RewriteRule ^/(.*)         http://fully.qualified.domain.name/$1 [L,R]
    -
    -
    -
    - -
    - -
    - - Moved <code>DocumentRoot</code> - -
    -
    Description:
    - -
    -

    Usually the DocumentRoot -of the webserver directly relates to the URL "/". -But often this data is not really of top-level priority. For example, -you may wish for visitors, on first entering a site, to go to a -particular subdirectory /about/. This may be accomplished -using the following ruleset:

    -
    - -
    Solution:
    - -
    -

    We redirect the URL / to - /about/: -

    - -
    -RewriteEngine on
    -RewriteRule   ^/$  /about/  [R]
    -
    - -

    Note that this can also be handled using the RedirectMatch directive:

    - - -RedirectMatch ^/$ http://example.com/e/www/ - -
    -
    - -
    - -
    - - Trailing Slash Problem - -
    -
    Description:
    - -

    The vast majority of "trailing slash" problems can be dealt - with using the techniques discussed in the FAQ - entry. However, occasionally, there is a need to use mod_rewrite - to handle a case where a missing trailing slash causes a URL to - fail. This can happen, for example, after a series of complex - rewrite rules.

    -
    - -
    Solution:
    - -
    -

    The solution to this subtle problem is to let the server - add the trailing slash automatically. To do this - correctly we have to use an external redirect, so the - browser correctly requests subsequent images etc. If we - only did a internal rewrite, this would only work for the - directory page, but would go wrong when any images are - included into this page with relative URLs, because the - browser would request an in-lined object. For instance, a - request for image.gif in - /~quux/foo/index.html would become - /~quux/image.gif without the external - redirect!

    - -

    So, to do this trick we write:

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo$  foo/  [R]
    -
    - -

    Alternately, you can put the following in a - top-level .htaccess file in the content directory. - But note that this creates some processing overhead.

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteCond    %{REQUEST_FILENAME}  -d
    -RewriteRule    ^(.+[^/])$           $1/  [R]
    -
    -
    -
    - -
    - -
    - - Move Homedirs to Different Webserver - -
    -
    Description:
    - -
    -

    Many webmasters have asked for a solution to the - following situation: They wanted to redirect just all - homedirs on a webserver to another webserver. They usually - need such things when establishing a newer webserver which - will replace the old one over time.

    -
    - -
    Solution:
    - -
    -

    The solution is trivial with mod_rewrite. - On the old webserver we just redirect all - /~user/anypath URLs to - http://newserver/~user/anypath.

    - -
    -RewriteEngine on
    -RewriteRule   ^/~(.+)  http://newserver/~$1  [R,L]
    -
    -
    -
    - -
    - -
    - - Search pages in more than one directory - -
    -
    Description:
    - -
    -

    Sometimes it is necessary to let the webserver search - for pages in more than one directory. Here MultiViews or - other techniques cannot help.

    -
    - -
    Solution:
    - -
    -

    We program a explicit ruleset which searches for the - files in the directories.

    - -
    -RewriteEngine on
    -
    -#   first try to find it in custom/...
    -#   ...and if found stop and be happy:
    -RewriteCond         /your/docroot/dir1/%{REQUEST_FILENAME}  -f
    -RewriteRule  ^(.+)  /your/docroot/dir1/$1  [L]
    -
    -#   second try to find it in pub/...
    -#   ...and if found stop and be happy:
    -RewriteCond         /your/docroot/dir2/%{REQUEST_FILENAME}  -f
    -RewriteRule  ^(.+)  /your/docroot/dir2/$1  [L]
    -
    -#   else go on for other Alias or ScriptAlias directives,
    -#   etc.
    -RewriteRule   ^(.+)  -  [PT]
    -
    -
    -
    - -
    - -
    - - Set Environment Variables According To URL Parts - -
    -
    Description:
    - -
    -

    Perhaps you want to keep status information between - requests and use the URL to encode it. But you don't want - to use a CGI wrapper for all pages just to strip out this - information.

    -
    - -
    Solution:
    - -
    -

    We use a rewrite rule to strip out the status information - and remember it via an environment variable which can be - later dereferenced from within XSSI or CGI. This way a - URL /foo/S=java/bar/ gets translated to - /foo/bar/ and the environment variable named - STATUS is set to the value "java".

    - -
    -RewriteEngine on
    -RewriteRule   ^(.*)/S=([^/]+)/(.*)    $1/$3 [E=STATUS:$2]
    -
    -
    -
    - -
    - -
    - - Virtual User Hosts - -
    -
    Description:
    - -
    -

    Assume that you want to provide - www.username.host.domain.com - for the homepage of username via just DNS A records to the - same machine and without any virtualhosts on this - machine.

    -
    - -
    Solution:
    - -
    -

    For HTTP/1.0 requests there is no solution, but for - HTTP/1.1 requests which contain a Host: HTTP header we - can use the following ruleset to rewrite - http://www.username.host.com/anypath - internally to /home/username/anypath:

    - -
    -RewriteEngine on
    -RewriteCond   %{HTTP_HOST}                 ^www\.[^.]+\.host\.com$
    -RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
    -RewriteRule   ^www\.([^.]+)\.host\.com(.*) /home/$1$2
    -
    -
    -
    - -
    - -
    - - Redirect Homedirs For Foreigners - -
    -
    Description:
    - -
    -

    We want to redirect homedir URLs to another webserver - www.somewhere.com when the requesting user - does not stay in the local domain - ourdomain.com. This is sometimes used in - virtual host contexts.

    -
    - -
    Solution:
    - -
    -

    Just a rewrite condition:

    - -
    -RewriteEngine on
    -RewriteCond   %{REMOTE_HOST}  !^.+\.ourdomain\.com$
    -RewriteRule   ^(/~.+)         http://www.somewhere.com/$1 [R,L]
    -
    -
    -
    - -
    - -
    - - Redirecting Anchors - -
    -
    Description:
    - -
    -

    By default, redirecting to an HTML anchor doesn't work, - because mod_rewrite escapes the # character, - turning it into %23. This, in turn, breaks the - redirection.

    -
    - -
    Solution:
    - -
    -

    Use the [NE] flag on the - RewriteRule. NE stands for No Escape. -

    -
    -
    - -
    - -
    - - Time-Dependent Rewriting - -
    -
    Description:
    - -
    -

    When tricks like time-dependent content should happen a - lot of webmasters still use CGI scripts which do for - instance redirects to specialized pages. How can it be done - via mod_rewrite?

    -
    - -
    Solution:
    - -
    -

    There are a lot of variables named TIME_xxx - for rewrite conditions. In conjunction with the special - lexicographic comparison patterns <STRING, - >STRING and =STRING we can - do time-dependent redirects:

    - -
    -RewriteEngine on
    -RewriteCond   %{TIME_HOUR}%{TIME_MIN} >0700
    -RewriteCond   %{TIME_HOUR}%{TIME_MIN} <1900
    -RewriteRule   ^foo\.html$             foo.day.html
    -RewriteRule   ^foo\.html$             foo.night.html
    -
    - -

    This provides the content of foo.day.html - under the URL foo.html from - 07:00-19:00 and at the remaining time the - contents of foo.night.html. Just a nice - feature for a homepage...

    -
    -
    - -
    - -
    - - Backward Compatibility for YYYY to XXXX migration - -
    -
    Description:
    - -
    -

    How can we make URLs backward compatible (still - existing virtually) after migrating document.YYYY - to document.XXXX, e.g. after translating a - bunch of .html files to .phtml?

    -
    - -
    Solution:
    - -
    -

    We just rewrite the name to its basename and test for - existence of the new extension. If it exists, we take - that name, else we rewrite the URL to its original state.

    - - -
    -#   backward compatibility ruleset for
    -#   rewriting document.html to document.phtml
    -#   when and only when document.phtml exists
    -#   but no longer document.html
    -RewriteEngine on
    -RewriteBase   /~quux/
    -#   parse out basename, but remember the fact
    -RewriteRule   ^(.*)\.html$              $1      [C,E=WasHTML:yes]
    -#   rewrite to document.phtml if exists
    -RewriteCond   %{REQUEST_FILENAME}.phtml -f
    -RewriteRule   ^(.*)$ $1.phtml                   [S=1]
    -#   else reverse the previous basename cutout
    -RewriteCond   %{ENV:WasHTML}            ^yes$
    -RewriteRule   ^(.*)$ $1.html
    -
    -
    -
    - -
    - -
    - - Content Handling - -
    - - From Old to New (intern) - -
    -
    Description:
    - -
    -

    Assume we have recently renamed the page - foo.html to bar.html and now want - to provide the old URL for backward compatibility. Actually - we want that users of the old URL even not recognize that - the pages was renamed.

    -
    - -
    Solution:
    - -
    -

    We rewrite the old URL to the new one internally via the - following rule:

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo\.html$  bar.html
    -
    -
    -
    - -
    - -
    - - From Old to New (extern) - -
    -
    Description:
    - -
    -

    Assume again that we have recently renamed the page - foo.html to bar.html and now want - to provide the old URL for backward compatibility. But this - time we want that the users of the old URL get hinted to - the new one, i.e. their browsers Location field should - change, too.

    -
    - -
    Solution:
    - -
    -

    We force a HTTP redirect to the new URL which leads to a - change of the browsers and thus the users view:

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo\.html$  bar.html  [R]
    -
    -
    -
    - -
    - -
    - - From Static to Dynamic - -
    -
    Description:
    - -
    -

    How can we transform a static page - foo.html into a dynamic variant - foo.cgi in a seamless way, i.e. without notice - by the browser/user.

    -
    - -
    Solution:
    - -
    -

    We just rewrite the URL to the CGI-script and force the - correct MIME-type so it gets really run as a CGI-script. - This way a request to /~quux/foo.html - internally leads to the invocation of - /~quux/foo.cgi.

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^foo\.html$  foo.cgi  [T=application/x-httpd-cgi]
    -
    -
    -
    - -
    -
    - -
    - - Access Restriction - -
    - - Blocking of Robots - -
    -
    Description:
    - -
    -

    How can we block a really annoying robot from - retrieving pages of a specific webarea? A - /robots.txt file containing entries of the - "Robot Exclusion Protocol" is typically not enough to get - rid of such a robot.

    -
    - -
    Solution:
    - -
    -

    We use a ruleset which forbids the URLs of the webarea - /~quux/foo/arc/ (perhaps a very deep - directory indexed area where the robot traversal would - create big server load). We have to make sure that we - forbid access only to the particular robot, i.e. just - forbidding the host where the robot runs is not enough. - This would block users from this host, too. We accomplish - this by also matching the User-Agent HTTP header - information.

    - -
    -RewriteCond %{HTTP_USER_AGENT}   ^NameOfBadRobot.*
    -RewriteCond %{REMOTE_ADDR}       ^123\.45\.67\.[8-9]$
    -RewriteRule ^/~quux/foo/arc/.+   -   [F]
    -
    -
    -
    - -
    - -
    - - Blocked Inline-Images - -
    -
    Description:
    - -
    -

    Assume we have under http://www.quux-corp.de/~quux/ - some pages with inlined GIF graphics. These graphics are - nice, so others directly incorporate them via hyperlinks to - their pages. We don't like this practice because it adds - useless traffic to our server.

    -
    - -
    Solution:
    - -
    -

    While we cannot 100% protect the images from inclusion, - we can at least restrict the cases where the browser - sends a HTTP Referer header.

    - -
    -RewriteCond %{HTTP_REFERER} !^$
    -RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
    -RewriteRule .*\.gif$        -                                    [F]
    -
    - -
    -RewriteCond %{HTTP_REFERER}         !^$
    -RewriteCond %{HTTP_REFERER}         !.*/foo-with-gif\.html$
    -RewriteRule ^inlined-in-foo\.gif$   -                        [F]
    -
    -
    -
    - -
    - -
    - - Proxy Deny - -
    -
    Description:
    - -
    -

    How can we forbid a certain host or even a user of a - special host from using the Apache proxy?

    -
    - -
    Solution:
    - -
    -

    We first have to make sure mod_rewrite - is below(!) mod_proxy in the Configuration - file when compiling the Apache webserver. This way it gets - called before mod_proxy. Then we - configure the following for a host-dependent deny...

    - -
    -RewriteCond %{REMOTE_HOST} ^badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    - -

    ...and this one for a user@host-dependent deny:

    - -
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST}  ^badguy@badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    -
    -
    - -
    - -
    - -
    - - Other - -
    - - External Rewriting Engine - -
    -
    Description:
    - -
    -

    A FAQ: How can we solve the FOO/BAR/QUUX/etc. - problem? There seems no solution by the use of - mod_rewrite...

    -
    - -
    Solution:
    - -
    -

    Use an external RewriteMap, i.e. a program which acts - like a RewriteMap. It is run once on startup of Apache - receives the requested URLs on STDIN and has - to put the resulting (usually rewritten) URL on - STDOUT (same order!).

    - -
    -RewriteEngine on
    -RewriteMap    quux-map       prg:/path/to/map.quux.pl
    -RewriteRule   ^/~quux/(.*)$  /~quux/${quux-map:$1}
    -
    - -
    -#!/path/to/perl
    -
    -#   disable buffered I/O which would lead
    -#   to deadloops for the Apache server
    -$| = 1;
    -
    -#   read URLs one per line from stdin and
    -#   generate substitution URL on stdout
    -while (<>) {
    -    s|^foo/|bar/|;
    -    print $_;
    -}
    -
    - -

    This is a demonstration-only example and just rewrites - all URLs /~quux/foo/... to - /~quux/bar/.... Actually you can program - whatever you like. But notice that while such maps can be - used also by an average user, only the - system administrator can define it.

    -
    -
    - -
    - -
    - -
    - diff --git a/docs/manual/rewrite/rewrite_guide.xml.meta b/docs/manual/rewrite/rewrite_guide.xml.meta deleted file mode 100644 index 65639c1a252..00000000000 --- a/docs/manual/rewrite/rewrite_guide.xml.meta +++ /dev/null @@ -1,11 +0,0 @@ - - - - rewrite_guide - /rewrite/ - .. - - - en - - diff --git a/docs/manual/rewrite/rewrite_guide_advanced.html b/docs/manual/rewrite/rewrite_guide_advanced.html deleted file mode 100644 index 07850dd6bac..00000000000 --- a/docs/manual/rewrite/rewrite_guide_advanced.html +++ /dev/null @@ -1,3 +0,0 @@ -URI: rewrite_guide_advanced.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/rewrite_guide_advanced.html.en b/docs/manual/rewrite/rewrite_guide_advanced.html.en deleted file mode 100644 index ca592e8bfd7..00000000000 --- a/docs/manual/rewrite/rewrite_guide_advanced.html.en +++ /dev/null @@ -1,1289 +0,0 @@ - - - -URL Rewriting Guide - Advanced topics - Apache HTTP Server - - - - - -
    <-
    -

    URL Rewriting Guide - Advanced topics

    -
    -

    Available Languages:  en 

    -
    - - -

    This document supplements the mod_rewrite - reference documentation. - It describes how one can use Apache's mod_rewrite - to solve typical URL-based problems with which webmasters are - commonony confronted. We give detailed descriptions on how to - solve each problem by configuring URL rewriting rulesets.

    - -
    ATTENTION: Depending on your server configuration - it may be necessary to slightly change the examples for your - situation, e.g. adding the [PT] flag when - additionally using mod_alias and - mod_userdir, etc. Or rewriting a ruleset - to fit in .htaccess context instead - of per-server context. Always try to understand what a - particular ruleset really does before you use it. This - avoids many problems.
    - -
    - -
    top
    -
    -

    Webcluster through Homogeneous URL Layout

    - - - -
    -
    Description:
    - -
    -

    We want to create a homogeneous and consistent URL - layout over all WWW servers on a Intranet webcluster, i.e. - all URLs (per definition server local and thus server - dependent!) become actually server independent! - What we want is to give the WWW namespace a consistent - server-independent layout: no URL should have to include - any physically correct target server. The cluster itself - should drive us automatically to the physical target - host.

    -
    - -
    Solution:
    - -
    -

    First, the knowledge of the target servers come from - (distributed) external maps which contain information - where our users, groups and entities stay. The have the - form

    - -
    -user1  server_of_user1
    -user2  server_of_user2
    -:      :
    -
    - -

    We put them into files map.xxx-to-host. - Second we need to instruct all servers to redirect URLs - of the forms

    - -
    -/u/user/anypath
    -/g/group/anypath
    -/e/entity/anypath
    -
    - -

    to

    - -
    -http://physical-host/u/user/anypath
    -http://physical-host/g/group/anypath
    -http://physical-host/e/entity/anypath
    -
    - -

    when the URL is not locally valid to a server. The - following ruleset does this for us by the help of the map - files (assuming that server0 is a default server which - will be used if a user has no entry in the map):

    - -
    -RewriteEngine on
    -
    -RewriteMap      user-to-host   txt:/path/to/map.user-to-host
    -RewriteMap     group-to-host   txt:/path/to/map.group-to-host
    -RewriteMap    entity-to-host   txt:/path/to/map.entity-to-host
    -
    -RewriteRule   ^/u/([^/]+)/?(.*)   http://${user-to-host:$1|server0}/u/$1/$2
    -RewriteRule   ^/g/([^/]+)/?(.*)  http://${group-to-host:$1|server0}/g/$1/$2
    -RewriteRule   ^/e/([^/]+)/?(.*) http://${entity-to-host:$1|server0}/e/$1/$2
    -
    -RewriteRule   ^/([uge])/([^/]+)/?$          /$1/$2/.www/
    -RewriteRule   ^/([uge])/([^/]+)/([^.]+.+)   /$1/$2/.www/$3\
    -
    -
    -
    - -
    top
    -
    -

    Structured Homedirs

    - - - -
    -
    Description:
    - -
    -

    Some sites with thousands of users usually use a - structured homedir layout, i.e. each homedir is in a - subdirectory which begins for instance with the first - character of the username. So, /~foo/anypath - is /home/f/foo/.www/anypath - while /~bar/anypath is - /home/b/bar/.www/anypath.

    -
    - -
    Solution:
    - -
    -

    We use the following ruleset to expand the tilde URLs - into exactly the above layout.

    - -
    -RewriteEngine on
    -RewriteRule   ^/~(([a-z])[a-z0-9]+)(.*)  /home/$2/$1/.www$3
    -
    -
    -
    - -
    top
    -
    -

    Filesystem Reorganization

    - - - -
    -
    Description:
    - -
    -

    This really is a hardcore example: a killer application - which heavily uses per-directory - RewriteRules to get a smooth look and feel - on the Web while its data structure is never touched or - adjusted. Background: net.sw is - my archive of freely available Unix software packages, - which I started to collect in 1992. It is both my hobby - and job to to this, because while I'm studying computer - science I have also worked for many years as a system and - network administrator in my spare time. Every week I need - some sort of software so I created a deep hierarchy of - directories where I stored the packages:

    - -
    -drwxrwxr-x   2 netsw  users    512 Aug  3 18:39 Audio/
    -drwxrwxr-x   2 netsw  users    512 Jul  9 14:37 Benchmark/
    -drwxrwxr-x  12 netsw  users    512 Jul  9 00:34 Crypto/
    -drwxrwxr-x   5 netsw  users    512 Jul  9 00:41 Database/
    -drwxrwxr-x   4 netsw  users    512 Jul 30 19:25 Dicts/
    -drwxrwxr-x  10 netsw  users    512 Jul  9 01:54 Graphic/
    -drwxrwxr-x   5 netsw  users    512 Jul  9 01:58 Hackers/
    -drwxrwxr-x   8 netsw  users    512 Jul  9 03:19 InfoSys/
    -drwxrwxr-x   3 netsw  users    512 Jul  9 03:21 Math/
    -drwxrwxr-x   3 netsw  users    512 Jul  9 03:24 Misc/
    -drwxrwxr-x   9 netsw  users    512 Aug  1 16:33 Network/
    -drwxrwxr-x   2 netsw  users    512 Jul  9 05:53 Office/
    -drwxrwxr-x   7 netsw  users    512 Jul  9 09:24 SoftEng/
    -drwxrwxr-x   7 netsw  users    512 Jul  9 12:17 System/
    -drwxrwxr-x  12 netsw  users    512 Aug  3 20:15 Typesetting/
    -drwxrwxr-x  10 netsw  users    512 Jul  9 14:08 X11/
    -
    - -

    In July 1996 I decided to make this archive public to - the world via a nice Web interface. "Nice" means that I - wanted to offer an interface where you can browse - directly through the archive hierarchy. And "nice" means - that I didn't wanted to change anything inside this - hierarchy - not even by putting some CGI scripts at the - top of it. Why? Because the above structure should be - later accessible via FTP as well, and I didn't want any - Web or CGI stuff to be there.

    -
    - -
    Solution:
    - -
    -

    The solution has two parts: The first is a set of CGI - scripts which create all the pages at all directory - levels on-the-fly. I put them under - /e/netsw/.www/ as follows:

    - -
    --rw-r--r--   1 netsw  users    1318 Aug  1 18:10 .wwwacl
    -drwxr-xr-x  18 netsw  users     512 Aug  5 15:51 DATA/
    --rw-rw-rw-   1 netsw  users  372982 Aug  5 16:35 LOGFILE
    --rw-r--r--   1 netsw  users     659 Aug  4 09:27 TODO
    --rw-r--r--   1 netsw  users    5697 Aug  1 18:01 netsw-about.html
    --rwxr-xr-x   1 netsw  users     579 Aug  2 10:33 netsw-access.pl
    --rwxr-xr-x   1 netsw  users    1532 Aug  1 17:35 netsw-changes.cgi
    --rwxr-xr-x   1 netsw  users    2866 Aug  5 14:49 netsw-home.cgi
    -drwxr-xr-x   2 netsw  users     512 Jul  8 23:47 netsw-img/
    --rwxr-xr-x   1 netsw  users   24050 Aug  5 15:49 netsw-lsdir.cgi
    --rwxr-xr-x   1 netsw  users    1589 Aug  3 18:43 netsw-search.cgi
    --rwxr-xr-x   1 netsw  users    1885 Aug  1 17:41 netsw-tree.cgi
    --rw-r--r--   1 netsw  users     234 Jul 30 16:35 netsw-unlimit.lst
    -
    - -

    The DATA/ subdirectory holds the above - directory structure, i.e. the real - net.sw stuff and gets - automatically updated via rdist from time to - time. The second part of the problem remains: how to link - these two structures together into one smooth-looking URL - tree? We want to hide the DATA/ directory - from the user while running the appropriate CGI scripts - for the various URLs. Here is the solution: first I put - the following into the per-directory configuration file - in the DocumentRoot - of the server to rewrite the announced URL - /net.sw/ to the internal path - /e/netsw:

    - -
    -RewriteRule  ^net.sw$       net.sw/        [R]
    -RewriteRule  ^net.sw/(.*)$  e/netsw/$1
    -
    - -

    The first rule is for requests which miss the trailing - slash! The second rule does the real thing. And then - comes the killer configuration which stays in the - per-directory config file - /e/netsw/.www/.wwwacl:

    - -
    -Options       ExecCGI FollowSymLinks Includes MultiViews
    -
    -RewriteEngine on
    -
    -#  we are reached via /net.sw/ prefix
    -RewriteBase   /net.sw/
    -
    -#  first we rewrite the root dir to
    -#  the handling cgi script
    -RewriteRule   ^$                       netsw-home.cgi     [L]
    -RewriteRule   ^index\.html$            netsw-home.cgi     [L]
    -
    -#  strip out the subdirs when
    -#  the browser requests us from perdir pages
    -RewriteRule   ^.+/(netsw-[^/]+/.+)$    $1                 [L]
    -
    -#  and now break the rewriting for local files
    -RewriteRule   ^netsw-home\.cgi.*       -                  [L]
    -RewriteRule   ^netsw-changes\.cgi.*    -                  [L]
    -RewriteRule   ^netsw-search\.cgi.*     -                  [L]
    -RewriteRule   ^netsw-tree\.cgi$        -                  [L]
    -RewriteRule   ^netsw-about\.html$      -                  [L]
    -RewriteRule   ^netsw-img/.*$           -                  [L]
    -
    -#  anything else is a subdir which gets handled
    -#  by another cgi script
    -RewriteRule   !^netsw-lsdir\.cgi.*     -                  [C]
    -RewriteRule   (.*)                     netsw-lsdir.cgi/$1
    -
    - -

    Some hints for interpretation:

    - -
      -
    1. Notice the L (last) flag and no - substitution field ('-') in the forth part
    2. - -
    3. Notice the ! (not) character and - the C (chain) flag at the first rule - in the last part
    4. - -
    5. Notice the catch-all pattern in the last rule
    6. -
    -
    -
    - -
    top
    -
    -

    Redirect Failing URLs To Other Webserver

    - - - -
    -
    Description:
    - -
    -

    A typical FAQ about URL rewriting is how to redirect - failing requests on webserver A to webserver B. Usually - this is done via ErrorDocument CGI-scripts in Perl, but - there is also a mod_rewrite solution. - But notice that this performs more poorly than using an - ErrorDocument - CGI-script!

    -
    - -
    Solution:
    - -
    -

    The first solution has the best performance but less - flexibility, and is less error safe:

    - -
    -RewriteEngine on
    -RewriteCond   /your/docroot/%{REQUEST_FILENAME} !-f
    -RewriteRule   ^(.+)                             http://webserverB.dom/$1
    -
    - -

    The problem here is that this will only work for pages - inside the DocumentRoot. While you can add more - Conditions (for instance to also handle homedirs, etc.) - there is better variant:

    - -
    -RewriteEngine on
    -RewriteCond   %{REQUEST_URI} !-U
    -RewriteRule   ^(.+)          http://webserverB.dom/$1
    -
    - -

    This uses the URL look-ahead feature of mod_rewrite. - The result is that this will work for all types of URLs - and is a safe way. But it does a performance impact on - the webserver, because for every request there is one - more internal subrequest. So, if your webserver runs on a - powerful CPU, use this one. If it is a slow machine, use - the first approach or better a ErrorDocument CGI-script.

    -
    -
    - -
    top
    -
    -

    Archive Access Multiplexer

    - - - -
    -
    Description:
    - -
    -

    Do you know the great CPAN (Comprehensive Perl Archive - Network) under http://www.perl.com/CPAN? - This does a redirect to one of several FTP servers around - the world which carry a CPAN mirror and is approximately - near the location of the requesting client. Actually this - can be called an FTP access multiplexing service. While - CPAN runs via CGI scripts, how can a similar approach - implemented via mod_rewrite?

    -
    - -
    Solution:
    - -
    -

    First we notice that from version 3.0.0 - mod_rewrite can - also use the "ftp:" scheme on redirects. - And second, the location approximation can be done by a - RewriteMap - over the top-level domain of the client. - With a tricky chained ruleset we can use this top-level - domain as a key to our multiplexing map.

    - -
    -RewriteEngine on
    -RewriteMap    multiplex                txt:/path/to/map.cxan
    -RewriteRule   ^/CxAN/(.*)              %{REMOTE_HOST}::$1                 [C]
    -RewriteRule   ^.+\.([a-zA-Z]+)::(.*)$  ${multiplex:$1|ftp.default.dom}$2  [R,L]
    -
    - -
    -##
    -##  map.cxan -- Multiplexing Map for CxAN
    -##
    -
    -de        ftp://ftp.cxan.de/CxAN/
    -uk        ftp://ftp.cxan.uk/CxAN/
    -com       ftp://ftp.cxan.com/CxAN/
    - :
    -##EOF##
    -
    -
    -
    - -
    top
    -
    -

    Content Handling

    - - - -

    Browser Dependent Content

    - - - -
    -
    Description:
    - -
    -

    At least for important top-level pages it is sometimes - necessary to provide the optimum of browser dependent - content, i.e. one has to provide a maximum version for the - latest Netscape variants, a minimum version for the Lynx - browsers and a average feature version for all others.

    -
    - -
    Solution:
    - -
    -

    We cannot use content negotiation because the browsers do - not provide their type in that form. Instead we have to - act on the HTTP header "User-Agent". The following condig - does the following: If the HTTP header "User-Agent" - begins with "Mozilla/3", the page foo.html - is rewritten to foo.NS.html and and the - rewriting stops. If the browser is "Lynx" or "Mozilla" of - version 1 or 2 the URL becomes foo.20.html. - All other browsers receive page foo.32.html. - This is done by the following ruleset:

    - -
    -RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/3.*
    -RewriteRule ^foo\.html$         foo.NS.html          [L]
    -
    -RewriteCond %{HTTP_USER_AGENT}  ^Lynx/.*         [OR]
    -RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/[12].*
    -RewriteRule ^foo\.html$         foo.20.html          [L]
    -
    -RewriteRule ^foo\.html$         foo.32.html          [L]
    -
    -
    -
    - - - -

    Dynamic Mirror

    - - - -
    -
    Description:
    - -
    -

    Assume there are nice webpages on remote hosts we want - to bring into our namespace. For FTP servers we would use - the mirror program which actually maintains an - explicit up-to-date copy of the remote data on the local - machine. For a webserver we could use the program - webcopy which acts similar via HTTP. But both - techniques have one major drawback: The local copy is - always just as up-to-date as often we run the program. It - would be much better if the mirror is not a static one we - have to establish explicitly. Instead we want a dynamic - mirror with data which gets updated automatically when - there is need (updated data on the remote host).

    -
    - -
    Solution:
    - -
    -

    To provide this feature we map the remote webpage or even - the complete remote webarea to our namespace by the use - of the Proxy Throughput feature - (flag [P]):

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^hotsheet/(.*)$  http://www.tstimpreso.com/hotsheet/$1  [P]
    -
    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^usa-news\.html$   http://www.quux-corp.com/news/index.html  [P]
    -
    -
    -
    - - - -

    Reverse Dynamic Mirror

    - - - -
    -
    Description:
    - -
    ...
    - -
    Solution:
    - -
    -
    -RewriteEngine on
    -RewriteCond   /mirror/of/remotesite/$1           -U
    -RewriteRule   ^http://www\.remotesite\.com/(.*)$ /mirror/of/remotesite/$1
    -
    -
    -
    - - - -

    Retrieve Missing Data from Intranet

    - - - -
    -
    Description:
    - -
    -

    This is a tricky way of virtually running a corporate - (external) Internet webserver - (www.quux-corp.dom), while actually keeping - and maintaining its data on a (internal) Intranet webserver - (www2.quux-corp.dom) which is protected by a - firewall. The trick is that on the external webserver we - retrieve the requested data on-the-fly from the internal - one.

    -
    - -
    Solution:
    - -
    -

    First, we have to make sure that our firewall still - protects the internal webserver and that only the - external webserver is allowed to retrieve data from it. - For a packet-filtering firewall we could for instance - configure a firewall ruleset like the following:

    - -
    -ALLOW Host www.quux-corp.dom Port >1024 --> Host www2.quux-corp.dom Port 80
    -DENY  Host *                 Port *     --> Host www2.quux-corp.dom Port 80
    -
    - -

    Just adjust it to your actual configuration syntax. - Now we can establish the mod_rewrite - rules which request the missing data in the background - through the proxy throughput feature:

    - -
    -RewriteRule ^/~([^/]+)/?(.*)          /home/$1/.www/$2
    -RewriteCond %{REQUEST_FILENAME}       !-f
    -RewriteCond %{REQUEST_FILENAME}       !-d
    -RewriteRule ^/home/([^/]+)/.www/?(.*) http://www2.quux-corp.dom/~$1/pub/$2 [P]
    -
    -
    -
    - - - -

    Load Balancing

    - - - -
    -
    Description:
    - -
    -

    Suppose we want to load balance the traffic to - www.foo.com over www[0-5].foo.com - (a total of 6 servers). How can this be done?

    -
    - -
    Solution:
    - -
    -

    There are a lot of possible solutions for this problem. - We will discuss first a commonly known DNS-based variant - and then the special one with mod_rewrite:

    - -
      -
    1. - DNS Round-Robin - -

      The simplest method for load-balancing is to use - the DNS round-robin feature of BIND. - Here you just configure www[0-9].foo.com - as usual in your DNS with A(address) records, e.g.

      - -
      -www0   IN  A       1.2.3.1
      -www1   IN  A       1.2.3.2
      -www2   IN  A       1.2.3.3
      -www3   IN  A       1.2.3.4
      -www4   IN  A       1.2.3.5
      -www5   IN  A       1.2.3.6
      -
      - -

      Then you additionally add the following entry:

      - -
      -www    IN  CNAME   www0.foo.com.
      -       IN  CNAME   www1.foo.com.
      -       IN  CNAME   www2.foo.com.
      -       IN  CNAME   www3.foo.com.
      -       IN  CNAME   www4.foo.com.
      -       IN  CNAME   www5.foo.com.
      -       IN  CNAME   www6.foo.com.
      -
      - -

      Notice that this seems wrong, but is actually an - intended feature of BIND and can be used - in this way. However, now when www.foo.com gets - resolved, BIND gives out www0-www6 - - but in a slightly permutated/rotated order every time. - This way the clients are spread over the various - servers. But notice that this not a perfect load - balancing scheme, because DNS resolve information - gets cached by the other nameservers on the net, so - once a client has resolved www.foo.com - to a particular wwwN.foo.com, all - subsequent requests also go to this particular name - wwwN.foo.com. But the final result is - ok, because the total sum of the requests are really - spread over the various webservers.

      -
    2. - -
    3. - DNS Load-Balancing - -

      A sophisticated DNS-based method for - load-balancing is to use the program - lbnamed which can be found at - http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html. - It is a Perl 5 program in conjunction with auxilliary - tools which provides a real load-balancing for - DNS.

      -
    4. - -
    5. - Proxy Throughput Round-Robin - -

      In this variant we use mod_rewrite - and its proxy throughput feature. First we dedicate - www0.foo.com to be actually - www.foo.com by using a single

      - -
      -www    IN  CNAME   www0.foo.com.
      -
      - -

      entry in the DNS. Then we convert - www0.foo.com to a proxy-only server, - i.e. we configure this machine so all arriving URLs - are just pushed through the internal proxy to one of - the 5 other servers (www1-www5). To - accomplish this we first establish a ruleset which - contacts a load balancing script lb.pl - for all URLs.

      - -
      -RewriteEngine on
      -RewriteMap    lb      prg:/path/to/lb.pl
      -RewriteRule   ^/(.+)$ ${lb:$1}           [P,L]
      -
      - -

      Then we write lb.pl:

      - -
      -#!/path/to/perl
      -##
      -##  lb.pl -- load balancing script
      -##
      -
      -$| = 1;
      -
      -$name   = "www";     # the hostname base
      -$first  = 1;         # the first server (not 0 here, because 0 is myself)
      -$last   = 5;         # the last server in the round-robin
      -$domain = "foo.dom"; # the domainname
      -
      -$cnt = 0;
      -while (<STDIN>) {
      -    $cnt = (($cnt+1) % ($last+1-$first));
      -    $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain);
      -    print "http://$server/$_";
      -}
      -
      -##EOF##
      -
      - -
      A last notice: Why is this useful? Seems like - www0.foo.com still is overloaded? The - answer is yes, it is overloaded, but with plain proxy - throughput requests, only! All SSI, CGI, ePerl, etc. - processing is completely done on the other machines. - This is the essential point.
      -
    6. - -
    7. - Hardware/TCP Round-Robin - -

      There is a hardware solution available, too. Cisco - has a beast called LocalDirector which does a load - balancing at the TCP/IP level. Actually this is some - sort of a circuit level gateway in front of a - webcluster. If you have enough money and really need - a solution with high performance, use this one.

      -
    8. -
    -
    -
    - - - -

    New MIME-type, New Service

    - - - -
    -
    Description:
    - -
    -

    On the net there are a lot of nifty CGI programs. But - their usage is usually boring, so a lot of webmaster - don't use them. Even Apache's Action handler feature for - MIME-types is only appropriate when the CGI programs - don't need special URLs (actually PATH_INFO - and QUERY_STRINGS) as their input. First, - let us configure a new file type with extension - .scgi (for secure CGI) which will be processed - by the popular cgiwrap program. The problem - here is that for instance we use a Homogeneous URL Layout - (see above) a file inside the user homedirs has the URL - /u/user/foo/bar.scgi. But - cgiwrap needs the URL in the form - /~user/foo/bar.scgi/. The following rule - solves the problem:

    - -
    -RewriteRule ^/[uge]/([^/]+)/\.www/(.+)\.scgi(.*) ...
    -... /internal/cgi/user/cgiwrap/~$1/$2.scgi$3  [NS,T=application/x-http-cgi]
    -
    - -

    Or assume we have some more nifty programs: - wwwlog (which displays the - access.log for a URL subtree and - wwwidx (which runs Glimpse on a URL - subtree). We have to provide the URL area to these - programs so they know on which area they have to act on. - But usually this ugly, because they are all the times - still requested from that areas, i.e. typically we would - run the swwidx program from within - /u/user/foo/ via hyperlink to

    - -
    -/internal/cgi/user/swwidx?i=/u/user/foo/
    -
    - -

    which is ugly. Because we have to hard-code - both the location of the area - and the location of the CGI inside the - hyperlink. When we have to reorganize the area, we spend a - lot of time changing the various hyperlinks.

    -
    - -
    Solution:
    - -
    -

    The solution here is to provide a special new URL format - which automatically leads to the proper CGI invocation. - We configure the following:

    - -
    -RewriteRule   ^/([uge])/([^/]+)(/?.*)/\*  /internal/cgi/user/wwwidx?i=/$1/$2$3/
    -RewriteRule   ^/([uge])/([^/]+)(/?.*):log /internal/cgi/user/wwwlog?f=/$1/$2$3
    -
    - -

    Now the hyperlink to search at - /u/user/foo/ reads only

    - -
    -HREF="*"
    -
    - -

    which internally gets automatically transformed to

    - -
    -/internal/cgi/user/wwwidx?i=/u/user/foo/
    -
    - -

    The same approach leads to an invocation for the - access log CGI program when the hyperlink - :log gets used.

    -
    -
    - - - -

    On-the-fly Content-Regeneration

    - - - -
    -
    Description:
    - -
    -

    Here comes a really esoteric feature: Dynamically - generated but statically served pages, i.e. pages should be - delivered as pure static pages (read from the filesystem - and just passed through), but they have to be generated - dynamically by the webserver if missing. This way you can - have CGI-generated pages which are statically served unless - one (or a cronjob) removes the static contents. Then the - contents gets refreshed.

    -
    - -
    Solution:
    - -
    - This is done via the following ruleset: - -
    -RewriteCond %{REQUEST_FILENAME}   !-s
    -RewriteRule ^page\.html$          page.cgi   [T=application/x-httpd-cgi,L]
    -
    - -

    Here a request to page.html leads to a - internal run of a corresponding page.cgi if - page.html is still missing or has filesize - null. The trick here is that page.cgi is a - usual CGI script which (additionally to its STDOUT) - writes its output to the file page.html. - Once it was run, the server sends out the data of - page.html. When the webmaster wants to force - a refresh the contents, he just removes - page.html (usually done by a cronjob).

    -
    -
    - - - -

    Document With Autorefresh

    - - - -
    -
    Description:
    - -
    -

    Wouldn't it be nice while creating a complex webpage if - the webbrowser would automatically refresh the page every - time we write a new version from within our editor? - Impossible?

    -
    - -
    Solution:
    - -
    -

    No! We just combine the MIME multipart feature, the - webserver NPH feature and the URL manipulation power of - mod_rewrite. First, we establish a new - URL feature: Adding just :refresh to any - URL causes this to be refreshed every time it gets - updated on the filesystem.

    - -
    -RewriteRule   ^(/[uge]/[^/]+/?.*):refresh  /internal/cgi/apache/nph-refresh?f=$1
    -
    - -

    Now when we reference the URL

    - -
    -/u/foo/bar/page.html:refresh
    -
    - -

    this leads to the internal invocation of the URL

    - -
    -/internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html
    -
    - -

    The only missing part is the NPH-CGI script. Although - one would usually say "left as an exercise to the reader" - ;-) I will provide this, too.

    - -
    -#!/sw/bin/perl
    -##
    -##  nph-refresh -- NPH/CGI script for auto refreshing pages
    -##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
    -##
    -$| = 1;
    -
    -#   split the QUERY_STRING variable
    -@pairs = split(/&/, $ENV{'QUERY_STRING'});
    -foreach $pair (@pairs) {
    -    ($name, $value) = split(/=/, $pair);
    -    $name =~ tr/A-Z/a-z/;
    -    $name = 'QS_' . $name;
    -    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    -    eval "\$$name = \"$value\"";
    -}
    -$QS_s = 1 if ($QS_s eq '');
    -$QS_n = 3600 if ($QS_n eq '');
    -if ($QS_f eq '') {
    -    print "HTTP/1.0 200 OK\n";
    -    print "Content-type: text/html\n\n";
    -    print "&lt;b&gt;ERROR&lt;/b&gt;: No file given\n";
    -    exit(0);
    -}
    -if (! -f $QS_f) {
    -    print "HTTP/1.0 200 OK\n";
    -    print "Content-type: text/html\n\n";
    -    print "&lt;b&gt;ERROR&lt;/b&gt;: File $QS_f not found\n";
    -    exit(0);
    -}
    -
    -sub print_http_headers_multipart_begin {
    -    print "HTTP/1.0 200 OK\n";
    -    $bound = "ThisRandomString12345";
    -    print "Content-type: multipart/x-mixed-replace;boundary=$bound\n";
    -    &print_http_headers_multipart_next;
    -}
    -
    -sub print_http_headers_multipart_next {
    -    print "\n--$bound\n";
    -}
    -
    -sub print_http_headers_multipart_end {
    -    print "\n--$bound--\n";
    -}
    -
    -sub displayhtml {
    -    local($buffer) = @_;
    -    $len = length($buffer);
    -    print "Content-type: text/html\n";
    -    print "Content-length: $len\n\n";
    -    print $buffer;
    -}
    -
    -sub readfile {
    -    local($file) = @_;
    -    local(*FP, $size, $buffer, $bytes);
    -    ($x, $x, $x, $x, $x, $x, $x, $size) = stat($file);
    -    $size = sprintf("%d", $size);
    -    open(FP, "&lt;$file");
    -    $bytes = sysread(FP, $buffer, $size);
    -    close(FP);
    -    return $buffer;
    -}
    -
    -$buffer = &readfile($QS_f);
    -&print_http_headers_multipart_begin;
    -&displayhtml($buffer);
    -
    -sub mystat {
    -    local($file) = $_[0];
    -    local($time);
    -
    -    ($x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime) = stat($file);
    -    return $mtime;
    -}
    -
    -$mtimeL = &mystat($QS_f);
    -$mtime = $mtime;
    -for ($n = 0; $n &lt; $QS_n; $n++) {
    -    while (1) {
    -        $mtime = &mystat($QS_f);
    -        if ($mtime ne $mtimeL) {
    -            $mtimeL = $mtime;
    -            sleep(2);
    -            $buffer = &readfile($QS_f);
    -            &print_http_headers_multipart_next;
    -            &displayhtml($buffer);
    -            sleep(5);
    -            $mtimeL = &mystat($QS_f);
    -            last;
    -        }
    -        sleep($QS_s);
    -    }
    -}
    -
    -&print_http_headers_multipart_end;
    -
    -exit(0);
    -
    -##EOF##
    -
    -
    -
    - - - -

    Mass Virtual Hosting

    - - - -
    -
    Description:
    - -
    -

    The <VirtualHost> feature of Apache is nice - and works great when you just have a few dozens - virtual hosts. But when you are an ISP and have hundreds of - virtual hosts to provide this feature is not the best - choice.

    -
    - -
    Solution:
    - -
    -

    To provide this feature we map the remote webpage or even - the complete remote webarea to our namespace by the use - of the Proxy Throughput feature (flag [P]):

    - -
    -##
    -##  vhost.map
    -##
    -www.vhost1.dom:80  /path/to/docroot/vhost1
    -www.vhost2.dom:80  /path/to/docroot/vhost2
    -     :
    -www.vhostN.dom:80  /path/to/docroot/vhostN
    -
    - -
    -##
    -##  httpd.conf
    -##
    -    :
    -#   use the canonical hostname on redirects, etc.
    -UseCanonicalName on
    -
    -    :
    -#   add the virtual host in front of the CLF-format
    -CustomLog  /path/to/access_log  "%{VHOST}e %h %l %u %t \"%r\" %>s %b"
    -    :
    -
    -#   enable the rewriting engine in the main server
    -RewriteEngine on
    -
    -#   define two maps: one for fixing the URL and one which defines
    -#   the available virtual hosts with their corresponding
    -#   DocumentRoot.
    -RewriteMap    lowercase    int:tolower
    -RewriteMap    vhost        txt:/path/to/vhost.map
    -
    -#   Now do the actual virtual host mapping
    -#   via a huge and complicated single rule:
    -#
    -#   1. make sure we don't map for common locations
    -RewriteCond   %{REQUEST_URI}  !^/commonurl1/.*
    -RewriteCond   %{REQUEST_URI}  !^/commonurl2/.*
    -    :
    -RewriteCond   %{REQUEST_URI}  !^/commonurlN/.*
    -#
    -#   2. make sure we have a Host header, because
    -#      currently our approach only supports
    -#      virtual hosting through this header
    -RewriteCond   %{HTTP_HOST}  !^$
    -#
    -#   3. lowercase the hostname
    -RewriteCond   ${lowercase:%{HTTP_HOST}|NONE}  ^(.+)$
    -#
    -#   4. lookup this hostname in vhost.map and
    -#      remember it only when it is a path
    -#      (and not "NONE" from above)
    -RewriteCond   ${vhost:%1}  ^(/.*)$
    -#
    -#   5. finally we can map the URL to its docroot location
    -#      and remember the virtual host for logging puposes
    -RewriteRule   ^/(.*)$   %1/$1  [E=VHOST:${lowercase:%{HTTP_HOST}}]
    -    :
    -
    -
    -
    - - - -
    top
    -
    -

    Access Restriction

    - - - -

    Host Deny

    - - - -
    -
    Description:
    - -
    -

    How can we forbid a list of externally configured hosts - from using our server?

    -
    - -
    Solution:
    - -
    -

    For Apache >= 1.3b6:

    - -
    -RewriteEngine on
    -RewriteMap    hosts-deny  txt:/path/to/hosts.deny
    -RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]
    -RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND
    -RewriteRule   ^/.*  -  [F]
    -
    - -

    For Apache <= 1.3b6:

    - -
    -RewriteEngine on
    -RewriteMap    hosts-deny  txt:/path/to/hosts.deny
    -RewriteRule   ^/(.*)$ ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}/$1
    -RewriteRule   !^NOT-FOUND/.* - [F]
    -RewriteRule   ^NOT-FOUND/(.*)$ ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}/$1
    -RewriteRule   !^NOT-FOUND/.* - [F]
    -RewriteRule   ^NOT-FOUND/(.*)$ /$1
    -
    - -
    -##
    -##  hosts.deny
    -##
    -##  ATTENTION! This is a map, not a list, even when we treat it as such.
    -##             mod_rewrite parses it for key/value pairs, so at least a
    -##             dummy value "-" must be present for each entry.
    -##
    -
    -193.102.180.41 -
    -bsdti1.sdm.de  -
    -192.76.162.40  -
    -
    -
    -
    - - - -

    Proxy Deny

    - - - -
    -
    Description:
    - -
    -

    How can we forbid a certain host or even a user of a - special host from using the Apache proxy?

    -
    - -
    Solution:
    - -
    -

    We first have to make sure mod_rewrite - is below(!) mod_proxy in the Configuration - file when compiling the Apache webserver. This way it gets - called before mod_proxy. Then we - configure the following for a host-dependent deny...

    - -
    -RewriteCond %{REMOTE_HOST} ^badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    - -

    ...and this one for a user@host-dependent deny:

    - -
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST}  ^badguy@badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    -
    -
    - - - -

    Special Authentication Variant

    - - - -
    -
    Description:
    - -
    -

    Sometimes a very special authentication is needed, for - instance a authentication which checks for a set of - explicitly configured users. Only these should receive - access and without explicit prompting (which would occur - when using the Basic Auth via mod_auth).

    -
    - -
    Solution:
    - -
    -

    We use a list of rewrite conditions to exclude all except - our friends:

    - -
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend1@client1.quux-corp\.com$
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend2@client2.quux-corp\.com$
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend3@client3.quux-corp\.com$
    -RewriteRule ^/~quux/only-for-friends/      -                                 [F]
    -
    -
    -
    - - - -

    Referer-based Deflector

    - - - -
    -
    Description:
    - -
    -

    How can we program a flexible URL Deflector which acts - on the "Referer" HTTP header and can be configured with as - many referring pages as we like?

    -
    - -
    Solution:
    - -
    -

    Use the following really tricky ruleset...

    - -
    -RewriteMap  deflector txt:/path/to/deflector.map
    -
    -RewriteCond %{HTTP_REFERER} !=""
    -RewriteCond ${deflector:%{HTTP_REFERER}} ^-$
    -RewriteRule ^.* %{HTTP_REFERER} [R,L]
    -
    -RewriteCond %{HTTP_REFERER} !=""
    -RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
    -RewriteRule ^.* ${deflector:%{HTTP_REFERER}} [R,L]
    -
    - -

    ... in conjunction with a corresponding rewrite - map:

    - -
    -##
    -##  deflector.map
    -##
    -
    -http://www.badguys.com/bad/index.html    -
    -http://www.badguys.com/bad/index2.html   -
    -http://www.badguys.com/bad/index3.html   http://somewhere.com/
    -
    - -

    This automatically redirects the request back to the - referring page (when "-" is used as the value - in the map) or to a specific URL (when an URL is specified - in the map as the second argument).

    -
    -
    - - - -
    -
    -

    Available Languages:  en 

    -
    - \ No newline at end of file diff --git a/docs/manual/rewrite/rewrite_guide_advanced.xml b/docs/manual/rewrite/rewrite_guide_advanced.xml deleted file mode 100644 index 8b12d819db8..00000000000 --- a/docs/manual/rewrite/rewrite_guide_advanced.xml +++ /dev/null @@ -1,1292 +0,0 @@ - - - - - - - - - - - URL Rewriting Guide - Advanced topics - - - -

    This document supplements the mod_rewrite - reference documentation. - It describes how one can use Apache's mod_rewrite - to solve typical URL-based problems with which webmasters are - commonony confronted. We give detailed descriptions on how to - solve each problem by configuring URL rewriting rulesets.

    - - ATTENTION: Depending on your server configuration - it may be necessary to slightly change the examples for your - situation, e.g. adding the [PT] flag when - additionally using mod_alias and - mod_userdir, etc. Or rewriting a ruleset - to fit in .htaccess context instead - of per-server context. Always try to understand what a - particular ruleset really does before you use it. This - avoids many problems. - -
    -Module -documentation -mod_rewrite -introduction -Practical solutions to common -problems -Technical details - - -
    - - Webcluster through Homogeneous URL Layout - -
    -
    Description:
    - -
    -

    We want to create a homogeneous and consistent URL - layout over all WWW servers on a Intranet webcluster, i.e. - all URLs (per definition server local and thus server - dependent!) become actually server independent! - What we want is to give the WWW namespace a consistent - server-independent layout: no URL should have to include - any physically correct target server. The cluster itself - should drive us automatically to the physical target - host.

    -
    - -
    Solution:
    - -
    -

    First, the knowledge of the target servers come from - (distributed) external maps which contain information - where our users, groups and entities stay. The have the - form

    - -
    -user1  server_of_user1
    -user2  server_of_user2
    -:      :
    -
    - -

    We put them into files map.xxx-to-host. - Second we need to instruct all servers to redirect URLs - of the forms

    - -
    -/u/user/anypath
    -/g/group/anypath
    -/e/entity/anypath
    -
    - -

    to

    - -
    -http://physical-host/u/user/anypath
    -http://physical-host/g/group/anypath
    -http://physical-host/e/entity/anypath
    -
    - -

    when the URL is not locally valid to a server. The - following ruleset does this for us by the help of the map - files (assuming that server0 is a default server which - will be used if a user has no entry in the map):

    - -
    -RewriteEngine on
    -
    -RewriteMap      user-to-host   txt:/path/to/map.user-to-host
    -RewriteMap     group-to-host   txt:/path/to/map.group-to-host
    -RewriteMap    entity-to-host   txt:/path/to/map.entity-to-host
    -
    -RewriteRule   ^/u/([^/]+)/?(.*)   http://${user-to-host:$1|server0}/u/$1/$2
    -RewriteRule   ^/g/([^/]+)/?(.*)  http://${group-to-host:$1|server0}/g/$1/$2
    -RewriteRule   ^/e/([^/]+)/?(.*) http://${entity-to-host:$1|server0}/e/$1/$2
    -
    -RewriteRule   ^/([uge])/([^/]+)/?$          /$1/$2/.www/
    -RewriteRule   ^/([uge])/([^/]+)/([^.]+.+)   /$1/$2/.www/$3\
    -
    -
    -
    - -
    - -
    - - Structured Homedirs - -
    -
    Description:
    - -
    -

    Some sites with thousands of users usually use a - structured homedir layout, i.e. each homedir is in a - subdirectory which begins for instance with the first - character of the username. So, /~foo/anypath - is /home/f/foo/.www/anypath - while /~bar/anypath is - /home/b/bar/.www/anypath.

    -
    - -
    Solution:
    - -
    -

    We use the following ruleset to expand the tilde URLs - into exactly the above layout.

    - -
    -RewriteEngine on
    -RewriteRule   ^/~(([a-z])[a-z0-9]+)(.*)  /home/$2/$1/.www$3
    -
    -
    -
    - -
    - -
    - - Filesystem Reorganization - -
    -
    Description:
    - -
    -

    This really is a hardcore example: a killer application - which heavily uses per-directory - RewriteRules to get a smooth look and feel - on the Web while its data structure is never touched or - adjusted. Background: net.sw is - my archive of freely available Unix software packages, - which I started to collect in 1992. It is both my hobby - and job to to this, because while I'm studying computer - science I have also worked for many years as a system and - network administrator in my spare time. Every week I need - some sort of software so I created a deep hierarchy of - directories where I stored the packages:

    - -
    -drwxrwxr-x   2 netsw  users    512 Aug  3 18:39 Audio/
    -drwxrwxr-x   2 netsw  users    512 Jul  9 14:37 Benchmark/
    -drwxrwxr-x  12 netsw  users    512 Jul  9 00:34 Crypto/
    -drwxrwxr-x   5 netsw  users    512 Jul  9 00:41 Database/
    -drwxrwxr-x   4 netsw  users    512 Jul 30 19:25 Dicts/
    -drwxrwxr-x  10 netsw  users    512 Jul  9 01:54 Graphic/
    -drwxrwxr-x   5 netsw  users    512 Jul  9 01:58 Hackers/
    -drwxrwxr-x   8 netsw  users    512 Jul  9 03:19 InfoSys/
    -drwxrwxr-x   3 netsw  users    512 Jul  9 03:21 Math/
    -drwxrwxr-x   3 netsw  users    512 Jul  9 03:24 Misc/
    -drwxrwxr-x   9 netsw  users    512 Aug  1 16:33 Network/
    -drwxrwxr-x   2 netsw  users    512 Jul  9 05:53 Office/
    -drwxrwxr-x   7 netsw  users    512 Jul  9 09:24 SoftEng/
    -drwxrwxr-x   7 netsw  users    512 Jul  9 12:17 System/
    -drwxrwxr-x  12 netsw  users    512 Aug  3 20:15 Typesetting/
    -drwxrwxr-x  10 netsw  users    512 Jul  9 14:08 X11/
    -
    - -

    In July 1996 I decided to make this archive public to - the world via a nice Web interface. "Nice" means that I - wanted to offer an interface where you can browse - directly through the archive hierarchy. And "nice" means - that I didn't wanted to change anything inside this - hierarchy - not even by putting some CGI scripts at the - top of it. Why? Because the above structure should be - later accessible via FTP as well, and I didn't want any - Web or CGI stuff to be there.

    -
    - -
    Solution:
    - -
    -

    The solution has two parts: The first is a set of CGI - scripts which create all the pages at all directory - levels on-the-fly. I put them under - /e/netsw/.www/ as follows:

    - -
    --rw-r--r--   1 netsw  users    1318 Aug  1 18:10 .wwwacl
    -drwxr-xr-x  18 netsw  users     512 Aug  5 15:51 DATA/
    --rw-rw-rw-   1 netsw  users  372982 Aug  5 16:35 LOGFILE
    --rw-r--r--   1 netsw  users     659 Aug  4 09:27 TODO
    --rw-r--r--   1 netsw  users    5697 Aug  1 18:01 netsw-about.html
    --rwxr-xr-x   1 netsw  users     579 Aug  2 10:33 netsw-access.pl
    --rwxr-xr-x   1 netsw  users    1532 Aug  1 17:35 netsw-changes.cgi
    --rwxr-xr-x   1 netsw  users    2866 Aug  5 14:49 netsw-home.cgi
    -drwxr-xr-x   2 netsw  users     512 Jul  8 23:47 netsw-img/
    --rwxr-xr-x   1 netsw  users   24050 Aug  5 15:49 netsw-lsdir.cgi
    --rwxr-xr-x   1 netsw  users    1589 Aug  3 18:43 netsw-search.cgi
    --rwxr-xr-x   1 netsw  users    1885 Aug  1 17:41 netsw-tree.cgi
    --rw-r--r--   1 netsw  users     234 Jul 30 16:35 netsw-unlimit.lst
    -
    - -

    The DATA/ subdirectory holds the above - directory structure, i.e. the real - net.sw stuff and gets - automatically updated via rdist from time to - time. The second part of the problem remains: how to link - these two structures together into one smooth-looking URL - tree? We want to hide the DATA/ directory - from the user while running the appropriate CGI scripts - for the various URLs. Here is the solution: first I put - the following into the per-directory configuration file - in the DocumentRoot - of the server to rewrite the announced URL - /net.sw/ to the internal path - /e/netsw:

    - -
    -RewriteRule  ^net.sw$       net.sw/        [R]
    -RewriteRule  ^net.sw/(.*)$  e/netsw/$1
    -
    - -

    The first rule is for requests which miss the trailing - slash! The second rule does the real thing. And then - comes the killer configuration which stays in the - per-directory config file - /e/netsw/.www/.wwwacl:

    - -
    -Options       ExecCGI FollowSymLinks Includes MultiViews
    -
    -RewriteEngine on
    -
    -#  we are reached via /net.sw/ prefix
    -RewriteBase   /net.sw/
    -
    -#  first we rewrite the root dir to
    -#  the handling cgi script
    -RewriteRule   ^$                       netsw-home.cgi     [L]
    -RewriteRule   ^index\.html$            netsw-home.cgi     [L]
    -
    -#  strip out the subdirs when
    -#  the browser requests us from perdir pages
    -RewriteRule   ^.+/(netsw-[^/]+/.+)$    $1                 [L]
    -
    -#  and now break the rewriting for local files
    -RewriteRule   ^netsw-home\.cgi.*       -                  [L]
    -RewriteRule   ^netsw-changes\.cgi.*    -                  [L]
    -RewriteRule   ^netsw-search\.cgi.*     -                  [L]
    -RewriteRule   ^netsw-tree\.cgi$        -                  [L]
    -RewriteRule   ^netsw-about\.html$      -                  [L]
    -RewriteRule   ^netsw-img/.*$           -                  [L]
    -
    -#  anything else is a subdir which gets handled
    -#  by another cgi script
    -RewriteRule   !^netsw-lsdir\.cgi.*     -                  [C]
    -RewriteRule   (.*)                     netsw-lsdir.cgi/$1
    -
    - -

    Some hints for interpretation:

    - -
      -
    1. Notice the L (last) flag and no - substitution field ('-') in the forth part
    2. - -
    3. Notice the ! (not) character and - the C (chain) flag at the first rule - in the last part
    4. - -
    5. Notice the catch-all pattern in the last rule
    6. -
    -
    -
    - -
    - -
    - - Redirect Failing URLs To Other Webserver - -
    -
    Description:
    - -
    -

    A typical FAQ about URL rewriting is how to redirect - failing requests on webserver A to webserver B. Usually - this is done via ErrorDocument CGI-scripts in Perl, but - there is also a mod_rewrite solution. - But notice that this performs more poorly than using an - ErrorDocument - CGI-script!

    -
    - -
    Solution:
    - -
    -

    The first solution has the best performance but less - flexibility, and is less error safe:

    - -
    -RewriteEngine on
    -RewriteCond   /your/docroot/%{REQUEST_FILENAME} !-f
    -RewriteRule   ^(.+)                             http://webserverB.dom/$1
    -
    - -

    The problem here is that this will only work for pages - inside the DocumentRoot. While you can add more - Conditions (for instance to also handle homedirs, etc.) - there is better variant:

    - -
    -RewriteEngine on
    -RewriteCond   %{REQUEST_URI} !-U
    -RewriteRule   ^(.+)          http://webserverB.dom/$1
    -
    - -

    This uses the URL look-ahead feature of mod_rewrite. - The result is that this will work for all types of URLs - and is a safe way. But it does a performance impact on - the webserver, because for every request there is one - more internal subrequest. So, if your webserver runs on a - powerful CPU, use this one. If it is a slow machine, use - the first approach or better a ErrorDocument CGI-script.

    -
    -
    - -
    - -
    - - Archive Access Multiplexer - -
    -
    Description:
    - -
    -

    Do you know the great CPAN (Comprehensive Perl Archive - Network) under http://www.perl.com/CPAN? - This does a redirect to one of several FTP servers around - the world which carry a CPAN mirror and is approximately - near the location of the requesting client. Actually this - can be called an FTP access multiplexing service. While - CPAN runs via CGI scripts, how can a similar approach - implemented via mod_rewrite?

    -
    - -
    Solution:
    - -
    -

    First we notice that from version 3.0.0 - mod_rewrite can - also use the "ftp:" scheme on redirects. - And second, the location approximation can be done by a - RewriteMap - over the top-level domain of the client. - With a tricky chained ruleset we can use this top-level - domain as a key to our multiplexing map.

    - -
    -RewriteEngine on
    -RewriteMap    multiplex                txt:/path/to/map.cxan
    -RewriteRule   ^/CxAN/(.*)              %{REMOTE_HOST}::$1                 [C]
    -RewriteRule   ^.+\.([a-zA-Z]+)::(.*)$  ${multiplex:$1|ftp.default.dom}$2  [R,L]
    -
    - -
    -##
    -##  map.cxan -- Multiplexing Map for CxAN
    -##
    -
    -de        ftp://ftp.cxan.de/CxAN/
    -uk        ftp://ftp.cxan.uk/CxAN/
    -com       ftp://ftp.cxan.com/CxAN/
    - :
    -##EOF##
    -
    -
    -
    - -
    - -
    - - Content Handling - -
    - - Browser Dependent Content - -
    -
    Description:
    - -
    -

    At least for important top-level pages it is sometimes - necessary to provide the optimum of browser dependent - content, i.e. one has to provide a maximum version for the - latest Netscape variants, a minimum version for the Lynx - browsers and a average feature version for all others.

    -
    - -
    Solution:
    - -
    -

    We cannot use content negotiation because the browsers do - not provide their type in that form. Instead we have to - act on the HTTP header "User-Agent". The following condig - does the following: If the HTTP header "User-Agent" - begins with "Mozilla/3", the page foo.html - is rewritten to foo.NS.html and and the - rewriting stops. If the browser is "Lynx" or "Mozilla" of - version 1 or 2 the URL becomes foo.20.html. - All other browsers receive page foo.32.html. - This is done by the following ruleset:

    - -
    -RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/3.*
    -RewriteRule ^foo\.html$         foo.NS.html          [L]
    -
    -RewriteCond %{HTTP_USER_AGENT}  ^Lynx/.*         [OR]
    -RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/[12].*
    -RewriteRule ^foo\.html$         foo.20.html          [L]
    -
    -RewriteRule ^foo\.html$         foo.32.html          [L]
    -
    -
    -
    - -
    - -
    - - Dynamic Mirror - -
    -
    Description:
    - -
    -

    Assume there are nice webpages on remote hosts we want - to bring into our namespace. For FTP servers we would use - the mirror program which actually maintains an - explicit up-to-date copy of the remote data on the local - machine. For a webserver we could use the program - webcopy which acts similar via HTTP. But both - techniques have one major drawback: The local copy is - always just as up-to-date as often we run the program. It - would be much better if the mirror is not a static one we - have to establish explicitly. Instead we want a dynamic - mirror with data which gets updated automatically when - there is need (updated data on the remote host).

    -
    - -
    Solution:
    - -
    -

    To provide this feature we map the remote webpage or even - the complete remote webarea to our namespace by the use - of the Proxy Throughput feature - (flag [P]):

    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^hotsheet/(.*)$  http://www.tstimpreso.com/hotsheet/$1  [P]
    -
    - -
    -RewriteEngine  on
    -RewriteBase    /~quux/
    -RewriteRule    ^usa-news\.html$   http://www.quux-corp.com/news/index.html  [P]
    -
    -
    -
    - -
    - -
    - - Reverse Dynamic Mirror - -
    -
    Description:
    - -
    ...
    - -
    Solution:
    - -
    -
    -RewriteEngine on
    -RewriteCond   /mirror/of/remotesite/$1           -U
    -RewriteRule   ^http://www\.remotesite\.com/(.*)$ /mirror/of/remotesite/$1
    -
    -
    -
    - -
    - -
    - - Retrieve Missing Data from Intranet - -
    -
    Description:
    - -
    -

    This is a tricky way of virtually running a corporate - (external) Internet webserver - (www.quux-corp.dom), while actually keeping - and maintaining its data on a (internal) Intranet webserver - (www2.quux-corp.dom) which is protected by a - firewall. The trick is that on the external webserver we - retrieve the requested data on-the-fly from the internal - one.

    -
    - -
    Solution:
    - -
    -

    First, we have to make sure that our firewall still - protects the internal webserver and that only the - external webserver is allowed to retrieve data from it. - For a packet-filtering firewall we could for instance - configure a firewall ruleset like the following:

    - -
    -ALLOW Host www.quux-corp.dom Port >1024 --> Host www2.quux-corp.dom Port 80
    -DENY  Host *                 Port *     --> Host www2.quux-corp.dom Port 80
    -
    - -

    Just adjust it to your actual configuration syntax. - Now we can establish the mod_rewrite - rules which request the missing data in the background - through the proxy throughput feature:

    - -
    -RewriteRule ^/~([^/]+)/?(.*)          /home/$1/.www/$2
    -RewriteCond %{REQUEST_FILENAME}       !-f
    -RewriteCond %{REQUEST_FILENAME}       !-d
    -RewriteRule ^/home/([^/]+)/.www/?(.*) http://www2.quux-corp.dom/~$1/pub/$2 [P]
    -
    -
    -
    - -
    - -
    - - Load Balancing - -
    -
    Description:
    - -
    -

    Suppose we want to load balance the traffic to - www.foo.com over www[0-5].foo.com - (a total of 6 servers). How can this be done?

    -
    - -
    Solution:
    - -
    -

    There are a lot of possible solutions for this problem. - We will discuss first a commonly known DNS-based variant - and then the special one with mod_rewrite:

    - -
      -
    1. - DNS Round-Robin - -

      The simplest method for load-balancing is to use - the DNS round-robin feature of BIND. - Here you just configure www[0-9].foo.com - as usual in your DNS with A(address) records, e.g.

      - -
      -www0   IN  A       1.2.3.1
      -www1   IN  A       1.2.3.2
      -www2   IN  A       1.2.3.3
      -www3   IN  A       1.2.3.4
      -www4   IN  A       1.2.3.5
      -www5   IN  A       1.2.3.6
      -
      - -

      Then you additionally add the following entry:

      - -
      -www    IN  CNAME   www0.foo.com.
      -       IN  CNAME   www1.foo.com.
      -       IN  CNAME   www2.foo.com.
      -       IN  CNAME   www3.foo.com.
      -       IN  CNAME   www4.foo.com.
      -       IN  CNAME   www5.foo.com.
      -       IN  CNAME   www6.foo.com.
      -
      - -

      Notice that this seems wrong, but is actually an - intended feature of BIND and can be used - in this way. However, now when www.foo.com gets - resolved, BIND gives out www0-www6 - - but in a slightly permutated/rotated order every time. - This way the clients are spread over the various - servers. But notice that this not a perfect load - balancing scheme, because DNS resolve information - gets cached by the other nameservers on the net, so - once a client has resolved www.foo.com - to a particular wwwN.foo.com, all - subsequent requests also go to this particular name - wwwN.foo.com. But the final result is - ok, because the total sum of the requests are really - spread over the various webservers.

      -
    2. - -
    3. - DNS Load-Balancing - -

      A sophisticated DNS-based method for - load-balancing is to use the program - lbnamed which can be found at - http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html. - It is a Perl 5 program in conjunction with auxilliary - tools which provides a real load-balancing for - DNS.

      -
    4. - -
    5. - Proxy Throughput Round-Robin - -

      In this variant we use mod_rewrite - and its proxy throughput feature. First we dedicate - www0.foo.com to be actually - www.foo.com by using a single

      - -
      -www    IN  CNAME   www0.foo.com.
      -
      - -

      entry in the DNS. Then we convert - www0.foo.com to a proxy-only server, - i.e. we configure this machine so all arriving URLs - are just pushed through the internal proxy to one of - the 5 other servers (www1-www5). To - accomplish this we first establish a ruleset which - contacts a load balancing script lb.pl - for all URLs.

      - -
      -RewriteEngine on
      -RewriteMap    lb      prg:/path/to/lb.pl
      -RewriteRule   ^/(.+)$ ${lb:$1}           [P,L]
      -
      - -

      Then we write lb.pl:

      - -
      -#!/path/to/perl
      -##
      -##  lb.pl -- load balancing script
      -##
      -
      -$| = 1;
      -
      -$name   = "www";     # the hostname base
      -$first  = 1;         # the first server (not 0 here, because 0 is myself)
      -$last   = 5;         # the last server in the round-robin
      -$domain = "foo.dom"; # the domainname
      -
      -$cnt = 0;
      -while (<STDIN>) {
      -    $cnt = (($cnt+1) % ($last+1-$first));
      -    $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain);
      -    print "http://$server/$_";
      -}
      -
      -##EOF##
      -
      - - A last notice: Why is this useful? Seems like - www0.foo.com still is overloaded? The - answer is yes, it is overloaded, but with plain proxy - throughput requests, only! All SSI, CGI, ePerl, etc. - processing is completely done on the other machines. - This is the essential point. -
    6. - -
    7. - Hardware/TCP Round-Robin - -

      There is a hardware solution available, too. Cisco - has a beast called LocalDirector which does a load - balancing at the TCP/IP level. Actually this is some - sort of a circuit level gateway in front of a - webcluster. If you have enough money and really need - a solution with high performance, use this one.

      -
    8. -
    -
    -
    - -
    - -
    - - New MIME-type, New Service - -
    -
    Description:
    - -
    -

    On the net there are a lot of nifty CGI programs. But - their usage is usually boring, so a lot of webmaster - don't use them. Even Apache's Action handler feature for - MIME-types is only appropriate when the CGI programs - don't need special URLs (actually PATH_INFO - and QUERY_STRINGS) as their input. First, - let us configure a new file type with extension - .scgi (for secure CGI) which will be processed - by the popular cgiwrap program. The problem - here is that for instance we use a Homogeneous URL Layout - (see above) a file inside the user homedirs has the URL - /u/user/foo/bar.scgi. But - cgiwrap needs the URL in the form - /~user/foo/bar.scgi/. The following rule - solves the problem:

    - -
    -RewriteRule ^/[uge]/([^/]+)/\.www/(.+)\.scgi(.*) ...
    -... /internal/cgi/user/cgiwrap/~$1/$2.scgi$3  [NS,T=application/x-http-cgi]
    -
    - -

    Or assume we have some more nifty programs: - wwwlog (which displays the - access.log for a URL subtree and - wwwidx (which runs Glimpse on a URL - subtree). We have to provide the URL area to these - programs so they know on which area they have to act on. - But usually this ugly, because they are all the times - still requested from that areas, i.e. typically we would - run the swwidx program from within - /u/user/foo/ via hyperlink to

    - -
    -/internal/cgi/user/swwidx?i=/u/user/foo/
    -
    - -

    which is ugly. Because we have to hard-code - both the location of the area - and the location of the CGI inside the - hyperlink. When we have to reorganize the area, we spend a - lot of time changing the various hyperlinks.

    -
    - -
    Solution:
    - -
    -

    The solution here is to provide a special new URL format - which automatically leads to the proper CGI invocation. - We configure the following:

    - -
    -RewriteRule   ^/([uge])/([^/]+)(/?.*)/\*  /internal/cgi/user/wwwidx?i=/$1/$2$3/
    -RewriteRule   ^/([uge])/([^/]+)(/?.*):log /internal/cgi/user/wwwlog?f=/$1/$2$3
    -
    - -

    Now the hyperlink to search at - /u/user/foo/ reads only

    - -
    -HREF="*"
    -
    - -

    which internally gets automatically transformed to

    - -
    -/internal/cgi/user/wwwidx?i=/u/user/foo/
    -
    - -

    The same approach leads to an invocation for the - access log CGI program when the hyperlink - :log gets used.

    -
    -
    - -
    - -
    - - On-the-fly Content-Regeneration - -
    -
    Description:
    - -
    -

    Here comes a really esoteric feature: Dynamically - generated but statically served pages, i.e. pages should be - delivered as pure static pages (read from the filesystem - and just passed through), but they have to be generated - dynamically by the webserver if missing. This way you can - have CGI-generated pages which are statically served unless - one (or a cronjob) removes the static contents. Then the - contents gets refreshed.

    -
    - -
    Solution:
    - -
    - This is done via the following ruleset: - -
    -RewriteCond %{REQUEST_FILENAME}   !-s
    -RewriteRule ^page\.html$          page.cgi   [T=application/x-httpd-cgi,L]
    -
    - -

    Here a request to page.html leads to a - internal run of a corresponding page.cgi if - page.html is still missing or has filesize - null. The trick here is that page.cgi is a - usual CGI script which (additionally to its STDOUT) - writes its output to the file page.html. - Once it was run, the server sends out the data of - page.html. When the webmaster wants to force - a refresh the contents, he just removes - page.html (usually done by a cronjob).

    -
    -
    - -
    - -
    - - Document With Autorefresh - -
    -
    Description:
    - -
    -

    Wouldn't it be nice while creating a complex webpage if - the webbrowser would automatically refresh the page every - time we write a new version from within our editor? - Impossible?

    -
    - -
    Solution:
    - -
    -

    No! We just combine the MIME multipart feature, the - webserver NPH feature and the URL manipulation power of - mod_rewrite. First, we establish a new - URL feature: Adding just :refresh to any - URL causes this to be refreshed every time it gets - updated on the filesystem.

    - -
    -RewriteRule   ^(/[uge]/[^/]+/?.*):refresh  /internal/cgi/apache/nph-refresh?f=$1
    -
    - -

    Now when we reference the URL

    - -
    -/u/foo/bar/page.html:refresh
    -
    - -

    this leads to the internal invocation of the URL

    - -
    -/internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html
    -
    - -

    The only missing part is the NPH-CGI script. Although - one would usually say "left as an exercise to the reader" - ;-) I will provide this, too.

    - -
    -#!/sw/bin/perl
    -##
    -##  nph-refresh -- NPH/CGI script for auto refreshing pages
    -##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
    -##
    -$| = 1;
    -
    -#   split the QUERY_STRING variable
    -@pairs = split(/&/, $ENV{'QUERY_STRING'});
    -foreach $pair (@pairs) {
    -    ($name, $value) = split(/=/, $pair);
    -    $name =~ tr/A-Z/a-z/;
    -    $name = 'QS_' . $name;
    -    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    -    eval "\$$name = \"$value\"";
    -}
    -$QS_s = 1 if ($QS_s eq '');
    -$QS_n = 3600 if ($QS_n eq '');
    -if ($QS_f eq '') {
    -    print "HTTP/1.0 200 OK\n";
    -    print "Content-type: text/html\n\n";
    -    print "&lt;b&gt;ERROR&lt;/b&gt;: No file given\n";
    -    exit(0);
    -}
    -if (! -f $QS_f) {
    -    print "HTTP/1.0 200 OK\n";
    -    print "Content-type: text/html\n\n";
    -    print "&lt;b&gt;ERROR&lt;/b&gt;: File $QS_f not found\n";
    -    exit(0);
    -}
    -
    -sub print_http_headers_multipart_begin {
    -    print "HTTP/1.0 200 OK\n";
    -    $bound = "ThisRandomString12345";
    -    print "Content-type: multipart/x-mixed-replace;boundary=$bound\n";
    -    &print_http_headers_multipart_next;
    -}
    -
    -sub print_http_headers_multipart_next {
    -    print "\n--$bound\n";
    -}
    -
    -sub print_http_headers_multipart_end {
    -    print "\n--$bound--\n";
    -}
    -
    -sub displayhtml {
    -    local($buffer) = @_;
    -    $len = length($buffer);
    -    print "Content-type: text/html\n";
    -    print "Content-length: $len\n\n";
    -    print $buffer;
    -}
    -
    -sub readfile {
    -    local($file) = @_;
    -    local(*FP, $size, $buffer, $bytes);
    -    ($x, $x, $x, $x, $x, $x, $x, $size) = stat($file);
    -    $size = sprintf("%d", $size);
    -    open(FP, "&lt;$file");
    -    $bytes = sysread(FP, $buffer, $size);
    -    close(FP);
    -    return $buffer;
    -}
    -
    -$buffer = &readfile($QS_f);
    -&print_http_headers_multipart_begin;
    -&displayhtml($buffer);
    -
    -sub mystat {
    -    local($file) = $_[0];
    -    local($time);
    -
    -    ($x, $x, $x, $x, $x, $x, $x, $x, $x, $mtime) = stat($file);
    -    return $mtime;
    -}
    -
    -$mtimeL = &mystat($QS_f);
    -$mtime = $mtime;
    -for ($n = 0; $n &lt; $QS_n; $n++) {
    -    while (1) {
    -        $mtime = &mystat($QS_f);
    -        if ($mtime ne $mtimeL) {
    -            $mtimeL = $mtime;
    -            sleep(2);
    -            $buffer = &readfile($QS_f);
    -            &print_http_headers_multipart_next;
    -            &displayhtml($buffer);
    -            sleep(5);
    -            $mtimeL = &mystat($QS_f);
    -            last;
    -        }
    -        sleep($QS_s);
    -    }
    -}
    -
    -&print_http_headers_multipart_end;
    -
    -exit(0);
    -
    -##EOF##
    -
    -
    -
    - -
    - -
    - - Mass Virtual Hosting - -
    -
    Description:
    - -
    -

    The VirtualHost feature of Apache is nice - and works great when you just have a few dozens - virtual hosts. But when you are an ISP and have hundreds of - virtual hosts to provide this feature is not the best - choice.

    -
    - -
    Solution:
    - -
    -

    To provide this feature we map the remote webpage or even - the complete remote webarea to our namespace by the use - of the Proxy Throughput feature (flag [P]):

    - -
    -##
    -##  vhost.map
    -##
    -www.vhost1.dom:80  /path/to/docroot/vhost1
    -www.vhost2.dom:80  /path/to/docroot/vhost2
    -     :
    -www.vhostN.dom:80  /path/to/docroot/vhostN
    -
    - -
    -##
    -##  httpd.conf
    -##
    -    :
    -#   use the canonical hostname on redirects, etc.
    -UseCanonicalName on
    -
    -    :
    -#   add the virtual host in front of the CLF-format
    -CustomLog  /path/to/access_log  "%{VHOST}e %h %l %u %t \"%r\" %>s %b"
    -    :
    -
    -#   enable the rewriting engine in the main server
    -RewriteEngine on
    -
    -#   define two maps: one for fixing the URL and one which defines
    -#   the available virtual hosts with their corresponding
    -#   DocumentRoot.
    -RewriteMap    lowercase    int:tolower
    -RewriteMap    vhost        txt:/path/to/vhost.map
    -
    -#   Now do the actual virtual host mapping
    -#   via a huge and complicated single rule:
    -#
    -#   1. make sure we don't map for common locations
    -RewriteCond   %{REQUEST_URI}  !^/commonurl1/.*
    -RewriteCond   %{REQUEST_URI}  !^/commonurl2/.*
    -    :
    -RewriteCond   %{REQUEST_URI}  !^/commonurlN/.*
    -#
    -#   2. make sure we have a Host header, because
    -#      currently our approach only supports
    -#      virtual hosting through this header
    -RewriteCond   %{HTTP_HOST}  !^$
    -#
    -#   3. lowercase the hostname
    -RewriteCond   ${lowercase:%{HTTP_HOST}|NONE}  ^(.+)$
    -#
    -#   4. lookup this hostname in vhost.map and
    -#      remember it only when it is a path
    -#      (and not "NONE" from above)
    -RewriteCond   ${vhost:%1}  ^(/.*)$
    -#
    -#   5. finally we can map the URL to its docroot location
    -#      and remember the virtual host for logging puposes
    -RewriteRule   ^/(.*)$   %1/$1  [E=VHOST:${lowercase:%{HTTP_HOST}}]
    -    :
    -
    -
    -
    - -
    - -
    - -
    - - Access Restriction - -
    - - Host Deny - -
    -
    Description:
    - -
    -

    How can we forbid a list of externally configured hosts - from using our server?

    -
    - -
    Solution:
    - -
    -

    For Apache >= 1.3b6:

    - -
    -RewriteEngine on
    -RewriteMap    hosts-deny  txt:/path/to/hosts.deny
    -RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR]
    -RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND
    -RewriteRule   ^/.*  -  [F]
    -
    - -

    For Apache <= 1.3b6:

    - -
    -RewriteEngine on
    -RewriteMap    hosts-deny  txt:/path/to/hosts.deny
    -RewriteRule   ^/(.*)$ ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}/$1
    -RewriteRule   !^NOT-FOUND/.* - [F]
    -RewriteRule   ^NOT-FOUND/(.*)$ ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}/$1
    -RewriteRule   !^NOT-FOUND/.* - [F]
    -RewriteRule   ^NOT-FOUND/(.*)$ /$1
    -
    - -
    -##
    -##  hosts.deny
    -##
    -##  ATTENTION! This is a map, not a list, even when we treat it as such.
    -##             mod_rewrite parses it for key/value pairs, so at least a
    -##             dummy value "-" must be present for each entry.
    -##
    -
    -193.102.180.41 -
    -bsdti1.sdm.de  -
    -192.76.162.40  -
    -
    -
    -
    - -
    - -
    - - Proxy Deny - -
    -
    Description:
    - -
    -

    How can we forbid a certain host or even a user of a - special host from using the Apache proxy?

    -
    - -
    Solution:
    - -
    -

    We first have to make sure mod_rewrite - is below(!) mod_proxy in the Configuration - file when compiling the Apache webserver. This way it gets - called before mod_proxy. Then we - configure the following for a host-dependent deny...

    - -
    -RewriteCond %{REMOTE_HOST} ^badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    - -

    ...and this one for a user@host-dependent deny:

    - -
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST}  ^badguy@badhost\.mydomain\.com$
    -RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
    -
    -
    -
    - -
    - -
    - - Special Authentication Variant - -
    -
    Description:
    - -
    -

    Sometimes a very special authentication is needed, for - instance a authentication which checks for a set of - explicitly configured users. Only these should receive - access and without explicit prompting (which would occur - when using the Basic Auth via mod_auth).

    -
    - -
    Solution:
    - -
    -

    We use a list of rewrite conditions to exclude all except - our friends:

    - -
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend1@client1.quux-corp\.com$
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend2@client2.quux-corp\.com$
    -RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST} !^friend3@client3.quux-corp\.com$
    -RewriteRule ^/~quux/only-for-friends/      -                                 [F]
    -
    -
    -
    - -
    - -
    - - Referer-based Deflector - -
    -
    Description:
    - -
    -

    How can we program a flexible URL Deflector which acts - on the "Referer" HTTP header and can be configured with as - many referring pages as we like?

    -
    - -
    Solution:
    - -
    -

    Use the following really tricky ruleset...

    - -
    -RewriteMap  deflector txt:/path/to/deflector.map
    -
    -RewriteCond %{HTTP_REFERER} !=""
    -RewriteCond ${deflector:%{HTTP_REFERER}} ^-$
    -RewriteRule ^.* %{HTTP_REFERER} [R,L]
    -
    -RewriteCond %{HTTP_REFERER} !=""
    -RewriteCond ${deflector:%{HTTP_REFERER}|NOT-FOUND} !=NOT-FOUND
    -RewriteRule ^.* ${deflector:%{HTTP_REFERER}} [R,L]
    -
    - -

    ... in conjunction with a corresponding rewrite - map:

    - -
    -##
    -##  deflector.map
    -##
    -
    -http://www.badguys.com/bad/index.html    -
    -http://www.badguys.com/bad/index2.html   -
    -http://www.badguys.com/bad/index3.html   http://somewhere.com/
    -
    - -

    This automatically redirects the request back to the - referring page (when "-" is used as the value - in the map) or to a specific URL (when an URL is specified - in the map as the second argument).

    -
    -
    - -
    - -
    - -
    - diff --git a/docs/manual/rewrite/rewrite_guide_advanced.xml.meta b/docs/manual/rewrite/rewrite_guide_advanced.xml.meta deleted file mode 100644 index f0c7bf26866..00000000000 --- a/docs/manual/rewrite/rewrite_guide_advanced.xml.meta +++ /dev/null @@ -1,11 +0,0 @@ - - - - rewrite_guide_advanced - /rewrite/ - .. - - - en - - diff --git a/docs/manual/rewrite/rewrite_intro.html b/docs/manual/rewrite/rewrite_intro.html deleted file mode 100644 index 607f1c18aba..00000000000 --- a/docs/manual/rewrite/rewrite_intro.html +++ /dev/null @@ -1,3 +0,0 @@ -URI: rewrite_intro.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/rewrite_intro.html.en b/docs/manual/rewrite/rewrite_intro.html.en deleted file mode 100644 index 98822eac742..00000000000 --- a/docs/manual/rewrite/rewrite_intro.html.en +++ /dev/null @@ -1,165 +0,0 @@ - - - -Apache mod_rewrite Introduction - Apache HTTP Server - - - - - -
    <-
    -

    Apache mod_rewrite Introduction

    -
    -

    Available Languages:  en 

    -
    - -

    This document supplements the mod_rewrite -reference documentation. It -describes the basic concepts necessary for use of -mod_rewrite. Other documents go into greater detail, -but this doc should help the beginner get their feet wet. -

    -
    - -
    top
    -
    -

    Introduction

    -

    The Apache module mod_rewrite is a very powerful and -sophisticated module which provides a way to do URL manipulations. With -it, you can do nearly all types of URL rewriting that you may need. It -is, however, somewhat complex, and may be intimidating to the beginner. -There is also a tendency to treat rewrite rules as magic incantation, -using them without actually understanding what they do.

    - -

    This document attempts to give sufficient background so that what -follows is understood, rather than just copied blindly. -

    -
    top
    -
    -

    Regular Expressions

    - -

    mod_rewrite uses the Perl Compatible -Regular Expression vocabulary. In this document, we do not attempt -to provide a detailed reference to regular expressions. For that, we -recommend the PCRE man pages, the -Perl regular -expression man page, and Mastering -Regular Expressions, by Jeffrey Friedl.

    - -

    In this document, we attempt to provide enough of a regex vocabulary -to get you started, without being overwhelming, in the hope that -RewriteRules will be scientific -formulae, rather than magical incantations.

    - -

    Regex vocabulary

    - -

    The following are the minimal building blocks you will need, in order -to write regular expressions and RewriteRules.

    - - - - - - - - - -
    CharacterMeaning
    .Matches any character
    - - - -

    Regex Back-Reference Availability

    - -

    One important thing here has to be remembered: Whenever you - use parentheses in Pattern or in one of the - CondPattern, back-references are internally created - which can be used with the strings $N and - %N (see below). These are available for creating - the strings Substitution and TestString. - Figure 2 shows to which locations the back-references are - transferred for expansion.

    - -

    - [Needs graphics capability to display]
    - Figure 2: The back-reference flow through a rule. -

    - - -
    top
    -
    -

    RewriteRule basics

    -

    -Basic anatomy of a RewriteRule, with exhaustively annotated simple -examples. -

    -
    top
    -
    -

    Rewrite Flags

    -

    Discussion of the flags to RewriteRule, and when and why one might -use them.

    -
    top
    -
    -

    Rewrite conditions

    -

    Discussion of RewriteCond, looping, and other related concepts. -

    -
    top
    -
    -

    Rewrite maps

    -

    Discussion of RewriteMap, including simple, but heavily annotated, -examples.

    -
    top
    -
    -

    .htaccess files

    -

    Discussion of the differences between rewrite rules in httpd.conf and -in .htaccess files.

    -
    top
    -
    -

    Environment Variables

    - -

    This module keeps track of two additional (non-standard) -CGI/SSI environment variables named SCRIPT_URL -and SCRIPT_URI. These contain the -logical Web-view to the current resource, while the -standard CGI/SSI variables SCRIPT_NAME and -SCRIPT_FILENAME contain the physical -System-view.

    - -

    Notice: These variables hold the URI/URL as they were -initially requested, i.e., before any -rewriting. This is important because the rewriting process is -primarily used to rewrite logical URLs to physical -pathnames.

    - -

    Example

    -SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
    -SCRIPT_FILENAME=/u/rse/.www/index.html
    -SCRIPT_URL=/u/rse/
    -SCRIPT_URI=http://en1.engelschall.com/u/rse/
    -
    - -
    -
    -

    Available Languages:  en 

    -
    - \ No newline at end of file diff --git a/docs/manual/rewrite/rewrite_intro.xml b/docs/manual/rewrite/rewrite_intro.xml deleted file mode 100644 index 3336169bdea..00000000000 --- a/docs/manual/rewrite/rewrite_intro.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - Apache mod_rewrite Introduction - - -

    This document supplements the mod_rewrite -reference documentation. It -describes the basic concepts necessary for use of -mod_rewrite. Other documents go into greater detail, -but this doc should help the beginner get their feet wet. -

    -
    - -Module -documentation -Technical details -Practical solutions to common -problems -Practical solutions to -advanced problems - -
    Introduction -

    The Apache module mod_rewrite is a very powerful and -sophisticated module which provides a way to do URL manipulations. With -it, you can do nearly all types of URL rewriting that you may need. It -is, however, somewhat complex, and may be intimidating to the beginner. -There is also a tendency to treat rewrite rules as magic incantation, -using them without actually understanding what they do.

    - -

    This document attempts to give sufficient background so that what -follows is understood, rather than just copied blindly. -

    -
    - -
    Regular Expressions - -

    mod_rewrite uses the Perl Compatible -Regular Expression vocabulary. In this document, we do not attempt -to provide a detailed reference to regular expressions. For that, we -recommend the PCRE man pages, the -Perl regular -expression man page, and Mastering -Regular Expressions, by Jeffrey Friedl.

    - -

    In this document, we attempt to provide enough of a regex vocabulary -to get you started, without being overwhelming, in the hope that -RewriteRules will be scientific -formulae, rather than magical incantations.

    - -
    Regex vocabulary - -

    The following are the minimal building blocks you will need, in order -to write regular expressions and RewriteRules.

    - - - - - - - - - -
    CharacterMeaning
    .Matches any character
    - -
    - -
    Regex Back-Reference Availability - -

    One important thing here has to be remembered: Whenever you - use parentheses in Pattern or in one of the - CondPattern, back-references are internally created - which can be used with the strings $N and - %N (see below). These are available for creating - the strings Substitution and TestString. - Figure 2 shows to which locations the back-references are - transferred for expansion.

    - -

    - [Needs graphics capability to display]
    - Figure 2: The back-reference flow through a rule. -

    - -
    -
    - -
    RewriteRule basics -

    -Basic anatomy of a RewriteRule, with exhaustively annotated simple -examples. -

    -
    - -
    Rewrite Flags -

    Discussion of the flags to RewriteRule, and when and why one might -use them.

    -
    - -
    Rewrite conditions -

    Discussion of RewriteCond, looping, and other related concepts. -

    -
    - -
    Rewrite maps -

    Discussion of RewriteMap, including simple, but heavily annotated, -examples.

    -
    - -
    .htaccess files -

    Discussion of the differences between rewrite rules in httpd.conf and -in .htaccess files.

    -
    - -
    Environment Variables - -

    This module keeps track of two additional (non-standard) -CGI/SSI environment variables named SCRIPT_URL -and SCRIPT_URI. These contain the -logical Web-view to the current resource, while the -standard CGI/SSI variables SCRIPT_NAME and -SCRIPT_FILENAME contain the physical -System-view.

    - -

    Notice: These variables hold the URI/URL as they were -initially requested, i.e., before any -rewriting. This is important because the rewriting process is -primarily used to rewrite logical URLs to physical -pathnames.

    - -Example -
    -SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
    -SCRIPT_FILENAME=/u/rse/.www/index.html
    -SCRIPT_URL=/u/rse/
    -SCRIPT_URI=http://en1.engelschall.com/u/rse/
    -
    -
    - -
    - -
    - diff --git a/docs/manual/rewrite/rewrite_intro.xml.meta b/docs/manual/rewrite/rewrite_intro.xml.meta deleted file mode 100644 index fc07817eff3..00000000000 --- a/docs/manual/rewrite/rewrite_intro.xml.meta +++ /dev/null @@ -1,11 +0,0 @@ - - - - rewrite_intro - /rewrite/ - .. - - - en - - diff --git a/docs/manual/rewrite/rewrite_tech.html b/docs/manual/rewrite/rewrite_tech.html deleted file mode 100644 index 4e06869fbe0..00000000000 --- a/docs/manual/rewrite/rewrite_tech.html +++ /dev/null @@ -1,3 +0,0 @@ -URI: rewrite_tech.html.en -Content-Language: en -Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/rewrite_tech.html.en b/docs/manual/rewrite/rewrite_tech.html.en deleted file mode 100644 index 111795fced7..00000000000 --- a/docs/manual/rewrite/rewrite_tech.html.en +++ /dev/null @@ -1,167 +0,0 @@ - - - -Apache mod_rewrite Technical Details - Apache HTTP Server - - - - - -
    <-
    -

    Apache mod_rewrite Technical Details

    -
    -

    Available Languages:  en 

    -
    - -

    This document discusses some of the technical details of mod_rewrite -and URL matching.

    -
    - -
    top
    -
    -

    Internal Processing

    - -

    The internal processing of this module is very complex but - needs to be explained once even to the average user to avoid - common mistakes and to let you exploit its full - functionality.

    -
    top
    -
    -

    API Phases

    - -

    First you have to understand that when Apache processes a - HTTP request it does this in phases. A hook for each of these - phases is provided by the Apache API. Mod_rewrite uses two of - these hooks: the URL-to-filename translation hook which is - used after the HTTP request has been read but before any - authorization starts and the Fixup hook which is triggered - after the authorization phases and after the per-directory - config files (.htaccess) have been read, but - before the content handler is activated.

    - -

    So, after a request comes in and Apache has determined the - corresponding server (or virtual server) the rewriting engine - starts processing of all mod_rewrite directives from the - per-server configuration in the URL-to-filename phase. A few - steps later when the final data directories are found, the - per-directory configuration directives of mod_rewrite are - triggered in the Fixup phase. In both situations mod_rewrite - rewrites URLs either to new URLs or to filenames, although - there is no obvious distinction between them. This is a usage - of the API which was not intended to be this way when the API - was designed, but as of Apache 1.x this is the only way - mod_rewrite can operate. To make this point more clear - remember the following two points:

    - -
      -
    1. Although mod_rewrite rewrites URLs to URLs, URLs to - filenames and even filenames to filenames, the API - currently provides only a URL-to-filename hook. In Apache - 2.0 the two missing hooks will be added to make the - processing more clear. But this point has no drawbacks for - the user, it is just a fact which should be remembered: - Apache does more in the URL-to-filename hook than the API - intends for it.
    2. - -
    3. - Unbelievably mod_rewrite provides URL manipulations in - per-directory context, i.e., within - .htaccess files, although these are reached - a very long time after the URLs have been translated to - filenames. It has to be this way because - .htaccess files live in the filesystem, so - processing has already reached this stage. In other - words: According to the API phases at this time it is too - late for any URL manipulations. To overcome this chicken - and egg problem mod_rewrite uses a trick: When you - manipulate a URL/filename in per-directory context - mod_rewrite first rewrites the filename back to its - corresponding URL (which is usually impossible, but see - the RewriteBase directive below for the - trick to achieve this) and then initiates a new internal - sub-request with the new URL. This restarts processing of - the API phases. - -

      Again mod_rewrite tries hard to make this complicated - step totally transparent to the user, but you should - remember here: While URL manipulations in per-server - context are really fast and efficient, per-directory - rewrites are slow and inefficient due to this chicken and - egg problem. But on the other hand this is the only way - mod_rewrite can provide (locally restricted) URL - manipulations to the average user.

      -
    4. -
    - -

    Don't forget these two points!

    -
    top
    -
    -

    Ruleset Processing

    - -

    Now when mod_rewrite is triggered in these two API phases, it - reads the configured rulesets from its configuration - structure (which itself was either created on startup for - per-server context or during the directory walk of the Apache - kernel for per-directory context). Then the URL rewriting - engine is started with the contained ruleset (one or more - rules together with their conditions). The operation of the - URL rewriting engine itself is exactly the same for both - configuration contexts. Only the final result processing is - different.

    - -

    The order of rules in the ruleset is important because the - rewriting engine processes them in a special (and not very - obvious) order. The rule is this: The rewriting engine loops - through the ruleset rule by rule (RewriteRule directives) and - when a particular rule matches it optionally loops through - existing corresponding conditions (RewriteCond - directives). For historical reasons the conditions are given - first, and so the control flow is a little bit long-winded. See - Figure 1 for more details.

    -

    - [Needs graphics capability to display]
    - Figure 1:The control flow through the rewriting ruleset -

    -

    As you can see, first the URL is matched against the - Pattern of each rule. When it fails mod_rewrite - immediately stops processing this rule and continues with the - next rule. If the Pattern matches, mod_rewrite looks - for corresponding rule conditions. If none are present, it - just substitutes the URL with a new value which is - constructed from the string Substitution and goes on - with its rule-looping. But if conditions exist, it starts an - inner loop for processing them in the order that they are - listed. For conditions the logic is different: we don't match - a pattern against the current URL. Instead we first create a - string TestString by expanding variables, - back-references, map lookups, etc. and then we try - to match CondPattern against it. If the pattern - doesn't match, the complete set of conditions and the - corresponding rule fails. If the pattern matches, then the - next condition is processed until no more conditions are - available. If all conditions match, processing is continued - with the substitution of the URL with - Substitution.

    - -
    -
    -

    Available Languages:  en 

    -
    - \ No newline at end of file diff --git a/docs/manual/rewrite/rewrite_tech.xml b/docs/manual/rewrite/rewrite_tech.xml deleted file mode 100644 index c83eba07b7e..00000000000 --- a/docs/manual/rewrite/rewrite_tech.xml +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - Apache mod_rewrite Technical Details - - -

    This document discusses some of the technical details of mod_rewrite -and URL matching.

    -
    -Module -documentation -mod_rewrite -introduction -Practical solutions to common -problems -Practical solutions to -advanced problems - -
    Internal Processing - -

    The internal processing of this module is very complex but - needs to be explained once even to the average user to avoid - common mistakes and to let you exploit its full - functionality.

    -
    - -
    API Phases - -

    First you have to understand that when Apache processes a - HTTP request it does this in phases. A hook for each of these - phases is provided by the Apache API. Mod_rewrite uses two of - these hooks: the URL-to-filename translation hook which is - used after the HTTP request has been read but before any - authorization starts and the Fixup hook which is triggered - after the authorization phases and after the per-directory - config files (.htaccess) have been read, but - before the content handler is activated.

    - -

    So, after a request comes in and Apache has determined the - corresponding server (or virtual server) the rewriting engine - starts processing of all mod_rewrite directives from the - per-server configuration in the URL-to-filename phase. A few - steps later when the final data directories are found, the - per-directory configuration directives of mod_rewrite are - triggered in the Fixup phase. In both situations mod_rewrite - rewrites URLs either to new URLs or to filenames, although - there is no obvious distinction between them. This is a usage - of the API which was not intended to be this way when the API - was designed, but as of Apache 1.x this is the only way - mod_rewrite can operate. To make this point more clear - remember the following two points:

    - -
      -
    1. Although mod_rewrite rewrites URLs to URLs, URLs to - filenames and even filenames to filenames, the API - currently provides only a URL-to-filename hook. In Apache - 2.0 the two missing hooks will be added to make the - processing more clear. But this point has no drawbacks for - the user, it is just a fact which should be remembered: - Apache does more in the URL-to-filename hook than the API - intends for it.
    2. - -
    3. - Unbelievably mod_rewrite provides URL manipulations in - per-directory context, i.e., within - .htaccess files, although these are reached - a very long time after the URLs have been translated to - filenames. It has to be this way because - .htaccess files live in the filesystem, so - processing has already reached this stage. In other - words: According to the API phases at this time it is too - late for any URL manipulations. To overcome this chicken - and egg problem mod_rewrite uses a trick: When you - manipulate a URL/filename in per-directory context - mod_rewrite first rewrites the filename back to its - corresponding URL (which is usually impossible, but see - the RewriteBase directive below for the - trick to achieve this) and then initiates a new internal - sub-request with the new URL. This restarts processing of - the API phases. - -

      Again mod_rewrite tries hard to make this complicated - step totally transparent to the user, but you should - remember here: While URL manipulations in per-server - context are really fast and efficient, per-directory - rewrites are slow and inefficient due to this chicken and - egg problem. But on the other hand this is the only way - mod_rewrite can provide (locally restricted) URL - manipulations to the average user.

      -
    4. -
    - -

    Don't forget these two points!

    -
    - -
    Ruleset Processing - -

    Now when mod_rewrite is triggered in these two API phases, it - reads the configured rulesets from its configuration - structure (which itself was either created on startup for - per-server context or during the directory walk of the Apache - kernel for per-directory context). Then the URL rewriting - engine is started with the contained ruleset (one or more - rules together with their conditions). The operation of the - URL rewriting engine itself is exactly the same for both - configuration contexts. Only the final result processing is - different.

    - -

    The order of rules in the ruleset is important because the - rewriting engine processes them in a special (and not very - obvious) order. The rule is this: The rewriting engine loops - through the ruleset rule by rule (RewriteRule directives) and - when a particular rule matches it optionally loops through - existing corresponding conditions (RewriteCond - directives). For historical reasons the conditions are given - first, and so the control flow is a little bit long-winded. See - Figure 1 for more details.

    -

    - [Needs graphics capability to display]
    - Figure 1:The control flow through the rewriting ruleset -

    -

    As you can see, first the URL is matched against the - Pattern of each rule. When it fails mod_rewrite - immediately stops processing this rule and continues with the - next rule. If the Pattern matches, mod_rewrite looks - for corresponding rule conditions. If none are present, it - just substitutes the URL with a new value which is - constructed from the string Substitution and goes on - with its rule-looping. But if conditions exist, it starts an - inner loop for processing them in the order that they are - listed. For conditions the logic is different: we don't match - a pattern against the current URL. Instead we first create a - string TestString by expanding variables, - back-references, map lookups, etc. and then we try - to match CondPattern against it. If the pattern - doesn't match, the complete set of conditions and the - corresponding rule fails. If the pattern matches, then the - next condition is processed until no more conditions are - available. If all conditions match, processing is continued - with the substitution of the URL with - Substitution.

    - -
    - - -
    - diff --git a/docs/manual/rewrite/rewrite_tech.xml.meta b/docs/manual/rewrite/rewrite_tech.xml.meta deleted file mode 100644 index afe8c36e2b7..00000000000 --- a/docs/manual/rewrite/rewrite_tech.xml.meta +++ /dev/null @@ -1,11 +0,0 @@ - - - - rewrite_tech - /rewrite/ - .. - - - en - - diff --git a/docs/manual/rewrite/rewritemap.html b/docs/manual/rewrite/rewritemap.html new file mode 100644 index 00000000000..1894835795c --- /dev/null +++ b/docs/manual/rewrite/rewritemap.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: rewritemap.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/rewritemap.html.en b/docs/manual/rewrite/rewritemap.html.en new file mode 100644 index 00000000000..6d501a68121 --- /dev/null +++ b/docs/manual/rewrite/rewritemap.html.en @@ -0,0 +1,452 @@ + + + + + +Using RewriteMap - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Using RewriteMap

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It describes +the use of the RewriteMap directive, +and provides examples of each of the various RewriteMap types.

    + +
    Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration.
    + +
    + +
    top
    +
    +

    Introduction

    + + +

    + The RewriteMap directive + defines an external function which can be called in the context of + RewriteRule or + RewriteCond directives to + perform rewriting that is too complicated, or too specialized to be + performed just by regular expressions. The source of this lookup can + be any of the types listed in the sections below, and enumerated in + the RewriteMap reference + documentation.

    + +

    The syntax of the RewriteMap directive is as + follows:

    + +

    +RewriteMap MapName MapType:MapSource +

    + +

    The MapName is an + arbitray name that you assign to the map, and which you will use in + directives later on. Arguments are passed to the map via the + following syntax:

    + +

    + + ${ MapName : LookupKey + }
    ${ MapName : + LookupKey | DefaultValue } +
    +

    + +

    When such a construct occurs, the map MapName is + consulted and the key LookupKey is looked-up. If the + key is found, the map-function construct is substituted by + SubstValue. If the key is not found then it is + substituted by DefaultValue or by the empty string + if no DefaultValue was specified.

    + +

    For example, you might define a + RewriteMap as:

    +

    + RewriteMap examplemap txt:/path/to/file/map.txt +

    +

    You would then be able to use this map in a + RewriteRule as follows:

    +

    + RewriteRule ^/ex/(.*) ${examplemap:$1} +

    + +

    A default value can be specified in the event that nothing is found +in the map:

    + +

    +RewriteRule ^/ex/(.*) ${examplemap:$1|/not_found.html} +

    + +

    Per-directory and .htaccess context

    +

    +The RewriteMap directive may not be used in +<Directory> sections or .htaccess files. You must +declare the map in server or virtualhost context. You may use the map, +once created, in your RewriteRule and +RewriteCond directives in those scopes. You just can't +declare it in those scopes. +

    +
    + +

    The sections that follow describe the various MapTypes that +may be used, and give examples of each.

    +
    top
    +
    +

    txt: Plain text maps

    + + +

    When a MapType of txt is used, the MapSource is a filesystem path to a + plain-text mapping file, containing space-separated key/value pair + per line. Optionally, a line may be contain a comment, starting with + a '#' character.

    + +

    For example, the following might be valid entries in a map + file.

    + +

    + # Comment line
    + MatchingKey SubstValue
    + MatchingKey SubstValue # comment
    +

    + +

    When the RewriteMap is invoked the argument is looked for in the + first argument of a line, and, if found, the substitution value is + returned.

    + +

    For example, we might use a mapfile to translate product names to + product IDs for easier-to-remember URLs, using the following + recipe:

    + +

    Product to ID configuration

    + RewriteMap product2id txt:/etc/apache2/productmap.txt
    + RewriteRule ^/product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT] +

    + +

    We assume here that the prods.php script knows what + to do when it received an argument of id=NOTFOUND when + a product is not found in the lookup map.

    + +

    The file /etc/apache2/productmap.txt then contains + the following:

    + +

    Product to ID map

    +##
    +## productmap.txt - Product to ID map file
    +##
    +
    +television 993
    +stereo 198
    +fishingrod 043
    +basketball 418
    +telephone 328 +

    + +

    Thus, when http://example.com/product/television is + requested, the RewriteRule is applied, and the request + is internally mapped to /prods.php?id=993.

    + +

    Note: .htaccess files

    + The example given is crafted to be used in server or virtualhost + scope. If you're planning to use this in a .htaccess + file, you'll need to remove the leading slash from the rewrite + pattern in order for it to match anything: +

    + RewriteRule ^product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT] +

    +
    + +

    Cached lookups

    +

    + The looked-up keys are cached by httpd until the mtime + (modified time) of the mapfile changes, or the httpd server is + restarted. This ensures better performance on maps that are called + by many requests. +

    +
    + +
    top
    +
    +

    rnd: Randomized Plain Text

    + + +

    When a MapType of rnd is used, the MapSource is a + filesystem path to a plain-text mapping file, each line of which + contains a key, and one or more values separated by |. + One of these values will be chosen at random if the key is + matched.

    + +

    For example, you might use the following map + file and directives to provide a random load balancing between + several back-end server, via a reverse-proxy. Images are sent + to one of the servers in the 'static' pool, while everything + else is sent to one of the 'dynamic' pool.

    + +

    Rewrite map file

    +##
    +## map.txt -- rewriting map
    +##
    +
    +static www1|www2|www3|www4
    +dynamic www5|www6 +

    + +

    Configuration directives

    + RewriteMap servers rnd:/path/to/file/map.txt
    +
    + RewriteRule ^/(.*\.(png|gif|jpg)) http://${servers:static}/$1 [NC,P,L]
    + RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L] +

    + +

    So, when an image is requested and the first of these rules is + matched, RewriteMap looks up the string + static in the map file, which returns one of the + specified hostnames at random, which is then used in the + RewriteRule target.

    + +

    If you wanted to have one of the servers more likely to be chosen + (for example, if one of the server has more memory than the others, + and so can handle more requests) simply list it more times in the + map file.

    + +

    +static www1|www1|www2|www3|www4 +

    + +
    top
    +
    +

    dbm: DBM Hash File

    + + +

    When a MapType of dbm is used, the MapSource is a + filesystem path to a DBM database file containing key/value pairs to + be used in the mapping. This works exactly the same way as the + txt map, but is much faster, because a DBM is indexed, + whereas a text file is not. This allows more rapid access to the + desired key.

    + +

    You may optionally specify a particular dbm type:

    + +

    + RewriteMap examplemap dbm=sdbm:/etc/apache/mapfile.dbm +

    + +

    The type can be sdbm, gdbm, ndbm or db. + However, it is recommended that you just use the httxt2dbm utility that is + provided with Apache HTTP Server, as it will use the correct DBM library, + matching the one that was used when httpd itself was built.

    + +

    To create a dbm file, first create a text map file as described + in the txt section. Then run + httxt2dbm:

    + +

    +$ httxt2dbm -i mapfile.txt -o mapfile.map +

    + +

    You can then reference the resulting file in your +RewriteMap directive:

    + +

    +RewriteMap mapname dbm:/etc/apache/mapfile.map +

    + +
    +

    Note that with some dbm types, more than one file is generated, with +a common base name. For example, you may have two files named +mapfile.map.dir and mapfiile.map.pag. This is +normal, and you need only use the base name mapfile.map in +your RewriteMap directive.

    +
    + +

    Cached lookups

    +

    +The looked-up keys are cached by httpd until the mtime +(modified time) of the mapfile changes, or the httpd server is +restarted. This ensures better performance on maps that are called +by many requests. +

    +
    + +
    top
    +
    +

    int: Internal Function

    + + +

    When a MapType of int is used, the MapSource is one + of the available internal RewriteMap functions. Module authors can provide + additional internal functions by registering them with the + ap_register_rewrite_mapfunc API. + The functions that are provided by default are: +

    + +
      +
    • toupper:
      + Converts the key to all upper case.
    • +
    • tolower:
      + Converts the key to all lower case.
    • +
    • escape:
      + Translates special characters in the key to + hex-encodings.
    • +
    • unescape:
      + Translates hex-encodings in the key back to + special characters.
    • +
    + +

    + To use one of these functions, create a RewriteMap referencing + the int function, and then use that in your RewriteRule: +

    + +

    Redirect a URI to an all-lowercase version of itself

    + RewriteMap lc int:tolower
    + RewriteRule (.*[A-Z]+.*) ${lc:$1} [R] +

    + +
    +

    Please note that the example offered here is for + illustration purposes only, and is not a recommendation. If you want + to make URLs case-insensitive, consider using + mod_speling instead. +

    +
    + +
    top
    +
    +

    prg: External Rewriting Program

    + +

    When a MapType of prg is used, the MapSource is a + filesystem path to an executable program which will providing the + mapping behavior. This can be a compiled binary file, or a program + in an interpreted language such as Perl or Python.

    + +

    This program is started once, when the Apache HTTP Server is + started, and then communicates with the rewriting engine via + STDIN and STDOUT. That is, for each map + function lookup, it expects one argument via STDIN, and + should return one new-line terminated response string on + STDOUT. If there is no corresponding lookup value, the + map program should return the four-character string + "NULL" to indicate this.

    + +

    External rewriting programs are not started if they're defined in + a context that does not have RewriteEngine set to + on.

    + +

    A simple example is shown here which will replace all dashes with + underscores in a request URI.

    + +

    Rewrite configuration

    + RewriteMap d2u prg:/www/bin/dash2under.pl
    + RewriteRule - ${d2u:%{REQUEST_URI}} +

    + +

    dash2under.pl

    + #!/usr/bin/perl
    + $| = 1; # Turn off I/O buffering
    + while (<STDIN>) {
    + + s/-/_/g; # Replace dashes with underscores
    + print $_;
    +
    + }
    +

    + +

    Use a RewriteLock!

    +

    When using a prg: RewriteMap, you should use a +RewriteLock. Failure to do so +will result in an error message in the log file, and may result in a +race condition on concurrent requests.

    +
    + +

    Caution!

    +
      +
    • Keep your rewrite map program as simple as possible. If the program +hangs, it will cause httpd to wait indefinitely for a response from the +map, which will, in turn, cause httpd to stop responding to +requests.
    • +
    • Be sure to turn off buffering in your program. In Perl this is done +by the second line in the example script: $| = 1; This will +of course vary in other languages. Buffered I/O will cause httpd to wait +for the output, and so it will hang.
    • +
    • Remember that there is only one copy of the program, started at +server startup. All requests will need to go through this one bottleneck. +This can cause significant slowdowns if many requests must go through +this process, or if the script itself is very slow.
    • +
    +
    + +
    top
    +
    +

    Summary

    + + +

    The RewriteMap directive can occur more than + once. For each mapping-function use one + RewriteMap directive to declare its rewriting + mapfile.

    + +

    While you cannot declare a map in + per-directory context (.htaccess files or + <Directory> blocks) it is possible to + use this map in per-directory context.

    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/rewritemap.xml b/docs/manual/rewrite/rewritemap.xml new file mode 100644 index 00000000000..294923565b3 --- /dev/null +++ b/docs/manual/rewrite/rewritemap.xml @@ -0,0 +1,420 @@ + + + + + + + Rewrite + Using RewriteMap + + +

    This document supplements the mod_rewrite +reference documentation. It describes +the use of the RewriteMap directive, +and provides examples of each of the various RewriteMap types.

    + + Note that many of these examples won't work unchanged in your +particular server configuration, so it's important that you understand +them, rather than merely cutting and pasting the examples into your +configuration. + +
    + Module documentation + mod_rewrite introduction + Redirection and remapping + Controlling access + Virtual hosts + Proxying + Advanced techniques and tricks + When not to use mod_rewrite + +
    + Introduction + +

    + The RewriteMap directive + defines an external function which can be called in the context of + RewriteRule or + RewriteCond directives to + perform rewriting that is too complicated, or too specialized to be + performed just by regular expressions. The source of this lookup can + be any of the types listed in the sections below, and enumerated in + the RewriteMap reference + documentation.

    + +

    The syntax of the RewriteMap directive is as + follows:

    + + +RewriteMap MapName MapType:MapSource + + +

    The MapName is an + arbitray name that you assign to the map, and which you will use in + directives later on. Arguments are passed to the map via the + following syntax:

    + +

    + + ${ MapName : LookupKey + }
    ${ MapName : + LookupKey | DefaultValue } +
    +

    + +

    When such a construct occurs, the map MapName is + consulted and the key LookupKey is looked-up. If the + key is found, the map-function construct is substituted by + SubstValue. If the key is not found then it is + substituted by DefaultValue or by the empty string + if no DefaultValue was specified.

    + +

    For example, you might define a + RewriteMap as:

    + + RewriteMap examplemap txt:/path/to/file/map.txt + +

    You would then be able to use this map in a + RewriteRule as follows:

    + + RewriteRule ^/ex/(.*) ${examplemap:$1} + + +

    A default value can be specified in the event that nothing is found +in the map:

    + + +RewriteRule ^/ex/(.*) ${examplemap:$1|/not_found.html} + + +Per-directory and .htaccess context +

    +The RewriteMap directive may not be used in +<Directory> sections or .htaccess files. You must +declare the map in server or virtualhost context. You may use the map, +once created, in your RewriteRule and +RewriteCond directives in those scopes. You just can't +declare it in those scopes. +

    +
    + +

    The sections that follow describe the various MapTypes that +may be used, and give examples of each.

    +
    + +
    + txt: Plain text maps + +

    When a MapType of txt is used, the MapSource is a filesystem path to a + plain-text mapping file, containing space-separated key/value pair + per line. Optionally, a line may be contain a comment, starting with + a '#' character.

    + +

    For example, the following might be valid entries in a map + file.

    + +

    + # Comment line
    + MatchingKey SubstValue
    + MatchingKey SubstValue # comment
    +

    + +

    When the RewriteMap is invoked the argument is looked for in the + first argument of a line, and, if found, the substitution value is + returned.

    + +

    For example, we might use a mapfile to translate product names to + product IDs for easier-to-remember URLs, using the following + recipe:

    + + Product to ID configuration + RewriteMap product2id txt:/etc/apache2/productmap.txt
    + RewriteRule ^/product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT] +
    + +

    We assume here that the prods.php script knows what + to do when it received an argument of id=NOTFOUND when + a product is not found in the lookup map.

    + +

    The file /etc/apache2/productmap.txt then contains + the following:

    + + Product to ID map +##
    +## productmap.txt - Product to ID map file
    +##
    +
    +television 993
    +stereo 198
    +fishingrod 043
    +basketball 418
    +telephone 328 +
    + +

    Thus, when http://example.com/product/television is + requested, the RewriteRule is applied, and the request + is internally mapped to /prods.php?id=993.

    + + Note: .htaccess files + The example given is crafted to be used in server or virtualhost + scope. If you're planning to use this in a .htaccess + file, you'll need to remove the leading slash from the rewrite + pattern in order for it to match anything: + + RewriteRule ^product/(.*) /prods.php?id=${product2id:$1|NOTFOUND} [PT] + + + + Cached lookups +

    + The looked-up keys are cached by httpd until the mtime + (modified time) of the mapfile changes, or the httpd server is + restarted. This ensures better performance on maps that are called + by many requests. +

    +
    + +
    +
    + rnd: Randomized Plain Text + +

    When a MapType of rnd is used, the MapSource is a + filesystem path to a plain-text mapping file, each line of which + contains a key, and one or more values separated by |. + One of these values will be chosen at random if the key is + matched.

    + +

    For example, you might use the following map + file and directives to provide a random load balancing between + several back-end server, via a reverse-proxy. Images are sent + to one of the servers in the 'static' pool, while everything + else is sent to one of the 'dynamic' pool.

    + + Rewrite map file +##
    +## map.txt -- rewriting map
    +##
    +
    +static www1|www2|www3|www4
    +dynamic www5|www6 +
    + + Configuration directives + RewriteMap servers rnd:/path/to/file/map.txt
    +
    + RewriteRule ^/(.*\.(png|gif|jpg)) http://${servers:static}/$1 [NC,P,L]
    + RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L] +
    + +

    So, when an image is requested and the first of these rules is + matched, RewriteMap looks up the string + static in the map file, which returns one of the + specified hostnames at random, which is then used in the + RewriteRule target.

    + +

    If you wanted to have one of the servers more likely to be chosen + (for example, if one of the server has more memory than the others, + and so can handle more requests) simply list it more times in the + map file.

    + + +static www1|www1|www2|www3|www4 + + +
    + +
    + dbm: DBM Hash File + +

    When a MapType of dbm is used, the MapSource is a + filesystem path to a DBM database file containing key/value pairs to + be used in the mapping. This works exactly the same way as the + txt map, but is much faster, because a DBM is indexed, + whereas a text file is not. This allows more rapid access to the + desired key.

    + +

    You may optionally specify a particular dbm type:

    + + + RewriteMap examplemap dbm=sdbm:/etc/apache/mapfile.dbm + + +

    The type can be sdbm, gdbm, ndbm or db. + However, it is recommended that you just use the httxt2dbm utility that is + provided with Apache HTTP Server, as it will use the correct DBM library, + matching the one that was used when httpd itself was built.

    + +

    To create a dbm file, first create a text map file as described + in the txt section. Then run + httxt2dbm:

    + + +$ httxt2dbm -i mapfile.txt -o mapfile.map + + +

    You can then reference the resulting file in your +RewriteMap directive:

    + + +RewriteMap mapname dbm:/etc/apache/mapfile.map + + + +

    Note that with some dbm types, more than one file is generated, with +a common base name. For example, you may have two files named +mapfile.map.dir and mapfiile.map.pag. This is +normal, and you need only use the base name mapfile.map in +your RewriteMap directive.

    +
    + +Cached lookups +

    +The looked-up keys are cached by httpd until the mtime +(modified time) of the mapfile changes, or the httpd server is +restarted. This ensures better performance on maps that are called +by many requests. +

    +
    + +
    + +
    + int: Internal Function + +

    When a MapType of int is used, the MapSource is one + of the available internal RewriteMap functions. Module authors can provide + additional internal functions by registering them with the + ap_register_rewrite_mapfunc API. + The functions that are provided by default are: +

    + +
      +
    • toupper:
      + Converts the key to all upper case.
    • +
    • tolower:
      + Converts the key to all lower case.
    • +
    • escape:
      + Translates special characters in the key to + hex-encodings.
    • +
    • unescape:
      + Translates hex-encodings in the key back to + special characters.
    • +
    + +

    + To use one of these functions, create a RewriteMap referencing + the int function, and then use that in your RewriteRule: +

    + + Redirect a URI to an all-lowercase version of itself + RewriteMap lc int:tolower
    + RewriteRule (.*[A-Z]+.*) ${lc:$1} [R] +
    + + +

    Please note that the example offered here is for + illustration purposes only, and is not a recommendation. If you want + to make URLs case-insensitive, consider using + mod_speling instead. +

    +
    + +
    + +
    prg: External Rewriting Program + +

    When a MapType of prg is used, the MapSource is a + filesystem path to an executable program which will providing the + mapping behavior. This can be a compiled binary file, or a program + in an interpreted language such as Perl or Python.

    + +

    This program is started once, when the Apache HTTP Server is + started, and then communicates with the rewriting engine via + STDIN and STDOUT. That is, for each map + function lookup, it expects one argument via STDIN, and + should return one new-line terminated response string on + STDOUT. If there is no corresponding lookup value, the + map program should return the four-character string + "NULL" to indicate this.

    + +

    External rewriting programs are not started if they're defined in + a context that does not have RewriteEngine set to + on.

    + +

    A simple example is shown here which will replace all dashes with + underscores in a request URI.

    + + Rewrite configuration + RewriteMap d2u prg:/www/bin/dash2under.pl
    + RewriteRule - ${d2u:%{REQUEST_URI}} +
    + + dash2under.pl + #!/usr/bin/perl
    + $| = 1; # Turn off I/O buffering
    + while (<STDIN>) {
    + + s/-/_/g; # Replace dashes with underscores
    + print $_;
    +
    + }
    +
    + +Use a RewriteLock! +

    When using a prg: RewriteMap, you should use a +RewriteLock. Failure to do so +will result in an error message in the log file, and may result in a +race condition on concurrent requests.

    +
    + +Caution! +
      +
    • Keep your rewrite map program as simple as possible. If the program +hangs, it will cause httpd to wait indefinitely for a response from the +map, which will, in turn, cause httpd to stop responding to +requests.
    • +
    • Be sure to turn off buffering in your program. In Perl this is done +by the second line in the example script: $| = 1; This will +of course vary in other languages. Buffered I/O will cause httpd to wait +for the output, and so it will hang.
    • +
    • Remember that there is only one copy of the program, started at +server startup. All requests will need to go through this one bottleneck. +This can cause significant slowdowns if many requests must go through +this process, or if the script itself is very slow.
    • +
    +
    + +
    + +
    + Summary + +

    The RewriteMap directive can occur more than + once. For each mapping-function use one + RewriteMap directive to declare its rewriting + mapfile.

    + +

    While you cannot declare a map in + per-directory context (.htaccess files or + <Directory> blocks) it is possible to + use this map in per-directory context.

    + +
    +
    diff --git a/docs/manual/rewrite/rewritemap.xml.meta b/docs/manual/rewrite/rewritemap.xml.meta new file mode 100644 index 00000000000..ac494a6c5c3 --- /dev/null +++ b/docs/manual/rewrite/rewritemap.xml.meta @@ -0,0 +1,12 @@ + + + + + rewritemap + /rewrite/ + .. + + + en + + diff --git a/docs/manual/rewrite/tech.html b/docs/manual/rewrite/tech.html new file mode 100644 index 00000000000..77deca5ea11 --- /dev/null +++ b/docs/manual/rewrite/tech.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: tech.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: tech.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/tech.html.en b/docs/manual/rewrite/tech.html.en new file mode 100644 index 00000000000..51ac61f30f4 --- /dev/null +++ b/docs/manual/rewrite/tech.html.en @@ -0,0 +1,193 @@ + + + + + +Apache mod_rewrite Technical Details - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache mod_rewrite Technical Details

    +
    +

    Available Languages:  en  | + fr 

    +
    + +

    This document discusses some of the technical details of mod_rewrite +and URL matching.

    +
    + +
    top
    +
    +

    Internal Processing

    + +

    The internal processing of this module is very complex but + needs to be explained once even to the average user to avoid + common mistakes and to let you exploit its full + functionality.

    +
    top
    +
    +

    API Phases

    + +

    First you have to understand that when Apache processes a + HTTP request it does this in phases. A hook for each of these + phases is provided by the Apache API. Mod_rewrite uses two of + these hooks: the URL-to-filename translation hook which is + used after the HTTP request has been read but before any + authorization starts and the Fixup hook which is triggered + after the authorization phases and after the per-directory + config files (.htaccess) have been read, but + before the content handler is activated.

    + +

    So, after a request comes in and Apache has determined the + corresponding server (or virtual server) the rewriting engine + starts processing of all mod_rewrite directives from the + per-server configuration in the URL-to-filename phase. A few + steps later when the final data directories are found, the + per-directory configuration directives of mod_rewrite are + triggered in the Fixup phase. In both situations mod_rewrite + rewrites URLs either to new URLs or to filenames, although + there is no obvious distinction between them. This is a usage + of the API which was not intended to be this way when the API + was designed, but as of Apache 1.x this is the only way + mod_rewrite can operate. To make this point more clear + remember the following two points:

    + +
      +
    1. Although mod_rewrite rewrites URLs to URLs, URLs to + filenames and even filenames to filenames, the API + currently provides only a URL-to-filename hook. In Apache + 2.0 the two missing hooks will be added to make the + processing more clear. But this point has no drawbacks for + the user, it is just a fact which should be remembered: + Apache does more in the URL-to-filename hook than the API + intends for it.
    2. + +
    3. + Unbelievably mod_rewrite provides URL manipulations in + per-directory context, i.e., within + .htaccess files, although these are reached + a very long time after the URLs have been translated to + filenames. It has to be this way because + .htaccess files live in the filesystem, so + processing has already reached this stage. In other + words: According to the API phases at this time it is too + late for any URL manipulations. To overcome this chicken + and egg problem mod_rewrite uses a trick: When you + manipulate a URL/filename in per-directory context + mod_rewrite first rewrites the filename back to its + corresponding URL (which is usually impossible, but see + the RewriteBase directive below for the + trick to achieve this) and then initiates a new internal + sub-request with the new URL. This restarts processing of + the API phases. + +

      Again mod_rewrite tries hard to make this complicated + step totally transparent to the user, but you should + remember here: While URL manipulations in per-server + context are really fast and efficient, per-directory + rewrites are slow and inefficient due to this chicken and + egg problem. But on the other hand this is the only way + mod_rewrite can provide (locally restricted) URL + manipulations to the average user.

      +
    4. +
    + +

    Don't forget these two points!

    +
    top
    +
    +

    Ruleset Processing

    + +

    Now when mod_rewrite is triggered in these two API phases, it + reads the configured rulesets from its configuration + structure (which itself was either created on startup for + per-server context or during the directory walk of the Apache + kernel for per-directory context). Then the URL rewriting + engine is started with the contained ruleset (one or more + rules together with their conditions). The operation of the + URL rewriting engine itself is exactly the same for both + configuration contexts. Only the final result processing is + different.

    + +

    The order of rules in the ruleset is important because the + rewriting engine processes them in a special (and not very + obvious) order. The rule is this: The rewriting engine loops + through the ruleset rule by rule (RewriteRule directives) and + when a particular rule matches it optionally loops through + existing corresponding conditions (RewriteCond + directives). For historical reasons the conditions are given + first, and so the control flow is a little bit long-winded. See + Figure 1 for more details.

    +

    + Flow of RewriteRule and RewriteCond matching
    + Figure 1:The control flow through the rewriting ruleset +

    +

    As you can see, first the URL is matched against the + Pattern of each rule. When it fails mod_rewrite + immediately stops processing this rule and continues with the + next rule. If the Pattern matches, mod_rewrite looks + for corresponding rule conditions. If none are present, it + just substitutes the URL with a new value which is + constructed from the string Substitution and goes on + with its rule-looping. But if conditions exist, it starts an + inner loop for processing them in the order that they are + listed. For conditions the logic is different: we don't match + a pattern against the current URL. Instead we first create a + string TestString by expanding variables, + back-references, map lookups, etc. and then we try + to match CondPattern against it. If the pattern + doesn't match, the complete set of conditions and the + corresponding rule fails. If the pattern matches, then the + next condition is processed until no more conditions are + available. If all conditions match, processing is continued + with the substitution of the URL with + Substitution.

    + +
    +
    +

    Available Languages:  en  | + fr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/tech.html.fr b/docs/manual/rewrite/tech.html.fr new file mode 100644 index 00000000000..a7bf6e0a8c7 --- /dev/null +++ b/docs/manual/rewrite/tech.html.fr @@ -0,0 +1,211 @@ + + + + + +Détails techniques sur le module Apache mod_rewrite - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Détails techniques sur le module Apache mod_rewrite

    +
    +

    Langues Disponibles:  en  | + fr 

    +
    + +

    Ce document passe en revue certains détails techniques à propos du +module mod_rewrite et de la mise en correspondance des URLs

    +
    + +
    top
    +
    +

    Fonctionnement interne

    + +

    Le fonctionnement interne de ce module est très complexe, mais + il est nécessaire de l'expliquer, même à l'utilisateur "standard", + afin d'éviter les erreurs courantes et de pouvoir exploiter toutes + ses fonctionnalités.

    +
    top
    +
    +

    Phases de l'API

    + +

    Il faut tout d'abord bien comprendre que le traitement d'une + requête HTTP par Apache s'effectue en plusieurs phases. L'API + d'Apache fournit un point d'accroche (hook) pour chacune de ces + phases. Mod_rewrite utilise deux de ces hooks : le hook de + conversion des URLs en noms de fichiers qui est utilisé quand la + requête HTTP a été lue mais avant le démarrage de tout processus + d'autorisation, et le hook "Fixup" qui est déclenché après les + phases d'autorisation et après la lecture des fichiers de + configuration niveau répertoire (.htaccess), mais + avant que le gestionnaire de contenu soit activé.

    + +

    Donc, lorsqu'une requête arrive et quand Apache a déterminé le + serveur correspondant (ou le serveur virtuel), le moteur de + réécriture commence le traitement de toutes les directives de + mod_rewrite de la configuration du serveur principal dans la phase + de conversion URL vers nom de fichier. Une fois ces étapes + franchies, lorsque les repertoires de données finaux ont été + trouvés, les directives de configuration de mod_rewrite au niveau + répertoire sont éxécutées dans la phase Fixup. Dans les deux cas, + mod_rewrite réécrit les URLs soit en nouvelles URLs, soit en noms + de fichiers, bien que la distinction entre les deux ne soit pas + évidente. Cette utilisation de l'API n'était pas sensée s'opérer + de cette manière lorsque l'API fut conçue, mais depuis Apache 1.x, + c'est le seul mode opératoire possible pour mod_rewrite. Afin de + rendre les choses plus claires, souvenez-vous de ces deux points :

    + +
      +
    1. Bien que mod_rewrite réécrive les URLs en URLs, les URLs en + noms de fichiers et même des noms de fichiers en d'autres noms + de fichiers, l'API ne propose actuellement qu'un hook URL vers + nom de fichier. Les deux hooks manquants seront ajoutés dans + Apache à partir de la version 2.0 afin de rendre le processus + plus clair. Mais ce point ne présente pas d'inconvénient pour + l'utilisateur, il s'agit simplement d'un fait que vous devez + garder à l'esprit : Apache en fait plus avec le hook URL vers + nom de fichier que l'API n'a la prétention d'en faire.
    2. + +
    3. + Paradoxalement, mod_rewrite permet la manipulation d'URLs dans + un contexte de répertoire, c'est à dire dans les + fichiers .htaccess, bien que ces derniers + soient traités bien longtemps après que les URLs n'aient été + traduites en noms de fichiers. Les choses doivent se dérouler + ainsi car les fichiers .htaccess résident dans le + système de fichiers, et le traitement a déjà atteint + cette étape. Autrement dit, en accord avec les phases de + l'API, à ce point du traitement, il est trop tard pour + effectuer des manipulations d'URLs. Pour résoudre ce problème + d'antériorité, mod_rewrite utilise une astuce : pour effectuer + une manipulation URL/nom de fichier dans un contexte de + répertoire, mod_rewrite réécrit tout d'abord le nom de fichier + en son URL d'origine (ce qui est normalement impossible, mais + voir ci-dessous l'astuce utilisée par la directive + RewriteBase pour y parvenir), puis + initialise une nouvelle sous-requête interne avec la nouvelle + URL ; ce qui a pour effet de redémarrer le processus des + phases de l'API. + +

      Encore une fois, mod_rewrite fait tout ce qui est en son + pouvoir pour rendre la complexité de cette étape complètement + transparente à l'utilisateur, mais vous devez garder ceci à + l'esprit : alors que les manipulations d'URLs dans le contexte + du serveur sont vraiment rapides et efficaces, les réécritures + dans un contexte de répertoire sont lentes et inefficaces à + cause du problème d'antériorité précité. Cependant, c'est la + seule manière dont mod_rewrite peut proposer des manipulations + d'URLs (limitées à une branche du système de fichiers) à + l'utilisateur standard.

      +
    4. +
    + +

    Ne perdez pas de vue ces deux points!

    +
    top
    +
    +

    Traitement du jeu de règles

    + +

    Maintenant, quand mod_rewrite se lance dans ces deux phases de + l'API, il lit le jeu de règles configurées depuis la structure + contenant sa configuration (qui a été elle-même créée soit au + démarrage d'Apache pour le contexte du serveur, soit lors du + parcours des répertoires par le noyau d'Apache pour le contexte de + répertoire). Puis le moteur de réécriture est démarré avec le jeu + de règles contenu (une ou plusieurs règles associées à leurs + conditions). En lui-même, le mode opératoire du moteur de + réécriture d'URLs est exactement le même dans les deux contextes + de configuration. Seul le traitement du résultat final diffère.

    + +

    L'ordre dans lequel les règles sont définies est important car + le moteur de réécriture les traite selon une chronologie + particulière (et pas très évidente). Le principe est le suivant : + le moteur de réécriture traite les règles (les directives RewriteRule) les unes + à la suite des autres, et lorsqu'une règle s'applique, il parcourt + les éventuelles conditions (directives + RewriteConddirectives) associées. + Pour des raisons historiques, les + conditions précèdent les règles, si bien que le déroulement du + contrôle est un peu compliqué. Voir la figure 1 pour plus de + détails.

    +

    + Flux des comparaisons des directives RewriteRule et RewriteCond
    + Figure 1:Déroulement du contrôle à travers le jeu de + règles de réécriture +

    +

    Comme vous pouvez le voir, l'URL est tout d'abord comparée au + Modèle de chaque règle. Lorsqu'une règle ne s'applique + pas, mod_rewrite stoppe immédiatement le traitement de cette règle + et passe à la règle suivante. Si l'URL correspond au + Modèle, mod_rewrite recherche la présence de conditions + correspondantes. S'il n'y en a pas, mod_rewrite remplace + simplement l'URL par une chaîne élaborée à partir de la chaîne de + Substitution, puis passe à la règle suivante. Si des + conditions sont présentes, mod_rewrite lance un bouclage + secondaire afin de les traiter selon l'ordre dans lequel elles + sont définies. La logique de traitement des conditions est + différente : on ne compare pas l'URL à un modèle. Une chaîne de + test TestString est tout d'abord élaborée en développant + des variables, des références arrières, des recherches dans des + tables de correspondances, etc..., puis cette chaîne de test est + comparée au modèle de condition CondPattern. Si le modèle + ne correspond pas, les autres conditions du jeu ne sont pas + examinées et la règle correspondante ne s'applique pas. Si le + modèle correspond, la condition suivante est examinée et ainsi de + suite jusqu'à la dernière condition. Si toutes les conditions sont + satisfaites, le traitement de la règle en cours se poursuit avec + le remplacement de l'URL par la chaîne de Substitution.

    + +
    +
    +

    Langues Disponibles:  en  | + fr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/tech.xml b/docs/manual/rewrite/tech.xml new file mode 100644 index 00000000000..fe5f563b514 --- /dev/null +++ b/docs/manual/rewrite/tech.xml @@ -0,0 +1,172 @@ + + + + + + + + +Rewrite + + Apache mod_rewrite Technical Details + + +

    This document discusses some of the technical details of mod_rewrite +and URL matching.

    +
    +Module documentation +mod_rewrite introduction +Redirection and remapping +Controlling access +Virtual hosts +Proxying +Using RewriteMap +Advanced techniques and tricks +When not to use mod_rewrite + +
    Internal Processing + +

    The internal processing of this module is very complex but + needs to be explained once even to the average user to avoid + common mistakes and to let you exploit its full + functionality.

    +
    + +
    API Phases + +

    First you have to understand that when Apache processes a + HTTP request it does this in phases. A hook for each of these + phases is provided by the Apache API. Mod_rewrite uses two of + these hooks: the URL-to-filename translation hook which is + used after the HTTP request has been read but before any + authorization starts and the Fixup hook which is triggered + after the authorization phases and after the per-directory + config files (.htaccess) have been read, but + before the content handler is activated.

    + +

    So, after a request comes in and Apache has determined the + corresponding server (or virtual server) the rewriting engine + starts processing of all mod_rewrite directives from the + per-server configuration in the URL-to-filename phase. A few + steps later when the final data directories are found, the + per-directory configuration directives of mod_rewrite are + triggered in the Fixup phase. In both situations mod_rewrite + rewrites URLs either to new URLs or to filenames, although + there is no obvious distinction between them. This is a usage + of the API which was not intended to be this way when the API + was designed, but as of Apache 1.x this is the only way + mod_rewrite can operate. To make this point more clear + remember the following two points:

    + +
      +
    1. Although mod_rewrite rewrites URLs to URLs, URLs to + filenames and even filenames to filenames, the API + currently provides only a URL-to-filename hook. In Apache + 2.0 the two missing hooks will be added to make the + processing more clear. But this point has no drawbacks for + the user, it is just a fact which should be remembered: + Apache does more in the URL-to-filename hook than the API + intends for it.
    2. + +
    3. + Unbelievably mod_rewrite provides URL manipulations in + per-directory context, i.e., within + .htaccess files, although these are reached + a very long time after the URLs have been translated to + filenames. It has to be this way because + .htaccess files live in the filesystem, so + processing has already reached this stage. In other + words: According to the API phases at this time it is too + late for any URL manipulations. To overcome this chicken + and egg problem mod_rewrite uses a trick: When you + manipulate a URL/filename in per-directory context + mod_rewrite first rewrites the filename back to its + corresponding URL (which is usually impossible, but see + the RewriteBase directive below for the + trick to achieve this) and then initiates a new internal + sub-request with the new URL. This restarts processing of + the API phases. + +

      Again mod_rewrite tries hard to make this complicated + step totally transparent to the user, but you should + remember here: While URL manipulations in per-server + context are really fast and efficient, per-directory + rewrites are slow and inefficient due to this chicken and + egg problem. But on the other hand this is the only way + mod_rewrite can provide (locally restricted) URL + manipulations to the average user.

      +
    4. +
    + +

    Don't forget these two points!

    +
    + +
    Ruleset Processing + +

    Now when mod_rewrite is triggered in these two API phases, it + reads the configured rulesets from its configuration + structure (which itself was either created on startup for + per-server context or during the directory walk of the Apache + kernel for per-directory context). Then the URL rewriting + engine is started with the contained ruleset (one or more + rules together with their conditions). The operation of the + URL rewriting engine itself is exactly the same for both + configuration contexts. Only the final result processing is + different.

    + +

    The order of rules in the ruleset is important because the + rewriting engine processes them in a special (and not very + obvious) order. The rule is this: The rewriting engine loops + through the ruleset rule by rule (RewriteRule directives) and + when a particular rule matches it optionally loops through + existing corresponding conditions (RewriteCond + directives). For historical reasons the conditions are given + first, and so the control flow is a little bit long-winded. See + Figure 1 for more details.

    +

    + Flow of RewriteRule and RewriteCond matching
    + Figure 1:The control flow through the rewriting ruleset +

    +

    As you can see, first the URL is matched against the + Pattern of each rule. When it fails mod_rewrite + immediately stops processing this rule and continues with the + next rule. If the Pattern matches, mod_rewrite looks + for corresponding rule conditions. If none are present, it + just substitutes the URL with a new value which is + constructed from the string Substitution and goes on + with its rule-looping. But if conditions exist, it starts an + inner loop for processing them in the order that they are + listed. For conditions the logic is different: we don't match + a pattern against the current URL. Instead we first create a + string TestString by expanding variables, + back-references, map lookups, etc. and then we try + to match CondPattern against it. If the pattern + doesn't match, the complete set of conditions and the + corresponding rule fails. If the pattern matches, then the + next condition is processed until no more conditions are + available. If all conditions match, processing is continued + with the substitution of the URL with + Substitution.

    + +
    + + +
    + diff --git a/docs/manual/rewrite/tech.xml.fr b/docs/manual/rewrite/tech.xml.fr new file mode 100644 index 00000000000..7f8683d259e --- /dev/null +++ b/docs/manual/rewrite/tech.xml.fr @@ -0,0 +1,187 @@ + + + + + + + + + + +Rewrite + + Détails techniques sur le module Apache mod_rewrite + + +

    Ce document passe en revue certains détails techniques à propos du +module mod_rewrite et de la mise en correspondance des URLs

    +
    +Documentation du module mod_rewrite +Introduction à mod_rewrite +Redirection et remise en +correspondance +Contrôle d'accès +Serveurs virtuels +Mise en cache +Utilisation de RewriteMap +Techniques avancées et astuces +Quand ne pas utiliser mod_rewrite + +
    Fonctionnement interne + +

    Le fonctionnement interne de ce module est très complexe, mais + il est nécessaire de l'expliquer, même à l'utilisateur "standard", + afin d'éviter les erreurs courantes et de pouvoir exploiter toutes + ses fonctionnalités.

    +
    + +
    Phases de l'API + +

    Il faut tout d'abord bien comprendre que le traitement d'une + requête HTTP par Apache s'effectue en plusieurs phases. L'API + d'Apache fournit un point d'accroche (hook) pour chacune de ces + phases. Mod_rewrite utilise deux de ces hooks : le hook de + conversion des URLs en noms de fichiers qui est utilisé quand la + requête HTTP a été lue mais avant le démarrage de tout processus + d'autorisation, et le hook "Fixup" qui est déclenché après les + phases d'autorisation et après la lecture des fichiers de + configuration niveau répertoire (.htaccess), mais + avant que le gestionnaire de contenu soit activé.

    + +

    Donc, lorsqu'une requête arrive et quand Apache a déterminé le + serveur correspondant (ou le serveur virtuel), le moteur de + réécriture commence le traitement de toutes les directives de + mod_rewrite de la configuration du serveur principal dans la phase + de conversion URL vers nom de fichier. Une fois ces étapes + franchies, lorsque les repertoires de données finaux ont été + trouvés, les directives de configuration de mod_rewrite au niveau + répertoire sont éxécutées dans la phase Fixup. Dans les deux cas, + mod_rewrite réécrit les URLs soit en nouvelles URLs, soit en noms + de fichiers, bien que la distinction entre les deux ne soit pas + évidente. Cette utilisation de l'API n'était pas sensée s'opérer + de cette manière lorsque l'API fut conçue, mais depuis Apache 1.x, + c'est le seul mode opératoire possible pour mod_rewrite. Afin de + rendre les choses plus claires, souvenez-vous de ces deux points :

    + +
      +
    1. Bien que mod_rewrite réécrive les URLs en URLs, les URLs en + noms de fichiers et même des noms de fichiers en d'autres noms + de fichiers, l'API ne propose actuellement qu'un hook URL vers + nom de fichier. Les deux hooks manquants seront ajoutés dans + Apache à partir de la version 2.0 afin de rendre le processus + plus clair. Mais ce point ne présente pas d'inconvénient pour + l'utilisateur, il s'agit simplement d'un fait que vous devez + garder à l'esprit : Apache en fait plus avec le hook URL vers + nom de fichier que l'API n'a la prétention d'en faire.
    2. + +
    3. + Paradoxalement, mod_rewrite permet la manipulation d'URLs dans + un contexte de répertoire, c'est à dire dans les + fichiers .htaccess, bien que ces derniers + soient traités bien longtemps après que les URLs n'aient été + traduites en noms de fichiers. Les choses doivent se dérouler + ainsi car les fichiers .htaccess résident dans le + système de fichiers, et le traitement a déjà atteint + cette étape. Autrement dit, en accord avec les phases de + l'API, à ce point du traitement, il est trop tard pour + effectuer des manipulations d'URLs. Pour résoudre ce problème + d'antériorité, mod_rewrite utilise une astuce : pour effectuer + une manipulation URL/nom de fichier dans un contexte de + répertoire, mod_rewrite réécrit tout d'abord le nom de fichier + en son URL d'origine (ce qui est normalement impossible, mais + voir ci-dessous l'astuce utilisée par la directive + RewriteBase pour y parvenir), puis + initialise une nouvelle sous-requête interne avec la nouvelle + URL ; ce qui a pour effet de redémarrer le processus des + phases de l'API. + +

      Encore une fois, mod_rewrite fait tout ce qui est en son + pouvoir pour rendre la complexité de cette étape complètement + transparente à l'utilisateur, mais vous devez garder ceci à + l'esprit : alors que les manipulations d'URLs dans le contexte + du serveur sont vraiment rapides et efficaces, les réécritures + dans un contexte de répertoire sont lentes et inefficaces à + cause du problème d'antériorité précité. Cependant, c'est la + seule manière dont mod_rewrite peut proposer des manipulations + d'URLs (limitées à une branche du système de fichiers) à + l'utilisateur standard.

      +
    4. +
    + +

    Ne perdez pas de vue ces deux points!

    +
    + +
    Traitement du jeu de règles + +

    Maintenant, quand mod_rewrite se lance dans ces deux phases de + l'API, il lit le jeu de règles configurées depuis la structure + contenant sa configuration (qui a été elle-même créée soit au + démarrage d'Apache pour le contexte du serveur, soit lors du + parcours des répertoires par le noyau d'Apache pour le contexte de + répertoire). Puis le moteur de réécriture est démarré avec le jeu + de règles contenu (une ou plusieurs règles associées à leurs + conditions). En lui-même, le mode opératoire du moteur de + réécriture d'URLs est exactement le même dans les deux contextes + de configuration. Seul le traitement du résultat final diffère.

    + +

    L'ordre dans lequel les règles sont définies est important car + le moteur de réécriture les traite selon une chronologie + particulière (et pas très évidente). Le principe est le suivant : + le moteur de réécriture traite les règles (les directives RewriteRule) les unes + à la suite des autres, et lorsqu'une règle s'applique, il parcourt + les éventuelles conditions (directives + RewriteConddirectives) associées. + Pour des raisons historiques, les + conditions précèdent les règles, si bien que le déroulement du + contrôle est un peu compliqué. Voir la figure 1 pour plus de + détails.

    +

    + Flux des comparaisons des directives RewriteRule et RewriteCond
    + Figure 1:Déroulement du contrôle à travers le jeu de + règles de réécriture +

    +

    Comme vous pouvez le voir, l'URL est tout d'abord comparée au + Modèle de chaque règle. Lorsqu'une règle ne s'applique + pas, mod_rewrite stoppe immédiatement le traitement de cette règle + et passe à la règle suivante. Si l'URL correspond au + Modèle, mod_rewrite recherche la présence de conditions + correspondantes. S'il n'y en a pas, mod_rewrite remplace + simplement l'URL par une chaîne élaborée à partir de la chaîne de + Substitution, puis passe à la règle suivante. Si des + conditions sont présentes, mod_rewrite lance un bouclage + secondaire afin de les traiter selon l'ordre dans lequel elles + sont définies. La logique de traitement des conditions est + différente : on ne compare pas l'URL à un modèle. Une chaîne de + test TestString est tout d'abord élaborée en développant + des variables, des références arrières, des recherches dans des + tables de correspondances, etc..., puis cette chaîne de test est + comparée au modèle de condition CondPattern. Si le modèle + ne correspond pas, les autres conditions du jeu ne sont pas + examinées et la règle correspondante ne s'applique pas. Si le + modèle correspond, la condition suivante est examinée et ainsi de + suite jusqu'à la dernière condition. Si toutes les conditions sont + satisfaites, le traitement de la règle en cours se poursuit avec + le remplacement de l'URL par la chaîne de Substitution.

    + +
    + + +
    + diff --git a/docs/manual/rewrite/tech.xml.meta b/docs/manual/rewrite/tech.xml.meta new file mode 100644 index 00000000000..09c2c397464 --- /dev/null +++ b/docs/manual/rewrite/tech.xml.meta @@ -0,0 +1,13 @@ + + + + + tech + /rewrite/ + .. + + + en + fr + + diff --git a/docs/manual/rewrite/vhosts.html b/docs/manual/rewrite/vhosts.html new file mode 100644 index 00000000000..b99209bdf60 --- /dev/null +++ b/docs/manual/rewrite/vhosts.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: vhosts.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/rewrite/vhosts.html.en b/docs/manual/rewrite/vhosts.html.en new file mode 100644 index 00000000000..a91c9c74837 --- /dev/null +++ b/docs/manual/rewrite/vhosts.html.en @@ -0,0 +1,233 @@ + + + + + +Dynamic mass virtual hosts with mod_rewrite - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Dynamic mass virtual hosts with mod_rewrite

    +
    +

    Available Languages:  en 

    +
    + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how you can use mod_rewrite to create dynamically +configured virtual hosts.

    + +
    mod_rewrite is not the best way to configure +virtual hosts. You should first consider the alternatives before resorting to +mod_rewrite. See also the "how to avoid +mod_rewrite document.
    + +
    + +
    top
    +
    +

    Virtual Hosts For Arbitrary Hostnames

    + + + +
    +
    Description:
    + +
    +

    We want to automatically create a virtual host for every hostname + which resolves in our domain, without having to create + new VirtualHost sections.

    + +

    In this recipe, we assume that we'll be using the hostname + www.SITE.example.com for each + user, and serve their content out of + /home/SITE/www.

    +
    + +
    Solution:
    + +
    + +

    +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +RewriteCond %{lowercase:%{HTTP_HOST}} ^www\.([^.]+)\.example\.com$
    +RewriteRule ^(.*) /home/%1/www$1 +

    + +
    Discussion
    +
    + +
    You will need to take care of the DNS + resolution - Apache does + not handle name resolution. You'll need either to create CNAME + records for each hostname, or a DNS wildcard record. Creating DNS + records is beyond the scope of this document.
    + +

    The internal tolower RewriteMap directive is used to +ensure that the hostnames being used are all lowercase, so that there is +no ambiguity in the directory structure which must be created.

    + +

    Parentheses used in a RewriteCond are captured into the +backreferences %1, %2, etc, while parentheses +used in RewriteRule are +captured into the backreferences $1, $2, +etc.

    + +

    +As with many techniques discussed in this document, mod_rewrite really +isn't the best way to accomplish this task. You should, instead, +consider using mod_vhost_alias instead, as it will much +more gracefully handle anything beyond serving static files, such as any +dynamic content, and Alias resolution. +

    +
    +
    + +
    top
    +
    +

    Dynamic + Virtual Hosts Using mod_rewrite

    + +

    This extract from httpd.conf does the same + thing as the first example. The first + half is very similar to the corresponding part above, except for + some changes, required for backward compatibility and to make the + mod_rewrite part work properly; the second half + configures mod_rewrite to do the actual work.

    + +

    Because mod_rewrite runs before other URI translation + modules (e.g., mod_alias), mod_rewrite must + be told to explicitly ignore any URLs that would have been handled + by those modules. And, because these rules would otherwise bypass + any ScriptAlias directives, we must have + mod_rewrite explicitly enact those mappings.

    + +

    +# get the server name from the Host: header
    +UseCanonicalName Off
    +
    +# splittable logs
    +LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +<Directory /www/hosts>
    + + # ExecCGI is needed here because we can't force
    + # CGI execution in the way that ScriptAlias does
    + Options FollowSymLinks ExecCGI
    +
    +</Directory>
    +
    +RewriteEngine On
    +
    +# a ServerName derived from a Host: header may be any case at all
    +RewriteMap lowercase int:tolower
    +
    +## deal with normal documents first:
    +# allow Alias /icons/ to work - repeat for other aliases
    +RewriteCond %{REQUEST_URI} !^/icons/
    +# allow CGIs to work
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +# do the magic
    +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
    +
    +## and now deal with CGIs - we have to force a handler
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [H=cgi-script]
    +

    + +
    top
    +
    +

    Using a Separate Virtual Host Configuration File

    + +

    This arrangement uses more advanced mod_rewrite + features to work out the translation from virtual host to document + root, from a separate configuration file. This provides more + flexibility, but requires more complicated configuration.

    + +

    The vhost.map file should look something like + this:

    + +

    +customer-1.example.com /www/customers/1
    +customer-2.example.com /www/customers/2
    +# ...
    +customer-N.example.com /www/customers/N
    +

    + +

    The httpd.conf should contain the following:

    + +

    +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +# define the map file
    +RewriteMap vhost txt:/www/conf/vhost.map
    +
    +# deal with aliases as above
    +RewriteCond %{REQUEST_URI} !^/icons/
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +# this does the file-based remap
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/docs/$1
    +
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/cgi-bin/$1 [H=cgi-script] +

    + +
    +
    +

    Available Languages:  en 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/rewrite/vhosts.xml b/docs/manual/rewrite/vhosts.xml new file mode 100644 index 00000000000..9ba0e0ed8c1 --- /dev/null +++ b/docs/manual/rewrite/vhosts.xml @@ -0,0 +1,211 @@ + + + + + + + + + Rewrite + +Dynamic mass virtual hosts with mod_rewrite + + + +

    This document supplements the mod_rewrite +reference documentation. It describes +how you can use mod_rewrite to create dynamically +configured virtual hosts.

    + +mod_rewrite is not the best way to configure +virtual hosts. You should first consider the alternatives before resorting to +mod_rewrite. See also the "how to avoid +mod_rewrite document. + +
    +Module documentation +mod_rewrite introduction +Redirection and remapping +Controlling access + +Proxying +RewriteMap +Advanced techniques and tricks +When not to use mod_rewrite + +
    + + Virtual Hosts For Arbitrary Hostnames + +
    +
    Description:
    + +
    +

    We want to automatically create a virtual host for every hostname + which resolves in our domain, without having to create + new VirtualHost sections.

    + +

    In this recipe, we assume that we'll be using the hostname + www.SITE.example.com for each + user, and serve their content out of + /home/SITE/www.

    +
    + +
    Solution:
    + +
    + + +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +RewriteCond %{lowercase:%{HTTP_HOST}} ^www\.([^.]+)\.example\.com$
    +RewriteRule ^(.*) /home/%1/www$1 +
    + +
    Discussion
    +
    + + You will need to take care of the DNS + resolution - Apache does + not handle name resolution. You'll need either to create CNAME + records for each hostname, or a DNS wildcard record. Creating DNS + records is beyond the scope of this document. + +

    The internal tolower RewriteMap directive is used to +ensure that the hostnames being used are all lowercase, so that there is +no ambiguity in the directory structure which must be created.

    + +

    Parentheses used in a RewriteCond are captured into the +backreferences %1, %2, etc, while parentheses +used in RewriteRule are +captured into the backreferences $1, $2, +etc.

    + +

    +As with many techniques discussed in this document, mod_rewrite really +isn't the best way to accomplish this task. You should, instead, +consider using mod_vhost_alias instead, as it will much +more gracefully handle anything beyond serving static files, such as any +dynamic content, and Alias resolution. +

    +
    +
    + +
    + +
    Dynamic + Virtual Hosts Using <module>mod_rewrite</module> + +

    This extract from httpd.conf does the same + thing as the first example. The first + half is very similar to the corresponding part above, except for + some changes, required for backward compatibility and to make the + mod_rewrite part work properly; the second half + configures mod_rewrite to do the actual work.

    + +

    Because mod_rewrite runs before other URI translation + modules (e.g., mod_alias), mod_rewrite must + be told to explicitly ignore any URLs that would have been handled + by those modules. And, because these rules would otherwise bypass + any ScriptAlias directives, we must have + mod_rewrite explicitly enact those mappings.

    + + +# get the server name from the Host: header
    +UseCanonicalName Off
    +
    +# splittable logs
    +LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +<Directory /www/hosts>
    + + # ExecCGI is needed here because we can't force
    + # CGI execution in the way that ScriptAlias does
    + Options FollowSymLinks ExecCGI
    +
    +</Directory>
    +
    +RewriteEngine On
    +
    +# a ServerName derived from a Host: header may be any case at all
    +RewriteMap lowercase int:tolower
    +
    +## deal with normal documents first:
    +# allow Alias /icons/ to work - repeat for other aliases
    +RewriteCond %{REQUEST_URI} !^/icons/
    +# allow CGIs to work
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +# do the magic
    +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
    +
    +## and now deal with CGIs - we have to force a handler
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [H=cgi-script]
    +
    + +
    + +
    Using a Separate Virtual Host Configuration File + +

    This arrangement uses more advanced mod_rewrite + features to work out the translation from virtual host to document + root, from a separate configuration file. This provides more + flexibility, but requires more complicated configuration.

    + +

    The vhost.map file should look something like + this:

    + + +customer-1.example.com /www/customers/1
    +customer-2.example.com /www/customers/2
    +# ...
    +customer-N.example.com /www/customers/N
    +
    + +

    The httpd.conf should contain the following:

    + + +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +# define the map file
    +RewriteMap vhost txt:/www/conf/vhost.map
    +
    +# deal with aliases as above
    +RewriteCond %{REQUEST_URI} !^/icons/
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +# this does the file-based remap
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/docs/$1
    +
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/cgi-bin/$1 [H=cgi-script] +
    + +
    + +
    diff --git a/docs/manual/rewrite/vhosts.xml.meta b/docs/manual/rewrite/vhosts.xml.meta new file mode 100644 index 00000000000..831c934db24 --- /dev/null +++ b/docs/manual/rewrite/vhosts.xml.meta @@ -0,0 +1,12 @@ + + + + + vhosts + /rewrite/ + .. + + + en + + diff --git a/docs/manual/sections.html b/docs/manual/sections.html index 02645f01bff..f4f8cf04106 100644 --- a/docs/manual/sections.html +++ b/docs/manual/sections.html @@ -1,11 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: sections.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: sections.html.ja.euc-jp +URI: sections.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: sections.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: sections.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: sections.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/sections.html.en b/docs/manual/sections.html.en index cb150c8441d..bf4c6432ff1 100644 --- a/docs/manual/sections.html.en +++ b/docs/manual/sections.html.en @@ -1,26 +1,35 @@ - -Configuration Sections - Apache HTTP Server +Configuration Sections - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Configuration Sections

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Configuration Sections

    Available Languages:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    Directives in the configuration files may apply to the entire server, or they may be restricted to apply only to particular @@ -34,20 +43,21 @@ to change the scope of other configuration directives.

  • Proxy
  • What Directives are Allowed?
  • How the sections are merged
  • -
    +
    top

    Types of Configuration Section Containers

    - +

    There are two basic types of containers. Most containers are evaluated for each request. The enclosed directives are applied only -for those requests that match the containers. The <IfDefine> and <IfModule> containers, on the -other hand, are evaluated only at server startup and restart. If -their conditions are true at startup, then the enclosed directives -will apply to all requests. If the conditions are not true, the -enclosed directives will be ignored.

    +for those requests that match the containers. The <IfDefine>, <IfModule>, and +<IfVersion> +containers, on the other hand, are evaluated only at server startup +and restart. If their conditions are true at startup, then the +enclosed directives will apply to all requests. If the conditions are +not true, the enclosed directives will be ignored.

    The <IfDefine> directive encloses directives that will only be applied if an appropriate @@ -56,11 +66,10 @@ with the following configuration, all requests will be redirected to another site only if the server is started using httpd -DClosedForNow:

    -

    -<IfDefine ClosedForNow>
    -Redirect / http://otherserver.example.com/
    -</IfDefine> -

    +
    <IfDefine ClosedForNow>
    +    Redirect / http://otherserver.example.com/
    +</IfDefine>
    +

    The <IfModule> directive is very similar, except it encloses directives that will @@ -73,17 +82,29 @@ installed. It should not be used to enclose directives that you want to work all the time, because it can suppress useful error messages about missing modules.

    -

    In the following example, the MimeMagicFiles directive will be +

    In the following example, the MimeMagicFile directive will be applied only if mod_mime_magic is available.

    -

    -<IfModule mod_mime_magic.c>
    -MimeMagicFile conf/magic
    -</IfModule> -

    +
    <IfModule mod_mime_magic.c>
    +    MimeMagicFile conf/magic
    +</IfModule>
    + + +

    The <IfVersion> +directive is very similar to <IfDefine> and <IfModule>, except it encloses directives that will +only be applied if a particular version of the server is executing. This +module is designed for the use in test suites and large networks which have to +deal with different httpd versions and different configurations.

    + +
    <IfVersion >= 2.1>
    +    # this happens only in versions greater or
    +    # equal 2.1.0.
    +</IfVersion>
    + -

    Both <IfDefine> -and <IfModule> +

    <IfDefine>, +<IfModule>, and the +<IfVersion> can apply negative conditions by preceding their test with "!". Also, these sections can be nested to achieve more complex restrictions.

    @@ -112,18 +133,19 @@ from databases or other locations.

    The <Directory> and <Files> -directives, along with their regex counterparts, apply directives to +directives, along with their regex +counterparts, apply directives to parts of the filesystem. Directives enclosed in a <Directory> section apply to the named filesystem directory and all subdirectories of that -directory. The same effect can be obtained using .htaccess files. For example, in the +directory (as well as the files in those directories). +The same effect can be obtained using .htaccess files. For example, in the following configuration, directory indexes will be enabled for the /var/web/dir1 directory and all subdirectories.

    -

    -<Directory /var/web/dir1>
    -Options +Indexes
    -</Directory> -

    +
    <Directory /var/web/dir1>
    +    Options +Indexes
    +</Directory>
    +

    Directives enclosed in a <Files> section apply to any file with the specified name, regardless of what directory it lies in. @@ -132,12 +154,11 @@ when placed in the main section of the configuration file, deny access to any file named private.html regardless of where it is found.

    -

    -<Files private.html>
    -Order allow,deny
    -Deny from all
    -</Files> -

    +
    <Files private.html>
    +    Order allow,deny
    +    Deny from all
    +</Files>
    +

    To address files found in a particular part of the filesystem, the <Files> and @@ -149,20 +170,20 @@ access to /var/web/dir1/private.html, of private.html found under the /var/web/dir1/ directory.

    -

    -<Directory /var/web/dir1>
    -<Files private.html>
    -Order allow,deny
    -Deny from all
    -</Files>
    -</Directory> -

    +
    <Directory /var/web/dir1>
    +    <Files private.html>
    +        Order allow,deny
    +        Deny from all
    +    </Files>
    +</Directory>
    +

    Webspace Containers

    The <Location> -directive and its regex counterpart, on the other hand, change the +directive and its regex counterpart, on the +other hand, change the configuration for content in the webspace. For example, the following configuration prevents access to any URL-path that begins in /private. In particular, it will apply to requests for @@ -171,12 +192,11 @@ In particular, it will apply to requests for http://yoursite.example.com/private/dir/file.html as well as any other requests starting with the /private string.

    -

    -<Location /private>
    -Order Allow,Deny
    -Deny from all
    -</Location> -

    +
    <LocationMatch ^/private>
    +    Order Allow,Deny
    +    Deny from all
    +</LocationMatch>
    +

    The <Location> directive need not have anything to do with the filesystem. @@ -185,11 +205,10 @@ URL to an internal Apache handler provided by

    -<Location /server-status>
    -SetHandler server-status
    -</Location> -

    +
    <Location /server-status>
    +    SetHandler server-status
    +</Location>
    +

    Wildcards and Regular Expressions

    @@ -205,9 +224,9 @@ character will not be matched by any wildcard; it must be specified explicitly.

    If even more flexible matching is required, each -container has a regular-expression (regex) counterpart <DirectoryMatch>, <FilesMatch>, and <LocationMatch> that allow +container has a regular expression (regex) counterpart <DirectoryMatch>, <FilesMatch>, and <LocationMatch> that allow perl-compatible -regular expressions +regular expressions to be used in choosing the matches. But see the section below on configuration merging to find out how using regex sections will change how directives are applied.

    @@ -215,20 +234,18 @@ how directives are applied.

    A non-regex wildcard section that changes the configuration of all user directories could look as follows:

    -

    -<Directory /home/*/public_html>
    -Options Indexes
    -</Directory> -

    +
    <Directory /home/*/public_html>
    +    Options Indexes
    +</Directory>
    +

    Using regex sections, we can deny access to many types of image files at once:

    -

    -<FilesMatch \.(?i:gif|jpe?g|png)$>
    -Order allow,deny
    -Deny from all
    -</FilesMatch> -

    +
    <FilesMatch \.(?i:gif|jpe?g|png)$>
    +    Order allow,deny
    +    Deny from all
    +</FilesMatch>
    + @@ -246,12 +263,11 @@ different webspace locations (URLs) could map to the same filesystem location, allowing your restrictions to be circumvented. For example, consider the following configuration:

    -

    -<Location /dir/>
    -Order allow,deny
    -Deny from all
    -</Location> -

    +
    <Location /dir/>
    +    Order allow,deny
    +    Deny from all
    +</Location>
    +

    This works fine if the request is for http://yoursite.example.com/dir/. But what if you are on @@ -293,16 +309,16 @@ see the Virtual Host Documentation.

    and <ProxyMatch> containers apply enclosed configuration directives only to sites accessed through mod_proxy's proxy server -that match the specified URL. For example, the following configuration -will prevent the proxy server from being used to access the -cnn.com website.

    - -

    -<Proxy http://cnn.com/*>
    -Order allow,deny
    -Deny from all
    -</Proxy> -

    +that match the specified URL. For example, the following configuration +will allow only a subset of clients to access the +www.example.com website using the proxy server:

    + +
    <Proxy "http://www.example.com/*">
    +    Order allow,deny
    +    Allow from 192.168.1.104 192.168.1.205
    +    Deny from all
    +</Proxy>
    +
    top

    What Directives are Allowed?

    @@ -382,9 +398,7 @@ are interpreted, it is important to understand how this works.

    container takes the place of the <Directory> container in the processing order.

    -

    Later sections override earlier ones.

    - -

    Technical Note

    +

    Technical Note

    There is actually a <Location>/<LocationMatch> sequence performed just before the name translation phase @@ -392,7 +406,48 @@ are interpreted, it is important to understand how this works.

    are used to map URLs to filenames). The results of this sequence are completely thrown away after the translation has completed. -
    +
    + +

    Relationship between modules and configuration sections

    +

    One question that often arises after reading how configuration sections are + merged is related to how and when directives of specific modules like mod_rewrite + are processed. The answer is not trivial and needs a bit of background. + Each httpd module manages its own configuration, and each of its directives in httpd.conf specify one piece + of configuration in a particular context. httpd does not execute a command as it is read.

    +

    At runtime, the core of httpd iterates over the defined configuration sections in the order + described above to determine which ones apply to the current request. When the first section matches, + it is considered the current configuration for this request. If a subsequent section matches too, + then each module with a directive in either of the sections is given a chance to merge its configuration between the two sections. The result is a third configuration, and the process goes on until all the configuration sections + are evaluated.

    +

    After the above step, the "real" processing of the HTTP request begins: each module has a chance to run + and perform whatever tasks they like. They can retrieve their own final merged configuration from the core + of the httpd to determine how they should act.

    +

    An example can help to visualize the whole process. The following configuration uses the + Header directive of mod_headers to set + a specific HTTP header. What value will httpd set in the CustomHeaderName header for a request to + /example/index.html ? +

    +
    <Directory "/">
    +    Header set CustomHeaderName one
    +    <FilesMatch ".*">
    +        Header set CustomHeaderName three
    +    </FilesMatch>
    +</Directory>
    +
    +<Directory "/example">
    +    Header set CustomHeaderName two
    +</Directory>
    + +
      +
    • Directory "/" matches and an initial configuration to set the CustomHeaderName header with the value one is created.
    • +
    • Directory "/example" matches, and since mod_headers specifies in its code to override in case of a merge, a new configuration is created to set the CustomHeaderName header with the value two.
    • +
    • FilesMatch ".*" matches and another merge opportunity arises, causing the CustomHeaderName header to be set with the value three.
    • +
    • Eventually during the next steps of the HTTP request processing mod_headers will be called and it will receive the configuration to set the CustomHeaderName header with the value three. mod_headers normally uses this configuration to perfom its job, namely setting the foo header. This does not mean that a module can't perform a more complex action like discarding directives because not needed or deprecated, etc..
    • +
    + +

    This is true for .htaccess too since they have the same priority as Directory in the merge order. The important concept to understand is that configuration sections like Directory and FilesMatch are not comparable to module specific directives like Header or RewriteRule because they operate on different levels. +

    +

    Some Examples

    @@ -401,58 +456,78 @@ merging. Assuming they all apply to the request, the directives in this example will be applied in the order A > B > C > D > E.

    -

    -<Location />
    -E
    -</Location>
    -
    -<Files f.html>
    -D
    -</Files>
    -
    -<VirtualHost *>
    -<Directory /a/b>
    -B
    -</Directory>
    -</VirtualHost>
    -
    -<DirectoryMatch "^.*b$">
    -C
    -</DirectoryMatch>
    -
    -<Directory /a/b>
    -A
    -</Directory>
    -
    -

    +
    <Location "/">
    +    E
    +</Location>
    +
    +<Files "f.html">
    +    D
    +</Files>
    +
    +<VirtualHost *>
    +<Directory "/a/b">
    +    B
    +</Directory>
    +</VirtualHost>
    +
    +<DirectoryMatch "^.*b$">
    +    C
    +</DirectoryMatch>
    +
    +<Directory "/a/b">
    +    A
    +</Directory>
    +

    For a more concrete example, consider the following. Regardless of any access restrictions placed in <Directory> sections, the <Location> section will be evaluated last and will allow unrestricted access to the server. In other words, order of merging is important, so be careful!

    -

    -<Location />
    -Order deny,allow
    -Allow from all
    -</Location>
    -
    -# Woops! This <Directory> section will have no effect
    -<Directory />
    -Order allow,deny
    -Allow from all
    -Deny from badguy.example.com
    -</Directory> -

    +
    <Location "/">
    +    Require all granted
    +</Location>
    +
    +# Woops!  This <Directory> section will have no effect
    +<Directory "/">
    +    <RequireAll>
    +        Require all granted
    +        Require not host badguy.example.com
    +    </RequireAll>
    +</Directory>
    +

    Available Languages:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/sections.html.fr b/docs/manual/sections.html.fr new file mode 100644 index 00000000000..30c0666e1c8 --- /dev/null +++ b/docs/manual/sections.html.fr @@ -0,0 +1,616 @@ + + + + + +Sections de configuration - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Sections de configuration

    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +

    Les directives des fichiers de configuration peuvent s'appliquer +au serveur dans son ensemble, ou seulement à des répertoires, fichiers, hôtes, +ou URLs particuliers. Ce document décrit comment utiliser les conteneurs de +sections de configuration ou les fichiers .htaccess pour +modifier la portée des directives de configuration.

    +
    + +
    top
    +
    +

    Types de conteneurs de sections de +configuration

    + + + +

    Il existe deux grands types de conteneurs. La plupart des conteneurs sont +évalués pour chaque requête. Les directives qu'ils contiennent s'appliquent +seulement aux requêtes qui sont concernées par le conteneur. En revanche, +les conteneurs +<IfDefine>, <IfModule>, et +<IfVersion> sont +évalués seulement au démarrage et au redémarrage du serveur. +Si leurs conditions sont vérifiées au démarrage, les directives qu'ils contiennent +s'appliqueront à toutes les requêtes. Si leurs conditions ne sont pas vérifiées, les +directives qu'ils contiennent seront ignorées.

    + +

    Le conteneur <IfDefine> +contient des directives qui ne seront appliquées que si un paramètre +approprié a été défini dans la ligne de commande de httpd. +Par exemple, +avec la configuration suivante, toutes les requêtes seront redirigées vers +un autre site si le serveur est démarré en utilisant la ligne de commande : +httpd -DClosedForNow:

    + +
    <IfDefine ClosedForNow>
    +    Redirect / http://otherserver.example.com/
    +</IfDefine>
    + + +

    Le conteneur <IfModule> +est similaire; les directives qu'il contient ne s'appliqueront que si +un module particulier est disponible au niveau du serveur. +Le module doit être soit compilé statiquement dans le serveur, soit +dynamiquement et dans ce cas, la ligne LoadModule correspondante doit apparaître +plus haut dans le fichier de configuration. Ce conteneur ne doit être +utilisé que dans le cas où votre fichier de configuration doit fonctionner +indépendamment de la présence ou de l'absence de certains modules. +Il ne doit pas contenir de directives que vous souhaitez voir s'appliquer +systématiquement, car vous pouvez perdre ainsi de précieux messages d'erreur +à propos de modules manquants.

    + +

    Dans l'exemple suivant, la directive MimeMagicFile ne s'appliquera que si le +module mod_mime_magic est disponible.

    + +
    <IfModule mod_mime_magic.c>
    +    MimeMagicFile conf/magic
    +</IfModule>
    + + +

    Le conteneur +<IfVersion> +est similaire aux conteneurs <IfDefine> et <IfModule>; les directives qu'il contient ne +s'appliqueront que si une version particulière du serveur s'exécute. Ce +conteneur a été conçu pour une utilisation dans les suites de tests +et les grands réseaux qui doivent prendre en compte différentes versions +et configurations de httpd.

    + +
    <IfVersion >= 2.1>
    +    # les directives situées ici ne s'appliquent que si la version
    +    # est supérieure ou égale à 2.1.0.
    +</IfVersion>
    + + +

    <IfDefine>, +<IfModule>, et +<IfVersion> +peuvent inverser leur test conditionnel en le faisant précéder d'un "!". +De plus, ces sections peuvent être imbriquées afin de définir des restrictions +plus complexes.

    +
    top
    +
    +

    Système de fichiers et +arborescence du site web

    + +

    Les conteneurs de sections de configuration les plus couramment utilisés +sont ceux qui modifient la configuration de points particuliers du système de +fichiers ou de l'arborescence du site web. Tout d'abord, il est important de +comprendre la différence entre les deux. Le système de fichiers est une vue +de vos disques tels qu'ils sont perçus par votre système d'exploitation. +Par exemple, avec une installation par défaut, +Apache est situé dans /usr/local/apache2 pour le système de +fichiers UNIX, ou "c:/Program Files/Apache Group/Apache2" pour +le système de fichiers Windows. (Notez que des slashes directs doivent +toujours être utilisés comme séparateur de chemin dans Apache, même sous +Windows.) Quant à +l'arborescence du site web, il s'agit d'une vue de votre site +tel que présenté par le +serveur web et perçue par le client. Ainsi le chemin /dir/ dans +l'arborescence du site web correspond au chemin +/usr/local/apache2/htdocs/dir/ dans le système de fichiers pour +une installation d'Apache par défaut sous UNIX. +En outre, l'arborescence du site web n'a pas besoin de correspondre en permanence au +système de fichiers, car les pages web peuvent être générées dynamiquement +à partir de bases de données ou d'autres emplacements.

    + +

    Conteneurs de système de fichiers

    + +

    Les conteneurs <Directory> +et <Files>, +ainsi que leurs équivalents acceptant les +expressions rationnelles, +appliquent des directives à certaines parties du système de fichiers. +Les directives contenues dans une section <Directory> s'appliquent au répertoire +précisé, ainsi qu'à tous ses sous-répertoires et aux fichiers que ces +derniers contiennent. +Le même effet peut être obtenu en utilisant les fichiers .htaccess. Par exemple, avec la +configuration suivante, l'indexation sera activée pour le répertoire +/var/web/dir1 et tous ses sous-répertoires.

    + +
    <Directory /var/web/dir1>
    +    Options +Indexes
    +</Directory>
    + + +

    Les directives contenues dans une section <Files> s'appliquent à tout fichier +avec le nom spécifié, quel que soit le répertoire dans lequel il se trouve. +Ainsi par exemple, les directives de configuration suivantes, si elles sont +placées dans la section principale du fichier de configuration, vont interdire +l'accès à tout fichier nommé private.html quel que soit +l'endroit où il se trouve.

    + +
    <Files private.html>
    +    Order allow,deny
    +    Deny from all
    +</Files>
    + + +

    Pour faire référence à des fichiers qui se trouvent en des points +particuliers du système de fichiers, les sections +<Files> et +<Directory> +peuvent être combinées. Par exemple, la configuration suivante va interdire +l'accès à /var/web/dir1/private.html, +/var/web/dir1/subdir2/private.html, +/var/web/dir1/subdir3/private.html, ainsi que toute instance de +private.html qui se trouve dans l'arborescence +/var/web/dir1/.

    + +
    <Directory /var/web/dir1>
    +    <Files private.html>
    +        Order allow,deny
    +        Deny from all
    +    </Files>
    +</Directory>
    + + + +

    Conteneurs de l'arborescence du site web

    + +

    le conteneur <Location> +et son équivalent acceptant les +expressions rationnelles, modifient quant à eux la +configuration de parties de l'arborescence du site web. Par exemple, la +configuration suivante interdit l'accès à toute URL dont la partie chemin +commence par /private. +En particulier, l'interdiction s'appliquera aux requêtes pour : +http://yoursite.example.com/private, +http://yoursite.example.com/private123, et +http://yoursite.example.com/private/dir/file.html ainsi qu'à +toute requête commençant par la chaîne de caractères /private.

    + +
    <LocationMatch ^/private>
    +    Order Allow,Deny
    +    Deny from all
    +</LocationMatch>
    + + +

    Le conteneur <Location> +n'a pas besoin de faire référence à un élément du système de fichiers. +Par exemple, l'exemple suivant montre comment faire référence à une URL +particulière vers un gestionnaire interne d'Apache fourni par le module +mod_status. +Il n'est pas nécessaire de trouver un fichier nommé server-status +dans le système de fichiers.

    + +
    <Location /server-status>
    +    SetHandler server-status
    +</Location>
    + + + +

    Caractères de remplacement +et expressions rationnelles

    + +

    Les conteneurs +<Directory>, +<Files>, et +<Location> +peuvent utiliser des caractères de remplacement de style shell comme dans +la fonction fnmatch de la bibliothèque C standard. +Le caractère "*" +correspond à toute séquence de caractères, "?" à un caractère seul, +et "[seq]" à tout caractère contenu dans seq. +Le caractère "/" +ne peut pas faire l'objet d'un remplacement; +il doit être spécifié explicitement.

    + +

    Si une définition des critères de correspondance +encore plus souple est nécessaire, chaque conteneur +possède son équivalent acceptant les expressions rationnelles : <DirectoryMatch>, <FilesMatch>, et <LocationMatch> acceptent les +expressions rationnelles compatibles Perl +pour définir les critères de correspondance. Mais voyez plus loin la section +à propos de la combinaison des sections de configuration +pour comprendre comment l'utilisation de +conteneurs avec des expressions rationnelles va modifier la manière +dont les directives sont appliquées.

    + +

    Un conteneur qui modifie la configuration de tous les +répertoires utilisateurs à l'aide de caractères de remplacement +mais sans utiliser +les expressions rationnelles pourrait ressembler à ceci :

    + +
    <Directory /home/*/public_html>
    +    Options Indexes
    +</Directory>
    + + +

    Avec les conteneurs utilisant les expressions rationnelles, +on peut interdire l'accès à de nombreux types de fichiers d'images +simultanément :

    +
    <FilesMatch \.(?i:gif|jpe?g|png)$>
    +    Order allow,deny
    +    Deny from all
    +</FilesMatch>
    + + + + +

    Que faut-il utiliser et quand ?

    + +

    Choisir entre des conteneurs de système de fichiers et des conteneurs +d'arborescence du site web est vraiment très simple. +Pour appliquer des directives à des objets qui résident dans le système de +fichiers, utilisez toujours un conteneur <Directory> ou <Files>. Pour appliquer des directives à des objets +qui ne résident pas dans le système de fichiers (comme une page web générée +par une base de données), utilisez un conteneur <Location>.

    + +

    Il ne faut jamais utiliser un conteneur <Location> pour restreindre l'accès à des +objets du système de fichiers, car plusieurs localisations de +l'arborescence du site web (URLs) peuvent correspondre à la même localisation +du système de fichier, ce qui peut permettre de contourner vos restrictions. +Par exemple, imaginez la configuration suivante :

    + +
    <Location /dir/>
    +    Order allow,deny
    +    Deny from all
    +</Location>
    + + +

    Elle fonctionne correctement si la requête appelle +http://yoursite.example.com/dir/. Mais que va-t-il se passer si +votre système de fichiers est insensible à la casse ? +Votre restriction va pouvoir être tout simplement contournée en envoyant une +requête sur +http://yoursite.example.com/DIR/. Le conteneur <Directory>, quant à lui, s'appliquera +à tout contenu servi à partir de cette localisation, +sans tenir compte de la manière dont il est appelé. +(Les liens du système de fichiers constituent une exception. +Le même répertoire peut être placé dans plusieurs parties du système de +fichiers en utilisant des liens symboliques. Le conteneur +<Directory> va suivre le +lien symbolique sans modifier le nom du chemin. Par conséquent, pour plus de +sécurité, les liens symboliques doivent être désactivés à l'aide de la +directive +Options appropriée.)

    + +

    Si vous pensez que vous n'êtes pas concerné par ce problème +parceque vous utilisez un système de fichiers sensible à la casse, +gardez à l'esprit qu'il y a de nombreuses autres manières pour faire +correspondre plusieurs localisations de l'arborescence du site web à la même +localisation du système de fichiers. C'est pourquoi vous devez autant que +possible toujours utiliser les conteneurs de système de fichiers. +Il y a cependant une exception à cette règle. Placer des restrictions de +configuration dans un conteneur <Location +/> est tout à fait sans rique car ce conteneur va s'appliquer à +toutes les requêtes sans tenir compte de l'URL spécifique.

    + + +
    top
    +
    +

    Hôtes virtuels

    + +

    Le conteneur <VirtualHost> +contient des directives qui s'appliquent à des hôtes spécifiques. +Ceci s'avère utile pour servir des hôtes multiples à partir de la même machine, +chacun d'entre eux possédant une configuration différente. Pour de plus amples +informations, +voir la Documentation sur les hôtes virtuels.

    +
    top
    +
    +

    Mandataire

    + +

    Les conteneurs +<Proxy> +et <ProxyMatch> +appliquent les directives de configuration qu'ils contiennent uniquement aux +sites qui correspondent à l'URL spécifiée et auxquels on a +accédé via le serveur mandataire du module mod_proxy. +Par exemple, la configuration suivante n'autorisera l'accès au site web +www.example.com via le serveur mandataire qu'à un sous-ensemble de +clients :

    + +
    <Proxy "http://www.example.com/*">
    +    Order allow,deny
    +    Allow from 192.168.1.104 192.168.1.205
    +    Deny from all
    +</Proxy>
    + +
    top
    +
    +

    Quelles sont les directives autorisées ?

    + +

    Pour déterminer quelles sont les directives autorisées pour tel type de +section de configuration, vérifiez le Contexte de la directive. +Tout ce qui est autorisé dans les sections +<Directory> +l'est aussi d'un point de vue syntaxique dans les sections +<DirectoryMatch>, +<Files>, +<FilesMatch>, +<Location>, +<LocationMatch>, +<Proxy>, +et <ProxyMatch>. +Il y a cependant quelques exceptions :

    + + +
    top
    +
    +

    Comment les sections sont combinées entre elles

    + +

    Les sections de configuration sont appliquées dans un ordre très particulier. +Il est important de savoir comment cet ordre est défini car il peut avoir +des effets importants sur la manière dont les directives de configuration +sont interprétées.

    + +

    L'ordre dans lequel les sections sont combinées est :

    + +
      +
    1. Les sections <Directory> (à l'exception des + expressions rationnelles) + et les fichiers .htaccess sont appliqués simultanément (avec + la possibilité pour .htaccess, s'il y est autorisé, de + prévaloir sur + <Directory>)
    2. + +
    3. Les sections + <DirectoryMatch> + (et <Directory ~>)
    4. + +
    5. Les sections <Files> et <FilesMatch> sont appliquées + simultanément
    6. + +
    7. Les sections + <Location> + et <LocationMatch> sont appliquées + simultanément
    8. +
    + +

    Mises à part les sections <Directory>, chaque groupe est traité selon + l'ordre dans lequel il apparaît dans les fichiers de configuration. + Les sections <Directory> (groupe 1 ci-dessus) + sont traitées dans l'ordre du répertoire le plus court vers le plus long. + Par exemple, <Directory /var/web/dir> sera + traité avant <Directory + /var/web/dir/subdir>. Si plusieurs sections <Directory> s'appliquent au même + répertoire, elles sont traitées selon l'ordre dans lequel elles + apparaissent dans le fichier de configuration. + Les sections de configuration incluses via la directive Include sont traitées comme si elles se + trouvaient réellement dans le fichier qui les inclut à la position de la + directive + Include.

    + +

    Les sections situées à l'intérieur de sections <VirtualHost> + sont appliquées après les sections correspondantes situées en + dehors de la définition de l'hôte virtuel, ce qui permet à l'hôte virtuel + de prévaloir sur la configuration du serveur principal.

    + +

    Quand la requête est servie par le module mod_proxy, + le conteneur <Proxy> + prend la place du conteneur <Directory> dans l'ordre de traitement.

    + +

    Note technique

    + Une séquence + <Location>/<LocationMatch> + est réellement traitée juste avant la phase de traduction du nom + (où Aliases et DocumentRoots + sont utilisés pour faire correspondre les URLs aux noms de fichiers). + Les effets de cette séquence disparaissent totalement lorsque + la traduction est terminée. +
    + +

    Interactions entre +modules et sections de configuration

    +

    Une question se pose souvent après avoir lu comment les sections de + configuration sont fusionnées : comment et quand les directives de modules + particuliers comme mod_rewrite sont-elles interprétées ? La + réponse n'est pas triviale et nécessite un approfondissement. Chaque module + httpd gère sa propre configuration, et chacune de ses directives dans + httpd.conf définit un élément de configuration dans un contexte particulier. + httpd n'exécute pas un commande au moment où elle est lue.

    +

    A l'exécution, le noyau de httpd parcours les sections de configuration + dans l'ordre décrit ci-dessus afin de déterminer lesquelles s'appliquent à + la requête courante. Lorsqu'une première section s'applique, elle est + considérée comme la configuration courante pour cette requête. Si une + section suivante s'applique aussi, chaque module qui possède des directives + dans chacune de ces sections a la possibilité de fusionner sa configuration + entre ces deux sections. Il en résulte une troisième configuration et le + processus de fusion se poursuit jusqu'à ce que toutes les sections de + configuration aient été évaluées.

    +

    Après l'étape précédente, le traitement proprement dit de la requête HTTP + peut commencer : chaque module peut effectuer toute tâche qui lui incombe, + et pour déterminer de quelle manière dont il doit agir, il peut s'appuyer + sur le noyau de httpd pour retrouver sa configuration globale issue de la + fusion précédente.

    +

    Un exemple permet de mieux visualiser l'ensemble du processus. la + configuration suivante utilise la directive Header du module + mod_headers pour définir un en-tête HTTP spécifique. Quelle + valeur httpd va-t-il affecter à l'en-tête CustomHeaderName pour + une requête vers /example/index.html ? +

    +
    <Directory "/">
    +    Header set CustomHeaderName one
    +    <FilesMatch ".*">
    +        Header set CustomHeaderName three
    +    </FilesMatch>
    +</Directory>
    +
    +<Directory "/example">
    +    Header set CustomHeaderName two
    +</Directory>
    + +
      +
    • Directory "/" s'applique, et une configuration + initiale est créée qui définit l'en-tête CustomHeaderName + avec la valeur one.
    • +
    • Directory "/example" s'applique, et comme + mod_headers spécifie dans son code que + la valeur d'un en-tête doit être écrasée si ce dernier est défini à + nouveau, une nouvelle configuration est créée qui définit l'en-tête + CustomHeaderName avec la valeur two.
    • +
    • FilesMatch ".*" s'applique, une nouvelle + opportunité de fusion surgit, et l'en-tête CustomHeaderName + est défini à la valeur three.
    • +
    • Finalement, au cours des étapes suivantes du traitement de la + requête HTTP, mod_headers sera sollicité, et il se + basera sur la configuration qui a défini l'en-tête + CustomHeaderName à la valeur three. + mod_headers utilise normalement cette configuration pour + accomplir sa tâche, à savoir définir des en-têtes HTTP. Cela ne veut + cependant pas dire qu'un module ne peut pas effectuer des actions plus + complexes comme désactiver des directives car elle ne sont pas + nécessaires ou obsolètes, etc...
    • +
    + +

    Ceci est aussi vrai pour les fichiers .htaccess car ils possèdent la même + priorité que les sections Directory dans l'ordre de + fusion. Il faut bien comprendre que les sections de configuration comme + Directory et FilesMatch ne + sont pas comparables avec les directives spécifiques de modules comme + Header ou RewriteRule car elles agissent à des + niveaux différents. +

    + + +

    Quelques exemples

    + +

    Voici un exemple imaginaire qui montre l'ordre de combinaison des sections. +En supposant qu'elles s'appliquent toutes à la requête, les directives de +cet exemple seront appliquées dans l'ordre suivant : A > B > C > D > +E.

    + +
    <Location "/">
    +    E
    +</Location>
    +
    +<Files "f.html">
    +    D
    +</Files>
    +
    +<VirtualHost *>
    +<Directory "/a/b">
    +    B
    +</Directory>
    +</VirtualHost>
    +
    +<DirectoryMatch "^.*b$">
    +    C
    +</DirectoryMatch>
    +
    +<Directory "/a/b">
    +    A
    +</Directory>
    + + +

    Pour un exemple plus concret, considérez ce qui suit. Sans tenir compte +de toute restriction d'accès placée dans les sections <Directory>, la section <Location> sera +évaluée en dernier et permettra un accès au serveur sans aucune restriction. +En d'autres termes, l'ordre de la combinaison des sections est important, +soyez donc prudent !

    + +
    <Location "/">
    +    Require all granted
    +</Location>
    +# Arrghs!  Cette section <Directory> n'aura aucun effet
    +<Directory "/">
    +    <RequireAll>
    +        Require all granted
    +        Require not host badguy.example.com
    +    </RequireAll>
    +</Directory>
    + + + + +
    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/sections.html.ja.euc-jp b/docs/manual/sections.html.ja.euc-jp deleted file mode 100644 index bd3fc3e18ac..00000000000 --- a/docs/manual/sections.html.ja.euc-jp +++ /dev/null @@ -1,466 +0,0 @@ - - - -¥»¥¯¥·¥ç¥ó¤ÎÀßÄê - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥»¥¯¥·¥ç¥ó¤ÎÀßÄê

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    -

    ÀßÄê¥ե¡¥¤¥ëÃæ¤Υǥ£¥쥯¥ƥ£¥֤Ï -¥µ¡¼¥ÐÁ´ÂΤËŬÍѤµ¤줿¤ꡢÆÃÄê¤Υǥ£¥쥯¥ȥê¤ä¥ե¡¥¤¥롢¥ۥ¹¥ȡ¢URL ¤ˤΤß -ŬÍѤµ¤ì¤ë¤褦¤ËÀ©¸¤·¤¿¤ꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤³¤Îʸ½ñ¤ÏÀßÄêÍѤΥ»¥¯¥·¥ç¥ó¤Î -¥³¥ó¥ƥʤä .htaccess ¥ե¡¥¤¥ë¤ò»Ȥ䯾¤ÎÀßÄê¥ǥ£¥쥯¥ƥ£¥֤Î -¥¹¥³¡¼¥פòÊѹ¹¤¹¤ëÊýˡ¤òÀâÌÀ¤·¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ÀßÄêÍѥ»¥¯¥·¥ç¥󥳥ó¥ƥʤμïÎà

    - - - -

    ¥³¥ó¥ƥʤˤÏÆó¤ĤδðËܤȤʤë¼ïÎब¤¢¤ê¤ޤ¹¡£¤ۤȤó¤ɤΥ³¥ó¥ƥʤÏ -³ƥꥯ¥¨¥¹¥ȤËÂФ·¤Æɾ²Á¤µ¤ì¤ޤ¹¡£¤½¤ξì¹硢¥³¥ó¥ƥÊÃæ¤Υǥ£¥쥯¥ƥ£¥֤Ï -¥³¥ó¥ƥʤ˥ޥåÁ¤¹¤ë¥ꥯ¥¨¥¹¥ȤˤΤßŬÍѤµ¤ì¤ޤ¹¡£ -°ìÊý¡¢<IfDefine> ¥³¥ó¥ƥʤÈ <IfModule> ¥³¥ó¥ƥʤÏ -¥µ¡¼¥Фε¯ư»þ¤ȺƵ¯ư»þ¤ˤΤßɾ²Á¤µ¤ì¤ޤ¹¡£µ¯ư»þ¤˾ò·郎¿¿¤Ǥ¢¤ì¤С¢ -¥³¥ó¥ƥÊÃæ¤Υǥ£¥쥯¥ƥ£¥֤Ϥ¹¤٤ƤΥꥯ¥¨¥¹¥ȤËŬÍѤµ¤ì¤ޤ¹¡£¾ò·郎 -µ¶¤Ǥ¢¤ì¤С¢¥³¥ó¥ƥÊÃæ¤Υǥ£¥쥯¥ƥ£¥֤Ï̵»뤵¤ì¤ޤ¹¡£

    - -

    <IfDefine> ¥ǥ£¥쥯¥ƥ£¥֤Ï -httpd ¥³¥ޥó¥ɥ饤¥ó¤ÇŬÀڤʥѥé¥᡼¥¿¤¬ÄêµÁ¤µ¤줿¤Ȥ­¤ˤΤß -ŬÍѤµ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥ¤¤ޤ¹¡£Î㤨¤м¡¤ÎÀßÄê¤Ǥϡ¢¥µ¡¼¥Ф¬ -httpd -DClosedForNow ¤ò»ȤäƵ¯ư¤µ¤줿¤Ȥ­¤À¤±¤¹¤٤ƤÎ -¥ꥯ¥¨¥¹¥ȤòÊ̤Υµ¥¤¥Ȥ˥ê¥À¥¤¥쥯¥Ȥ·¤ޤ¹:

    - -

    -<IfDefine ClosedForNow>
    -Redirect / http://otherserver.example.com/
    -</IfDefine> -

    - -

    <IfModule> ¤Ï -Èó¾ï¤˻÷¤Ƥ¤¤ޤ¹¤¬¡¢Âå¤ï¤ê¤˥µ¡¼¥оå¤ǥ⥸¥塼¥뤬»ÈÍѲÄǽ¤ʾì¹ç¤ˤΤß -ŬÍѲÄǽ¤ʥǥ£¥쥯¥ƥ£¥֤ò°Ϥ¤¤ޤ¹¡£¥⥸¥塼¥ë¤ϥµ¡¼¥ФË -ÀÅŪ¤ËÁȤ߹þ¤ޤì¤Ƥ¤¤뤫¡¢ưŪ¤ËÁȤ߹þ¤à¤褦¤ˤʤäƤ¤¤ơ¢ÀßÄê¥ե¡¥¤¥ëÃæ¤Ç -LoadModule ¤ιԤ¬¤è¤êÁ°¤Î -Éôʬ¤˽񤫤ì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£¤³¤Υǥ£¥쥯¥ƥ£¥֤ÏÆÃÄê¤Υ⥸¥塼¥ë¤Î -¸ºߤ˴ؤï¤餺ÀßÄê¥ե¡¥¤¥뤬ưº¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤ˤΤ߻ȤäƤ¯¤À¤µ¤¤¡£ -¾ï¤Ëưº¤ÆÍߤ·¤¤¥ǥ£¥쥯¥ƥ£¥֤ò°Ϥि¤á¤˻Ȥ¦¤٤­¤ǤϤ¢¤ê¤ޤ»¤ó¡£ -¸ºߤ·¤ʤ¤¥⥸¥塼¥ë¤˴ؤ¹¤ëͭÍѤʥ¨¥顼¥á¥å»¡¼¥¸¤ÎȯÀ¸¤òÍÞÀ©¤·¤Ƥ·¤ޤ¤¤ޤ¹¤Τǡ£ -

    - -

    ¼¡¤ÎÎã¤Ǥϡ¢mod_mime_magic ¤¬¤¢¤ë¤Ȥ­¤ˤΤß MimeMagicFiles ¥ǥ£¥쥯¥ƥ£¥֤¬ -ŬÍѤµ¤ì¤ޤ¹¡£

    - -

    -<IfModule mod_mime_magic.c>
    -MimeMagicFile conf/magic
    -</IfModule> -

    - -

    <IfDefine> ¥ǥ£¥쥯¥ƥ£¥֤È -<IfModule> ¥ǥ£¥쥯¥ƥ£¥֤Ï -¥ƥ¹¥ȤÎÁ°¤Ë "!" ¤òÉդ±¤뤳¤ȤÇÈÝÄê¤ξò·ï¤òŬÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -¤ޤ¿¡¢¤³¤ì¤é¤Υ»¥¯¥·¥ç¥ó¤Ϥè¤êʣ»¨¤ÊÀ©¸¤ò²ݤ¹¤¿¤á¤ËÆþ¤ì»Ҥˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -

    -
    top
    -
    -

    ¥ե¡¥¤¥륷¥¹¥ƥà¤ȥ¦¥§¥ֶõ´Ö

    - -

    ºǤâ¤褯»Ȥï¤ì¤ëÀßÄê¤Υ»¥¯¥·¥ç¥󥳥ó¥ƥʤϥե¡¥¤¥륷¥¹¥ƥà¤䥦¥§¥ֶõ´֤Î -ÆÃÄê¤ξì½ê¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¤â¤ΤǤ¹¡£¤ޤº¡¢¤³¤ÎÆó¤Ĥΰ㤤¤òÍý²򤹤뤳¤Ȥ¬ -ÂçÀڤǤ¹¡£¥ե¡¥¤¥륷¥¹¥ƥà¤ϥª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥफ¤鸫¤¿¥ǥ£¥¹¥¯¤ÎÆâÍƤǤ¹¡£ -¤¿¤Ȥ¨¤С¢¥ǥե©¥ë¥ȤΥ¤¥󥹥ȡ¼¥ë¤ǤÏ Apache ¤Ï Unix ¥ե¡¥¤¥륷¥¹¥ƥà¤ǤÏ -/usr/local/apache2 ¤ˡ¢Windows ¥ե¡¥¤¥륷¥¹¥ƥà¤ǤÏ -"c:/Program Files/Apache Group/Apache2" ¤Ë¸ºߤ·¤ޤ¹¡£ -(Apache ¤ǤÏ Windows ¤Ǥâ¥ѥ¹¥»¥ѥ졼¥¿¤Ȥ·¤ƥ¹¥é¥å·¥å¤ò»Ȥ¦¤³¤ȤË -µ¤¤ò¤Ĥ±¤Ƥ¯¤À¤µ¤¤¡£) ÂоÈŪ¤ˡ¢¥¦¥§¥ֶõ´֤Ϥ¢¤ʤ¿¤Υµ¥¤¥Ȥò -¥¦¥§¥֥µ¡¼¥Ф«¤éÇۿ®¤µ¤ì¤ë¤â¤ΤȤ·¤Ƹ«¤¿¤â¤Τǡ¢¥¯¥饤¥¢¥ó¥Ȥ˸«¤¨¤ë¤â¤ΤǤ¹¡£ -¥ǥե©¥ë¥ȤÎ Unix ¾å¤Î Apache ¤Υ¤¥󥹥ȡ¼¥ë¤Ǥϥ¦¥§¥ֶõ´֤Î -/dir/ ¤Ȥ¤¤¦¥ѥ¹¤ϥե¡¥¤¥륷¥¹¥ƥà¤Î -/usr/local/apache2/htdocs/dir/ ¤Ȥ¤¤¦¥ѥ¹¤ËÂбþ¤·¤ޤ¹¡£ -¥¦¥§¥֥ڡ¼¥¸¤ϥǡ¼¥¿¥١¼¥¹¤ä¾¤ξì½꤫¤éưŪ¤ËÀ¸À®¤¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¤Τǡ¢ -¥¦¥§¥ֶõ´֤ϥե¡¥¤¥륷¥¹¥ƥà¤ËľÀܥޥåפ¹¤ëɬÍפϤ¢¤ê¤ޤ»¤ó¡£

    - -

    ¥ե¡¥¤¥륷¥¹¥ƥॳ¥ó¥ƥÊ

    - -

    <Directory> ¥ǥ£¥쥯¥ƥ£¥֤È -<Files> ¥ǥ£¥쥯¥ƥ£¥֡¢¤½¤ì¤È -¤½¤ì¤é¤ÎÀµµ¬ɽ¸½ÈǤϥǥ£¥쥯¥ƥ£¥֤ò¥ե¡¥¤¥륷¥¹¥ƥà¤ΰìÉôʬ¤ËÂФ·¤ÆŬÍѤ·¤ޤ¹¡£ -<Directory> ¥»¥¯¥·¥ç¥ó¤Î -Ãæ¤Υǥ£¥쥯¥ƥ£¥֤ϻØÄꤵ¤줿¥ǥ£¥쥯¥ȥê¤Ȥ½¤Τ¹¤٤ƤΥµ¥֥ǥ£¥쥯¥ȥê¤Ë -ŬÍѤµ¤ì¤ޤ¹¡£.htaccess ¥ե¡¥¤¥ë¤ò -»Ȥ¦¤³¤ȤǤâƱ¤¸¸ú²̤òÆÀ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£Î㤨¤С¢¼¡¤ÎÀßÄê¤ǤÏ -/var/web/dir1 ¤Ȥ¹¤٤ƤΥµ¥֥ǥ£¥쥯¥ȥê¤ËÂФ·¤Æ -¥ǥ£¥쥯¥ȥꥤ¥ó¥ǥ寥¹¤ò¹Ԥʤ¤¤ޤ¹¡£

    - -

    -<Directory /var/web/dir1>
    -Options +Indexes
    -</Directory> -

    - -

    <Files> ¥»¥¯¥·¥ç¥ó¤Î -Ãæ¤ˤ¢¤ë¥ǥ£¥쥯¥ƥ£¥֤ϤɤΥǥ£¥쥯¥ȥê¤ˤ¢¤뤫¤˴ؤï¤餺¡¢»ØÄꤵ¤줿̾Á°¤Î -¤¹¤٤ƤΥե¡¥¤¥ë¤ËŬÍѤµ¤ì¤ޤ¹¡£¤Ǥ¹¤«¤éÎ㤨¤аʲ¼¤ÎÀßÄê¥ǥ£¥쥯¥ƥ£¥֤¬ -ÀßÄê¥ե¡¥¤¥ë¤μ祻¥¯¥·¥ç¥ó¤˽񤫤줿¤Ȥ­¤ˤϡ¢¤¹¤٤Ƥξì½ê¤Î -private.html ¤Ȥ¤¤¦̾Á°¤Υե¡¥¤¥ë¤ؤΥ¢¥¯¥»¥¹¤òµñÈݤ·¤ޤ¹¡£

    - -

    -<Files private.html>
    -Order allow,deny
    -Deny from all
    -</Files> -

    - -

    ¥ե¡¥¤¥륷¥¹¥ƥà¤ÎÆÃÄê¤ξì½ê¤ˤ¢¤ë¥ե¡¥¤¥ë¤ò»ØÄꤹ¤뤿¤á¤ˡ¢ -<Files> ¥»¥¯¥·¥ç¥ó¤È -<Directory> ¥»¥¯¥·¥ç¥ó¤ò -ÁȤ߹ç¤碌¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£Î㤨¤С¢¼¡¤ÎÀßÄê¤ǤÏ -/var/web/dir1/private.html, -/var/web/dir1/subdir2/private.html, -/var/web/dir1/subdir3/private.html ¤ʤɡ¢ -/var/web/dir1/ ¥ǥ£¥쥯¥ȥê¤β¼¤ˤ¢¤뤹¤٤ƤÎ -private.html ¤ؤΥ¢¥¯¥»¥¹¤òµñÈݤ·¤ޤ¹¡£

    - -

    -<Directory /var/web/dir1>
    -<Files private.html>
    -Order allow,deny
    -Deny from all
    -</Files>
    -</Directory> -

    - - -

    ¥¦¥§¥ֶõ´֥³¥ó¥ƥÊ

    - -

    °ìÊý¡¢<Location> -¥ǥ£¥쥯¥ƥ£¥֤Ȥ½¤ÎÀµµ¬ɽ¸½ÈǤϥ¦¥§¥ֶõ´־å¤ÎÆâÍƤËÂФ·¤ÆÀßÄê¤òÊѹ¹¤·¤ޤ¹¡£ -¤¿¤Ȥ¨¤С¢¼¡¤ÎÀßÄê¤ǤÏ /private ¤ǻϤޤë URL ¥ѥ¹¤ؤΥ¢¥¯¥»¥¹¤òÀ©¸¤·¤ޤ¹¡£ -¶ñÂÎŪ¤ˤϡ¢ -http://yoursite.example.com/private, -http://yoursite.example.com/private123, -http://yoursite.example.com/private/dir/file.html -¤ؤΥꥯ¥¨¥¹¥Ȥ䡢 -¾¤ÎƱÍͤË /private ʸ»úÎó¤ǻϤޤë¥ꥯ¥¨¥¹¥ȤË -ŬÍѤµ¤ì¤ޤ¹¡£

    - -

    -<Location /private>
    -Order Allow,Deny
    -Deny from all
    -</Location> -

    - -

    <Location> -¥ǥ£¥쥯¥ƥ£¥֤ϥե¡¥¤¥륷¥¹¥ƥà¤ȴط¸¤¢¤ëɬÍפ¬Á´¤¯¤¢¤ê¤ޤ»¤ó¡£ -¤¿¤Ȥ¨¤м¡¤ÎÎã¤Ǥϡ¢¤ɤΤ褦¤ˤ·¤ÆÆÃÄê¤Î URL ¤ò -mod_status¤ÇÄ󶡤µ¤ì¤Ƥ¤¤ë Apache -ÆâÉô¥ϥó¥ɥé¤˥ޥåפ¹¤뤫¤򼨤·¤Ƥ¤¤ޤ¹¡£¥ե¡¥¤¥륷¥¹¥ƥà¤Ë -server-status ¤Ȥ¤¤¦¥ե¡¥¤¥뤬¸ºߤ¹¤ëɬÍפϤ¢¤ê¤ޤ»¤ó¡£

    - -

    -<Location /server-status>
    -SetHandler server-status
    -</Location> -

    - - -

    ¥磻¥ë¥ɥ«¡¼¥ɤÈÀµµ¬ɽ¸½

    - -

    <Directory>, -<Files>, -<Location> -¥ǥ£¥쥯¥ƥ£¥֤Ǥϡ¢ C ɸ½à¥饤¥֥é¥ê¤Î fnmatch ¤Τ褦¤Ë -shell ¥¹¥¿¥¤¥ë¤Υ磻¥ë¥ɥ«¡¼¥ɥ­¥ã¥饯¥¿¤¬»ÈÍѤǤ­¤ޤ¹¡£ -"*" ʸ»ú¤ÏǤ°դÎʸ»úÎó¤˥ޥåÁ¤·¡¢"?" ʸ»ú¤ÏǤ°դÎ 1 ʸ»ú¤˥ޥåÁ¤·¡¢ -"[seq]" ¤Ï seq ¤ÎǤ°դÎʸ»ú¤˥ޥåÁ¤·¤ޤ¹¡£ -"/" ʸ»ú¤ϤɤΥ磻¥ë¥ɥ«¡¼¥ɤǤâ¥ޥåÁ¤µ¤ì¤ޤ»¤ó¡£ -ÌÀ¼¨Ū¤˻ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ¤³¤ì¤è¤ê½ÀÆð¤ʥޥåÁ¥󥰤¬ɬÍפʾì¹ç¤ϡ¢¤³¤ì¤é¤Υ³¥ó¥ƥʤËÀµµ¬ɽ¸½ -(regex) ÈǤǤ¢¤ë -<DirectoryMatch>, -<FilesMatch>, -<LocationMatch> -¤¬¤¢¤ꡢ¥ޥåÁ¤òÁªÂ򤹤ë¤ΤË perl ¸ߴ¹Àµµ¬ɽ¸½¤ò»ÈÍѤǤ­¤ޤ¹¡£¤·¤«¤·¡¢¼¡¤ÎÀßÄê¤Υޡ¼¥¸¤ËÌܤòÄ̤·¤ơ¢ -regex ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢¥ǥ£¥쥯¥ƥ£¥֤ÎŬÍѤ¬¤ɤΤ褦¤Ë -ÊѲ½¤¹¤뤫Çİ®¤·¤Ƥª¤¤¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Á´¥桼¥¶¥ǥ£¥쥯¥ȥê¤ÎÀßÄê¤òÊѹ¹¤¹¤롢Èó regex -¥磻¥ë¥ɥ«¡¼¥ɥ»¥¯¥·¥ç¥ó¤ϼ¡¤Τ褦¤ˤʤê¤ޤ¹¡£

    - -

    -<Directory /home/*/public_html>
    -Options Indexes
    -</Directory> -

    - -

    regex ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ¹¤뤳¤Ȥǡ¢²èÁü¥ե¡¥¤¥ë¤Î¿¤¯¤Υ¿¥¤¥פËÂФ¹¤ë -¥¢¥¯¥»¥¹¤ò°ìÅ٤˵ñÈݤǤ­¤ޤ¹¡£

    -

    -<FilesMatch \.(?i:gif|jpe?g|png)$>
    -Order allow,deny
    -Deny from all
    -</FilesMatch> -

    - - - -

    ¤¤¤IJ¿¤ò»Ȥ¦¤«

    - -

    ¥ե¡¥¤¥륷¥¹¥ƥॳ¥ó¥ƥʤȥ¦¥§¥ֶõ´֥³¥ó¥ƥʤò»Ȥ¤ʬ¤±¤ë¤Τϡ¢ -¼ºݤˤÏÈó¾ï¤˴Êñ¤Ǥ¹¡£¥ե¡¥¤¥륷¥¹¥ƥà¤˰͸¤¹¤ë -¥ª¥֥¸¥§¥¯¥Ȥ˥ǥ£¥쥯¥ƥ£¥֤òŬ±þ¤¹¤ë¾ì¹ç¤ϡ¢ɬ¤º -<Directory> ¤« -<Files> -¤ò»ÈÍѤ·¤ޤ¹¡£¥ե¡¥¤¥륷¥¹¥ƥà¤˰͸¤·¤ʤ¤¥ª¥֥¸¥§¥¯¥È -(¥ǡ¼¥¿¥١¼¥¹¤«¤éÀ¸À®¤µ¤ì¤륦¥§¥֥ڡ¼¥¸¤ʤÉ) -¤˥ǥ£¥쥯¥ƥ£¥֤òŬÍѤ¹¤ëºݤˤϡ¢ -<Location> -¤ò»ÈÍѤ·¤ޤ¹¡£

    - -

    ¥ե¡¥¤¥륷¥¹¥ƥà¾å¤Υª¥֥¸¥§¥¯¥ȤؤΥ¢¥¯¥»¥¹¤òÀ©¸¤¹¤뤿¤á¤ˡ¢ -<Location> -¤ò·褷¤ƻÈÍѤʤ¤¤褦¤ˤ·¤ޤ·¤礦¡£ -Ʊ°ì¤Υե¡¥¤¥륷¥¹¥ƥà°ÌÃ֤˥ޥåפ·¤Ƥ¤¤롢¥¦¥§¥ֶõ´ְÌÃÖ (URL) -¤¬¿¿ô¤¢¤äơ¢ÀßÄꤷ¤¿À©¸¤򱪲󤵤ì¤Ƥ·¤ޤ¦¤«¤⤷¤ì¤ʤ¤¤«¤é¤Ǥ¹¡£ -Î㤨¤м¡¤ÎÀßÄê¤ò¹ͤ¨¤Ƥߤޤ·¤礦¡£

    - -

    -<Location /dir/>
    -Order allow,deny
    -Deny from all
    -</Location> -

    - -

    http://yoursite.example.com/dir/ -¤ؤΥꥯ¥¨¥¹¥ȤǤϾå¼꤯ưº¤ޤ¹¡£¤·¤«¤·Âçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ʤ¤ -¥ե¡¥¤¥륷¥¹¥ƥà¤ò»ȤäƤ¤¤¿¤é¤ɤ¦¤ʤë¤Ǥ·¤礦? -http://yoursite.example.com/DIR/ -¤ؤΥꥯ¥¨¥¹¥ȤǴÊñ¤˥¢¥¯¥»¥¹À©¸¤򱪲󤵤ì¤Ƥ·¤ޤ¤¤ޤ¹¡£¤³¤ì¤ËÂФ·¤Æ -<Directory> -¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤ë¤ȡ¢¤ɤΤ褦¤˸ƤӽФµ¤줿¤«¤˴ؤï¤餺 -¤½¤ξì½꤫¤éÄ󶡤µ¤ì¤ëÆâÍƤËŬÍѤµ¤ì¤ޤ¹¡£ -(Î㳰¤ϥե¡¥¤¥륷¥¹¥ƥà¤Υê¥󥯤Ǥ¹¡£¥·¥ó¥ܥê¥å¯¥ê¥󥯤ò»Ȥäơ¢ -Ʊ°ì¤Υǥ£¥쥯¥ȥê¤òʣ¿ô¤Υե¡¥¤¥륷¥¹¥ƥà¤ËÀßÃ֤Ǥ­¤ޤ¹¡£ -<Directory> -¥ǥ£¥쥯¥ƥ£¥֤ϥѥ¹̾¤ò¥ꥻ¥åȤ¹¤뤳¤Ȥʤ¯¥·¥ó¥ܥê¥å¯¥ê¥󥯤ò -é¤ê¤ޤ¹¡£¤Ǥ¹¤«¤顢¹âÅ٤ʥ»¥­¥å¥ê¥ƥ£¤¬Í׵ᤵ¤ì¤ë¾ì¹ç¤ϡ¢ -ŬÀڤË Options -¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤ƥ·¥ó¥ܥê¥å¯¥ê¥󥯤ò̵¸ú¤ˤ¹¤ë¤٤­¤Ǥ¹¡£)

    - -

    Âçʸ»ú¾®ʸ»ú¤ò¶èÊ̤¹¤ë¥ե¡¥¤¥륷¥¹¥ƥà¤ò»ÈÍѤ·¤Ƥ¤¤뤫¤é¾嵭¤Τ³¤ȤÏ -̵´ط¸¤À¤Ȼפï¤ì¤뤫¤⤷¤ì¤ޤ»¤󤬡¢ -Ʊ°ì¤Υե¡¥¤¥륷¥¹¥ƥà°ÌÃ֤Ëʣ¿ô¤Υ¦¥§¥ֶõ´ְÌÃ֤ò¥ޥåפ¹¤ëÊýˡ¤ϡ¢ -¾¤ˤ¤¤¯¤é¤Ǥ⤢¤ë¤Ȥ¤¤¦¤³¤Ȥò³Ф¨¤Ƥ¤¤Ƥ¯¤À¤µ¤¤¡£ -¤Ǥ¹¤«¤é¤Ǥ­¤ë¸¤ê¥ե¡¥¤¥륷¥¹¥ƥॳ¥ó¥ƥʤò»ÈÍѤ·¤Ƥ¯¤À¤µ¤¤¡£ -¤·¤«¤·¤ʤ¬¤é°ì¤ĤÀ¤±Î㳰¤¬¤¢¤ê¤ޤ¹¡£ -<Location /> ¥»¥¯¥·¥ç¥ó¤Ϥɤó¤Ê URL -¤ˤâ´ؤï¤餺ŬÍѤµ¤ì¤ë¤Τǡ¢´°Á´¤˰ÂÁ´¤Ǥ¹¡£

    - - -
    top
    -
    -

    ¥С¼¥Á¥ã¥ë¥ۥ¹¥È

    - -

    <VirtualHost> -¥³¥ó¥ƥʤÏÆÃÄê¤Υۥ¹¥ȤËŬÍѤ¹¤ë¥ǥ£¥쥯¥ƥ£¥֤ò³ÊǼ¤·¤ޤ¹¡£ -°ìÂæ¤Υޥ·¥ó¤Çʣ¿ô¤Υۥ¹¥Ȥò°ۤʤëÀßÄê¤ÇÄ󶡤·¤¿¤¤¤Ȥ­¤ËͭÍѤǤ¹¡£ -¾ܺ٤˴ؤ·¤ƤÏ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȥɥ­¥å¥á¥ó¥È¤ò -¤´Í÷²¼¤µ¤¤¡£

    -
    top
    -
    -

    ¥ץí¥¯¥·

    - -

    <Proxy> -¤È <ProxyMatch> -¥³¥ó¥ƥʤϡ¢ÆÃÄê¤Î URL ¤˥ޥåÁ¤¹¤ë mod_proxy -¥ץí¥¯¥·¥µ¡¼¥Фò·Ðͳ¤·¤ƥ¢¥¯¥»¥¹¤·¤¿¥µ¥¤¥ȤËÂФ·¤ƤΤßŬÍѤµ¤ì¤ë -ÀßÄê¥ǥ£¥쥯¥ƥ£¥֤ò³ÊǼ¤·¤ޤ¹¡£Î㤨¤м¡¤ÎÀßÄê¤ϡ¢cnn.com -¥¦¥§¥֥µ¥¤¥Ȥ˥¢¥¯¥»¥¹¤¹¤뤿¤á¤ËÍѤ¤¤é¤ì¤ë¥ץí¥¯¥·¥µ¡¼¥Фò -À©¸¤·¤ޤ¹¡£

    - -

    -<Proxy http://cnn.com/*>
    -Order allow,deny
    -Deny from all
    -</Proxy> -

    -
    top
    -
    -

    ¤ɤΥǥ£¥쥯¥ƥ£¥֤¬»Ȥ¨¤ë¤Î?

    - -

    ¤ɤΥ¿¥¤¥פÎÀßÄꥻ¥¯¥·¥ç¥ó¤ǤɤΥǥ£¥쥯¥ƥ£¥֤¬»ÈÍѤǤ­¤뤫¤ϡ¢ -¥ǥ£¥쥯¥ƥ£¥֤Î Context -¤򸫤Ƥ¯¤À¤µ¤¤¡£ -<Directory> -¤ǻÈÍѲÄǽ¤ʤâ¤ΤÏÁ´¤ơ¢ƱÍͤË -<DirectoryMatch>, -<Files>, -<FilesMatch>, -<Location>, -<LocationMatch>, -<Proxy>, -<ProxyMatch> -¥»¥¯¥·¥ç¥ó¤ǻÈÍѲÄǽ¤Ǥ¹¡£¤·¤«¤·¤ʤ¬¤é´ö¤Ĥ«Î㳰¤â¸ºߤ·¤ޤ¹¡£

    - -
      -
    • AllowOverride ¥ǥ£¥쥯¥ƥ£¥֤Ï -<Directory> -¥»¥¯¥·¥ç¥ó¤ǤΤ߻ÈÍѲÄǽ¤Ǥ¹¡£
    • - -
    • FollowSymLinks ¤È SymLinksIfOwnerMatch ¤Î -Options ¤ϡ¢ -<Directory> -¥»¥¯¥·¥ç¥ó¤« .htaccess ¥ե¡¥¤¥ë¤ǤΤ߻ÈÍѲÄǽ¤Ǥ¹¡£
    • - -
    • Options ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢ -<Files> -¤È <FilesMatch> -¥»¥¯¥·¥ç¥ó¤ǤϻÈÍѤǤ­¤ޤ»¤ó¡£
    • -
    -
    top
    -
    -

    ¥»¥¯¥·¥ç¥ó¤Υޡ¼¥¸Êýˡ

    - -

    ¥ޡ¼¥¸¤νçÈ֤ϰʲ¼¤Τ褦¤ˤʤäƤ¤¤ޤ¹:

    - -
      -
    1. <Directory> (Àµµ¬ɽ¸½̵¤·) ¤È - .htaccess ¤òƱ»þ¤Ë (.htaccess ¤¬µö²Ĥµ¤ì¤Ƥ¤¤ì¤С¢¤½¤줬 - <Directory> ¤ò¾å½񤭤·¤ޤ¹) -
    2. - -
    3. <DirectoryMatch> - (¤È <Directory ~>
    4. - -
    5. <Files> ¤È - <FilesMatch> ¤òƱ»þ¤Ë
    6. - -
    7. <Location> ¤È - <LocationMatch> ¤òƱ»þ¤Ë
    8. -
    - -

    <Directory> - °ʳ°¤ϡ¢¤½¤줾¤ì¤Υ°¥롼¥פÏÀßÄê¥ե¡¥¤¥ë¤˸½¤줿½çÈ֤˽èÍý¤µ¤ì¤ޤ¹¡£ - <Directory> (¾å¤Υ°¥롼¥× 1) - ¤ϥǥ£¥쥯¥ȥ꤬û¤¤¤â¤Τ«¤éŤ¤¤â¤ΤؤȽèÍý¤µ¤ì¤ޤ¹¡£¤Ǥ¹¤«¤顢 - Î㤨¤Ð <Directory /var/web/dir1> ¤Ï - <Directory /var/web/dir/subdir> ¤ÎÁ°¤˽èÍý¤µ¤ì¤ޤ¹¡£ʣ¿ô¤Î - <Directory> ¥»¥¯¥·¥ç¥ó¤¬ - Ʊ¤¸¥ǥ£¥쥯¥ȥê¤Ë - ŬÍѤµ¤ì¤ë¾ì¹ç¤ϡ¢ÀßÄê¥ե¡¥¤¥ëÃæ¤νçÈ֤˽¾¤äƽèÍý¤µ¤ì¤ޤ¹¡£ - Include - ¤ˤè¤äÆÁÞÆþ¤µ¤줿ÀßÄê¤Ï ÁÞÆþ¤·¤Ƥ¤¤ë¥ե¡¥¤¥ë¤Î - Include - ¥ǥ£¥쥯¥ƥ£¥֤ΰÌÃ֤ˤ¢¤ä¿¤«¤Τ褦¤˰·¤ï¤ì¤ޤ¹¡£

    - -

    <VirtualHost> ¥»¥¯¥·¥ç¥óÃæ¤Υ»¥¯¥·¥ç¥ó¤Ï - ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÄêµÁ¤γ°¦¤ÎÂбþ¤¹¤륻¥¯¥·¥ç¥ó¤Î - ¸å¤ËŬÍѤµ¤ì¤ޤ¹¡£¤³¤ì¤ˤè¤ê¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬ - ¥ᥤ¥ó¤Υµ¡¼¥ÐÀßÄê¤ò¾å½񤭤Ǥ­¤ë¤褦¤ʤê¤ޤ¹¡£

    - -

    mod_proxy ¤ǥꥯ¥¨¥¹¥Ȥ¬½èÍý¤µ¤ì¤ë¾ì¹ç¤ϡ¢ - ½èÍý½çÈ֤Τ¦¤Á¡¢<Directory> ¥³¥ó¥ƥʤÎÉôʬ¤¬ - <Proxy> - ¥³¥ó¥ƥʤ˼è¤äÆÂå¤ï¤é¤ì¤ޤ¹¡£

    - -

    ¸å¤Υ»¥¯¥·¥ç¥ó¤Υǥ£¥쥯¥ƥ£¥֤¬Á°¤Υ»¥¯¥·¥ç¥ó¤Τâ¤Τò¾å½񤭤·¤ޤ¹¡£

    - - -

    µ»½ѥá¥â

    - ¼ºݤˤϡ¢̾Á°¤òÊѴ¹¤¹¤ëÃʳ¬ (URL - ¤ò¥ե¡¥¤¥ë̾¤˥ޥåפ¹¤뤿¤á¤Ë Alias ¤ä - DocumentRoot ¤¬»ÈÍѤµ¤ì¤ë¤Ȥ³¤í) ¤ÎľÁ°¤Ë - <Location>/<LocationMatch> - ¤¬¹Ԥʤï¤ì¤ޤ¹¡£ - ¤³¤ì¤é¤òŬÍѤ·¤¿·ë²̤ÏÊѴ¹¤¬½ª¤ï¤ä¿¸å¤˴°Á´¤˼ΤƤé¤ì¤ޤ¹¡£ -
    -

    Îã

    - -

    ¼¡¤ϥޡ¼¥¸¤νçÈ֤򼨤¹¤¿¤á¤Î×ó°ÕŪ¤ÊÎã¤ˤʤäƤ¤¤ޤ¹¡£ -¥ꥯ¥¨¥¹¥ÈÁ´¤ƤËŬÍѤµ¤ì¤ë¤Ȥ·¤ơ¢ËÜÎã¤Υǥ£¥쥯¥ƥ£¥֤Ï -A > B > C > D > E ¤νçÈ֤ËŬÍѤµ¤ì¤ޤ¹¡£

    - -

    -<Location />
    -E
    -</Location>
    -
    -<Files f.html>
    -D
    -</Files>
    -
    -<VirtualHost *>
    -<Directory /a/b>
    -B
    -</Directory>
    -</VirtualHost>
    -
    -<DirectoryMatch "^.*b$">
    -C
    -</DirectoryMatch>
    -
    -<Directory /a/b>
    -A
    -</Directory>
    -
    -

    - -

    ¤â¤äȶñÂÎŪ¤ʡ¢¼¡¤ÎÎã¤ò¹ͤ¨¤Ƥߤޤ·¤礦¡£ -<Directory> -¥»¥¯¥·¥ç¥ó¤ËÀßÃ֤µ¤줿¥¢¥¯¥»¥¹À©¸¤˴ؤï¤餺¡¢ -<Location> -¥»¥¯¥·¥ç¥󤬺Ǹå¤Ëɾ²Á¤µ¤ì¤ơ¢¥µ¡¼¥ФؤΥ¢¥¯¥»¥¹¤ÏÀ©¸¤µ¤ì¤ޤ»¤ó¡£ -¸À¤¤´¹¤¨¤ì¤С¢¥ޡ¼¥¸¤νçÈ֤ϽÅÍפǡ¢Ãí°դ·¤ƻÈÍѤ·¤Ƥ¯¤À¤µ¤¤!

    - -

    -<Location />
    -Order deny,allow
    -Allow from all
    -</Location>
    -
    -# Woops! This <Directory> section will have no effect
    -<Directory />
    -Order allow,deny
    -Allow from all
    -Deny from badguy.example.com
    -</Directory> -

    - - - -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/sections.html.ja.utf8 b/docs/manual/sections.html.ja.utf8 new file mode 100644 index 00000000000..d762575034c --- /dev/null +++ b/docs/manual/sections.html.ja.utf8 @@ -0,0 +1,522 @@ + + + + + +セクションの設定 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    セクションの設定

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    +

    設定ファイル中のディレクティブは +サーバ全体に適用されたり、特定のディレクトリやファイル、ホスト、URL にのみ +適用されるように制限したりすることができます。この文書は設定用のセクションの +コンテナや .htaccess ファイルを使って他の設定ディレクティブの +スコープを変更する方法を説明します。

    +
    + +
    top
    +
    +

    設定用セクションコンテナの種類

    + + + +

    コンテナには二つの基本となる種類があります。ほとんどのコンテナは +各リクエストに対して評価されます。その場合、コンテナ中のディレクティブは +コンテナにマッチするリクエストにのみ適用されます。 +一方、<IfDefine> コンテナ. <IfModule> コンテナ, +<IfVersion> は +サーバの起動時と再起動時にのみ評価されます。起動時に条件が真であれば、 +コンテナ中のディレクティブはすべてのリクエストに適用されます。条件が +偽であれば、コンテナ中のディレクティブは無視されます。

    + +

    <IfDefine> ディレクティブは +httpd コマンドラインで適切なパラメータが定義されたときにのみ +適用されるディレクティブを囲います。例えば次の設定では、サーバが +httpd -DClosedForNow を使って起動されたときだけすべての +リクエストを別のサイトにリダイレクトします:

    + +

    +<IfDefine ClosedForNow>
    +Redirect / http://otherserver.example.com/
    +</IfDefine> +

    + +

    <IfModule> は +非常に似ていますが、代わりにサーバ上でモジュールが使用可能な場合にのみ +適用可能なディレクティブを囲います。モジュールはサーバに +静的に組み込まれているか、動的に組み込むようになっていて、設定ファイル中で +LoadModule の行がより前の +部分に書かれている必要があります。このディレクティブは特定のモジュールの +存在に関わらず設定ファイルが動作する必要がある場合にのみ使ってください。 +常に動作して欲しいディレクティブを囲むために使うべきではありません。 +存在しないモジュールに関する有用なエラーメッセージの発生を抑制してしまいますので。 +

    + +

    次の例では、mod_mime_magic があるときにのみ MimeMagicFiles ディレクティブが +適用されます。

    + +

    +<IfModule mod_mime_magic.c>
    +MimeMagicFile conf/magic
    +</IfModule> +

    + +

    <IfVersion> +ディレクティブは <IfDefine> +や <IfModule> +によく似ていますが、サーバが特定のバージョンであるときにのみ有効にしたい +ディレクティブを囲むのに使います。 +テストスイートや大規模ネットワークなどの、さまざまなバージョンの httpd を +異なる設定で扱う用途向けにデザインされています。

    + +

    + <IfVersion >= 2.1>
    + + # this happens only in versions greater or
    + # equal 2.1.0.
    +
    + </IfVersion> +

    + +

    <IfDefine> ディレクティブ, +<IfModule> ディレクティブ, +<IfVersion> ディレクティブは +テストの前に "!" を付けることで否定の条件を適用することができます。 +また、これらのセクションはより複雑な制限を課すために入れ子にすることができます。 +

    +
    top
    +
    +

    ファイルシステムとウェブ空間

    + +

    最もよく使われる設定のセクションコンテナはファイルシステムやウェブ空間の +特定の場所の設定を変更するものです。まず、この二つの違いを理解することが +大切です。ファイルシステムはオペレーティングシステムから見たディスクの内容です。 +たとえば、デフォルトのインストールでは Apache は Unix ファイルシステムでは +/usr/local/apache2 に、Windows ファイルシステムでは +"c:/Program Files/Apache Group/Apache2" に存在します。 +(Apache では Windows でもパスセパレータとしてスラッシュを使うことに +気をつけてください。) 対照的に、ウェブ空間はあなたのサイトを +ウェブサーバから配信されるものとして見たもので、クライアントに見えるものです。 +デフォルトの Unix 上の Apache のインストールではウェブ空間の +/dir/ というパスはファイルシステムの +/usr/local/apache2/htdocs/dir/ というパスに対応します。 +ウェブページはデータベースや他の場所から動的に生成することもできますので、 +ウェブ空間はファイルシステムに直接マップする必要はありません。

    + +

    ファイルシステムコンテナ

    + +

    <Directory> ディレクティブと +<Files> ディレクティブ、それと +それらの正規表現版はディレクティブを +ファイルシステムの一部分に対して適用します。 +<Directory> セクションの +中のディレクティブは指定されたディレクトリとそのすべてのサブディレクトリに +適用されます。.htaccess ファイルを +使うことでも同じ効果を得ることができます。例えば、次の設定では +/var/web/dir1 とすべてのサブディレクトリに対して +ディレクトリインデックスを行ないます。

    + +

    +<Directory /var/web/dir1>
    +Options +Indexes
    +</Directory> +

    + +

    <Files> セクションの +中にあるディレクティブはどのディレクトリにあるかに関わらず、指定された名前の +すべてのファイルに適用されます。ですから例えば以下の設定ディレクティブが +設定ファイルの主セクションに書かれたときには、すべての場所の +private.html という名前のファイルへのアクセスを拒否します。

    + +

    +<Files private.html>
    +Order allow,deny
    +Deny from all
    +</Files> +

    + +

    ファイルシステムの特定の場所にあるファイルを指定するために、 +<Files> セクションと +<Directory> セクションを +組み合わせることができます。例えば、次の設定では +/var/web/dir1/private.html, +/var/web/dir1/subdir2/private.html, +/var/web/dir1/subdir3/private.html など、 +/var/web/dir1/ ディレクトリの下にあるすべての +private.html へのアクセスを拒否します。

    + +

    +<Directory /var/web/dir1>
    +<Files private.html>
    +Order allow,deny
    +Deny from all
    +</Files>
    +</Directory> +

    + + +

    ウェブ空間コンテナ

    + +

    一方、<Location> +ディレクティブとその正規表現版はウェブ空間上の内容に対して設定を変更します。 +たとえば、次の設定では /private で始まる URL パスへのアクセスを制限します。 +具体的には、 +http://yoursite.example.com/private, +http://yoursite.example.com/private123, +http://yoursite.example.com/private/dir/file.html +へのリクエストや、 +他の同様に /private 文字列で始まるリクエストに +適用されます。

    + +

    +<Location /private>
    +Order Allow,Deny
    +Deny from all
    +</Location> +

    + +

    <Location> +ディレクティブはファイルシステムと関係ある必要が全くありません。 +たとえば次の例では、どのようにして特定の URL を +mod_statusで提供されている Apache +内部ハンドラにマップするかを示しています。ファイルシステムに +server-status というファイルが存在する必要はありません。

    + +

    +<Location /server-status>
    +SetHandler server-status
    +</Location> +

    + + +

    ワイルドカードと正規表現

    + +

    <Directory>, +<Files>, +<Location> +ディレクティブでは、 C 標準ライブラリの fnmatch のように +shell スタイルのワイルドカードキャラクタが使用できます。 +"*" 文字は任意の文字列にマッチし、"?" 文字は任意の 1 文字にマッチし、 +"[seq]" は seq の任意の文字にマッチします。 +"/" 文字はどのワイルドカードでもマッチされません。 +明示的に指定する必要があります。

    + +

    これより柔軟なマッチングが必要な場合は、これらのコンテナに正規表現 +(regex) 版である +<DirectoryMatch>, +<FilesMatch>, +<LocationMatch> +があり、マッチを選択するのに perl 互換正規表現を使用できます。しかし、次の設定のマージに目を通して、 +正規表現のセクションを使用することで、ディレクティブの適用がどのように +変化するか把握しておいてください。

    + +

    全ユーザディレクトリの設定を変更する、非 regex +ワイルドカードセクションは次のようになります。

    + +

    +<Directory /home/*/public_html>
    +Options Indexes
    +</Directory> +

    + +

    regex セクションを使用することで、画像ファイルの多くのタイプに対する +アクセスを一度に拒否できます。

    +

    +<FilesMatch \.(?i:gif|jpe?g|png)$>
    +Order allow,deny
    +Deny from all
    +</FilesMatch> +

    + + + +

    いつ何を使うか

    + +

    ファイルシステムコンテナとウェブ空間コンテナを使い分けるのは、 +実際には非常に簡単です。ファイルシステムに依存する +オブジェクトにディレクティブを適応する場合は、必ず +<Directory> か +<Files> +を使用します。ファイルシステムに依存しないオブジェクト +(データベースから生成されるウェブページなど) +にディレクティブを適用する際には、 +<Location> +を使用します。

    + +

    ファイルシステム上のオブジェクトへのアクセスを制限するために、 +<Location> +を決して使用しないようにしましょう。 +同一のファイルシステム位置にマップしている、ウェブ空間位置 (URL) +が多数あって、設定した制限を迂回されてしまうかもしれないからです。 +例えば次の設定を考えてみましょう。

    + +

    +<Location /dir/>
    +Order allow,deny
    +Deny from all
    +</Location> +

    + +

    http://yoursite.example.com/dir/ +へのリクエストでは上手く動作します。しかし大文字小文字を区別しない +ファイルシステムを使っていたらどうなるでしょう? +http://yoursite.example.com/DIR/ +へのリクエストで簡単にアクセス制限を迂回されてしまいます。これに対して +<Directory> +ディレクティブを使用すると、どのように呼び出されたかに関わらず +その場所から提供される内容に適用されます。 +(例外はファイルシステムのリンクです。シンボリックリンクを使って、 +同一のディレクトリを複数のファイルシステムに設置できます。 +<Directory> +ディレクティブはパス名をリセットすることなくシンボリックリンクを +辿ります。ですから、高度なセキュリティが要求される場合は、 +適切に Options +ディレクティブを使用してシンボリックリンクを無効にするべきです。)

    + +

    大文字小文字を区別するファイルシステムを使用しているから上記のことは +無関係だと思われるかもしれませんが、 +同一のファイルシステム位置に複数のウェブ空間位置をマップする方法は、 +他にいくらでもあるということを覚えていてください。 +ですからできる限りファイルシステムコンテナを使用してください。 +しかしながら一つだけ例外があります。 +<Location /> セクションはどんな URL +にも関わらず適用されるので、完全に安全です。

    + + +
    top
    +
    +

    バーチャルホスト

    + +

    <VirtualHost> +コンテナは特定のホストに適用するディレクティブを格納します。 +一台のマシンで複数のホストを異なる設定で提供したいときに有用です。 +詳細に関してはバーチャルホストドキュメントを +ご覧下さい。

    +
    top
    +
    +

    プロクシ

    + +

    <Proxy> +と <ProxyMatch> +コンテナは、特定の URL にマッチする mod_proxy +プロクシサーバを経由してアクセスしたサイトに対してのみ適用される +設定ディレクティブを格納します。例えば次の設定は、cnn.com +ウェブサイトにアクセスするために用いられるプロクシサーバを +制限します。

    + +

    +<Proxy http://cnn.com/*>
    +Order allow,deny
    +Deny from all
    +</Proxy> +

    +
    top
    +
    +

    どのディレクティブが使えるの?

    + +

    どのタイプの設定セクションでどのディレクティブが使用できるかは、 +ディレクティブの Context +を見てください。 +<Directory> +で使用可能なものは全て、同様に +<DirectoryMatch>, +<Files>, +<FilesMatch>, +<Location>, +<LocationMatch>, +<Proxy>, +<ProxyMatch> +セクションで使用可能です。しかしながら幾つか例外も存在します。

    + +
      +
    • AllowOverride ディレクティブは +<Directory> +セクションでのみ使用可能です。
    • + +
    • FollowSymLinks と SymLinksIfOwnerMatch の +Options は、 +<Directory> +セクションか .htaccess ファイルでのみ使用可能です。
    • + +
    • Options ディレクティブは、 +<Files> +と <FilesMatch> +セクションでは使用できません。
    • +
    +
    top
    +
    +

    セクションのマージ方法

    + +

    マージの順番は以下のようになっています:

    + +
      +
    1. <Directory> (正規表現無し) と + .htaccess を同時に (.htaccess が許可されていれば、それが + <Directory> を上書きします) +
    2. + +
    3. <DirectoryMatch> + (と <Directory ~>
    4. + +
    5. <Files> と + <FilesMatch> を同時に
    6. + +
    7. <Location> と + <LocationMatch> を同時に
    8. +
    + +

    <Directory> + 以外は、それぞれのグループは設定ファイルに現れた順番に処理されます。 + <Directory> (上のグループ 1) + はディレクトリが短いものから長いものへと処理されます。ですから、 + 例えば <Directory /var/web/dir1> は + <Directory /var/web/dir/subdir> の前に処理されます。複数の + <Directory> セクションが + 同じディレクトリに + 適用される場合は、設定ファイル中の順番に従って処理されます。 + Include + によって挿入された設定は 挿入しているファイルの + Include + ディレクティブの位置にあったかのように扱われます。

    + +

    <VirtualHost> セクション中のセクションは + バーチャルホストの定義の外側の対応するセクションの + 後に適用されます。これによりバーチャルホストが + メインのサーバ設定を上書きできるようなります。

    + +

    mod_proxy でリクエストが処理される場合は、 + 処理順番のうち、<Directory> コンテナの部分が + <Proxy> + コンテナに取って代わられます。

    + +

    後のセクションのディレクティブが前のセクションのものを上書きします。

    + + +

    技術メモ

    + 実際には、名前を変換する段階 (URL + をファイル名にマップするために Alias や + DocumentRoot が使用されるところ) の直前に + <Location>/<LocationMatch> + が行なわれます。 + これらを適用した結果は変換が終わった後に完全に捨てられます。 +
    +

    例

    + +

    次はマージの順番を示すための恣意的な例になっています。 +リクエスト全てに適用されるとして、本例のディレクティブは +A > B > C > D > E の順番に適用されます。

    + +

    +<Location />
    +E
    +</Location>
    +
    +<Files f.html>
    +D
    +</Files>
    +
    +<VirtualHost *>
    +<Directory /a/b>
    +B
    +</Directory>
    +</VirtualHost>
    +
    +<DirectoryMatch "^.*b$">
    +C
    +</DirectoryMatch>
    +
    +<Directory /a/b>
    +A
    +</Directory>
    +
    +

    + +

    もっと具体的な、次の例を考えてみましょう。 +<Directory> +セクションに設置されたアクセス制限に関わらず、 +<Location> +セクションが最後に評価されて、サーバへのアクセスは制限されません。 +言い換えれば、マージの順番は重要で、注意して使用してください!

    + +

    +<Location />
    +Order deny,allow
    +Allow from all
    +</Location>
    +
    +# Woops! This <Directory> section will have no effect
    +<Directory />
    +Order allow,deny
    +Allow from all
    +Deny from badguy.example.com
    +</Directory> +

    + + + +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/sections.html.ko.euc-kr b/docs/manual/sections.html.ko.euc-kr index 9ead932ae69..81755c89064 100644 --- a/docs/manual/sections.html.ko.euc-kr +++ b/docs/manual/sections.html.ko.euc-kr @@ -1,26 +1,35 @@ - -¼½¼Ç ¼³Á¤ - Apache HTTP Server +¼½¼Ç ¼³Á¤ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¼½¼Ç ¼³Á¤

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¼½¼Ç ¼³Á¤

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -37,7 +46,7 @@ URL
  • ¾ȿ¡ ¾ Áö½þ »ç¿ëÇÒ ¼ö Àֳª?
  • ¼½¼ǵéÀÌ °áÇÕÇϴ ¹æ¹ý
  • -
    +
    top

    ¼³Á¤ ¼½¼ÇÀÇ Á¾·ù

    @@ -414,9 +423,32 @@ Deny from badguy.example.com

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/sections.html.tr.utf8 b/docs/manual/sections.html.tr.utf8 new file mode 100644 index 00000000000..741e7ad2930 --- /dev/null +++ b/docs/manual/sections.html.tr.utf8 @@ -0,0 +1,530 @@ + + + + + +Yapılandırma Bölümleri - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Yapılandırma Bölümleri

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.
    +

    Yapılandırma dosyalarındaki +yönergeler sunucunun tamamına uygulanacağı gibi sadece belli dizinler, +dosyalar, konaklar veya URL’lere uygulanmakla sınırlanabilir. Bu belgede, +yapılandırma bölümü taşıyıcılarınının veya .htaccess +dosyalarının, yapılandırma dosyalarındaki diğer yönergelerin etki alanlarını +değiştirtirmek için nasıl kullanılacağı açıklanmıştır.

    +
    + +
    top
    +
    +

    Yapılandırma Bölümü Taşıyıcılarının Türleri

    + + + +

    İki temel taşıyıcı türü vardır. Taşıyıcıların çoğu her istek için +değerlendirmeye alınır. Taşıyıcılardaki yönergeler ise sadece bu taşıyıcılarla +eşleşen istekler için uygulanır. Diğer yandan, <IfDefine>, <IfModule> ve <IfVersion> taşıyıcıları sadece sunucu başlatılırken veya yeniden +başlatılırken değerlendirmeye alınır. Başlatma sırasında gerektirdikleri +koşullar sağlanıyorsa içerdikleri yönergeler tüm isteklere uygulanır. +Aksi takdirde, içerdikleri yönergeler yok sayılır.

    + +

    <IfDefine> yönergesi +sadece httpd komut satırında uygun parametreler +tanımlanmışsa uygulanabilecek yönergeleri içerir. Örneğin, aşağıdaki +yapılandırma ile tüm isteklerin diğer siteye yönlendirilebilmesi sadece +sunucu httpd -DClosedForNow komut satırı ile başlatıldığı +takdirde mümkün olur:

    + +

    +<IfDefine ClosedForNow>
    + + Redirect / http://otherserver.example.com/
    +
    +</IfDefine> +

    + +

    <IfModule> yönergesi +sadece belli bir modülün sunucuda kullanılabilir durumda olması halinde +uygulanabilecek yönergeleri içerir. Modülün ya sunucuyla birlikte durağan +olarak derlenmiş olması ya da devingen olarak derlenmiş ve yapılandırma +dosyasında yönergeden önce o modüle ilişkin bir LoadModule satırının bulunması gerekir. Bu yönergeyi sadece +belli bir modülün varlığının veya yokluğunun yapılandırma dosyanızın +çalışmasını etkilememesini istediğiniz durumlarda kullanmalısınız. Eksik +modüllerle ilgili hata iletilerini engellediğinden, taşıyıcı içine, her +zaman çalışması istenen yönergeler konulmamalıdır.

    + +

    Aşağıdaki örnekte, MimeMagicFile yönergesi sadece +mod_mime_magic modülü mevcutsa uygulanacaktır.

    + +

    +<IfModule mod_mime_magic.c>
    + + MimeMagicFile conf/magic
    +
    +</IfModule> +

    + +

    <IfVersion> +yönergesi sunucunun belli bir sürümünün çalıştırılması halinde uygulanabilecek +yönergeleri içerebilmesi dışında <IfDefine> ve <IfModule> yönergeleri gibidir. mod_version +modülü farklı httpd sürümleri ve farklı yapılandırmalarla büyük ağlarda +çalışmayı mümkün kılmak veya sürüm denemeleri yapabilmek amacıyla +tasarlanmıştır.

    + +

    +<IfVersion >= 2.1>
    + + # burası sadece 2.1.0 veya daha üstü sürümlerde
    + # iş görür.
    +
    +</IfVersion> +

    + +

    <IfDefine>, +<IfModule> ve +<IfVersion> +yönergelerinin önüne "!" konularak olumsuz koşullar için uygulanabilir. +Ayrıca, bu bölümler daha karmaşık sınırlamalar elde etmek amacıyla bir +diğerinin içinde kullanılabilirler.

    +
    top
    +
    +

    Dosya Sistemi ve Site Alanı

    + +

    En sık kullanılan yapılandırma bölümü taşıyıcıları dosya sistemindeki +veya site alanındaki belli yerlerin yapılandırmalarını değiştirmekte +kullanılanlardır. Öncelikle, bu ikisi arasındaki farkları bilmek önemlidir. +Dosya sistemi disklerinizin işletim sistemi tarafından size gösterilen halidir. +Örneğin, öntanımlı kurulumda Apache, Unix sistemlerinde +/usr/local/apache2 altındayken Windows sistemlerinde +"c:/Program Files/Apache Group/Apache2" altındadır. +(Bilgi: Windows için bile, Apache’de dosya yolu belirtilirken tersbölü +değil normal bölü karakterleri kullanılır.) Site alanı ise sunucu tarafından +istemciye sunulan dizin ağacıdır. Yani, site alanı içindeki /dir/ +dizini, Apache’nin Unix üzerinde dosya sistemine öntanımlı olarak kurulduğu +yer göz önüne alınarak, dosya sistemindeki +/usr/local/apache2/htdocs/dir/ dizinine karşılıktır. Site +sayfaları veritabanlarından veya başka yerlerden devingen olarak +üretilebildiğinden site alanlarının doğrudan dosya sistemine eşlenmesi +gerekli değildir.

    + +

    Dosya Sistemi Taşıyıcıları

    + +

    <Directory> +ve <Files> taşıyıcıları, +düzenli ifade karşılıkları ile beraber, +yönergeleri dosya sisteminin parçalarına uygularlar. Bir <Directory> bölümü içindeki yönergeler +belli bir dosya sistemi dizinine ve onun alt dizinlerine (ve bunların içindeki +dosyalara) uygulanır. Aynı etki +.htaccess dosyaları kullanılarak da +sağlanabilir. Örneğin aşağıdaki yapılandırmada, /var/web/dir1 +dizini ve alt dizinlerinde dizin içeriğinin listelenmesi etkin kılınmaktadır.

    + +

    +<Directory /var/web/dir1>
    + + Options +Indexes
    +
    +</Directory> +

    + +

    Bir <Files> bölümü +içindeki yönergeler, hangi dizinde bulunduğuna bakılmaksızın ismi +belirtilen dosyalara uygulanır. Örneğin, aşağıdaki yapılandırma yönergeleri +yapılandırma dosyasının ana bölümüne yerleştirildiği takdirde +gizli.html isimli dosyalara nerede bulunursa bulunsun erişime +izin vermeyecektir.

    + +

    +<Files gizli.html>
    + +Order allow,deny
    +Deny from all
    +
    +</Files> +

    + +

    Dosya sisteminin belli bir yerindeki belli dosyalarla ilgili yaptırımlar +için <Files> ve +<Directory> bölümleri +birlikte kullanılabilir. Örneğin, aşağıdaki yapılandırma +/var/web/dir1/gizli.html, +/var/web/dir1/subdir2/gizli.html, +/var/web/dir1/subdir3/gizli.html ve +/var/web/dir1/ altında bulunabilecek diğer tüm +gizli.html dosyalarına erişimi yasaklar.

    + +

    +<Directory /var/web/dir1>
    + +<Files gizli.html>
    + +Order allow,deny
    +Deny from all
    +
    +</Files>
    +
    +</Directory> +

    + + +

    Site Alanı Taşıyıcıları

    + +

    <Location> yönergesi ve +yönergenin düzenli ifade karşılığı site +alanındaki içerik için yapılandırmayı değiştirir. Örneğin aşağıdaki +yapılandırma, /gizli ile başlayan URL yollarına erişimi engeller. +Özellikle, http://siteniz.mesela.dom/gizli, +http://siteniz.mesela.dom/gizli123 ve +http://siteniz.mesela.dom/gizli/dir/dosya.html +istekleri yanında /gizli ile başlayan diğer isteklere de +uygulanır.

    + +

    +<LocationMatch ^/gizli>
    + +Order Allow,Deny
    +Deny from all
    +
    +</LocationMatch> +

    + +

    Dosya sistemi ile etkileşime girmeyen herşey için +<Location> yönergesi gerekir. +Aşağıdaki örnekte, belli bir URL’nin mod_status modülü +tarafından sağlanan bir dahili Apache eylemcisine nasıl eşlenebileceği +gösterilmiştir. Bu örnek için dosya sisteminde server-status +adında bir dosya veya dizin bulunması gerekli değildir.

    + +

    +<Location /server-status>
    + +SetHandler server-status
    +
    +</Location> +

    + + +

    Dosya Adı Şablonları ve Düzenli İfadeler

    + +

    <Directory>, +<Files> ve +<Location> yönergelerinde, +Standart C kütüphanesindeki fnmatch işlevindeki gibi kabuk tarzı +dosya ismi kalıpları kullanılabilir. "*" karakteri herhangi bir karakter +dizisi ile eşleşirken "?" karakteri tek tek karakterlerle ve "[seq]" +kalıbı ise seq içindeki her karakterle eşleşir. "/" karakteri her +hangi bir kalıp karakteri ile eşleşmez; açıkça belirtilmesi gerekir.

    + +

    Daha esnek bir eşleşmenin gerekli olduğu durumlar için her taşıyıcının bir +düzenli ifade karşılığı vardır. <DirectoryMatch>, <FilesMatch> ve <LocationMatch> yönergelerinde gerekli eşleşmeleri seçmek için +perl uyumlu düzenli ifadelerin kullanımına +izin verilir. Ayrıca, yönergelerin uygulanışının düzenli ifade bölümleri kullanılarak nasıl değiştirileceğini öğrenmek için, aşağıda, yapılandırmanın katıştırılmasıyla ilgili bölüme de bakınız.

    + +

    Tüm kullanıcı dizinlerine ilişkin yapılandırmayı değiştirmek için dosya +ismi kalıpları şöyle kullanılabilirdi:

    + +

    +<Directory /home/*/public_html>
    + +Options Indexes
    +
    +</Directory> +

    + +

    Düzenli ifade bölümleri kullanarak çeşitli türlerdeki resim dosyalarına +erişimi bir defada yasaklayabiliriz:

    +

    +<FilesMatch \.(?i:gif|jpe?g|png)$>
    + +Order allow,deny
    +Deny from all
    +
    +</FilesMatch> +

    + + + +

    Ne, Ne Zaman Kullanılır?

    + +

    Dosya sistemi taşıyıcıları ile site alanı taşıyıcıları arasında seçim +yapmak aslında oldukça kolaydır. Dosya sisteminde bulunan nesnelere +uygulanacak yönergeler için daima <Directory> veya <Files> kullanılır. Dosya sisteminde bulunmayan nesnelere +(bir sayfanın bir veritabanı tarafından üretilmesi gibi) uygulanacak +yönergeler için ise <Location> kullanılır.

    + +

    Dosya sistemindeki nesnelere erişimi kısıtlarken asla <Location> kullanmamak önemlidir. +Bunun sebebi farklı site alanı konumlarının (URL’ler) aynı dosya sistemi +konumuna eşlenebilmesi dolayısıyla kısıtlamalarınızın etrafından +dolaşılabilmesine izin vermesidir. Örneğin, aşağıdaki yapılandırmayı +ele alalım:

    + +

    +<Location /dir/>
    + +Order allow,deny
    +Deny from all
    +
    +</Location> +

    + +

    http://siteniz.mesela.dom/dir/ için bir istek yapılmışsa +bu doğru çalışacaktır. Fakat dosya sistemi harf büyüklüğüne duyarsızsa +ne olacak? Kısıtlamanız, istek http://siteniz.mesela.dom/DIR/ +şeklinde yapılarak kolayca geçersiz kılınabilir. Halbuki <Directory> yönergesi isteğin nasıl +yapıldığına bakılmaksızın bu konumdan sunulan her türlü içeriğe uygulanacaktı. +(Dosya sistemi bağlarıyla bu da aşılabilir. Sembolik bağlar kullanılarak aynı +dizin dosya sisteminin bir çok yerine yerleştirilebilir. <Directory> yönergesi dosya yolunu +sıfırlamaksızın sembolik bağları izleyecektir. Bu bakımdan, en yüksek +seviyede güvenlik için uygun Options +yönergesi ile sembolik bağların izlenmesi devredışı bırakılabilir.)

    + +

    Belki de siz sırf harf büyüklüğüne duyarlı bir dosya sistemi +kullanıyorsunuz diye böyle uygulamalara ihtiyacınız olmadığını +düşünüyor olabilirsiniz, fakat aynı site alanını çok sayıda dosya +sistemi konumuna eşleyecek daha bir sürü yol bulunduğunu unutmayınız. +Bu bakımdan dosya sisteminde yapacağınız kısıtlamalarda daima dosya +sistemi taşıyıcılarını kullanmalısınız. Bununla birlikte bu kuralın da +bir istisnası vardır. Yapılandırma kısıtlamalarının bir +<Location/> bölümü içine koyulması, bu bölüme konan +yönergelerin etki alanının belli bir URL ile sınırlı olmaması nedeniyle +mükemmelen güvenlidir.

    + + +
    top
    +
    +

    Sanal Konaklar

    + +

    <VirtualHost> taşıyıcısının +içinde belli bir konağa uygulanan yönergeler bulunur. Aynı makinede çok sayıda +konağı farklı yapılandırmalarla sunuyorsanız bu taşıyıcı çok işinize yarar. +Daha fazla bilgi için Sanal Konak Belgeleri bölümüne bakınız.

    +
    top
    +
    +

    Vekil

    + +

    <Proxy> +ve <ProxyMatch> +taşıyıcıları, sadece belli bir URL ile eşleşen mod_proxy +vekil sunucusu üzerinden erişilen sitelere uygulanan yapılandırma +yönergelerini bulundururlar. Örneğin aşağıdaki yapılandırma +cnn.com sitesine erişim için vekil sunucunun kullanılmasını +engelleyecektir.

    + +

    +<Proxy http://cnn.com/*>
    + +Order allow,deny
    +Deny from all
    +
    +</Proxy> +

    +
    top
    +
    +

    Hangi Yönergelere İzin Veriliyor?

    + +

    Hangi yönergelere hangi yapılandırma bölümlerinde izin verildiğini +öğrenmek için yönerge bağlamına bakınız. +<Directory> bölümlerinde +izin verilen herşeye sözdizimsel olarak ayrıca +<DirectoryMatch>, +<Files>, +<FilesMatch>, +<Location>, +<LocationMatch>, +<Proxy> +ve <ProxyMatch> +bölümlerinde de izin verilir. Yine de bazı istisnai durumlar mevcuttur:

    + + +
    top
    +
    +

    Bölümler Nasıl Katıştırılır?

    + +

    Yapılandırma bölümleri belli bir sıra ile uygulanır. Yapılandırma +yönergelerinin yorumlanışı üzerinde önemli etkilere sahip olabilmesi +nedeniyle neyin ne zaman çalıştığını anlamak çok önemlidir.

    + +

    Yapılandırma bölümlerinin katıştırılma sırası şöyledir:

    + +
      +
    1. <Directory> (düzenli ifadeler hariç) + ve .htaccess aynı anda işleme sokulur + (.htaccess ile eğer izin verilmişse <Directory> içindeki bazı + yönergeler geçersiz kılınabileceği için).
    2. + +
    3. <DirectoryMatch> + (ve <Directory ~>).
    4. + +
    5. <Files> ve <FilesMatch> aynı anda işleme sokulur.
    6. + +
    7. <Location> + ve <LocationMatch> + aynı anda işleme sokulur.
    8. +
    + +

    <Directory> + bölümündekiler hariç, her grup, yapılandırma dosyasında bulundukları + sıraya göre işleme sokulurlar. Yukarıda 1. grup olan <Directory> bölümü en kısa + dizin elemanından en uzun dizin elemanına doğru işleme sokulur. + Yani, örneğin, <Directory /var/web/dir> bölümü + <Directory /var/web/dir/subdir> bölümünden önce + işleme sokulacaktır. Eğer aynı uzunlukta çok sayıda dizin varsa + <Directory> bölümleri + yapılandırma dosyasında bulundukları sıraya göre işleme sokulurlar. + Include yönergeleri ile + yapılandırmaya dahil edilen dosyaların içerikleri Include yönergesinin bulunduğu yere + konulduktan sonra işleme sokulurlar.

    + +

    <VirtualHost> + bölümlerinin içindeki bölümler, sanal konak tanımı dışındaki + karşılıklarından sonra uygulanırlar.

    + +

    İstek mod_proxy tarafından sunulduğu takdirde, + <Proxy> taşıyıcısı + işlem sırasında <Directory> + taşıyıcısının yerini alır.

    + +

    Sonraki bölümler öncekileri geçersiz kılmak üzere işleme alınırlar.

    + +

    Bazı Teknik Bilgiler

    + Aslında, isim dönüşüm aşamasından (Aliases ve + DocumentRoots, URL’leri dosya isimlerine eşlemek için + kullanılırken) hemen önce uygulanan bir + <Location>/<LocationMatch> + dizisi vardır. Bu dizinin sonuçları isim dönüşüm aşaması tamamlandıktan + sonra tamamen elden çıkarılır. +
    + +

    Bazı Örnekler

    + +

    Aşağıdaki yapay örnekte katıştırma sırası gösterilmiştir. Hepsinin +aynı isteğe uygulandığı varsayımıyla, bu örnekteki yönergeler +A > B > C > D > E sırasıyla uygulanacaktır.

    + +

    +<Location />
    +E
    +</Location>
    +
    +<Files f.html>
    +D
    +</Files>
    +
    +<VirtualHost *>
    +<Directory /a/b>
    +B
    +</Directory>
    +</VirtualHost>
    +
    +<DirectoryMatch "^.*b/">
    +C
    +</DirectoryMatch>
    +
    +<Directory /a/b>
    +A
    +</Directory>
    +
    +

    + +

    Daha somut bir örnek olarak aşağıdakini ele alalım. <Directory> bölümlerindeki erişim sınırlamaları +ne olursa olsun <Location> +bölümü son olarak değerlendirmeye alınacak ve sunucuya sınırsız erişim +verecektir. Başka bir deyişle, katıştırma sırası önemlidir, bu nedenle +dikkatli olmalısınız!

    + +

    +<Location />
    + + Order deny,allow
    + Allow from all
    +
    +</Location>
    +
    +# Alooo! Bu <Directory> bölümünün hiçbir hükmü yok.
    +<Directory />
    + + Order allow,deny
    + Allow from all
    + Deny from kkadam.mesela.dom
    +
    +</Directory> +

    + + + +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/sections.xml b/docs/manual/sections.xml index 0df64ee1754..4ec4b689604 100644 --- a/docs/manual/sections.xml +++ b/docs/manual/sections.xml @@ -4,12 +4,12 @@ + + + + + + + +Sections de configuration + +

    Les directives des fichiers de configuration peuvent s'appliquer +au serveur dans son ensemble, ou seulement à des répertoires, fichiers, hôtes, +ou URLs particuliers. Ce document décrit comment utiliser les conteneurs de +sections de configuration ou les fichiers .htaccess pour +modifier la portée des directives de configuration.

    +
    + +
    Types de conteneurs de sections de +configuration + + + +core +mod_version +mod_proxy + + +Directory +DirectoryMatch +Files +FilesMatch +IfDefine +IfModule +IfVersion +Location +LocationMatch +Proxy +ProxyMatch +VirtualHost + + + +

    Il existe deux grands types de conteneurs. La plupart des conteneurs sont +évalués pour chaque requête. Les directives qu'ils contiennent s'appliquent +seulement aux requêtes qui sont concernées par le conteneur. En revanche, +les conteneurs +IfDefine, IfModule, et +IfVersion sont +évalués seulement au démarrage et au redémarrage du serveur. +Si leurs conditions sont vérifiées au démarrage, les directives qu'ils contiennent +s'appliqueront à toutes les requêtes. Si leurs conditions ne sont pas vérifiées, les +directives qu'ils contiennent seront ignorées.

    + +

    Le conteneur IfDefine +contient des directives qui ne seront appliquées que si un paramètre +approprié a été défini dans la ligne de commande de httpd. +Par exemple, +avec la configuration suivante, toutes les requêtes seront redirigées vers +un autre site si le serveur est démarré en utilisant la ligne de commande : +httpd -DClosedForNow:

    + + +<IfDefine ClosedForNow> + Redirect / http://otherserver.example.com/ +</IfDefine> + + +

    Le conteneur IfModule +est similaire; les directives qu'il contient ne s'appliqueront que si +un module particulier est disponible au niveau du serveur. +Le module doit être soit compilé statiquement dans le serveur, soit +dynamiquement et dans ce cas, la ligne LoadModule correspondante doit apparaître +plus haut dans le fichier de configuration. Ce conteneur ne doit être +utilisé que dans le cas où votre fichier de configuration doit fonctionner +indépendamment de la présence ou de l'absence de certains modules. +Il ne doit pas contenir de directives que vous souhaitez voir s'appliquer +systématiquement, car vous pouvez perdre ainsi de précieux messages d'erreur +à propos de modules manquants.

    + +

    Dans l'exemple suivant, la directive MimeMagicFile ne s'appliquera que si le +module mod_mime_magic est disponible.

    + + +<IfModule mod_mime_magic.c> + MimeMagicFile conf/magic +</IfModule> + + +

    Le conteneur +IfVersion +est similaire aux conteneurs IfDefine et IfModule; les directives qu'il contient ne +s'appliqueront que si une version particulière du serveur s'exécute. Ce +conteneur a été conçu pour une utilisation dans les suites de tests +et les grands réseaux qui doivent prendre en compte différentes versions +et configurations de httpd.

    + + +<IfVersion >= 2.1> + # les directives situées ici ne s'appliquent que si la version + # est supérieure ou égale à 2.1.0. +</IfVersion> + + +

    IfDefine, +IfModule, et +IfVersion +peuvent inverser leur test conditionnel en le faisant précéder d'un "!". +De plus, ces sections peuvent être imbriquées afin de définir des restrictions +plus complexes.

    +
    + +
    Système de fichiers et +arborescence du site web + +

    Les conteneurs de sections de configuration les plus couramment utilisés +sont ceux qui modifient la configuration de points particuliers du système de +fichiers ou de l'arborescence du site web. Tout d'abord, il est important de +comprendre la différence entre les deux. Le système de fichiers est une vue +de vos disques tels qu'ils sont perçus par votre système d'exploitation. +Par exemple, avec une installation par défaut, +Apache est situé dans /usr/local/apache2 pour le système de +fichiers UNIX, ou "c:/Program Files/Apache Group/Apache2" pour +le système de fichiers Windows. (Notez que des slashes directs doivent +toujours être utilisés comme séparateur de chemin dans Apache, même sous +Windows.) Quant à +l'arborescence du site web, il s'agit d'une vue de votre site +tel que présenté par le +serveur web et perçue par le client. Ainsi le chemin /dir/ dans +l'arborescence du site web correspond au chemin +/usr/local/apache2/htdocs/dir/ dans le système de fichiers pour +une installation d'Apache par défaut sous UNIX. +En outre, l'arborescence du site web n'a pas besoin de correspondre en permanence au +système de fichiers, car les pages web peuvent être générées dynamiquement +à partir de bases de données ou d'autres emplacements.

    + +
    Conteneurs de système de fichiers + +

    Les conteneurs Directory +et Files, +ainsi que leurs équivalents acceptant les +expressions rationnelles, +appliquent des directives à certaines parties du système de fichiers. +Les directives contenues dans une section Directory s'appliquent au répertoire +précisé, ainsi qu'à tous ses sous-répertoires et aux fichiers que ces +derniers contiennent. +Le même effet peut être obtenu en utilisant les fichiers .htaccess. Par exemple, avec la +configuration suivante, l'indexation sera activée pour le répertoire +/var/web/dir1 et tous ses sous-répertoires.

    + + +<Directory /var/web/dir1> + Options +Indexes +</Directory> + + +

    Les directives contenues dans une section Files s'appliquent à tout fichier +avec le nom spécifié, quel que soit le répertoire dans lequel il se trouve. +Ainsi par exemple, les directives de configuration suivantes, si elles sont +placées dans la section principale du fichier de configuration, vont interdire +l'accès à tout fichier nommé private.html quel que soit +l'endroit où il se trouve.

    + + +<Files private.html> + Order allow,deny + Deny from all +</Files> + + +

    Pour faire référence à des fichiers qui se trouvent en des points +particuliers du système de fichiers, les sections +Files et +Directory +peuvent être combinées. Par exemple, la configuration suivante va interdire +l'accès à /var/web/dir1/private.html, +/var/web/dir1/subdir2/private.html, +/var/web/dir1/subdir3/private.html, ainsi que toute instance de +private.html qui se trouve dans l'arborescence +/var/web/dir1/.

    + + +<Directory /var/web/dir1> + <Files private.html> + Order allow,deny + Deny from all + </Files> +</Directory> + +
    + +
    Conteneurs de l'arborescence du site web + +

    le conteneur Location +et son équivalent acceptant les +expressions rationnelles, modifient quant à eux la +configuration de parties de l'arborescence du site web. Par exemple, la +configuration suivante interdit l'accès à toute URL dont la partie chemin +commence par /private. +En particulier, l'interdiction s'appliquera aux requêtes pour : +http://yoursite.example.com/private, +http://yoursite.example.com/private123, et +http://yoursite.example.com/private/dir/file.html ainsi qu'à +toute requête commençant par la chaîne de caractères /private.

    + + +<LocationMatch ^/private> + Order Allow,Deny + Deny from all +</LocationMatch> + + +

    Le conteneur Location +n'a pas besoin de faire référence à un élément du système de fichiers. +Par exemple, l'exemple suivant montre comment faire référence à une URL +particulière vers un gestionnaire interne d'Apache fourni par le module +mod_status. +Il n'est pas nécessaire de trouver un fichier nommé server-status +dans le système de fichiers.

    + + +<Location /server-status> + SetHandler server-status +</Location> + +
    + +
    Caractères de remplacement +et expressions rationnelles + +

    Les conteneurs +Directory, +Files, et +Location +peuvent utiliser des caractères de remplacement de style shell comme dans +la fonction fnmatch de la bibliothèque C standard. +Le caractère "*" +correspond à toute séquence de caractères, "?" à un caractère seul, +et "[seq]" à tout caractère contenu dans seq. +Le caractère "/" +ne peut pas faire l'objet d'un remplacement; +il doit être spécifié explicitement.

    + +

    Si une définition des critères de correspondance +encore plus souple est nécessaire, chaque conteneur +possède son équivalent acceptant les expressions rationnelles : DirectoryMatch, FilesMatch, et LocationMatch acceptent les +expressions rationnelles compatibles Perl +pour définir les critères de correspondance. Mais voyez plus loin la section +à propos de la combinaison des sections de configuration +pour comprendre comment l'utilisation de +conteneurs avec des expressions rationnelles va modifier la manière +dont les directives sont appliquées.

    + +

    Un conteneur qui modifie la configuration de tous les +répertoires utilisateurs à l'aide de caractères de remplacement +mais sans utiliser +les expressions rationnelles pourrait ressembler à ceci :

    + + +<Directory /home/*/public_html> + Options Indexes +</Directory> + + +

    Avec les conteneurs utilisant les expressions rationnelles, +on peut interdire l'accès à de nombreux types de fichiers d'images +simultanément :

    + +<FilesMatch \.(?i:gif|jpe?g|png)$> + Order allow,deny + Deny from all +</FilesMatch> + + +
    + +
    Que faut-il utiliser et quand ? + +

    Choisir entre des conteneurs de système de fichiers et des conteneurs +d'arborescence du site web est vraiment très simple. +Pour appliquer des directives à des objets qui résident dans le système de +fichiers, utilisez toujours un conteneur Directory ou Files. Pour appliquer des directives à des objets +qui ne résident pas dans le système de fichiers (comme une page web générée +par une base de données), utilisez un conteneur Location.

    + +

    Il ne faut jamais utiliser un conteneur Location pour restreindre l'accès à des +objets du système de fichiers, car plusieurs localisations de +l'arborescence du site web (URLs) peuvent correspondre à la même localisation +du système de fichier, ce qui peut permettre de contourner vos restrictions. +Par exemple, imaginez la configuration suivante :

    + + +<Location /dir/> + Order allow,deny + Deny from all +</Location> + + +

    Elle fonctionne correctement si la requête appelle +http://yoursite.example.com/dir/. Mais que va-t-il se passer si +votre système de fichiers est insensible à la casse ? +Votre restriction va pouvoir être tout simplement contournée en envoyant une +requête sur +http://yoursite.example.com/DIR/. Le conteneur Directory, quant à lui, s'appliquera +à tout contenu servi à partir de cette localisation, +sans tenir compte de la manière dont il est appelé. +(Les liens du système de fichiers constituent une exception. +Le même répertoire peut être placé dans plusieurs parties du système de +fichiers en utilisant des liens symboliques. Le conteneur +Directory va suivre le +lien symbolique sans modifier le nom du chemin. Par conséquent, pour plus de +sécurité, les liens symboliques doivent être désactivés à l'aide de la +directive +Options appropriée.)

    + +

    Si vous pensez que vous n'êtes pas concerné par ce problème +parceque vous utilisez un système de fichiers sensible à la casse, +gardez à l'esprit qu'il y a de nombreuses autres manières pour faire +correspondre plusieurs localisations de l'arborescence du site web à la même +localisation du système de fichiers. C'est pourquoi vous devez autant que +possible toujours utiliser les conteneurs de système de fichiers. +Il y a cependant une exception à cette règle. Placer des restrictions de +configuration dans un conteneur <Location +/> est tout à fait sans rique car ce conteneur va s'appliquer à +toutes les requêtes sans tenir compte de l'URL spécifique.

    +
    + +
    + +
    Hôtes virtuels + +

    Le conteneur VirtualHost +contient des directives qui s'appliquent à des hôtes spécifiques. +Ceci s'avère utile pour servir des hôtes multiples à partir de la même machine, +chacun d'entre eux possédant une configuration différente. Pour de plus amples +informations, +voir la Documentation sur les hôtes virtuels.

    +
    + +
    Mandataire + +

    Les conteneurs +Proxy +et ProxyMatch +appliquent les directives de configuration qu'ils contiennent uniquement aux +sites qui correspondent à l'URL spécifiée et auxquels on a +accédé via le serveur mandataire du module mod_proxy. +Par exemple, la configuration suivante n'autorisera l'accès au site web +www.example.com via le serveur mandataire qu'à un sous-ensemble de +clients :

    + + +<Proxy "http://www.example.com/*"> + Order allow,deny + Allow from 192.168.1.104 192.168.1.205 + Deny from all +</Proxy> + +
    + +
    Quelles sont les directives autorisées ? + +

    Pour déterminer quelles sont les directives autorisées pour tel type de +section de configuration, vérifiez le Contexte de la directive. +Tout ce qui est autorisé dans les sections +Directory +l'est aussi d'un point de vue syntaxique dans les sections +DirectoryMatch, +Files, +FilesMatch, +Location, +LocationMatch, +Proxy, +et ProxyMatch. +Il y a cependant quelques exceptions :

    + +
      +
    • La directive AllowOverride +ne fonctionne que dans les sections +Directory.
    • + +
    • Les Options FollowSymLinks et +SymLinksIfOwnerMatch ne fonctionnent que dans les sections +Directory ou les fichiers +.htaccess.
    • + +
    • La directive Options ne peut pas être +utilisée dans les sections +Files +et FilesMatch.
    • +
    +
    + +
    Comment les sections sont combinées entre elles + +

    Les sections de configuration sont appliquées dans un ordre très particulier. +Il est important de savoir comment cet ordre est défini car il peut avoir +des effets importants sur la manière dont les directives de configuration +sont interprétées.

    + +

    L'ordre dans lequel les sections sont combinées est :

    + +
      +
    1. Les sections Directory (à l'exception des + expressions rationnelles) + et les fichiers .htaccess sont appliqués simultanément (avec + la possibilité pour .htaccess, s'il y est autorisé, de + prévaloir sur + Directory)
    2. + +
    3. Les sections + DirectoryMatch + (et <Directory ~>)
    4. + +
    5. Les sections Files et FilesMatch sont appliquées + simultanément
    6. + +
    7. Les sections + Location + et LocationMatch sont appliquées + simultanément
    8. +
    + +

    Mises à part les sections Directory, chaque groupe est traité selon + l'ordre dans lequel il apparaît dans les fichiers de configuration. + Les sections Directory (groupe 1 ci-dessus) + sont traitées dans l'ordre du répertoire le plus court vers le plus long. + Par exemple, <Directory /var/web/dir> sera + traité avant <Directory + /var/web/dir/subdir>. Si plusieurs sections Directory s'appliquent au même + répertoire, elles sont traitées selon l'ordre dans lequel elles + apparaissent dans le fichier de configuration. + Les sections de configuration incluses via la directive Include sont traitées comme si elles se + trouvaient réellement dans le fichier qui les inclut à la position de la + directive + Include.

    + +

    Les sections situées à l'intérieur de sections VirtualHost + sont appliquées après les sections correspondantes situées en + dehors de la définition de l'hôte virtuel, ce qui permet à l'hôte virtuel + de prévaloir sur la configuration du serveur principal.

    + +

    Quand la requête est servie par le module mod_proxy, + le conteneur Proxy + prend la place du conteneur Directory dans l'ordre de traitement.

    + +Note technique + Une séquence + <Location>/<LocationMatch> + est réellement traitée juste avant la phase de traduction du nom + (où Aliases et DocumentRoots + sont utilisés pour faire correspondre les URLs aux noms de fichiers). + Les effets de cette séquence disparaissent totalement lorsque + la traduction est terminée. + + +
    Interactions entre +modules et sections de configuration +

    Une question se pose souvent après avoir lu comment les sections de + configuration sont fusionnées : comment et quand les directives de modules + particuliers comme mod_rewrite sont-elles interprétées ? La + réponse n'est pas triviale et nécessite un approfondissement. Chaque module + httpd gère sa propre configuration, et chacune de ses directives dans + httpd.conf définit un élément de configuration dans un contexte particulier. + httpd n'exécute pas un commande au moment où elle est lue.

    +

    A l'exécution, le noyau de httpd parcours les sections de configuration + dans l'ordre décrit ci-dessus afin de déterminer lesquelles s'appliquent à + la requête courante. Lorsqu'une première section s'applique, elle est + considérée comme la configuration courante pour cette requête. Si une + section suivante s'applique aussi, chaque module qui possède des directives + dans chacune de ces sections a la possibilité de fusionner sa configuration + entre ces deux sections. Il en résulte une troisième configuration et le + processus de fusion se poursuit jusqu'à ce que toutes les sections de + configuration aient été évaluées.

    +

    Après l'étape précédente, le traitement proprement dit de la requête HTTP + peut commencer : chaque module peut effectuer toute tâche qui lui incombe, + et pour déterminer de quelle manière dont il doit agir, il peut s'appuyer + sur le noyau de httpd pour retrouver sa configuration globale issue de la + fusion précédente.

    +

    Un exemple permet de mieux visualiser l'ensemble du processus. la + configuration suivante utilise la directive Header du module + mod_headers pour définir un en-tête HTTP spécifique. Quelle + valeur httpd va-t-il affecter à l'en-tête CustomHeaderName pour + une requête vers /example/index.html ? +

    + + +<Directory "/"> + Header set CustomHeaderName one + <FilesMatch ".*"> + Header set CustomHeaderName three + </FilesMatch> +</Directory> + +<Directory "/example"> + Header set CustomHeaderName two +</Directory> + + +
      +
    • Directory "/" s'applique, et une configuration + initiale est créée qui définit l'en-tête CustomHeaderName + avec la valeur one.
    • +
    • Directory "/example" s'applique, et comme + mod_headers spécifie dans son code que + la valeur d'un en-tête doit être écrasée si ce dernier est défini à + nouveau, une nouvelle configuration est créée qui définit l'en-tête + CustomHeaderName avec la valeur two.
    • +
    • FilesMatch ".*" s'applique, une nouvelle + opportunité de fusion surgit, et l'en-tête CustomHeaderName + est défini à la valeur three.
    • +
    • Finalement, au cours des étapes suivantes du traitement de la + requête HTTP, mod_headers sera sollicité, et il se + basera sur la configuration qui a défini l'en-tête + CustomHeaderName à la valeur three. + mod_headers utilise normalement cette configuration pour + accomplir sa tâche, à savoir définir des en-têtes HTTP. Cela ne veut + cependant pas dire qu'un module ne peut pas effectuer des actions plus + complexes comme désactiver des directives car elle ne sont pas + nécessaires ou obsolètes, etc...
    • +
    + +

    Ceci est aussi vrai pour les fichiers .htaccess car ils possèdent la même + priorité que les sections Directory dans l'ordre de + fusion. Il faut bien comprendre que les sections de configuration comme + Directory et FilesMatch ne + sont pas comparables avec les directives spécifiques de modules comme + Header ou RewriteRule car elles agissent à des + niveaux différents. +

    +
    + +
    Quelques exemples + +

    Voici un exemple imaginaire qui montre l'ordre de combinaison des sections. +En supposant qu'elles s'appliquent toutes à la requête, les directives de +cet exemple seront appliquées dans l'ordre suivant : A > B > C > D > +E.

    + + +<Location "/"> + E +</Location> + +<Files "f.html"> + D +</Files> + +<VirtualHost *> +<Directory "/a/b"> + B +</Directory> +</VirtualHost> + +<DirectoryMatch "^.*b$"> + C +</DirectoryMatch> + +<Directory "/a/b"> + A +</Directory> + + + +

    Pour un exemple plus concret, considérez ce qui suit. Sans tenir compte +de toute restriction d'accès placée dans les sections Directory, la section Location sera +évaluée en dernier et permettra un accès au serveur sans aucune restriction. +En d'autres termes, l'ordre de la combinaison des sections est important, +soyez donc prudent !

    + + +<Location "/"> + Require all granted +</Location> +# Arrghs! Cette section <Directory> n'aura aucun effet +<Directory "/"> + <RequireAll> + Require all granted + Require not host badguy.example.com + </RequireAll> +</Directory> + + +
    + +
    +
    diff --git a/docs/manual/sections.xml.ja b/docs/manual/sections.xml.ja index 166aef1fc6c..27cb2c05750 100644 --- a/docs/manual/sections.xml.ja +++ b/docs/manual/sections.xml.ja @@ -1,15 +1,15 @@ - + - + + - + sections / . en - ja + fr + ja ko + tr diff --git a/docs/manual/sections.xml.tr b/docs/manual/sections.xml.tr new file mode 100644 index 00000000000..7cb69faa956 --- /dev/null +++ b/docs/manual/sections.xml.tr @@ -0,0 +1,532 @@ + + + + + + + + + + +Yapılandırma Bölümleri + +

    Yapılandırma dosyalarındaki +yönergeler sunucunun tamamına uygulanacağı gibi sadece belli dizinler, +dosyalar, konaklar veya URL’lere uygulanmakla sınırlanabilir. Bu belgede, +yapılandırma bölümü taşıyıcılarınının veya .htaccess +dosyalarının, yapılandırma dosyalarındaki diğer yönergelerin etki alanlarını +değiştirtirmek için nasıl kullanılacağı açıklanmıştır.

    +
    + +
    Yapılandırma Bölümü Taşıyıcılarının Türleri + + + +core +mod_version +mod_proxy + + +Directory +DirectoryMatch +Files +FilesMatch +IfDefine +IfModule +IfVersion +Location +LocationMatch +Proxy +ProxyMatch +VirtualHost + + + +

    İki temel taşıyıcı türü vardır. Taşıyıcıların çoğu her istek için +değerlendirmeye alınır. Taşıyıcılardaki yönergeler ise sadece bu taşıyıcılarla +eşleşen istekler için uygulanır. Diğer yandan, IfDefine, IfModule ve IfVersion taşıyıcıları sadece sunucu başlatılırken veya yeniden +başlatılırken değerlendirmeye alınır. Başlatma sırasında gerektirdikleri +koşullar sağlanıyorsa içerdikleri yönergeler tüm isteklere uygulanır. +Aksi takdirde, içerdikleri yönergeler yok sayılır.

    + +

    IfDefine yönergesi +sadece httpd komut satırında uygun parametreler +tanımlanmışsa uygulanabilecek yönergeleri içerir. Örneğin, aşağıdaki +yapılandırma ile tüm isteklerin diğer siteye yönlendirilebilmesi sadece +sunucu httpd -DClosedForNow komut satırı ile başlatıldığı +takdirde mümkün olur:

    + + +<IfDefine ClosedForNow>
    + + Redirect / http://otherserver.example.com/
    +
    +</IfDefine> +
    + +

    IfModule yönergesi +sadece belli bir modülün sunucuda kullanılabilir durumda olması halinde +uygulanabilecek yönergeleri içerir. Modülün ya sunucuyla birlikte durağan +olarak derlenmiş olması ya da devingen olarak derlenmiş ve yapılandırma +dosyasında yönergeden önce o modüle ilişkin bir LoadModule satırının bulunması gerekir. Bu yönergeyi sadece +belli bir modülün varlığının veya yokluğunun yapılandırma dosyanızın +çalışmasını etkilememesini istediğiniz durumlarda kullanmalısınız. Eksik +modüllerle ilgili hata iletilerini engellediğinden, taşıyıcı içine, her +zaman çalışması istenen yönergeler konulmamalıdır.

    + +

    Aşağıdaki örnekte, MimeMagicFile yönergesi sadece +mod_mime_magic modülü mevcutsa uygulanacaktır.

    + + +<IfModule mod_mime_magic.c>
    + + MimeMagicFile conf/magic
    +
    +</IfModule> +
    + +

    IfVersion +yönergesi sunucunun belli bir sürümünün çalıştırılması halinde uygulanabilecek +yönergeleri içerebilmesi dışında IfDefine ve IfModule yönergeleri gibidir. mod_version +modülü farklı httpd sürümleri ve farklı yapılandırmalarla büyük ağlarda +çalışmayı mümkün kılmak veya sürüm denemeleri yapabilmek amacıyla +tasarlanmıştır.

    + + +<IfVersion >= 2.1>
    + + # burası sadece 2.1.0 veya daha üstü sürümlerde
    + # iş görür.
    +
    +</IfVersion> +
    + +

    IfDefine, +IfModule ve +IfVersion +yönergelerinin önüne "!" konularak olumsuz koşullar için uygulanabilir. +Ayrıca, bu bölümler daha karmaşık sınırlamalar elde etmek amacıyla bir +diğerinin içinde kullanılabilirler.

    +
    + +
    Dosya Sistemi ve Site Alanı + +

    En sık kullanılan yapılandırma bölümü taşıyıcıları dosya sistemindeki +veya site alanındaki belli yerlerin yapılandırmalarını değiştirmekte +kullanılanlardır. Öncelikle, bu ikisi arasındaki farkları bilmek önemlidir. +Dosya sistemi disklerinizin işletim sistemi tarafından size gösterilen halidir. +Örneğin, öntanımlı kurulumda Apache, Unix sistemlerinde +/usr/local/apache2 altındayken Windows sistemlerinde +"c:/Program Files/Apache Group/Apache2" altındadır. +(Bilgi: Windows için bile, Apache’de dosya yolu belirtilirken tersbölü +değil normal bölü karakterleri kullanılır.) Site alanı ise sunucu tarafından +istemciye sunulan dizin ağacıdır. Yani, site alanı içindeki /dir/ +dizini, Apache’nin Unix üzerinde dosya sistemine öntanımlı olarak kurulduğu +yer göz önüne alınarak, dosya sistemindeki +/usr/local/apache2/htdocs/dir/ dizinine karşılıktır. Site +sayfaları veritabanlarından veya başka yerlerden devingen olarak +üretilebildiğinden site alanlarının doğrudan dosya sistemine eşlenmesi +gerekli değildir.

    + +
    Dosya Sistemi Taşıyıcıları + +

    Directory +ve Files taşıyıcıları, +düzenli ifade karşılıkları ile beraber, +yönergeleri dosya sisteminin parçalarına uygularlar. Bir Directory bölümü içindeki yönergeler +belli bir dosya sistemi dizinine ve onun alt dizinlerine (ve bunların içindeki +dosyalara) uygulanır. Aynı etki +.htaccess dosyaları kullanılarak da +sağlanabilir. Örneğin aşağıdaki yapılandırmada, /var/web/dir1 +dizini ve alt dizinlerinde dizin içeriğinin listelenmesi etkin kılınmaktadır.

    + + +<Directory /var/web/dir1>
    + + Options +Indexes
    +
    +</Directory> +
    + +

    Bir Files bölümü +içindeki yönergeler, hangi dizinde bulunduğuna bakılmaksızın ismi +belirtilen dosyalara uygulanır. Örneğin, aşağıdaki yapılandırma yönergeleri +yapılandırma dosyasının ana bölümüne yerleştirildiği takdirde +gizli.html isimli dosyalara nerede bulunursa bulunsun erişime +izin vermeyecektir.

    + + +<Files gizli.html>
    + +Order allow,deny
    +Deny from all
    +
    +</Files> +
    + +

    Dosya sisteminin belli bir yerindeki belli dosyalarla ilgili yaptırımlar +için Files ve +Directory bölümleri +birlikte kullanılabilir. Örneğin, aşağıdaki yapılandırma +/var/web/dir1/gizli.html, +/var/web/dir1/subdir2/gizli.html, +/var/web/dir1/subdir3/gizli.html ve +/var/web/dir1/ altında bulunabilecek diğer tüm +gizli.html dosyalarına erişimi yasaklar.

    + + +<Directory /var/web/dir1>
    + +<Files gizli.html>
    + +Order allow,deny
    +Deny from all
    +
    +</Files>
    +
    +</Directory> +
    +
    + +
    Site Alanı Taşıyıcıları + +

    Location yönergesi ve +yönergenin düzenli ifade karşılığı site +alanındaki içerik için yapılandırmayı değiştirir. Örneğin aşağıdaki +yapılandırma, /gizli ile başlayan URL yollarına erişimi engeller. +Özellikle, http://siteniz.mesela.dom/gizli, +http://siteniz.mesela.dom/gizli123 ve +http://siteniz.mesela.dom/gizli/dir/dosya.html +istekleri yanında /gizli ile başlayan diğer isteklere de +uygulanır.

    + + +<LocationMatch ^/gizli>
    + +Order Allow,Deny
    +Deny from all
    +
    +</LocationMatch> +
    + +

    Dosya sistemi ile etkileşime girmeyen herşey için +Location yönergesi gerekir. +Aşağıdaki örnekte, belli bir URL’nin mod_status modülü +tarafından sağlanan bir dahili Apache eylemcisine nasıl eşlenebileceği +gösterilmiştir. Bu örnek için dosya sisteminde server-status +adında bir dosya veya dizin bulunması gerekli değildir.

    + + +<Location /server-status>
    + +SetHandler server-status
    +
    +</Location> +
    +
    + +
    Dosya Adı Şablonları ve Düzenli İfadeler + +

    Directory, +Files ve +Location yönergelerinde, +Standart C kütüphanesindeki fnmatch işlevindeki gibi kabuk tarzı +dosya ismi kalıpları kullanılabilir. "*" karakteri herhangi bir karakter +dizisi ile eşleşirken "?" karakteri tek tek karakterlerle ve "[seq]" +kalıbı ise seq içindeki her karakterle eşleşir. "/" karakteri her +hangi bir kalıp karakteri ile eşleşmez; açıkça belirtilmesi gerekir.

    + +

    Daha esnek bir eşleşmenin gerekli olduğu durumlar için her taşıyıcının bir +düzenli ifade karşılığı vardır. DirectoryMatch, FilesMatch ve LocationMatch yönergelerinde gerekli eşleşmeleri seçmek için +perl uyumlu düzenli ifadelerin kullanımına +izin verilir. Ayrıca, yönergelerin uygulanışının düzenli ifade bölümleri kullanılarak nasıl değiştirileceğini öğrenmek için, aşağıda, yapılandırmanın katıştırılmasıyla ilgili bölüme de bakınız.

    + +

    Tüm kullanıcı dizinlerine ilişkin yapılandırmayı değiştirmek için dosya +ismi kalıpları şöyle kullanılabilirdi:

    + + +<Directory /home/*/public_html>
    + +Options Indexes
    +
    +</Directory> +
    + +

    Düzenli ifade bölümleri kullanarak çeşitli türlerdeki resim dosyalarına +erişimi bir defada yasaklayabiliriz:

    + +<FilesMatch \.(?i:gif|jpe?g|png)$>
    + +Order allow,deny
    +Deny from all
    +
    +</FilesMatch> +
    + +
    + +
    Ne, Ne Zaman Kullanılır? + +

    Dosya sistemi taşıyıcıları ile site alanı taşıyıcıları arasında seçim +yapmak aslında oldukça kolaydır. Dosya sisteminde bulunan nesnelere +uygulanacak yönergeler için daima Directory veya Files kullanılır. Dosya sisteminde bulunmayan nesnelere +(bir sayfanın bir veritabanı tarafından üretilmesi gibi) uygulanacak +yönergeler için ise Location kullanılır.

    + +

    Dosya sistemindeki nesnelere erişimi kısıtlarken asla Location kullanmamak önemlidir. +Bunun sebebi farklı site alanı konumlarının (URL’ler) aynı dosya sistemi +konumuna eşlenebilmesi dolayısıyla kısıtlamalarınızın etrafından +dolaşılabilmesine izin vermesidir. Örneğin, aşağıdaki yapılandırmayı +ele alalım:

    + + +<Location /dir/>
    + +Order allow,deny
    +Deny from all
    +
    +</Location> +
    + +

    http://siteniz.mesela.dom/dir/ için bir istek yapılmışsa +bu doğru çalışacaktır. Fakat dosya sistemi harf büyüklüğüne duyarsızsa +ne olacak? Kısıtlamanız, istek http://siteniz.mesela.dom/DIR/ +şeklinde yapılarak kolayca geçersiz kılınabilir. Halbuki Directory yönergesi isteğin nasıl +yapıldığına bakılmaksızın bu konumdan sunulan her türlü içeriğe uygulanacaktı. +(Dosya sistemi bağlarıyla bu da aşılabilir. Sembolik bağlar kullanılarak aynı +dizin dosya sisteminin bir çok yerine yerleştirilebilir. Directory yönergesi dosya yolunu +sıfırlamaksızın sembolik bağları izleyecektir. Bu bakımdan, en yüksek +seviyede güvenlik için uygun Options +yönergesi ile sembolik bağların izlenmesi devredışı bırakılabilir.)

    + +

    Belki de siz sırf harf büyüklüğüne duyarlı bir dosya sistemi +kullanıyorsunuz diye böyle uygulamalara ihtiyacınız olmadığını +düşünüyor olabilirsiniz, fakat aynı site alanını çok sayıda dosya +sistemi konumuna eşleyecek daha bir sürü yol bulunduğunu unutmayınız. +Bu bakımdan dosya sisteminde yapacağınız kısıtlamalarda daima dosya +sistemi taşıyıcılarını kullanmalısınız. Bununla birlikte bu kuralın da +bir istisnası vardır. Yapılandırma kısıtlamalarının bir +<Location/> bölümü içine koyulması, bu bölüme konan +yönergelerin etki alanının belli bir URL ile sınırlı olmaması nedeniyle +mükemmelen güvenlidir.

    +
    + +
    + +
    Sanal Konaklar + +

    VirtualHost taşıyıcısının +içinde belli bir konağa uygulanan yönergeler bulunur. Aynı makinede çok sayıda +konağı farklı yapılandırmalarla sunuyorsanız bu taşıyıcı çok işinize yarar. +Daha fazla bilgi için Sanal Konak Belgeleri bölümüne bakınız.

    +
    + +
    Vekil + +

    Proxy +ve ProxyMatch +taşıyıcıları, sadece belli bir URL ile eşleşen mod_proxy +vekil sunucusu üzerinden erişilen sitelere uygulanan yapılandırma +yönergelerini bulundururlar. Örneğin aşağıdaki yapılandırma +cnn.com sitesine erişim için vekil sunucunun kullanılmasını +engelleyecektir.

    + + +<Proxy http://cnn.com/*>
    + +Order allow,deny
    +Deny from all
    +
    +</Proxy> +
    +
    + +
    Hangi Yönergelere İzin Veriliyor? + +

    Hangi yönergelere hangi yapılandırma bölümlerinde izin verildiğini +öğrenmek için yönerge bağlamına bakınız. +Directory bölümlerinde +izin verilen herşeye sözdizimsel olarak ayrıca +DirectoryMatch, +Files, +FilesMatch, +Location, +LocationMatch, +Proxy +ve ProxyMatch +bölümlerinde de izin verilir. Yine de bazı istisnai durumlar mevcuttur:

    + +
      +
    • AllowOverride yönergesi sadece +Directory bölümlerinde çalışır.
    • + +
    • Options yönergesinin +FollowSymLinks ve SymLinksIfOwnerMatch +seçenekleri sadece Directory bölümlerinde veya .htaccess +dosyalarında çalışır.
    • + +
    • Options yönergesi +Files ve +FilesMatch +bölümlerinde kullanılamaz.
    • +
    +
    + +
    Bölümler Nasıl Katıştırılır? + +

    Yapılandırma bölümleri belli bir sıra ile uygulanır. Yapılandırma +yönergelerinin yorumlanışı üzerinde önemli etkilere sahip olabilmesi +nedeniyle neyin ne zaman çalıştığını anlamak çok önemlidir.

    + +

    Yapılandırma bölümlerinin katıştırılma sırası şöyledir:

    + +
      +
    1. Directory (düzenli ifadeler hariç) + ve .htaccess aynı anda işleme sokulur + (.htaccess ile eğer izin verilmişse Directory içindeki bazı + yönergeler geçersiz kılınabileceği için).
    2. + +
    3. DirectoryMatch + (ve <Directory ~>).
    4. + +
    5. Files ve FilesMatch aynı anda işleme sokulur.
    6. + +
    7. Location + ve LocationMatch + aynı anda işleme sokulur.
    8. +
    + +

    Directory + bölümündekiler hariç, her grup, yapılandırma dosyasında bulundukları + sıraya göre işleme sokulurlar. Yukarıda 1. grup olan Directory bölümü en kısa + dizin elemanından en uzun dizin elemanına doğru işleme sokulur. + Yani, örneğin, <Directory /var/web/dir> bölümü + <Directory /var/web/dir/subdir> bölümünden önce + işleme sokulacaktır. Eğer aynı uzunlukta çok sayıda dizin varsa + Directory bölümleri + yapılandırma dosyasında bulundukları sıraya göre işleme sokulurlar. + Include yönergeleri ile + yapılandırmaya dahil edilen dosyaların içerikleri Include yönergesinin bulunduğu yere + konulduktan sonra işleme sokulurlar.

    + +

    VirtualHost + bölümlerinin içindeki bölümler, sanal konak tanımı dışındaki + karşılıklarından sonra uygulanırlar.

    + +

    İstek mod_proxy tarafından sunulduğu takdirde, + Proxy taşıyıcısı + işlem sırasında Directory + taşıyıcısının yerini alır.

    + +

    Sonraki bölümler öncekileri geçersiz kılmak üzere işleme alınırlar.

    + +Bazı Teknik Bilgiler + Aslında, isim dönüşüm aşamasından (Aliases ve + DocumentRoots, URL’leri dosya isimlerine eşlemek için + kullanılırken) hemen önce uygulanan bir + <Location>/<LocationMatch> + dizisi vardır. Bu dizinin sonuçları isim dönüşüm aşaması tamamlandıktan + sonra tamamen elden çıkarılır. + + +
    Bazı Örnekler + +

    Aşağıdaki yapay örnekte katıştırma sırası gösterilmiştir. Hepsinin +aynı isteğe uygulandığı varsayımıyla, bu örnekteki yönergeler +A > B > C > D > E sırasıyla uygulanacaktır.

    + + +<Location />
    +E
    +</Location>
    +
    +<Files f.html>
    +D
    +</Files>
    +
    +<VirtualHost *>
    +<Directory /a/b>
    +B
    +</Directory>
    +</VirtualHost>
    +
    +<DirectoryMatch "^.*b/">
    +C
    +</DirectoryMatch>
    +
    +<Directory /a/b>
    +A
    +</Directory>
    +
    +
    + +

    Daha somut bir örnek olarak aşağıdakini ele alalım. Directory bölümlerindeki erişim sınırlamaları +ne olursa olsun Location +bölümü son olarak değerlendirmeye alınacak ve sunucuya sınırsız erişim +verecektir. Başka bir deyişle, katıştırma sırası önemlidir, bu nedenle +dikkatli olmalısınız!

    + + +<Location />
    + + Order deny,allow
    + Allow from all
    +
    +</Location>
    +
    +# Alooo! Bu <Directory> bölümünün hiçbir hükmü yok.
    +<Directory />
    + + Order allow,deny
    + Allow from all
    + Deny from kkadam.mesela.dom
    +
    +</Directory> +
    + +
    + +
    +
    diff --git a/docs/manual/server-wide.html b/docs/manual/server-wide.html index d43014c0f6a..bc7d087ae3a 100644 --- a/docs/manual/server-wide.html +++ b/docs/manual/server-wide.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: server-wide.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: server-wide.html.ja.euc-jp +URI: server-wide.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: server-wide.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: server-wide.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/server-wide.html.en b/docs/manual/server-wide.html.en index 6b81119009a..ea698910313 100644 --- a/docs/manual/server-wide.html.en +++ b/docs/manual/server-wide.html.en @@ -1,26 +1,34 @@ - -Server-Wide Configuration - Apache HTTP Server +Server-Wide Configuration - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Server-Wide Configuration

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Server-Wide Configuration

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    This document explains some of the directives provided by @@ -30,13 +38,13 @@ the basic operations of the server.

    +
    top

    Server Identification

    - +

    The ServerAdmin and ServerTokens directives @@ -45,8 +53,9 @@ the basic operations of the server.

    ServerTokens directive sets the value of the Server HTTP response header field.

    -

    The ServerName and - UseCanonicalName +

    The ServerName, + UseCanonicalName and + UseCanonicalPhysicalPort directives are used by the server to determine how to construct self-referential URLs. For example, when a client requests a directory, but does not include the trailing slash in the @@ -92,8 +101,30 @@ the basic operations of the server.

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/server-wide.html.ja.euc-jp b/docs/manual/server-wide.html.ja.euc-jp deleted file mode 100644 index bd3a2d54592..00000000000 --- a/docs/manual/server-wide.html.ja.euc-jp +++ /dev/null @@ -1,99 +0,0 @@ - - - -¥µ¡¼¥ÐÁ´ÂΤÎÀßÄê - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥µ¡¼¥ÐÁ´ÂΤÎÀßÄê

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    ¤³¤Υɥ­¥å¥á¥ó¥ȤǤÏcore -¥µ¡¼¥ФΥǥ£¥쥯¥ƥ£¥֤ÎÃæ¤ǡ¢ -´ðËÜưºî¤òÀßÄꤹ¤뤿¤á¤Τâ¤ΤòÀâÌÀ¤·¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¥µ¡¼¥Ð ID

    - - - - -

    ServerAdmin ¥ǥ£¥쥯¥ƥ£¥֤È - ServerTokens - ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥¨¥顼¥á¥å»¡¼¥¸¤ʤɤΥµ¡¼¥Ф¬ºî¤ë¥ɥ­¥å¥á¥ó¥Ȥˡ¢ - ¤ɤΤ褦¤ʥµ¡¼¥ФξðÊó¤òɽ¼¨¤¹¤뤫¤òÀ©¸椷¤ޤ¹¡£ - ServerTokens ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢Server HTTP - ¥쥹¥ݥ󥹥إåÀ¥ե£¡¼¥ë¥ɤÎÃͤòÀßÄꤷ¤ޤ¹¡£

    - -

    ServerName ¥ǥ£¥쥯¥ƥ£¥֤È - UseCanonicalName - ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¥µ¡¼¥Ф¬¼«ʬ¼«¿Ȥ򻲾Ȥ¹¤ë URL - ¤òºî¤ë¤Ȥ­¤˻Ȥï¤ì¤ޤ¹¡£ - ¤¿¤Ȥ¨¤С¢¥¯¥饤¥¢¥ó¥Ȥ¬¥ǥ£¥쥯¥ȥê¤òÍ׵ᤷ¤ơ¢ - ¤½¤Υǥ£¥쥯¥ȥê̾¤κǸå¤˥¹¥é¥å·¥夬Éդ¤¤Ƥ¤¤ʤ¤¤褦¤ʾì¹ç¤ˤϡ¢ - ¥ɥ­¥å¥á¥ó¥ȤÎÁêÂÐŪ¤ʻ²¾ȤòÀµ¤·¤¯²ò·è¤Ǥ­¤ë¤褦¤ˤ¹¤뤿¤á¤ˡ¢ - Apache ¤ϺǸå¤Υ¹¥é¥å·¥å¤ò´ޤó¤À´°Á´¤ʥѥ¹¤˥¯¥饤¥¢¥ó¥Ȥò - ¥ê¥À¥¤¥쥯¥Ȥµ¤»¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    -
    top
    -
    -

    ¥ե¡¥¤¥ë¤ΰÌÃÖ

    - - - - -

    ¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤Ï Apache - ¤¬ŬÀڤÊưºî¤򤹤뤿¤á¤ËɬÍפʳƼï¥ե¡¥¤¥ë¤ΰÌÃ֤òÀ©¸椷¤ޤ¹¡£ - ¥ѥ¹¤¬¥¹¥é¥å·¥å (/) ¤ǻϤޤäƤ¤¤ʤ¤¤Ȥ­¤ϡ¢¥ե¡¥¤¥ë¤Ï - ServerRoot ¤«¤é¤ÎÁêÂХѥ¹¤Ȥ·¤Æ - õ¤µ¤ì¤ޤ¹¡£root - °ʳ°¤Υ桼¥¶¤¬½񤭹þ¤߲Äǽ¤ʥѥ¹¤˥ե¡¥¤¥ë¤òÃ֤¯¾ì¹ç¤ÏÃí°դ¬ɬÍפǤ¹¡£ - ¾ܺ٤Ï¡֥»¥­¥å¥ê¥ƥ£¾ðÊó¡× - ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    top
    -
    -

    ¥꥽¡¼¥¹¤ÎÀ©¸Â

    - - - - -

    LimitRequest* ¥ǥ£¥쥯¥ƥ£¥֤Ï Apache - ¤¬¥¯¥饤¥¢¥ó¥Ȥ«¤é¤Υꥯ¥¨¥¹¥ÈÆɤ߹þ¤ߤǻȤ¦ - ¥꥽¡¼¥¹¤òÀ©¸¤¹¤뤿¤á¤˻Ȥï¤ì¤ޤ¹¡£¤³¤ì¤é¤ÎÃͤòÀ©¸¤¹¤뤳¤Ȥǡ¢ - ¤¤¤¯¤Ĥ«¤Υµ¡¼¥ӥ¹µñÈݹ¶·â¤ϱƶÁ¤òϤ餲¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    RLimit* ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢Apache ¤λҥץí¥»¥¹¤«¤é - fork ¤µ¤줿¥ץí¥»¥¹¤¬»ÈÍѤ¹¤ë¥꥽¡¼¥¹¤òÀ©¸¤¹¤뤿¤á¤˻Ȥï¤ì¤ޤ¹¡£ - Æäˡ¢¤³¤ì¤Ï CGI ¥¹¥¯¥ê¥ץȤÈ SSI exec - ¥³¥ޥó¥ɤǻȤï¤ì¤ë¥꥽¡¼¥¹¤òÀ©¸椷¤ޤ¹¡£

    - -

    ThreadStackSize ¤Ï Netware - ¤ǤΤߡ¢¥¹¥¿¥å¯¤ÎÂ礭¤µ¤òÀ©¸椹¤뤿¤á¤˻Ȥï¤ì¤ޤ¹¡£

    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/server-wide.html.ja.utf8 b/docs/manual/server-wide.html.ja.utf8 new file mode 100644 index 00000000000..2e36d567f9b --- /dev/null +++ b/docs/manual/server-wide.html.ja.utf8 @@ -0,0 +1,130 @@ + + + + + +サーバ全体の設定 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    サーバ全体の設定

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    + +

    このドキュメントではcore +サーバのディレクティブの中で、 +基本動作を設定するためのものを説明します。

    +
    + +
    top
    +
    +

    サーバ ID

    + + + + +

    ServerAdmin, + ServerTokens, + UseCanonicalPhysicalPort + ディレクティブは、エラーメッセージなどのサーバが作るドキュメントに、 + どのようなサーバの情報を表示するかを制御します。 + ServerTokens ディレクティブは、Server HTTP + レスポンスヘッダフィールドの値を設定します。

    + +

    ServerName ディレクティブと + UseCanonicalName + ディレクティブは、サーバが自分自身を参照する URL + を作るときに使われます。 + たとえば、クライアントがディレクトリを要求して、 + そのディレクトリ名の最後にスラッシュが付いていないような場合には、 + ドキュメントの相対的な参照を正しく解決できるようにするために、 + Apache は最後のスラッシュを含んだ完全なパスにクライアントを + リダイレクトさせる必要があります。

    +
    top
    +
    +

    ファイルの位置

    + + + + +

    これらのディレクティブは Apache + が適切な動作をするために必要な各種ファイルの位置を制御します。 + パスがスラッシュ (/) で始まっていないときは、ファイルは + ServerRoot からの相対パスとして + 探されます。root + 以外のユーザが書き込み可能なパスにファイルを置く場合は注意が必要です。 + 詳細は「セキュリティ情報」 + を参照してください。

    +
    top
    +
    +

    リソースの制限

    + + + + +

    LimitRequest* ディレクティブは Apache + がクライアントからのリクエスト読み込みで使う + リソースを制限するために使われます。これらの値を制限することで、 + いくつかのサービス拒否攻撃は影響を和らげることができます。

    + +

    RLimit* ディレクティブは、Apache の子プロセスから + fork されたプロセスが使用するリソースを制限するために使われます。 + 特に、これは CGI スクリプトと SSI exec + コマンドで使われるリソースを制御します。

    + +

    ThreadStackSize は Netware + でのみ、スタックの大きさを制御するために使われます。

    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/server-wide.html.ko.euc-kr b/docs/manual/server-wide.html.ko.euc-kr index fac09ac449a..6bb0d9e436a 100644 --- a/docs/manual/server-wide.html.ko.euc-kr +++ b/docs/manual/server-wide.html.ko.euc-kr @@ -1,27 +1,37 @@ - -¼­¹ö Àü¿ª ¼³Á¤ - Apache HTTP Server +¼­¹ö Àü¿ª ¼³Á¤ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¼­¹ö Àü¿ª ¼³Á¤

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¼­¹ö Àü¿ª ¼³Á¤

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ÀÌ ¹®¼­´Â core ¼­¹ö°¡ ¼­¹öÀÇ ±⺻ ÇൿÀ» ¼³Á¤ÇϱâÀ§ÇØ Á¦°øÇϴ Áö½þîÁß ÀϺθ¦ ¼³¸íÇѴÙ.

    @@ -29,7 +39,7 @@ +
    top

    ¼­¹ö ½ĺ°

    @@ -86,8 +96,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/server-wide.html.tr.utf8 b/docs/manual/server-wide.html.tr.utf8 new file mode 100644 index 00000000000..9aecd2e7e48 --- /dev/null +++ b/docs/manual/server-wide.html.tr.utf8 @@ -0,0 +1,127 @@ + + + + + +Sunucu Genelinde Yapılandırma - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Sunucu Genelinde Yapılandırma

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + +

    Bu belgede core modülü ile sağlanan ve sunucunun temel +işlemlerini yapılandırmakta kullanılan yönergelerden bazıları açıklanmıştır.

    +
    + +
    top
    +
    +

    Sunucu Kimliği

    + + + + +

    ServerAdmin ve ServerTokens yönergeleri, hata iletileri gibi + sunucu tarafından üretilen belgelerde sunucu ile ilgili hangi bilgilerin + sunulacağını belirlerler. ServerTokens yönergesi sunucunun HTTP yanıt başlığı + alanının değerini belirler.

    + +

    ServerName, + UseCanonicalName ve + UseCanonicalPhysicalPort + yönergeleri, sunucu tarafından, özüne yönelik URL’leri nasıl + oluşturacağını saptamak için kullanılır. Örneğin bir istemci bir dizin + isteğinde bulunurken URL’nin sonuna bölü çizgisi eklemese bile + Apache’nin istemciyi bölü çizgisi ile bitirilmiş URL yoluna + yönlendirmesi gerekir; böylece istemci belge içindeki göreli + bağlantıları doğru şekilde çözümleyebilir.

    +
    top
    +
    +

    Dosyaların Yerleri

    + + + + +

    Bu yönergeler Apache’nin doğru işlem yapması için gereksinim duyduğu + çeşitli dosyaların yerlerini belirlerler. Bölü çizgisi (/) ile + başlamayan dosya yolları kullanıldığında bu dosyaların yerlerinin + ServerRoot yönergesinde belirtilen + dizine göre belirtildiği varsayılır; root olmayan kullanıcılar + tarafından yazılabilen dosya yollarına dosya yerleştirmemeye dikkat + ediniz. Bu konuda daha ayrıntılı bilgi edinmek için güvenlik ipuçları + belgesine bakınız.

    +
    top
    +
    +

    Özkaynak Kullanımının Sınırlanması

    + + + + +

    LimitRequest* yönergeleri, Apache’nin istemcilerden gelen + istekleri okumak için kullanacağı özkaynakların miktarları ile ilgili + sınırlamalar koymak için kullanılırlar. Bu değerleri sınırlamak + suretiyle bazı hizmet reddi saldırılarının etkileri azaltılabilir.

    + +

    RLimit* yönergeleri ise Apache’nin çocuk süreçleri + tarafından çatallanabilen özkaynakların miktarlarını sınırlamakta + kullanılırlar. Özellikle de CGI betikleri ve SSI çalıştırma komutları + tarafından kullanılan özkaynakları denetlemekte kullanılırlar.

    + +

    ThreadStackSize yönergesi + bazı platformlarda yığıt boyutunu denetim altında tutmak için + kullanılır.

    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/server-wide.xml b/docs/manual/server-wide.xml index 57c31f48a54..15e511e4b0c 100644 --- a/docs/manual/server-wide.xml +++ b/docs/manual/server-wide.xml @@ -4,12 +4,12 @@ + + - + server-wide / . @@ -8,6 +9,7 @@ en ja - ko + ko + tr diff --git a/docs/manual/server-wide.xml.tr b/docs/manual/server-wide.xml.tr new file mode 100644 index 00000000000..fe25e19d738 --- /dev/null +++ b/docs/manual/server-wide.xml.tr @@ -0,0 +1,124 @@ + + + + + + + + + + + Sunucu Genelinde Yapılandırma + + +

    Bu belgede core modülü ile sağlanan ve sunucunun temel +işlemlerini yapılandırmakta kullanılan yönergelerden bazıları açıklanmıştır.

    +
    + +
    + Sunucu Kimliği + + + + ServerName + ServerAdmin + ServerSignature + ServerTokens + UseCanonicalName + UseCanonicalPhysicalPort + + + +

    ServerAdmin ve ServerTokens yönergeleri, hata iletileri gibi + sunucu tarafından üretilen belgelerde sunucu ile ilgili hangi bilgilerin + sunulacağını belirlerler. ServerTokens yönergesi sunucunun HTTP yanıt başlığı + alanının değerini belirler.

    + +

    ServerName, + UseCanonicalName ve + UseCanonicalPhysicalPort + yönergeleri, sunucu tarafından, özüne yönelik URL’leri nasıl + oluşturacağını saptamak için kullanılır. Örneğin bir istemci bir dizin + isteğinde bulunurken URL’nin sonuna bölü çizgisi eklemese bile + Apache’nin istemciyi bölü çizgisi ile bitirilmiş URL yoluna + yönlendirmesi gerekir; böylece istemci belge içindeki göreli + bağlantıları doğru şekilde çözümleyebilir.

    +
    + +
    + Dosyaların Yerleri + + + + CoreDumpDirectory + DocumentRoot + ErrorLog + LockFile + PidFile + ScoreBoardFile + ServerRoot + + + +

    Bu yönergeler Apache’nin doğru işlem yapması için gereksinim duyduğu + çeşitli dosyaların yerlerini belirlerler. Bölü çizgisi (/) ile + başlamayan dosya yolları kullanıldığında bu dosyaların yerlerinin + ServerRoot yönergesinde belirtilen + dizine göre belirtildiği varsayılır; root olmayan kullanıcılar + tarafından yazılabilen dosya yollarına dosya yerleştirmemeye dikkat + ediniz. Bu konuda daha ayrıntılı bilgi edinmek için güvenlik ipuçları + belgesine bakınız.

    +
    + +
    + Özkaynak Kullanımının Sınırlanması + + + + LimitRequestBody + LimitRequestFields + LimitRequestFieldsize + LimitRequestLine + RLimitCPU + RLimitMEM + RLimitNPROC + ThreadStackSize + + + +

    LimitRequest* yönergeleri, Apache’nin istemcilerden gelen + istekleri okumak için kullanacağı özkaynakların miktarları ile ilgili + sınırlamalar koymak için kullanılırlar. Bu değerleri sınırlamak + suretiyle bazı hizmet reddi saldırılarının etkileri azaltılabilir.

    + +

    RLimit* yönergeleri ise Apache’nin çocuk süreçleri + tarafından çatallanabilen özkaynakların miktarlarını sınırlamakta + kullanılırlar. Özellikle de CGI betikleri ve SSI çalıştırma komutları + tarafından kullanılan özkaynakları denetlemekte kullanılırlar.

    + +

    ThreadStackSize yönergesi + bazı platformlarda yığıt boyutunu denetim altında tutmak için + kullanılır.

    +
    +
    diff --git a/docs/manual/sitemap.html b/docs/manual/sitemap.html index 84947e10e65..dad6c83da55 100644 --- a/docs/manual/sitemap.html +++ b/docs/manual/sitemap.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: sitemap.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,10 +12,18 @@ Content-Language: es Content-type: text/html; charset=ISO-8859-1 -URI: sitemap.html.ja.euc-jp +URI: sitemap.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: sitemap.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: sitemap.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 + +URI: sitemap.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/sitemap.html.de b/docs/manual/sitemap.html.de index 118c395551a..f833c93c9e4 100644 --- a/docs/manual/sitemap.html.de +++ b/docs/manual/sitemap.html.de @@ -1,53 +1,64 @@ - -Seitenindex - Apache HTTP Server +Seitenindex - Apache HTTP Server Version 2.2 - - + + + +
    <-
    -
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Seitenindex

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - es  | + es  |  ja  | - ko 

    + ko  | + tr  | + zh-cn 

    -

    Diese Seite verzeichnet die zur Zeit verfügbaren Dokumente der -Dokumentation zum Apache HTTP Server Version 2.1.

    +

    Diese Seite verzeichnet die zur Zeit verfügbaren Dokumente der +Dokumentation zum Apache HTTP Server Version +2.2.

    top
    top
    top
    -

    Häufig gestellte Fragen (FAQ)

    -
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/sitemap.html.en b/docs/manual/sitemap.html.en index ba005bd1a5b..9b8f86c239c 100644 --- a/docs/manual/sitemap.html.en +++ b/docs/manual/sitemap.html.en @@ -1,40 +1,50 @@ - -Sitemap - Apache HTTP Server +Sitemap - Apache HTTP Server Version 2.2 - - + + + +
    <-
    -
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Sitemap

    Available Languages:  de  |  en  | - es  | + es  |  ja  | - ko 

    + ko  | + tr  | + zh-cn 

    This page lists the currently available documents of the -Apache HTTP Server Version 2.1 Documentation.

    +Apache HTTP Server Version 2.2 +Documentation.

    top
    top
    top
    -

    Apache Server Frequently Asked Questions

    -
    top

    Glossary and Index

    @@ -253,10 +282,33 @@ Server on HPUX

    Available Languages:  de  |  en  | - es  | + es  |  ja  | - ko 

    -
    + ko  | + tr  | + zh-cn 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/sitemap.html.es b/docs/manual/sitemap.html.es index 14683f4d9b6..5741f39ff74 100644 --- a/docs/manual/sitemap.html.es +++ b/docs/manual/sitemap.html.es @@ -1,121 +1,130 @@ - -Mapa de este sitio web - Servidor HTTP Apache +Mapa de este sitio web - Servidor HTTP Apache Versión 2.2 - - + + + +
    <-
    -

    Mapa de este sitio web

    +Apache > Servidor HTTP > Documentación > Versión 2.2
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Mapa de este sitio web

    Idiomas disponibles:  de  |  en  | - es  | + es  |  ja  | - ko 

    + ko  | + tr  | + zh-cn 

    -
    Esta traducción podría estar - obsoleta. Consulte la versión en inglés de la - documentación para comprobar si se han producido cambios +
    Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios recientemente.
    -

    Esta página contiene la lista con los documentos actualmente -disponibles de la Versión 2.1 de la Documentación del -Servidor HTTP Apache.

    +

    Esta página contiene la lista con los documentos actualmente +disponibles de la Versión 2.2 de la +Documentación del Servidor HTTP Apache.

    top
    -

    Notas de la Versión

    +
    top
    top
    -

    Documuentación sobre Hosting Virtual en Apache

    -

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/ssl/ssl_faq.xml b/docs/manual/ssl/ssl_faq.xml index 0b759dfe382..dd10dcbd19d 100644 --- a/docs/manual/ssl/ssl_faq.xml +++ b/docs/manual/ssl/ssl_faq.xml @@ -4,12 +4,12 @@ -
    About Installation +
    Installation -
    When I access my website the first time via HTTPS I get a core dump? -

    There can be a lot of reasons why a core dump can occur, of course. - Ranging from buggy third-party modules, over buggy vendor libraries up to - a buggy mod_ssl version. But the above situation is often caused by old or - broken vendor DBM libraries. To solve it either build mod_ssl with the - built-in SDBM library (specify --enable-rule=SSL_SDBM at the - APACI command line) or switch from SSLSessionCache dbm: to the - newer SSLSessionCache shm:'' variant (after you have rebuilt - Apache with MM, of course).

    -
    - -
    When I startup Apache I get permission errors related to SSLMutex? -

    When you receive entries like ``mod_ssl: Child could not open +

    Why do I get permission errors related to + SSLMutex when I start Apache? +

    Errors such as ``mod_ssl: Child could not open SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (System error follows) - [...] System: Permission denied (errno: 13)'' this is usually - caused by to restrictive permissions on the parent directories. + [...] System: Permission denied (errno: 13)'' are usually + caused by overly restrictive permissions on the parent directories. Make sure that all parent directories (here /opt, /opt/apache and /opt/apache/logs) have the x-bit - set at least for the UID under which Apache's children are running (see - the User directive of Apache).

    -
    - -
    When I use the MM library and the shared memory cache each process grows -1.5MB according to `top' although I specified 512000 as the cache size? -

    The additional 1MB are caused by the global shared memory pool Apache - allocates for all modules and which is not used by mod_ssl for - various reasons. So the actually allocated shared memory is always - 1MB more than what you specify on SSLSessionCache. - But don't be confused by the display of `top': although is - indicates that each process grow, this is not reality, of - course. Instead the additional memory consumption is shared by - all processes, i.e. the 1.5MB are allocated only once per Apache - instance and not once per Apache server process.

    + set for, at minimum, the UID under which Apache's children are running (see + the User directive).

    -
    When I fire up the server, mod_ssl stops with the error -"Failed to generate temporary 512 bit RSA private key", why? -

    Cryptographic software needs a source of unpredictable data +

    Why does mod_ssl stop with the error + "Failed to generate temporary 512 bit RSA private key" when I start + Apache? +

    Cryptographic software needs a source of unpredictable data to work correctly. Many open source operating systems provide a "randomness device" that serves this purpose (usually named /dev/random). On other systems, applications have to @@ -193,186 +133,243 @@ author.

    appropriate data before generating keys or performing public key encryption. As of version 0.9.5, the OpenSSL functions that need randomness report an error if the PRNG has not been seeded with - at least 128 bits of randomness. So mod_ssl has to provide enough - entropy to the PRNG to work correctly. For this one has to use the - SSLRandomSeed directives.

    + at least 128 bits of randomness.

    +

    To prevent this error, mod_ssl has to provide + enough entropy to the PRNG to allow it to work correctly. This can + be done via the SSLRandomSeed + directive.

    -
    About Configuration +
    Configuration -
    Is it possible to provide HTTP and HTTPS with a single server? -

    Yes, HTTP and HTTPS use different server ports, so there is no direct - conflict between them. Either run two separate server instances (one binds - to port 80, the other to port 443) or even use Apache's elegant virtual - hosting facility where you can easily create two virtual servers which - Apache dispatches: one responding to port 80 and speaking HTTP and one - responding to port 443 speaking HTTPS.

    +
    Is it possible to provide HTTP and HTTPS + from the same server? +

    Yes. HTTP and HTTPS use different server ports (HTTP binds to + port 80, HTTPS to port 443), so there is no direct conflict between + them. You can either run two separate server instances bound to + these ports, or use Apache's elegant virtual hosting facility to + create two virtual servers, both served by the same instance of Apache + - one responding over HTTP to requests on port 80, and the other + responding over HTTPS to requests on port 443.

    -
    I know that HTTP is on port 80, but where is HTTPS? +
    Which port does HTTPS use?

    You can run HTTPS on any port, but the standards specify port 443, which is where any HTTPS compliant browser will look by default. You can force - your browser to look on a different port by specifying it in the URL like - this (for port 666): https://secure.server.dom:666/

    + your browser to look on a different port by specifying it in the URL. For + example, if your server is set up to serve pages over HTTPS on port 8080, + you can access them at https://example.com:8080/

    -
    How can I speak HTTPS manually for testing purposes? +
    How do I speak HTTPS manually for testing purposes?

    While you usually just use

    $ telnet localhost 80
    GET / HTTP/1.0
    - -

    for simple testing the HTTP protocol of Apache, it's not so easy for - HTTPS because of the SSL protocol between TCP and HTTP. But with the - help of OpenSSL's s_client command you can do a similar - check even for HTTPS:

    +

    for simple testing of Apache via HTTP, it's not so easy for + HTTPS because of the SSL protocol between TCP and HTTP. With the + help of OpenSSL's s_client command, however, you can + do a similar check via HTTPS:

    $ openssl s_client -connect localhost:443 -state -debug
    GET / HTTP/1.0
    - -

    Before the actual HTTP response you receive detailed information about the - SSL handshake. For a more general command line client which directly - understands both the HTTP and HTTPS scheme, can perform GET and POST - methods, can use a proxy, supports byte ranges, etc. you should have a - look at nifty cURL - tool. With it you can directly check if your Apache is running fine on - Port 80 and 443 as following:

    - + +

    Before the actual HTTP response you will receive detailed + information about the SSL handshake. For a more general command + line client which directly understands both HTTP and HTTPS, can + perform GET and POST operations, can use a proxy, supports byte + ranges, etc. you should have a look at the nifty + cURL tool. Using this, you can + check that Apache is responding correctly to requests via HTTP and + HTTPS as follows:

    + $ curl http://localhost/
    $ curl https://localhost/
    -
    Why does the connection hang when I connect to my SSL-aware Apache server? -

    Because you connected with HTTP to the HTTPS port, i.e. you used an URL of - the form ``http://'' instead of ``https://''. - This also happens the other way round when you connect via HTTPS to a HTTP - port, i.e. when you try to use ``https://'' on a server that - doesn't support SSL (on this port). Make sure you are connecting to a - virtual server that supports SSL, which is probably the IP associated with - your hostname, not localhost (127.0.0.1).

    -
    +
    Why does the connection hang when I connect + to my SSL-aware Apache server? -
    Why do I get ``Connection Refused'' messages when trying to access my freshly -installed Apache+mod_ssl server via HTTPS? -

    There can be various reasons. Some of the common mistakes is that people - start Apache with just apachectl start (or - httpd) instead of apachectl startssl (or - httpd -DSSL. Or you're configuration is not correct. At - least make sure that your Listen - directives match your VirtualHost - directives. And if all fails, please do yourself a favor and start over with the - default configuration mod_ssl provides you.

    +

    This can happen when you try to connect to a HTTPS server (or virtual + server) via HTTP (eg, using http://example.com/ instead of + https://example.com). It can also happen when trying to + connect via HTTPS to a HTTP server (eg, using + https://example.com/ on a server which doesn't support HTTPS, + or which supports it on a non-standard port). Make sure that you're + connecting to a (virtual) server that supports SSL.

    + +
    Why do I get ``Connection Refused'' messages, + when trying to access my newly installed Apache+mod_ssl server via HTTPS? +

    + This error can be caused by an incorrect configuration. + Please make sure that your Listen directives match your + VirtualHost + directives. If all else fails, please start afresh, using the default + configuration provided by mod_ssl.

    -
    In my CGI programs and SSI scripts the various documented -<code>SSL_XXX</code> variables do not exist. Why? -

    Just make sure you have ``SSLOptions +StdEnvVars'' +

    Why are the <code>SSL_XXX</code> variables + not available to my CGI & SSI scripts? +

    Please make sure you have ``SSLOptions +StdEnvVars'' enabled for the context of your CGI/SSI requests.

    -How can I use relative hyperlinks to switch between HTTP and -HTTPS? -

    Usually you have to use fully-qualified hyperlinks because - you have to change the URL scheme. But with the help of some URL - manipulations through mod_rewrite you can achieve the same effect while - you still can use relative URLs:

    +How can I switch between HTTP and HTTPS in relative + hyperlinks? +

    Usually, to switch between HTTP and HTTPS, you have to use + fully-qualified hyperlinks (because you have to change the URL + scheme). Using mod_rewrite however, you can + manipulate relative hyperlinks, to achieve the same effect.

    RewriteEngine on
    - RewriteRule ^/(.*):SSL$ https://%{SERVER_NAME}/$1 [R,L]
    - RewriteRule ^/(.*):NOSSL$ http://%{SERVER_NAME}/$1 [R,L] + RewriteRule ^/(.*)_SSL$ https://%{SERVER_NAME}/$1 [R,L]
    + RewriteRule ^/(.*)_NOSSL$ http://%{SERVER_NAME}/$1 [R,L]

    This rewrite ruleset lets you use hyperlinks of the form - <a href="document.html:SSL">

    + <a href="document.html_SSL">, to switch to HTTPS + in a relative link. (Replace SSL with NOSSL to switch to HTTP.)

    -
    About Certificates +
    Certificates
    What are RSA Private Keys, CSRs and Certificates? -

    The RSA private key file is a digital file that you can use to decrypt +

    An RSA private key file is a digital file that you can use to decrypt messages sent to you. It has a public component which you distribute (via your Certificate file) which allows people to encrypt those messages to - you. A Certificate Signing Request (CSR) is a digital file which contains + you.

    +

    A Certificate Signing Request (CSR) is a digital file which contains your public key and your name. You send the CSR to a Certifying Authority - (CA) to be converted into a real Certificate. A Certificate contains your + (CA), who will convert it into a real Certificate, by signing it.

    +

    A Certificate contains your RSA public key, your name, the name of the CA, and is digitally signed by - your CA. Browsers that know the CA can verify the signature on that + the CA. Browsers that know the CA can verify the signature on that Certificate, thereby obtaining your RSA public key. That enables them to - send messages which only you can decrypt. - See the Introduction chapter for a general + send messages which only you can decrypt.

    +

    See the Introduction chapter for a general description of the SSL protocol.

    -
    Seems like there is a difference on startup between the original Apache and an SSL-aware Apache? -

    Yes, in general, starting Apache with a built-in mod_ssl is just like - starting an unencumbered Apache, except for the fact that when you have a - pass phrase on your SSL private key file. Then a startup dialog pops up - asking you to enter the pass phrase.

    +
    Is there a difference on startup between + a non-SSL-aware Apache and an SSL-aware Apache? +

    Yes. In general, starting Apache with + mod_ssl built-in is just like starting Apache + without it. However, if you have a passphrase on your SSL private + key file, a startup dialog will pop up which asks you to enter the + pass phrase.

    -

    To type in the pass phrase manually when starting the server can be - problematic, for instance when starting the server from the system boot - scripts. As an alternative to this situation you can follow the steps - below under ``How can I get rid of the pass-phrase dialog at Apache - startup time?''.

    +

    Having to manually enter the passphrase when starting the server + can be problematic - for example, when starting the server from the + system boot scripts. In this case, you can follow the steps + below to remove the passphrase from + your private key. Bear in mind that doing so brings additional security + risks - proceed with caution!

    -
    Ok, I've got my server installed and want to create a real SSL -server Certificate for it. How do I do it? -

    Here is a step-by-step description:

    - +
    How do I create a self-signed SSL +Certificate for testing purposes?
      -
    1. Make sure OpenSSL is really installed and in your PATH. - But some commands even work ok when you just run the - ``openssl'' program from within the OpenSSL source tree as - ``./apps/openssl''.
      +
    2. Make sure OpenSSL is installed and in your PATH.
      +
      +
    3. +
    4. Run the following command, to create server.key and + server.crt files:
      + $ openssl req -new -x509 -nodes -out server.crt + -keyout server.key
      + These can be used as follows in your httpd.conf + file: +
      +             SSLCertificateFile    /path/to/this/server.crt
      +             SSLCertificateKeyFile /path/to/this/server.key
      +	
      +
    5. +
    6. It is important that you are aware that this + server.key does not have any passphrase. + To add a passphrase to the key, you should run the following + command, and enter & verify the passphrase as requested.
      +

      $ openssl rsa -des3 -in server.key -out + server.key.new
      + $ mv server.key.new server.key

      + Please backup the server.key file, and the passphrase + you entered, in a secure location. +
    7. +
    +
    -
    +
    How do I create a real SSL Certificate? +

    Here is a step-by-step description:

    +
      +
    1. Make sure OpenSSL is installed and in your PATH. +
      +
    2. Create a RSA private key for your Apache server (will be Triple-DES encrypted and PEM formatted):

      $ openssl genrsa -des3 -out server.key 1024

      - Please backup this server.key file and remember the - pass-phrase you had to enter at a secure location. - You can see the details of this RSA private key via the command:
      + Please backup this server.key file and the + pass-phrase you entered in a secure location. + You can see the details of this RSA private key by using the command:

      $ openssl rsa -noout -text -in server.key

      - And you could create a decrypted PEM version (not recommended) - of this RSA private key via:
      + If necessary, you can also create a decrypted PEM version (not + recommended) of this RSA private key with:

      $ openssl rsa -in server.key -out server.key.unsecure

      @@ -387,43 +384,39 @@ server Certificate for it. How do I do it? server when OpenSSL prompts you for the "CommonName", i.e. when you generate a CSR for a website which will be later accessed via https://www.foo.dom/, enter "www.foo.dom" here. - You can see the details of this CSR via the command
      + You can see the details of this CSR by using

      $ openssl req -noout -text -in server.csr

    3. You now have to send this Certificate Signing Request (CSR) to - a Certifying Authority (CA) for signing. The result is then a real - Certificate which can be used for Apache. Here you have two options: - First you can let the CSR sign by a commercial CA like Verisign or - Thawte. Then you usually have to post the CSR into a web form, pay for - the signing and await the signed Certificate you then can store into a - server.crt file. For more information about commercial CAs have a look - at the following locations:
      + a Certifying Authority (CA) to be signed. Once the CSR has been + signed, you will have a real Certificate, which can be used by + Apache. You can have a CSR signed by a commercial CA, or you can + create your own CA to sign it.
      + Commercial CAs usually ask you to post the CSR into a web form, + pay for the signing, and then send a signed Certificate, which + you can store in a server.crt file. For more information about + commercial CAs see the following locations:

      1. Verisign
        - http://digitalid.verisign.com/server/apacheNotice.htm
      2. -
      3. Thawte Consulting
        - - http://www.thawte.com/certs/server/request.html - +
      4. Thawte
        + http://www.thawte.com/
      5. -
      6. CertiSign Certificadora Digital Ltda.
        http://www.certisign.com.br
      7. IKS GmbH
        - - - http://www.iks-jena.de/produkte/ca/ + + http://www.iks-jena.de/leistungen/ca/
      8. Uptime Commerce Ltd.
        @@ -432,24 +425,24 @@ server Certificate for it. How do I do it?
      9. BelSign NV/SA
        - http://www.belsign.be
      - Second you can use your own CA and now have to sign the CSR yourself by - this CA. Read the next answer in this FAQ on how to sign a CSR with - your CA yourself. - You can see the details of the received Certificate via the command:
      + For details on how to create your own CA, and use this to sign + a CSR, see below.
      + + Once your CSR has been signed, you can see the details of the + Certificate as follows:

      $ openssl x509 -noout -text -in server.crt
    4. -
    5. Now you have two files: server.key and - server.crt. These now can be used as following inside your - Apache's httpd.conf file: +
    6. You should now have two files: server.key and + server.crt. These can be used as follows in your + httpd.conf file:
              SSLCertificateFile    /path/to/this/server.crt
              SSLCertificateKeyFile /path/to/this/server.key
      @@ -460,152 +453,139 @@ server Certificate for it. How do I do it?
           
    -
    How can I create and use my own Certificate Authority (CA)? +
    How do I create and use my own Certificate Authority (CA)?

    The short answer is to use the CA.sh or CA.pl - - script provided by OpenSSL. The long and manual answer is this:

    + script provided by OpenSSL. Unless you have a good reason not to, + you should use these for preference. If you cannot, you can create a + self-signed Certificate as follows:

      -
    1. Create a RSA private key for your CA +
    2. Create a RSA private key for your server (will be Triple-DES encrypted and PEM formatted):

      - $ openssl genrsa -des3 -out ca.key 1024
      + $ openssl genrsa -des3 -out server.key 1024

      - Please backup this ca.key file and remember the - pass-phrase you currently entered at a secure location. - You can see the details of this RSA private key via the command
      - + Please backup this server.key file and the + pass-phrase you entered in a secure location. + You can see the details of this RSA private key by using the + command:

      - $ openssl rsa -noout -text -in ca.key
      + $ openssl rsa -noout -text -in server.key

      - And you can create a decrypted PEM version (not recommended) of this - private key via:
      + If necessary, you can also create a decrypted PEM version (not + recommended) of this RSA private key with:

      - $ openssl rsa -in ca.key -out ca.key.unsecure
      + $ openssl rsa -in server.key -out server.key.unsecure

      -
    3. -
    4. Create a self-signed CA Certificate (X509 structure) - with the RSA key of the CA (output will be PEM formatted):
      +
    5. Create a self-signed Certificate (X509 structure) + with the RSA key you just created (output will be PEM formatted):

      - $ openssl req -new -x509 -days 365 -key ca.key -out ca.crt
      + $ openssl req -new -x509 -nodes -sha1 -days 365 + -key server.key -out server.crt

      - You can see the details of this Certificate via the command:
      + This signs the server CSR and results in a server.crt file.
      + You can see the details of this Certificate using:

      - - $ openssl x509 -noout -text -in ca.crt
      + $ openssl x509 -noout -text -in server.crt

    6. -
    7. Prepare a script for signing which is needed because - the ``openssl ca'' command has some strange requirements - and the default OpenSSL config doesn't allow one easily to use - ``openssl ca'' directly. So a script named - sign.sh is distributed with the mod_ssl distribution - (subdir pkg.contrib/). Use this script for signing. -
    8. - -
    9. Now you can use this CA to sign server CSR's in order to create real - SSL Certificates for use inside an Apache webserver (assuming - you already have a server.csr at hand):
      -
      - $ ./sign.sh server.csr
      -
      - This signs the server CSR and results in a server.crt file.
      - -
    -
    How can I change the pass-phrase on my private key file? -

    You simply have to read it with the old pass-phrase and write it again - by specifying the new pass-phrase. You can accomplish this with the following +

    You simply have to read it with the old pass-phrase and write it again, + specifying the new pass-phrase. You can accomplish this with the following commands:

    $ openssl rsa -des3 -in server.key -out server.key.new
    $ mv server.key.new server.key

    -

    Here you're asked two times for a PEM pass-phrase. At the first - prompt enter the old pass-phrase and at the second prompt - enter the new pass-phrase.

    +

    The first time you're asked for a PEM pass-phrase, you should + enter the old pass-phrase. After that, you'll be asked again to + enter a pass-phrase - this time, use the new pass-phrase. If you + are asked to verify the pass-phrase, you'll need to enter the new + pass-phrase a second time.

    How can I get rid of the pass-phrase dialog at Apache startup time? -

    The reason why this dialog pops up at startup and every re-start +

    The reason this dialog pops up at startup and every re-start is that the RSA private key inside your server.key file is stored in - encrypted format for security reasons. The pass-phrase is needed to be - able to read and parse this file. When you can be sure that your server is - secure enough you perform two steps:

    - + encrypted format for security reasons. The pass-phrase is needed to decrypt + this file, so it can be read and parsed. Removing the pass-phrase + removes a layer of security from your server - proceed with caution!

    1. Remove the encryption from the RSA private key (while - preserving the original file):
      + keeping a backup copy of the original file):

      $ cp server.key server.key.org
      $ openssl rsa -in server.key.org -out server.key

    2. -
    3. Make sure the server.key file is now only readable by root:
      +
    4. Make sure the server.key file is only readable by root:

      $ chmod 400 server.key

    -

    Now server.key will contain an unencrypted copy of the key. - If you point your server at this file it will not prompt you for a +

    Now server.key contains an unencrypted copy of the key. + If you point your server at this file, it will not prompt you for a pass-phrase. HOWEVER, if anyone gets this key they will be able to - impersonate you on the net. PLEASE make sure that the permissions on that - file are really such that only root or the web server user can read it + impersonate you on the net. PLEASE make sure that the permissions on this + file are such that only root or the web server user can read it (preferably get your web server to start as root but run as another - server, and have the key readable only by root).

    + user, and have the key readable only by root).

    As an alternative approach you can use the ``SSLPassPhraseDialog - exec:/path/to/program'' facility. But keep in mind that this is + exec:/path/to/program'' facility. Bear in mind that this is neither more nor less secure, of course.

    How do I verify that a private key matches its Certificate? -

    The private key contains a series of numbers. Two of those numbers form - the "public key", the others are part of your "private key". The "public - key" bits are also embedded in your Certificate (we get them from your - CSR). To check that the public key in your cert matches the public - portion of your private key, you need to view the cert and the key and - compare the numbers. To view the Certificate and the key run the - commands:

    +

    A private key contains a series of numbers. Two of these numbers form + the "public key", the others are part of the "private key". The "public + key" bits are included when you generate a CSR, and subsequently form + part of the associated Certificate.

    +

    To check that the public key in your Certificate matches the public + portion of your private key, you simply need to compare these numbers. + To view the Certificate and the key run the commands:

    $ openssl x509 -noout -text -in server.crt
    $ openssl rsa -noout -text -in server.key

    The `modulus' and the `public exponent' portions in the key and the - Certificate must match. But since the public exponent is usually 65537 - and it's bothering comparing long modulus you can use the following - approach:

    - + Certificate must match. As the public exponent is usually 65537 + and it's difficult to visually check that the long modulus numbers + are the same, you can use the following approach:

    $ openssl x509 -noout -modulus -in server.crt | openssl md5
    $ openssl rsa -noout -modulus -in server.key | openssl md5

    -

    And then compare these really shorter numbers. With overwhelming - probability they will differ if the keys are different. BTW, if I want to - check to which key or certificate a particular CSR belongs you can compute

    +

    This leaves you with two rather shorter numbers to compare. It is, + in theory, possible that these numbers may be the same, without the + modulus numbers being the same, but the chances of this are + overwhelmingly remote.

    +

    Should you wish to check to which key or certificate a particular + CSR belongs you can perform the same calculation on the CSR as + follows:

    $ openssl req -noout -modulus -in server.csr | openssl md5

    -
    What does it mean when my connections fail with an "alert bad certificate" -error? -

    Usually when you see errors like OpenSSL: error:14094412: SSL +

    Why do connections fail with an "alert +bad certificate" error? +

    Errors such as OpenSSL: error:14094412: SSL routines:SSL3_READ_BYTES:sslv3 alert bad certificate in the SSL - logfile, this means that the browser was unable to handle the server - certificate/private-key which perhaps contain a RSA-key not equal to 1024 - bits. For instance Netscape Navigator 3.x is one of those browsers.

    + logfile, are usually caused by a browser which is unable to handle the server + certificate/private-key. For example, Netscape Navigator 3.x is + unable to handle RSA key lengths not equal to 1024 bits.

    Why does my 2048-bit private key not work? -

    The private key sizes for SSL must be either 512 or 1024 for compatibility +

    The private key sizes for SSL must be either 512 or 1024 bits, for compatibility with certain web browsers. A keysize of 1024 bits is recommended because keys larger than 1024 bits are incompatible with some versions of Netscape Navigator and Microsoft Internet Explorer, and with other browsers that @@ -617,157 +597,189 @@ SSLeay version 0.8 to 0.9?

    The CA certificates under the path you configured with SSLCACertificatePath are found by SSLeay through hash symlinks. These hash values are generated by the `openssl x509 -noout - -hash' command. But the algorithm used to calculate the hash for a - certificate has changed between SSLeay 0.8 and 0.9. So you have to remove - all old hash symlinks and re-create new ones after upgrading. Use the - Makefile mod_ssl placed into this directory.

    + -hash
    ' command. However, the algorithm used to calculate the hash for a + certificate changed between SSLeay 0.8 and 0.9. You will need to remove + all old hash symlinks and create new ones after upgrading. Use the + Makefile provided by mod_ssl.

    How can I convert a certificate from PEM to DER format? -

    The default certificate format for SSLeay/OpenSSL is PEM, which actually - is Base64 encoded DER with header and footer lines. For some applications +

    The default certificate format for SSLeay/OpenSSL is PEM, which is simply + Base64 encoded DER, with header and footer lines. For some applications (e.g. Microsoft Internet Explorer) you need the certificate in plain DER format. You can convert a PEM file cert.pem into the - corresponding DER file cert.der with the following command: + corresponding DER file cert.der using the following command: $ openssl x509 -in cert.pem -out cert.der -outform DER

    -
    I try to install a Verisign certificate. Why can't I find neither the -<code>getca</code> nor <code>getverisign</code> programs Verisign mentions? -

    This is because Verisign has never provided specific instructions - for Apache+mod_ssl. Rather they tell you what you should do - if you were using C2Net's Stronghold (a commercial Apache - based server with SSL support). The only thing you have to do - is to save the certificate into a file and give the name of - that file to the SSLCertificateFile directive. - Remember that you need to give the key file in as well (see - SSLCertificateKeyFile directive). For a better - CA-related overview on SSL certificate fiddling you can look at Thawte's mod_ssl instructions.

    +
    Why can't I find the +<code>getca</code> or <code>getverisign</code> programs mentioned by +Verisign, for installing my Verisign certificate? +

    Verisign has never provided specific instructions + for Apache+mod_ssl. The instructions provided are for C2Net's + Stronghold (a commercial Apache based server with SSL support).

    +

    To install your certificate, all you need to do is to save the + certificate to a file, and give the name of that file to the + SSLCertificateFile directive. + You will also need to give it the key file. For more information, + see the SSLCertificateKeyFile + directive.

    -
    Can I use the Server Gated Cryptography (SGC) facility (aka Verisign Global -ID) also with mod_ssl? -

    Yes, mod_ssl since version 2.1 supports the SGC facility. You don't have - to configure anything special for this, just use a Global ID as your - server certificate. The step up of the clients are then - automatically handled by mod_ssl under run-time. For details please read - the README.GlobalID document in the mod_ssl distribution.

    +
    Can I use the Server Gated Cryptography (SGC) +facility (aka Verisign Global ID) with mod_ssl? +

    Yes. mod_ssl has included support for the SGC + facility since version 2.1. No special configuration is required - + just use the Global ID as your server certificate. The + step up of the clients is then automatically handled by + mod_ssl at run-time.

    -
    After I have installed my new Verisign Global ID server certificate, the -browsers complain that they cannot verify the server certificate? -

    That is because Verisign uses an intermediate CA certificate between - the root CA certificate (which is installed in the browsers) and - the server certificate (which you installed in the server). You - should have received this additional CA certificate from Verisign. - If not, complain to them. Then configure this certificate with the - SSLCertificateChainFile directive in the server. This - makes sure the intermediate CA certificate is send to the browser - and this way fills the gap in the certificate chain.

    +
    Why do browsers complain that they cannot +verify my server certificate? +

    One reason this might happen is because your server certificate is signed + by an intermediate CA. Various CAs, such as Verisign or Thawte, have started + signing certificates not with their root certificate but with intermediate + certificates.

    + +

    Intermediate CA certificates lie between the root CA certificate (which is + installed in the browsers) and the server certificate (which you installed + on the server). In order for the browser to be able to traverse and verify + the trust chain from the server certificate to the root certificate it + needs need to be given the intermediate certificates. The CAs should + be able to provide you such intermediate certificate packages that can be + installed on the server.

    + +

    You need to include those intermediate certificates with the + SSLCertificateChainFile + directive.

    -
    About SSL Protocol +
    The SSL Protocol -
    Why do I get lots of random SSL protocol errors under heavy server load? +
    Why do I get lots of random SSL protocol +errors under heavy server load?

    There can be a number of reasons for this, but the main one is problems with the SSL session Cache specified by the SSLSessionCache directive. The DBM session - cache is most likely the source of the problem, so trying the SHM session cache or - no cache at all may help.

    + cache is the most likely source of the problem, so using the SHM session cache (or + no cache at all) may help.

    -
    Why has my webserver a higher load now that I run SSL there? -

    Because SSL uses strong cryptographic encryption and this needs a lot of - number crunching. And because when you request a webpage via HTTPS even - the images are transferred encrypted. So, when you have a lot of HTTPS - traffic the load increases.

    +
    Why does my webserver have a higher load, now +that it serves SSL encrypted traffic? +

    SSL uses strong cryptographic encryption, which necessitates a lot of + number crunching. When you request a webpage via HTTPS, everything (even + the images) is encrypted before it is transferred. So increased HTTPS + traffic leads to load increases.

    -
    Often HTTPS connections to my server require up to 30 seconds for establishing -the connection, although sometimes it works faster? -

    Usually this is caused by using a /dev/random device for - SSLRandomSeed which is blocking in read(2) calls if not - enough entropy is available. Read more about this problem in the reference - chapter under SSLRandomSeed.

    +
    Why do HTTPS connections to my server +sometimes take up to 30 seconds to establish a connection? +

    This is usually caused by a /dev/random device for + SSLRandomSeed which blocks the + read(2) call until enough entropy is available to service the + request. More information is available in the reference + manual for the SSLRandomSeed + directive.

    What SSL Ciphers are supported by mod_ssl? -

    Usually just all SSL ciphers which are supported by the - version of OpenSSL in use (can depend on the way you built - OpenSSL). Typically this at least includes the following:

    +

    Usually, any SSL ciphers supported by the version of OpenSSL in use, + are also supported by mod_ssl. Which ciphers are + available can depend on the way you built OpenSSL. Typically, at + least the following ciphers are supported:

    1. RC4 with MD5
    2. -
    3. RC4 with MD5 (export version restricted to 40-bit key)
    4. RC2 with MD5
    5. RC2 with MD5 (export version restricted to 40-bit key)
    6. IDEA with MD5
    7. DES with MD5
    8. Triple-DES with MD5
    9. -
    -

    To determine the actual list of supported ciphers you can - run the following command:

    +

    To determine the actual list of ciphers available, you should run + the following:

    $ openssl ciphers -v
    -
    I want to use Anonymous Diffie-Hellman (ADH) ciphers, but I always get ``no -shared cipher'' errors? -

    In order to use Anonymous Diffie-Hellman (ADH) ciphers, it is not enough - to just put ``ADH'' into your SSLCipherSuite. - Additionally you have to build OpenSSL with - ``-DSSL_ALLOW_ADH''. Because per default OpenSSL does not - allow ADH ciphers for security reasons. So if you are actually enabling - these ciphers make sure you are informed about the side-effects.

    +
    Why do I get ``no shared cipher'' errors, when +trying to use Anonymous Diffie-Hellman (ADH) ciphers? +

    By default, OpenSSL does not allow ADH ciphers, for security + reasons. Please be sure you are aware of the potential side-effects + if you choose to enable these ciphers.

    +

    In order to use Anonymous Diffie-Hellman (ADH) ciphers, you must + build OpenSSL with ``-DSSL_ALLOW_ADH'', and then add + ``ADH'' into your SSLCipherSuite.

    -
    I always just get a 'no shared ciphers' error if -I try to connect to my freshly installed server? -

    Either you have messed up your SSLCipherSuite +

    Why do I get a 'no shared ciphers' +error when connecting to my newly installed server? +

    Either you have made a mistake with your + SSLCipherSuite directive (compare it with the pre-configured example in - httpd.conf-dist) or you have chosen the DSA/DH + httpd.conf-dist) or you chose to use DSA/DH algorithms instead of RSA when you generated your private key - and ignored or overlooked the warnings. If you have chosen - DSA/DH, then your server no longer speaks RSA-based SSL ciphers - (at least not until you also configure an additional RSA-based - certificate/key pair). But current browsers like NS or IE only speak - RSA ciphers. The result is the "no shared ciphers" error. To fix - this, regenerate your server certificate/key pair and this time - choose the RSA algorithm.

    + and ignored or overlooked the warnings. If you have chosen + DSA/DH, then your server cannot communicate using RSA-based SSL + ciphers (at least until you configure an additional RSA-based + certificate/key pair). Modern browsers like NS or IE can only + communicate over SSL using RSA ciphers. The result is the + "no shared ciphers" error. To fix this, regenerate your server + certificate/key pair, using the RSA algorithm.

    Why can't I use SSL with name-based/non-IP-based virtual hosts? -

    The reason is very technical. Actually it's some sort of a chicken and - egg problem: The SSL protocol layer stays below the HTTP protocol layer - and encapsulates HTTP. When an SSL connection (HTTPS) is established +

    The reason is very technical, and a somewhat "chicken and egg" problem. + The SSL protocol layer stays below the HTTP protocol layer and + encapsulates HTTP. When an SSL connection (HTTPS) is established Apache/mod_ssl has to negotiate the SSL protocol parameters with the - client. For this mod_ssl has to consult the configuration of the virtual + client. For this, mod_ssl has to consult the configuration of the virtual server (for instance it has to look for the cipher suite, the server - certificate, etc.). But in order to dispatch to the correct virtual server - Apache has to know the Host HTTP header field. For this the + certificate, etc.). But in order to go to the correct virtual server + Apache has to know the Host HTTP header field. To do this, the HTTP request header has to be read. This cannot be done before the SSL - handshake is finished. But the information is already needed at the SSL - handshake phase. Bingo!

    + handshake is finished, but the information is needed in order to + complete the SSL handshake phase. See the next question for how to + circumvent this issue.

    + +

    Note that if you have a wildcard SSL certificate, or a + certificate that has multiple hostnames on it using subjectAltName + fields, you can use SSL on name-based virtual hosts without further + workarounds.

    Why is it not possible to use Name-Based @@ -778,20 +790,33 @@ Virtual Hosting to identify different SSL virtual hosts? SSL, it seems natural to assume that the same method can be used to have lots of different SSL virtual hosts on the same server.

    -

    It comes as rather a shock to learn that it is impossible.

    +

    It is possible, but only if using a 2.2.12 or later web server, + built with 0.9.8j or later OpenSSL. This is because it requires a + feature that only the most recent revisions of the SSL + specification added, called Server Name Indication (SNI).

    + +

    Note that if you have a wildcard SSL certificate, or a + certificate that has multiple hostnames on it using subjectAltName + fields, you can use SSL on name-based virtual hosts without further + workarounds.

    The reason is that the SSL protocol is a separate layer which - encapsulates the HTTP protocol. So the problem is that the SSL session - is a separate transaction that takes place before the HTTP session even - starts. Therefore all the server receives is an SSL request on IP - address X and port Y (usually 443). Since the SSL request does not - contain any Host: field, the server has no way to decide which SSL - virtual host to use. Usually, it will just use the first one it finds - that matches the port and IP address.

    + encapsulates the HTTP protocol. So the SSL session is a separate + transaction, that takes place before the HTTP session has begun. + The server receives an SSL request on IP address X and port Y + (usually 443). Since the SSL request did not contain any Host: + field, the server had no way to decide which SSL virtual host to use. + Usually, it just used the first one it found which matched the + port and IP address specified.

    + +

    If you are using a version of the web server and OpenSSL that + support SNI, though, and the client's browser also supports SNI, + then the hostname is included in the original SSL request, and the + web server can select the correct SSL virtual host.

    You can, of course, use Name-Based Virtual Hosting to identify many - non-SSL virtual hosts (all on port 80, for example) and then you can - have no more than 1 SSL virtual host (on port 443). But if you do this, + non-SSL virtual hosts (all on port 80, for example) and then + have a single SSL virtual host (on port 443). But if you do this, you must make sure to put the non-SSL port number on the NameVirtualHost directive, e.g.

    @@ -799,89 +824,88 @@ Virtual Hosting to identify different SSL virtual hosts? NameVirtualHost 192.168.1.1:80 -

    Other workaround solutions are:

    +

    Other workaround solutions include:

    -

    Use separate IP addresses for different SSL hosts. - Use different port numbers for different SSL hosts.

    +

    Using separate IP addresses for different SSL hosts. + Using different port numbers for different SSL hosts.

    How do I get SSL compression working? -

    Although SSL compression negotiation was already defined in the specification -of SSLv2 and TLS, it took until May 2004 when RFC 3749 defined DEFLATE as +

    Although SSL compression negotiation was defined in the specification +of SSLv2 and TLS, it took until May 2004 for RFC 3749 to define DEFLATE as a negotiable standard compression method.

    OpenSSL 0.9.8 started to support this by default when compiled with the zlib option. If both the client and the server support compression, it will be used. However, most clients still try to initially connect with an SSLv2 Hello. As SSLv2 did not include an array of prefered compression algorithms -in its handshake, compression can not be negotiated with these clients. -If the client disables support for SSLv2, based on the used SSL library -a SSLv3 or TLS Hello might be sent and compression might be set up. -You can verify if clients make use of SSL compression by logging the -%{SSL_COMPRESS_METHOD}x variable. +in its handshake, compression cannot be negotiated with these clients. +If the client disables support for SSLv2, either an SSLv3 or TLS Hello +may be sent, depending on which SSL library is used, and compression may +be set up. You can verify whether clients make use of SSL compression by +logging the %{SSL_COMPRESS_METHOD}x variable.

    -
    When I use Basic Authentication over HTTPS the lock icon in Netscape browsers -still shows the unlocked state when the dialog pops up. Does this mean the -username/password is still transmitted unencrypted? -

    No, the username/password is already transmitted encrypted. The icon in - Netscape browsers is just not really synchronized with the SSL/TLS layer - (it toggles to the locked state when the first part of the actual webpage - data is transferred which is not quite correct) and this way confuses - people. The Basic Authentication facility is part of the HTTP layer and - this layer is above the SSL/TLS layer in HTTPS. And before any HTTP data - communication takes place in HTTPS the SSL/TLS layer has already done the - handshake phase and switched to encrypted communication. So, don't get +

    When I use Basic Authentication over HTTPS +the lock icon in Netscape browsers stays unlocked when the dialog pops up. +Does this mean the username/password is being sent unencrypted? +

    No, the username/password is transmitted encrypted. The icon in + Netscape browsers is not actually synchronized with the SSL/TLS layer. + It only toggles to the locked state when the first part of the actual + webpage data is transferred, which may confuse people. The Basic + Authentication facility is part of the HTTP layer, which is above + the SSL/TLS layer in HTTPS. Before any HTTP data communication takes + place in HTTPS, the SSL/TLS layer has already completed its handshake + phase, and switched to encrypted communication. So don't be confused by this icon.

    -
    When I connect via HTTPS to an Apache+mod_ssl+OpenSSL server with Microsoft Internet -Explorer (MSIE) I get various I/O errors. What is the reason? +
    Why do I get I/O errors when connecting via +HTTPS to an Apache+mod_ssl server with Microsoft Internet Explorer (MSIE)?

    The first reason is that the SSL implementation in some MSIE versions has some subtle bugs related to the HTTP keep-alive facility and the SSL close notify alerts on socket connection close. Additionally the interaction - between SSL and HTTP/1.1 features are problematic with some MSIE versions, - too. You've to work-around these problems by forcing - Apache+mod_ssl+OpenSSL to not use HTTP/1.1, keep-alive connections or - sending the SSL close notify messages to MSIE clients. This can be done by - using the following directive in your SSL-aware virtual host section:

    + between SSL and HTTP/1.1 features are problematic in some MSIE versions. + You can work around these problems by forcing Apache not to use HTTP/1.1, + keep-alive connections or send the SSL close notify messages to MSIE clients. + This can be done by using the following directive in your SSL-aware + virtual host section:

    SetEnvIf User-Agent ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
    -

    Additionally it is known some MSIE versions have also problems - with particular ciphers. Unfortunately one cannot workaround these - bugs only for those MSIE particular clients, because the ciphers - are already used in the SSL handshake phase. So a MSIE-specific - SetEnvIf doesn't work - to solve these problems. Instead one has to do more drastic - adjustments to the global parameters. But before you decide to do - this, make sure your clients really have problems. If not, do not - do this, because it affects all(!) your clients, i.e., also your - non-MSIE clients.

    - -

    The next problem is that 56bit export versions of MSIE 5.x browsers have a - broken SSLv3 implementation which badly interacts with OpenSSL versions - greater than 0.9.4. You can either accept this and force your clients to - upgrade their browsers, or you downgrade to OpenSSL 0.9.4 (hmmm), or you - can decide to workaround it by accepting the drawback that your workaround - will horribly affect also other browsers:

    +

    Further, some MSIE versions have problems with particular ciphers. + Unfortunately, it is not possible to implement a MSIE-specific + workaround for this, because the ciphers are needed as early as the + SSL handshake phase. So a MSIE-specific + SetEnvIf won't solve these + problems. Instead, you will have to make more drastic + adjustments to the global parameters. Before you decide to do + this, make sure your clients really have problems. If not, do not + make these changes - they will affect all your clients, MSIE + or otherwise.

    + +

    The next problem is that 56bit export versions of MSIE 5.x + browsers have a broken SSLv3 implementation, which interacts badly + with OpenSSL versions greater than 0.9.4. You can accept this and + require your clients to upgrade their browsers, you can downgrade to + OpenSSL 0.9.4 (not advised), or you can work around this, accepting + that your workaround will affect other browsers too:

    SSLProtocol all -SSLv3 -

    This completely disables the SSLv3 protocol and lets those browsers work. - But usually this is an even less acceptable workaround. A more reasonable - workaround is to address the problem more closely and disable only the +

    will completely disables the SSLv3 protocol and allow those + browsers to work. A better workaround is to disable only those ciphers which cause trouble.

    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

    -

    This also lets the broken MSIE versions work, but only removes the +

    This also allows the broken MSIE versions to work, but only removes the newer 56bit TLS ciphers.

    Another problem with MSIE 5.x clients is that they refuse to connect to - URLs of the form https://12.34.56.78/ (IP-addresses are used + URLs of the form https://12.34.56.78/ (where IP-addresses are used instead of the hostname), if the server is using the Server Gated Cryptography (SGC) facility. This can only be avoided by using the fully qualified domain name (FQDN) of the website in hyperlinks instead, because @@ -889,33 +913,71 @@ Explorer (MSIE) I get various I/O errors. What is the reason?

    And finally there are versions of MSIE which seem to require that an SSL session can be reused (a totally non standard-conforming - behaviour, of course). Connection with those MSIE versions only work + behaviour, of course). Connecting with those MSIE versions only work if a SSL session cache is used. So, as a work-around, make sure you - are using a session cache (see SSLSessionCache directive).

    -
    When I connect via HTTPS to an Apache+mod_ssl server with Netscape Navigator I -get I/O errors and the message "Netscape has encountered bad data from the -server" What's the reason? +
    Why do I get I/O errors, or the message "Netscape has +encountered bad data from the server", when connecting via +HTTPS to an Apache+mod_ssl server with Netscape Navigator?

    - The problem usually is that you had created a new server certificate with - the same DN, but you had told your browser to accept forever the old - server certificate. Once you clear the entry in your browser for the old - certificate, everything usually will work fine. Netscape's SSL + This usually occurs when you have created a new server certificate for + a given domain, but had previously told your browser to always accept + the old server certificate. Once you clear the entry for the old + certificate from your browser, everything should be fine. Netscape's SSL implementation is correct, so when you encounter I/O errors with Netscape - Navigator it is most of the time caused by the configured certificates.

    + Navigator it is usually caused by the configured certificates.

    + +
    Why do I get handshake failures with Java-based clients when using a certificate with more than 1024 bits? +

    Beginning with version 2.2.30, + mod_ssl will use DH parameters which include primes + with lengths of more than 1024 bits. Java 7 and earlier limit their + support for DH prime sizes to a maximum of 1024 bits, however.

    + +

    If your Java-based client aborts with exceptions such as + java.lang.RuntimeException: Could not generate DH keypair and + java.security.InvalidAlgorithmParameterException: Prime size must be + multiple of 64, and can only range from 512 to 1024 (inclusive), + and httpd logs tlsv1 alert internal error (SSL alert number 80) + (at LogLevel info + or higher), you can either rearrange mod_ssl's cipher list with + SSLCipherSuite + (possibly in conjunction with SSLHonorCipherOrder), + or you can use custom DH parameters with a 1024-bit prime, which + will always have precedence over any of the built-in DH parameters.

    + +

    To generate custom DH parameters, use the openssl dhparam 1024 + command. Alternatively, you can use the following standard 1024-bit DH + parameters from RFC 2409, + section 6.2:

    +
    -----BEGIN DH PARAMETERS-----
    +MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR
    +Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL
    +/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC
    +-----END DH PARAMETERS-----
    +

    Add the custom parameters including the "BEGIN DH PARAMETERS" and + "END DH PARAMETERS" lines to the end of the first certificate file + you have configured using the + SSLCertificateFile directive.

    +
    +
    -
    About Support +
    mod_ssl Support
    What information resources are available in case of mod_ssl problems? @@ -924,84 +986,93 @@ server" What's the reason?
    Answers in the User Manual's F.A.Q. List (this)
    -
    - http://httpd.apache.org/docs-2.1/ssl/ssl_faq.html
    - First look inside the F.A.Q. (this text), perhaps your problem is such - popular that it was already answered a lot of times in the past. +
    + http://httpd.apache.org/docs/&httpd.docs;/ssl/ssl_faq.html
    + First check the F.A.Q. (this text). If your problem is a common + one, it may have been answered several times before, and been included + in this doc.
    Postings from the modssl-users Support Mailing List http://www.modssl.org/support/
    -
    Second search for your problem in one of the existing archives of the - modssl-users mailing list. Perhaps your problem popped up at least once for - another user, too. +
    Search for your problem in the archives of the modssl-users mailing list. + You're probably not the first person to have had this problem!
    -
    What support contacts are available in case of mod_ssl problems? +
    What support contacts are available in case +of mod_ssl problems?

    The following lists all support possibilities for mod_ssl, in order of - preference, i.e. start in this order and do not pick the support possibility - you just like most, please.

    - + preference. Please go through these possibilities + in this order - don't just pick the one you like the look of.

      -
    1. Write a Problem Report into the Bug Database
      - - http://www.modssl.org/support/bugdb/
      - This is the preferred way of submitting your problem report, because this - way it gets filed into the bug database (it cannot be lost) and - send to the modssl-users mailing list (others see the current problems and - learn from answers). -
    2. - -
    3. Write a Problem Report to the modssl-users Support Mailing List
      +
    4. Send a Problem Report to the modssl-users Support Mailing List
      modssl-users@modssl.org
      - This is the second way of submitting your problem report. You have to - subscribe to the list first, but then you can easily discuss your problem - with both the author and the whole mod_ssl user community. + This is the preferred way of submitting your problem report, because this way, + others can see the problem, and learn from any answers. You must subscribe to + the list first, but you can then easily discuss your problem with both the + author and the whole mod_ssl user community. +
    5. + +
    6. Send a Problem Report to the Apache httpd Users Support Mailing List
      + + users@httpd.apache.org
      + This is the second way of submitting your problem report. Again, you must + subscribe to the list first, but you can then easily discuss your problem + with the whole Apache httpd user community. +
    7. + +
    8. Write a Problem Report in the Bug Database
      + + http://httpd.apache.org/bug_report.html
      + This is the last way of submitting your problem report. You should only + do this if you've already posted to the mailing lists, and had no success. + Please follow the instructions on the above page carefully.
    -
    What information and details should I - provide when writing a bug report? -

    You have to at least always provide the following information:

    +
    What information should I +provide when writing a bug report? +

    You should always provide at least the following information:

    Apache and OpenSSL version information
    The Apache version can be determined by running httpd -v. The OpenSSL version can be - determined by running openssl version. Alternatively when - you have Lynx installed you can run the command lynx -mime_header - http://localhost/ | grep Server to determine all information in a + determined by running openssl version. Alternatively, if + you have Lynx installed, you can run the command lynx -mime_header + http://localhost/ | grep Server to gather this information in a single step.
    The details on how you built and installed Apache+mod_ssl+OpenSSL
    For this you can provide a logfile of your terminal session which shows - the configuration and install steps. Alternatively you can at least - provide the configure command line you used. + the configuration and install steps. If this is not possible, you + should at least provide the configure command line you used.
    In case of core dumps please include a Backtrace
    -
    In case your Apache+mod_ssl+OpenSSL should really dump core please attach - a stack-frame ``backtrace'' (see the next question on how to get it). - Without this information the reason for your core dump cannot be found. - So you have to provide the backtrace, please. +
    If your Apache+mod_ssl+OpenSSL dumps its core, please attach + a stack-frame ``backtrace'' (see below + for information on how to get this). This information is required + in order to find a reason for your core dump.
    A detailed description of your problem
    -
    Don't laugh, I'm totally serious. I already got a lot of problem reports - where the people not really said what's the actual problem is. So, in your - own interest (you want the problem be solved, don't you?) include as much - details as possible, please. But start with the essentials first, of - course. +
    Don't laugh, we really mean it! Many problem reports don't + include a description of what the actual problem is. Without this, + it's very difficult for anyone to help you. So, it's in your own + interest (you want the problem be solved, don't you?) to include as + much detail as possible, please. Of course, you should still include + all the essentials above too.
    -
    I got a core dump, can you help me? +
    I had a core dump, can you help me?

    In general no, at least not unless you provide more details about the code location where Apache dumped core. What is usually always required in order to help you is a backtrace (see next question). Without this @@ -1009,32 +1080,32 @@ server" What's the reason? fixing it.

    -
    Ok, I got a core dump but how do I get a backtrace to find out the reason for it? -

    Follow the following steps:

    +
    How do I get a backtrace, to help find +the reason for my core dump? +

    Following are the steps you will need to complete, to get a backtrace:

      -
    1. Make sure you have debugging symbols available in at least - Apache. On platforms where you use GCC/GDB you have to build - Apache+mod_ssl with ``OPTIM="-g -ggdb3"'' to achieve this. On +
    2. Make sure you have debugging symbols available, at least + in Apache. On platforms where you use GCC/GDB, you will have to build + Apache+mod_ssl with ``OPTIM="-g -ggdb3"'' to get this. On other platforms at least ``OPTIM="-g"'' is needed.
    3. -
    4. Startup the server and try to produce the core-dump. For this you perhaps +
    5. Start the server and try to reproduce the core-dump. For this you may want to use a directive like ``CoreDumpDirectory /tmp'' to - make sure that the core-dump file can be written. You then should get a - /tmp/core or /tmp/httpd.core file. When you - don't get this, try to run your server under an UID != 0 (root), because - most "current" kernels do not allow a process to dump core after it has + make sure that the core-dump file can be written. This should result + in a /tmp/core or /tmp/httpd.core file. If you + don't get one of these, try running your server under a non-root UID. + Many modern kernels do not allow a process to dump core after it has done a setuid() (unless it does an exec()) for security reasons (there can be privileged information left over in - memory). Additionally you can run /path/to/httpd -X + memory). If necessary, you can run /path/to/httpd -X manually to force Apache to not fork.
    6. -
    7. Analyze the core-dump. For this run gdb /path/to/httpd - /tmp/httpd.core or a similar command has to run. In GDB you then - just have to enter the bt command and, voila, you get the - backtrace. For other debuggers consult your local debugger manual. Send - this backtrace to the author. +
    8. Analyze the core-dump. For this, run gdb /path/to/httpd + /tmp/httpd.core or a similar command. In GDB, all you + have to do then is to enter bt, and voila, you get the + backtrace. For other debuggers consult your local debugger manual.
    diff --git a/docs/manual/ssl/ssl_faq.xml.meta b/docs/manual/ssl/ssl_faq.xml.meta index 400d91e74a8..b85897a4da1 100644 --- a/docs/manual/ssl/ssl_faq.xml.meta +++ b/docs/manual/ssl/ssl_faq.xml.meta @@ -1,6 +1,7 @@ + - + ssl_faq /ssl/ .. diff --git a/docs/manual/ssl/ssl_howto.html b/docs/manual/ssl/ssl_howto.html index ca42f094cfc..9f06e018ff6 100644 --- a/docs/manual/ssl/ssl_howto.html +++ b/docs/manual/ssl/ssl_howto.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: ssl_howto.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/ssl/ssl_howto.html.en b/docs/manual/ssl/ssl_howto.html.en index 15fd8c804e7..9085c427bdf 100644 --- a/docs/manual/ssl/ssl_howto.html.en +++ b/docs/manual/ssl/ssl_howto.html.en @@ -1,53 +1,62 @@ - -SSL/TLS Strong Encryption: How-To - Apache HTTP Server +SSL/TLS Strong Encryption: How-To - Apache HTTP Server Version 2.2 - - + + + +
    <-

    SSL/TLS Strong Encryption: How-To

    +Apache > HTTP Server > Documentation > Version 2.2 > SSL/TLS

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    SSL/TLS Strong Encryption: How-To

    Available Languages:  en 

    -

    The solution of this problem is trivial +

    The solution to this problem is trivial and is left as an exercise for the reader.

    -- Standard textbook cookie

    -

    How to solve particular security constraints for an SSL-aware -webserver is not always obvious because of the coherences between SSL, +

    How to solve particular security problems for an SSL-aware +webserver is not always obvious because of the interactions between SSL, HTTP and Apache's way of processing requests. This chapter gives -instructions on how to solve such typical situations. Treat it as a first +instructions on how to solve some typical situations. Treat it as a first step to find out the final solution, but always try to understand the stuff before you use it. Nothing is worse than using a security solution -without knowing its restrictions and coherences.

    +without knowing its restrictions and how it interacts with other systems.

    -
    top
    -

    Cipher Suites and Enforced Strong Security

    +

    Cipher Suites and Enforcing Strong Security

    How can I create a real SSLv2-only server?

    @@ -74,18 +83,19 @@ only?

    How can I create an SSL server which accepts strong encryption only, but allows export browsers to upgrade to stronger encryption?

    -

    This facility is called Server Gated Cryptography (SGC) and details - you can find in the README.GlobalID document in the - mod_ssl distribution. In short: The server has a Global ID server - certificate, signed by a special CA certificate from Verisign which - enables strong encryption in export browsers. This works as following: - The browser connects with an export cipher, the server sends its Global - ID certificate, the browser verifies it and subsequently upgrades the - cipher suite before any HTTP communication takes place. The question - now is: How can we allow this upgrade, but enforce strong encryption. - Or in other words: Browser either have to initially connect with - strong encryption or have to upgrade to strong encryption, but are - not allowed to keep the export ciphers. The following does the trick:

    +

    This facility is called Server Gated Cryptography (SGC) and requires + a Global ID server certificate, signed by a special CA certificate + from Verisign. This enables strong encryption in 'export' versions of + browsers, which traditionally could not support it (because of US export + restrictions).

    +

    When a browser connects with an export cipher, the server sends its Global + ID certificate. The browser verifies this, and can then upgrade its + cipher suite before any HTTP communication takes place. The problem + lies in allowing browsers to upgrade in this fashion, but still requiring + strong encryption. In other words, we want browsers to either start a + connection with strong encryption, or to start with export ciphers but + upgrade to strong encryption before beginning HTTP communication.

    +

    This can be done as follows:

    httpd.conf

    # allow all ciphers for the initial handshake,
    # so export browsers can upgrade via SGC facility
    @@ -102,11 +112,12 @@ only, but allows export browsers to upgrade to stronger encryption? in general, but requires a strong ciphers for access to a particular URL? -

    Obviously you cannot just use a server-wide SSLCipherSuite which restricts the - ciphers to the strong variants. But mod_ssl allows you to reconfigure - the cipher suite in per-directory context and automatically forces +

    Obviously, a server-wide SSLCipherSuite which restricts + ciphers to the strong variants, isn't the answer here. However, + mod_ssl can be reconfigured within Location + blocks, to give a per-directory solution, and can automatically force a renegotiation of the SSL parameters to meet the new configuration. - So, the solution is:

    + This can be done as follows:

    # be liberal in general
    SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    @@ -123,20 +134,23 @@ URL?

    Client Authentication and Access Control

    -

    How can I authenticate clients based on certificates when I know -all my clients?

    +

    How can I force clients to authenticate using certificates?

    + -

    When you know your user community (i.e. a closed user group - situation), as it's the case for instance in an Intranet, you can - use plain certificate authentication. All you have to do is to - create client certificates signed by your own CA certificate - ca.crt and then verify the clients against this +

    When you know all of your users (eg, as is often the case on a corporate + Intranet), you can require plain certificate authentication. All you + need to do is to create client certificates signed by your own CA + certificate (ca.crt) and then verify the clients against this certificate.

    httpd.conf

    # require a client certificate which has to be directly
    @@ -147,12 +161,12 @@ all my clients?

    -

    How can I authenticate my clients for a particular URL based on -certificates but still allow arbitrary clients to access the remaining -parts of the server?

    +

    How can I force clients to authenticate using certificates for a + particular URL, but still allow arbitrary clients to access the rest of the server?

    -

    For this we again use the per-directory reconfiguration feature - of mod_ssl:

    + +

    To force clients to authenticate using certificates for a particular URL, + you can use the per-directory reconfiguration features of mod_ssl:

    httpd.conf

    SSLVerifyClient none
    @@ -165,53 +179,57 @@ parts of the server?

    -

    How can I authenticate only particular clients for a some URLs based -on certificates but still allow arbitrary clients to access the remaining -parts of the server?

    +

    How can I allow only clients who have certificates to access a + particular URL, but allow all clients to access the rest of the server?

    -

    The key is to check for various ingredients of the client certificate. - Usually this means to check the whole or part of the Distinguished - Name (DN) of the Subject. For this two methods exists: The mod_auth_basic based variant and the SSLRequire variant. The first method is - good when the clients are of totally different type, i.e. when their - DNs have no common fields (usually the organisation, etc.). In this - case you've to establish a password database containing all - clients. The second method is better when your clients are all part of - a common hierarchy which is encoded into the DN. Then you can match - them more easily.

    -

    The first method:

    -

    httpd.conf

    +    

    The key to doing this is checking that part of the client certificate + matches what you expect. Usually this means checking all or part of the + Distinguished Name (DN), to see if it contains some known string. + There are two ways to do this, using either mod_auth_basic or + SSLRequire.

    + +

    The mod_auth_basic method is generally required when + the certificates are completely arbitrary, or when their DNs have + no common fields (usually the organisation, etc.). In this case, + you should establish a password database containing all + clients allowed, as follows:

    + +

    httpd.conf

    SSLCACertificateFile conf/ssl.crt/ca.crt
    +SSLCACertificatePath conf/ssl.crt
     SSLVerifyClient      none
    -<Directory /usr/local/apache2/htdocs/secure/area>
     
    +<Directory /usr/local/apache2/htdocs/secure/area>
     SSLVerifyClient      require
     SSLVerifyDepth       5
    -SSLCACertificateFile conf/ssl.crt/ca.crt
    -SSLCACertificatePath conf/ssl.crt
     SSLOptions           +FakeBasicAuth
     SSLRequireSSL
     AuthName             "Snake Oil Authentication"
     AuthType             Basic
     AuthBasicProvider    file
     AuthUserFile         /usr/local/apache2/conf/httpd.passwd
    -require              valid-user
    +Require              valid-user
     </Directory>
    - -

    httpd.passwd

    -/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
    +    
    +    

    The password used in this example is the DES encrypted string "password". + See the SSLOptions docs for more + information.

    + +

    httpd.passwd

    /C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
     /C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA
     /C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA
    -

    The second method:

    +

    When your clients are all part of a common hierarchy, which is encoded + into the DN, you can match them more easily using SSLRequire, as follows:

    -

    httpd.conf

    -SSLVerifyClient      none
    -<Directory /usr/local/apache2/htdocs/secure/area>
     
    +    

    httpd.conf

    SSLVerifyClient      none
    +SSLCACertificateFile conf/ssl.crt/ca.crt
    +SSLCACertificatePath conf/ssl.crt
    +
    +<Directory /usr/local/apache2/htdocs/secure/area>
       SSLVerifyClient      require
       SSLVerifyDepth       5
    -  SSLCACertificateFile conf/ssl.crt/ca.crt
    -  SSLCACertificatePath conf/ssl.crt
       SSLOptions           +FakeBasicAuth
       SSLRequireSSL
       SSLRequire       %{SSL_CLIENT_S_DN_O}  eq "Snake Oil, Ltd." \
    @@ -219,18 +237,19 @@ SSLVerifyClient      none
     </Directory>
    -

    How can I require HTTPS with strong ciphers and either basic -authentication or client certificates for access to a subarea on the -Intranet website for clients coming from the Internet but still allow -plain HTTP access for clients on the Intranet?

    +

    How can I require HTTPS with strong ciphers, and either basic +authentication or client certificates, for access to part of the +Intranet website, for clients coming from the Internet? I still want to allow +plain HTTP access for clients on the Intranet.

    -

    Let us assume the Intranet can be distinguished through the IP - network 192.160.1.0/24 and the subarea on the Intranet website has - the URL /subarea. Then configure the following outside - your HTTPS virtual host (so it applies to both HTTPS and HTTP):

    + +

    These examples presume that clients on the Intranet have IPs in the range + 192.168.1.0/24, and that the part of the Intranet website you want to allow + internet access to is /usr/local/apache2/htdocs/subarea. + This configuration should remain outside of your HTTPS virtual host, so + that it applies to both HTTPS and HTTP.

    -

    httpd.conf

    -SSLCACertificateFile conf/ssl.crt/company-ca.crt
    +    

    httpd.conf

    SSLCACertificateFile conf/ssl.crt/company-ca.crt
     
     <Directory /usr/local/apache2/htdocs>
     #   Outside the subarea only Intranet access is granted
    @@ -276,7 +295,28 @@ Require              valid-user
     

    Available Languages:  en 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/ssl/ssl_howto.xml b/docs/manual/ssl/ssl_howto.xml index 8273e8f6daf..e796263cd30 100644 --- a/docs/manual/ssl/ssl_howto.xml +++ b/docs/manual/ssl/ssl_howto.xml @@ -4,12 +4,12 @@ - + ssl_howto /ssl/ .. diff --git a/docs/manual/ssl/ssl_intro.html b/docs/manual/ssl/ssl_intro.html index 263c0f21772..0163b2157a0 100644 --- a/docs/manual/ssl/ssl_intro.html +++ b/docs/manual/ssl/ssl_intro.html @@ -1,7 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: ssl_intro.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: ssl_intro.html.ja.euc-jp +URI: ssl_intro.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/ssl/ssl_intro.html.en b/docs/manual/ssl/ssl_intro.html.en index 243cf3d70da..40c6760604a 100644 --- a/docs/manual/ssl/ssl_intro.html.en +++ b/docs/manual/ssl/ssl_intro.html.en @@ -1,22 +1,29 @@ - -SSL/TLS Strong Encryption: An Introduction - Apache HTTP Server +SSL/TLS Strong Encryption: An Introduction - Apache HTTP Server Version 2.2 - - + + + +
    <-

    SSL/TLS Strong Encryption: An Introduction

    +Apache > HTTP Server > Documentation > Version 2.2 > SSL/TLS

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    SSL/TLS Strong Encryption: An Introduction

    Available Languages:  en  |  ja 

    @@ -36,13 +43,12 @@ with the Web, HTTP, and Apache, but are not security experts. It is not intended to be a definitive guide to the SSL protocol, nor does it discuss specific techniques for managing certificates in an organization, or the important legal issues of patents and import and export restrictions. -Rather, it is intended to provide a common background to mod_ssl users by -pulling together various concepts, definitions, and examples as a starting -point for further exploration.

    +Rather, it is intended to provide a common background to mod_ssl users by pulling together various concepts, definitions, +and examples as a starting point for further exploration.

    -

    The presented content is mainly derived, with permission by the author, -from the article Introducing -SSL and Certificates using SSLeay from Frederick J. Hirsch, of The +

    The presented content is mainly derived, with the author's permission, +from the article Introducing +SSL and Certificates using SSLeay by Frederick J. Hirsch, of The Open Group Research Institute, which was published in Web Security: A Matter of Trust, World Wide Web Journal, Volume 2, Issue 3, Summer 1997. Please send any positive feedback to Frederick Hirsch (the original @@ -53,7 +59,7 @@ article author) and all negative feedback to Certificates

  • Secure Sockets Layer (SSL)
  • References
  • -
    +
    top

    Cryptographic Techniques

    @@ -70,10 +76,10 @@ integrity, and authentication.

    money. Alice would like the message to be private, since it will include information such as her account number and transfer amount. One solution is to use a cryptographic algorithm, a technique that would - transform her message into an encrypted form, unreadable except by - those it is intended for. Once in this form, the message may only be - interpreted through the use of a secret key. Without the key the - message is useless: good cryptographic algorithms make it so difficult + transform her message into an encrypted form, unreadable until it is + decrypted. Once in this form, the message can only be + decrypted by using a secret key. Without the key the message is useless: + good cryptographic algorithms make it so difficult for intruders to decode the original text that it isn't worth their effort.

    @@ -84,11 +90,12 @@ integrity, and authentication.

    Conventional cryptography
    also known as symmetric cryptography, requires the sender and receiver to share a key: a secret piece of information that may be - used to encrypt or decrypt a message. If this key is secret, then - nobody other than the sender or receiver may read the message. If - Alice and the bank know a secret key, then they may send each other - private messages. The task of privately choosing a key before - communicating, however, can be problematic.
    + used to encrypt or decrypt a message. As long as this key is kept + secret, nobody other than the sender or recipient can read the message. + If Alice and the bank know a secret key, then they can send each other + private messages. The task of sharing a key between sender and recipient + before communicating, while also keeping it secret from others, can be + problematic.
    Public key cryptography
    also known as asymmetric cryptography, solves the key exchange @@ -99,11 +106,11 @@ integrity, and authentication.

    (the public key) and keeping the other secret (the private key).
    -

    Anyone may encrypt a message using the public key, but only the +

    Anyone can encrypt a message using the public key, but only the owner of the private key will be able to read it. In this way, Alice - may send private messages to the owner of a key-pair (the bank), by - encrypting it using their public key. Only the bank will be able to - decrypt it.

    + can send private messages to the owner of a key-pair (the bank), by + encrypting them using their public key. Only the bank will be able to + decrypt them.

    Message Digests

    @@ -112,38 +119,45 @@ integrity, and authentication.

    is still a concern that someone might modify her original message or substitute it with a different one, in order to transfer the money to themselves, for instance. One way of guaranteeing the integrity - of Alice's message is to create a concise summary of her message and - send this to the bank as well. Upon receipt of the message, the bank - creates its own summary and compares it with the one Alice sent. If - they agree then the message was received intact.

    + of Alice's message is for her to create a concise summary of her + message and send this to the bank as well. Upon receipt of the message, + the bank creates its own summary and compares it with the one Alice + sent. If the summaries are the same then the message has been received + intact.

    A summary such as this is called a message digest, one-way -function or hash function. Message digests are used to create -short, fixed-length representations of longer, variable-length messages. -Digest algorithms are designed to produce unique digests for different -messages. Message digests are designed to make it too difficult to determine -the message from the digest, and also impossible to find two different -messages which create the same digest -- thus eliminating the possibility of -substituting one message for another while maintaining the same digest.

    -

    Another challenge that Alice faces is finding a way to send the digest to the -bank securely; when this is achieved, the integrity of the associated message -is assured. One way to do this is to include the digest in a digital -signature.

    + function or hash function. Message digests are used to create + a short, fixed-length representation of a longer, variable-length message. + Digest algorithms are designed to produce a unique digest for each + message. Message digests are designed to make it impractically difficult + to determine the message from the digest and (in theory) impossible to + find two different messages which create the same digest -- thus + eliminating the possibility of substituting one message for another while + maintaining the same digest.

    + +

    Another challenge that Alice faces is finding a way to send the digest + to the bank securely; if the digest is not sent securely, its integrity may + be compromised and with it the possibility for the bank to determine the + integrity of the original message. Only if the digest is sent securely can + the integrity of the associated message be determined.

    + +

    One way to send the digest securely is to include it in a digital + signature.

    Digital Signatures

    When Alice sends a message to the bank, the bank needs to ensure that the -message is really from her, so an intruder does not request a transaction +message is really from her, so an intruder cannot request a transaction involving her account. A digital signature, created by Alice and included with the message, serves this purpose.

    -

    Digital signatures are created by encrypting a digest of the message, -and other information (such as a sequence number) with the sender's -private key. Though anyone may decrypt the signature using the public -key, only the signer knows the private key. This means that only they may -have signed it. Including the digest in the signature means the signature is -only good for that message; it also ensures the integrity of the message since -no one can change the digest and still sign it.

    +

    Digital signatures are created by encrypting a digest of the message and +other information (such as a sequence number) with the sender's private key. +Though anyone can decrypt the signature using the public key, only the +sender knows the private key. This means that only the sender can have signed +the message. Including the digest in the signature means the signature is only +good for that message; it also ensures the integrity of the message since no one +can change the digest and still sign it.

    To guard against interception and reuse of the signature by an intruder at a later date, the signature contains a unique sequence number. This protects the bank from a fraudulent claim from Alice that she did not send the message @@ -154,16 +168,16 @@ the bank from a fraudulent claim from Alice that she did not send the message

    Certificates

    Although Alice could have sent a private message to the bank, signed -it, and ensured the integrity of the message, she still needs to be sure +it and ensured the integrity of the message, she still needs to be sure that she is really communicating with the bank. This means that she needs -to be sure that the public key she is using corresponds to the bank's -private key. Similarly, the bank also needs to verify that the message -signature really corresponds to Alice's signature.

    +to be sure that the public key she is using is part of the bank's key-pair, +and not an intruder's. Similarly, the bank needs to verify that the message +signature really was signed by the private key that belongs to Alice.

    If each party has a certificate which validates the other's identity, -confirms the public key, and is signed by a trusted agency, then they both -will be assured that they are communicating with whom they think they are. -Such a trusted agency is called a Certificate Authority, and +confirms the public key and is signed by a trusted agency, then both +can be assured that they are communicating with whom they think they are. +Such a trusted agency is called a Certificate Authority and certificates are used for authentication.

    Certificate Contents

    @@ -171,9 +185,9 @@ certificates are used for authentication.

    A certificate associates a public key with the real identity of an individual, server, or other entity, known as the subject. As shown in Table 1, information about the subject - includes identifying information (the distinguished name), and the + includes identifying information (the distinguished name) and the public key. It also includes the identification and signature of the - Certificate Authority that issued the certificate, and the period of + Certificate Authority that issued the certificate and the period of time during which the certificate is valid. It may have additional information (or extensions) as well as administrative information for the Certificate Authority's use, such as a serial number.

    @@ -198,7 +212,7 @@ certificates are used for authentication.

    A distinguished name is used to provide an identity in a specific context -- for instance, an individual might have a personal certificate as well as one for their identity as an employee. - Distinguished names are defined by the X.509 standard [X509], which defines the fields, field names, and + Distinguished names are defined by the X.509 standard [X509], which defines the fields, field names and abbreviations used to refer to the fields (see Table 2).

    @@ -239,25 +253,24 @@ certificates are used for authentication.

    A Certificate Authority may define a policy specifying which - distinguished field names are optional, and which are required. It + distinguished field names are optional and which are required. It may also place requirements upon the field contents, as may users of - certificates. As an example, a Netscape browser requires that the - Common Name for a certificate representing a server has a name which - matches a wildcard pattern for the domain name of that server, such + certificates. For example, a Netscape browser requires that the + Common Name for a certificate representing a server matches a wildcard + pattern for the domain name of that server, such as *.snakeoil.com.

    The binary format of a certificate is defined using the ASN.1 notation [X208] [PKCS]. This - notation defines how to specify the contents, and encoding rules + notation defines how to specify the contents and encoding rules define how this information is translated into binary form. The binary encoding of the certificate is defined using Distinguished Encoding Rules (DER), which are based on the more general Basic Encoding Rules (BER). For those transmissions which cannot handle binary, the binary form may be translated into an ASCII form by using Base64 encoding - [MIME]. This encoded version is called PEM encoded - (the name comes from "Privacy Enhanced Mail"), when placed between - begin and end delimiter lines as illustrated in the following - example.

    + [MIME]. When placed between begin and end delimiter + lines (as below), this encoded version is called a PEM ("Privacy Enhanced + Mail") encoded certificate.

    Example of a PEM-encoded certificate (snakeoil.crt)

    -----BEGIN CERTIFICATE-----
     MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx
    @@ -281,12 +294,12 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
     
     

    Certificate Authorities

    -

    By first verifying the information in a certificate request +

    By verifying the information in a certificate request before granting the certificate, the Certificate Authority assures - the identity of the private key owner of a key-pair. For instance, - if Alice requests a personal certificate, the Certificate Authority - must first make sure that Alice really is the person the certificate - request claims.

    + itself of the identity of the private key owner of a key-pair. + For instance, if Alice requests a personal certificate, the + Certificate Authority must first make sure that Alice really is the + person the certificate request claims she is.

    Certificate Chains

    @@ -304,15 +317,15 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==

    As noted earlier, each certificate requires an issuer to assert the validity of the identity of the certificate subject, up to the top-level Certificate Authority (CA). This presents a problem: - Since this is who vouches for the certificate of the top-level + who can vouch for the certificate of the top-level authority, which has no issuer? In this unique case, the certificate is "self-signed", so the issuer of the certificate is - the same as the subject. As a result, one must exercise extra care - in trusting a self-signed certificate. The wide publication of a + the same as the subject. Browsers are preconfigured to trust well-known + certificate authorities, but it is important to exercise extra care in + trusting a self-signed certificate. The wide publication of a public key by the root authority reduces the risk in trusting this key -- it would be obvious if someone else publicized a key - claiming to be the authority. Browsers are preconfigured to trust - well-known certificate authorities.

    + claiming to be the authority.

    A number of companies, such as Thawte and VeriSign have established themselves as Certificate Authorities. These @@ -333,23 +346,27 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==

    Certificate Management

    Establishing a Certificate Authority is a responsibility which - requires a solid administrative, technical, and management + requires a solid administrative, technical and management framework. Certificate Authorities not only issue certificates, - they also manage them -- that is, they determine how long - certificates are valid, they renew them, and they keep lists of - certificates that have already been issued but are no longer valid - (Certificate Revocation Lists, or CRLs). Say Alice is entitled to - a certificate as an employee of a company. Say too, that the - certificate needs to be revoked when Alice leaves the company. Since - certificates are objects that get passed around, it is impossible - to tell from the certificate alone that it has been revoked. When - examining certificates for validity, therefore, it is necessary to - contact the issuing Certificate Authority to check CRLs -- this - is not usually an automated part of the process.

    + they also manage them -- that is, they determine for how long + certificates remain valid, they renew them and keep lists of + certificates that were issued in the past but are no longer valid + (Certificate Revocation Lists, or CRLs).

    + +

    For example, if Alice is entitled to a certificate as an + employee of a company but has now left + that company, her certificate may need to be revoked. + Because certificates are only issued after the subject's identity has + been verified and can then be passed around to all those with whom + the subject may communicate, it is impossible to tell from the + certificate alone that it has been revoked. + Therefore when examining certificates for validity + it is necessary to contact the issuing Certificate Authority to + check CRLs -- this is usually not an automated part of the process.

    Note

    -

    If you use a Certificate Authority that is not configured into - browsers by default, it is necessary to load the Certificate +

    If you use a Certificate Authority that browsers are not configured + to trust by default, it is necessary to load the Certificate Authority certificate into the browser, enabling the browser to validate server certificates signed by that Certificate Authority. Doing so may be dangerous, since once loaded, the browser will @@ -366,15 +383,15 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ== placed between a reliable connection-oriented network layer protocol (e.g. TCP/IP) and the application protocol layer (e.g. HTTP). SSL provides for secure communication between client and server by allowing mutual -authentication, the use of digital signatures for integrity, and encryption +authentication, the use of digital signatures for integrity and encryption for privacy.

    The protocol is designed to support a range of choices for specific -algorithms used for cryptography, digests, and signatures. This allows +algorithms used for cryptography, digests and signatures. This allows algorithm selection for specific servers to be made based on legal, export -or other concerns, and also enables the protocol to take advantage of new -algorithms. Choices are negotiated between client and server at the start -of establishing a protocol session.

    +or other concerns and also enables the protocol to take advantage of new +algorithms. Choices are negotiated between client and server when +establishing a protocol session.

    Table 4: Versions of the SSL protocol

    @@ -386,14 +403,14 @@ of establishing a protocol session.

    Browser Support SSL v2.0 Vendor Standard (from Netscape Corp.) [SSL2] - First SSL protocol for which implementations exists + First SSL protocol for which implementations exist - NS Navigator 1.x/2.x
    - MS IE 3.x
    - Lynx/2.8+OpenSSL SSL v3.0 Expired Internet Draft (from Netscape Corp.) [SSL3] Revisions to prevent specific security attacks, add non-RSA - ciphers, and support for certificate chains + ciphers and support for certificate chains - NS Navigator 2.x/3.x/4.x
    - MS IE 3.x/4.x
    - Lynx/2.8+OpenSSL @@ -417,23 +434,23 @@ certificate chain. SSL 3.0 is the basis for the Transport Layer Security [TLS] protocol standard, currently in development by the Internet Engineering Task Force (IETF).

    -

    Session Establishment

    +

    Establishing a Session

    The SSL session is established by following a handshake sequence between client and server, as shown in Figure 1. This sequence may vary, depending on whether the server is configured to provide a server certificate or request a client - certificate. Though cases exist where additional handshake steps + certificate. Although cases exist where additional handshake steps are required for management of cipher information, this article - summarizes one common scenario: see the SSL specification for the full + summarizes one common scenario. See the SSL specification for the full range of possibilities.

    Note

    -

    Once an SSL session has been established it may be reused, thus - avoiding the performance penalty of repeating the many steps needed - to start a session. For this the server assigns each SSL session a +

    Once an SSL session has been established, it may be reused. This + avoids the performance penalty of repeating the many steps needed + to start a session. To do this, the server assigns each SSL session a unique session identifier which is cached in the server and which the - client can use on forthcoming connections to reduce the handshake - (until the session identifer expires in the cache of the server).

    + client can use in future connections to reduce the handshake time + (until the session identifer expires from the cache of the server).

    @@ -452,7 +469,7 @@ the Internet Engineering Task Force (IETF).

    The first step, Cipher Suite Negotiation, allows the client and - server to choose a Cipher Suite supportable by both of them. The SSL3.0 + server to choose a Cipher Suite supported by both of them. The SSL3.0 protocol specification defines 31 Cipher Suites. A Cipher Suite is defined by the following components:

    @@ -470,24 +487,24 @@ the Internet Engineering Task Force (IETF).

    The key exchange method defines how the shared secret symmetric cryptography key used for application data transfer will be agreed upon by client and server. SSL 2.0 uses RSA key exchange only, while - SSL 3.0 supports a choice of key exchange algorithms including the - RSA key exchange when certificates are used, and Diffie-Hellman key - exchange for exchanging keys without certificates and without prior - communication between client and server.

    + SSL 3.0 supports a choice of key exchange algorithms including + RSA key exchange (when certificates are used), and Diffie-Hellman key + exchange (for exchanging keys without certificates, or without prior + communication between client and server).

    One variable in the choice of key exchange methods is digital signatures -- whether or not to use them, and if so, what kind of - signatures to use. Signing with a private key provides assurance + signatures to use. Signing with a private key provides protection against a man-in-the-middle-attack during the information exchange - used in generating the shared key [AC96, p516].

    + used to generating the shared key [AC96, p516].

    Cipher for Data Transfer

    -

    SSL uses the conventional cryptography algorithm (symmetric - cryptography) described earlier for encrypting messages in a session. - There are nine choices, including the choice to perform no - encryption:

    +

    SSL uses conventional symmetric cryptography, as described earlier, + for encrypting messages in a session. + There are nine choices of how to encrypt, including the option not to + encrypt:

    • No encryption
    • @@ -506,14 +523,13 @@ the Internet Engineering Task Force (IETF).

    -

    Here "CBC" refers to Cipher Block Chaining, which means that a +

    "CBC" refers to Cipher Block Chaining, which means that a portion of the previously encrypted cipher text is used in the encryption of the current block. "DES" refers to the Data Encryption Standard [AC96, ch12], which has a number of - variants (including DES40 and 3DES_EDE). "Idea" is one of the best - and cryptographically strongest available algorithms, and "RC2" is - a proprietary algorithm from RSA DSI [AC96, - ch13].

    + variants (including DES40 and 3DES_EDE). "Idea" is currently one of + the best and cryptographically strongest algorithms available, + and "RC2" is a proprietary algorithm from RSA DSI [AC96, ch13].

    Digest Function

    @@ -528,8 +544,8 @@ the Internet Engineering Task Force (IETF).

    The message digest is used to create a Message Authentication Code - (MAC) which is encrypted with the message to provide integrity and to - prevent against replay attacks.

    + (MAC) which is encrypted with the message to verify integrity and to + protect against replay attacks.

    Handshake Sequence Protocol

    @@ -559,9 +575,9 @@ the Internet Engineering Task Force (IETF).

    The encapsulation of SSL control protocols by the record protocol means that if an active session is renegotiated the control protocols - will be transmitted securely. If there were no session before, then - the Null cipher suite is used, which means there is no encryption and - messages have no integrity digests until the session has been + will be transmitted securely. If there was no previous session, + the Null cipher suite is used, which means there will be no encryption and + messages will have no integrity digests, until the session has been established.

    @@ -569,11 +585,11 @@ the Internet Engineering Task Force (IETF).

    The SSL Record Protocol, shown in Figure 3, is used to transfer application and SSL Control data between the - client and server, possibly fragmenting this data into smaller units, + client and server, where necessary fragmenting this data into smaller units, or combining multiple higher level protocol data messages into single units. It may compress, attach digest signatures, and encrypt these units before transmitting them using the underlying reliable transport - protocol (Note: currently all major SSL implementations lack support + protocol (Note: currently, no major SSL implementations include support for compression).

    @@ -585,11 +601,11 @@ the Internet Engineering Task Force (IETF).

    Securing HTTP Communication

    One common use of SSL is to secure Web HTTP communication between - a browser and a webserver. This case does not preclude the use of - non-secured HTTP. The secure version is mainly plain HTTP over SSL - (named HTTPS), but with one major difference: it uses the URL scheme - https rather than http and a different - server port (by default 443). This mainly is what mod_ssl provides to you for the Apache webserver...

    + a browser and a webserver. This does not preclude the use of + non-secured HTTP - the secure version (called HTTPS) is the same as + plain HTTP over SSL, but uses the URL scheme https + rather than http, and a different server port (by default, + port 443). This functionality is a large part of what mod_ssl provides for the Apache webserver.

    top
    @@ -635,7 +651,28 @@ Version 3.0, 1996. See

    Available Languages:  en  |  ja 

    -
    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/ssl/ssl_intro.html.ja.euc-jp b/docs/manual/ssl/ssl_intro.html.ja.euc-jp deleted file mode 100644 index d8976830213..00000000000 --- a/docs/manual/ssl/ssl_intro.html.ja.euc-jp +++ /dev/null @@ -1,695 +0,0 @@ - - - -SSL/TLS °Ź沽: ¤Ϥ¸¤á¤Ë - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    SSL/TLS °Ź沽: ¤Ϥ¸¤á¤Ë

    -
    -

    Available Languages:  en  | - ja 

    -
    - -
    -

    ɸ½൬³ʤÎÎɤ¤½ê¤ϡ¢¤¿¤¯¤µ¤ó¤ε¬³ʤ«¤éÁª¤٤ë¤Ȥ¤¤¦¤³¤ȤÀ¡£ -¤½¤·¤ơ¢¤⤷ËÜÅö¤ˤɤ嬳ʤⵤ¤ËÆþ¤é¤ʤ±¤ì¤С¢ -°ìǯÂԤĤÀ¤±¤Çõ¤·¤Ƥ¤¤¿µ¬³ʤ¬¸½¤ì¤롣

    - -

    -- A. Tanenbaum, "Introduction to -Computer Networks"

    -
    - -

    -ÆþÌç¤Ȥ¤¤¦¤³¤Ȥǡ¢¤³¤ξϤÏ Web¡¢HTTP¡¢Apache ¤ËÄ̤¸¤Ƥ¤¤ë -ÆɼԸþ¤±¤Ǥ¹¤¬¡¢¥»¥­¥å¥ê¥ƥ£ÀìÌç²ȸþ¤±¤ǤϤ¢¤ê¤ޤ»¤ó¡£ -SSL ¥ץí¥ȥ³¥ë¤ηèÄêŪ¤ʼê°ú¤­¤Ǥ¢¤ë¤Ĥâ¤ê¤Ϥ¢¤ê¤ޤ»¤ó¡£ -¤ޤ¿¡¢Áȿ¥Æâ¤Îǧ¾ڴÉÍý¤Τ¿¤á¤ÎÆÃÄê¤Υƥ¯¥˥寤䡢 -Æõö¤ä͢½е¬À©¤ʤɤνÅÍפÊˡŪ¤ÊÌäÂê¤ˤĤ¤¤Ƥⰷ¤¤¤ޤ»¤ó¡£ -¤ष¤í¡¢¹¹¤ʤ븦µæ¤ؤνÐȯÅÀ¤Ȥ·¤ƿ§¡¹¤ʳµǰ¡¢ÄêµÁ¡¢Îã¤òʤ٤뤳¤ȤÇ - mod_ssl ¤Υ桼¥¶¤˴ðÁÃÃ챤òÄ󶡤¹¤ë»ö¤òÌÜŪ¤Ȥ·¤Ƥ¤¤ޤ¹¡£

    - -

    ¤³¤³¤˼¨¤µ¤줿ÆâÍƤϼç¤ˡ¢¸¶Ãø¼Ԥεö²Ĥβ¼ -The Open Group Research Institute ¤Î Frederick J. Hirsch - »á¤ε­»ö -Introducing SSL and Certificates using SSLeay ¤ò´ð¤ˤ·¤Ƥ¤¤ޤ¹¡£ -»á¤ε­»ö¤Ï Web Security: A Matter of -Trust, World Wide Web Journal, Volume 2, Issue 3, Summer 1997 -¤˷Ǻܤµ¤ì¤ޤ·¤¿¡£ -¹ÎÄêŪ¤ʰո«¤Ï Frederick Hirsch »á - (¸µµ­»ö¤ÎÃø¼Ô) ¤ØÁ´¤Ƥζì¾ð¤Ï Ralf S. Engelschall ( -mod_ssl ¤κî¼Ô) ¤ؤª´ꤤ¤·¤ޤ¹¡£ -[ÌõÃí: Ìõ¤ˤĤ¤¤ƤÏ -Apache ¥ɥ­¥å¥á¥ó¥ÈËÝÌõ¥ץí¥¸¥§¥¯¥È -¤ؤª´ꤤ¤·¤ޤ¹¡£]

    -
    - -
    top
    -
    -

    °Ź沽µ»½Ñ

    - -

    SSL ¤òÍý²򤹤ë¤ˤϡ¢°Ź楢¥르¥ꥺ¥ࡢ -¥á¥å»¡¼¥¸¥À¥¤¥¸¥§¥¹¥ȴؿô(ÊÌ̾: °ìÊý¸þ´ؿô¡¢¥ϥå·¥å´ؿô)¡¢ -ÅŻҽð̾¤ʤɤؤÎÍý²ò¤¬ɬÍפǤ¹¡£ -¤³¤ì¤é¤ε»½ѤÏËܤ¬´ݤ´¤ÈɬÍפÊÂêÌܤÇ -(Î㤨¤Ð [AC96] ¤򻲾È)¡¢ -¥ץ饤¥Х·¡¼¡¢¿®Íѡ¢ǧ¾ڤʤɤε»½ѤδðÁäȤʤäƤ¤¤ޤ¹¡£

    - -

    °Ź楢¥르¥ꥺ¥à

    - -

    Î㤨¤С¢¥¢¥ꥹ¤¬Á÷¶â¤Τ¿¤á¤˶ä¹Ԥ˥á¥å»¡¼¥¸¤òÁ÷¤ꤿ¤¤¤Ȥ·¤ޤ¹¡£ - ¸ýºÂÈֹæ¤äÁ÷¶â¤ζâ³ۤ¬´ޤޤì¤뤿¤ᡢ - ¥¢¥ꥹ¤Ϥ½¤Υá¥å»¡¼¥¸¤òÈë̩¤ˤ·¤¿¤¤¤Ȼפ¤¤ޤ¹¡£ - ²ò·èÊýˡ¤ΰì¤ĤϰŹ楢¥르¥ꥺ¥à¤ò»Ȥäơ¢¥á¥å»¡¼¥¸¤ò - Æɤޤ»¤¿¤¤¿Ͱʳ°¤ÏÆɤळ¤Ȥ¬¤Ǥ­¤ʤ¤°Ź沽¤µ¤줿 - ·ÁÂ֤ËÊѤ¨¤Ƥ·¤ޤ¦¤³¤ȤǤ¹¡£ - ¤½¤ηÁÂ֤ˤʤë¤ȡ¢ - ¥á¥å»¡¼¥¸¤ÏÈë̩¤θ°¤ˤè¤äƤΤ߲ò¼᤹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¸°¤ʤ·¤Ǥϡ¢¥á¥å»¡¼¥¸¤ÏÌò¤ËΩ¤Á¤ޤ»¤ó¡£ - Îɤ¤°Ź楢¥르¥ꥺ¥à¤ϡ¢¿¯Æþ¼Ԥ¬¸µ¤Υƥ­¥¹¥Ȥò²òÆɤ¹¤뤳¤Ȥò - Èó¾ï¤ËÆ񤷤¯¤¹¤뤿¤ᡢÅØÎϤ¬³ä¤˹ç¤ï¤ʤ¯¤µ¤»¤ޤ¹¡£

    - -

    °Ź楢¥르¥ꥺ¥à¤ˤÏ - ½¾Í跿¤ȸø³«¸°¤ÎÆó¤ĤμïÎब¤¢¤ê¤ޤ¹¡£

    - -
    -
    ½¾Í跿°Źæ
    -
    ÂоΰŹæ¤Ȥ·¤ƤâÃΤé¤졢 - Á÷¿®¼Ԥȼõ¿®¼Ԥ¬¸°¤ò¶¦ͭ¤¹¤뤳¤Ȥ¬ɬÍפǤ¹¡£ - ¸°¤Ȥϡ¢¥á¥å»¡¼¥¸¤ò°Ź沽¤·¤¿¤êÉü¹椹¤ë¤Τ˻Ȥï¤ì¤ëÈë̩ - ¤ξðÊó¤Τ³¤ȤǤ¹¡£ - ¤⤷¡¢¤³¤θ°¤¬Èë̩¤ʤ顢Á÷¿®¼Ԥȼõ¿®¼԰ʳ°¤Ïï¤â¥á¥å»¡¼¥¸¤òÆÉ - ¤ळ¤Ȥ¬¤Ǥ­¤ޤ»¤ó¡£ - ¤⤷¤⡢¥¢¥ꥹ¤ȶä¹Ԥ¬Èë̩¤θ°¤òÃΤäƤ¤¤ë¤ʤ顢 - Èà¤é¤Ϥª¸ߤ¤¤ËÈë̩¤Υá¥å»¡¼¥¸¤òÁ÷¤뤳¤Ȥ¬¤Ǥ­¤ë¤Ǥ·¤礦¡£ - ¤¿¤À¤·¡¢»öÁ°¤ËÆâ̩¤˸°¤òÁª¤֤Ȥ¤¤¦»Żö¤ÏÌäÂê¤ò´ޤó¤Ǥ¤¤ޤ¹¡£
    - -
    ¸ø³«¸°°Źæ
    -
    ÈóÂоΰŹæ¤Ȥ·¤ƤâÃΤé¤졢 - ¥á¥å»¡¼¥¸¤ò°Ź沽¤¹¤뤳¤ȤΤǤ­¤ëÆó¤Ĥθ° - ¤ò»ÈÍѤ¹¤륢¥르¥ꥺ¥à¤òÄêµÁ¤¹¤뤳¤ȤǸ°¤Τä¤ê¼è¤ê¤ÎÌäÂê¤ò²ò·è - ¤·¤ޤ¹¡£ - ¤⤷¡¢¤¢¤븰¤¬°Ź沽¤˻Ȥï¤줿¤ʤ顢 - ¤⤦ÊÒÊý¤θ°¤ÇÉü¹椷¤ʤ±¤ì¤Ф¤¤±¤ޤ»¤ó¡£ - ¤³¤ÎÊý¼°¤ˤè¤äơ¢°ì¤Ĥθ°¤ò¸øɽ¤·¤Æ(¸ø³«¸°)¡¢ - ¤⤦ÊÒÊý¤òÈë̩¤ˤ·¤Ƥª¤¯(Èë̩¸°)¤À¤±¤ǡ¢ - °ÂÁ´¤ʥá¥å»¡¼¥¸¤ò¼õ¤±¼è¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£
    -
    - -

    ï¤⤬°Ź沽¤µ¤줿¥á¥å»¡¼¥¸¤ò¸ø³«¸°¤ˤè¤äưŹ沽 - ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¤¬¡¢Èë̩¸°¤λý¤Á¼ç¤À¤±¤¬¤½¤ì¤òÆɤळ¤Ȥ¬ - ¤Ǥ­¤ޤ¹¡£ - ¤³¤ÎÊýˡ¤ǡ¢¶ä¹Ԥθø³«¸°¤ò»ȤäưŹ沽¤¹¤뤳¤Ȥǡ¢ - ¥¢¥ꥹ¤ÏÈë̩¤Υá¥å»¡¼¥¸¤òÁ÷¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¶ä¹ԤΤߤ¬Éü¹椹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - - -

    ¥á¥å»¡¼¥¸¥À¥¤¥¸¥§¥¹¥È

    - -

    ¥¢¥ꥹ¤ϥá¥å»¡¼¥¸¤òÈë̩¤ˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¤¬¡¢ - 狼¤¬Î㤨¤м«ʬ¤ËÁ÷¶⤹¤ë¤褦¤˥á¥å»¡¼¥¸¤òÊѹ¹¤·¤¿¤ꡢ - Ê̤Τâ¤ΤËÃ֤­´¹¤¨¤Ƥ·¤ޤ¦¤«¤⤷¤ì¤ʤ¤¤Ȥ¤¤¦ÌäÂ꤬¤¢¤ê¤ޤ¹¡£ - ¥¢¥ꥹ¤Υá¥å»¡¼¥¸¤ο®ÍѤòÊݾڤ¹¤ëÊýˡ¤ΰì¤Ĥϡ¢ - ¥á¥å»¡¼¥¸¤δʷé¤ʥÀ¥¤¥¸¥§¥¹¥Ȥòºî¤äơ¢¤½¤ì¤â¶ä¹ԤËÁ÷¤ë¤Ȥ¤¤¦¤â¤ΤǤ¹¡£ - ¥á¥å»¡¼¥¸¤ò¼õ¤±¼è¤ë¤ȶä¹Ԥâ¥À¥¤¥¸¥§¥¹¥ȤòºîÀ®¤·¡¢ - ¥¢¥ꥹ¤¬Á÷¤ä¿¤â¤ΤÈÈæ¤٤ޤ¹¡£¤⤷°ìÃפ·¤¿¤ʤ顢 - ¼õ¤±¼è¤ä¿¥á¥å»¡¼¥¸¤Ï̵½ý¤À¤Ȥ¤¤¦¤³¤Ȥˤʤê¤ޤ¹¡£

    - -

    ¤³¤Τ褦¤ÊÍ×Ìó¤Ï¥á¥å»¡¼¥¸¥À¥¤¥¸¥§¥¹¥È¡¢ - °ìÊý¹Դؿô¡¢¤ޤ¿¤Ï¥ϥå·¥å´ؿô¤ȸƤФì¤ޤ¹¡£ - ¥á¥å»¡¼¥¸¥À¥¤¥¸¥§¥¹¥ȤÏŤ¤²ÄÊÑŤΥá¥å»¡¼¥¸¤«¤é - û¤¤¸ÇÄêŤÎɽ¸½¤òºî¤ë¤Τ˻Ȥï¤ì¤ޤ¹¡£ - ¥À¥¤¥¸¥§¥¹¥ȥ¢¥르¥ꥺ¥à¤ϥá¥å»¡¼¥¸¤«¤é - °ì°դʥÀ¥¤¥¸¥§¥¹¥ȤòÀ¸À®¤¹¤ë¤褦¤˺î¤é¤ì¤Ƥ¤¤ޤ¹¡£ - ¥á¥å»¡¼¥¸¥À¥¤¥¸¥§¥¹¥ȤϥÀ¥¤¥¸¥§¥¹¥Ȥ«¤鸵¤Υá¥å»¡¼¥¸¤ò - ȽÄꤹ¤ë¤Τ¬¤ȤƤâÆ񤷤¤¤褦¤ˤǤ­¤Ƥ¤¤ޤ¹¡£ - ¤ޤ¿¡¢Ʊ¤¸Í×Ìó¤òºîÀ®¤¹¤ëÆó¤ĤΥá¥å»¡¼¥¸¤òõ¤¹¤ΤÏÉԲÄǽ¤Ǥ¹¡£ - ¤è¤äơ¢Ʊ¤¸Í×Ìó¤ò»Ȥäƥá¥å»¡¼¥¸¤òÃ֤­´¹¤¨¤ë¤Ȥ¤¤¦ - ²ÄǽÀ­¤òÇӽü¤·¤Ƥ¤¤ޤ¹¡£

    - -

    ¥¢¥ꥹ¤ؤΤ⤦°ì¤ĤÎÌäÂê¤ϡ¢¤³¤ΥÀ¥¤¥¸¥§¥¹¥Ȥò°ÂÁ´¤ËÁ÷¤ëÊýˡ¤òõ¤¹¤³¤ȤǤ¹¡£ -¤³¤줬¤Ǥ­¤ì¤С¢¥á¥å»¡¼¥¸¤ο®ÍѤ¬Êݾڤµ¤ì¤ޤ¹¡£ -°ì¤ĤÎÊýˡ¤Ϥ³¤ΥÀ¥¤¥¸¥§¥¹¥ȤËÅŻҽð̾¤ò´ޤळ¤ȤǤ¹¡£

    - - -

    ÅŻҽð̾

    -

    ¥¢¥ꥹ¤¬¶ä¹Ԥ˥á¥å»¡¼¥¸¤òÁ÷¤ä¿¤Ȥ­¡¢¶ä¹Ԥϡ¢ -¿¯Æþ¼Ԥ¬Èà½÷¤ˤʤꤹ¤ޤ·¤ÆÈà½÷¤θýº¤ؤμè°ú¤ò¿½ÀÁ¤·¤Ƥ¤¤ʤ¤¤«¡¢ -¥á¥å»¡¼¥¸¤¬ËÜÅö¤ËÈà½÷¤«¤é¤Τâ¤Τ«³μ¤Ëʬ¤«¤é¤ʤ±¤ì¤Ф¤¤±¤ޤ»¤ó¡£ -¥¢¥ꥹ¤ˤè¤äƺîÀ®¤µ¤졢¥á¥å»¡¼¥¸¤˴ޤޤ줿 -ÅŻҽð̾¤¬¤³¤³¤ÇÌò¤ËΩ¤Á¤ޤ¹¡£

    - -

    ÅŻҽð̾¤ϥá¥å»¡¼¥¸¤ΥÀ¥¤¥¸¥§¥¹¥Ȥ䤽¤Î¾¤ξðÊó(½èÍýÈֹæ¤ʤÉ)¤ò -Á÷¿®¼ԤÎÈë̩¸°¤ǰŹ沽¤¹¤뤳¤ȤǺî¤é¤ì¤ޤ¹¡£ -ï¤⤬¸ø³«¸°¤ò»Ȥäƽð̾¤òÉü¹æ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¤¬¡¢ -½ð̾¼ԤΤߤ¬Èë̩¸°¤òÃΤäƤ¤¤ޤ¹¡£ -¤³¤ì¤ϡ¢Èà¤é¤Τߤ¬½ð̾¤·¤¨¤¿¤³¤Ȥò°Ọ̃¤·¤ޤ¹¡£ -¥À¥¤¥¸¥§¥¹¥ȤòÅŻҽð̾¤˴ޤळ¤Ȥϡ¢ -¤½¤νð̾¤¬¤½¤Υá¥å»¡¼¥¸¤ΤߤËͭ¸ú¤Ǥ¢¤뤳¤Ȥò°Ọ̃¤·¤ޤ¹¡£ -¤³¤ì¤ϡ¢ï¤â¥À¥¤¥¸¥§¥¹¥ȤòÊѤ¨¤ƽð̾¤򤹤뤳¤Ȥ¬¤Ǥ­¤ʤ¤¤¿¤ᡢ -¥á¥å»¡¼¥¸¤ο®ÍѤâÊݾڤ·¤ޤ¹¡£

    - -

    ¿¯Æþ¼Ԥ¬½ð̾¤ò˵¼õ¤·¤ƸåÆü¤˺ÆÍøÍѤ¹¤ë¤ΤòËɤ°¤¿¤á -ÅŻҽð̾¤ˤϰì°դʽèÍýÈֹ椬´ޤޤì¤ޤ¹¡£ -¤³¤ì¤ϡ¢¥¢¥ꥹ¤¬¤½¤ó¤ʥá¥å»¡¼¥¸¤ÏÁ÷¤äƤ¤¤ʤ¤¤ȸÀ¤¦º¾µ½ -¤«¤é¶ä¹Ԥò¼é¤ê¤ޤ¹¡£ -Èà½÷¤À¤±¤¬½ð̾¤·¤¨¤¿¤«¤é¤Ǥ¹¡£(ÈÝǧËɻß)

    - -
    top
    -
    -

    ¾ÚÌÀ½ñ

    - -

    ¥¢¥ꥹ¤ÏÈë̩¤Υá¥å»¡¼¥¸¤ò¶ä¹ԤËÁ÷¤ꡢ -½ð̾¤򤷤ơ¢¥á¥å»¡¼¥¸¤ο®ÍѤòÊݾڤ¹¤뤳¤Ȥ¬¤Ǥ­¤뤪¤¦¤ˤʤê¤ޤ·¤¿¤¬¡¢ -Ä̿®¤·¤Ƥ¤¤ëÁê¼꤬ËÜÅö¤˶ä¹ԤʤΤ«³Τ«¤á¤ʤ¯¤ƤϤ¤¤±¤ޤ»¤ó¡£ -¤³¤ì¤ϡ¢Èà½÷¤¬»Ȥ¦¸ø³«¸°¤¬¶ä¹ԤÎÈë̩¸°¤ÈÂФˤʤäƤ¤¤ë¤â¤Τ«¡¢ -Èà½÷¤ϳΤ«¤á¤ʤ¯¤ƤϤ¤¤±¤ʤ¤¤Ȥ¤¤¦¤³¤Ȥò°Ọ̃¤·¤ޤ¹¡£ -ƱÍͤˡ¢¶ä¹Ԥϥá¥å»¡¼¥¸¤νð̾¤¬ËÜÅö¤˥¢¥ꥹ¤νð̾¤«³Îǧ¤¹¤ëɬÍפ¬ -¤¢¤ê¤ޤ¹¡£

    - -

    ¤⤷ξ¼Ԥ˿ȸµ¤ò¾ÚÌÀ¤·¡¢¸ø³«¸°¤ò³Îǧ¤·¡¢¤ޤ¿¿®Íꤵ¤줿µ¡´ؤ¬½ð̾ -¤·¤¿¾ÚÌÀ½񤬤¢¤ì¤С¢ξ¼ԤȤâÄ̿®Áê¼ê¤ˤĤ¤¤ÆÀµ¤·¤¤Áê¼ê¤À¤È -³ο®¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -¤½¤Τ褦¤ʿ®Íꤵ¤줿µ¡´ؤÏǧ¾ڶÉ - (Certificate Authority ¤ޤ¿¤Ï CA) ¤ȸƤФ졢 -¾ÚÌÀ½ñ (certificate) ¤¬ǧ¾Ú (authentication) ¤˻Ȥï¤ì¤ޤ¹¡£

    - -

    ¾ÚÌÀ½ñ¤ÎÆâÍÆ

    - -

    ¾ÚÌÀ½ñ¤ϸø³«¸°¤ȸĿ͡¢¥µ¡¼¥С¢¤½¤Î¾¤μçÂΤμºߤοȸµ¤ò - ´ØϢÉդ±¤ޤ¹¡£ - ɽ1¤˼¨¤µ¤ì¤ë¤褦¤˾ÚÌÀÂоݤξðÊó¤Ï - ¿ȸµ¾ÚÌÀ¤ξðÊó(¼±ÊÌ̾)¤ȸø³«¸°¤¬´ޤޤì¤ޤ¹¡£ - ¾ÚÌÀ½ñ¤Ϥޤ¿¡¢ǧ¾ڶɤοȸµ¾ÚÌÀ¤Ƚð̾¡¢¤½¤·¤ƾÚÌÀ½ñ¤Îͭ¸ú´ü´֤ò - ´ޤߤޤ¹¡£ - ¥·¥ꥢ¥ë¥ʥó¥С¼¤ʤɤÎǧ¾ڶɤδÉÍý¾å¤ξðÊó¤ä - ¤½¤Î¾¤ÎÄɲäξðÊ󤬴ޤޤì¤Ƥ¤¤뤫¤⤷¤ì¤ޤ»¤ó¡£

    - -

    ɽ1: ¾ÚÌÀ½ñ¾ðÊó

    - - - - - - - - - - - - - -
    ¾ÚÌÀÂоݼ±ÊÌ̾¡¢¸ø³«¸°
    ȯ¹ԼÔ¼±ÊÌ̾¡¢¸ø³«¸°
    ͭ¸ú´ü´Ö³«»ÏÆü¡¢¼º¸úÆü
    ´ÉÍý¾ðÊó¥С¼¥¸¥ç¥󡢥·¥ꥢ¥ë¥ʥó¥С¼
    ³Èĥ¾ðÊó´ðËÜŪ¤ÊÀ©Ì󡢥ͥåȥ¹¥±¡¼¥ץեé¥å°¡¢¤½¤Î¾
    - - -

    ¼±ÊÌ̾(¥ǥ£¥¹¥ƥ£¥󥰥¤¥å·¥塦¥͡¼¥à)¤ÏÆÃÄê¤ξõ¶·¤ˤª¤±¤ë - ¿Èʬ¾ÚÌÀ¤òÄ󶡤¹¤ë¤Τ˻Ȥï¤ì¤Ƥ¤¤ޤ¹¡£Î㤨¤С¢¤¢¤ë¿ͤÏ - »äÍѤȲñ¼ҤȤÇÊ̡¹¤οÈʬ¾ÚÌÀ¤ò»ý¤Ĥ«¤⤷¤ì¤ޤ»¤ó¡£ - - ¼±ÊÌ̾¤Ï X.509 ɸ½൬³Ê [X509] ¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ޤ¹¡£ - X.509 ɸ½൬³ʤϡ¢¹àÌܡ¢¹àÌÜ̾¡¢¤½¤·¤ƹàÌܤÎά¾ΤòÄêµÁ¤·¤Ƥ¤¤ޤ¹¡£(ɽ - 2 »²¾È)

    - -

    ɽ 2: ¼±ÊÌ̾¾ðÊó

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ¼±ÊÌ̾¹àÌÜά¾ÎÀâÌÀÎã
    Common Name (¥³¥â¥ó¥͡¼¥à)CNǧ¾ڤµ¤ì¤ë̾Á°
    - SSLÀܳ¤¹¤ëURL
    CN=www.example.com
    Organization or Company (Áȿ¥̾)OÃÄÂΤÎÀµ¼°±ѸìÁȿ¥̾O=Example Japan K.K.
    Organizational Unit (ÉôÌç̾)OUÉô½ð̾¤ʤÉOU=Customer Service
    City/Locality (»ԶèĮ¼)L½êºߤ·¤Ƥë»ԶèĮ¼L=Sapporo
    State/Province (ÅÔƻÉܸ©)ST½êºߤ·¤ƤëÅÔƻÉܸ©ST=Hokkaido
    Country(¹ñ)C½êºߤ·¤Ƥ¤¤ë¹ñ̾¤Î ISO ¥³¡¼¥É
    - ÆüËܤξì¹ç JP -
    C=JP
    - - -

    ǧ¾ڶɤϤɤιàÌܤ¬¾Êά²Äǽ¤Ǥɤ줬ɬ¿ܤ«¤ÎÊý¿ˤòÄêµÁ¤¹¤ë - ¤«¤⤷¤ì¤ޤ»¤󡣹àÌܤÎÆâÍƤˤĤ¤¤Ƥâǧ¾ڶɤä¾ÚÌÀ½ñ¤Υ桼¥¶¤«¤é¤Î - Í׷郎¤¢¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - Î㤨¤С¢¥ͥåȥ¹¥±¡¼¥פΥ֥饦¥¶¤ϥµ¡¼¥ФξÚÌÀ½ñ¤Î - Common Name (¥³¥â¥ó¥͡¼¥à)¤¬¥µ¡¼¥ФΥɥᥤ¥ó̾¤Î - *.example.com - ¤Ȥ¤¤¦¤褦¤ʥ磻¥ë¥ɥ«¡¼¥ɤΥѥ¿¡¼¥ó¤˥ޥåÁ¤¹¤뤳¤È - ¤òÍ׵ᤷ¤ޤ¹¡£

    - -

    ¥Х¤¥ʥê·Á¼°¤ξÚÌÀ½ñ¤Ï ASN.1 ɽµ­ˡ - [X208] [PKCS] ¤Ç - ÄêµÁ¤µ¤ì¤Ƥ¤¤ޤ¹¡£ - ¤³¤Îɽµ­ˡ¤ÏÆâÍƤò¤ɤΤ褦¤˵­½Ҥ¹¤뤫¤òÄêµÁ¤·¡¢ - Éä¹沽¤ε¬Ä꤬¤³¤ξðÊ󤬤ɤΤ褦¤˥Х¤¥ʥê·Á¼°¤ËÊѴ¹¤µ¤ì¤뤫¤ò - ÄêµÁ¤·¤ޤ¹¡£ - ¾ÚÌÀ½ñ¤ΥХ¤¥ʥêÉä¹沽¤Ï Distinguished Encoding - Rules (DER) ¤ÇÄêµÁ¤µ¤졢¤½¤ì¤Ϥè¤ê°ìÈÌŪ¤Ê Basic Encoding Rules - (BER) ¤˴ð¤Ť¤¤Ƥ¤¤ޤ¹¡£ - ¥Х¤¥ʥê·Á¼°¤򰷤¦¤³¤ȤΤǤ­¤ʤ¤Á÷¿®¤Ǥϡ¢ - ¥Х¤¥ʥê·Á¼°¤Ï Base64 Éä¹沽 [MIME] ¤Ç - ASCII ·Á¼°¤ËÊѴ¹¤µ¤ì¤뤳¤Ȥ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤Τ褦¤ËÉä¹沽¤µ¤졢°ʲ¼¤ÎÎã¤˼¨¤µ¤ì¤ë¤褦¤˶èÀڤê¹ԤË - ¶´¤ޤ줿¤â¤ΤÏ PEM Éä¹沽¤µ¤줿¤ȸÀ¤¤¤ޤ¹¡£ - (PEM ¤Î̾Á°¤Ï "Privacy Enhanced Mail" ¤ËͳÍ褷¤ޤ¹)

    - -

    PEM Éä¹沽¤µ¤줿¾ÚÌÀ½ñ¤ÎÎã (example.crt)

    -----BEGIN CERTIFICATE-----
    -MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx
    -FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG
    -A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv
    -cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz
    -bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL
    -MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h
    -a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl
    -cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN
    -AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
    -gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b
    -vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa
    -lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV
    -HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB
    -gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt
    -2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7
    -dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
    ------END CERTIFICATE-----
    - - -

    ǧ¾ڶÉ

    - -

    ¤ޤº¾ÚÌÀ½ñ¤ο½ÀÁ¤ξðÊó¤ò³Îǧ¤¹¤뤳¤Ȥǡ¢ - ǧ¾ڶɤÏÈë̩¸°¤λý¤Á¼ç¤οȸµ¤òÊݾڤ·¤ޤ¹¡£ - Î㤨¤С¢¥¢¥ꥹ¤¬¸Ŀ;ÚÌÀ½ñ¤ò¿½ÀÁ¤·¤¿¤Ȥ¹¤ë¤ȡ¢ - ǧ¾ڶɤϥ¢¥ꥹ¤¬¾ÚÌÀ½ñ¤ο½ÀÁ¤¬¼çĥ¤¹¤ëÄ̤ê¤Î - ¿Íʪ¤À¤Ȥ¤¤¦¤³¤Ȥò³Îǧ¤·¤ʤ¯¤ƤϤ¤¤±¤ޤ»¤ó¡£

    - -

    ¾ÚÌÀ½ñ³¬Áع½¤

    - -

    ǧ¾ڶɤϾ¤Îǧ¾ڶɤؤξÚÌÀ½ñ¤òȯ¹Ԥ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ̤ÃΤξÚÌÀ½ñ¤òĴ¤٤ë»þ¤ˡ¢¥¢¥ꥹ¤Ϥ½¤ξÚÌÀ½ñ¤Îȯ¹ԼÔ - ¤˼«¿®¤¬»ý¤Ƥë¤ޤǡ¢ȯ¹ԼԤξÚÌÀ½ñ¤ò - ¤½¤ξå°̳¬ÁؤÎǧ¾ڶɤ򤿤ɤäÆĴ¤٤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¡ְ­¼Á¤ʡ׾ÚÌÀ½ñ¤δí¸±À­¤򸺤餹¤¿¤ᡢ - Èà½÷¤ϸ¤é¤줿Ϣº¿¤Îȯ¹ԼԤΤ߿®Íꤹ¤ë¤褦¤Ë - ·è¤á¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - - -

    ºǾå°Ìǧ¾ڶɤκîÀ®

    - -

    Á°¤˽Ҥ٤¿¤褦¤ˡ¢Á´¤ƤξÚÌÀ½ñ¤ˤĤ¤¤ơ¢ - ºǾå°̤Îǧ¾ڶÉ(CA)¤ޤǤ½¤줾¤ì¤Îȯ¹ԼԤ¬ - Âоݤοȸµ¾ÚÌÀ¤Îͭ¸úÀ­¤òÌÀ¤餫¤ˤ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ÌäÂê¤ϡ¢ï¤¬¤½¤κǾå°̤Îǧ¾ڵ¡´ؤξÚÌÀ½ñ¤òÊݾڤ¹¤ë¤Τ«¡¢ - ¤Ȥ¤¤¦¤³¤ȤǤ¹¡£ - ¤³¤Τ褦¤ʾì¹ç¤˸¤ꡢ¾ÚÌÀ½ñ¤ϡּ«¸ʽð̾¡פµ¤ì¤ޤ¹¡£ - ¤Ĥޤꡢ¾ÚÌÀ½ñ¤Îȯ¹ԼԤȾÚÌÀÂоݤ¬Ʊ¤¸¤Ȥ¤¤¦¤³¤Ȥˤʤê¤ޤ¹¡£ - ¤½¤ηë²̡¢¼«¸ʽð̾¤µ¤줿¾ÚÌÀ½ñ¤ò¿®ÍѤ¹¤ë¤ˤÏ - ºٿ´¤ÎÃí°դ¬ɬÍפǤ¹¡£ - ºǾå°Ìǧ¾ڶɤ¬¸ø³«¸°¤򹭤¯¸øɽ¤¹¤뤳¤Ȥǡ¢ - ¤½¤θ°¤ò¿®Íꤹ¤ë¥ꥹ¥¯¤òÄ㤯¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤⤷¡¢¾¿ͤ¬¤½¤Îǧ¾ڶɤˤʤꤹ¤ޤ·¤¿»þ¤ˡ¢¤½¤줬Ϫ¸«¤·¤ä - ¤¹¤¤¤«¤é¤Ǥ¹¡£ - ¿¤¯¤Υ֥饦¥¶¤Ïͭ̾¤Êǧ¾ڶɤò¿®Íꤹ¤ë¤褦¤Ë - ÀßÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£

    - -

    Thawte - ¤ä VeriSign - ¤Τ褦¤Ê¿¤¯¤βñ¼Ҥ¬ǧ¾ڶɤȤ·¤Ƴ«Àߤ·¤ޤ·¤¿¡£ - ¤³¤Τ褦¤ʲñ¼Ҥϰʲ¼¤Υµ¡¼¥ӥ¹¤òÄ󶡤·¤ޤ¹:

    - -
      -
    • ¾ÚÌÀ½ñ¿½ÀÁ¤γÎǧ
    • -
    • ¾ÚÌÀ½ñ¿½ÀÁ¤νèÍý
    • -
    • ¾ÚÌÀ½ñ¤Îȯ¹ԤȴÉÍý
    • -
    - -

    ¼«ʬ¤Çǧ¾ڶɤòºî¤뤳¤Ȥâ²Äǽ¤Ǥ¹¡£ - ¥¤¥󥿡¼¥ͥåȴĶ­¤Ǥϴí¸±¤Ǥ¹¤¬¡¢ - ¸Ŀͤ䥵¡¼¥Фοȸµ¾ÚÌÀ¤¬´Êñ¤˹Ԥ¨¤ëÁȿ¥¤Î - ¥¤¥ó¥ȥé¥ͥåÈÆâ¤ǤÏÌò¤ËΩ¤Ĥ«¤⤷¤ì¤ޤ»¤ó¡£

    - - -

    ¾ÚÌÀ½ñ´ÉÍý

    - -

    ǧ¾ڶɤγ«ÀߤÏŰÄ줷¤¿´ÉÍý¡¢µ»½ѡ¢±¿ÍѤÎÂÎÀ©¤òɬÍפȤ¹¤ë - ÀÕǤ¤Τ¢¤ë»Żö¤Ǥ¹¡£ - ǧ¾ڶɤϾÚÌÀ½ñ¤òȯ¹Ԥ¹¤ë¤À¤±¤Ǥʤ¯¡¢ - ´ÉÍý¤⤷¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - ¶ñÂÎŪ¤ˤϡ¢¾ÚÌÀ½񤬤¤¤ĤޤÇͭ¸ú¤«¤ò·èÄꤷ¡¢¹¹¿·¤·¡¢ - ¤ޤ¿´û¤Ëȯ¹Ԥµ¤줿¤¬¼º¸ú¤·¤¿¾ÚÌÀ½ñ¤Υꥹ¥È - (Certificate Revocation Lists ¤ޤ¿¤Ï CRL) - ¤ò´ÉÍý¤·¤ʤ±¤ì¤Ф¤¤±¤ޤ»¤ó¡£ - Î㤨¤С¢¥¢¥ꥹ¤¬²ñ¼Ҥ«¤é¼Ұ÷¤Ȥ·¤ƾÚÌÀ½ñ¤òͿ¤¨¤é¤줿¤Ȥ·¤ޤ¹¡£ - ¤½¤·¤ơ¢¥¢¥ꥹ¤¬²ñ¼Ҥ򼭤á¤ë¤Ȥ­¤ˤϾÚÌÀ½ñ¤ò¼è¤ê¾äµ¤ʤ±¤ì¤Ð - ¤¤¤±¤ʤ¤¤Ȥ·¤ޤ¹¡£ - ¾ÚÌÀ½ñ¤ϼ¡¡¹¤ȿͤËÅϤµ¤ì¤Ƥ¤¤¯¤â¤ΤʤΤǡ¢ - ¾ÚÌÀ½񤽤Τâ¤Τ«¤顢¤½¤줬¼è¤ê¾äµ¤줿¤«ȽÃǤ¹¤뤳¤ȤÏ - ÉԲÄǽ¤Ǥ¹¡£ - ¤è¤äơ¢¾ÚÌÀ½ñ¤Îͭ¸úÀ­¤òĴ¤٤ë¤Ȥ­¤ˤϡ¢ - ǧ¾ڶɤËϢÍí¤·¤Æ CRL ¤ò¾ȹ礹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ÉáÄ̤³¤βáÄø¤ϼ«ư²½¤µ¤ì¤Ƥ¤¤ë¤â¤ΤǤϤ¢¤ê¤ޤ»¤ó¡£

    - -

    Ãí°Õ

    -

    ¥ǥե©¥ë¥Ȥǥ֥饦¥¶¤ËÀßÄꤵ¤ì¤Ƥ¤¤ʤ¤ǧ¾ڶɤò»Ȥ俾ì¹硢 - ǧ¾ڶɤξÚÌÀ½ñ¤ò¥֥饦¥¶¤ËÆɤ߹þ¤ó¤ǡ¢ - ¥֥饦¥¶¤¬¤½¤Îǧ¾ڶɤˤè¤äƽð̾¤µ¤줿¥µ¡¼¥ФξÚÌÀ½ñ¤ò - ͭ¸ú²½¤¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - °ìÅÙÆɤ߹þ¤ޤì¤ë¤ȡ¢¤½¤Îǧ¾ڶɤˤè¤äƽð̾¤µ¤줿Á´¤ƤÎ - ¾ÚÌÀ½ñ¤ò¼õ¤±Æþ¤ì¤뤿¤ᡢ´í¸±¤òȼ¤¤¤ޤ¹¡£

    -
    - - - -
    top
    -
    -

    Secure Sockets Layer (SSL)

    - -

    Secure Sockets Layer ¥ץí¥ȥ³¥ë¤Ͽ®ÍêÀ­¤Τ¢¤륳¥ͥ¯¥·¥ç¥󷿤Î -¥ͥåȥ¥¯ÁؤΥץí¥ȥ³¥ë(Î㤨¤С¢TCP/IP)¤È -¥¢¥ץꥱ¡¼¥·¥ç¥óÁؤΥץí¥ȥ³¥ë(Î㤨¤С¢HTTP) -¤δ֤ËÃ֤¯¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -SSL ¤ϡ¢Áê¸ßǧ¾ڤˤè¤äƥµ¡¼¥Фȥ¯¥饤¥¢¥ó¥ȴ֤ΰÂÁ´¤ÊÄ̿®¤ò¡¢ -ÅŻҽð̾¤ˤè¤äƥǡ¼¥¿¤δ°Á´À­¤ò¡¢ -¤½¤·¤ưŹ沽¤ˤè¤äƥץ饤¥Х·¤òÄ󶡤·¤ޤ¹¡£

    - -

    SSL ¥ץí¥ȥ³¥ë¤ϰŹ沽¡¢¥À¥¤¥¸¥§¥¹¥ȡ¢ÅŻҽð̾¤ˤĤ¤¤ơ¢ -Í͡¹¤ʥ¢¥르¥ꥺ¥à¤򥵥ݡ¼¥Ȥ¹¤ë¤褦¤ˤǤ­¤Ƥ¤¤ޤ¹¡£ -¤³¤¦¤¹¤뤳¤Ȥǡ¢ˡ¤ä͢½Фε¬À©¤ò¹Íθ¤ËÆþ¤ì¤ơ¢¥µ¡¼¥Ф˹ç¤碌¤¿ -¥¢¥르¥ꥺ¥à¤òÁª¤֤³¤Ȥ¬¤Ǥ­¡¢¤ޤ¿¡¢¿·¤·¤¤¥¢¥르¥ꥺ¥à¤ò -ÍøÍѤ·¤Ƥ¤¤¯¤³¤Ȥâ²Äǽ¤ˤ·¤Ƥ¤¤ޤ¹¡£ -¥¢¥르¥ꥺ¥à¤ÎÁªÂò¤ϥץí¥ȥ³¥륻¥å·¥ç¥󳫻ϻþ¤Ë -¥µ¡¼¥Фȥ¯¥饤¥¢¥ó¥ȴ֤Ǽè¤ê·è¤á¤é¤ì¤ޤ¹¡£

    - -

    ɽ4: SSL ¥ץí¥ȥ³¥ë¤ΥС¼¥¸¥ç¥ó

    - - - - - - - - - - - - - - - - - - - -
    ¥С¼¥¸¥ç¥ó½ÐŵÀâÌÀ¥֥饦¥¶¤Υµ¥ݡ¼¥È
    SSL v2.0Vendor Standard (Netscape Corp. ¤è¤ê) [SSL2]¼ÂÁõ¤¬¸½¸¤¹¤ë½é¤á¤ƤÎ SSL ¥ץí¥ȥ³¥ë- NS Navigator 1.x/2.x
    - - MS IE 3.x
    - - Lynx/2.8+OpenSSL
    SSL v3.0Expired Internet Draft (Netscape Corp. ¤è¤ê) [SSL3]ÆÃÄê¤Υ»¥­¥å¥ê¥ƥ£¹¶·â¤òËɤ°¤¿¤á¤βþÄû¡¢ - ÈóRSA °Źæ¤ÎÄɲᢾÚÌÀ½ñ³¬Áع½¤¤Υµ¥ݡ¼¥È- NS Navigator 2.x/3.x/4.x
    - - MS IE 3.x/4.x
    - - Lynx/2.8+OpenSSL
    TLS v1.0Proposed Internet Standard (IETF ¤è¤ê) [TLS1]MAC ¥쥤¥ä¤ò HMAC ¤ع¹¿·¡¢¥֥í¥å¯°Źæ¤Î block - padding¡¢¥á¥å»¡¼¥¸½ç½ø¤Îɸ½ಽ¡¢·ٹðʸ¤ν¼¼¤ʤɤΤ¿¤á - SSL 3.0 ¤ò²þÄû¡£- Lynx/2.8+OpenSSL
    - - -

    ɽ4¤˼¨¤µ¤ì¤ë¤Ȥª¤ꡢSSL ¥ץí¥ȥ³¥ë¤ˤÏ -¤¤¤¯¤Ĥâ¤ΥС¼¥¸¥ç¥󤬤¢¤ê¤ޤ¹¡£ -ɽ¤ˤâ½񤫤ì¤Ƥ¤¤ë¤褦¤ˡ¢SSL 3.0 ¤ÎÍøÅÀ¤ΰì¤ĤÏ -¾ÚÌÀ½ñ³¬Áع½¤¤򥵥ݡ¼¥Ȥ¹¤뤳¤ȤǤ¹¡£ -¤³¤ε¡ǽ¤ˤè¤äơ¢¥µ¡¼¥Фϼ«ʬ¤ξÚÌÀ½ñ¤˲䨤ơ¢ -ȯ¹ԼԤξÚÌÀ½ñ¤ò¥֥饦¥¶¤ËÅϤ¹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -¾ÚÌÀ½ñ³¬Áع½¤¤ˤè¤äơ¢ -¥֥饦¥¶¤Ëȯ¹ԼԤξÚÌÀ½ñ¤¬ľÀÜÅÐϿ¤µ¤ì¤Ƥ¤¤ʤ¯¤Ƥ⡢ -³¬ÁؤÎÃæ¤˴ޤޤì¤Ƥ¤¤ì¤С¢ -¥֥饦¥¶¤ϥµ¡¼¥ФξÚÌÀ½ñ¤òͭ¸ú²½¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -SSL 3.0 ¤ϸ½ºß Internet Engineering Task Force (IETF) -¤ˤè¤äƳ«ȯ¤µ¤ì¤Ƥ¤¤ë Transport Layer Security -[TLS] ¥ץí¥ȥ³¥ëɸ½൬³ʤδðÁäȤʤäƤ¤¤ޤ¹¡£

    - -

    ¥»¥å·¥ç¥ó¤γÎΩ

    - -

    ¿Þ1¤Ǽ¨¤µ¤ì¤ë¤褦¤ˡ¢ - ¥»¥å·¥ç¥ó¤γÎΩ¤ϥ¯¥饤¥¢¥ó¥Ȥȥµ¡¼¥д֤Î - ¥ϥó¥ɥ·¥§¡¼¥¯¥·¡¼¥¯¥¨¥󥹤ˤè¤äƹԤʤï¤ì¤ޤ¹¡£ - ¥µ¡¼¥Ф¬¾ÚÌÀ½ñ¤òÄ󶡤¹¤뤫¡¢¥¯¥饤¥¢¥ó¥ȤξÚÌÀ½ñ¤ò¥ꥯ¥¨¥¹¥Ȥ¹¤뤫 - ¤Ȥ¤¤¦¥µ¡¼¥ФÎÀßÄê¤ˤè¤ꡢ¤³¤Υ·¡¼¥¯¥¨¥󥹤ϰۤʤë¤â¤ΤȤʤê¤ޤ¹¡£ - °Źæ¾ðÊó¤δÉÍý¤Τ¿¤á¤ˡ¢ÄɲäΥϥó¥ɥ·¥§¡¼¥¯²áÄø¤¬ɬÍפˤʤë - ¾ì¹ç¤⤢¤ê¤ޤ¹¤¬¡¢¤³¤ε­»ö¤ǤÏ - ¤褯¤¢¤륷¥ʥꥪ¤ò¼êû¤ËÀâÌÀ¤·¤ޤ¹¡£ - Á´¤ƤβÄǽÀ­¤ˤĤ¤¤ϡ¢SSL »ÅÍͽñ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    Ãí°Õ

    -

    °ìÅÙ SSL ¥»¥å·¥ç¥󤬳ÎΩ¤¹¤ë¤ȡ¢¥»¥å·¥ç¥ó¤òºÆÍøÍѤ¹¤뤳¤Ȥǡ¢ - ¥»¥å·¥ç¥ó¤򳫻Ϥ¹¤뤿¤á¤Î¿¤¯¤βáÄø¤򷫤êÊ֤¹¤Ȥ¤¤¦ - ¥ѥե©¡¼¥ޥ󥹤λ¼º¤òËɤ®¤ޤ¹¡£ - ¤½¤Τ¿¤ᡢ¥µ¡¼¥ФÏÁ´¤ƤΥ»¥å·¥ç¥ó¤˰ì°դʥ»¥å·¥ç¥ó¼±ÊÌ̾¤ò - ³ä¤êÅö¤ơ¢¥µ¡¼¥Ф˥­¥ã¥å·¥夷¡¢¥¯¥饤¥¢¥ó¥Ȥϼ¡²󤫤é - (¼±ÊÌ̾¤¬¥µ¡¼¥ФΥ­¥ã¥å·¥å¤Ǵü¸ÂÀڤì¤ˤʤë¤ޤǤÏ) - ¥ϥó¥ɥ·¥§¡¼¥¯¤ʤ·¤ÇÀܳ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -
    - -

    -
    - ¿Þ1: SSL - ¥ϥó¥ɥ·¥§¡¼¥¯¥·¡¼¥¯¥¨¥󥹳µά

    - -

    ¥µ¡¼¥Фȥ¯¥饤¥¢¥ó¥ȤǻȤï¤ì¤ë - ¥ϥó¥ɥ·¥§¡¼¥¯¥·¡¼¥¯¥¨¥󥹤ÎÍ×ÁǤò°ʲ¼¤˼¨¤·¤ޤ¹:

    - -
      -
    1. ¥ǡ¼¥¿Ä̿®¤˻Ȥï¤ì¤ë°Ź楹¥¤¡¼¥Ȥμè¤ê·è¤á
    2. -
    3. ¥¯¥饤¥¢¥ó¥Ȥȥµ¡¼¥д֤ǤΥ»¥å·¥ç¥󸰤γÎΩ¤ȶ¦ͭ
    4. -
    5. ¥ª¥ץ·¥ç¥ó¤Ȥ·¤ơ¢¥¯¥饤¥¢¥ó¥ȤËÂФ¹¤륵¡¼¥ФÎǧ¾Ú
    6. -
    7. ¥ª¥ץ·¥ç¥ó¤Ȥ·¤ơ¢¥µ¡¼¥ФËÂФ¹¤륯¥饤¥¢¥ó¥ȤÎǧ¾Ú
    8. -
    - -

    Âè°쥹¥ƥåפΰŹ楹¥¤¡¼¥ȼè¤ê·è¤á¤ˤè¤äơ¢ - ¥µ¡¼¥Фȥ¯¥饤¥¢¥ó¥ȤϤ½¤줾¤ì¤ˤ¢¤ä¿ - °Ź楹¥¤¡¼¥ȤòÁª¤֤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - SSL3.0 ¥ץí¥ȥ³¥ë¤λÅÍͽñ¤Ï 31 ¤ΰŹ楹¥¤¡¼¥ȤòÄêµÁ¤·¤Ƥ¤¤ޤ¹¡£ - °Ź楹¥¤¡¼¥Ȥϰʲ¼¤Υ³¥ó¥ݡ¼¥ͥó¥Ȥˤè¤êÄêµÁ¤µ¤ì¤Ƥ¤¤ޤ¹:

    - -
      -
    • ¸°¤θ򴹼êÃÊ
    • -
    • ¥ǡ¼¥¿Ä̿®¤ΰŹæ½Ñ
    • -
    • Message Authentication Code (MAC) ºîÀ®¤Τ¿¤á¤Î - ¥á¥å»¡¼¥¸¥À¥¤¥¸¥§¥¹¥È
    • -
    - -

    ¤³¤ì¤é¤λ°¤ĤÎÍ×ÁǤϰʲ¼¤Υ»¥¯¥·¥ç¥ó¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ޤ¹¡£

    - - -

    ¸°¤θ򴹼êÃÊ

    - -

    ¸°¤θ򴹼êÃʤϥ¢¥ץꥱ¡¼¥·¥ç¥ó¤Υǡ¼¥¿Ä̿®¤˻Ȥï¤졢 - ¶¦ͭ¤µ¤ì¤ëÂоΰŹ渰¤ò¤ɤΤ褦¤ˤ¬¥¯¥饤¥¢¥ó¥Ȥȥµ¡¼¥ФÇ - ¼è¤ê·è¤á¤뤫¤òÄêµÁ¤·¤ޤ¹¡£ - SSL 2.0 ¤Ï RSA ¸°¸򴹤·¤«»Ȥ¤¤ޤ»¤󤬡¢ - SSL 3.0 ¤ϾÚÌÀ½񤬻Ȥï¤ì¤ë¤Ȥ­¤Ï RSA ¸°¸򴹤ò»Ȥ¤¡¢ - ¾ÚÌÀ½ñ¤¬̵¤¯¡¢¥¯¥饤¥¢¥ó¥Ȥȥµ¡¼¥ФλöÁ°¤ÎÄ̿®¤¬̵¤¤¾ì¹ç¤Ï - Diffie-Hellman ¸°¸򴹤ò»Ȥ¦ - ¤ʤÉÍ͡¹¤ʸ°¸򴹥¢¥르¥ꥺ¥à¤򥵥ݡ¼¥Ȥ·¤ޤ¹¡£

    - -

    ¸°¤θò´¹Êýˡ¤ˤª¤±¤ë°ì¤ĤÎÁªÂò»è¤ÏÅŻҽð̾¤Ǥ¹¡£ - ÅŻҽð̾¤ò»Ȥ¦¤«¤ɤ¦¤«¡¢¤ޤ¿¡¢ - ¤ɤμïÎà¤νð̾¤ò»Ȥ¦¤«¤Ȥ¤¤¦ÁªÂ򤬤¢¤ê¤ޤ¹¡£ - Èë̩¸°¤ǽð̾¤¹¤뤳¤ȤǶ¦ͭ¸°¤òÀ¸À®¤¹¤·¡¢¾ðÊó¸򴹤¹¤ë»þ¤Î - ¥ޥ󡦥¤¥󡦥¶¡¦¥ߥɥ빶·â¤òËɤ°¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - [AC96, p516]

    - - -

    ¥ǡ¼¥¿Ä̿®¤ΰŹæ½Ñ

    - -

    SSL ¤ϥ»¥å·¥ç¥ó¤Υá¥å»¡¼¥¸¤ΰŹ沽¤ËÁ°½Ҥ·¤¿ - ½¾Í跿°Źæ(ÂоΰŹæ)¤òÍѤ¤¤ޤ¹¡£ - °Ź沽¤·¤ʤ¤¤Ȥ¤¤¦ÁªÂò»è¤â´ޤá¶å¤ĤÎÁªÂò»褬¤¢¤ê¤ޤ¹:

    - -
      -
    • °Ź沽¤ʤ·
    • -
    • ¥¹¥ȥ꡼¥à°Źæ -
        -
      • 40-bit ¸°¤ǤÎ RC4
      • -
      • 128-bit ¸°¤ǤÎ RC4
      • -
    • -
    • CBC ¥֥í¥å¯°Źæ -
      • 40 bit ¸°¤ǤÎ RC2
      • -
      • 40 bit ¸°¤ǤÎ DES
      • -
      • 56 bit ¸°¤ǤÎ DES
      • -
      • 168 bit ¸°¤ǤÎ Triple-DES
      • -
      • Idea (128 bit ¸°)
      • -
      • Fortezza (96 bit ¸°)
      • -
    • -
    - -

    ¤³¤³¤ǤÎ CBC ¤ȤϰŹæ¥֥í¥å¯Ϣº¿ (Cipher Block Chaining) - ¤Îά¤ǡ¢°ì¤ÄÁ°¤ΰŹ沽¤µ¤줿°Źæʸ¤ΰìÉô¤¬ - ¥֥í¥å¯¤ΰŹ沽¤˻Ȥï¤ì¤뤳¤Ȥò°Ọ̃¤·¤ޤ¹¡£ - DES ¤ϥǡ¼¥¿°Ź沽ɸ½൬³Ê (Data Encryption Standard) - [AC96, ch12] ¤Îά¤ǡ¢ - DES40 ¤ä 3DES_EDE ¤ò´ޤत¤¯¤Ĥâ¤μïÎब¤¢¤ê¤ޤ¹¡£ - Idea ¤Ϻǹâ¤ʤâ¤Τΰì¤Ĥǡ¢°Źæ½ÑŪ¤ˤϸ½ºߤ¢¤ëÃæ¤Ç - ºǤ⶯ÎϤʤâ¤ΤǤ¹¡£ - RC2 ¤Ï RSA DSI ¤ˤè¤ëÆÈÀêŪ¤ʥ¢¥르¥ꥺ¥à¤Ǥ¹¡£ - [AC96, - ch13]

    - - -

    ¥À¥¤¥¸¥§¥¹¥ȴؿô

    - -

    - ¥À¥¤¥¸¥§¥¹¥ȴؿô¤ÎÁªÂò¤ϥ쥳¡¼¥ɥæ¥˥åȤ«¤é¤ɤΤ褦¤˥À¥¤¥¸¥§¥¹¥Ȥ¬À¸À®¤µ¤ì¤뤫¤ò·èÄꤷ¤ޤ¹¡£ - SSL ¤ϰʲ¼¤򥵥ݡ¼¥Ȥ·¤ޤ¹:

    - -
      -
    • ¥À¥¤¥¸¥§¥¹¥Ȥʤ·
    • -
    • MD5 (128-bit ¥ϥå·¥å)
    • -
    • Secure Hash Algorithm (SHA-1) (160-bit ¥ϥå·¥å)
    • -
    - -

    ¥á¥å»¡¼¥¸¥À¥¤¥¸¥§¥¹¥ȤÏ Message Authentication Code (MAC) - ¤ÎÀ¸À®¤˻Ȥï¤졢¥á¥å»¡¼¥¸¤ȶ¦¤˰Ź沽¤µ¤졢¥á¥å»¡¼¥¸¤ο®ÍѤò - Ä󶡤·¡¢¥ê¥ץ쥤¹¶·â¤òËɤ®¤ޤ¹¡£

    - - -

    ¥ϥó¥ɥ·¥§¡¼¥¯¥·¡¼¥¯¥¨¥󥹥ץí¥ȥ³¥ë

    - -

    ¥ϥó¥ɥ·¥§¡¼¥¯¥·¡¼¥¯¥¨¥󥹤ϻ°¤ĤΥץí¥ȥ³¥ë¤ò»Ȥ¤¤ޤ¹:

    - -
      -
    • SSL ¥ϥó¥ɥ·¥§¡¼¥¯¥ץí¥ȥ³¥ë¤Ï - ¥¯¥饤¥¢¥ó¥Ȥȥµ¡¼¥д֤ǤÎ SSL ¥»¥å·¥ç¥ó¤γÎΩ¤˻Ȥï¤ì¤ޤ¹¡£
    • -
    • SSL °Źæ»ÅÍÍÊѹ¹¥ץí¥ȥ³¥ë¤Ï - ¥»¥å·¥ç¥ó¤ǤΰŹ楹¥¤¡¼¥Ȥμè¤ê·è¤á¤˻Ȥï¤ì¤ޤ¹¡£
    • -
    • SSL ·ٹð¥ץí¥ȥ³¥ë¤Ï - ¥¯¥饤¥¢¥ó¥ȥµ¡¼¥д֤Ç SSL ¥¨¥顼¤òÅÁ㤹¤ë¤Τ˻Ȥï¤ì¤ޤ¹¡£
    • -
    - -

    »°¤ĤΥץí¥ȥ³¥ë¤ϡ¢¥¢¥ץꥱ¡¼¥·¥ç¥ó¥ץí¥ȥ³¥ë¥ǡ¼¥¿¤ȤȤâ¤ˡ¢ - ¿Þ2¤˼¨¤¹¤Ȥª¤ê SSL ¥쥳¡¼¥ɥץí¥ȥ³¥ë - ¤ǥ«¥ץ»¥벽¤µ¤ì¤ޤ¹¡£ - ¥«¥ץ»¥벽¤µ¤줿¥ץí¥ȥ³¥ë¤ϥǡ¼¥¿¤򸡺º¤·¤ʤ¤ - ²¼ÁؤΥץí¥ȥ³¥ë¤ˤè¤äƥǡ¼¥¿¤Ȥ·¤ÆÅÁ㤵¤ì¤ޤ¹¡£ - ¥«¥ץ»¥벽¤µ¤줿¥ץí¥ȥ³¥ë¤ϲ¼ÁؤΥץí¥ȥ³¥ë¤˴ؤ·¤ưìÀڴØÃΤ·¤ޤ»¤ó¡£

    - -

    -
    - ¿Þ2: SSL ¥ץí¥ȥ³¥륹¥¿¥å¯ -

    - -

    - ¥쥳¡¼¥ɥץí¥ȥ³¥ë¤ˤè¤ë SSL ¥³¥ó¥ȥí¡¼¥ë¥ץí¥ȥ³¥ë¤Υ«¥ץ»¥벽¤ϡ¢ - ¥¢¥¯¥ƥ£¥֤ʥ»¥å·¥ç¥ó¤ÎÆó²óÌܤÎÄ̿®¤¬¤¢¤ä¿¾ì¹硢 - ¥³¥ó¥ȥí¡¼¥ë¥ץí¥ȥ³¥뤬°ÂÁ´¤Ǥ¢¤뤳¤Ȥò°Ọ̃¤·¤ޤ¹¡£ - ´û¤˥»¥å·¥ç¥ó¤¬̵¤¤¾ì¹ç¤ϡ¢Null °Ź楹¥¤¡¼¥Ȥ¬»Ȥï¤졢 - °Ź沽¤ϹԤʤï¤줺¡¢¥»¥å·¥ç¥󤬳ÎΩ¤¹¤ë¤ޤǤÏ - ¥À¥¤¥¸¥§¥¹¥Ȥâ̵¤¤¾õÂ֤Ȥʤê¤ޤ¹¡£

    - - -

    ¥ǡ¼¥¿Ä̿®

    - -

    ¿Þ3¤˼¨¤µ¤ì¤ë SSL ¥쥳¡¼¥ɥץí¥ȥ³¥ë - ¤ϥ¯¥饤¥¢¥ó¥Ȥȥµ¡¼¥д֤Υ¢¥ץꥱ¡¼¥·¥ç¥ó¤ä - SSL ¥³¥ó¥ȥí¡¼¥ë¥ǡ¼¥¿¤ÎÄ̿®¤˻Ȥï¤ì¤ޤ¹¡£ - ¤³¤Υǡ¼¥¿¤Ϥè¤꾮¤µ¤¤¥æ¥˥åȤËʬ¤±¤é¤줿¤ꡢ - ¤¤¤¯¤Ĥ«¤ιâµé¥ץí¥ȥ³¥ë¤ò¤ޤȤá¤ưì¥æ¥˥åȤȤ·¤ÆÄ̿®¤¬ - ¹Ԥʤï¤ì¤뤳¤Ȥ⤢¤ê¤ޤ¹¡£ - ¥ǡ¼¥¿¤򰵽̤·¡¢¥À¥¤¥¸¥§¥¹¥Ƚð̾¤òźÉդ·¤ơ¢ - ¤³¤ì¤é¤Υæ¥˥åȤò°Ź沽¤·¤¿¤ΤÁ¡¢¥١¼¥¹¤ȤʤäƤ¤¤ë - ¿®ÍêÀ­¤Τ¢¤ë¥ȥé¥󥹥ݡ¼¥ȥץí¥ȥ³¥ë¤òÍѤ¤¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - (Ãí°Õ: ¸½ºߥ᥸¥㡼¤Ê SLL ¼ÂÁõ¤ǰµ½̤򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ë¤â¤ΤϤ¢¤ê¤ޤ»¤ó)

    - -

    -
    - ¿Þ 3: SSL ¥쥳¡¼¥ɥץí¥ȥ³¥ë -

    - - -

    HTTP Ä̿®¤ΰÂÁ´²½

    - -

    ¤褯¤¢¤ë SSL ¤λȤ¤Êý¤ϥ֥饦¥¶¤ȥ¦¥§¥֥µ¡¼¥д֤Î HTTP Ä̿® - ¤ΰÂÁ´²½¤Ǥ¹¡£ - ¤³¤ì¤ϡ¢½¾Íè¤ΰÂÁ´¤ǤϤʤ¤ HTTP ¤λÈÍѤò½ü³°¤¹¤ë¤â¤ΤǤϤ¢¤ê¤ޤ»¤ó¡£ - °ÂÁ´²½¤µ¤줿¤â¤Τϼç¤Ë SSH ¾å¤ÎÉáÄ̤Î HTTP ¤ǡ¢HTTPS ¤ȸƤФì¤ޤ¹¡£ - Â礭¤ʰ㤤¤ϡ¢URL ¥¹¥­¡¼¥à¤Ë http ¤ÎÂå¤ï¤ê¤Ë https - ¤òÍѤ¤¡¢¥µ¡¼¥Ф¬Ê̤Υݡ¼¥Ȥò»Ȥ¦¤³¤ȤǤ¹ (¥ǥե©¥ë¥ȤǤÏ443)¡£ - ¤³¤줬¼ç¤Ë mod_ssl ¤¬ Apache ¥¦¥§¥֥µ¡¼¥ФËÄ󶡤¹¤뵡ǽ¤Ǥ¹¡£

    - -
    top
    -
    -

    »²¹Íʸ¸¥

    - -
    -
    [AC96]
    -
    Bruce Schneier, Applied Cryptography, 2nd Edition, Wiley, -1996. See http://www.counterpane.com/ for various other materials by Bruce -Schneier.
    - -
    [X208]
    -
    ITU-T Recommendation X.208, Specification of Abstract Syntax Notation -One (ASN.1), 1988. See for instance http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-X.208-198811-I. -
    - -
    [X509]
    -
    ITU-T Recommendation X.509, The Directory - Authentication -Framework. See for instance http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-X.509. -
    - -
    [PKCS]
    -
    Public Key Cryptography Standards (PKCS), -RSA Laboratories Technical Notes, See http://www.rsasecurity.com/rsalabs/pkcs/.
    - -
    [MIME]
    -
    N. Freed, N. Borenstein, Multipurpose Internet Mail Extensions -(MIME) Part One: Format of Internet Message Bodies, RFC2045. -See for instance http://ietf.org/rfc/rfc2045.txt.
    - -
    [SSL2]
    -
    Kipp E.B. Hickman, The SSL Protocol, 1995. See http://www.netscape.com/eng/security/SSL_2.html.
    - -
    [SSL3]
    -
    Alan O. Freier, Philip Karlton, Paul C. Kocher, The SSL Protocol -Version 3.0, 1996. See http://www.netscape.com/eng/ssl3/draft302.txt.
    - -
    [TLS1]
    -
    Tim Dierks, Christopher Allen, The TLS Protocol Version 1.0, -1999. See http://ietf.org/rfc/rfc2246.txt.
    -
    -
    -
    -

    Available Languages:  en  | - ja 

    -
    - \ No newline at end of file diff --git a/docs/manual/ssl/ssl_intro.html.ja.utf8 b/docs/manual/ssl/ssl_intro.html.ja.utf8 new file mode 100644 index 00000000000..3ada8ae4fac --- /dev/null +++ b/docs/manual/ssl/ssl_intro.html.ja.utf8 @@ -0,0 +1,727 @@ + + + + + +SSL/TLS 暗号化: はじめに - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    SSL/TLS 暗号化: はじめに

    +
    +

    翻訳済み言語:  en  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +
    +

    標準規格の良い所は、たくさんの規格から選べるということだ。 +そして、もし本当にどの規格も気に入らなければ、 +一年待つだけで探していた規格が現れる。

    + +

    -- A. Tanenbaum, "Introduction to +Computer Networks"

    +
    + +

    +入門ということで、この章は Web、HTTP、Apache に通じている +読者向けですが、セキュリティ専門家向けではありません。 +SSL プロトコルの決定的な手引きであるつもりはありません。 +また、組織内の認証管理のための特定のテクニックや、 +特許や輸出規制などの重要な法的な問題についても扱いません。 +むしろ、更なる研究への出発点として色々な概念、定義、例を並べることで + mod_ssl のユーザに基礎知識を提供する事を目的としています。

    + +

    ここに示された内容は主に、原著者の許可の下 +The Open Group Research Institute の Frederick J. Hirsch + 氏の記事 +Introducing SSL and Certificates using SSLeay を基にしています。 +氏の記事は Web Security: A Matter of +Trust, World Wide Web Journal, Volume 2, Issue 3, Summer 1997 +に掲載されました。 +肯定的な意見は Frederick Hirsch 氏 + (元記事の著者) へ全ての苦情は Ralf S. Engelschall ( +mod_ssl の作者) へお願いします。 +[訳注: 訳については +Apache ドキュメント翻訳プロジェクト +へお願いします。]

    +
    + +
    top
    +
    +

    暗号化技術

    + +

    SSL を理解するには、暗号アルゴリズム、 +メッセージダイジェスト関数(別名: 一方向関数、ハッシュ関数)、 +電子署名などへの理解が必要です。 +これらの技術は本が丸ごと必要な題目で +(例えば [AC96] を参照)、 +プライバシー、信用、認証などの技術の基礎となっています。

    + +

    暗号アルゴリズム

    + +

    例えば、アリスが送金のために銀行にメッセージを送りたいとします。 + 口座番号や送金の金額が含まれるため、 + アリスはそのメッセージを秘密にしたいと思います。 + 解決方法の一つは暗号アルゴリズムを使って、メッセージを + 読ませたい人以外は読むことができない暗号化された + 形態に変えてしまうことです。 + その形態になると、 + メッセージは秘密の鍵によってのみ解釈することができます。 + 鍵なしでは、メッセージは役に立ちません。 + 良い暗号アルゴリズムは、侵入者が元のテキストを解読することを + 非常に難しくするため、努力が割に合わなくさせます。

    + +

    暗号アルゴリズムには + 従来型と公開鍵の二つの種類があります。

    + +
    +
    従来型暗号
    +
    対称暗号としても知られ、 + 送信者と受信者が鍵を共有することが必要です。 + 鍵とは、メッセージを暗号化したり復号するのに使われる秘密 + の情報のことです。 + もし、この鍵が秘密なら、送信者と受信者以外は誰もメッセージを読 + むことができません。 + もしも、アリスと銀行が秘密の鍵を知っているなら、 + 彼らはお互いに秘密のメッセージを送ることができるでしょう。 + ただし、事前に内密に鍵を選ぶという仕事は問題を含んでいます。
    + +
    公開鍵暗号
    +
    非対称暗号としても知られ、 + メッセージを暗号化することのできる二つの鍵 + を使用するアルゴリズムを定義することで鍵のやり取りの問題を解決 + します。 + もし、ある鍵が暗号化に使われたなら、 + もう片方の鍵で復号しなければいけません。 + この方式によって、一つの鍵を公表して(公開鍵)、 + もう片方を秘密にしておく(秘密鍵)だけで、 + 安全なメッセージを受け取ることができます。
    +
    + +

    誰もが暗号化されたメッセージを公開鍵によって暗号化 + することができますが、秘密鍵の持ち主だけがそれを読むことが + できます。 + この方法で、銀行の公開鍵を使って暗号化することで、 + アリスは秘密のメッセージを送ることができます。 + 銀行のみが復号することができます。

    + + +

    メッセージダイジェスト

    + +

    アリスはメッセージを秘密にすることができますが、 + 誰かが例えば自分に送金するようにメッセージを変更したり、 + 別のものに置き換えてしまうかもしれないという問題があります。 + アリスのメッセージの信用を保証する方法の一つは、 + メッセージの簡潔なダイジェストを作って、それも銀行に送るというものです。 + メッセージを受け取ると銀行もダイジェストを作成し、 + アリスが送ったものと比べます。もし一致したなら、 + 受け取ったメッセージは無傷だということになります。

    + +

    このような要約はメッセージダイジェスト、 + 一方行関数、またはハッシュ関数と呼ばれます。 + メッセージダイジェストは長い可変長のメッセージから + 短い固定長の表現を作るのに使われます。 + ダイジェストアルゴリズムはメッセージから + 一意なダイジェストを生成するように作られています。 + メッセージダイジェストはダイジェストから元のメッセージを + 判定するのがとても難しいようにできています。 + また、同じ要約を作成する二つのメッセージを探すのは不可能です。 + よって、同じ要約を使ってメッセージを置き換えるという + 可能性を排除しています。

    + +

    アリスへのもう一つの問題は、このダイジェストを安全に送る方法を探すことです。 +これができれば、メッセージの信用が保証されます。 +一つの方法はこのダイジェストに電子署名を含むことです。

    + + +

    電子署名

    +

    アリスが銀行にメッセージを送ったとき、銀行は、 +侵入者が彼女になりすまして彼女の口座への取引を申請していないか、 +メッセージが本当に彼女からのものか確実に分からなければいけません。 +アリスによって作成され、メッセージに含まれた +電子署名がここで役に立ちます。

    + +

    電子署名はメッセージのダイジェストやその他の情報(処理番号など)を +送信者の秘密鍵で暗号化することで作られます。 +誰もが公開鍵を使って署名を復号することができますが、 +署名者のみが秘密鍵を知っています。 +これは、彼らのみが署名しえたことを意味します。 +ダイジェストを電子署名に含むことは、 +その署名がそのメッセージのみに有効であることを意味します。 +これは、誰もダイジェストを変えて署名をすることができないため、 +メッセージの信用も保証します。

    + +

    侵入者が署名を傍受して後日に再利用するのを防ぐため +電子署名には一意な処理番号が含まれます。 +これは、アリスがそんなメッセージは送っていないと言う詐欺 +から銀行を守ります。 +彼女だけが署名しえたからです。(否認防止)

    + +
    top
    +
    +

    証明書

    + +

    アリスは秘密のメッセージを銀行に送り、 +署名をして、メッセージの信用を保証することができるおうになりましたが、 +通信している相手が本当に銀行なのか確かめなくてはいけません。 +これは、彼女が使う公開鍵が銀行の秘密鍵と対になっているものか、 +彼女は確かめなくてはいけないということを意味します。 +同様に、銀行はメッセージの署名が本当にアリスの署名か確認する必要が +あります。

    + +

    もし両者に身元を証明し、公開鍵を確認し、また信頼された機関が署名 +した証明書があれば、両者とも通信相手について正しい相手だと +確信することができます。 +そのような信頼された機関は認証局 + (Certificate Authority または CA) と呼ばれ、 +証明書 (certificate) が認証 (authentication) に使われます。

    + +

    証明書の内容

    + +

    証明書は公開鍵と個人、サーバ、その他の主体の実在の身元を + 関連付けます。 + 表1に示されるように証明対象の情報は + 身元証明の情報(識別名)と公開鍵が含まれます。 + 証明書はまた、認証局の身元証明と署名、そして証明書の有効期間を + 含みます。 + シリアルナンバーなどの認証局の管理上の情報や + その他の追加の情報が含まれているかもしれません。

    + +

    表1: 証明書情報

    + + + + + + + + + + + + + +
    証明対象識別名、公開鍵
    発行者識別名、公開鍵
    有効期間開始日、失効日
    管理情報バージョン、シリアルナンバー
    拡張情報基本的な制約、ネットスケープフラッグ、その他
    + + +

    識別名(ディスティングイッシュ・ネーム)は特定の状況における + 身分証明を提供するのに使われています。例えば、ある人は + 私用と会社とで別々の身分証明を持つかもしれません。 + + 識別名は X.509 標準規格 [X509] で定義されています。 + X.509 標準規格は、項目、項目名、そして項目の略称を定義しています。(表 + 2 参照)

    + +

    表 2: 識別名情報

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    識別名項目略称説明例
    Common Name (コモンネーム)CN認証される名前
    + SSL接続するURL
    CN=www.example.com
    Organization or Company (組織名)O団体の正式英語組織名O=Example Japan K.K.
    Organizational Unit (部門名)OU部署名などOU=Customer Service
    City/Locality (市区町村)L所在してる市区町村L=Sapporo
    State/Province (都道府県)ST所在してる都道府県ST=Hokkaido
    Country(国)C所在している国名の ISO コード
    + 日本の場合 JP +
    C=JP
    + + +

    認証局はどの項目が省略可能でどれが必須かの方針を定義する + かもしれません。項目の内容についても認証局や証明書のユーザからの + 要件があるかもしれません。 + 例えば、ネットスケープのブラウザはサーバの証明書の + Common Name (コモンネーム)がサーバのドメイン名の + *.example.com + というようなワイルドカードのパターンにマッチすること + を要求します。

    + +

    バイナリ形式の証明書は ASN.1 表記法 + [X208] [PKCS] で + 定義されています。 + この表記法は内容をどのように記述するかを定義し、 + 符号化の規定がこの情報がどのようにバイナリ形式に変換されるかを + 定義します。 + 証明書のバイナリ符号化は Distinguished Encoding + Rules (DER) で定義され、それはより一般的な Basic Encoding Rules + (BER) に基づいています。 + バイナリ形式を扱うことのできない送信では、 + バイナリ形式は Base64 符号化 [MIME] で + ASCII 形式に変換されることがあります。 + このように符号化され、以下の例に示されるように区切り行に + 挟まれたものは PEM 符号化されたと言います。 + (PEM の名前は "Privacy Enhanced Mail" に由来します)

    + +

    PEM 符号化された証明書の例 (example.crt)

    -----BEGIN CERTIFICATE-----
    +MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx
    +FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG
    +A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv
    +cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz
    +bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL
    +MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h
    +a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl
    +cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN
    +AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
    +gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b
    +vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa
    +lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV
    +HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB
    +gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt
    +2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7
    +dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
    +-----END CERTIFICATE-----
    + + +

    認証局

    + +

    まず証明書の申請の情報を確認することで、 + 認証局は秘密鍵の持ち主の身元を保証します。 + 例えば、アリスが個人証明書を申請したとすると、 + 認証局はアリスが証明書の申請が主張する通りの + 人物だということを確認しなくてはいけません。

    + +

    証明書階層構造

    + +

    認証局は他の認証局への証明書を発行することができます。 + 未知の証明書を調べる時に、アリスはその証明書の発行者 + に自信が持てるまで、発行者の証明書を + その上位階層の認証局をたどって調べる必要があります。 + 「悪質な」証明書の危険性を減らすため、 + 彼女は限られた連鎖の発行者のみ信頼するように + 決めることもできます。

    + + +

    最上位認証局の作成

    + +

    前に述べたように、全ての証明書について、 + 最上位の認証局(CA)までそれぞれの発行者が + 対象の身元証明の有効性を明らかにする必要があります。 + 問題は、誰がその最上位の認証機関の証明書を保証するのか、 + ということです。 + このような場合に限り、証明書は「自己署名」されます。 + つまり、証明書の発行者と証明対象が同じということになります。 + その結果、自己署名された証明書を信用するには + 細心の注意が必要です。 + 最上位認証局が公開鍵を広く公表することで、 + その鍵を信頼するリスクを低くすることができます。 + もし、他人がその認証局になりすました時に、それが露見しや + すいからです。 + 多くのブラウザは有名な認証局を信頼するように + 設定されています。

    + +

    Thawte + や VeriSign + のような多くの会社が認証局として開設しました。 + このような会社は以下のサービスを提供します:

    + +
      +
    • 証明書申請の確認
    • +
    • 証明書申請の処理
    • +
    • 証明書の発行と管理
    • +
    + +

    自分で認証局を作ることも可能です。 + インターネット環境では危険ですが、 + 個人やサーバの身元証明が簡単に行える組織の + イントラネット内では役に立つかもしれません。

    + + +

    証明書管理

    + +

    認証局の開設は徹底した管理、技術、運用の体制を必要とする + 責任のある仕事です。 + 認証局は証明書を発行するだけでなく、 + 管理もしなければなりません。 + 具体的には、証明書がいつまで有効かを決定し、更新し、 + また既に発行されたが失効した証明書のリスト + (Certificate Revocation Lists または CRL) + を管理しなければいけません。 + 例えば、アリスが会社から社員として証明書を与えられたとします。 + そして、アリスが会社を辞めるときには証明書を取り消さなければ + いけないとします。 + 証明書は次々と人に渡されていくものなので、 + 証明書そのものから、それが取り消されたか判断することは + 不可能です。 + よって、証明書の有効性を調べるときには、 + 認証局に連絡して CRL を照合する必要があります。 + 普通この過程は自動化されているものではありません。

    + +

    注意

    +

    デフォルトでブラウザに設定されていない認証局を使った場合、 + 認証局の証明書をブラウザに読み込んで、 + ブラウザがその認証局によって署名されたサーバの証明書を + 有効化する必要があります。 + 一度読み込まれると、その認証局によって署名された全ての + 証明書を受け入れるため、危険を伴います。

    +
    + + + +
    top
    +
    +

    Secure Sockets Layer (SSL)

    + +

    Secure Sockets Layer プロトコルは信頼性のあるコネクション型の +ネットワーク層のプロトコル(例えば、TCP/IP)と +アプリケーション層のプロトコル(例えば、HTTP) +の間に置くことができます。 +SSL は、相互認証によってサーバとクライアント間の安全な通信を、 +電子署名によってデータの完全性を、 +そして暗号化によってプライバシを提供します。

    + +

    SSL プロトコルは暗号化、ダイジェスト、電子署名について、 +様々なアルゴリズムをサポートするようにできています。 +こうすることで、法や輸出の規制を考慮に入れて、サーバに合わせた +アルゴリズムを選ぶことができ、また、新しいアルゴリズムを +利用していくことも可能にしています。 +アルゴリズムの選択はプロトコルセッション開始時に +サーバとクライアント間で取り決められます。

    + +

    表4: SSL プロトコルのバージョン

    + + + + + + + + + + + + + + + + + + + +
    バージョン出典説明ブラウザのサポート
    SSL v2.0Vendor Standard (Netscape Corp. より) [SSL2]実装が現存する初めての SSL プロトコル- NS Navigator 1.x/2.x
    + - MS IE 3.x
    + - Lynx/2.8+OpenSSL
    SSL v3.0Expired Internet Draft (Netscape Corp. より) [SSL3]特定のセキュリティ攻撃を防ぐための改訂、 + 非RSA 暗号の追加、証明書階層構造のサポート- NS Navigator 2.x/3.x/4.x
    + - MS IE 3.x/4.x
    + - Lynx/2.8+OpenSSL
    TLS v1.0Proposed Internet Standard (IETF より) [TLS1]MAC レイヤを HMAC へ更新、ブロック暗号の block + padding、メッセージ順序の標準化、警告文の充実などのため + SSL 3.0 を改訂。- Lynx/2.8+OpenSSL
    + + +

    表4に示されるとおり、SSL プロトコルには +いくつものバージョンがあります。 +表にも書かれているように、SSL 3.0 の利点の一つは +証明書階層構造をサポートすることです。 +この機能によって、サーバは自分の証明書に加えて、 +発行者の証明書をブラウザに渡すことができます。 +証明書階層構造によって、 +ブラウザに発行者の証明書が直接登録されていなくても、 +階層の中に含まれていれば、 +ブラウザはサーバの証明書を有効化することができます。 +SSL 3.0 は現在 Internet Engineering Task Force (IETF) +によって開発されている Transport Layer Security +[TLS] プロトコル標準規格の基礎となっています。

    + +

    セッションの確立

    + +

    図1で示されるように、 + セッションの確立はクライアントとサーバ間の + ハンドシェークシークエンスによって行なわれます。 + サーバが証明書を提供するか、クライアントの証明書をリクエストするか + というサーバの設定により、このシークエンスは異なるものとなります。 + 暗号情報の管理のために、追加のハンドシェーク過程が必要になる + 場合もありますが、この記事では + よくあるシナリオを手短に説明します。 + 全ての可能性についは、SSL 仕様書を参照してください。

    + +

    注意

    +

    一度 SSL セッションが確立すると、セッションを再利用することで、 + セッションを開始するための多くの過程を繰り返すという + パフォーマンスの損失を防ぎます。 + そのため、サーバは全てのセッションに一意なセッション識別名を + 割り当て、サーバにキャッシュし、クライアントは次回から + (識別名がサーバのキャッシュで期限切れになるまでは) + ハンドシェークなしで接続することができます。

    +
    + +

    +
    + 図1: SSL + ハンドシェークシークエンス概略

    + +

    サーバとクライアントで使われる + ハンドシェークシークエンスの要素を以下に示します:

    + +
      +
    1. データ通信に使われる暗号スイートの取り決め
    2. +
    3. クライアントとサーバ間でのセッション鍵の確立と共有
    4. +
    5. オプションとして、クライアントに対するサーバの認証
    6. +
    7. オプションとして、サーバに対するクライアントの認証
    8. +
    + +

    第一ステップの暗号スイート取り決めによって、 + サーバとクライアントはそれぞれにあった + 暗号スイートを選ぶことができます。 + SSL3.0 プロトコルの仕様書は 31 の暗号スイートを定義しています。 + 暗号スイートは以下のコンポーネントにより定義されています:

    + +
      +
    • 鍵の交換手段
    • +
    • データ通信の暗号術
    • +
    • Message Authentication Code (MAC) 作成のための + メッセージダイジェスト
    • +
    + +

    これらの三つの要素は以下のセクションで説明されています。

    + + +

    鍵の交換手段

    + +

    鍵の交換手段はアプリケーションのデータ通信に使われ、 + 共有される対称暗号鍵をどのようにがクライアントとサーバで + 取り決めるかを定義します。 + SSL 2.0 は RSA 鍵交換しか使いませんが、 + SSL 3.0 は証明書が使われるときは RSA 鍵交換を使い、 + 証明書が無く、クライアントとサーバの事前の通信が無い場合は + Diffie-Hellman 鍵交換を使う + など様々な鍵交換アルゴリズムをサポートします。

    + +

    鍵の交換方法における一つの選択肢は電子署名です。 + 電子署名を使うかどうか、また、 + どの種類の署名を使うかという選択があります。 + 秘密鍵で署名することで共有鍵を生成すし、情報交換する時の + マン・イン・ザ・ミドル攻撃を防ぐことができます。 + [AC96, p516]

    + + +

    データ通信の暗号術

    + +

    SSL はセッションのメッセージの暗号化に前述した + 従来型暗号(対称暗号)を用います。 + 暗号化しないという選択肢も含め九つの選択肢があります:

    + +
      +
    • 暗号化なし
    • +
    • ストリーム暗号 +
        +
      • 40-bit 鍵での RC4
      • +
      • 128-bit 鍵での RC4
      • +
    • +
    • CBC ブロック暗号 +
      • 40 bit 鍵での RC2
      • +
      • 40 bit 鍵での DES
      • +
      • 56 bit 鍵での DES
      • +
      • 168 bit 鍵での Triple-DES
      • +
      • Idea (128 bit 鍵)
      • +
      • Fortezza (96 bit 鍵)
      • +
    • +
    + +

    ここでの CBC とは暗号ブロック連鎖 (Cipher Block Chaining) + の略で、一つ前の暗号化された暗号文の一部が + ブロックの暗号化に使われることを意味します。 + DES はデータ暗号化標準規格 (Data Encryption Standard) + [AC96, ch12] の略で、 + DES40 や 3DES_EDE を含むいくつもの種類があります。 + Idea は最高なものの一つで、暗号術的には現在ある中で + 最も強力なものです。 + RC2 は RSA DSI による独占的なアルゴリズムです。 + [AC96, + ch13]

    + + +

    ダイジェスト関数

    + +

    + ダイジェスト関数の選択はレコードユニットからどのようにダイジェストが生成されるかを決定します。 + SSL は以下をサポートします:

    + +
      +
    • ダイジェストなし
    • +
    • MD5 (128-bit ハッシュ)
    • +
    • Secure Hash Algorithm (SHA-1) (160-bit ハッシュ)
    • +
    + +

    メッセージダイジェストは Message Authentication Code (MAC) + の生成に使われ、メッセージと共に暗号化され、メッセージの信用を + 提供し、リプレイ攻撃を防ぎます。

    + + +

    ハンドシェークシークエンスプロトコル

    + +

    ハンドシェークシークエンスは三つのプロトコルを使います:

    + +
      +
    • SSL ハンドシェークプロトコルは + クライアントとサーバ間での SSL セッションの確立に使われます。
    • +
    • SSL 暗号仕様変更プロトコルは + セッションでの暗号スイートの取り決めに使われます。
    • +
    • SSL 警告プロトコルは + クライアントサーバ間で SSL エラーを伝達するのに使われます。
    • +
    + +

    三つのプロトコルは、アプリケーションプロトコルデータとともに、 + 図2に示すとおり SSL レコードプロトコル + でカプセル化されます。 + カプセル化されたプロトコルはデータを検査しない + 下層のプロトコルによってデータとして伝達されます。 + カプセル化されたプロトコルは下層のプロトコルに関して一切関知しません。

    + +

    +
    + 図2: SSL プロトコルスタック +

    + +

    + レコードプロトコルによる SSL コントロールプロトコルのカプセル化は、 + アクティブなセッションの二回目の通信があった場合、 + コントロールプロトコルが安全であることを意味します。 + 既にセッションが無い場合は、Null 暗号スイートが使われ、 + 暗号化は行なわれず、セッションが確立するまでは + ダイジェストも無い状態となります。

    + + +

    データ通信

    + +

    図3に示される SSL レコードプロトコル + はクライアントとサーバ間のアプリケーションや + SSL コントロールデータの通信に使われます。 + このデータはより小さいユニットに分けられたり、 + いくつかの高級プロトコルをまとめて一ユニットとして通信が + 行なわれることもあります。 + データを圧縮し、ダイジェスト署名を添付して、 + これらのユニットを暗号化したのち、ベースとなっている + 信頼性のあるトランスポートプロトコルを用いるかもしれません。 + (注意: 現在メジャーな SLL 実装で圧縮をサポートしているものはありません)

    + +

    +
    + 図 3: SSL レコードプロトコル +

    + + +

    HTTP 通信の安全化

    + +

    よくある SSL の使い方はブラウザとウェブサーバ間の HTTP 通信 + の安全化です。 + これは、従来の安全ではない HTTP の使用を除外するものではありません。 + 安全化されたものは主に SSH 上の普通の HTTP で、HTTPS と呼ばれます。 + 大きな違いは、URL スキームに http の代わりに https + を用い、サーバが別のポートを使うことです (デフォルトでは443)。 + これが主に mod_ssl が Apache ウェブサーバに提供する機能です。

    + +
    top
    +
    +

    参考文献

    + +
    +
    [AC96]
    +
    Bruce Schneier, Applied Cryptography, 2nd Edition, Wiley, +1996. See http://www.counterpane.com/ for various other materials by Bruce +Schneier.
    + +
    [X208]
    +
    ITU-T Recommendation X.208, Specification of Abstract Syntax Notation +One (ASN.1), 1988. See for instance http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-X.208-198811-I. +
    + +
    [X509]
    +
    ITU-T Recommendation X.509, The Directory - Authentication +Framework. See for instance http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-X.509. +
    + +
    [PKCS]
    +
    Public Key Cryptography Standards (PKCS), +RSA Laboratories Technical Notes, See http://www.rsasecurity.com/rsalabs/pkcs/.
    + +
    [MIME]
    +
    N. Freed, N. Borenstein, Multipurpose Internet Mail Extensions +(MIME) Part One: Format of Internet Message Bodies, RFC2045. +See for instance http://ietf.org/rfc/rfc2045.txt.
    + +
    [SSL2]
    +
    Kipp E.B. Hickman, The SSL Protocol, 1995. See http://www.netscape.com/eng/security/SSL_2.html.
    + +
    [SSL3]
    +
    Alan O. Freier, Philip Karlton, Paul C. Kocher, The SSL Protocol +Version 3.0, 1996. See http://www.netscape.com/eng/ssl3/draft302.txt.
    + +
    [TLS1]
    +
    Tim Dierks, Christopher Allen, The TLS Protocol Version 1.0, +1999. See http://ietf.org/rfc/rfc2246.txt.
    +
    +
    +
    +

    翻訳済み言語:  en  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/ssl/ssl_intro.xml b/docs/manual/ssl/ssl_intro.xml index 9dbeb078da1..3b17b372451 100644 --- a/docs/manual/ssl/ssl_intro.xml +++ b/docs/manual/ssl/ssl_intro.xml @@ -4,12 +4,12 @@ diff --git a/docs/manual/ssl/ssl_intro.xml.ja b/docs/manual/ssl/ssl_intro.xml.ja index f88b2d901fa..ae749af56f5 100644 --- a/docs/manual/ssl/ssl_intro.xml.ja +++ b/docs/manual/ssl/ssl_intro.xml.ja @@ -1,15 +1,15 @@ - + - +
    -$B>ZL@=q(B -

    $B%"%j%9$OHkL)$N%a%C%;!<%8$r6d9T$KAw$j!"(B -$B=pL>$r$7$F!"%a%C%;!<%8$N?.MQ$rJ]>Z$9$k$3$H$,$G$-$k$*$&$K$J$j$^$7$?$,!"(B -$BDL?.$7$F$$$kAj$,K\Ev$K%"%j%9$N=pL>$+3NG'$9$kI,MW$,(B -$B$"$j$^$9!#(B

    - -

    $B$b$7N>ZL@$7!"8x3+80$r3NG'$7!"$^$??.Mj$5$l$?5!4X$,=pL>(B -$B$7$?>ZL@=q$,$"$l$P!"N>$BG'>Z6I(B - (Certificate Authority $B$^$?$O(B CA) $B$H8F$P$l!"(B -$B>ZL@=q(B (certificate) $B$,G'>Z(B (authentication) $B$K;H$o$l$^$9!#(B

    +証明書 +

    アリスは秘密のメッセージを銀行に送り、 +署名をして、メッセージの信用を保証することができるおうになりましたが、 +通信している相手が本当に銀行なのか確かめなくてはいけません。 +これは、彼女が使う公開鍵が銀行の秘密鍵と対になっているものか、 +彼女は確かめなくてはいけないということを意味します。 +同様に、銀行はメッセージの署名が本当にアリスの署名か確認する必要が +あります。

    + +

    もし両者に身元を証明し、公開鍵を確認し、また信頼された機関が署名 +した証明書があれば、両者とも通信相手について正しい相手だと +確信することができます。 +そのような信頼された機関は認証局 + (Certificate Authority または CA) と呼ばれ、 +証明書 (certificate) が認証 (authentication) に使われます。

    -$B>ZL@=q$NFbMF(B -

    $B>ZL@=q$O8x3+80$H8D?M!"%5!<%P!"$=$NB>$N$BI=(B1$B$K<($5$l$k$h$&$K>ZL@BP>]$N>pJs$O(B - $B?H85>ZL@$N>pJs(B($B<1JLL>(B)$B$H8x3+80$,4^$^$l$^$9!#(B - $B>ZL@=q$O$^$?!"G'>Z6I$N?H85>ZL@$H=pL>!"$=$7$F>ZL@=q$NM-8z4|4V$r(B - $B4^$_$^$9!#(B - $B%7%j%"%k%J%s%P!<$J$I$NG'>Z6I$N4IM}>e$N>pJs$d(B - $B$=$NB>$NDI2C$N>pJs$,4^$^$l$F$$$k$+$b$7$l$^$;$s!#(B

    +証明書の内容 +

    証明書は公開鍵と個人、サーバ、その他の主体の実在の身元を + 関連付けます。 + 表1に示されるように証明対象の情報は + 身元証明の情報(識別名)と公開鍵が含まれます。 + 証明書はまた、認証局の身元証明と署名、そして証明書の有効期間を + 含みます。 + シリアルナンバーなどの認証局の管理上の情報や + その他の追加の情報が含まれているかもしれません。

    - $BI=(B1: $B>ZL@=q>pJs(B + 表1: 証明書情報 - - - - - - - - - + + + + + + + + + +
    $B>ZL@BP>](B$B<1JLL>!"8x3+80(B
    $BH/9T - $B<1JLL>!"8x3+80(B
    $BM-8z4|4V(B$B3+;OF|!"<:8zF|(B
    $B4IM}>pJs(B$B%P!<%8%g%s!"%7%j%"%k%J%s%P!<(B
    $B3HD%>pJs(B$B4pK\E*$J@)Ls!"%M%C%H%9%1!<%W%U%i%C%0!"$=$NB>(B
    証明対象識別名、公開鍵
    発行者識別名、公開鍵
    有効期間開始日、失効日
    管理情報バージョン、シリアルナンバー
    拡張情報基本的な制約、ネットスケープフラッグ、その他
    -

    $B<1JLL>(B($B%G%#%9%F%#%s%0%$%C%7%e!&%M!<%`(B)$B$OFCDj$N>u67$K$*$1$k(B - $B?HJ,>ZL@$rDs6!$9$k$N$K;H$o$l$F$$$^$9!#Nc$($P!"$"$k?M$O(B - $B;dMQ$H2qZL@$r;}$D$+$b$7$l$^$;$s!#(B +

    識別名(ディスティングイッシュ・ネーム)は特定の状況における + 身分証明を提供するのに使われています。例えば、ある人は + 私用と会社とで別々の身分証明を持つかもしれません。 - $B<1JLL>$O(B X.509 $BI8=`5,3J(B [X509] $B$GDj5A$5$l$F$$$^$9!#(B - X.509 $BI8=`5,3J$O!"9`L\!"9`L\L>!"$=$7$F9`L\$NN,>N$rDj5A$7$F$$$^$9!#(B($BI=(B - 2 $B;2>H(B)

    + 識別名は X.509 標準規格 [X509] で定義されています。 + X.509 標準規格は、項目、項目名、そして項目の略称を定義しています。(表 + 2 参照)

    - $BI=(B 2: $B<1JLL>>pJs(B + 表 2: 識別名情報 - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + -
    $B<1JLL>9`L\(B$BN,>N(B$B@bL@(B$BNc(B
    Common Name ($B%3%b%s%M!<%`(B)
    識別名項目略称説明例
    Common Name (コモンネーム) CN$BG'>Z$5$l$kL>A0(B
    - SSL$B@\B3$9$k(BURL
    認証される名前
    + SSL接続するURL
    CN=www.example.com
    Organization or Company ($BAH?%L>(B)
    Organization or Company (組織名) O$BCDBN$N@5<01Q8lAH?%L>(B団体の正式英語組織名 O=Example Japan K.K.
    Organizational Unit ($BItLgL>(B)
    Organizational Unit (部門名) OU$BIt=pL>$J$I(B部署名など OU=Customer Service
    City/Locality ($B;T6hD.B<(B)
    City/Locality (市区町村) L$B=j:_$7$F$k;T6hD.B<(B所在してる市区町村 L=Sapporo
    State/Province ($BETF;I\8)(B)
    State/Province (都道府県) ST$B=j:_$7$F$kETF;I\8)(B所在してる都道府県 ST=Hokkaido
    Country($B9q(B)
    Country(国) C$B=j:_$7$F$$$k9qL>$N(B ISO $B%3!<%I(B
    - $BF|K\$N>l9g(B JP +
    所在している国名の ISO コード
    + 日本の場合 JP
    C=JP
    -

    $BG'>Z6I$O$I$N9`L\$,>JN,2DG=$G$I$l$,I,?\$+$NJ}?K$rDj5A$9$k(B - $B$+$b$7$l$^$;$s!#9`L\$NFbMF$K$D$$$F$bG'>Z6I$d>ZL@=q$N%f!<%6$+$i$N(B - $BMW7o$,$"$k$+$b$7$l$^$;$s!#(B - $BNc$($P!"%M%C%H%9%1!<%W$N%V%i%&%6$O%5!<%P$N>ZL@=q$N(B - Common Name ($B%3%b%s%M!<%`(B)$B$,%5!<%P$N%I%a%$%sL>$N(B +

    認証局はどの項目が省略可能でどれが必須かの方針を定義する + かもしれません。項目の内容についても認証局や証明書のユーザからの + 要件があるかもしれません。 + 例えば、ネットスケープのブラウザはサーバの証明書の + Common Name (コモンネーム)がサーバのドメイン名の *.example.com - $B$H$$$&$h$&$J%o%$%k%I%+!<%I$N%Q%?!<%s$K%^%C%A$9$k$3$H(B - $B$rMW5a$7$^$9!#(B

    - -

    $B%P%$%J%j7A<0$N>ZL@=q$O(B ASN.1 $BI=5-K!(B - [X208] [PKCS] $B$G(B - $BDj5A$5$l$F$$$^$9!#(B - $B$3$NI=5-K!$OFbMF$r$I$N$h$&$K5-=R$9$k$+$rDj5A$7!"(B - $BId9f2=$N5,Dj$,$3$N>pJs$,$I$N$h$&$K%P%$%J%j7A<0$KJQ49$5$l$k$+$r(B - $BDj5A$7$^$9!#(B - $B>ZL@=q$N%P%$%J%jId9f2=$O(B Distinguished Encoding - Rules (DER) $B$GDj5A$5$l!"$=$l$O$h$j0lHLE*$J(B Basic Encoding Rules - (BER) $B$K4p$E$$$F$$$^$9!#(B - $B%P%$%J%j7A<0$r07$&$3$H$N$G$-$J$$Aw?.$G$O!"(B - $B%P%$%J%j7A<0$O(B Base64 $BId9f2=(B [MIME] $B$G(B - ASCII $B7A<0$KJQ49$5$l$k$3$H$,$"$j$^$9!#(B - $B$3$N$h$&$KId9f2=$5$l!"0J2<$NNc$K<($5$l$k$h$&$K6h@Z$j9T$K(B - $B64$^$l$?$b$N$O(B PEM $BId9f2=$5$l$?$H8@$$$^$9!#(B - (PEM $B$NL>A0$O(B "Privacy Enhanced Mail" $B$KM3Mh$7$^$9(B)

    + というようなワイルドカードのパターンにマッチすること + を要求します。

    + +

    バイナリ形式の証明書は ASN.1 表記法 + [X208] [PKCS] で + 定義されています。 + この表記法は内容をどのように記述するかを定義し、 + 符号化の規定がこの情報がどのようにバイナリ形式に変換されるかを + 定義します。 + 証明書のバイナリ符号化は Distinguished Encoding + Rules (DER) で定義され、それはより一般的な Basic Encoding Rules + (BER) に基づいています。 + バイナリ形式を扱うことのできない送信では、 + バイナリ形式は Base64 符号化 [MIME] で + ASCII 形式に変換されることがあります。 + このように符号化され、以下の例に示されるように区切り行に + 挟まれたものは PEM 符号化されたと言います。 + (PEM の名前は "Privacy Enhanced Mail" に由来します)

    - PEM $BId9f2=$5$l$?>ZL@=q$NNc(B (example.crt) + PEM 符号化された証明書の例 (example.crt)
    -----BEGIN CERTIFICATE-----
     MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx
     FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG
    @@ -320,86 +320,86 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
     
    -$BG'>Z6I(B -

    $B$^$:>ZL@=q$N?=@A$N>pJs$r3NG'$9$k$3$H$G!"(B - $BG'>Z6I$OHkL)80$N;}$AZ$7$^$9!#(B - $BNc$($P!"%"%j%9$,8D?M>ZL@=q$r?=@A$7$?$H$9$k$H!"(B - $BG'>Z6I$O%"%j%9$,>ZL@=q$N?=@A$, +認証局 +

    まず証明書の申請の情報を確認することで、 + 認証局は秘密鍵の持ち主の身元を保証します。 + 例えば、アリスが個人証明書を申請したとすると、 + 認証局はアリスが証明書の申請が主張する通りの + 人物だということを確認しなくてはいけません。

    - $B>ZL@=q3,AX9=B$(B -

    $BG'>Z6I$OB>$NG'>Z6I$X$N>ZL@=q$rH/9T$9$k$3$H$,$G$-$^$9!#(B - $BL$CN$N>ZL@=q$rD4$Y$k;~$K!"%"%j%9$O$=$N>ZL@=q$NH/9TZL@=q$r(B - $B$=$N>e0L3,AX$NG'>Z6I$r$?$I$C$FD4$Y$kI,MW$,$"$j$^$9!#(B - $B!V0-ZL@=q$N4m81@-$r8:$i$9$?$a!"(B - $BH`=w$O8B$i$l$?O":?$NH/9T + 証明書階層構造 +

    認証局は他の認証局への証明書を発行することができます。 + 未知の証明書を調べる時に、アリスはその証明書の発行者 + に自信が持てるまで、発行者の証明書を + その上位階層の認証局をたどって調べる必要があります。 + 「悪質な」証明書の危険性を減らすため、 + 彼女は限られた連鎖の発行者のみ信頼するように + 決めることもできます。

    - $B:G>e0LG'>Z6I$N:n@.(B -

    $BA0$K=R$Y$?$h$&$K!"A4$F$N>ZL@=q$K$D$$$F!"(B - $B:G>e0L$NG'>Z6I(B(CA)$B$^$G$=$l$>$l$NH/9T]$N?H85>ZL@$NM-8z@-$rL@$i$+$K$9$kI,MW$,$"$j$^$9!#(B - $BLdBj$O!"C/$,$=$N:G>e0L$NG'>Z5!4X$N>ZL@=q$rJ]>Z$9$k$N$+!"(B - $B$H$$$&$3$H$G$9!#(B - $B$3$N$h$&$J>l9g$K8B$j!">ZL@=q$O!V<+8J=pL>!W$5$l$^$9!#(B - $B$D$^$j!">ZL@=q$NH/9TZL@BP>]$,F1$8$H$$$&$3$H$K$J$j$^$9!#(B - $B$=$N7k2L!"<+8J=pL>$5$l$?>ZL@=q$r?.MQ$9$k$K$O(B - $B:Y?4$NCm0U$,I,MW$G$9!#(B - $B:G>e0LG'>Z6I$,8x3+80$r9-$/8xI=$9$k$3$H$G!"(B - $B$=$N80$r?.Mj$9$k%j%9%/$rDc$/$9$k$3$H$,$G$-$^$9!#(B - $B$b$7!"B>?M$,$=$NG'>Z6I$K$J$j$9$^$7$?;~$K!"$=$l$,O*8+$7$d(B - $B$9$$$+$i$G$9!#(B - $BB?$/$N%V%i%&%6$OM-L>$JG'>Z6I$r?.Mj$9$k$h$&$K(B - $B@_Dj$5$l$F$$$^$9!#(B

    + 最上位認証局の作成 +

    前に述べたように、全ての証明書について、 + 最上位の認証局(CA)までそれぞれの発行者が + 対象の身元証明の有効性を明らかにする必要があります。 + 問題は、誰がその最上位の認証機関の証明書を保証するのか、 + ということです。 + このような場合に限り、証明書は「自己署名」されます。 + つまり、証明書の発行者と証明対象が同じということになります。 + その結果、自己署名された証明書を信用するには + 細心の注意が必要です。 + 最上位認証局が公開鍵を広く公表することで、 + その鍵を信頼するリスクを低くすることができます。 + もし、他人がその認証局になりすました時に、それが露見しや + すいからです。 + 多くのブラウザは有名な認証局を信頼するように + 設定されています。

    Thawte - $B$d(B VeriSign - $B$N$h$&$JB?$/$N2qZ6I$H$7$F3+@_$7$^$7$?!#(B - $B$3$N$h$&$J2q + や VeriSign + のような多くの会社が認証局として開設しました。 + このような会社は以下のサービスを提供します:

      -
    • $B>ZL@=q?=@A$N3NG'(B
    • -
    • $B>ZL@=q?=@A$N=hM}(B
    • -
    • $B>ZL@=q$NH/9T$H4IM}(B
    • +
    • 証明書申請の確認
    • +
    • 証明書申請の処理
    • +
    • 証明書の発行と管理
    -

    $B<+J,$GG'>Z6I$r:n$k$3$H$b2DG=$G$9!#(B - $B%$%s%?!<%M%C%H4D6-$G$O4m81$G$9$,!"(B - $B8D?M$d%5!<%P$N?H85>ZL@$,4JC1$K9T$($kAH?%$N(B - $B%$%s%H%i%M%C%HFb$G$OLr$KN)$D$+$b$7$l$^$;$s!#(B

    +

    自分で認証局を作ることも可能です。 + インターネット環境では危険ですが、 + 個人やサーバの身元証明が簡単に行える組織の + イントラネット内では役に立つかもしれません。

    - $B>ZL@=q4IM}(B -

    $BG'>Z6I$N3+@_$OE0Dl$7$?4IM}!"5;=Q!"1?MQ$NBN@)$rI,MW$H$9$k(B - $B@UG$$N$"$k;E;v$G$9!#(B - $BG'>Z6I$O>ZL@=q$rH/9T$9$k$@$1$G$J$/!"(B - $B4IM}$b$7$J$1$l$P$J$j$^$;$s!#(B - $B6qBNE*$K$O!">ZL@=q$,$$$D$^$GM-8z$+$r7hDj$7!"99?7$7!"(B - $B$^$?4{$KH/9T$5$l$?$,<:8z$7$?>ZL@=q$N%j%9%H(B - (Certificate Revocation Lists $B$^$?$O(B CRL) - $B$r4IM}$7$J$1$l$P$$$1$^$;$s!#(B - $BNc$($P!"%"%j%9$,2qZL@=q$rM?$($i$l$?$H$7$^$9!#(B - $B$=$7$F!"%"%j%9$,2qZL@=q$rC$5$J$1$l$P(B - $B$$$1$J$$$H$7$^$9!#(B - $B>ZL@=q$OZL@=q$=$N$b$N$+$i!"$=$l$,C$5$l$?$+H=CG$9$k$3$H$O(B - $BIT2DG=$G$9!#(B - $B$h$C$F!">ZL@=q$NM-8z@-$rD4$Y$k$H$-$K$O!"(B - $BG'>Z6I$KO"Mm$7$F(B CRL $B$r>H9g$9$kI,MW$,$"$j$^$9!#(B - $BIaDL$3$N2aDx$O<+F02=$5$l$F$$$k$b$N$G$O$"$j$^$;$s!#(B

    - - $BCm0U(B -

    $B%G%U%)%k%H$G%V%i%&%6$K@_Dj$5$l$F$$$J$$G'>Z6I$r;H$C$?>l9g!"(B - $BG'>Z6I$N>ZL@=q$r%V%i%&%6$KFI$_9~$s$G!"(B - $B%V%i%&%6$,$=$NG'>Z6I$K$h$C$F=pL>$5$l$?%5!<%P$N>ZL@=q$r(B - $BM-8z2=$9$kI,MW$,$"$j$^$9!#(B - $B0lEYFI$_9~$^$l$k$H!"$=$NG'>Z6I$K$h$C$F=pL>$5$l$?A4$F$N(B - $B>ZL@=q$r + 証明書管理 +

    認証局の開設は徹底した管理、技術、運用の体制を必要とする + 責任のある仕事です。 + 認証局は証明書を発行するだけでなく、 + 管理もしなければなりません。 + 具体的には、証明書がいつまで有効かを決定し、更新し、 + また既に発行されたが失効した証明書のリスト + (Certificate Revocation Lists または CRL) + を管理しなければいけません。 + 例えば、アリスが会社から社員として証明書を与えられたとします。 + そして、アリスが会社を辞めるときには証明書を取り消さなければ + いけないとします。 + 証明書は次々と人に渡されていくものなので、 + 証明書そのものから、それが取り消されたか判断することは + 不可能です。 + よって、証明書の有効性を調べるときには、 + 認証局に連絡して CRL を照合する必要があります。 + 普通この過程は自動化されているものではありません。

    + + 注意 +

    デフォルトでブラウザに設定されていない認証局を使った場合、 + 認証局の証明書をブラウザに読み込んで、 + ブラウザがその認証局によって署名されたサーバの証明書を + 有効化する必要があります。 + 一度読み込まれると、その認証局によって署名された全ての + 証明書を受け入れるため、危険を伴います。

    @@ -409,267 +409,267 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
    Secure Sockets Layer (SSL) -

    Secure Sockets Layer $B%W%m%H%3%k$O?.Mj@-$N$"$k%3%M%/%7%g%s7?$N(B -$B%M%C%H%o!<%/AX$N%W%m%H%3%k(B($BNc$($P!"(BTCP/IP)$B$H(B -$B%"%W%j%1!<%7%g%sAX$N%W%m%H%3%k(B($BNc$($P!"(BHTTP) -$B$N4V$KCV$/$3$H$,$G$-$^$9!#(B -SSL $B$O!"Aj8_G'>Z$K$h$C$F%5!<%P$H%/%i%$%"%s%H4V$N0BA4$JDL?.$r!"(B -$BEE;R=pL>$K$h$C$F%G!<%?$N40A4@-$r!"(B -$B$=$7$F0E9f2=$K$h$C$F%W%i%$%P%7$rDs6!$7$^$9!#(B

    - -

    SSL $B%W%m%H%3%k$O0E9f2=!"%@%$%8%'%9%H!"EE;R=pL>$K$D$$$F!"(B -$BMM!9$J%"%k%4%j%:%`$r%5%]!<%H$9$k$h$&$K$G$-$F$$$^$9!#(B -$B$3$&$9$k$3$H$G!"K!$dM"=P$N5,@)$r9MN8$KF~$l$F!"%5!<%P$K9g$o$;$?(B -$B%"%k%4%j%:%`$rA*$V$3$H$,$G$-!"$^$?!"?7$7$$%"%k%4%j%:%`$r(B -$BMxMQ$7$F$$$/$3$H$b2DG=$K$7$F$$$^$9!#(B -$B%"%k%4%j%:%`$NA*Br$O%W%m%H%3%k%;%C%7%g%s3+;O;~$K(B -$B%5!<%P$H%/%i%$%"%s%H4V$G +

    Secure Sockets Layer プロトコルは信頼性のあるコネクション型の +ネットワーク層のプロトコル(例えば、TCP/IP)と +アプリケーション層のプロトコル(例えば、HTTP) +の間に置くことができます。 +SSL は、相互認証によってサーバとクライアント間の安全な通信を、 +電子署名によってデータの完全性を、 +そして暗号化によってプライバシを提供します。

    + +

    SSL プロトコルは暗号化、ダイジェスト、電子署名について、 +様々なアルゴリズムをサポートするようにできています。 +こうすることで、法や輸出の規制を考慮に入れて、サーバに合わせた +アルゴリズムを選ぶことができ、また、新しいアルゴリズムを +利用していくことも可能にしています。 +アルゴリズムの選択はプロトコルセッション開始時に +サーバとクライアント間で取り決められます。

    -$BI=(B4: SSL $B%W%m%H%3%k$N%P!<%8%g%s(B +表4: SSL プロトコルのバージョン - - - - + + + + - - - - + - -
    $B%P!<%8%g%s(B$B=PE5(B$B@bL@(B$B%V%i%&%6$N%5%]!<%H(B
    バージョン出典説明ブラウザのサポート
    SSL v2.0Vendor Standard (Netscape Corp. $B$h$j(B) [Vendor Standard (Netscape Corp. より) [SSL2]$B + 実装が現存する初めての SSL プロトコル - NS Navigator 1.x/2.x
    - MS IE 3.x
    - Lynx/2.8+OpenSSL
    SSL v3.0Expired Internet Draft (Netscape Corp. $B$h$j(B) [Expired Internet Draft (Netscape Corp. より) [SSL3]$BFCDj$N%;%-%e%j%F%#967b$rKI$0$?$a$N2~D{!"(B - $BHs(BRSA $B0E9f$NDI2C!">ZL@=q3,AX9=B$$N%5%]!<%H(B特定のセキュリティ攻撃を防ぐための改訂、 + 非RSA 暗号の追加、証明書階層構造のサポート - NS Navigator 2.x/3.x/4.x
    - MS IE 3.x/4.x
    - Lynx/2.8+OpenSSL
    TLS v1.0Proposed Internet Standard (IETF $B$h$j(B) [Proposed Internet Standard (IETF より) [TLS1]MAC $B%l%$%d$r(B HMAC $B$X99?7!"%V%m%C%/0E9f$N(B block - padding$B!"%a%C%;!<%8=g=x$NI8=`2=!"7Y9pJ8$N=< + MAC レイヤを HMAC へ更新、ブロック暗号の block + padding、メッセージ順序の標準化、警告文の充実などのため + SSL 3.0 を改訂。 - Lynx/2.8+OpenSSL
    -

    $BI=(B4$B$K<($5$l$k$H$*$j!"(BSSL $B%W%m%H%3%k$K$O(B -$B$$$/$D$b$N%P!<%8%g%s$,$"$j$^$9!#(B -$BI=$K$b=q$+$l$F$$$k$h$&$K!"(BSSL 3.0 $B$NMxE@$N0l$D$O(B -$B>ZL@=q3,AX9=B$$r%5%]!<%H$9$k$3$H$G$9!#(B -$B$3$N5!G=$K$h$C$F!"%5!<%P$O<+J,$N>ZL@=q$K2C$($F!"(B -$BH/9TZL@=q$r%V%i%&%6$KEO$9$3$H$,$G$-$^$9!#(B -$B>ZL@=q3,AX9=B$$K$h$C$F!"(B -$B%V%i%&%6$KH/9TZL@=q$,D>@\EPO?$5$l$F$$$J$/$F$b!"(B -$B3,AX$NCf$K4^$^$l$F$$$l$P!"(B -$B%V%i%&%6$O%5!<%P$N>ZL@=q$rM-8z2=$9$k$3$H$,$G$-$^$9!#(B -SSL 3.0 $B$O8=:_(B Internet Engineering Task Force (IETF) -$B$K$h$C$F3+H/$5$l$F$$$k(B Transport Layer Security -[TLS] $B%W%m%H%3%kI8=`5,3J$N4pAC$H$J$C$F$$$^$9!#(B

    +

    表4に示されるとおり、SSL プロトコルには +いくつものバージョンがあります。 +表にも書かれているように、SSL 3.0 の利点の一つは +証明書階層構造をサポートすることです。 +この機能によって、サーバは自分の証明書に加えて、 +発行者の証明書をブラウザに渡すことができます。 +証明書階層構造によって、 +ブラウザに発行者の証明書が直接登録されていなくても、 +階層の中に含まれていれば、 +ブラウザはサーバの証明書を有効化することができます。 +SSL 3.0 は現在 Internet Engineering Task Force (IETF) +によって開発されている Transport Layer Security +[TLS] プロトコル標準規格の基礎となっています。

    -$B%;%C%7%g%s$N3NN)(B -

    $B?^(B1$B$G<($5$l$k$h$&$K!"(B - $B%;%C%7%g%s$N3NN)$O%/%i%$%"%s%H$H%5!<%P4V$N(B - $B%O%s%I%7%'!<%/%7!<%/%(%s%9$K$h$C$F9T$J$o$l$^$9!#(B - $B%5!<%P$,>ZL@=q$rDs6!$9$k$+!"%/%i%$%"%s%H$N>ZL@=q$r%j%/%(%9%H$9$k$+(B - $B$H$$$&%5!<%P$N@_Dj$K$h$j!"$3$N%7!<%/%(%s%9$O0[$J$k$b$N$H$J$j$^$9!#(B - $B0E9f>pJs$N4IM}$N$?$a$K!"DI2C$N%O%s%I%7%'!<%/2aDx$,I,MW$K$J$k(B - $B>l9g$b$"$j$^$9$,!"$3$N5-;v$G$O(B - $B$h$/$"$k%7%J%j%*$rH$7$F$/$@$5$$!#(B

    - - $BCm0U(B -

    $B0lEY(B SSL $B%;%C%7%g%s$,3NN)$9$k$H!"%;%C%7%g%s$r:FMxMQ$9$k$3$H$G!"(B - $B%;%C%7%g%s$r3+;O$9$k$?$a$NB?$/$N2aDx$r7+$jJV$9$H$$$&(B - $B%Q%U%)!<%^%s%9$NB;<:$rKI$.$^$9!#(B - $B$=$N$?$a!"%5!<%P$OA4$F$N%;%C%7%g%s$K0l0U$J%;%C%7%g%s<1JLL>$r(B - $B3d$jEv$F!"%5!<%P$K%-%c%C%7%e$7!"%/%i%$%"%s%H$O$,%5!<%P$N%-%c%C%7%e$G4|8B@Z$l$K$J$k$^$G$O(B) - $B%O%s%I%7%'!<%/$J$7$G@\B3$9$k$3$H$,$G$-$^$9!#(B

    +セッションの確立 +

    図1で示されるように、 + セッションの確立はクライアントとサーバ間の + ハンドシェークシークエンスによって行なわれます。 + サーバが証明書を提供するか、クライアントの証明書をリクエストするか + というサーバの設定により、このシークエンスは異なるものとなります。 + 暗号情報の管理のために、追加のハンドシェーク過程が必要になる + 場合もありますが、この記事では + よくあるシナリオを手短に説明します。 + 全ての可能性についは、SSL 仕様書を参照してください。

    + + 注意 +

    一度 SSL セッションが確立すると、セッションを再利用することで、 + セッションを開始するための多くの過程を繰り返すという + パフォーマンスの損失を防ぎます。 + そのため、サーバは全てのセッションに一意なセッション識別名を + 割り当て、サーバにキャッシュし、クライアントは次回から + (識別名がサーバのキャッシュで期限切れになるまでは) + ハンドシェークなしで接続することができます。


    - $B?^(B1: SSL - $B%O%s%I%7%'!<%/%7!<%/%(%s%935N,(B

    + 図1: SSL + ハンドシェークシークエンス概略

    -

    $B%5!<%P$H%/%i%$%"%s%H$G;H$o$l$k(B - $B%O%s%I%7%'!<%/%7!<%/%(%s%9$NMWAG$r0J2<$K<($7$^$9(B:

    +

    サーバとクライアントで使われる + ハンドシェークシークエンスの要素を以下に示します:

      -
    1. $B%G!<%?DL?.$K;H$o$l$k0E9f%9%$!<%H$N -
    2. $B%/%i%$%"%s%H$H%5!<%P4V$G$N%;%C%7%g%s80$N3NN)$H6&M-(B
    3. -
    4. $B%*%W%7%g%s$H$7$F!"%/%i%$%"%s%H$KBP$9$k%5!<%P$NG'>Z(B
    5. -
    6. $B%*%W%7%g%s$H$7$F!"%5!<%P$KBP$9$k%/%i%$%"%s%H$NG'>Z(B
    7. +
    8. データ通信に使われる暗号スイートの取り決め
    9. +
    10. クライアントとサーバ間でのセッション鍵の確立と共有
    11. +
    12. オプションとして、クライアントに対するサーバの認証
    13. +
    14. オプションとして、サーバに対するクライアントの認証
    -

    $BBh0l%9%F%C%W$N0E9f%9%$!<%H$l$K$"$C$?(B - $B0E9f%9%$!<%H$rA*$V$3$H$,$G$-$^$9!#(B - SSL3.0 $B%W%m%H%3%k$N;EMM=q$O(B 31 $B$N0E9f%9%$!<%H$rDj5A$7$F$$$^$9!#(B - $B0E9f%9%$!<%H$O0J2<$N%3%s%]!<%M%s%H$K$h$jDj5A$5$l$F$$$^$9(B:

    +

    第一ステップの暗号スイート取り決めによって、 + サーバとクライアントはそれぞれにあった + 暗号スイートを選ぶことができます。 + SSL3.0 プロトコルの仕様書は 31 の暗号スイートを定義しています。 + 暗号スイートは以下のコンポーネントにより定義されています:

      -
    • $B80$N8r49 -
    • $B%G!<%?DL?.$N0E9f=Q(B
    • -
    • Message Authentication Code (MAC) $B:n@.$N$?$a$N(B - $B%a%C%;!<%8%@%$%8%'%9%H(B
    • +
    • 鍵の交換手段
    • +
    • データ通信の暗号術
    • +
    • Message Authentication Code (MAC) 作成のための + メッセージダイジェスト
    -

    $B$3$l$i$N;0$D$NMWAG$O0J2<$N%;%/%7%g%s$G@bL@$5$l$F$$$^$9!#(B

    +

    これらの三つの要素は以下のセクションで説明されています。

    -$B80$N8r49<jCJ(B -

    $B80$N8r49N0E9f80$r$I$N$h$&$K$,%/%i%$%"%s%H$H%5!<%P$G(B - $BZL@=q$,;H$o$l$k$H$-$O(B RSA $B808r49$r;H$$!"(B - $B>ZL@=q$,L5$/!"%/%i%$%"%s%H$H%5!<%P$N;vA0$NDL?.$,L5$$>l9g$O(B - Diffie-Hellman $B808r49$r;H$&(B - $B$J$IMM!9$J808r49%"%k%4%j%:%`$r%5%]!<%H$7$^$9!#(B

    - -

    $B80$N8r49J}K!$K$*$1$k0l$D$NA*Br;h$OEE;R=pL>$G$9!#(B - $BEE;R=pL>$r;H$&$+$I$&$+!"$^$?!"(B - $B$I$N$r;H$&$+$H$$$&A*Br$,$"$j$^$9!#(B - $BHkL)80$G=pL>$9$k$3$H$G6&M-80$r@8@.$9$7!">pJs8r49$9$k;~$N(B - $B%^%s!&%$%s!&%6!&%_%I%k967b$rKI$0$3$H$,$G$-$^$9!#(B +鍵の交換手段 +

    鍵の交換手段はアプリケーションのデータ通信に使われ、 + 共有される対称暗号鍵をどのようにがクライアントとサーバで + 取り決めるかを定義します。 + SSL 2.0 は RSA 鍵交換しか使いませんが、 + SSL 3.0 は証明書が使われるときは RSA 鍵交換を使い、 + 証明書が無く、クライアントとサーバの事前の通信が無い場合は + Diffie-Hellman 鍵交換を使う + など様々な鍵交換アルゴリズムをサポートします。

    + +

    鍵の交換方法における一つの選択肢は電子署名です。 + 電子署名を使うかどうか、また、 + どの種類の署名を使うかという選択があります。 + 秘密鍵で署名することで共有鍵を生成すし、情報交換する時の + マン・イン・ザ・ミドル攻撃を防ぐことができます。 [AC96, p516]

    -$B%G!<%?DL?.$N0E9f=Q(B -

    SSL $B$O%;%C%7%g%s$N%a%C%;!<%8$N0E9f2=$KA0=R$7$?(B - $B=>Mh7?0E9f(B($BBP>N0E9f(B)$B$rMQ$$$^$9!#(B - $B0E9f2=$7$J$$$H$$$&A*Br;h$b4^$a6e$D$NA*Br;h$,$"$j$^$9(B:

    +データ通信の暗号術 +

    SSL はセッションのメッセージの暗号化に前述した + 従来型暗号(対称暗号)を用います。 + 暗号化しないという選択肢も含め九つの選択肢があります:

      -
    • $B0E9f2=$J$7(B
    • -
    • $B%9%H%j!<%`0E9f(B +
    • 暗号化なし
    • +
    • ストリーム暗号
        -
      • 40-bit $B80$G$N(B RC4
      • -
      • 128-bit $B80$G$N(B RC4
      • +
      • 40-bit 鍵での RC4
      • +
      • 128-bit 鍵での RC4
    • -
    • CBC $B%V%m%C%/0E9f(B -
      • 40 bit $B80$G$N(B RC2
      • -
      • 40 bit $B80$G$N(B DES
      • -
      • 56 bit $B80$G$N(B DES
      • -
      • 168 bit $B80$G$N(B Triple-DES
      • -
      • Idea (128 bit $B80(B)
      • -
      • Fortezza (96 bit $B80(B)
      • +
      • CBC ブロック暗号 +
        • 40 bit 鍵での RC2
        • +
        • 40 bit 鍵での DES
        • +
        • 56 bit 鍵での DES
        • +
        • 168 bit 鍵での Triple-DES
        • +
        • Idea (128 bit 鍵)
        • +
        • Fortezza (96 bit 鍵)
      -

      $B$3$3$G$N(B CBC $B$H$O0E9f%V%m%C%/O":?(B (Cipher Block Chaining) - $B$NN,$G!"0l$DA0$N0E9f2=$5$l$?0E9fJ8$N0lIt$,(B - $B%V%m%C%/$N0E9f2=$K;H$o$l$k$3$H$r0UL#$7$^$9!#(B - DES $B$O%G!<%?0E9f2=I8=`5,3J(B (Data Encryption Standard) - [AC96, ch12] $B$NN,$G!"(B - DES40 $B$d(B 3DES_EDE $B$r4^$`$$$/$D$b$Nここでの CBC とは暗号ブロック連鎖 (Cipher Block Chaining) + の略で、一つ前の暗号化された暗号文の一部が + ブロックの暗号化に使われることを意味します。 + DES はデータ暗号化標準規格 (Data Encryption Standard) + [AC96, ch12] の略で、 + DES40 や 3DES_EDE を含むいくつもの種類があります。 + Idea は最高なものの一つで、暗号術的には現在ある中で + 最も強力なものです。 + RC2 は RSA DSI による独占的なアルゴリズムです。 [AC96, ch13]

    -$B%@%$%8%'%9%H4X?t(B +ダイジェスト関数

    - $B%@%$%8%'%9%H4X?t$NA*Br$O%l%3!<%I%f%K%C%H$+$i$I$N$h$&$K%@%$%8%'%9%H$,@8@.$5$l$k$+$r7hDj$7$^$9!#(B - SSL $B$O0J2<$r%5%]!<%H$7$^$9(B:

    + ダイジェスト関数の選択はレコードユニットからどのようにダイジェストが生成されるかを決定します。 + SSL は以下をサポートします:

      -
    • $B%@%$%8%'%9%H$J$7(B
    • -
    • MD5 (128-bit $B%O%C%7%e(B)
    • -
    • Secure Hash Algorithm (SHA-1) (160-bit $B%O%C%7%e(B)
    • +
    • ダイジェストなし
    • +
    • MD5 (128-bit ハッシュ)
    • +
    • Secure Hash Algorithm (SHA-1) (160-bit ハッシュ)
    -

    $B%a%C%;!<%8%@%$%8%'%9%H$O(B Message Authentication Code (MAC) - $B$N@8@.$K;H$o$l!"%a%C%;!<%8$H6&$K0E9f2=$5$l!"%a%C%;!<%8$N?.MQ$r(B - $BDs6!$7!"%j%W%l%$967b$rKI$.$^$9!#(B

    +

    メッセージダイジェストは Message Authentication Code (MAC) + の生成に使われ、メッセージと共に暗号化され、メッセージの信用を + 提供し、リプレイ攻撃を防ぎます。

    -$B%O%s%I%7%'!<%/%7!<%/%(%s%9%W%m%H%3%k(B -

    $B%O%s%I%7%'!<%/%7!<%/%(%s%9$O;0$D$N%W%m%H%3%k$r;H$$$^$9(B:

    +ハンドシェークシークエンスプロトコル +

    ハンドシェークシークエンスは三つのプロトコルを使います:

      -
    • SSL $B%O%s%I%7%'!<%/%W%m%H%3%k(B$B$O(B - $B%/%i%$%"%s%H$H%5!<%P4V$G$N(B SSL $B%;%C%7%g%s$N3NN)$K;H$o$l$^$9!#(B
    • -
    • SSL $B0E9f;EMMJQ99%W%m%H%3%k(B$B$O(B - $B%;%C%7%g%s$G$N0E9f%9%$!<%H$N -
    • SSL $B7Y9p%W%m%H%3%k(B$B$O(B - $B%/%i%$%"%s%H%5!<%P4V$G(B SSL $B%(%i!<$rEAC#$9$k$N$K;H$o$l$^$9!#(B
    • +
    • SSL ハンドシェークプロトコルは + クライアントとサーバ間での SSL セッションの確立に使われます。
    • +
    • SSL 暗号仕様変更プロトコルは + セッションでの暗号スイートの取り決めに使われます。
    • +
    • SSL 警告プロトコルは + クライアントサーバ間で SSL エラーを伝達するのに使われます。
    -

    $B;0$D$N%W%m%H%3%k$O!"%"%W%j%1!<%7%g%s%W%m%H%3%k%G!<%?$H$H$b$K!"(B - $B?^(B2$B$K<($9$H$*$j(B SSL $B%l%3!<%I%W%m%H%3%k(B - $B$G%+%W%;%k2=$5$l$^$9!#(B - $B%+%W%;%k2=$5$l$?%W%m%H%3%k$O%G!<%?$r8!::$7$J$$(B - $B2 +

    三つのプロトコルは、アプリケーションプロトコルデータとともに、 + 図2に示すとおり SSL レコードプロトコル + でカプセル化されます。 + カプセル化されたプロトコルはデータを検査しない + 下層のプロトコルによってデータとして伝達されます。 + カプセル化されたプロトコルは下層のプロトコルに関して一切関知しません。


    - $B?^(B2: SSL $B%W%m%H%3%k%9%?%C%/(B + 図2: SSL プロトコルスタック

    - $B%l%3!<%I%W%m%H%3%k$K$h$k(B SSL $B%3%s%H%m!<%k%W%m%H%3%k$N%+%W%;%k2=$O!"(B - $B%"%/%F%#%V$J%;%C%7%g%s$NFs2sL\$NDL?.$,$"$C$?>l9g!"(B - $B%3%s%H%m!<%k%W%m%H%3%k$,0BA4$G$"$k$3$H$r0UL#$7$^$9!#(B - $B4{$K%;%C%7%g%s$,L5$$>l9g$O!"(BNull $B0E9f%9%$!<%H$,;H$o$l!"(B - $B0E9f2=$O9T$J$o$l$:!"%;%C%7%g%s$,3NN)$9$k$^$G$O(B - $B%@%$%8%'%9%H$bL5$$>uBV$H$J$j$^$9!#(B

    + レコードプロトコルによる SSL コントロールプロトコルのカプセル化は、 + アクティブなセッションの二回目の通信があった場合、 + コントロールプロトコルが安全であることを意味します。 + 既にセッションが無い場合は、Null 暗号スイートが使われ、 + 暗号化は行なわれず、セッションが確立するまでは + ダイジェストも無い状態となります。

    -$B%G!<%?DL?.(B -

    $B?^(B3$B$K<($5$l$k(B SSL $B%l%3!<%I%W%m%H%3%k(B - $B$O%/%i%$%"%s%H$H%5!<%P4V$N%"%W%j%1!<%7%g%s$d(B - SSL $B%3%s%H%m!<%k%G!<%?$NDL?.$K;H$o$l$^$9!#(B - $B$3$N%G!<%?$O$h$j>.$5$$%f%K%C%H$KJ,$1$i$l$?$j!"(B - $B$$$/$D$+$N9b5i%W%m%H%3%k$r$^$H$a$F0l%f%K%C%H$H$7$FDL?.$,(B - $B9T$J$o$l$k$3$H$b$"$j$^$9!#(B - $B%G!<%?$r05=L$7!"%@%$%8%'%9%H=pL>$rE:IU$7$F!"(B - $B$3$l$i$N%f%K%C%H$r0E9f2=$7$?$N$A!"%Y!<%9$H$J$C$F$$$k(B - $B?.Mj@-$N$"$k%H%i%s%9%]!<%H%W%m%H%3%k$rMQ$$$k$+$b$7$l$^$;$s!#(B - ($BCm0U(B: $B8=:_%a%8%c!<$J(B SLL $B +データ通信 +

    図3に示される SSL レコードプロトコル + はクライアントとサーバ間のアプリケーションや + SSL コントロールデータの通信に使われます。 + このデータはより小さいユニットに分けられたり、 + いくつかの高級プロトコルをまとめて一ユニットとして通信が + 行なわれることもあります。 + データを圧縮し、ダイジェスト署名を添付して、 + これらのユニットを暗号化したのち、ベースとなっている + 信頼性のあるトランスポートプロトコルを用いるかもしれません。 + (注意: 現在メジャーな SLL 実装で圧縮をサポートしているものはありません)


    - $B?^(B 3: SSL $B%l%3!<%I%W%m%H%3%k(B + 図 3: SSL レコードプロトコル

    -HTTP $BDL?.$N0BA42=(B -

    $B$h$/$"$k(B SSL $B$N;H$$J}$O%V%i%&%6$H%&%'%V%5!<%P4V$N(B HTTP $BDL?.(B - $B$N0BA42=$G$9!#(B - $B$3$l$O!"=>Mh$N0BA4$G$O$J$$(B HTTP $B$N;HMQ$r=|30$9$k$b$N$G$O$"$j$^$;$s!#(B - $B0BA42=$5$l$?$b$N$Oe$NIaDL$N(B HTTP $B$G!"(BHTTPS $B$H8F$P$l$^$9!#(B - $BBg$-$J0c$$$O!"(BURL $B%9%-!<%`$K(B http $B$NBe$o$j$K(B https - $B$rMQ$$!"%5!<%P$,JL$N%]!<%H$r;H$&$3$H$G$9(B ($B%G%U%)%k%H$G$O(B443)$B!#(B - $B$3$l$,mod_ssl $B$,(B Apache $B%&%'%V%5!<%P$KDs6!$9$k5!G=$G$9!#(B

    +HTTP 通信の安全化 +

    よくある SSL の使い方はブラウザとウェブサーバ間の HTTP 通信 + の安全化です。 + これは、従来の安全ではない HTTP の使用を除外するものではありません。 + 安全化されたものは主に SSH 上の普通の HTTP で、HTTPS と呼ばれます。 + 大きな違いは、URL スキームに http の代わりに https + を用い、サーバが別のポートを使うことです (デフォルトでは443)。 + これが主に mod_ssl が Apache ウェブサーバに提供する機能です。

    -$B;29MJ88%(B +参考文献
    [AC96]
    Bruce Schneier, Applied Cryptography, 2nd Edition, Wiley, diff --git a/docs/manual/ssl/ssl_intro.xml.meta b/docs/manual/ssl/ssl_intro.xml.meta index da798513f98..ba288d079a8 100644 --- a/docs/manual/ssl/ssl_intro.xml.meta +++ b/docs/manual/ssl/ssl_intro.xml.meta @@ -1,12 +1,13 @@ + - + ssl_intro /ssl/ .. en - ja + ja diff --git a/docs/manual/stopping.html b/docs/manual/stopping.html index ceae3608103..de6c126eebc 100644 --- a/docs/manual/stopping.html +++ b/docs/manual/stopping.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: stopping.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,10 +12,18 @@ Content-Language: es Content-type: text/html; charset=ISO-8859-1 -URI: stopping.html.ja.euc-jp +URI: stopping.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: stopping.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: stopping.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: stopping.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/stopping.html.de b/docs/manual/stopping.html.de index 37c5bad95f9..2104bd26bdb 100644 --- a/docs/manual/stopping.html.de +++ b/docs/manual/stopping.html.de @@ -1,34 +1,46 @@ - -Beenden und Neustarten - Apache HTTP Server +Beenden und Neustarten - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Beenden und Neustarten

    +Apache > HTTP-Server > Dokumentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Beenden und Neustarten

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    + ko  | + tr 

    +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.

    Dieses Dokument umfasst das Beenden und Neustarten des - Apache auf Unix-ähnlichen Systemen. Anwender von Windows NT, 2000 + Apache auf Unix-ähnlichen Systemen. Anwender von Windows NT, 2000 und XP sollten Betreiben - des Apache als Dienst lesen, während hingegen Anwender von + des Apache als Dienst lesen, während hingegen Anwender von Windows 9x sowie ME Betreiben des Apache als Konsolenanwendung lesen sollten, um mehr Informationen zur Handhabung des Apache auf diesen Systemen zu erhalten.

    @@ -37,23 +49,24 @@
  • Beenden
  • Unterbrechungsfreier Neustart
  • Neustarten
  • -
  • Anhang: Signale und Wettkampfsituationen
  • -

    Siehe auch

    +
  • Rücksichtsvolles Beenden
  • +
  • Anhang: Signale und Wettlaufsituationen
  • +

    Siehe auch

    top

    Einleitung

    -

    Um den Apache zu stoppen oder neu zu starten, müssen Sie +

    Um den Apache zu stoppen oder neu zu starten, müssen Sie ein Signal an den laufenden httpd-Prozess senden. Es gibt - zwei Möglichkeiten, diese Signale zu senden. Zum einen können + zwei Möglichkeiten, diese Signale zu senden. Zum einen können Sie den Unix-Befehl kill verwenden, um den Prozessen direkt Signale zu senden. Sie werden feststellen, dass auf Ihrem System mehrere httpd-Programme laufen. Sie sollten jedoch nicht jedem dieser Prozesse ein Signal senden, sondern nur dem - Elternprozess, dessen PID im PidFile steht. Das heißt, Sie - sollten es niemals nötig haben, einem anderen Prozess, als dem + Elternprozess, dessen PID im PidFile steht. Das heißt, Sie + sollten es niemals nötig haben, einem anderen Prozess, als dem Elternprozess, ein Signal zu senden. Es gibt drei Signale, die Sie an den - Elternprozess senden können: TERM, + Elternprozess senden können: TERM, HUP und USR1, die nachfolgend beschrieben werden.

    @@ -65,12 +78,13 @@

    Die zweite Methode, dem httpd-Prozess zu signalisieren, ist die Verwendung der -k-Befehlszeilenoptionen - stop, restart und graceful, wie - unten beschrieben. Dies sind Argumente des httpd-Programms, es wird jedoch - empfohlen, sie unter Verwendung des Steuerskripts apachectl zu senden, welches diese - an httpd durchreicht.

    + stop, restart, graceful und + graceful-stop, wie unten beschrieben. Dies sind Argumente des + httpd-Programms, es wird jedoch empfohlen, sie unter + Verwendung des Steuerskripts apachectl zu senden, + welches diese an httpd durchreicht.

    -

    Nachdem Sie httpd signalisiert haben, können Sie +

    Nachdem Sie httpd signalisiert haben, können Sie dessen Fortschritt beobachten, indem Sie eingeben:

    tail -f /usr/local/apache2/logs/error_log

    @@ -100,23 +114,17 @@

    Das USR1- oder graceful-Signal veranlasst den Elternprozess, die Kinder anzuweisen, sich - nach Abschluß ihrer momentanen bearbeiteten Anfrage zu beenden + nach Abschluß ihrer momentanen bearbeiteten Anfrage zu beenden (oder sich sofort zu beenden, wenn sie gerade keine Anfrage bedienen). Der Elternprozess liest seine Konfigurationsdateien erneut ein und - öffnet seine Logdateien neu. Wenn ein Kindprozess stirbt, + öffnet seine Logdateien neu. Wenn ein Kindprozess stirbt, ersetzt der Elternprozess ihn durch ein Kind der neuen Konfigurations-Generation. Dieses beginnt sofort damit, neue Anfragen zu bedienen.

    -
    Auf bestimmten Plattformen, welche kein USR1 - für einen unterbrechungsfreien Neustart erlauben, kann ein - alternatives Signal verwendet werden (wie z.B. - WINCH). Der Befehl apachectl graceful - sendet das jeweils richtige Signal für Ihre Platform.
    - -

    Der Code ist dafür ausgelegt, stets die MPM-Direktiven +

    Der Code ist dafür ausgelegt, stets die MPM-Direktiven zur Prozesssteuerung zu beachten, so dass die Anzahl der Prozesse - und Threads, die zur Bedienung der Clients bereitstehen, während + und Threads, die zur Bedienung der Clients bereitstehen, während des Neustarts auf die entsprechenden Werte gesetzt werden. Weiterhin wird StartServers auf folgende Art und Weise interpretiert: Wenn nach einer Sekunde @@ -124,56 +132,57 @@ neue Kindprozesse erstellt wurden, dann werden, um den Durchsatz zu beschleunigen, entsprechend weitere erstellt. Auf diese Weise versucht der Code sowohl die Anzahl der Kinder entsprechend der Serverlast - anzupassen als auch Ihre Wünsche hinsichtlich des Parameters - StartServers zu berücksichtigen.

    + anzupassen als auch Ihre Wünsche hinsichtlich des Parameters + StartServers zu + berücksichtigen.

    Benutzer von mod_status werden feststellen, dass die Serverstatistiken nicht auf Null - zurückgesetzt werden, wenn ein USR1 gesendet + zurückgesetzt werden, wenn ein USR1 gesendet wurde. Der Code wurde so geschrieben, dass sowohl die Zeit minimiert wird, in der der Server nicht in der Lage ist, neue Anfragen zu bedienen (diese werden vom Betriebssystem in eine Warteschlange gestellt, so dass sie auf keinen Fall verloren gehen) als auch - Ihre Parameter zur Feinabstimmung berücksichtigt werden. + Ihre Parameter zur Feinabstimmung berücksichtigt werden. Um dies zu erreichen, muss die Statustabelle (Scoreboard), - die dazu verwendet wird, alle Kinder über mehrere Generationen + die dazu verwendet wird, alle Kinder über mehrere Generationen zu verfolgen, erhalten bleiben.

    -

    Das Statusmodul benutzt außerdem ein G, um +

    Das Statusmodul benutzt außerdem ein G, um diejenigen Kinder zu kennzeichen, die noch immer Anfragen bedienen, welche gestartet wurden, bevor ein unterbrechungsfreier Neustart - veranlaßt wurde.

    + veranlaßt wurde.

    -

    Derzeit gibt es keine Möglichkeit für ein +

    Derzeit gibt es keine Möglichkeit für ein Log-Rotationsskript, das USR1 verwendet, sicher festzustellen, dass alle Kinder, die in ein vor dem Neustart - geöffnetes Log schreiben, beendet sind. Wir schlagen vor, dass + geöffnetes Log schreiben, beendet sind. Wir schlagen vor, dass Sie nach dem Senden des Signals USR1 eine angemessene Zeitspanne warten, bevor Sie das alte Log anfassen. Wenn beispielsweise die meisten Ihrer Zugriffe bei Benutzern mit niedriger Bandbreite - weniger als 10 Minuten für eine vollständige Antwort - benötigen, dann könnten Sie 15 Minuten warten, bevor Sie auf + weniger als 10 Minuten für eine vollständige Antwort + benötigen, dann könnten Sie 15 Minuten warten, bevor Sie auf das alte Log zugreifen.

    -
    Wenn Ihre Konfigurationsdatei Fehler enthält, während +
    Wenn Ihre Konfigurationsdatei Fehler enthält, während Sie einen Neustart anweisen, dann wird Ihr Elternprozess nicht neu starten, sondern sich mit einem Fehler beenden. Im Falle eines unterbrechungsfreien - Neustarts läßt er die Kinder weiterlaufen, wenn er sich beendet. + Neustarts läßt er die Kinder weiterlaufen, wenn er sich beendet. (Dies sind die Kinder, die sich "sanft beenden", indem sie ihre letzte Anfrage erledigen.) Das verursacht Probleme, wenn Sie versuchen, den Server neu zu starten -- er ist nicht in der Lage, sich an die Ports zu binden, an denen er lauschen soll. Bevor Sie einen Neustart - durchführen, können Sie die Syntax der Konfigurationsdateien - mit dem Befehlszeilenargument -t überprüfen + durchführen, können Sie die Syntax der Konfigurationsdateien + mit dem Befehlszeilenargument -t überprüfen (siehe auch httpd). Das garantiert allerdings nicht, dass der Server korrekt starten wird. Um sowohl die - Syntax als auch die Semantik der Konfigurationsdateien zu prüfen, - können Sie versuchen, httpd als nicht-root-Benutzer + Syntax als auch die Semantik der Konfigurationsdateien zu prüfen, + können Sie versuchen, httpd als nicht-root-Benutzer zu starten. Wenn dabei keine Fehler auftreten, wird er versuchen, seine - Sockets und Logdateien zu öffnen und fehlschlagen, da er nicht root - ist (oder weil sich der gegenwärtig laufende httpd + Sockets und Logdateien zu öffnen und fehlschlagen, da er nicht root + ist (oder weil sich der gegenwärtig laufende httpd bereits diese Ports gebunden hat). Wenn er aus einem anderen Grund - fehlschlägt, dann liegt wahrscheinlich ein Konfigurationsfehler vor. + fehlschlägt, dann liegt wahrscheinlich ein Konfigurationsfehler vor. Der Fehler sollte behoben werden, bevor der unterbrechungsfreie Neustart angewiesen wird.
    top
    @@ -185,9 +194,9 @@

    Das Senden des Signals HUP oder restart - veranlaßt den Elternprozess, wie bei TERM alle seine + veranlaßt den Elternprozess, wie bei TERM alle seine Kinder zu beenden. Der Elternprozess beendet sich jedoch nicht. Er liest - seine Konfigurationsdateien neu ein und öffnet alle Logdateien + seine Konfigurationsdateien neu ein und öffnet alle Logdateien erneut. Dann erzeugt er einen neuen Satz Kindprozesse und setzt die Bedienung von Zugriffen fort.

    @@ -195,58 +204,135 @@ die Serverstatistiken auf Null gesetzt werden, wenn ein HUP gesendet wurde.

    -
    Wenn Ihre Konfigurationsdatei einen Fehler enthält, - während Sie einen Neustart anweisen, dann wird Ihr Elternprozess +
    Wenn Ihre Konfigurationsdatei einen Fehler enthält, + während Sie einen Neustart anweisen, dann wird Ihr Elternprozess nicht neu starten, sondern sich mit einem Fehler beenden. Lesen Sie oben, - wie Sie das vermeiden können.
    + wie Sie das vermeiden können.
    +
    top
    +
    +

    Rücksichtsvolles Beenden

    + +
    +
    Signal: WINCH
    +
    apachectl -k gracefull stop
    +
    + +

    Das WINCH- oder graceful-stop-Signal + veranlasst den Elternprozess, die Kinder anzuweisen, sich nach + Abschluß ihrer momentan bearbeiteten Anfrage zu beenden (oder sich + sofort zu beenden, wenn sie gerade nichts bedienen). Der Elternprozess + entfernt dann sein PidFile und + stellt das Lauschen auf allen Ports ein. Er läuft weiter und + beobachtet alle Kindprozesse, die noch Anfragen bearbeiten. Sobald alle + Kindprozesse fertig sind und beendet haben oder die mit GracefulShutdownTimeout definierte + Zeitüberschreitung erreicht wurde, beendet sich der Elternprozess + ebenfalls. Jedem verbliebenen Kindprozess wird beim Erreichen der + Zeitüberschreitung das TERM-Signal gesendet, um diesen + zum Beenden zu zwingen.

    + +

    Ein TERM-Signal beendet den Elternprozess und alle + Kindprozesse unverzüglich, wenn sie sich im "graceful"-Status + (Anm.d.Ü.: wörtl. "gnädiger" Status) befinden. Da jedoch das + PidFiledann schon gelöscht + ist, werden Sie dieses Signal nicht mehr mit apachectl oder + httpd senden können.

    + +

    Das Signal graceful-stop ermöglicht Ihnen den + Betrieb mehrerer identisch konfigurierter Instanzen von httpd + zur gleichen Zeit. Dies ist eine mächtige Funktionalität bei der + Aufrüstung des Apache. Sie kann jedoch bei einigen Konfigurationen + auch zur gegenseitigen Blockierung und zu Wettlaufsituationen + führen.

    + +

    Es ist besonders darauf zu achten, dass auf Festplatte gespeicherte + Dateien wie Lockfile und ScriptSock die Server-PID enthalten und ohne + Probleme nebeneinander existieren müssen. Wann auch immer eine + Konfigurationsanweisung, ein Drittanbieter-Modul oder ein persistentes + CGI-Skript irgend eine Sperre oder eine Statusdatei auf Festplatte + speichert, muss besonders darauf geachtet werden, dass mehrere + gleichzeitig laufende Instanzen von httpd sich nicht + gegenseitig die Dateien zerstören.

    + +

    Sie sollten ebenfalls vorsichtig mit möglichen Wettlaufsituationen + sein, wie beispielsweise der Verwendung von weitergeleiteter + Protokollierung nach der Art von rotatelogs. Mehrere + gleichzeitig laufende Instanzen von rotatelogs, die + versuchen, die gleichen Protokolldateien zu rotieren, können sich + gegenseitig die Protokolldateien zerstören.

    +
    top
    -

    Anhang: Signale und Wettkampfsituationen

    +

    Anhang: Signale und Wettlaufsituationen

    Vor der Version 1.2b9 des Apache existierten verschiedene - Wettkampfsituationen (race conditions), die den Neustart und - die Signale beeinflußt haben. (Eine einfache Beschreibung einer - Wettkampfsituation lautet: es ist ein zeitabhängiges Problem; wenn - etwas zum falschen Zeitpunkt erfolgt, wird es sich nicht wie erwartet - verhalten.) Bei Architekturen mit dem "richtigen" Funktionsumfang - haben wir so viele eliminiert wie wir nur konnten. Dennoch - sollte beachtet werden, dass noch immer Wettkampfsituationen auf - bestimmten Architekturen existieren.

    + Wettlaufsituationen (Anm.d.Ü.: engl.: race + conditions), die den Neustart und die Signale beeinflußt + haben (einfach gesagt, eine Wettlaufstituation ist ein zeitabhängiges + Problem - wenn etwas zum falschen Zeitpunkt oder in der falschen + Reihenfolge geschieht, kommt es zu nicht erwünschten Ergebnissen. + Geschehen die gleichen Dinge zur rechten Zeit, ist alles in Ordnung). Bei + Architekturen mit dem "richtigen" (Anm.d.Ü.: im Sinne von + "geeignet") Funktionsumfang haben wir so viele eliminiert wie + wir nur konnten. Dennoch sollte beachtet werden, dass noch immer + Wettlaufsituationen auf bestimmten Architekturen existieren.

    Bei Architekturen, die ein ScoreBoardFile auf Platte verwenden, - besteht die Gefahr, dass die Statustabelle beschädigt wird. + kann die Statustabelle beschädigt werden. Das kann zu "bind: Address already in use" ("bind: Adresse wird bereits verwendet", nach einem HUP) oder "long lost child came home!" ("Der verlorene Sohn ist heimgekehrt", nach einem - USR1) führen. Ersteres ist ein schwerer Fehler, - wärend letzteres lediglich bewirkt, dass der Server einen Eintrag + USR1) führen. Ersteres ist ein schwerer Fehler, + wärend letzteres lediglich bewirkt, dass der Server einen Eintrag in der Statustabelle verliert. So kann es ratsam sein, unterbrechungsfreie Neustarts zusammen mit einem gelegentlichen harten Neustart zu verwenden. Diese Probleme lassen sich nur sehr schwer umgehen, aber - glücklicherweise benötigen die meisten Architekturen keine - Statustabelle in Form einer Datei. Bitte lesen Sie für Architekturen, - die sie benötigen, die Dokumentation zu ScoreBoardFile.

    + glücklicherweise benötigen die meisten Architekturen keine + Statustabelle in Form einer Datei. Bitte lesen Sie für Architekturen, + die sie benötigen, die Dokumentation zu ScoreBoardFile.

    Alle Architekturen haben in jedem Kindprozess eine kleine - Wettkampfsituation, welche die zweite und nachfolgende Anfragen - einer persistenten HTTP-Verbindung (KeepAlive) umfaßt. Der Prozess + Wettlaufsituation, welche die zweite und nachfolgende Anfragen + einer persistenten HTTP-Verbindung (KeepAlive) umfaßt. Der Prozess kann nach dem Lesen der Anfragezeile aber vor dem Lesen der Anfrage-Header - enden. Es existiert eine Korrektur, die für 1.2 zu spät kam. + enden. Es existiert eine Korrektur, die für 1.2 zu spät kam. Theoretisch sollte das kein Problem darstellen, da der KeepAlive-Client derartige Ereignisse aufgrund von Netzwerk-Latenzzeiten und Auszeiten des Servers erwarten sollte. - In der Praxis scheint keiner von beiden beeinflußt zu werden + In der Praxis scheint keiner von beiden beeinflußt zu werden -- in einem Testfall wurde der Server zwanzig mal - pro Sekunde neu gestartet, während Clients das Angebot abgegrast + pro Sekunde neu gestartet, während Clients das Angebot abgegrast haben, ohne kaputte Bilder oder leere Dokumente zu erhalten.

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/stopping.html.en b/docs/manual/stopping.html.en index 4879eb92d19..ad4bf8a6f21 100644 --- a/docs/manual/stopping.html.en +++ b/docs/manual/stopping.html.en @@ -1,28 +1,37 @@ - -Stopping and Restarting - Apache HTTP Server +Stopping and Restarting - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Stopping and Restarting

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Stopping and Restarting

    Available Languages:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    + ko  | + tr 

    This document covers stopping and restarting Apache on @@ -36,8 +45,8 @@

  • Stop Now
  • Graceful Restart
  • Restart Now
  • -
  • Appendix: signals and race conditions
  • -

    See also

    +
  • Graceful Stop
  • +

    See also

    top

    Introduction

    @@ -50,10 +59,11 @@ but you should not send signals to any of them except the parent, whose pid is in the PidFile. That is to say you shouldn't ever need to send signals to any process except the - parent. There are three signals that you can send the parent: + parent. There are four signals that you can send the parent: TERM, + USR1, HUP, and - USR1, which + WINCH, which will be described in a moment.

    To send a signal to the parent you should issue a command @@ -63,7 +73,7 @@

    The second method of signaling the httpd processes is to use the -k command line options: stop, - restart, and graceful, + restart, graceful and graceful-stop, as described below. These are arguments to the httpd binary, but we recommend that you send them using the apachectl control script, which will pass them through to httpd.

    @@ -103,11 +113,6 @@ it with a child from the new generation of the configuration, which begins serving new requests immediately.

    -
    On certain platforms that do not allow USR1 to - be used for a graceful restart, an alternative signal may be used (such - as WINCH). The command apachectl graceful - will send the right signal for your platform.
    -

    This code is designed to always respect the process control directive of the MPMs, so the number of processes and threads available to serve clients will be maintained at the appropriate @@ -117,9 +122,10 @@ been created, then create enough to pick up the slack. Hence the code tries to maintain both the number of children appropriate for the current load on the server, and respect your wishes with the - StartServers parameter.

    + StartServers + parameter.

    -

    Users of the mod_status +

    Users of mod_status will notice that the server statistics are not set to zero when a USR1 is sent. The code was written to both minimize the time in which the server is unable @@ -183,47 +189,77 @@ restart then your parent will not restart, it will exit with an error. See above for a method of avoiding this.

    top
    -

    Appendix: signals and race conditions

    - -

    Prior to Apache 1.2b9 there were several race - conditions involving the restart and die signals (a simple - description of race condition is: a time-sensitive problem, as - in if something happens at just the wrong time it won't behave - as expected). For those architectures that have the "right" - feature set we have eliminated as many as we can. But it should - be noted that there still do exist race conditions on certain - architectures.

    - -

    Architectures that use an on disk ScoreBoardFile have the potential - to corrupt their scoreboards. This can result in the "bind: - Address already in use" (after HUP) or "long lost - child came home!" (after USR1). The former is a fatal - error, while the latter just causes the server to lose a - scoreboard slot. So it might be advisable to use graceful - restarts, with an occasional hard restart. These problems are very - difficult to work around, but fortunately most architectures do - not require a scoreboard file. See the ScoreBoardFile documentation for a - architecture uses it.

    - -

    All architectures have a small race condition in each child - involving the second and subsequent requests on a persistent - HTTP connection (KeepAlive). It may exit after reading the - request line but before reading any of the request headers. - There is a fix that was discovered too late to make 1.2. In - theory this isn't an issue because the KeepAlive client has to - expect these events because of network latencies and server - timeouts. In practice it doesn't seem to affect anything either - -- in a test case the server was restarted twenty times per - second and clients successfully browsed the site without - getting broken images or empty documents.

    +

    Graceful Stop

    + +
    Signal: WINCH
    +
    apachectl -k graceful-stop
    +
    + +

    The WINCH or graceful-stop signal causes + the parent process to advise the children to exit after + their current request (or to exit immediately if they're not + serving anything). The parent will then remove its PidFile and cease listening on + all ports. The parent will continue to run, and monitor children + which are handling requests. Once all children have finalised + and exited or the timeout specified by the GracefulShutdownTimeout has been + reached, the parent will also exit. If the timeout is reached, + any remaining children will be sent the TERM signal + to force them to exit.

    + +

    A TERM signal will immediately terminate the + parent process and all children when in the "graceful" state. However + as the PidFile will + have been removed, you will not be able to use + apachectl or httpd to send this signal.

    + +

    The graceful-stop signal allows you to run multiple + identically configured instances of httpd at the + same time. This is a powerful feature when performing graceful + upgrades of Apache, however it can also cause deadlocks and race + conditions with some configurations.

    + +

    Care has been taken to ensure that on-disk files + such as the Lockfile and ScriptSock files contain the server + PID, and should coexist without problem. However, if a configuration + directive, third-party module or persistent CGI utilises any other on-disk + lock or state files, care should be taken to ensure that multiple running + instances of httpd do not clobber each other's files.

    + +

    You should also be wary of other potential race conditions, such as + using rotatelogs style piped logging. Multiple running + instances of rotatelogs attempting to rotate the same + logfiles at the same time may destroy each other's logfiles.

    Available Languages:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/stopping.html.es b/docs/manual/stopping.html.es index c9f2d28aba9..23c5f3adbf6 100644 --- a/docs/manual/stopping.html.es +++ b/docs/manual/stopping.html.es @@ -1,256 +1,265 @@ - -Iniciar y Parar el servidor Apache - Servidor HTTP Apache +Iniciar y Parar el servidor Apache - Servidor HTTP Apache Versión 2.2 - - + + + +
    <-

    Iniciar y Parar el servidor Apache

    +Apache > Servidor HTTP > Documentación > Versión 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Iniciar y Parar el servidor Apache

    Idiomas disponibles:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    + ko  | + tr 

    -
    Esta traducción podría estar - obsoleta. Consulte la versión en inglés de la - documentación para comprobar si se han producido cambios +
    Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios recientemente.

    Este documento explica como iniciar y parar el servidor Apache en sistemas tipo Unix. Los usuarios de Windows NT, 2000 y XP - deben consultar la sección Ejecutar Apache como un + deben consultar la sección Ejecutar Apache como un servicio y los usuario de Windows 9x y ME deben consultar Ejecutar Apache como una - Aplicación de Consola para obtener información + Aplicación de Consola para obtener información sobre como controlar Apache en esas plataformas.

    -
    top
    -

    Introducción

    +

    Introducción

    -

    Para parar y reiniciar Apache, hay que enviar la señal - apropiada al proceso padre httpd que se esté - ejecutando. Hay dos maneras de enviar estas señales. En +

    Para parar y reiniciar Apache, hay que enviar la señal + apropiada al proceso padre httpd que se esté + ejecutando. Hay dos maneras de enviar estas señales. En primer lugar, puede usar el comando de Unix kill que - envía señales directamente a los procesos. Puede que + envía señales directamente a los procesos. Puede que tenga varios procesos httpd ejecutandose en su - sistema, pero las señales deben enviarse solamente al proceso - padre, cuyo pid está especificado en la directiva PidFile. Esto quiere decir que no - debe necesitar enviar señales a ningún proceso excepto - al proceso padre. Hay tres señales que puede enviar al + sistema, pero las señales deben enviarse solamente al proceso + padre, cuyo pid está especificado en la directiva PidFile. Esto quiere decir que no + debe necesitar enviar señales a ningún proceso excepto + al proceso padre. Hay tres señales que puede enviar al proceso padre: TERM, HUP, y USR1, que van a ser descritas a - continuación.

    + continuación.

    -

    Para enviar una señal al proceso padre debe escribir un +

    Para enviar una señal al proceso padre debe escribir un comando como el que se muestra en el ejemplo:

    kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

    -

    La segunda manera de enviar señales a los procesos - httpd es usando las opciones de línea de +

    La segunda manera de enviar señales a los procesos + httpd es usando las opciones de línea de comandos -k: stop, restart, - y graceful, como se muestra más abajo. Estas + y graceful, como se muestra más abajo. Estas opciones se le pueden pasar al binario httpd, pero se recomienda que se pasen al script de control apachectl, que a su vez los - pasará a httpd.

    + pasará a httpd.

    -

    Después de haber enviado las señales que desee a +

    Después de haber enviado las señales que desee a httpd, puede ver como progresa el proceso escribiendo:

    tail -f /usr/local/apache2/logs/error_log

    Modifique estos ejemplos para que coincidan con la - configuración que tenga especificada en las directivas + configuración que tenga especificada en las directivas ServerRoot y PidFile en su fichero principal de - configuración.

    + configuración.

    top

    Parar Apache

    -
    Señal: TERM
    +
    Señal: TERM
    apachectl -k stop
    -

    Enviar las señales TERM o stop +

    Enviar las señales TERM o stop al proceso padre hace que se intenten eliminar todos los procesos hijo inmediatamente. Esto puede tardar algunos minutos. Una vez - que hayan terminado todos los procesos hijo, terminará el - proceso padre. Cualquier petición en proceso terminará - inmediatanmente, y ninguna petición posterior será + que hayan terminado todos los procesos hijo, terminará el + proceso padre. Cualquier petición en proceso terminará + inmediatanmente, y ninguna petición posterior será atendida.

    top

    Reinicio Graceful

    -
    Señal: USR1
    +
    Señal: USR1
    apachectl -k graceful
    -

    Las señales USR1 o graceful +

    Las señales USR1 o graceful hacen que el proceso padre indique a sus hijos que - terminen después de servir la petición que estén - atendiendo en ese momento (o de inmediato si no están - sirviendo ninguna petición). El proceso padre lee de nuevo - sus ficheros de configuración y vuelve a abrir sus ficheros + terminen después de servir la petición que estén + atendiendo en ese momento (o de inmediato si no están + sirviendo ninguna petición). El proceso padre lee de nuevo + sus ficheros de configuración y vuelve a abrir sus ficheros log. Conforme cada hijo va terminando, el proceso padre lo va - sustituyendo con un hijo de una nueva generación con - la nueva configuración, que empeciezan a servir peticiones + sustituyendo con un hijo de una nueva generación con + la nueva configuración, que empeciezan a servir peticiones inmediatamente.

    En algunas plataformas que no permiten usar USR1 para reinicios graceful, puede usarse una - señal alternativa (como WINCH). Tambien puede + señal alternativa (como WINCH). Tambien puede usar apachectl graceful y el script de control - enviará la señal adecuada para su plataforma.
    + enviará la señal adecuada para su plataforma.
    -

    Apache está diseñado para respetar en todo momento la - directiva de control de procesos de los MPM, así como para - que el número de procesos y hebras disponibles para servir a +

    Apache está diseñado para respetar en todo momento la + directiva de control de procesos de los MPM, así como para + que el número de procesos y hebras disponibles para servir a los clientes se mantenga en los valores adecuados durante el - proceso de reinicio. Aún más, está diseñado + proceso de reinicio. Aún más, está diseñado para respetar la directiva StartServers de la siguiente - manera: si después de al menos un segundo el nuevo hijo de la + manera: si después de al menos un segundo el nuevo hijo de la directiva StartServers no ha sido creado, entonces crea los suficientes para se atienda - el trabajo que queda por hacer. Así, se intenta mantener - tanto el número de hijos adecuado para el trabajo que el - servidor tenga en ese momento, como respetar la configuración - determinada por los parámetros de la directiva + el trabajo que queda por hacer. Así, se intenta mantener + tanto el número de hijos adecuado para el trabajo que el + servidor tenga en ese momento, como respetar la configuración + determinada por los parámetros de la directiva StartServers.

    -

    Los usuarios del módulo mod_status - notarán que las estadísticas del servidor - no se ponen a cero cuando se usa la señal +

    Los usuarios del módulo mod_status + notarán que las estadísticas del servidor + no se ponen a cero cuando se usa la señal USR1. Apache fue escrito tanto para minimizar el tiempo en el que el servidor no puede servir nuevas peticiones - (que se pondrán en cola por el sistema operativo, de modo que - se no se pierda ningún evento), como para respetar sus - parámetros de ajuste. Para hacer esto, tiene que guardar el + (que se pondrán en cola por el sistema operativo, de modo que + se no se pierda ningún evento), como para respetar sus + parámetros de ajuste. Para hacer esto, tiene que guardar el scoreboard usado para llevar el registro de los procesos - hijo a través de las distintas generaciones.

    + hijo a través de las distintas generaciones.

    -

    El mod_status también usa una G para indicar - que esos hijos están todavía sirviendo peticiones +

    El mod_status también usa una G para indicar + que esos hijos están todavía sirviendo peticiones previas al reinicio graceful.

    Actualmente no existe ninguna manera de que un script con un - log de rotación usando USR1 sepa con seguridad + log de rotación usando USR1 sepa con seguridad que todos los hijos que se registraron en el log con anterioridad al reinicio han terminado. Se aconseja que se use un retardo - adecuado después de enviar la señal USR1 + adecuado después de enviar la señal USR1 antes de hacer nada con el log antiguo. Por ejemplo, si la mayor parte las visitas que recibe de usuarios que tienen conexiones de baja velocidad tardan menos de 10 minutos en completarse, entoces espere 15 minutos antes de hacer nada con el log antiguo.

    -
    Si su fichero de configuración tiene errores cuando - haga el reinicio, entonces el proceso padre no se reinciciará - y terminará con un error. En caso de un reinicio graceful, - también dejará a los procesos hijo ejecutandose mientras - existan. (Estos son los hijos de los que se está saliendo de - forma graceful y que están sirviendo sus últimas - peticiones.) Esto provocará problemas si intenta reiniciar el - servidor -- no será posible conectarse a la lista de puertos +
    Si su fichero de configuración tiene errores cuando + haga el reinicio, entonces el proceso padre no se reinciciará + y terminará con un error. En caso de un reinicio graceful, + también dejará a los procesos hijo ejecutandose mientras + existan. (Estos son los hijos de los que se está saliendo de + forma graceful y que están sirviendo sus últimas + peticiones.) Esto provocará problemas si intenta reiniciar el + servidor -- no será posible conectarse a la lista de puertos de escucha. Antes de reiniciar, puede comprobar que la sintaxis de - sus ficheros de configuracion es correcta con la opción de - línea de comandos -t (consulte httpd). No obstante, esto no + sus ficheros de configuracion es correcta con la opción de + línea de comandos -t (consulte httpd). No obstante, esto no garantiza que el servidor se reinicie correctamente. Para comprobar que no hay errores en los ficheros de - configuración, puede intentar iniciar httpd con - un usuario diferente a root. Si no hay errores, intentará - abrir sus sockets y logs y fallará porque el usuario no es - root (o porque el httpd que se está ejecutando - en ese momento ya está conectado a esos puertos). Si falla - por cualquier otra razón, entonces casi seguro que hay - algún error en alguno de los ficheros de configuración y + configuración, puede intentar iniciar httpd con + un usuario diferente a root. Si no hay errores, intentará + abrir sus sockets y logs y fallará porque el usuario no es + root (o porque el httpd que se está ejecutando + en ese momento ya está conectado a esos puertos). Si falla + por cualquier otra razón, entonces casi seguro que hay + algún error en alguno de los ficheros de configuración y debe corregir ese o esos errores antes de hacer un reinicio graceful.
    top

    Reiniciar Apache

    -
    Señal: HUP
    +
    Señal: HUP
    apachectl -k restart
    -

    El envío de las señales HUP o +

    El envío de las señales HUP o restart al proceso padre hace que los procesos hijo - terminen como si le enviá ramos la señal + terminen como si le enviá ramos la señal TERM, para eliminar el proceso padre. La diferencia - está en que estas señales vuelven a leer los archivos de - configuración y vuelven a abrir los ficheros log. Se genera - un nuevo conjunto de hijos y se continúa sirviendo + está en que estas señales vuelven a leer los archivos de + configuración y vuelven a abrir los ficheros log. Se genera + un nuevo conjunto de hijos y se continúa sirviendo peticiones.

    -

    Los usuarios del módulo mod_status - notarán que las estadísticas del servidor se ponen a - cero cuando se envía la señal HUP.

    +

    Los usuarios del módulo mod_status + notarán que las estadísticas del servidor se ponen a + cero cuando se envía la señal HUP.

    -
    Si su fichero de configuración contiene errores, cuando +
    Si su fichero de configuración contiene errores, cuando intente reiniciar, el proceso padre del servidor no se -reiniciará, sino que terminará con un error. Consulte -más arriba cómo puede solucionar este problema.
    +reiniciará, sino que terminará con un error. Consulte +más arriba cómo puede solucionar este problema.
    top
    -

    Apéndice: señales y race conditions

    +

    Apéndice: señales y race conditions

    -

    Con anterioridad a la versión de Apache 1.2b9 había - varias race conditions implicadas en las señales - para parar y reiniciar procesos (una descripción sencilla de +

    Con anterioridad a la versión de Apache 1.2b9 había + varias race conditions implicadas en las señales + para parar y reiniciar procesos (una descripción sencilla de una race condition es: un problema relacionado con el momento en que suceden las cosas, como si algo sucediera en momento en que no debe, y entonces el resultado esperado no se corresponde con el obtenido). Para aquellas arquitecturas que tienen el conjunto de - características "adecuadas", se han eliminado tantas race + características "adecuadas", se han eliminado tantas race conditions como ha sido posible. Pero hay que tener en cuenta que - todavía existen race conditions en algunas arquitecturas.

    + todavía existen race conditions en algunas arquitecturas.

    En las arquitecturas que usan un ScoreBoardFile en disco, existe la posibilidad de que se corrompan los scoreboards. Esto puede hacer que se produzca el error "bind: Address already in use" - (después de usarHUP) o el error "long lost child - came home!" (después de usar USR1). En el + (después de usarHUP) o el error "long lost child + came home!" (después de usar USR1). En el primer caso se trata de un error irrecuperable, mientras que en el segundo, solo ocurre que el servidor pierde un slot del - scoreboard. Por lo tanto, sería aconsejable usar reinicios + scoreboard. Por lo tanto, sería aconsejable usar reinicios graceful, y solo hacer reinicios normales de forma ocasional. Estos problemas son bastante complicados de solucionar, pero afortunadamente casi ninguna arquitectura necesita un fichero - scoreboard. Consulte la documentación de la directiva + scoreboard. Consulte la documentación de la directiva ScoreBoardFile para ver las arquitecturas que la usan.

    -

    Todas las arquitecturas tienen una pequeña race condition +

    Todas las arquitecturas tienen una pequeña race condition en cada proceso hijo implicada en la segunda y subsiguientes - peticiones en una conexión HTTP persistente - (KeepAlive). Puede ser que el servidor termine después de - leer la línea de petición pero antes de leer cualquiera - de las cebeceras de petición. Hay una solución que fue - descubierta demasiado tarde para la incluirla en versión - 1.2. En teoria esto no debe suponer ningún problema porque el + peticiones en una conexión HTTP persistente + (KeepAlive). Puede ser que el servidor termine después de + leer la línea de petición pero antes de leer cualquiera + de las cebeceras de petición. Hay una solución que fue + descubierta demasiado tarde para la incluirla en versión + 1.2. En teoria esto no debe suponer ningún problema porque el cliente KeepAlive ha de esperar que estas cosas pasen debido a los retardos de red y a los timeouts que a veces dan los - servidores. En la practica, parece que no afecta a nada más - -- en una sesión de pruebas, un servidor se reinició + servidores. En la practica, parece que no afecta a nada más + -- en una sesión de pruebas, un servidor se reinició veinte veces por segundo y los clientes pudieron navegar sin problemas por el sitio web sin encontrar problemas ni para descargar una sola imagen ni encontrar un solo enlace roto.

    @@ -258,10 +267,33 @@ m

    Idiomas disponibles:  de  |  en  | - es  | + es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comentarios

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/stopping.html.fr b/docs/manual/stopping.html.fr new file mode 100644 index 00000000000..3113264b741 --- /dev/null +++ b/docs/manual/stopping.html.fr @@ -0,0 +1,312 @@ + + + + + +Arrêt et redémarrage - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Arrêt et redémarrage

    +
    +

    Langues Disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr 

    +
    + +

    Ce document couvre l'arrêt et le redémarrage d'Apache sur + les systèmes Unix et similaires. Les utilisateurs de Windows NT, 2000 + and XP doivent consulter + Exécuter Apache en tant que + service et les utilisateurs de Windows 9x et ME doivent consulter + Exécuter Apache comme une + application de type console pour plus d'informations sur le contrôle + d'Apache à partir de ces plateformes.

    +
    + +
    top
    +
    +

    Introduction

    + +

    Afin d'arrêter ou redémarrer Apache, vous devez envoyer un signal aux + processus httpd en cours d'exécution. Les signaux + peuvent être envoyés de deux manières. La + première méthode consiste à + utiliser la commande unix kill + pour envoyer directement des signaux aux processus. Vous pouvez remarquer + que plusieurs processus httpd s'exécutent sur votre + système, mais il vous suffit d'envoyer les signaux au processus parent, + dont le PID est enregistré dans le fichier précisé par la directive + PidFile. C'est à dire que vous + n'aurez jamais besoin d'envoyer des signaux à aucun de ces processus, + sauf au processus parent. Quatre types de signaux peuvent être envoyés + au processus parent : + TERM, + USR1, + HUP, et + WINCH, qui + seront décrit plus loin.

    + +

    Pour envoyer un signal au processus parent, vous devez entrer une commande + du style :

    + +

    kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

    + +

    La seconde méthode permettant d'envoyer des signaux aux processus + httpd + consiste à utiliser les options stop, + restart, graceful et + graceful-stop du commutateur -k de la ligne + de commande comme décrit ci-dessous. Ce sont des arguments du binaire + httpd, mais il est recommandé de les utiliser + avec le script de contrôle apachectl, qui se + chargera de les passer à httpd.

    + +

    Après avoir envoyé un signal à httpd, vous pouvez + suivre le cours de son action en entrant :

    + +

    tail -f /usr/local/apache2/logs/error_log

    + +

    Adaptez ces exemples en fonction de la définition de vos directives + ServerRoot et + PidFile.

    +
    top
    +
    +

    Arrêter immédiatement

    + +
    Signal: TERM
    +
    apachectl -k stop
    +
    + +

    L'envoi du signal TERM ou stop au + processus parent induit chez celui-ci une tentative immédiate + de tuer tous ses processus enfants. Cela peut durer plusieurs secondes. + Après cela, le processus parent lui-même se termine. Toutes les requêtes + en cours sont terminées, et plus aucune autre n'est traitée.

    +
    top
    +
    +

    Redémarrage en douceur

    + +
    Signal: USR1
    +
    apachectl -k graceful
    +
    + +

    L'envoi du signal USR1 ou graceful au + processus parent lui fait envoyer aux processus enfants + l'ordre de se terminer une fois leur requête courante + traitée (ou de se terminer immédiatement s'ils n'ont plus rien à traiter). + Le processus parent relit ses fichiers de configuration et + réouvre ses fichiers de log. Chaque fois qu'un enfant s'éteint, le + processus parent le remplace par un processus + enfant de la nouvelle génération de la + configuration, et celui-ci commence immédiatement à traiter les + nouvelles requêtes.

    + +

    Ce code est conçu pour toujours respecter la directive de contrôle + de processus des modules MPMs, afin que les nombres de processus et de + threads + disponibles pour traiter les demandes des clients soient maintenus à + des valeurs appropriées tout au long du processus de démarrage. + En outre, il respecte la directive + StartServers de la manière + suivante : si après une seconde au moins StartServers nouveaux processus + enfants n'ont pas été créés, un nombre suffisant de processus + supplémentaires est créé pour combler le manque. Ainsi le code + tente de maintenir à la fois le nombre approprié de processus enfants + en fonction de la charge du serveur, et le nombre de processus défini par la + directive StartServers.

    + +

    Les utilisateurs du module mod_status + noteront que les statistiques du serveur ne sont pas + remises à zéro quand un signal USR1 est envoyé. Le code + a été conçu à la fois pour minimiser la durée durant laquelle le + serveur ne peut pas traiter de nouvelles requêtes (elle sont mises en + file d'attente par le système d'exploitation, et ne sont ainsi jamais + perdues) et pour respecter vos paramètres de personnalisation. + Afin d'accomplir ceci, il doit conserver le + tableau utilisé pour garder la trace de tous les processus + enfants au cours des différentes générations.

    + +

    Dans son état des processus, + le module status utilise aussi un caractère G afin d'indiquer + quels processus enfants ont encore des traitements de requêtes en cours + débutés avant que l'ordre graceful restart ne soit donné.

    + +

    Pour l'instant, il est impossible pour un script de rotation + des logs utilisant + USR1 de savoir de manière certaine si tous les processus + enfants inscrivant des traces de pré-redémarrage sont terminés. + Nous vous suggérons d'attendre un délai suffisant après l'envoi du + signal USR1 + avant de faire quoi que ce soit avec les anciens logs. Par exemple, + si la plupart de vos traitements durent moins de 10 minutes pour des + utilisateurs empruntant des liaisons à faible bande passante, alors vous + devriez attendre 15 minutes avant de faire quoi que ce soit + avec les anciens logs.

    + +
    + Si votre fichier de configuration comporte des erreurs lorsque vous + effectuez un redémarrage, votre processus parent ne redémarrera pas + et se terminera avec une erreur. Dans le cas d'un redémarrage en douceur + (graceful restart), il laissera les processus enfants + s'exécuter quand il s'arrêtera. (Ce sont les processus enfants qui + "s'arrêtent en douceur" en terminant de traiter leur dernière requête.) + Ceci provoquera des problèmes si vous tentez de redémarrer le serveur + -- il ne pourra pas s'associer à ses ports d'écoute. Avant d'effectuer un + redémarrage, vous pouvez vérifier la syntaxe des fichiers de + configuration à l'aide de l'argument de ligne de commande -t + (voir httpd). + + Ceci ne garantit pas encore que le serveur va redémarrer + correctement. Pour vérifier la sémantique des fichiers de configuration + en plus de leur syntaxe, vous pouvez essayer de démarrer + httpd sous un utilisateur non root. + S'il n'y a pas d'erreur, il tentera d'ouvrir ses sockets et ses fichiers + de log et échouera car il n'a pas les privilèges root (ou parce que + l'instance actuelle de + httpd est déjà associée à ces ports). S'il échoue + pour toute autre raison, il y a probablement une erreur dans le + fichier de configuration et celle-ci doit être corrigée avant de lancer + le redémarrage en douceur.
    +
    top
    +
    +

    Redémarrer immédiatement

    + +
    Signal: HUP
    +
    apachectl -k restart
    +
    + +

    L'envoi du signal HUP ou restart au + processus parent lui fait tuer ses processus enfants comme pour le signal + TERM, mais le processus parent ne se termine pas. + Il relit ses fichiers de configuration, et réouvre ses fichiers de log. + Puis il donne naissance à un nouveau jeu de processus enfants + et continue de traiter les requêtes.

    + +

    Les utilisateurs du module mod_status + noteront que les statistiques du serveur sont remises à zéro quand un + signal HUP est envoyé.

    + +
    Si votre fichier de configuration comporte des erreurs quand vous +effectuez un redémarrage, votre processus parent ne redémarrera pas, +il se terminera avec une erreur. Voir plus haut la méthode à employer +pour éviter ce problème.
    +
    top
    +
    +

    Arrêt en douceur

    + +
    Signal : WINCH
    +
    apachectl -k graceful-stop
    +
    + +

    A la réception du signal WINCH ou + graceful-stop, le + processus parent ordonne à ses processus enfants + de s'arrêter après le traitement de leur requête en cours + (ou de s'arrêter immédiatement s'ils n'ont plus de requête à traiter). + Le processus parent va alors supprimer son fichier + PidFile et cesser l'écoute + de tous ses ports. Le processus parent va continuer à s'exécuter, + et va surveiller les processus enfants + qui ont encore des requêtes à traiter. Lorsque tous les processus enfants + ont terminé leurs traitements et se sont arrêtés ou lorsque le délai + spécifié par la directive GracefulShutdownTimeout a été atteint, + le processus parent s'arrêtera à son tour. Si ce délai est atteint, + tout processus enfant encore en cours d'exécution se verra envoyer + le signal TERM + afin de le forcer à s'arrêter.

    + +

    L'envoi du signal TERM va arrêter immédiatement + les processus parent et enfants en état "graceful". Cependant, + comme le fichier PidFile + aura été supprimé, vous ne pourrez pas utiliser + apachectl ou httpd pour envoyer ce signal.

    + +

    Le signal graceful-stop vous permet d'exécuter + simultanément plusieurs instances de httpd + avec des configurations identiques. Ceci s'avère une fonctionnalité + puissante quand vous effectuez des mises à jour "en douceur" d'Apache; + cependant, cela peut aussi causer des blocages fatals et des + situations de compétition (race conditions) + avec certaines configurations.

    + +

    On a pris soin de s'assurer que les fichiers sur disque + comme ceux définis par les directives + Lockfile et + ScriptSock contiennent le PID + du serveur,et coexistent sans problème. Cependant, si une directive de + configuration , un module tiers ou une CGI résidente utilise un autre + verrou ou fichier d'état sur disque, il faut prendre soin de s'assurer + que chaque instance de httpd qui s'exécute + n'écrase pas les fichiers des autres instances.

    + +

    Vous devez aussi prendre garde aux autres situations de compétition, + comme l'utilisation de l'enregistrement des logs avec un transfert de ceux-ci + dans le style rotation des logs. Plusieurs instances + du programme de rotation des logs qui tentent d'effectuer + une rotation des mêmes fichiers de log en même temps peuvent détruire + mutuellement leurs propres fichiers de log.

    +
    +
    +

    Langues Disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/stopping.html.ja.euc-jp b/docs/manual/stopping.html.ja.euc-jp deleted file mode 100644 index 918de5eb59e..00000000000 --- a/docs/manual/stopping.html.ja.euc-jp +++ /dev/null @@ -1,254 +0,0 @@ - - - -Ää»ߤȺƵ¯ư - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    Ää»ߤȺƵ¯ư

    -
    -

    Available Languages:  de  | - en  | - es  | - ja  | - ko 

    -
    - -

    ¤³¤Îʸ½ñ¤ǤÏ Unix ¤ËÎà»÷¤·¤¿¥·¥¹¥ƥà¤ǤÎ - Apache ¤ÎÄä»ߤȺƵ¯ư¤ˤĤ¤¤ư·¤äƤ¤¤ޤ¹¡£ - Windows NT, 2000, XP ¥桼¥¶¤Ï¥µ¡¼¥ӥ¹¤Ȥ·¤Æ - Apache ¤ò¼¹Ԥ¹¤ë¤ǡ¢Windows 9x, ME¥桼¥¶¤Ï¥³¥󥽡¼¥륢¥ץꥱ¡¼¥·¥ç¥ó¤Ȥ·¤Æ - Apache ¤ò¼¹Ԥ¹¤ë¤ǡ¢ - ¤³¤ì¤é¤Υץé¥åȥۡ¼¥à¤ǤλÈÍÑÊýˡ¤ò¤´Í÷²¼¤µ¤¤¡£

    -
    - -
    top
    -
    -

    ¥¤¥ó¥ȥí¥À¥¯¥·¥ç¥ó

    - -

    Apache ¤òÄä»ߤ·¤¿¤êºƵ¯ư¤·¤¿¤ꤹ¤뤿¤á¤ˤϡ¢¼¹Ԥµ¤ì¤Ƥ¤¤ë - httpd ¥ץí¥»¥¹¤˥·¥°¥ʥë¤òÁ÷¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¥·¥°¥ʥë¤òÁ÷¤ë¤ˤÏÆó¤ĤÎÊýˡ¤¬¤¢¤ê¤ޤ¹¡£ - °ì¤ÄÌܤϥץí¥»¥¹¤ËľÀܥ·¥°¥ʥë¤òÁ÷¤ë unix ¤Î kill - ¥³¥ޥó¥ɤò»ÈÍѤ¹¤ëÊýˡ¤Ǥ¹¡£ - ¥·¥¹¥ƥà¤򸫤ì¤Ф¿¤¯¤µ¤ó¤Î httpd ¤¬ - ¼¹Ԥµ¤ì¤Ƥ¤¤ë¤Τ˵¤¤¬Éդ¯¤Ǥ·¤礦¤¬¡¢¥·¥°¥ʥë¤òÁ÷¤ë¤ΤÏ - ¿ƥץí¥»¥¹¤À¤±¤ǡ¢¤½¤ì°ʳ°¤θġ¹¤Υץí¥»¥¹¤ˤÏ - ¥·¥°¥ʥë¤òÁ÷¤é¤ʤ¤¤Dz¼¤µ¤¤¡£¤½¤οƥץí¥»¥¹¤Î pid ¤Ï - PidFile - ¤˽񤫤ì¤Ƥ¤¤ޤ¹¡£¤³¤ì¤ϤĤޤꡢ¿ưʳ°¤Υץí¥»¥¹¤Ë - ¥·¥°¥ʥë¤òÁ÷¤ëɬÍפ¹¤é¤ʤ¤¡¢¤Ȥ¤¤¦¤³¤ȤǤ¹¡£ - ¿ƥץí¥»¥¹¤ËÁ÷¤뤳¤Ȥ¬¤Ǥ­¤ë 3 ¼ïÎà¤Υ·¥°¥ʥ뤬¤¢¤ê¤ޤ¹: - TERM, - HUP, - USR1 - ¤Ǥ¹¡£¤³¤ì¤é¤ÎÀâÌÀ¤ˤĤ¤¤Ƥϳ¤­¤ò¤´Í÷²¼¤µ¤¤¡£

    - -

    ¿ƥץí¥»¥¹¤˥·¥°¥ʥë¤òÁ÷¤ë¤ˤϡ¢ - ¼¡¤Τ褦¤ʥ³¥ޥó¥ɤòȯ¹Ԥ·¤Ʋ¼¤µ¤¤:

    - -

    kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

    - -

    httpd ¥ץí¥»¥¹¤˥·¥°¥ʥë¤òÁ÷¤ë 2 ÈÖÌܤÎÊýˡ¤Ï - -k ¤Ȥ¤¤¦¥³¥ޥó¥ɥ饤¥ó°ú¿ô¤ò»ÈÍѤ¹¤뤳¤ȤǤ¹¡£ - ²¼¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ë¤褦¤ˡ¢stop, restart, - graceful ¤ò»ØÄê¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤é¤Ï httpd ¤ΰú¿ô¤Ǥ¹¤¬¡¢ - À©¸æÍѤΥ¹¥¯¥ê¥ץÈ apachectl ¤Ϥ½¤ì¤é¤ΰú¿ô¤򤽤ΤޤÞ - httpd ¤ËÅϤ·¤ޤ¹¡£

    - -

    httpd ¤˥·¥°¥ʥë¤òÁ÷¤ä¿¸塢 - ¼¹Ծõ¶·¤򼡤Υ³¥ޥó¥ɤÇÆɤळ¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    tail -f /usr/local/apache2/logs/error_log

    -

    ¤³¤³¤˵󤲤¿Îã¤ϡ¢³Ƽ«¤Î - ServerRoot - ¤È - PidFile - ¤ÎÀßÄê¤ËŬ¹礹¤ë¤褦¤ËŬµ¹½¤Àµ¤·¤Ʋ¼¤µ¤¤¡£

    -
    top
    -
    -

    µޤÊÄä»ß

    - -
    ¥·¥°¥ʥë: TERM
    -
    apachectl -k stop
    -
    - -

    TERM ¤¢¤뤤¤Ï stop - ¥·¥°¥ʥë¤ò¿ƥץí¥»¥¹¤ËÁ÷¤ë¤ȡ¢¨º¤˻ҥץí¥»¥¹Á´¤Ƥò kill ¤·¤褦¤Ȥ·¤ޤ¹¡£ - »ҥץí¥»¥¹¤ò´°Á´¤Ë kill ¤·½ª¤ï¤ë¤ޤǤ˿ôÉ䫤«¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - ¤½¤θ塢¿ƥץí¥»¥¹¼«¿Ȥ¬½ªλ¤·¤ޤ¹¡£ - ½èÍýÃæ¤Υꥯ¥¨¥¹¥ȤÏÁ´¤ÆÄä»ߤµ¤졢¤â¤Ϥä¥ꥯ¥¨¥¹¥ȤËÂФ¹¤ë - ±þÅú¤Ϥµ¤ì¤ޤ»¤ó¡£

    -
    top
    -
    -

    ´ˤ䤫¤ʺƵ¯ư

    - -
    ¥·¥°¥ʥë: USR1
    -
    apachectl -k graceful
    -
    - -

    ¿ƥץí¥»¥¹¤Ï USR1 ¤¢¤뤤¤Ï graceful - ¥·¥°¥ʥë¤ò¼õ¤±¼è¤ë¤ȡ¢»ҥץí¥»¥¹¤˸½ºߤΥꥯ¥¨¥¹¥ȤνèÍý¤θå¤˽ªλ¤¹¤ë - (¤¢¤뤤¤ϲ¿¤⤷¤Ƥ¤¤ʤ±¤ì¤Ф¹¤°¤˽ªλ¤¹¤ë) - ¤褦¤Ë½õ¸À¤·¤ޤ¹¡£ - ¿ƥץí¥»¥¹¤ÏÀßÄê¥ե¡¥¤¥ë¤òºÆÆɹþ¤·¤ơ¢¥í¥°¥ե¡¥¤¥ë¤򳫤­ľ¤·¤ޤ¹¡£ - »ҥץí¥»¥¹¤¬½ù¡¹¤ˤʤ¯¤ʤë¤˽¾¤äơ¢ - ¿·¤·¤¤À¤Âå¤ÎÀßÄê¤ˤè¤ë»ҥץí¥»¥¹¤ËÃ֤­´¹¤¨¤Ƥ¤¤­¤ޤ¹¡£ - ¤½¤·¤ơ¢¤³¤ì¤餬¿·¤¿¤ʥꥯ¥¨¥¹¥Ȥ˨º¤˱þÅú¤·»Ϥá¤ޤ¹¡£

    - -
    ÆÃÄê¤Υץé¥åȥۡ¼¥à¤ǤÏ USR1 - ¤ò´ˤ䤫¤ʺƵ¯ư¤Τ¿¤á¤˻Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ»¤󤬡¢Âå¤ï¤ê¤Υ·¥°¥ʥë - (Î㤨¤Ð WINCH) ¤¬»ÈÍѤǤ­¤ë¤Ǥ·¤礦¡£ - apachectl graceful - ¤Ȥ¤¤¦¥³¥ޥó¥ɤϥץé¥åȥۡ¼¥à¤˹ç¤ä¿¥·¥°¥ʥë¤òÁ÷¤ê¤ޤ¹¡£
    - -

    ¤³¤Υ³¡¼¥ɤϾï¤Ë - MPM ¤Υץí¥»¥¹À©¸æ¥ǥ£¥쥯¥ƥ£¥֤ÎÀßÄê¤ò½Ż뤷¤ޤ¹¤Τǡ¢ - ¥¯¥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥Ȥ򰷤¦¥ץí¥»¥¹¤ȥ¹¥ì¥åɤοô¤òºƵ¯ư¤νèÍýÃæ¤â - ŬÀڤÊÃͤ˰ݻý¤µ¤ì¤ޤ¹¡£¡£¤ޤ¿¡¢¼¡¤Τ褦¤ˤ·¤Æ - StartServers - ¤ò¼é¤ê¤ޤ¹: - ¾¯¤ʤ¯¤Ȥâ 1 Éøå¤Ë StartServers ¸Ĥο·¤·¤¤»ҥץí¥»¥¹¤¬ - À¸À®¤µ¤ì¤Ƥ¤¤ʤ±¤ì¤С¢¤½¤οô¤ˤʤë¤褦¤ËŬµ¹¥ץí¥»¥¹¤òÀ¸À®¤·¤ޤ¹¡£ - ¤³¤εóư¤ϸ½ºߤÎÉé²٤ËÂФ·¤ÆŬÀڤʻҥץí¥»¥¹¤οô¤È - StartServers ¥ѥé¥᡼¥¿¤ǤÎ - ´õ˾¤οô¤ÎξÊý¤ò°ݻý¤·¤褦¤Ȥ·¤Ƥ¤¤ޤ¹¡£

    - -

    mod_status ¤ò - »ÈÍѤ·¤Ƥ¤¤ë¾ì¹ç¤ϡ¢USR1 ¥·¥°¥ʥ뤬Á÷¤é¤줿ºݤË - ¥µ¡¼¥ÐÅý·פ¬¥¼¥í¤ËÀßÄꤵ¤ì¤ʤ¤¤³¤ȤË - Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¥µ¡¼¥Ф¬¿·¤·¤¤¥ꥯ¥¨¥¹¥Ȥ˱þÅúÉÔǽ¤ʻþ´֤òºǾ®¤ˤ¹¤ë¤褦¤Ë - (¥ꥯ¥¨¥¹¥ȤÏ OS ¤ˤè¤äƥ­¥塼¤ËÄɲ䵤ì¤ë¤ΤÇÀäÂФËʶ¼º¤Ϥ·¤ޤ»¤ó)¡¢ - ¤ޤ¿Ʊ»þ¤ˡ¢´õ˾¤ΥÁ¥塼¥˥󥰥ѥé¥᡼¥¿¤ò¼é¤ë¤褦¤Ë - ¥³¡¼¥ɤϽ񤫤ì¤Ƥ¤¤ޤ¹¡£ - ¤³¤Τ褦¤ˤ¹¤뤿¤á¤ˡ¢À¤Âå¤ò¤ޤ¿¤¬¤ä¿Á´»ҥץí¥»¥¹¤ÎÄÉÀפ˻Ȥï¤ì¤Ƥ¤¤ë - ¥¹¥³¥¢¥ܡ¼¥É¤ò°ݻý¤·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    status ¥⥸¥塼¥ë¤ϡ¢´ˤ䤫¤ʺƵ¯ư°ÊÁ°¤«¤鳫»Ϥ·¤Æ - ¥ꥯ¥¨¥¹¥Ȥ˱þÅú¤·³¤±¤Ƥ¤¤ë»ҥץí¥»¥¹¤òÆÃÄꤹ¤뤿¤á¤ˡ¢ - G ¤ò»Ȥ¦¤³¤Ȥ⤷¤ޤ¹¡£

    - -

    ¸½ºߡ¢USR1 ¤ò»Ȥ¦¥í¥°°Üư¥¹¥¯¥ê¥ץȤǤϡ¢ - ºƵ¯ưÁ°¤λҥץí¥»¥¹¤¬¥í¥°¤ò½񤭽ª¤ï¤ä¿¤³¤Ȥò³ξڤ¹¤ëÊýˡ¤¬ - ¤¢¤ê¤ޤ»¤󡣸Ť¤¥í¥°¤ËÂФ·¤Ʋ¿¤«¤¹¤ëÁ°¤ˡ¢ - USR1 ¥·¥°¥ʥë¤òÁ÷¤ä¿¸夤¤¯¤餫ŬÅö¤ʻþ´ÖÂԤĤ³¤Ȥò - Äó°Ƥ·¤ޤ¹¡£Î㤨¤С¢ÂӰè¤ζ¹¤¤Ä̿®ϩ¤Υ桼¥¶¤Υꥯ¥¨¥¹¥ȤΤۤȤó¤ɤ¬ 10 - ʬ°ʲ¼¤Ǵ°λ¤·¤Ƥ¤¤ë¤Ȥ¤¤¦¤³¤Ȥ¬ʬ¤«¤äƤ¤¤ì¤С¢ - ¸Ť¤¥í¥°¤˲¿¤«¤¹¤ëÁ°¤Ë 15 ʬÂԤĤȤ¤¤¦¤³¤ȤǤ¹¡£

    - -
    ºƵ¯ư»þ¤ËÀßÄê¥ե¡¥¤¥ë¤˸í¤꤬¤¢¤ë¤ȡ¢ - ¿ƥץí¥»¥¹¤ϺƵ¯ư¤»¤º¤˥¨¥顼¤ȤȤâ¤˽ªλ¤·¤ޤ¹¡£ - ´ˤ䤫¤ʺƵ¯ư¤ξì¹ç¤ϡ¢¿ƥץí¥»¥¹¤¬½ªλ¤·¤¿¸å¤Ǥâ»ҥץí¥»¥¹¤¬ - ¼¹Ԥµ¤줿¤ޤÞÊüÃ֤µ¤줿¤ê¤⤷¤ޤ¹¡£ - (ºǸå¤Υꥯ¥¨¥¹¥Ȥò½èÍý¤·¤¿¸å¡ִˤ䤫¤˽ªλ¡פ¹¤ë - »ҥץí¥»¥¹¤Ȥʤê¤ޤ¹¡£) - ¥µ¡¼¥ФòºƵ¯ư¤¹¤ëºݤˡ¢¤³¤줬ÌäÂê¤ˤʤ뤫¤⤷¤ì¤ޤ»¤ó - -- ¥µ¡¼¥ФÏ listen ¤¹¤ë¥ݡ¼¥Ȥ˥Х¤¥ó¥ɤǤ­¤ʤ¤¤«¤⤷¤ì¤ޤ»¤ó¡£ - ºƵ¯ư¤¹¤ëÁ°¤ˡ¢ÀßÄê¥ե¡¥¤¥ë¤ι½ʸ¤ò -t - ¥³¥ޥó¥ɥ饤¥ó°ú¿ô - (httpd ¤ò¤´Í÷²¼¤µ¤¤) - ¤ò»ȤäƸ¡¾ڤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ÀßÄê¥ե¡¥¤¥ë¤ΰỌ̃Ū¤ÊÆâÍƤò¹½ʸ¤ÈƱÍͤ˸¡¾ڤ·¤¿¤¤¾ì¹ç¤ϡ¢ - Èó root ¥桼¥¶¤Ç httpd ¤òµ¯ư¤·¤褦¤Ȥ¹¤ì¤Ф狼¤ê¤ޤ¹¡£ - ¤⤷¥¨¥顼¤¬¤ʤ±¤ì¤С¢¥½¥±¥åȤä¥í¥°¤򳫤³¤¦¤Ȥ·¤Æ - root ¤Ǥʤ¤¤¿¤á - (¤⤷¤¯¤ϼ¹ÔÃæ¤Î httpd - ¤¬´û¤ËɬÍפʥݡ¼¥Ȥ˥Х¤¥ó¥ɤ·¤Ƥ¤¤뤿¤á) - ¤˼ºÇԤ¹¤ë¤Ǥ·¤礦¡£ - ¤³¤ì°ʳ°¤ÎÍýͳ¤ǵ¯ư¤˼ºÇԤ·¤¿¤ΤǤ¢¤ì¤С¢ - ¤½¤ì¤ÏÀßÄê¥ե¡¥¤¥ë¤Υ¨¥顼¤ǡ¢ - ´ˤ䤫¤ʺƵ¯ư¤ò¹Ԥ¦Á°¤ˤ½¤θí¤ê¤ò½¤Àµ¤·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£
    -
    top
    -
    -

    µޤʺƵ¯ư

    - -
    ¥·¥°¥ʥë: HUP
    -
    apachectl -k restart
    -
    - -

    HUP ¤¢¤뤤¤Ï restart ¥·¥°¥ʥë¤ò¿ƥץí¥»¥¹¤ËÁ÷¤ë¤ȡ¢ - TERM ¤ÈƱÍͤ˻ҥץí¥»¥¹¤ò kill ¤·¤ޤ¹¤¬¡¢ - ¿ƥץí¥»¥¹¤Ͻªλ¤·¤ޤ»¤ó¡£ - ÀßÄê¥ե¡¥¤¥ë¤òºÆÆɹþ¤·¤ơ¢¥í¥°¥ե¡¥¤¥ëÁ´¤Ƥ򳫤­ľ¤·¤ޤ¹¡£ - ¤½¤θ塢¿·¤·¤¤»ҥץí¥»¥¹¤òµ¯ư¤·¤ƱþÅú¤ò³¤±¤ޤ¹¡£

    - -

    mod_status - ¤ò»ȤäƤ¤¤ë¾ì¹ç¤ϡ¢HUP ¤¬Á÷¤é¤줿¾ì¹ç¤Ë - ¥µ¡¼¥ÐÅý·פ¬¥¼¥í¤ËÀßÄꤵ¤ì¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    ºƵ¯ư»þ¤ËÀßÄê¥ե¡¥¤¥ë¤˸í¤꤬¤¢¤ë¤ȡ¢ - ¿ƥץí¥»¥¹¤ϺƵ¯ư¤»¤º¤˥¨¥顼¤ȤȤâ¤˽ªλ¤·¤ޤ¹¡£ - ¤³¤ì¤òÈ򤱤ë¤ˤϼ¡¤ÎÊýˡ¤ò¤´Í÷²¼¤µ¤¤¡£
    -
    top
    -
    -

    ÉÕϿ: ¥·¥°¥ʥë¤ȶ¥¹ç¾õÂÖ

    - -

    Apache 1.2b9 °ÊÁ°¤ϡ¢ºƵ¯ư¤äÄä»ߤΥ·¥°¥ʥë¤ò´ޤà¶¥¹ç¾õÂÖ - (¶¥¹ç¾õÂ֤ò´Êñ¤ËÀâÌÀ¤¹¤ë¤È: ¥¿¥¤¥ߥó¤˥°¤è¤ëÌäÂê¤ǡ¢ - ¶ñ¹ç¤ΰ­¤¤»þ´ÖÂӤˤÁ¤礦¤ɲ¿¤«¤¬µ¯¤³¤ë¤ÈͽÁ۳°¤Îưºî¤򤹤ë - ¤褦¤ʤ³¤Ȥò»ؤ·¤ޤ¹) ¤¬¤¢¤ê¤ޤ·¤¿¡£ - ¡ÖÀµ¤·¤¤¡׵¡ǽ¤ò»ý¤äƤ¤¤륢¡¼¥­¥ƥ¯¥Á¥ã¤Ǥϡ¢¤Ǥ­¤ë¤À¤± - ¤³¤Τ褦¤ʤ³¤Ȥ¬µ¯¤³¤é¤ʤ¤¤褦¤ˤ·¤Ƥ¤¤ޤ¹¡£ - ¤·¤«¤·¡¢¤¢¤ë¼ï¤Υ¢¡¼¥­¥ƥ¯¥Á¥ã¤Ǥ϶¥¹ç¾õÂ֤Ï̤¤À³μ¤˵¯¤³¤ꤨ¤ë - ¤Ȥ¤¤¦¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    ¥ǥ£¥¹¥¯¾å¤Ç - ScoreBoardFile - ¤ò»ÈÍѤ·¤Ƥ¤¤륢¡¼¥­¥ƥ¯¥Á¥ã¤Ǥϡ¢ - ÀøºßŪ¤˥¹¥³¥¢¥ܡ¼¥ɤ¬²õ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£ - ¥¹¥³¥¢¥ܡ¼¥ɤ¬²õ¤줿¾ì¹ç¤ϡ¢ - "bind: Address already in use" (HUP ¸å) ¤ä - "long lost child came home!" (USR1 ¸å) - ¤Ȥ¤¤ä¿·ë²̤ˤʤê¤ޤ¹¡£ - Á°¼ԤÏÃ×̿Ū¤ʥ¨¥顼¤Ǥ¹¤¬¡¢ - ¸å¼Ԥϥ¹¥³¥¢¥ܡ¼¥ɥ¹¥í¥åȤ򼺤¦¤À¤±¤Ǥ¹¡£ - ¤Ǥ¹¤«¤é´ˤ䤫¤ʺƵ¯ư¤ϡ¢¤¿¤ޤ˳μ¤ʺƵ¯ư (HUP) - ¤âʻÍѤ·¤ƻȤä¿Êý¤¬Îɤ¤¤Ǥ·¤礦¡£ - ¤³¤ì¤é¤ÎÌäÂê¤ò¹îÉþ¤¹¤ë¤ΤÏÈó¾ï¤ËÆ񤷤¤¤ΤǤ¹¤¬¡¢ - ¹¬¤¤¤ʤ³¤ȤËÂçÉôʬ¤Υ¢¡¼¥­¥ƥ¯¥Á¥ã¤Ǥϥ¹¥³¥¢¥ܡ¼¥ɤΥե¡¥¤¥ë¤ÏɬÍפ¢¤ê¤ޤ»¤ó¡£ - ¤³¤ì¤ò»ÈÍѤ¹¤륢¡¼¥­¥ƥ¯¥Á¥ã¤ϡ¢ - ScoreBoardFile - ¤ò¤´Í÷²¼¤µ¤¤¡£

    - -

    Á´¤ƤΥ¢¡¼¥­¥ƥ¯¥Á¥ã¤ˤª¤¤¤ơ¢¸ġ¹¤λҥץí¥»¥¹¤Ç - ·Ñ³Ū¤Ê HTTP ¥³¥ͥ¯¥·¥ç¥ó (KeepAlive) - ¤˴ؤ¹¤뾮¤µ¤ʶ¥¹ç¾õÂ֤¬µ¯¤³¤ꤨ¤ޤ¹¡£ - ¥ꥯ¥¨¥¹¥ȹԤòÆɤó¤À¸塢¤½¤·¤ƥꥯ¥¨¥¹¥ȥإåÀ¤òÆɤàÁ°¤Ë - »ҥץí¥»¥¹¤Ͻªλ¤¹¤뤫¤âÃΤì¤ޤ»¤ó¡£ - ¤³¤ì¤ËÂФ¹¤뽤Àµ¤¬¤¢¤ê¤ޤ¹¤¬ 1.2 ¤ǽ¤Àµ¤¹¤ë¤ˤÏȯ¸«¤¬Ã٤¹¤®¤ޤ·¤¿¡£ - ÍýÏÀŪ¤ˤϡ¢¤³¤ì¤ÏÌäÂê¤ǤϤ¢¤ê¤ޤ»¤ó¡£ - ¤ʤ¼¤ʤé KeepAlive ¤Υ¯¥饤¥¢¥ó¥Ȥϡ¢¥ͥåȥ¥¯Ãٱä¤ä - ¥µ¡¼¥ФΥ¿¥¤¥ॢ¥¦¥ȤʤɤËÈ÷¤¨¤Ƥ¤¤ʤ±¤ì¤Фʤé¤ʤ¤¤«¤é¤Ǥ¹¡£ - ¼ºݤˤⲿ¤«±ƶÁ¤¬¤¢¤ë¤褦¤ˤϸ«¤¨¤ޤ»¤ó - -- ¥ƥ¹¥ȥ±¡¼¥¹¤ǥµ¡¼¥Фò 1 Éô֤Ë 20 ²óºƵ¯ư¤·¤Ƥâ - ¥¯¥饤¥¢¥ó¥Ȥϲõ¤줿²èÁü¤ä¶õ¤Υɥ­¥å¥á¥ó¥Ȥò¼õ¤±¼è¤뤳¤Ȥʤ¯ - Àµ¾ï¤˱ÜÍ÷¤Ǥ­¤Ƥ¤¤ޤ¹¡£

    -
    -
    -

    Available Languages:  de  | - en  | - es  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/stopping.html.ja.utf8 b/docs/manual/stopping.html.ja.utf8 new file mode 100644 index 00000000000..776bd7fd7f1 --- /dev/null +++ b/docs/manual/stopping.html.ja.utf8 @@ -0,0 +1,285 @@ + + + + + +停止と再起動 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    停止と再起動

    +
    +

    翻訳済み言語:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    この文書では Unix に類似したシステムでの + Apache の停止と再起動について扱っています。 + Windows NT, 2000, XP ユーザはサービスとして + Apache を実行するで、Windows 9x, MEユーザはコンソールアプリケーションとして + Apache を実行するで、 + これらのプラットホームでの使用方法をご覧下さい。

    +
    + +
    top
    +
    +

    イントロダクション

    + +

    Apache を停止したり再起動したりするためには、実行されている + httpd プロセスにシグナルを送る必要があります。 + シグナルを送るには二つの方法があります。 + 一つ目はプロセスに直接シグナルを送る unix の kill + コマンドを使用する方法です。 + システムを見ればたくさんの httpd が + 実行されているのに気が付くでしょうが、シグナルを送るのは + 親プロセスだけで、それ以外の個々のプロセスには + シグナルを送らないで下さい。その親プロセスの pid は + PidFile + に書かれています。これはつまり、親以外のプロセスに + シグナルを送る必要すらない、ということです。 + 親プロセスに送ることができる 3 種類のシグナルがあります: + TERM, + HUP, + USR1 + です。これらの説明については続きをご覧下さい。

    + +

    親プロセスにシグナルを送るには、 + 次のようなコマンドを発行して下さい:

    + +

    kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

    + +

    httpd プロセスにシグナルを送る 2 番目の方法は + -k というコマンドライン引数を使用することです。 + 下で説明されているように、stop, restart, + graceful, graceful-stop を指定できます。 + これらは httpd の引数ですが、 + 制御用のスクリプト apachectl はそれらの引数をそのまま + httpd に渡します。

    + +

    httpd にシグナルを送った後、 + 実行状況を次のコマンドで読むことができます:

    + +

    tail -f /usr/local/apache2/logs/error_log

    +

    ここに挙げた例は、各自の + ServerRoot + と + PidFile + の設定に適合するように適宜修正して下さい。

    +
    top
    +
    +

    急な停止

    + +
    シグナル: TERM
    +
    apachectl -k stop
    +
    + +

    TERM あるいは stop + シグナルを親プロセスに送ると、即座に子プロセス全てを kill しようとします。 + 子プロセスを完全に kill し終わるまでに数秒かかるかもしれません。 + その後、親プロセス自身が終了します。 + 処理中のリクエストは全て停止され、もはやリクエストに対する + 応答はされません。

    +
    top
    +
    +

    緩やかな再起動 (Graceful Restart)

    + +
    シグナル: USR1
    +
    apachectl -k graceful
    +
    + +

    親プロセスは USR1 あるいは graceful + シグナルを受け取ると、子プロセスに現在のリクエストの処理の後に終了する + (あるいは何もしていなければすぐに終了する) + ように助言します。 + 親プロセスは設定ファイルを再読込して、ログファイルを開き直します。 + 子プロセスが徐々になくなるに従って、 + 新しい世代の設定による子プロセスに置き換えていきます。 + そして、これらが新たなリクエストに即座に応答し始めます。

    + +

    このコードは常に + MPM のプロセス制御ディレクティブの設定を重視しますので、 + クライアントのリクエストを扱うプロセスとスレッドの数を再起動の処理中も + 適切な値に維持されます。。また、次のようにして + StartServers + を守ります: + 少なくとも 1 秒後に StartServers 個の新しい子プロセスが + 生成されていなければ、その数になるように適宜プロセスを生成します。 + この挙動は現在の負荷に対して適切な子プロセスの数と + StartServers パラメータでの + 希望の数の両方を維持しようとしています。

    + +

    mod_status を + 使用している場合は、USR1 シグナルが送られた際に + サーバ統計がゼロに設定されないことに + 注意してください。 + サーバが新しいリクエストに応答不能な時間を最小にするように + (リクエストは OS によってキューに追加されるので絶対に紛失はしません)、 + また同時に、希望のチューニングパラメータを守るように + コードは書かれています。 + このようにするために、世代をまたがった全子プロセスの追跡に使われている + スコアボードを維持しなければなりません。

    + +

    status モジュールは、緩やかな再起動以前から開始して + リクエストに応答し続けている子プロセスを特定するために、 + G を使うこともします。

    + +

    現在、USR1 を使うログ移動スクリプトでは、 + 再起動前の子プロセスがログを書き終わったことを確証する方法が + ありません。古いログに対して何かする前に、 + USR1 シグナルを送った後いくらか適当な時間待つことを + 提案します。例えば、帯域の狭い通信路のユーザのリクエストのほとんどが 10 + 分以下で完了しているということが分かっていれば、 + 古いログに何かする前に 15 分待つということです。

    + +
    再起動時に設定ファイルに誤りがあると、 + 親プロセスは再起動せずにエラーとともに終了します。 + 緩やかな再起動の場合は、親プロセスが終了した後でも子プロセスが + 実行されたまま放置されたりもします。 + (最後のリクエストを処理した後「緩やかに終了」する + 子プロセスとなります。) + サーバを再起動する際に、これが問題になるかもしれません + -- サーバは listen するポートにバインドできないかもしれません。 + 再起動する前に、設定ファイルの構文を -t + コマンドライン引数 + (httpd をご覧下さい) + を使って検証することができます。 + 設定ファイルの意味的な内容を構文と同様に検証したい場合は、 + 非 root ユーザで httpd を起動しようとすればわかります。 + もしエラーがなければ、ソケットやログを開こうとして + root でないため + (もしくは実行中の httpd + が既に必要なポートにバインドしているため) + に失敗するでしょう。 + これ以外の理由で起動に失敗したのであれば、 + それは設定ファイルのエラーで、 + 緩やかな再起動を行う前にその誤りを修正しなければなりません。
    +
    top
    +
    +

    急な再起動

    + +
    シグナル: HUP
    +
    apachectl -k restart
    +
    + +

    HUP あるいは restart シグナルを親プロセスに送ると、 + TERM と同様に子プロセスを kill しますが、 + 親プロセスは終了しません。 + 設定ファイルを再読込して、ログファイル全てを開き直します。 + その後、新しい子プロセスを起動して応答を続けます。

    + +

    mod_status + を使っている場合は、HUP が送られた場合に + サーバ統計がゼロに設定されることに注意してください。

    + +
    再起動時に設定ファイルに誤りがあると、 + 親プロセスは再起動せずにエラーとともに終了します。 + これを避けるには次の方法をご覧下さい。
    +
    top
    +
    +

    緩やかな停止 (Graceful Stop)

    + +
    Signal: WINCH
    +
    apachectl -k graceful-stop
    +
    + +

    親プロセスは WINCH あるいは graceful-stop + シグナルを受け取ると、子プロセスに現在のリクエストの処理の後に終了する + (あるいは何もしていなければすぐに終了する) + ように助言します。 + その後に親プロセスは PidFile + を削除し、全ポートからの Listen をやめます。 + 親プロセスはこのまま継続し、子プロセスがリクエストを処理する + のを監視しています。子プロセスが全て処理を終えて終了するか、GracefulShutdownTimeout + で指定されたタイムアウトに達した後で、親プロセスも終了します。 + タイムアウトに達した場合は、残りの子プロセスには TERM + シグナルが送信され、強制終了されます。

    + +

    TERM シグナルによって、"graceful" 状態にある親プロセスと + 子プロセスの全てが直ちに終了します。ただし、 + PidFile は既に削除 + されてしまっていますので、apachectl や httpd + でこれらにシグナルを送ることはできません。

    + +

    graceful-stop シグナルを使うと、まったく同一の設定 + ファイルを使った httpd を同時に複数起動することが + できるようになります。 + この機能を使うと、Apache をアップグレードする際にとても便利でしょう。 + ただし、設定によってはデッドロックや競合状態 (レースコンディション) + を引き起こすかもしれません。

    + +

    Lockfile や ScriptSock などでのディスク上のファイルについては、 + ファイルにサーバの PID が含まれるようになっていて、httpd が複数同時に動作していても + 問題がおきないように注意が払われています。 + しかし、設定ディレクティブやサードパーティ製モジュール、CGI で使用される永続的な + ディスクを使ったロックや状態ファイルを活用している場合についても、 + 複数の httpd が動作している状態であっても、それぞれで + ファイルを上書きしないように注意しなければなりません。

    + +

    潜在的な競合状態についても心配する必要があるでしょう。 + たとえば rotatelogs 形式のパイプによるログなどが該当します。 + 複数の rotatelogs インスタンスが同時に同じログファイルを + rotate しようとすると、ログファイルが破壊されるかもしれません。

    +
    +
    +

    翻訳済み言語:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/stopping.html.ko.euc-kr b/docs/manual/stopping.html.ko.euc-kr index bdbd2b100c5..47bdfe3e1e9 100644 --- a/docs/manual/stopping.html.ko.euc-kr +++ b/docs/manual/stopping.html.ko.euc-kr @@ -1,28 +1,37 @@ - -Áߴܰú Àç½ÃÀÛ - Apache HTTP Server +Áߴܰú Àç½ÃÀÛ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Áߴܰú Àç½ÃÀÛ

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Áߴܰú Àç½ÃÀÛ

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  |  es  | + fr  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -37,7 +46,7 @@
  • Á¡ÀÝÀº Àç½ÃÀÛ
  • ´çÀå Àç½ÃÀÛ
  • ºηÏ: ½ñ׳ΰú ·¹À̽º ÄÁµð¼Ç
  • -

    Âü°í

    +

    Âü°í

    top

    ¼Ұ³

    @@ -197,9 +206,32 @@

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  |  es  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/stopping.html.tr.utf8 b/docs/manual/stopping.html.tr.utf8 new file mode 100644 index 00000000000..e22631a4a27 --- /dev/null +++ b/docs/manual/stopping.html.tr.utf8 @@ -0,0 +1,274 @@ + + + + + +Durdurma ve Yeniden Başlatma - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Durdurma ve Yeniden Başlatma

    +
    +

    Mevcut Diller:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr 

    +
    + +

    Bu belge Apache HTTPd’nin Unix benzeri sistemlerde durdurulması ve + yeniden başlatılması konularını kapsar. Windows NT, 2000 ve XP + kullanıcıları Apache HTTPd’yi bu platformlarda nasıl denetimlerine + alacaklarını öğrenmek için Apache + HTTPd’nin Bir Hizmet Olarak Çalıştırılması sayfasına, Windows 9x ve + ME kullanıcıları ise Apache + HTTPd’nin Bir Konsol Uygulaması Olarak Çalıştırılması sayfasına + bakabilirler.

    +
    + +
    top
    +
    +

    Giriş

    + +

    Apache HTTPd’yi durdurmak ve yeniden başlatmak için çalışan + httpd süreçlerine bir sinyal göndermeniz gerekir. + Sinyal göndermek için iki yol vardır. İlki, süreçlere doğrudan sinyal + göndermek için unix kill komutunun kullanımıdır. Bu + suretle, sisteminizde çalışmakta olan bir çok httpd + sürecini uyarabilirsiniz ama süreç kimliği PidFile yönergesi ile belirtilen dosyada + tutulan ana süreç dışında hiçbirine sinyal göndermemelisiniz. Başka + bir deyişle, ana süreç haricinde hiçbir sürece sinyal göndermeye normal + olarak ihtiyacınız olmaması gerekir. Ana sürece gönderebileceğiniz + dört çeşit sinyal vardır: + TERM, + USR1, + HUP ve + WINCH. Bunlar yeri geldikçe + açıklanacaktır.

    + +

    Ana sürece kill ile sinyal göndermek için şöyle bir + komut verebilirsiniz:

    + +

    kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

    + +

    httpd süreçlerine sinyal göndermenin ikinci yolu + -k komut satırı seçeneğini şu değerlerden biri ile + kullanmaktır: stop, restart, + graceful ve graceful-stop. Bunlar aşağıda + açıklanacaktır. -k komut satırı seçeneği + httpd’ye ait olsa da ana sürece bu sinyalleri + göndermek için apachectl betiğini kullanmanızı + öneririz. apachectl, komut satırı seçeneklerini + httpd’ye aktaracaktır.

    + +

    httpd’ye sinyal gönderdikten sonra olup biteni şu + komutla izleyebilirsiniz:

    + +

    tail -f /usr/local/apache2/logs/error_log

    + +

    Bu örnekleri, kendi ServerRoot ve + PidFile yönergelerinizdeki + ayarlara uygun olarak değiştirdikten sonra kullanınız.

    +
    top
    +
    +

    Hemen Durdur

    + +
    Sinyal: TERM
    +
    apachectl -k stop
    +
    + +

    Ana sürece TERM veya stop sinyali + göndererek tüm çocukların bir an önce öldürülmeye çalışılmasını sağlamış + olursunuz. Tüm çocukların öldürülmesi bir kaç saniye sürebilir. Son + olarak ana süreç çıkacaktır. Yanıtlanmakta olan istekler hemen + sonlandırılacak ve artık isteklere yanıt verilmeyecektir.

    +
    top
    +
    +

    Nazikçe Yeniden Başlat

    + +
    Sinyal: USR1
    +
    apachectl -k graceful
    +
    + +

    Ana sürece USR1 veya graceful sinyalinin + gönderilmesi, çocuklara ellerindeki mevcut işleri bitirdikten sonra + (veya sundukları bir şey yoksa hemen) çıkmalarının önerilmesi + demektir. Ana süreç kendi yapılandırma dosyalarını yeniden okur ve + kendi günlük dosyalarını yeniden açar. Ana sürecin öldürdüğü her sürecin + yerine yeni yapılandırma kuşağından bir süreç başlatır ve hemen + yeni isteklere hizmet sunulmaya başlanır.

    + +

    Bu kod MPM’lerin süreçleri denetleyen yönergelerine daima uyacak + şekilde tasarlanmıştır. Bu suretle, istemcilere hizmet sunacak çocuk + süreçler ve evreler, yeniden başlatma işleminde de uygun sayıda + sağlanmış olur. Bununla birlikte, StartServers yönergesinde şöyle + davranılır: İlk saniye içinde en azından StartServers sayıda yeni çocuk + oluşturulmamışsa iş olmayan bir devreyi geçiştirecek kadarı oluşturulur. + Ardından sunucunun mevcut yükünü karşılamak için gereken sayıda çocuk + süreç oluşturulur. Bu suretle, kod her ikisi için de gereğini yerine + getirmeye çalışmış olur.

    + +

    mod_status kullanıcıları USR1 + gönderildiği zaman sunucu istatistiklerinin sıfırlanmadığı konusunda + uyarılacaktır. Kod, sunucunun yeni isteklere yanıt veremediği zamanı en + aza indirmenin yanısıra ayar parametrelerinize de uymak üzere + tasarlanmıştır (yeni istekler işletim sistemi tarafından kuyruğa + alınacağından bir istek kaybı olayı yaşanmaz). Bunu sağlamak için, her + iki kuşağın çocuklarının izini sürecek bir çetele tutulur.

    + +

    mod_status modülü, nazikçe yeniden başlat komutunun + verilmesinden önce başlamış ve sunulmaya devam eden isteklere bakan + çocukları imlemek için ayrıca bir G (Graceful’un baş harfi) + kullanır.

    + +

    Günlük dosyası döndürme betiğine, yeniden başlatma öncesi günlüğe yazan + tüm çocukların işini bitirdiğini USR1 kullanarak + bildirmenin bir yolu yoktur. Önerimiz, eski günlük kaydı üzerinde bir + işlem yapmaya başlamadan önce USR1 sinyali gönderilmesinin + ardından belli bir süre beklenilmesi olacaktır. Örneğin, düşük band + genişliğine sahip istemcilere hizmet sunan çoğu sürecin işinin 10 + dakikadan önce bitmeyeceğini gözönüne alarak eski günlük üzerinde işlem + yapmaya başlamak için 15 dakika beklenebilir.

    + +
    Bir yeniden başlatma isteğinde, eğer yapılandırma dosyalarınızda bir + hata varsa sunucu yeniden başlamaz ve bir hata ile çıkar. Nazikçe + yeniden başlatma durumunda ana süreç çıkarken çocuklarını çalışır durumda + bırakır. (Bunlar, ellerindeki istekler bitince ‘nazikçe çıkacak’ olan + çocuk süreçlerdir.) Eğer sunucuyu yeniden başlatmaya çalışırsanız bu + sorunlara yol açar; örneğin, dinleyeceği portları bağlayamayabilir. Bir + yeniden başlatma öncesinde yapılandırma dosyalarınızın sözdizimini + -t komut satırı seçeneği ile sınayabilirsiniz (bkz, + httpd). Ancak, bu hala sunucunuzun düzgünce yeniden + başlatılmasını garanti etmeyecektir. Yapılandırma dosyalarınızı + sözdizimi denetiminin yanında anlamlandırılması bakımından da sınamak + için httpd’nin root olmayan bir kullanıcı tarafından + çalıştırılmasını deneyebilirsiniz. Eğer yapılandırma dosyalarında bir + hata yoksa soketleri ve günlük dosyalarını açmaya çalışırken root + aidiyetinde çalışmadığından veya çalışmakta olan asıl sunucu bu portları + zaten dinlediğinden başarısız olacaktır. Eğer başka bir sebeple + başarısız olursa olası sebep bir yapılandırma dosyası hatasıdır ve asıl + sunucuya ‘nazikçe yeniden başla’ komutunu vermeden önce bu hatayı + düzeltmeniz gerekir.
    +
    top
    +
    +

    Hemen Yeniden Başlat

    + +
    Sinyal: HUP
    +
    apachectl -k restart
    +
    + +

    Ana sürece HUP veya restart sinyalinin + gönderilmesi tüm çocukların TERM sinyali gönderilmiş gibi + öldürülmesine sebep olur fakat ana sürecin çıkmasını sağlamaz. + Ana süreç yapılandırma dosyalarını yeniden okur ve günlük kayıt + dosyalarını yeniden açar. Bunların ardından isteklere yanıt verecek yeni + kuşak çocukları oluşturmaya başlar.

    + +

    mod_status kullanıcıları bir HUP sinyali + gönderildiğinde sunucu istatistiklerinin sıfırlandığı konusunda + uyarılırlar.

    + +
    Eğer yapılandırma dosyalarınızda sözdizimi hatası varsa yeniden + başlatma işlemi gerçekleşmez ve ana süreç bir hata vererek çıkar. + Bundan kaçınmak için önceki yönteme bakınız.
    +
    top
    +
    +

    Nazikçe Durdur

    + +
    Sinyal: WINCH
    +
    apachectl -k graceful-stop
    +
    + +

    Ana sürecin WINCH veya graceful-stop + sinyalini alması, çocuklara ellerindeki mevcut işleri bitirdikten sonra + (veya sundukları bir şey yoksa hemen) çıkmalarının önerilmesine + sebep olur. Ebevey süreç bunun hemen PidFile dosyasını siler ve port + dinlemeyi keser. Ana süreç çalışmaya ve isteklere yanıt vermekte olan + çocuk süreçleri izlemeye devam eder. Tüm çocuklar işlerini bitirip + çıktığında veya GracefulShutdownTimeout ile belirtilen + zaman aşımı dolduğunda ana süreç de kendini sonlandırır. Eğer zaman aşımı + devreye girmişse o an calışmakta olan çocuk süreçlere TERM + sinyali gönderilerek hemen çıkmaları sağlanır.

    + +

    Bir TERM sinyali ile "graceful" durumundaki tüm çocuklar + ve ana süreç hemen sonlandırılacaktır. Bununla birlikte, PidFile dosyası da silineceğinden, artık + apachectl veya httpd’yi bu sinyali göndermek + için kullanamayacaksınız.

    + +

    graceful-stop sinyali, aynı anda, aynı yapılandırma + ile çok sayıda httpd kopyasının çalıştırılabilmesine + imkan verir. Bu, Apache nazikçe yükseltileceği zaman güçlü bir özellik + haline gelmekteyse de, bazı yapılandırmalarda yarış koşullarının + oluşmasına ve kısır çekişmelere (deadlock) sebep olabilir.

    + +

    Sunucunun süreç kimliğini içeren Lockfile ve ScriptSock gibi dosyaların disk üzerindeki + mevcudiyetlerinin sorunsuz olarak devam ettiğinden emin olunmaya + çalışılmalıdır. Ayrıca, bir yapılandırma yönergesi, üçüncü parti bir + modül veya kalıcı CGI uygulamalarına ait disk kilit veya durum dosyaları + olabilir; httpd’nin birden fazla kopyasının çalışması + nedeniyle bu dosyaların da üzerine yazılmadığından emin olunmaya + çalışılmalıdır.

    + +

    rotatelogs tarzı borulu günlükleme kullanımı gibi + durumlarda yarış koşullarının oluşması olasılığına karşı uyanık + olunmalıdır. Aynı günlük kayıt dosyalarını aynı anda döndürmeye çalışan + birden fazla rotatelogs kopyasının çalıştırılması + halinde bunların her biri diğerlerinin günlük kayıt dosyalarının kaybına + sebep olabilir.

    +
    +
    +

    Mevcut Diller:  de  | + en  | + es  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/stopping.xml b/docs/manual/stopping.xml index c630b8083a7..2a999997cbd 100644 --- a/docs/manual/stopping.xml +++ b/docs/manual/stopping.xml @@ -4,12 +4,12 @@ + + + + + + + + + + Arrêt et redémarrage + + +

    Ce document couvre l'arrêt et le redémarrage d'Apache sur + les systèmes Unix et similaires. Les utilisateurs de Windows NT, 2000 + and XP doivent consulter + Exécuter Apache en tant que + service et les utilisateurs de Windows 9x et ME doivent consulter + Exécuter Apache comme une + application de type console pour plus d'informations sur le contrôle + d'Apache à partir de ces plateformes.

    +
    + +httpd +apachectl +Démarrage + +
    Introduction + +

    Afin d'arrêter ou redémarrer Apache, vous devez envoyer un signal aux + processus httpd en cours d'exécution. Les signaux + peuvent être envoyés de deux manières. La + première méthode consiste à + utiliser la commande unix kill + pour envoyer directement des signaux aux processus. Vous pouvez remarquer + que plusieurs processus httpd s'exécutent sur votre + système, mais il vous suffit d'envoyer les signaux au processus parent, + dont le PID est enregistré dans le fichier précisé par la directive + PidFile. C'est à dire que vous + n'aurez jamais besoin d'envoyer des signaux à aucun de ces processus, + sauf au processus parent. Quatre types de signaux peuvent être envoyés + au processus parent : + TERM, + USR1, + HUP, et + WINCH, qui + seront décrit plus loin.

    + +

    Pour envoyer un signal au processus parent, vous devez entrer une commande + du style :

    + +kill -TERM `cat /usr/local/apache2/logs/httpd.pid` + +

    La seconde méthode permettant d'envoyer des signaux aux processus + httpd + consiste à utiliser les options stop, + restart, graceful et + graceful-stop du commutateur -k de la ligne + de commande comme décrit ci-dessous. Ce sont des arguments du binaire + httpd, mais il est recommandé de les utiliser + avec le script de contrôle apachectl, qui se + chargera de les passer à httpd.

    + +

    Après avoir envoyé un signal à httpd, vous pouvez + suivre le cours de son action en entrant :

    + +tail -f /usr/local/apache2/logs/error_log + +

    Adaptez ces exemples en fonction de la définition de vos directives + ServerRoot et + PidFile.

    +
    + +
    Arrêter immédiatement + +
    Signal: TERM
    +
    apachectl -k stop
    +
    + +

    L'envoi du signal TERM ou stop au + processus parent induit chez celui-ci une tentative immédiate + de tuer tous ses processus enfants. Cela peut durer plusieurs secondes. + Après cela, le processus parent lui-même se termine. Toutes les requêtes + en cours sont terminées, et plus aucune autre n'est traitée.

    +
    + +
    Redémarrage en douceur + +
    Signal: USR1
    +
    apachectl -k graceful
    +
    + +

    L'envoi du signal USR1 ou graceful au + processus parent lui fait envoyer aux processus enfants + l'ordre de se terminer une fois leur requête courante + traitée (ou de se terminer immédiatement s'ils n'ont plus rien à traiter). + Le processus parent relit ses fichiers de configuration et + réouvre ses fichiers de log. Chaque fois qu'un enfant s'éteint, le + processus parent le remplace par un processus + enfant de la nouvelle génération de la + configuration, et celui-ci commence immédiatement à traiter les + nouvelles requêtes.

    + +

    Ce code est conçu pour toujours respecter la directive de contrôle + de processus des modules MPMs, afin que les nombres de processus et de + threads + disponibles pour traiter les demandes des clients soient maintenus à + des valeurs appropriées tout au long du processus de démarrage. + En outre, il respecte la directive + StartServers de la manière + suivante : si après une seconde au moins StartServers nouveaux processus + enfants n'ont pas été créés, un nombre suffisant de processus + supplémentaires est créé pour combler le manque. Ainsi le code + tente de maintenir à la fois le nombre approprié de processus enfants + en fonction de la charge du serveur, et le nombre de processus défini par la + directive StartServers.

    + +

    Les utilisateurs du module mod_status + noteront que les statistiques du serveur ne sont pas + remises à zéro quand un signal USR1 est envoyé. Le code + a été conçu à la fois pour minimiser la durée durant laquelle le + serveur ne peut pas traiter de nouvelles requêtes (elle sont mises en + file d'attente par le système d'exploitation, et ne sont ainsi jamais + perdues) et pour respecter vos paramètres de personnalisation. + Afin d'accomplir ceci, il doit conserver le + tableau utilisé pour garder la trace de tous les processus + enfants au cours des différentes générations.

    + +

    Dans son état des processus, + le module status utilise aussi un caractère G afin d'indiquer + quels processus enfants ont encore des traitements de requêtes en cours + débutés avant que l'ordre graceful restart ne soit donné.

    + +

    Pour l'instant, il est impossible pour un script de rotation + des logs utilisant + USR1 de savoir de manière certaine si tous les processus + enfants inscrivant des traces de pré-redémarrage sont terminés. + Nous vous suggérons d'attendre un délai suffisant après l'envoi du + signal USR1 + avant de faire quoi que ce soit avec les anciens logs. Par exemple, + si la plupart de vos traitements durent moins de 10 minutes pour des + utilisateurs empruntant des liaisons à faible bande passante, alors vous + devriez attendre 15 minutes avant de faire quoi que ce soit + avec les anciens logs.

    + + + Si votre fichier de configuration comporte des erreurs lorsque vous + effectuez un redémarrage, votre processus parent ne redémarrera pas + et se terminera avec une erreur. Dans le cas d'un redémarrage en douceur + (graceful restart), il laissera les processus enfants + s'exécuter quand il s'arrêtera. (Ce sont les processus enfants qui + "s'arrêtent en douceur" en terminant de traiter leur dernière requête.) + Ceci provoquera des problèmes si vous tentez de redémarrer le serveur + -- il ne pourra pas s'associer à ses ports d'écoute. Avant d'effectuer un + redémarrage, vous pouvez vérifier la syntaxe des fichiers de + configuration à l'aide de l'argument de ligne de commande -t + (voir httpd). + + Ceci ne garantit pas encore que le serveur va redémarrer + correctement. Pour vérifier la sémantique des fichiers de configuration + en plus de leur syntaxe, vous pouvez essayer de démarrer + httpd sous un utilisateur non root. + S'il n'y a pas d'erreur, il tentera d'ouvrir ses sockets et ses fichiers + de log et échouera car il n'a pas les privilèges root (ou parce que + l'instance actuelle de + httpd est déjà associée à ces ports). S'il échoue + pour toute autre raison, il y a probablement une erreur dans le + fichier de configuration et celle-ci doit être corrigée avant de lancer + le redémarrage en douceur. +
    + +
    Redémarrer immédiatement + +
    Signal: HUP
    +
    apachectl -k restart
    +
    + +

    L'envoi du signal HUP ou restart au + processus parent lui fait tuer ses processus enfants comme pour le signal + TERM, mais le processus parent ne se termine pas. + Il relit ses fichiers de configuration, et réouvre ses fichiers de log. + Puis il donne naissance à un nouveau jeu de processus enfants + et continue de traiter les requêtes.

    + +

    Les utilisateurs du module mod_status + noteront que les statistiques du serveur sont remises à zéro quand un + signal HUP est envoyé.

    + +Si votre fichier de configuration comporte des erreurs quand vous +effectuez un redémarrage, votre processus parent ne redémarrera pas, +il se terminera avec une erreur. Voir plus haut la méthode à employer +pour éviter ce problème. +
    + +
    Arrêt en douceur + +
    Signal : WINCH
    +
    apachectl -k graceful-stop
    +
    + +

    A la réception du signal WINCH ou + graceful-stop, le + processus parent ordonne à ses processus enfants + de s'arrêter après le traitement de leur requête en cours + (ou de s'arrêter immédiatement s'ils n'ont plus de requête à traiter). + Le processus parent va alors supprimer son fichier + PidFile et cesser l'écoute + de tous ses ports. Le processus parent va continuer à s'exécuter, + et va surveiller les processus enfants + qui ont encore des requêtes à traiter. Lorsque tous les processus enfants + ont terminé leurs traitements et se sont arrêtés ou lorsque le délai + spécifié par la directive GracefulShutdownTimeout a été atteint, + le processus parent s'arrêtera à son tour. Si ce délai est atteint, + tout processus enfant encore en cours d'exécution se verra envoyer + le signal TERM + afin de le forcer à s'arrêter.

    + +

    L'envoi du signal TERM va arrêter immédiatement + les processus parent et enfants en état "graceful". Cependant, + comme le fichier PidFile + aura été supprimé, vous ne pourrez pas utiliser + apachectl ou httpd pour envoyer ce signal.

    + +

    Le signal graceful-stop vous permet d'exécuter + simultanément plusieurs instances de httpd + avec des configurations identiques. Ceci s'avère une fonctionnalité + puissante quand vous effectuez des mises à jour "en douceur" d'Apache; + cependant, cela peut aussi causer des blocages fatals et des + situations de compétition (race conditions) + avec certaines configurations.

    + +

    On a pris soin de s'assurer que les fichiers sur disque + comme ceux définis par les directives + Lockfile et + ScriptSock contiennent le PID + du serveur,et coexistent sans problème. Cependant, si une directive de + configuration , un module tiers ou une CGI résidente utilise un autre + verrou ou fichier d'état sur disque, il faut prendre soin de s'assurer + que chaque instance de httpd qui s'exécute + n'écrase pas les fichiers des autres instances.

    + +

    Vous devez aussi prendre garde aux autres situations de compétition, + comme l'utilisation de l'enregistrement des logs avec un transfert de ceux-ci + dans le style rotation des logs. Plusieurs instances + du programme de rotation des logs qui tentent d'effectuer + une rotation des mêmes fichiers de log en même temps peuvent détruire + mutuellement leurs propres fichiers de log.

    +
    + +
    diff --git a/docs/manual/stopping.xml.ja b/docs/manual/stopping.xml.ja index 51a7565c01e..2d82eb1aaa5 100644 --- a/docs/manual/stopping.xml.ja +++ b/docs/manual/stopping.xml.ja @@ -1,15 +1,15 @@ - + - + + - + stopping / . - de + de en es - ja + fr + ja ko + tr diff --git a/docs/manual/stopping.xml.tr b/docs/manual/stopping.xml.tr new file mode 100644 index 00000000000..3e171e32e2a --- /dev/null +++ b/docs/manual/stopping.xml.tr @@ -0,0 +1,243 @@ + + + + + + + + + + + Durdurma ve Yeniden Başlatma + + +

    Bu belge Apache HTTPd’nin Unix benzeri sistemlerde durdurulması ve + yeniden başlatılması konularını kapsar. Windows NT, 2000 ve XP + kullanıcıları Apache HTTPd’yi bu platformlarda nasıl denetimlerine + alacaklarını öğrenmek için Apache + HTTPd’nin Bir Hizmet Olarak Çalıştırılması sayfasına, Windows 9x ve + ME kullanıcıları ise Apache + HTTPd’nin Bir Konsol Uygulaması Olarak Çalıştırılması sayfasına + bakabilirler.

    +
    + +httpd +apachectl +Başlatma + +
    Giriş + +

    Apache HTTPd’yi durdurmak ve yeniden başlatmak için çalışan + httpd süreçlerine bir sinyal göndermeniz gerekir. + Sinyal göndermek için iki yol vardır. İlki, süreçlere doğrudan sinyal + göndermek için unix kill komutunun kullanımıdır. Bu + suretle, sisteminizde çalışmakta olan bir çok httpd + sürecini uyarabilirsiniz ama süreç kimliği PidFile yönergesi ile belirtilen dosyada + tutulan ana süreç dışında hiçbirine sinyal göndermemelisiniz. Başka + bir deyişle, ana süreç haricinde hiçbir sürece sinyal göndermeye normal + olarak ihtiyacınız olmaması gerekir. Ana sürece gönderebileceğiniz + dört çeşit sinyal vardır: + TERM, + USR1, + HUP ve + WINCH. Bunlar yeri geldikçe + açıklanacaktır.

    + +

    Ana sürece kill ile sinyal göndermek için şöyle bir + komut verebilirsiniz:

    + + kill -TERM `cat /usr/local/apache2/logs/httpd.pid` + +

    httpd süreçlerine sinyal göndermenin ikinci yolu + -k komut satırı seçeneğini şu değerlerden biri ile + kullanmaktır: stop, restart, + graceful ve graceful-stop. Bunlar aşağıda + açıklanacaktır. -k komut satırı seçeneği + httpd’ye ait olsa da ana sürece bu sinyalleri + göndermek için apachectl betiğini kullanmanızı + öneririz. apachectl, komut satırı seçeneklerini + httpd’ye aktaracaktır.

    + +

    httpd’ye sinyal gönderdikten sonra olup biteni şu + komutla izleyebilirsiniz:

    + + tail -f /usr/local/apache2/logs/error_log + +

    Bu örnekleri, kendi ServerRoot ve + PidFile yönergelerinizdeki + ayarlara uygun olarak değiştirdikten sonra kullanınız.

    +
    + +
    Hemen Durdur + +
    Sinyal: TERM
    +
    apachectl -k stop
    +
    + +

    Ana sürece TERM veya stop sinyali + göndererek tüm çocukların bir an önce öldürülmeye çalışılmasını sağlamış + olursunuz. Tüm çocukların öldürülmesi bir kaç saniye sürebilir. Son + olarak ana süreç çıkacaktır. Yanıtlanmakta olan istekler hemen + sonlandırılacak ve artık isteklere yanıt verilmeyecektir.

    +
    + +
    Nazikçe Yeniden Başlat + +
    Sinyal: USR1
    +
    apachectl -k graceful
    +
    + +

    Ana sürece USR1 veya graceful sinyalinin + gönderilmesi, çocuklara ellerindeki mevcut işleri bitirdikten sonra + (veya sundukları bir şey yoksa hemen) çıkmalarının önerilmesi + demektir. Ana süreç kendi yapılandırma dosyalarını yeniden okur ve + kendi günlük dosyalarını yeniden açar. Ana sürecin öldürdüğü her sürecin + yerine yeni yapılandırma kuşağından bir süreç başlatır ve hemen + yeni isteklere hizmet sunulmaya başlanır.

    + +

    Bu kod MPM’lerin süreçleri denetleyen yönergelerine daima uyacak + şekilde tasarlanmıştır. Bu suretle, istemcilere hizmet sunacak çocuk + süreçler ve evreler, yeniden başlatma işleminde de uygun sayıda + sağlanmış olur. Bununla birlikte, StartServers yönergesinde şöyle + davranılır: İlk saniye içinde en azından StartServers sayıda yeni çocuk + oluşturulmamışsa iş olmayan bir devreyi geçiştirecek kadarı oluşturulur. + Ardından sunucunun mevcut yükünü karşılamak için gereken sayıda çocuk + süreç oluşturulur. Bu suretle, kod her ikisi için de gereğini yerine + getirmeye çalışmış olur.

    + +

    mod_status kullanıcıları USR1 + gönderildiği zaman sunucu istatistiklerinin sıfırlanmadığı konusunda + uyarılacaktır. Kod, sunucunun yeni isteklere yanıt veremediği zamanı en + aza indirmenin yanısıra ayar parametrelerinize de uymak üzere + tasarlanmıştır (yeni istekler işletim sistemi tarafından kuyruğa + alınacağından bir istek kaybı olayı yaşanmaz). Bunu sağlamak için, her + iki kuşağın çocuklarının izini sürecek bir çetele tutulur.

    + +

    mod_status modülü, nazikçe yeniden başlat komutunun + verilmesinden önce başlamış ve sunulmaya devam eden isteklere bakan + çocukları imlemek için ayrıca bir G (Graceful’un baş harfi) + kullanır.

    + +

    Günlük dosyası döndürme betiğine, yeniden başlatma öncesi günlüğe yazan + tüm çocukların işini bitirdiğini USR1 kullanarak + bildirmenin bir yolu yoktur. Önerimiz, eski günlük kaydı üzerinde bir + işlem yapmaya başlamadan önce USR1 sinyali gönderilmesinin + ardından belli bir süre beklenilmesi olacaktır. Örneğin, düşük band + genişliğine sahip istemcilere hizmet sunan çoğu sürecin işinin 10 + dakikadan önce bitmeyeceğini gözönüne alarak eski günlük üzerinde işlem + yapmaya başlamak için 15 dakika beklenebilir.

    + + Bir yeniden başlatma isteğinde, eğer yapılandırma dosyalarınızda bir + hata varsa sunucu yeniden başlamaz ve bir hata ile çıkar. Nazikçe + yeniden başlatma durumunda ana süreç çıkarken çocuklarını çalışır durumda + bırakır. (Bunlar, ellerindeki istekler bitince ‘nazikçe çıkacak’ olan + çocuk süreçlerdir.) Eğer sunucuyu yeniden başlatmaya çalışırsanız bu + sorunlara yol açar; örneğin, dinleyeceği portları bağlayamayabilir. Bir + yeniden başlatma öncesinde yapılandırma dosyalarınızın sözdizimini + -t komut satırı seçeneği ile sınayabilirsiniz (bkz, + httpd). Ancak, bu hala sunucunuzun düzgünce yeniden + başlatılmasını garanti etmeyecektir. Yapılandırma dosyalarınızı + sözdizimi denetiminin yanında anlamlandırılması bakımından da sınamak + için httpd’nin root olmayan bir kullanıcı tarafından + çalıştırılmasını deneyebilirsiniz. Eğer yapılandırma dosyalarında bir + hata yoksa soketleri ve günlük dosyalarını açmaya çalışırken root + aidiyetinde çalışmadığından veya çalışmakta olan asıl sunucu bu portları + zaten dinlediğinden başarısız olacaktır. Eğer başka bir sebeple + başarısız olursa olası sebep bir yapılandırma dosyası hatasıdır ve asıl + sunucuya ‘nazikçe yeniden başla’ komutunu vermeden önce bu hatayı + düzeltmeniz gerekir. +
    + +
    Hemen Yeniden Başlat + +
    Sinyal: HUP
    +
    apachectl -k restart
    +
    + +

    Ana sürece HUP veya restart sinyalinin + gönderilmesi tüm çocukların TERM sinyali gönderilmiş gibi + öldürülmesine sebep olur fakat ana sürecin çıkmasını sağlamaz. + Ana süreç yapılandırma dosyalarını yeniden okur ve günlük kayıt + dosyalarını yeniden açar. Bunların ardından isteklere yanıt verecek yeni + kuşak çocukları oluşturmaya başlar.

    + +

    mod_status kullanıcıları bir HUP sinyali + gönderildiğinde sunucu istatistiklerinin sıfırlandığı konusunda + uyarılırlar.

    + + Eğer yapılandırma dosyalarınızda sözdizimi hatası varsa yeniden + başlatma işlemi gerçekleşmez ve ana süreç bir hata vererek çıkar. + Bundan kaçınmak için önceki yönteme bakınız. +
    + +
    Nazikçe Durdur + +
    Sinyal: WINCH
    +
    apachectl -k graceful-stop
    +
    + +

    Ana sürecin WINCH veya graceful-stop + sinyalini alması, çocuklara ellerindeki mevcut işleri bitirdikten sonra + (veya sundukları bir şey yoksa hemen) çıkmalarının önerilmesine + sebep olur. Ebevey süreç bunun hemen PidFile dosyasını siler ve port + dinlemeyi keser. Ana süreç çalışmaya ve isteklere yanıt vermekte olan + çocuk süreçleri izlemeye devam eder. Tüm çocuklar işlerini bitirip + çıktığında veya GracefulShutdownTimeout ile belirtilen + zaman aşımı dolduğunda ana süreç de kendini sonlandırır. Eğer zaman aşımı + devreye girmişse o an calışmakta olan çocuk süreçlere TERM + sinyali gönderilerek hemen çıkmaları sağlanır.

    + +

    Bir TERM sinyali ile "graceful" durumundaki tüm çocuklar + ve ana süreç hemen sonlandırılacaktır. Bununla birlikte, PidFile dosyası da silineceğinden, artık + apachectl veya httpd’yi bu sinyali göndermek + için kullanamayacaksınız.

    + +

    graceful-stop sinyali, aynı anda, aynı yapılandırma + ile çok sayıda httpd kopyasının çalıştırılabilmesine + imkan verir. Bu, Apache nazikçe yükseltileceği zaman güçlü bir özellik + haline gelmekteyse de, bazı yapılandırmalarda yarış koşullarının + oluşmasına ve kısır çekişmelere (deadlock) sebep olabilir.

    + +

    Sunucunun süreç kimliğini içeren Lockfile ve ScriptSock gibi dosyaların disk üzerindeki + mevcudiyetlerinin sorunsuz olarak devam ettiğinden emin olunmaya + çalışılmalıdır. Ayrıca, bir yapılandırma yönergesi, üçüncü parti bir + modül veya kalıcı CGI uygulamalarına ait disk kilit veya durum dosyaları + olabilir; httpd’nin birden fazla kopyasının çalışması + nedeniyle bu dosyaların da üzerine yazılmadığından emin olunmaya + çalışılmalıdır.

    + +

    rotatelogs tarzı borulu günlükleme kullanımı gibi + durumlarda yarış koşullarının oluşması olasılığına karşı uyanık + olunmalıdır. Aynı günlük kayıt dosyalarını aynı anda döndürmeye çalışan + birden fazla rotatelogs kopyasının çalıştırılması + halinde bunların her biri diğerlerinin günlük kayıt dosyalarının kaybına + sebep olabilir.

    +
    + +
    diff --git a/docs/manual/style/build.properties b/docs/manual/style/build.properties index 57ce7de3bc3..24a643cee34 100644 --- a/docs/manual/style/build.properties +++ b/docs/manual/style/build.properties @@ -1,7 +1,28 @@ # This file contains version specific properties # No xml files yet -noxml.fr=new_features_2_0.html.fr upgrading.html.fr +# noxml.fr = upgrading.html.fr -# (pending) httpd version -httpd.version=2.1.4 + +# This httpd version is not retired +# (run build bootstrap on change) +retired = yes + + +manpages.8 = \ + ab \ + apachectl \ + apxs \ + htcacheclean \ + httpd \ + logresolve \ + rotatelogs \ + suexec + + +manpages.1 = \ + dbmmanage \ + htdbm \ + htdigest \ + htpasswd \ + httxt2dbm diff --git a/docs/manual/style/common.dtd b/docs/manual/style/common.dtd index fba4d5f0048..93c6f19e889 100644 --- a/docs/manual/style/common.dtd +++ b/docs/manual/style/common.dtd @@ -1,12 +1,12 @@ + + +%HTTPD-VERSION; + - + + + @@ -67,12 +74,15 @@ program | img | cite | q | dfn | var | transnote | glossary | phonetic"> - + + + status CDATA #IMPLIED + name CDATA #IMPLIED > @@ -158,6 +168,9 @@ program | img | cite | q | dfn | var | transnote | glossary | phonetic"> + + + - + diff --git a/docs/manual/style/css/manual-chm.css b/docs/manual/style/css/manual-chm.css index 9cab12ed616..8471411ba90 100644 --- a/docs/manual/style/css/manual-chm.css +++ b/docs/manual/style/css/manual-chm.css @@ -1,11 +1,11 @@ @import url(manual-loose-100pc.css); -/* Copyright 2003-2005 The Apache Software Foundation or its licensors, - * as applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * diff --git a/docs/manual/style/css/manual-loose-100pc.css b/docs/manual/style/css/manual-loose-100pc.css index 44d9c935bc6..ffea7de6220 100644 --- a/docs/manual/style/css/manual-loose-100pc.css +++ b/docs/manual/style/css/manual-loose-100pc.css @@ -2,12 +2,12 @@ * manual.css - no sidebar, 100% normal font height * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, - * as applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * diff --git a/docs/manual/style/css/manual-print.css b/docs/manual/style/css/manual-print.css index b600efbb508..0d0695d2566 100644 --- a/docs/manual/style/css/manual-print.css +++ b/docs/manual/style/css/manual-print.css @@ -2,12 +2,12 @@ * manual.css for printers * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, - * as applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * diff --git a/docs/manual/style/css/manual-zip-100pc.css b/docs/manual/style/css/manual-zip-100pc.css index ab044553051..488d4600159 100644 --- a/docs/manual/style/css/manual-zip-100pc.css +++ b/docs/manual/style/css/manual-zip-100pc.css @@ -1,11 +1,11 @@ @import url(manual-loose-100pc.css); -/* Copyright 2003-2005 The Apache Software Foundation or its licensors, - * as applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * diff --git a/docs/manual/style/css/manual-zip.css b/docs/manual/style/css/manual-zip.css index db19662c965..563a8243835 100644 --- a/docs/manual/style/css/manual-zip.css +++ b/docs/manual/style/css/manual-zip.css @@ -1,11 +1,11 @@ @import url(manual.css); -/* Copyright 2003-2005 The Apache Software Foundation or its licensors, - * as applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * diff --git a/docs/manual/style/css/manual.css b/docs/manual/style/css/manual.css index cf060aecbf4..821f97f8bb0 100644 --- a/docs/manual/style/css/manual.css +++ b/docs/manual/style/css/manual.css @@ -2,12 +2,12 @@ * manual.css * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, - * as applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -173,6 +173,15 @@ div#quickview code.directive a:active { color: #287f00; } +/* glossary [links] */ +/* ====================== */ +.glossarylink { + cursor: help; + border-bottom: 1px dashed #0073c7; + text-decoration: none; +} + + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Headings * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @@ -927,12 +936,17 @@ table div.warning { margin-right: 1em; } -div.outofdate { - background-color: #ffffe0; +div.outofdate, +div.retired{ + background-color: #ffffc0; color: #036; padding: 0.5em; margin: 1em 2em 1em 1em; } +div.retired{ + border: solid 1px #ff0000; + margin-left: 3em; +} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * quotations, indented paragraphs, forms and figures diff --git a/docs/manual/style/css/prettify.css b/docs/manual/style/css/prettify.css new file mode 100644 index 00000000000..012a8e9ff2c --- /dev/null +++ b/docs/manual/style/css/prettify.css @@ -0,0 +1,121 @@ +/* Pretty printing styles. Used with prettify.js. */ + +/* SPAN elements with the classes below are added by prettyprint. */ +.pln { color: #000 } /* plain text */ + +@media screen { + .str { color: #060 } /* string content */ + .kwd { color: #006 } /* a keyword */ + .com { color: #600 } /* a comment */ + .typ { color: #404 } /* a type name */ + .lit { color: #066 } /* a literal value */ + /* punctuation, lisp open bracket, lisp close bracket */ + .pun, .opn, .clo { color: #660 } + .tag { color: #008 } /* a markup tag name */ + .atn { color: #606 } /* a markup attribute name */ + .atv { color: #080 } /* a markup attribute value */ + .dec, .var { color: #606 } /* a declaration; a variable name */ + .fun { color: red } /* a function name */ +} + +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { color: #060 } + .kwd { color: #006; font-weight: bold } + .com { color: #600; font-style: italic } + .typ { color: #404; font-weight: bold } + .lit { color: #044 } + .pun, .opn, .clo { color: #440 } + .tag { color: #006; font-weight: bold } + .atn { color: #404 } + .atv { color: #060 } +} + +/* Put a border around prettyprinted code snippets. */ +pre.prettyprint { padding: 2px; border: 1px solid #888; tab-size: 4; overflow: auto; overflow-y: hidden; } + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ +li.L0, +li.L1, +li.L2, +li.L3, +li.L5, +li.L6, +li.L7, +li.L8 { list-style-type: none } +/* Alternate shading for lines */ +li.L1, +li.L3, +li.L5, +li.L7, +li.L9 { background: #eee } + + + +/* Highlighting style for Apache configuration files */ +pre.lang-config{ + background-color: #e5ecf3; + color: #000; + padding: 0.5em; + margin: 1em 2em 1em 1em; + border: none; +} +.lang-config .tag { color: #821; font-weight: bold } /* enclosures */ +.lang-config .kwd { color: #128; font-weight: bold } /* directives */ +.lang-config .com { color: #c46d34 } /* comments */ +.lang-config .lit { color: #077 } /* miscellaneous types: Options arguments, handler names etc */ + + + +/* Highlighting style for C source code */ +pre.lang-c{ + background-color: #f8f6ee; + color: #000; + padding: 0.5em; + margin: 1em 2em 1em 1em; + border: 1px dotted #666; +} + +.lang-c .com { color: #c46d34 } /* a comment */ +.lang-c .lit { color: #088 } /* a literal */ +.lang-c .str { color: #009606 } /* string content */ +.lang-c .kwd { color: #00C; font-weight: bold } /* a keyword */ +.lang-c .typ { color: #808 } /* a type name */ +.lang-c .tag { color: #248 } /* a markup tag name */ + + + + +/* Highlighting style for Lua source code */ +pre.lang-lua{ + background-color: #f8f6ee; + color: #000; + padding: 0.5em; + margin: 1em 2em 1em 1em; + border: 1px dotted #666; +} + +.lang-lua .com { color: #c34e00 } /* a comment */ +.lang-lua .lit { color: #088 } /* a literal (in this context; a known directive argument, a number or an IP address) */ +.lang-lua .str { color: #009606 } /* string content */ +.lang-lua .kwd { color: #00C; font-weight: bold } /* a keyword */ +.lang-lua .typ { color: #808 } /* a type name */ + + + + +/* Highlighting style for Perl source code */ +pre.lang-perl{ + background-color: #f8f6ee; + color: #000; + padding: 0.5em; + margin: 1em 2em 1em 1em; + border: 1px dotted #666; +} + +.lang-perl .com { color: #c34e00 } /* a comment */ +.lang-perl .lit { color: #088 } /* a literal */ +.lang-perl .str { color: #009606 } /* string content */ +.lang-perl .kwd { color: #00C; font-weight: bold } /* a keyword */ +.lang-perl .typ { color: #808 } /* a type name */ diff --git a/docs/manual/style/description.xml b/docs/manual/style/description.xml index bd31ac8bc43..08e153c6a0f 100644 --- a/docs/manual/style/description.xml +++ b/docs/manual/style/description.xml @@ -1,12 +1,11 @@ - - - - + + + @@ -125,7 +124,7 @@ - + @@ -208,6 +207,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -224,6 +275,8 @@ + + diff --git a/docs/manual/style/lang.dtd b/docs/manual/style/lang.dtd new file mode 100644 index 00000000000..422313c9af1 --- /dev/null +++ b/docs/manual/style/lang.dtd @@ -0,0 +1,24 @@ + + + + + +%HTTPD-VERSION; + + + diff --git a/docs/manual/style/lang/de.xml b/docs/manual/style/lang/de.xml index 2a95ccad44d..7286f9c0af2 100644 --- a/docs/manual/style/lang/de.xml +++ b/docs/manual/style/lang/de.xml @@ -1,14 +1,14 @@ - ]> + Referenzierte Module Referenzierte Direktiven + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NAME + Syntax @@ -72,11 +76,19 @@ Status Modul + + Basis + MPM + Core + Erweiterung + experimentell + extern + - Serverkonfiguration - Virtual Host - Verzeichnis - .htaccess + Serverkonfiguration + Virtual Host + Verzeichnis + .htaccess Direktiven @@ -84,6 +96,9 @@ if present, the space between and 'Directive' in directivesynopsis headings will be replaced by the given string. (see de.xml for an example) --> + Direktive Dieses Modul enthält keine Direktiven. @@ -96,21 +111,22 @@ siehe Glossar - + - Apache HTTP Server Apache HTTP Server Version - 2.1 + &httpd.major;.&httpd.minor; [APACHE DOCUMENTATION] Google-Suche Index Startseite + Kommentare Apache HTTP-Server Dokumentation - Version 2.1 + Version &httpd.major;.&httpd.minor; Module @@ -119,12 +135,25 @@ Seitenindex - Lizenziert unter der + Lizenziert unter der + Verfügbare Sprachen Diese Übersetzung ist möglicherweise nicht mehr aktuell. Bitte prüfen Sie die englische Version auf die neuesten Änderungen. + + Die Dokumentation zu dieser Direktive wurde + noch nicht übersetzt. Bitte schauen Sie in die englische + Version. + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + diff --git a/docs/manual/style/lang/en.xml b/docs/manual/style/lang/en.xml index 3bcd3769be7..0f8588c4cad 100644 --- a/docs/manual/style/lang/en.xml +++ b/docs/manual/style/lang/en.xml @@ -1,14 +1,14 @@ - ]> + Related Modules Related Directives + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NAME + Syntax @@ -76,11 +80,19 @@ Status Module + + Base + MPM + Core + Extension + Experimental + External + - server config - virtual host - directory - .htaccess + server config + virtual host + directory + .htaccess Directives @@ -88,6 +100,9 @@ if present, the space between and 'Directive' in directivesynopsis headings will be replaced by the given string. (see de.xml for an example) --> + Directive This module provides no directives. @@ -100,17 +115,19 @@ - Apache HTTP Server - Apache HTTP Server Version 2.1 + Apache HTTP Server Version + &httpd.major;.&httpd.minor; [APACHE DOCUMENTATION] Google Search Index Home + Comments Apache HTTP Server Documentation - Version 2.1 + Version &httpd.major;.&httpd.minor; Modules @@ -119,11 +136,24 @@ Sitemap - Licensed under the + Licensed under the + Available Languages - + This translation may be out of date. Check the English version for recent changes. + + The documentation for this directive has + not been translated yet. Please have a look at the English + version. + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + diff --git a/docs/manual/style/lang/es.xml b/docs/manual/style/lang/es.xml index b972403c867..c91db5277ce 100644 --- a/docs/manual/style/lang/es.xml +++ b/docs/manual/style/lang/es.xml @@ -1,14 +1,14 @@ - ]> + Módulos Relacionados Directivas Relacionadas + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NAME + Sintaxis @@ -74,11 +78,19 @@ Estado Módulo + + Base + MPM + Core + Extensión + Experimental + External + - server config - virtual host - directory - .htaccess + server config + virtual host + directory + .htaccess Directivas @@ -86,6 +98,9 @@ if present, the space between and 'Directive' in directivesynopsis headings will be replaced by the given string. (see de.xml for an example) --> + Directiva Este módulo no suministra ninguna directiva. @@ -98,18 +113,19 @@ - Servidor HTTP Apache - Versión 2.1 del Servidor HTTP - Apache + Versión &httpd.major;.&httpd.minor; + del Servidor HTTP Apache [APACHE DOCUMENTATION] Buscar en Google Índice Página Inicial + Comentarios Apache Servidor HTTP Documentación - Versión 2.1 + Versión &httpd.major;.&httpd.minor; Módulos @@ -118,7 +134,8 @@ Mapa de este sitio web - Licencia bajo los términos de la + Licencia bajo los términos de la + Idiomas disponibles @@ -126,5 +143,17 @@ obsoleta. Consulte la versión en inglés de la documentación para comprobar si se han producido cambios recientemente. + + The documentation for this directive has + not been translated yet. Please have a look at the English + version. + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + diff --git a/docs/manual/style/lang/fr.xml b/docs/manual/style/lang/fr.xml index cb71ff52275..0f6caa63552 100644 --- a/docs/manual/style/lang/fr.xml +++ b/docs/manual/style/lang/fr.xml @@ -1,14 +1,14 @@ - ]> - + + Module Apache Désuet - Mudule Apache + Module Apache Fonctionalités de Base Apache Apache MPM: Directives Communes Apache MPM @@ -61,7 +61,7 @@ Description Voir aussi Sujets - Status + Statut Identificateur de Module Fichier Source Compatibilité @@ -69,20 +69,32 @@ Modules Apparentés Directives Apparentées + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NOM + Césure Syntaxe - Defaut + Défaut Contexte - Annuler - Status + AllowOverride + Statut Module + + Base + MPM + Core + Extension + Expérimental + Externe + - configuration du serveur - serveur virtuel - répertoire - .htaccess + configuration du serveur + serveur virtuel + répertoire + .htaccess Directives @@ -90,28 +102,33 @@ if present, the space between and 'Directive' in directivesynopsis headings will be replaced by the given string. (see de.xml for an example) --> - Directive + + Directive Ce module ne fournit aucune directive. Sommaire - see glossary + voir glossaire - Serveur Apache HTTP - Serveur Apache HTTP Version 2.1 + Serveur Apache HTTP Version + &httpd.major;.&httpd.minor; [DOCUMENTATION APACHE] Recherche Google Index Accueil + Commentaires Apache Serveur HTTP Documentation - Version 2.1 + Version &httpd.major;.&httpd.minor; Modules @@ -120,11 +137,31 @@ Plan du site - Authorisé sous + Autorisé sous + Langues Disponibles - + - Cette traduction peut être périmée. Verifiez la version - Anglaise pour les changements récents. + Cette traduction peut être périmée. Vérifiez la version + anglaise pour les changements récents. + + La documentation de cette directive + n'a pas encore été traduite. Veuillez vous reporter à la version + en langue anglaise. + + + A savoir + +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +
    + Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien. + diff --git a/docs/manual/style/lang/ja.xml b/docs/manual/style/lang/ja.xml index 37ba31dd10c..329b95d29b0 100644 --- a/docs/manual/style/lang/ja.xml +++ b/docs/manual/style/lang/ja.xml @@ -1,14 +1,14 @@ - - ]> - + + + - $B%3%"5!G=$H(B MPM - $BB>$N%b%8%e!<%k(B - $B5l<0$N%b%8%e!<%k(B + コア機能と MPM + 他のモジュール + 旧式のモジュール - $B5l<0$N(B Apache Module - Apache $B%b%8%e!<%k(B - Apache $B%3%"5!G=(B - Apache MPM $B6&DL%G%#%l%/%F%#%V(B + 旧式の Apache Module + Apache モジュール + Apache コア機能 + Apache MPM 共通ディレクティブ Apache MPM - $B@bL@(B - $B;2>H(B - $B%H%T%C%/(B - $B%9%F!<%?%9(B - $B%b%8%e!<%k<1JL;R(B - $B%=!<%9%U%!%$%k(B - $B8_49@-(B + 説明 + 参照 + トピック + ステータス + モジュール識別子 + ソースファイル + 互換性 - $B4XO"%b%8%e!<%k(B - $B4XO"%G%#%l%/%F%#%V(B + 関連モジュール + 関連ディレクティブ + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NAME + - $B9=J8(B - $B%G%U%)%k%H(B - $B%3%s%F%-%9%H(B - $B>e=q$-(B - $B%9%F!<%?%9(B - $B%b%8%e!<%k(B + 構文 + デフォルト + コンテキスト + 上書き + ステータス + モジュール + + + Base + MPM + Core + Extension + Experimental + External - $B%5!<%P@_Dj%U%!%$%k(B - $B%P!<%A%c%k%[%9%H(B - $B%G%#%l%/%H%j(B - .htaccess + サーバ設定ファイル + バーチャルホスト + ディレクトリ + .htaccess - $B%G%#%l%/%F%#%V(B + ディレクティブ - $B%G%#%l%/%F%#%V(B - $B$3$N%b%8%e!<%k$K%G%#%l%/%F%#%V$O$"$j$^$;$s!#(B + + ディレクティブ + このモジュールにディレクティブはありません。 - $B35MW(B + 概要 - $BLuCm(B: + 訳注: - $BMQ8l=8$r;2>H(B + 用語集を参照 - - Apache HTTP $B%5!<%P(B - Apache HTTP $B%5!<%P(B $B%P!<%8%g%s(B 2.1 + - Apache HTTP サーバ + Apache HTTP サーバ + バージョン &httpd.major;.&httpd.minor; [APACHE DOCUMENTATION] - Google Search - $B:w0z(B - $B%[!<%`(B + Google 検索 + 索引 + ホーム + コメント Apache - HTTP $B%5!<%P(B - $B%I%-%e%a%s%F!<%7%g%s(B - $B%P!<%8%g%s(B 2.1 + HTTP サーバ + ドキュメンテーション + バージョン &httpd.major;.&httpd.minor; - $B%b%8%e!<%k(B + モジュール FAQ - $BMQ8l(B - $B%5%$%H%^%C%W(B + 用語 + サイトマップ - Licensed under the - Available Languages + この文書は + のライセンスで提供されています。 + 翻訳済み言語 - This translation may be out of date. Check the - English version for recent changes. + この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 + + + このディレクティブの解説文書は + まだ翻訳されていません。英語版をご覧ください。 + + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + diff --git a/docs/manual/style/lang/ko.xml b/docs/manual/style/lang/ko.xml index 5bbd0295afd..b31093b0062 100644 --- a/docs/manual/style/lang/ko.xml +++ b/docs/manual/style/lang/ko.xml @@ -1,14 +1,14 @@ - ]> + °ü·õÈ ¸ðµâ °ü·õÈ Áö½þî + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NAME + ¹®¹ý @@ -77,11 +81,19 @@ »óÅ ¸ðµâ + + Base + MPM + Core + Extension + Experimental + External + - Áּ­¹ö¼³Á¤ - °¡»óȣ½ºƮ - directory - .htaccess + Áּ­¹ö¼³Á¤ + °¡»óȣ½ºƮ + directory + .htaccess Áö½þîµé @@ -89,6 +101,9 @@ if present, the space between and 'Directive' in directivesynopsis headings will be replaced by the given string. (see de.xml for an example) --> + Áö½þî ÀÌ ¸ðµ⿡´Â Áö½þ ¾ø½À´ϴÙ. @@ -103,17 +118,19 @@ - Apache HTTP Server - Apache HTTP Server Version 2.1 + Apache HTTP Server Version + &httpd.major;.&httpd.minor; [APACHE DOCUMENTATION] Google °˻ö Index Home + Comments Apache HTTP Server Documentation - Version 2.1 + Version &httpd.major;.&httpd.minor; ¸ðµâ @@ -122,11 +139,24 @@ »çÀÌƮ¸Ê - Licensed under the + Licensed under the + °¡´ÉÇÑ ¾ð¾î ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä. + + The documentation for this directive has + not been translated yet. Please have a look at the English + version. + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + diff --git a/docs/manual/style/lang/pt-br.xml b/docs/manual/style/lang/pt-br.xml index 904417b03c3..29d09583c17 100644 --- a/docs/manual/style/lang/pt-br.xml +++ b/docs/manual/style/lang/pt-br.xml @@ -1,14 +1,14 @@ - ]> + Módulos Relacionados Diretrizes Relacionadas + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NAME + Sintaxe @@ -79,11 +83,18 @@ Status Módulo + + Base + MPM + Core + Extension + Experimental + - configuração do servidor - hospedeiro virtual - diretório - .htaccess + configuração do servidor + hospedeiro virtual + diretório + .htaccess Diretrizes @@ -91,6 +102,9 @@ if present, the space between and 'Directive' in directivesynopsis headings will be replaced by the given string. (see de.xml for an example) --> + Diretrizes Esse módulo não fornece nenhuma diretriz. @@ -102,17 +116,19 @@ - Servidor HTTP Apache - Servidor HTTP Apache Versão 2.1 + Servidor HTTP Apache Versão + &httpd.major;.&httpd.minor; [DOCUMENTAÇÃO APACHE] Busca Google Índice Início + Comentários Apache Servidor HTTP Documentação - Versão 2.1 + Versão &httpd.major;.&httpd.minor; Módulos @@ -121,11 +137,24 @@ Mapa do site - Licenciado sob a + Licenciado sob a + Línguas Disponíveis Esta tradução pode estar desatualizada. Verifique a versão em Inglês para mudanças recentes. + + The documentation for this directive has + not been translated yet. Please have a look at the English + version. + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + diff --git a/docs/manual/style/lang/ru.xml b/docs/manual/style/lang/ru.xml index 1ed52c23df0..bd63e6c426e 100644 --- a/docs/manual/style/lang/ru.xml +++ b/docs/manual/style/lang/ru.xml @@ -1,14 +1,14 @@ - ]> + - ïÓÏÂÅÎÎÏÓÔÉ ÑÄÒÁ É ÍÕÌØÔÉ-ÐÒÏÃÅÓÓÎÙÅ - ÍÏÄÕÌÉ + ñÄÒÏ É ÍÕÌØÔÉ-ÐÒÏÃÅÓÓÎÙÅ ÍÏÄÕÌÉ äÒÕÇÉÅ ÍÏÄÕÌÉ + õÓÔÁÒÅ×ÛÉÅ ÍÏÄÕÌÉ + õÓÔÁÒÅ×ÛÉÊ ÍÏÄÕÌØ Apache íÏÄÕÌØ Apache - ïÓÏÂÅÎÎÏÓÔÉ ÑÄÒÁ Apache - ïÂÝÉÅ ÄÌÑ ×ÓÅÈ íð-ÍÏÄÕÌÅÊ ÄÉÒÅËÔÉ×Ù - Apache + ñÄÒÏ Apache + ïÂÝÉÅ ÄÌÑ ×ÓÅÈ íð-ÍÏÄÕÌÅÊ ÄÉÒÅËÔÉ×Ù Apache íÕÌØÔÉ-ÐÒÏÃÅÓÓÎÙÅ ÍÏÄÕÌÉ Apache @@ -64,6 +64,10 @@ óÍÏÔÒÉÔÅ ÔÁËÖÅ ÍÏÄÕÌÉ óÍÏÔÒÉÔÅ ÔÁËÖÅ ÄÉÒÅËÔÉ×Ù + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + NAME + óÉÎÔÁËÓÉÓ @@ -73,11 +77,30 @@ óÔÁÔÕÓ íÏÄÕÌØ + + Base + MPM + Core + Extension + Experimental + + + server config + virtual host + directory + .htaccess + äÉÒÅËÔÉ×Ù + + äÉÒÅËÔÉ×Á - üÔÏÔ ÍÏÄÕÌØ ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÎÉËÁËÉÈ - ÄÉÒÅËÔÉ×. + üÔÏÔ ÍÏÄÕÌØ ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÎÉËÁËÉÈ ÄÉÒÅËÔÉ×. òÅÚÀÍÅ @@ -87,17 +110,19 @@ - HTTP ÓÅÒ×ÅÒ Apache - HTTP ÓÅÒ×ÅÒ Apache ÷ÅÒÓÉÑ 2.1 + HTTP ÓÅÒ×ÅÒ Apache ×ÅÒÓÉÉ + &httpd.major;.&httpd.minor; [äïëõíåîôáãéñ APACHE] - Google Search + ðÏÉÓË × Google ïÇÌÁ×ÌÅÎÉÅ îÁ ÇÌÁ×ÎÕÀ ÓÔÒÁÎÉÃÕ + Comments Apache HTTP ÓÅÒ×ÅÒ äÏËÕÍÅÎÔÁÃÉÑ - ÷ÅÒÓÉÑ 2.1 + ÷ÅÒÓÉÑ &httpd.major;.&httpd.minor; íÏÄÕÌÉ @@ -106,11 +131,25 @@ ëÁÒÔÁ ÓÁÊÔÁ - Licensed under the - Available Languages + Licensed under the + + äÏÓÔÕÐÎÙÅ ÑÚÙËÉ - This translation may be out of date. Check the - English version for recent changes. + üÔÏÔ ÐÅÒÅ×ÏÄ ÍÏÖÅÔ ÂÙÔØ ÕÓÔÁÒÅ×ÛÉÍ. óÍÏÔÒÉÔÅ + ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÌÑ ÏÚÎÁËÏÍÌÅÎÉÑ ÓÏ ×ÓÅÍÉ ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ + × ÄÏËÕÍÅÎÔÅ. + + The documentation for this directive has + not been translated yet. Please have a look at the English + version. + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + diff --git a/docs/manual/style/lang/tr.xml b/docs/manual/style/lang/tr.xml new file mode 100644 index 00000000000..f789915510c --- /dev/null +++ b/docs/manual/style/lang/tr.xml @@ -0,0 +1,158 @@ + + + + + + + Turkish + UTF-8 + .xml.tr + .html.tr.utf8 + + + 0x41f Turkish + ,8,162 + windows-1254 + Turkish + + + + UTF-8 + + + + + + + Türkçe + + + Temel Özellikler ve Çoklu İşlem Modülleri + Diğer Modüller + Atıl Modüller + + + Atıl Apache Modülü + Apache Modülü + Apache Temel Özellikleri + Apache MPM Ortak Yönergeleri + Apache MPM + + + Açıklama + Ayrıca bakınız: + Konular + Durum + Modül Betimleyici + Kaynak Dosyası + Uyumluluk + + + İlgili Modüller + İlgili Yönergeler + abcçdefgğhıijklmnoöpqrsştuüvwxyz + ABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZ + İSİM + .nh + + + Sözdizimi + Öntanımlı + Bağlam + Geçersizleştirme + Durum + Modül + + + Temel + MPM + Çekirdek + Eklenti + Deneysel + Harici + + + sunucu geneli + sanal konak + dizin + .htaccess + + + Yönergeler + + + Yönergesi + Bu modül yönerge içermez. + + + Özet + + + sözlüğe bakınız + + + - Apache HTTP Sunucusu + Apache HTTP Sunucusu Sürüm + &httpd.major;.&httpd.minor; + [APACHE BELGELEME] + Google’de Ara + Dizin + Baş Sayfa + Yorum + + + Apache + HTTP Sunucusu + Belgeleme + Sürüm &httpd.major;.&httpd.minor; + + + Modüller + SSS + Terimler + Site Haritası + + + + altında lisanslıdır + Mevcut Diller + + + Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir. + + Bu yönergenin belgesi henüz Türkçeye çevrilmedi. + Lütfen İngilizce sürümüne bakınız. + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + +
    +
    diff --git a/docs/manual/style/lang/zh-cn.xml b/docs/manual/style/lang/zh-cn.xml new file mode 100644 index 00000000000..e76e1860881 --- /dev/null +++ b/docs/manual/style/lang/zh-cn.xml @@ -0,0 +1,152 @@ + + + + + + + Simplified Chinese + UTF-8 + .xml.zh-cn + .html.zh-cn.utf8 + + + 0x804 Chinese (China) + SimSun,12,134 + GB2312 + Chinese (China), sorting order: phonetic + + + + UTF-8 + + + + + + + Simplified Chinese + + + 核心特性与多处理模块(MPM) + 其它模块 + 过时的模块 + + + 过时的 Apache 模块 + Apache 模块 + Apache 核心特性 + Apache MPM 通用指令 + Apache MPM + + + 描述 + 参见 + 主题 + 状态 + 模块标识 + 源文件 + 兼容性 + + + 相关模块 + 相关指令 + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + 名称 + + + + 语法 + 默认 + 上下文 + 覆盖 + 状态 + 模块 + + + 基础 + MPM + 核心 + 扩展 + 实验 + + + 服务器配置 + 虚拟主机 + 目录 + .htaccess + + + 指令 + + + 指令 + 此模块没有提供指令。 + + + 摘要 + + + 参见术语 + + + - Apache HTTP 服务器 + Apache HTTP 服务器版本 + &httpd.major;.&httpd.minor; + [APACHE 文档] + Google 搜索 + 索引 + 主页 + 评论 + + + Apache + HTTP 服务器 + 文档 + 版本 &httpd.major;.&httpd.minor; + + + 模块 + 常见问题 + 术语 + 网站导航 + + + 基于 + 许可证 + 可用语言 + + + 此翻译可能过期。要了解最近的更改,请阅读英文版。 + + 此指令的文档还没有被翻译。请阅读英文版。 + + + Please note + +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +
    + You may follow this link to go to the current version of this document. + +
    +
    diff --git a/docs/manual/style/latex/atbeginend.sty b/docs/manual/style/latex/atbeginend.sty index 2a0facf7b7e..79b555d73d6 100644 --- a/docs/manual/style/latex/atbeginend.sty +++ b/docs/manual/style/latex/atbeginend.sty @@ -1,11 +1,11 @@ % atbeginend.sty % -% Copyright 2003-2005 The Apache Software Foundation or its licensors, -% as applicable. -% -% Licensed under the Apache License, Version 2.0 (the "License"); -% you may not use this file except in compliance with the License. -% You may obtain a copy of the License at +% Licensed to the Apache Software Foundation (ASF) under one or more +% contributor license agreements. See the NOTICE file distributed with +% this work for additional information regarding copyright ownership. +% The ASF licenses this file to You under the Apache License, Version 2.0 +% (the "License"); you may not use this file except in compliance with +% the License. You may obtain a copy of the License at % % http://www.apache.org/licenses/LICENSE-2.0 % diff --git a/docs/manual/style/latex/common.xsl b/docs/manual/style/latex/common.xsl index 3a18352705a..15c8946f8d9 100644 --- a/docs/manual/style/latex/common.xsl +++ b/docs/manual/style/latex/common.xsl @@ -1,12 +1,12 @@ \par\smallskip\begin{center} -\fbox{ +\fbox{ \begin{minipage}{.8\textwidth}\begin{flushleft} {\ttfamily\small \noindent } \end{flushleft}\end{minipage} -} +} \end{center}\par\smallskip @@ -142,17 +142,64 @@ select="$metafile/basename"/> \textsc{ - \textless{} - \hyperlink{/mod/ - - : - - }{ - - } - \textgreater{} +\textless{} + + + \hyperlink{/mod/ + + : + + + + + + + + + }{ + + } + + + + + +\textgreater{} +} + + + +\textsc{ +\textless{} + + + \hyperlink{/mod/ + + : + + + + + + + + + }{ + + } + + + + + +\textgreater{} } + @@ -160,12 +207,39 @@ select="$metafile/basename"/> -\textsc{\hyperlink{/mod/ - - }{ + + + \textsc{ } -} + + + \textsc{\hyperlink{/mod/ + + }{ + + } + } + + + + + + + + \textsc{ + + } + + + \textsc{\hyperlink{/mod/ + + }{ + + } + } + + diff --git a/docs/manual/style/latex/directiveindex.xsl b/docs/manual/style/latex/directiveindex.xsl index 0ed5eb5744f..e0981ceb193 100644 --- a/docs/manual/style/latex/directiveindex.xsl +++ b/docs/manual/style/latex/directiveindex.xsl @@ -1,12 +1,12 @@ - + - - - - - - - - - - - - \begin{itemize} - - - - - -\item - - (p.\ \pageref{/mod/ - : - - }) - - - \end{itemize} + - diff --git a/docs/manual/style/latex/faq.xsl b/docs/manual/style/latex/faq.xsl index 9271da4fea7..5c00e7f2d20 100644 --- a/docs/manual/style/latex/faq.xsl +++ b/docs/manual/style/latex/faq.xsl @@ -1,12 +1,12 @@ + + -\begin{itemize} - +\begin{itemize}&lf; -\end{itemize} - +\end{itemize}&lf; -\begin{enumerate} - +\begin{enumerate}&lf; -\end{enumerate} - +\end{enumerate}&lf; \item - - +&lf; -\begin{description} - +\begin{description}&lf; -\end{description} - +\end{description}&lf; @@ -66,10 +65,24 @@ + + + + + + + + + + + + - + + + \smallskip @@ -82,7 +95,8 @@ - \\ + + @@ -90,7 +104,8 @@ - \\ + + @@ -98,45 +113,69 @@ -\par - +\par&lf; - + \texttt{ } + +\texttt{ + +} + + \textbf{ } - + +\textbf{ + +} + + + \textit{ - + } + - -\begin{verbatim} - - -\end{verbatim} - + +\begin{verbatim} + + + + + + + + + + + + + + + + + +\end{verbatim}&lf; -\begin{quotation} - +\begin{quotation}&lf; -\end{quotation} - +\end{quotation}&lf; @@ -169,13 +208,11 @@ interpreted in pre --> -|}\hline - +|}\hline&lf; \hline\end{ -} - +}&lf; @@ -184,8 +221,7 @@ interpreted in pre --> \hline - - + &lf; @@ -244,31 +280,62 @@ interpreted in pre --> 3. It is also necessary to deal with the fact that index pages get references as "/". --> + + + + + + + + + + + + + + + + + + + - - + + - + - + \footnote{ \href{ - - - + + + + + + + + + + + + + + + }{ @@ -310,6 +377,14 @@ interpreted in pre --> + + + + + + + + \includegraphics{ diff --git a/docs/manual/style/latex/latex.xsl b/docs/manual/style/latex/latex.xsl index 59002e2c279..1fe8ef2bb7a 100644 --- a/docs/manual/style/latex/latex.xsl +++ b/docs/manual/style/latex/latex.xsl @@ -1,12 +1,17 @@ + + + %HTTPD-VERSION; +]> + + + + + + @@ -322,7 +347,10 @@ Server Documentation Project. More information is available at - + + + + @@ -370,6 +398,8 @@ Server Documentation Project. More information is available at + + diff --git a/docs/manual/style/latex/manualpage.xsl b/docs/manual/style/latex/manualpage.xsl index ddf912c569d..172e54b7411 100644 --- a/docs/manual/style/latex/manualpage.xsl +++ b/docs/manual/style/latex/manualpage.xsl @@ -1,12 +1,12 @@ - \end{longtable} -\normalsize + \end{longtable}&lf; + \normalsize - + diff --git a/docs/manual/style/latex/synopsis.xsl b/docs/manual/style/latex/synopsis.xsl index cae6785a328..5ba989bdc25 100644 --- a/docs/manual/style/latex/synopsis.xsl +++ b/docs/manual/style/latex/synopsis.xsl @@ -1,12 +1,12 @@ diff --git a/docs/manual/style/manual.en.xsl b/docs/manual/style/manual.en.xsl index 7853e3fd645..bb1f0631c73 100644 --- a/docs/manual/style/manual.en.xsl +++ b/docs/manual/style/manual.en.xsl @@ -1,12 +1,11 @@ - diff --git a/docs/manual/style/manual.es.xsl b/docs/manual/style/manual.es.xsl index 9f815edf7b2..92476a9413c 100644 --- a/docs/manual/style/manual.es.xsl +++ b/docs/manual/style/manual.es.xsl @@ -1,12 +1,11 @@ - diff --git a/docs/manual/style/manual.fr.xsl b/docs/manual/style/manual.fr.xsl index e74ef4205b1..5cdd1a0dda4 100644 --- a/docs/manual/style/manual.fr.xsl +++ b/docs/manual/style/manual.fr.xsl @@ -1,12 +1,11 @@ - diff --git a/docs/manual/style/manual.ja.xsl b/docs/manual/style/manual.ja.xsl index 430f02cbf55..98c2ef5cd17 100644 --- a/docs/manual/style/manual.ja.xsl +++ b/docs/manual/style/manual.ja.xsl @@ -1,12 +1,11 @@ - @@ -27,9 +26,10 @@ -EUC-JP +UTF-8 + diff --git a/docs/manual/style/manual.ko.xsl b/docs/manual/style/manual.ko.xsl index 5056f0142e4..84220ca98f2 100644 --- a/docs/manual/style/manual.ko.xsl +++ b/docs/manual/style/manual.ko.xsl @@ -1,12 +1,11 @@ - diff --git a/docs/manual/style/manual.pt-br.xsl b/docs/manual/style/manual.pt-br.xsl index e64d746970c..a5ee6b4bedb 100644 --- a/docs/manual/style/manual.pt-br.xsl +++ b/docs/manual/style/manual.pt-br.xsl @@ -1,12 +1,11 @@ - diff --git a/docs/manual/style/manual.ru.xsl b/docs/manual/style/manual.ru.xsl index 4aa1f85aecb..36845a08c76 100644 --- a/docs/manual/style/manual.ru.xsl +++ b/docs/manual/style/manual.ru.xsl @@ -1,12 +1,11 @@ - diff --git a/docs/manual/style/manual.tr.xsl b/docs/manual/style/manual.tr.xsl new file mode 100644 index 00000000000..e2647b1f093 --- /dev/null +++ b/docs/manual/style/manual.tr.xsl @@ -0,0 +1,37 @@ + + + + + + + + + +tr + + + +UTF-8 + + + + + + + + \ No newline at end of file diff --git a/docs/manual/style/manual.zh-cn.xsl b/docs/manual/style/manual.zh-cn.xsl new file mode 100644 index 00000000000..67c3c4eb0b5 --- /dev/null +++ b/docs/manual/style/manual.zh-cn.xsl @@ -0,0 +1,37 @@ + + + + + + + + + +zh-cn + + + +UTF-8 + + + + + + + + \ No newline at end of file diff --git a/docs/manual/style/manualpage.dtd b/docs/manual/style/manualpage.dtd index 2b292c78ca2..e9c22a044b3 100644 --- a/docs/manual/style/manualpage.dtd +++ b/docs/manual/style/manualpage.dtd @@ -1,12 +1,12 @@ - + - + diff --git a/docs/manual/style/version.ent b/docs/manual/style/version.ent new file mode 100644 index 00000000000..a04540ebb29 --- /dev/null +++ b/docs/manual/style/version.ent @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/docs/manual/style/xsl/common.xsl b/docs/manual/style/xsl/common.xsl index 55d4bafa2c8..24eb4c98950 100644 --- a/docs/manual/style/xsl/common.xsl +++ b/docs/manual/style/xsl/common.xsl @@ -1,12 +1,12 @@ + @@ -45,7 +48,7 @@ - p example note table ul ol dl pre img blockquote + p example note table ul ol dl pre highlight img blockquote @@ -64,10 +67,12 @@ + + @@ -78,6 +83,17 @@ + + + + Invalid metafile. Probably your build system is not up-to-date. + Get a current version and try again. + + + + + + @@ -87,13 +103,10 @@ - - - - - - + &lf; + &lf; + &lf; @@ -109,9 +122,8 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX &lf; - - - &lf; + &lf; + <xsl:choose> @@ -126,6 +138,8 @@ <xsl:text> </xsl:text> <xsl:value-of select="normalize-space($message[@id='apachetitle'])"/> + <xsl:text> </xsl:text> + <xsl:value-of select="normalize-space($message[@id='version'])"/> &lf; @@ -150,16 +164,30 @@ + &lf; - + &lf; + &lf; &lf; + + + + + + + + + + + + @@ -216,7 +244,7 @@ > - + _blank @@ -254,6 +282,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + + +

    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + @@ -274,12 +383,40 @@ - + + +
    top
    +
    +

    +
    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    &lf; + +
    +
    +
    + + @@ -450,6 +598,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +    
    +
    &lf; +
    + + + @@ -499,7 +731,7 @@ | - + @@ -646,11 +878,21 @@ - + + + + + + + + + + - + < @@ -658,7 +900,7 @@ - + < > @@ -684,9 +926,16 @@ - + + - + + + + + + + @@ -949,15 +1198,23 @@ - - + + + + + + + + + + + + + - - → -  - - - + + + @@ -1012,7 +1269,7 @@
    -
    +
    diff --git a/docs/manual/style/xsl/convmap.xsl b/docs/manual/style/xsl/convmap.xsl index a7ad6904293..da4444fe495 100644 --- a/docs/manual/style/xsl/convmap.xsl +++ b/docs/manual/style/xsl/convmap.xsl @@ -1,12 +1,12 @@ @@ -47,6 +52,8 @@ + +

    @@ -97,6 +104,8 @@ [$letter = translate(substring(normalize-space(name), 1, 1), $lowercase, $uppercase)]"> + +
  • diff --git a/docs/manual/style/xsl/faq.xsl b/docs/manual/style/xsl/faq.xsl index 05ebd0fe0d7..344bdb61ed8 100644 --- a/docs/manual/style/xsl/faq.xsl +++ b/docs/manual/style/xsl/faq.xsl @@ -1,12 +1,12 @@ + &li.start; @@ -168,6 +169,7 @@ &li.end; &lf;&tab; + diff --git a/docs/manual/style/xsl/hhp.xsl b/docs/manual/style/xsl/hhp.xsl index 58aad475154..d8e12eed6ed 100644 --- a/docs/manual/style/xsl/hhp.xsl +++ b/docs/manual/style/xsl/hhp.xsl @@ -1,12 +1,12 @@ + &lf; + diff --git a/docs/manual/style/xsl/indexpage.xsl b/docs/manual/style/xsl/indexpage.xsl index 71a2f9dd54c..789f0df22ff 100644 --- a/docs/manual/style/xsl/indexpage.xsl +++ b/docs/manual/style/xsl/indexpage.xsl @@ -1,12 +1,12 @@ - - + + diff --git a/docs/manual/style/xsl/language.xsl b/docs/manual/style/xsl/language.xsl index 6c25bd2a08d..92c893721da 100644 --- a/docs/manual/style/xsl/language.xsl +++ b/docs/manual/style/xsl/language.xsl @@ -1,12 +1,12 @@ @@ -355,7 +356,7 @@ Some targets have additional requirements: - the HTML Help compiler in PATH (or modify this build file). The compiler (hhc.exe) is part of the HTML Help Workshop which is freely available and can be downloaded from - http://msdn.microsoft.com/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp + http://msdn.microsoft.com/en-us/library/windows/desktop/ms669985%28v=vs.85%29.aspx - The appropriate locale (e.g. Japanese) before invoking hhc.exe. Otherwise the compiler is not able to build the fulltext search index correctly and the TOC may be garbled, too. In particular: @@ -546,6 +547,21 @@ Some targets have additional requirements: + &lf; + + + is-retired + + + + true() + + + false() + + + + &lf;&lf; @@ -606,12 +622,12 @@ Some targets have additional requirements: &lf; - Copyright 2002-2005 The Apache Software Foundation or its licensors, - as applicable. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 diff --git a/docs/manual/style/xsl/maf.xsl b/docs/manual/style/xsl/maf.xsl index 2f308b389b4..f7718bd64d1 100644 --- a/docs/manual/style/xsl/maf.xsl +++ b/docs/manual/style/xsl/maf.xsl @@ -1,12 +1,12 @@ diff --git a/docs/manual/style/xsl/moduleindex.xsl b/docs/manual/style/xsl/moduleindex.xsl index 6c413794c01..ad54441326c 100644 --- a/docs/manual/style/xsl/moduleindex.xsl +++ b/docs/manual/style/xsl/moduleindex.xsl @@ -1,12 +1,12 @@ - - + + @@ -127,7 +127,7 @@ " " - + " " @@ -148,8 +148,8 @@ -&lf; -.SH NAME&lf; +&lf; +&lf; @@ -373,7 +373,7 @@ FATAL: only tables with two (2) columns are supported. - + diff --git a/docs/manual/style/xsl/quickreference.xsl b/docs/manual/style/xsl/quickreference.xsl index 7b94886d2c7..5d4c6e6979c 100644 --- a/docs/manual/style/xsl/quickreference.xsl +++ b/docs/manual/style/xsl/quickreference.xsl @@ -1,12 +1,12 @@ @@ -100,6 +201,7 @@ + @@ -107,15 +209,65 @@ select="$directives[$letter=translate(substring(normalize-space(name), 1,1), $lowercase,$uppercase)]"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + odd - - + + @@ -124,65 +276,86 @@ - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + or count($directive/default[count(br) > 0]) + > 0"> + + + + <td></td> + + + - s - v - d - h + + + + + + + + + + + + - - B - M - C - E - X - + + - + odd - - + + - @@ -190,21 +363,6 @@ &lf; - - - - - - - - - - - diff --git a/docs/manual/style/xsl/sitemap.xsl b/docs/manual/style/xsl/sitemap.xsl index d3712498a13..f72dafcbf88 100644 --- a/docs/manual/style/xsl/sitemap.xsl +++ b/docs/manual/style/xsl/sitemap.xsl @@ -1,12 +1,12 @@ @@ -241,16 +258,36 @@ + +
      +
    • +
    • +
    +
  • &lf; &lf; + + - - - + + + + + + + + + + + + +
    &lf; &lf; @@ -264,6 +301,8 @@ + + &lf; @@ -274,26 +313,54 @@

    - - < - - > - - - + [@id='directive']/@before-name = 'yes'"> + + + + + + + + + + + + + + + < + + > + + - + + < + + > + + + + + + + + + + + + + + - - - -

    &lf; @@ -375,7 +442,9 @@ - + + &lf; @@ -414,7 +483,14 @@
    &lf; - &lf; + + + &lf; + + +

    +
    +

    diff --git a/docs/manual/style/xsl/typemap.xsl b/docs/manual/style/xsl/typemap.xsl index 4b14e98ad40..7eb7ec2cbbc 100644 --- a/docs/manual/style/xsl/typemap.xsl +++ b/docs/manual/style/xsl/typemap.xsl @@ -1,12 +1,12 @@ +# GENERATED FROM XML -- DO NOT EDIT&lf; +&lf; diff --git a/docs/manual/style/xsl/util/allmodules.xml b/docs/manual/style/xsl/util/allmodules.xml index a6da945dc2b..304dfd0bc0f 100644 --- a/docs/manual/style/xsl/util/allmodules.xml +++ b/docs/manual/style/xsl/util/allmodules.xml @@ -1,5 +1,4 @@ - - + ../../../mod/allmodules.xml.de ../../../mod/allmodules.xml ../../../mod/allmodules.xml.es @@ -8,4 +7,6 @@ ../../../mod/allmodules.xml.ko ../../../mod/allmodules.xml.pt-br ../../../mod/allmodules.xml.ru +../../../mod/allmodules.xml.tr +../../../mod/allmodules.xml.zh-cn \ No newline at end of file diff --git a/docs/manual/style/xsl/util/designations.xml b/docs/manual/style/xsl/util/designations.xml index 5211ce9ae11..52de89a742a 100644 --- a/docs/manual/style/xsl/util/designations.xml +++ b/docs/manual/style/xsl/util/designations.xml @@ -1,11 +1,12 @@ - - + .html.de .html.en .html.es .html.fr -.html.ja.euc-jp +.html.ja.utf8 .html.ko.euc-kr .html.pt-br .html.ru.koi8-r +.html.tr.utf8 +.html.zh-cn.utf8 diff --git a/docs/manual/style/xsl/util/modtrans.xsl b/docs/manual/style/xsl/util/modtrans.xsl index 7f8c82f2e90..291f49bafa1 100644 --- a/docs/manual/style/xsl/util/modtrans.xsl +++ b/docs/manual/style/xsl/util/modtrans.xsl @@ -1,12 +1,12 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/manual/style/xsl/util/string-reverse.xsl b/docs/manual/style/xsl/util/string-reverse.xsl new file mode 100644 index 00000000000..4d560ad2932 --- /dev/null +++ b/docs/manual/style/xsl/util/string-reverse.xsl @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/manual/suexec.html b/docs/manual/suexec.html index 9d5e3a86ca4..c4cc65bdbe2 100644 --- a/docs/manual/suexec.html +++ b/docs/manual/suexec.html @@ -1,11 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: suexec.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: suexec.html.ja.euc-jp +URI: suexec.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: suexec.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: suexec.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: suexec.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/suexec.html.en b/docs/manual/suexec.html.en index 884de239e4f..d27a36b6012 100644 --- a/docs/manual/suexec.html.en +++ b/docs/manual/suexec.html.en @@ -1,26 +1,35 @@ - -suEXEC Support - Apache HTTP Server +suEXEC Support - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    suEXEC Support

    Available Languages:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    The suEXEC feature provides @@ -49,7 +58,7 @@

  • Debugging suEXEC
  • Beware the Jabberwock: Warnings & Examples
  • -
    +
    top

    Before we begin

    @@ -125,7 +134,7 @@
    1. Is the user executing this wrapper a valid user of - this system? + this system?

      This is to ensure that the user executing the wrapper is @@ -135,7 +144,7 @@

    2. Was the wrapper called with the proper number of - arguments? + arguments?

      The wrapper will only execute if it is given the proper @@ -149,7 +158,7 @@

    3. Is this valid user allowed to run the - wrapper? + wrapper?

      Is this user the user allowed to run this wrapper? Only @@ -160,7 +169,7 @@

    4. Does the target CGI or SSI program have an unsafe - hierarchical reference? + hierarchical reference?

      Does the target CGI or SSI program's path contain a leading @@ -172,7 +181,7 @@

    5. - Is the target user name valid? + Is the target user name valid?

      Does the target user exist? @@ -180,7 +189,7 @@

    6. - Is the target group name valid? + Is the target group name valid?

      Does the target group exist? @@ -192,14 +201,14 @@

      - Presently, suEXEC does not allow root + suEXEC does not allow root to execute CGI/SSI programs.

    7. Is the target userid ABOVE the minimum ID - number? + number?

      The minimum user ID number is specified during @@ -211,7 +220,7 @@

    8. Is the target group NOT the superuser - group? + group?

      Presently, suEXEC does not allow the root @@ -221,7 +230,7 @@

    9. Is the target groupid ABOVE the minimum ID - number? + number?

      The minimum group ID number is specified during @@ -233,7 +242,7 @@

    10. Can the wrapper successfully become the target user - and group? + and group?

      Here is where the program becomes the target user and @@ -255,12 +264,12 @@

    11. Is the directory within the Apache - webspace? + webspace?

      If the request is for a regular portion of the server, is the requested directory within suEXEC's document root? If - the request is for a UserDir, is the requested directory + the request is for a UserDir, is the requested directory within the directory configured as suEXEC's userdir (see suEXEC's configuration options)?

      @@ -268,7 +277,7 @@
    12. Is the directory NOT writable by anyone - else? + else?

      We don't want to open up the directory to others; only @@ -278,7 +287,7 @@

    13. - Does the target CGI/SSI program exist? + Does the target CGI/SSI program exist?

      If it doesn't exists, it can't very well be executed. @@ -287,7 +296,7 @@

    14. Is the target CGI/SSI program NOT writable - by anyone else? + by anyone else?

      We don't want to give anyone other than the owner the @@ -297,7 +306,7 @@

    15. Is the target CGI/SSI program NOT setuid or - setgid? + setgid?

      We do not want to execute programs that will then change @@ -307,7 +316,7 @@

    16. Is the target user/group the same as the program's - user/group? + user/group?

      Is the user the owner of the file? @@ -316,7 +325,7 @@

    17. Can we successfully clean the process environment - to ensure safe operations? + to ensure safe operations?

      suEXEC cleans the process' environment by establishing a @@ -329,7 +338,7 @@

    18. Can we successfully become the target CGI/SSI program - and execute? + and execute?

      Here is where suEXEC ends and the target CGI/SSI program begins. @@ -387,13 +396,13 @@ directories where suEXEC access should be allowed. All executables under this directory will be executable by suEXEC as the user so they should be "safe" programs. If you are - using a "simple" UserDir directive (ie. one without a "*" in - it) this should be set to the same value. suEXEC will not - work properly in cases where the UserDir directive points to + using a "simple" UserDir + directive (ie. one without a "*" in it) this should be set to the same + value. suEXEC will not work properly in cases where the UserDir directive points to a location that is not the same as the user's home directory - as referenced in the passwd file. Default value is - "public_html".
      - If you have virtual hosts with a different UserDir for each, + as referenced in the passwd file. Default value is + "public_html".
      + If you have virtual hosts with a different UserDir for each, you will need to define them to all reside in one parent directory; then name that parent directory here. If this is not defined properly, "~userdir" cgi requests will @@ -402,12 +411,12 @@

      --with-suexec-docroot=DIR
      Define as the DocumentRoot set for Apache. This will be - the only hierarchy (aside from UserDirs) that can be used for - suEXEC behavior. The default directory is the --datadir - value with the suffix "/htdocs", e.g. if you configure - with "--datadir=/home/apache" the directory - "/home/apache/htdocs" is used as document root for the suEXEC - wrapper.
      + the only hierarchy (aside from UserDirs) that can be used for suEXEC behavior. The + default directory is the --datadir value with the suffix + "/htdocs", e.g. if you configure with + "--datadir=/home/apache" the directory + "/home/apache/htdocs" is used as document root for the + suEXEC wrapper.
      --with-suexec-uidmin=UID
      @@ -426,61 +435,68 @@
      This defines the filename to which all suEXEC transactions and errors are logged (useful for auditing and debugging purposes). By default the logfile is named - "suexec_log" and located in your standard logfile directory - (--logfiledir).
      + "suexec_log" and located in your standard logfile + directory (--logfiledir).
      --with-suexec-safepath=PATH
      Define a safe PATH environment to pass to CGI executables. Default value is - "/usr/local/bin:/usr/bin:/bin".
      + "/usr/local/bin:/usr/bin:/bin". -

      Compiling and installing the suEXEC - wrapper
      - If you have enabled the suEXEC feature with the - --enable-suexec option the suexec binary - (together with Apache itself) is automatically built if you execute - the make command.
      - After all components have been built you can execute the - command make install to install them. The binary image - suexec is installed in the directory defined by the - --sbindir option. The default location is - "/usr/local/apache2/sbin/suexec".
      - Please note that you need root - privileges for the installation step. In order - for the wrapper to set the user ID, it must be installed as - owner root and must have the setuserid - execution bit set for file modes.

      - -

      Setting paranoid permissions
      - Although the suEXEC wrapper will check to ensure that its - caller is the correct user as specified with the - --with-suexec-caller configure - option, there is - always the possibility that a system or library call suEXEC uses - before this check may be exploitable on your system. To counter - this, and because it is best-practise in general, you should use - filesystem permissions to ensure that only the group Apache - runs as may execute suEXEC.

      - -

      If for example, your web server is configured to run as:

      - -

      - User www
      - Group webgroup
      -

      - -

      and suexec is installed at - "/usr/local/apache2/sbin/suexec", you should run:

      - -

      - chgrp webgroup /usr/local/apache2/bin/suexec
      - chmod 4750 /usr/local/apache2/bin/suexec
      -

      - -

      This will ensure that only the group Apache runs as can even - execute the suEXEC wrapper.

      +

      Compiling and installing the suEXEC wrapper

      + + +

      If you have enabled the suEXEC feature with the + --enable-suexec option the suexec binary + (together with Apache itself) is automatically built if you execute + the make command.

      + +

      After all components have been built you can execute the + command make install to install them. The binary image + suexec is installed in the directory defined by the + --sbindir option. The default location is + "/usr/local/apache2/bin/suexec".

      + +

      Please note that you need root + privileges for the installation step. In order + for the wrapper to set the user ID, it must be installed as + owner root and must have the setuserid + execution bit set for file modes.

      + + +

      Setting paranoid permissions

      + + +

      Although the suEXEC wrapper will check to ensure that its + caller is the correct user as specified with the + --with-suexec-caller configure + option, there is + always the possibility that a system or library call suEXEC uses + before this check may be exploitable on your system. To counter + this, and because it is best-practise in general, you should use + filesystem permissions to ensure that only the group Apache + runs as may execute suEXEC.

      + +

      If for example, your web server is configured to run as:

      + +

      + User www
      + Group webgroup
      +

      + +

      and suexec is installed at + "/usr/local/apache2/bin/suexec", you should run:

      + +

      + chgrp webgroup /usr/local/apache2/bin/suexec
      + chmod 4750 /usr/local/apache2/bin/suexec
      +

      + +

      This will ensure that only the group Apache runs as can even + execute the suEXEC wrapper.

      +
    top

    Enabling & Disabling @@ -549,7 +565,7 @@

    NOTE! This section may not be complete. For the latest revision of this section of the - documentation, see the Apache Group's Online + documentation, see the Apache Group's Online Documentation version.

    There are a few points of interest regarding @@ -560,7 +576,7 @@

  • suEXEC Points Of Interest
  • - Hierarchy limitations + Hierarchy limitations

    For security and efficiency reasons, all suEXEC requests @@ -575,7 +591,7 @@

  • - suEXEC's PATH environment variable + suEXEC's PATH environment variable

    This can be a dangerous thing to change. Make certain @@ -587,7 +603,7 @@

  • - Altering the suEXEC code + Altering the suEXEC code

    Again, this can cause Big Trouble if you @@ -600,9 +616,32 @@

  • Available Languages:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +

    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/suexec.html.fr b/docs/manual/suexec.html.fr new file mode 100644 index 00000000000..1351f8ed570 --- /dev/null +++ b/docs/manual/suexec.html.fr @@ -0,0 +1,695 @@ + + + + + +Support suEXEC - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Support suEXEC

    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + +

    La fonctionnalité suEXEC permet + l'exécution des programmes CGI et + SSI sous un identifiant utilisateur autre que celui sous + lequel s'exécute le serveur web qui appelle ces programmes. + Normalement, lorsqu'un programme CGI ou SSI est lancé, il + s'exécute sous le même identifiant utilisateur que celui du serveur web qui + l'appelle.

    + +

    Utilisée de manière appropriée, cette fonctionnalité peut + réduire considérablement les risques de sécurité encourus + lorsqu'on autorise les utilisateurs à développer et faire + s'exécuter des programmes CGI ou SSI de leur cru. Cependant, mal + configuré, suEXEC peut causer de nombreux problèmes et même créer + de nouvelles failles dans la sécurité de votre ordinateur. Si + vous n'êtes pas familier avec la gestion des programmes + setuid root et les risques de sécurité qu'ils comportent, + nous vous recommandons vivement de ne pas tenter + d'utiliser suEXEC.

    +
    + +
    top
    +
    +

    Avant de commencer

    + +

    Avant de foncer tête baissée dans la lecture de ce document, + vous devez tenir compte des hypothèses faites par le Groupe + Apache et dans ce document.

    + +

    Premièrement, vous devez utiliser un système d'exploitation + UNIX ou dérivé, capable d'effectuer des opérations + setuid et setgid. Tous les + exemples de commande sont fournis dans ce context. D'autres + plates-formes, même si elles supportent suEXEC, peuvent + présenter une configuration différente.

    + +

    Deuxièmement, vous devez être familier avec les concepts de base + relatifs à la sécurité de votre ordinateur et son administration. + Ceci implique la compréhension des opérations + setuid/setgid et des différents effets qu'elles + peuvent produire sur votre système et son niveau de sécurité.

    + +

    Troisièmement, vous devez utiliser une version + non modifiée du code de suEXEC. L'ensemble du + code de suEXEC a été scruté et testé avec soin par les développeurs + et de nombreux bêta testeurs. Toutes les précautions ont été prises + pour s'assurer d'une base sûre de code non seulement simple, mais + aussi solide. La modification de ce code peut causer des problèmes + inattendus et de nouveaux risques de sécurité. Il est + vivement recommandé de ne pas modifier le code de + suEXEC, à moins que vous ne soyez un programmeur spécialiste des + particularités liées à la sécurité, et souhaitez partager votre + travail avec le Groupe Apache afin de pouvoir en discuter.

    + +

    Quatrièmement et dernièrement, le Groupe Apache a décidé de ne + PAS inclure suEXEC dans l'installation par défaut + d'Apache. Pour pouvoir mettre en oeuvre suEXEC, l'administrateur + doit porter la plus grande attention aux détails. Après avoir bien + réfléchi aux différents points de la configuration de suEXEC, + l'administrateur peut l'installer selon les méthodes classiques. + Le choix de chaque paramètre de configuration doit être + déterminé et spécifié avec soin par l'administrateur, afin de + maintenir la sécurité du système de manière appropriée lors de + l'utilisation de la fonctionnalité suEXEC. C'est par le biais de + ce processus minutieux que le Groupe Apache espère réserver + l'installation de suEXEC aux administrateurs prudents et + suffisamment déterminés à vouloir l'utiliser.

    + +

    Vous êtes encore avec nous ? Oui ? Bien. + Alors nous pouvons continuer !

    +
    top
    +
    +

    Modèle de sécurité de suEXEC

    + +

    Avant d'installer et configurer suEXEC, nous allons tout d'abord + décrire le modèle de sécurité que vous êtes sur le point + d'implémenter. Vous devriez ainsi mieux comprendre ce qui se passe + vraiment à l'intérieur de suEXEC et quelles précautions ont été + prises pour préserver la sécurité de votre système.

    + +

    suEXEC est basé sur un programme "conteneur" + (wrapper) setuid qui est appelé par le serveur web Apache principal. + Ce conteneur est appelé quand une requête HTTP concerne + un programme CGI ou SSI que l'administrateur + a décidé de faire s'exécuter + sous un utilisateur autre que celui du serveur principal. + Lorsqu'il reçoit une telle requête, Apache fournit au conteneur + suEXEC le nom du programme, ainsi que les identifiants utilisateur + et groupe sous lesquels le programme doit s'exécuter.

    + +

    Le conteneur effectue ensuite les vérifications suivantes afin + de déterminer la réussite ou l'échec du processus -- si une seule + de ces conditions n'est pas vérifiée, le programme journalise + l'erreur et se termine en retournant un code d'erreur, sinon il + continue :

    + +
      +
    1. + L'utilisateur qui exécute le conteneur est-il un + utilisateur valide de ce système ? + +

      + Ceci permet de s'assurer que l'utilisateur qui exécute le + conteneur est vraiment un utilisateur appartenant au système. +

      +
    2. + +
    3. + Le conteneur a-t-il été appelé avec un nombre + d'arguments correct ? + +

      + Le conteneur ne s'exécutera que si on lui fournit un nombre + d'arguments correct. Le serveur web apache sait quel est le + bon format des arguments. Si le conteneur ne reçoit pas un + nombre d'arguments correct, soit il a été modifié, + soit quelque chose ne va pas dans la portion suEXEC de + votre binaire Apache. +

      +
    4. + +
    5. + Cet utilisateur valide est-il autorisé à exécuter le + conteneur ? + +

      + Cet utilisateur est-il celui autorisé à exécuter le + conteneur ? Un seul utilisateur (celui d'Apache) est + autorisé à exécuter ce programme. +

      +
    6. + +
    7. + Le chemin du programme CGI ou SSI cible est-il + non sûr ? + +

      + Le chemin du programme CGI ou SSI cible débute-t-il par un + '/' ou contient-il une référence arrière '..' ? Ceci est + interdit ; le programme CGI ou SSI cible doit se trouver dans + la hiérarchie de la racine des documents de suEXEC (voir + --with-suexec-docroot=DIR ci-dessous). +

      +
    8. + +
    9. + Le nom utilisateur cible est-il valide ? + +

      + L'utilisateur cible existe-t-il ? +

      +
    10. + +
    11. + Le nom du groupe cible est-il valide ? + +

      + Le groupe cible existe-t-il ? +

      +
    12. + +
    13. + L'utilisateur cible n'est-il PAS + superutilisateur ? + + +

      + suEXEc ne permet pas à + root d'exécuter des programmes CGI/SSI. +

      +
    14. + +
    15. + Le numéro de l'identifiant de l'utilisateur cible + est-il SUPERIEUR au numéro d'identifiant + minimum ? + +

      + Le numéro d'identifiant utilisateur minimum est défini à + l'exécution du script configure. Ceci vous permet de définir + le numéro d'identifiant utilisateur le plus bas qui sera + autorisé à éxécuter des programmes CGI/SSI. En particulier, + cela permet d'écarter les comptes système. +

      +
    16. + +
    17. + Le groupe cible n'est-il PAS le groupe + superutilisateur ? + +

      + Actuellement, suEXEC ne permet pas au groupe + root d'exécuter des programmes CGI/SSI. +

      +
    18. + +
    19. + Le numéro d'identifiant du groupe cible est-il + SUPERIEUR au numéro d'identifiant minimum ? + +

      + Le numéro d'identifiant de groupe minimum est spécifié lors + de l'exécution du script configure. Ceci vous permet de + définir l'identifiant de groupe le plus bas possible qui sera + autorisé à exécuter des programmes CGI/SSI, et est + particulièrement utile pour écarter les groupes "système". +

      +
    20. + +
    21. + Le conteneur peut-il obtenir avec succès l'identité + des utilisateur et groupe cibles ? + +

      + C'est ici que le programme obtient l'identité des utilisateur + et groupe cibles via des appels à setuid et setgid. De même, + la liste des accès groupe est initialisée avec tous les + groupes auxquels l'utilisateur cible appartient. +

      +
    22. + +
    23. + Peut-on se positionner dans le répertoire dans dequel + sont situés les programmes CGI/SSI ? + +

      + S'il n'existe pas, il ne peut pas contenir de fichier. Et si + l'on ne peut pas s'y positionner, il n'existe probablement + pas. +

      +
    24. + +
    25. + Le répertoire est-il dans l'espace web + d'Apache ? + +

      + Si la requête concerne une portion de la racine du serveur, + le répertoire demandé est-il dans la hiérarchie de la racine + des documents de suEXEC ? Si la requête concerne un + UserDir, le + répertoire demandé est-il dans la hiérarchie du répertoire + défini comme le répertoire utilisateur de suEXEC (voir les + options de configuration de suEXEC) ? +

      +
    26. + +
    27. + L'écriture dans le répertoire est-elle interdite pour + un utilisateur autre que le propriétaire ? + +

      + Le répertoire ne doit pas être ouvert aux autres + utilisateurs ; seul l'utilisateur propriétaire doit pouvoir + modifier le contenu du répertoire. +

      +
    28. + +
    29. + Le programme CGI/SSI cible existe-t-il ? + +

      + S'il n'existe pas, il ne peut pas être exécuté. +

      +
    30. + +
    31. + Les utilisateurs autres que le propriétaire n'ont-ils + PAS de droits en écriture sur le programme + CGI/SSI ? + +

      + Les utilisateurs autres que le propriétaire ne doivent pas + pouvoir modifier le programme CGI/SSI. +

      +
    32. + +
    33. + Le programme CGI/SSI n'est-il PAS setuid ou + setgid ? + +

      + Les programmes cibles ne doivent pas pouvoir modifier à + nouveau les identifiants utilisateur/groupe. +

      +
    34. + +
    35. + Le couple utilisateur/groupe cible est-il le même que + celui du programme ? + +

      + L'utilisateur est-il le propriétaire du fichier ? +

      +
    36. + +
    37. + Peut-on nettoyer avec succès l'environnement des + processus afin de garantir la sûreté des opérations ? + +

      + suExec nettoie l'environnement des processus en établissant + un chemin d'exécution sûr (défini lors de la configuration), + et en ne passant que les variables dont les noms font partie + de la liste de l'environnement sûr (créée de même lors de la + configuration). +

      +
    38. + +
    39. + Le conteneur peut-il avec succès se substituer au + programme CGI/SSI cible et s'exécuter ? + +

      + C'est là où l'exécution de suEXEC s'arrête et où commence + celle du programme CGI/ssi cible. +

      +
    40. +
    + +

    Ce sont les opérations standards effectuées par le modèle de + sécurité du conteneur suEXEC. Il peut paraître strict et est + susceptible d'imposer de nouvelles limitations et orientations + dans la conception des programmes CGI/SSI, mais il a été développé + avec le plus grand soin, étape par étape, en se focalisant sur + la sécurité.

    + +

    Pour plus d'informations sur la mesure dans laquelle ce modèle + de sécurité peut limiter vos possibilités au regard de la + configuration du serveur, ainsi que les risques de sécurité qui + peuvent être évités grâce à une configuration appropriée de suEXEC, + se référer à la section "Avis à la population !" de ce document.

    +
    top
    +
    +

    Configurer et installer suEXEC

    + +

    C'est ici que nous entrons dans le vif du sujet.

    + +

    Options de configuration de suEXEC
    +

    + +
    +
    --enable-suexec
    + +
    Cette option active la fonctionnalité suEXEC qui n'est + jamais installée ou activée par défaut. Au moins une option + --with-suexec-xxxxx doit accompagner l'option + --enable-suexec pour qu'APACI (l'utilitaire de + configuration de la compilation d'Apache) accepte votre demande + d'utilisation de la fonctionnalité suEXEC.
    + +
    --with-suexec-bin=PATH
    + +
    Le chemin du binaire suexec doit être codé en + dur dans le serveur pour des raisons de sécurité. Cette option + vous permet de modifier le chemin par défaut. + Par exemple + --with-suexec-bin=/usr/sbin/suexec
    + +
    --with-suexec-caller=UID
    + +
    L'utilisateur sous + lequel Apache s'exécute habituellement. C'est le seul utilisateur + autorisé à utiliser suexec.
    + +
    --with-suexec-userdir=DIR
    + +
    Cette option définit le sous-répertoire de la hiérarchie des + répertoires utilisateurs dans lequel l'utilisation + de suEXEC sera autorisée. Tous les exécutables situés dans ce + répertoire seront exécutables par suEXEC sous l'utilisateur + cible ; ces programmes doivent donc être sûrs. Si vous utilisez + une directive UserDir + "simple" (c'est à dire ne contenant pas de + "*"), l'option --with-suexec-userdir + devra contenir la même valeur. suEXEC ne fonctionnera pas + correctement si la directive UserDir contient une valeur + différente du répertoire home de l'utilisateur tel qu'il est + défini dans le fichier passwd. la valeur par défaut + est "public_html".
    + Si vous avez plusieurs hôtes virtuels avec une directive + UserDir différente + pour chacun d'entre eux, vous devrez faire en sorte que chaque + UserDir possède un répertoire parent commun ; donnez alors à + l'option --with-suexec-userdir le nom + de ce répertoire commun. Si tout ceci n'est pas défini + correctement, les requêtes CGI "~userdir" ne fonctionneront + pas !
    + +
    --with-suexec-docroot=DIR
    + +
    Cette option fonctionne comme la directive DocumentRoot pour + Apache. Il s'agit de la seule hiérarchie (en dehors des directives + UserDir) dans laquelle la fonctionnalité suEXEC + pourra être utilisée. La valeur par défaut est la valeur de + --datadir accompagnée du suffixe + "/htdocs" ; + Par exemple, si vous exécutez configure avec + "--datadir=/home/apache", la valeur + "/home/apache/htdocs" sera utilisée par défaut comme + racine des documents pour le conteneur suEXEC.
    + +
    --with-suexec-uidmin=UID
    + +
    Cette option définit l'identifiant utilisateur le plus bas + avec lequel un utilisateur pourra être la cible de + suEXEC. 500 ou 100 sont des valeurs courantes sur la plupart des + systèmes. la valeur par défaut est 100.
    + +
    --with-suexec-gidmin=GID
    + +
    Cette option définit l'identifiant de groupe le plus bas + avec lequel un utilisateur pourra être la cible de + suEXEC. 100 est une valeur courante sur la plupart des + systèmes et est par conséquent la valeur par défaut.
    + +
    --with-suexec-logfile=FILE
    + +
    Cette option permet de définir le fichier dans lequel + toutes les transactions et erreurs de suEXEC seront journalisées + (à des fins d'analyse ou de débogage). Par défaut, le fichier + journal se nomme "suexec_log" et se trouve dans votre + répertoire standard des fichiers journaux défini par + --logfiledir
    + +
    --with-suexec-safepath=PATH
    + +
    Cette option permet de définir une variable d'environnement + PATH sûre à passer aux exécutables CGI. La valeur par défaut + est "/usr/local/bin:/usr/bin:/bin".
    +
    + +

    Compilation et installation du conteneur suEXEC

    + + +

    Si vous avez activé la fonctionnalité suEXEC à l'aide de + l'option --enable-suexec, le binaire + suexec sera automatiquement construit (en même temps + qu'Apache) lorsque vous exécuterez la comande + make.

    + +

    Lorsque tous les composants auront été construits, vous pourrez + exécuter la commande make install afin de les + installer. Le binaire suexec sera installé dans le + répertoire défini à l'aide de l'option --sbindir. La + localisation par défaut est "/usr/local/apache2/bin/suexec".

    +

    Veuillez noter que vous aurez besoin des + privilèges root pour passer l'étape de + l'installation. Pour que le conteneur puisse changer + l'identifiant utilisateur, il doit avoir comme propriétaire + root, et les droits du fichier doivent + inclure le bit d'exécution setuserid.

    + + +

    >Mise en place de permissions pour + paranoïaque

    + +

    Bien que le conteneur suEXEC vérifie que l'utilisateur qui + l'appelle correspond bien à l'utilisateur spécifié à l'aide de + l'option --with-suexec-caller du programme + configure, il subsiste toujours le risque qu'un + appel système ou une bibliothèque fasse appel à suEXEC avant que + cette vérification ne soit exploitable sur votre système. Pour + tenir compte de ceci, et parce que c'est en général la meilleure + pratique, vous devez utiliser les permissions du système de + fichiers afin de vous assurer que seul le groupe sous lequel + s'exécute Apache puisse faire appel à suEXEC.

    + +

    Si, par exemple, votre serveur web est configuré pour + s'exécuter en tant que :

    + +

    + User www
    + Group webgroup
    +

    + +

    et suexec se trouve à + "/usr/local/apache2/bin/suexec", vous devez exécuter les + commandes

    + +

    + chgrp webgroup /usr/local/apache2/bin/suexec
    + chmod 4750 /usr/local/apache2/bin/suexec
    +

    + +

    Ceci permet de s'assurer que seul le groupe sous lequel Apache + s'exécute (ici webgroup) puisse faire appel au conteneur + suEXEC.

    + +
    top
    +
    +

    Activation et désactivation +de suEXEC

    + +

    Au démarrage, Apache vérifie la présence du fichier + suexec dans le répertoire défini par + l'option --sbindir du script configure (le + répertoire par défaut est "/usr/local/apache/sbin/suexec"). Si + Apache trouve un conteneur suEXEC correctement configuré, il + enregistrera le message suivant dans le journal des erreurs :

    + +

    + [notice] suEXEC mechanism enabled (wrapper: /path/to/suexec) +

    + +

    Si ce message n'est pas généré au démarrage du serveur, ce + dernier ne trouve probablement pas le programme conteneur à + l'endroit où il est sensé être, ou l'exécutable suexec n'est pas + installé en setuid root.

    + +

    Si le serveur Apache est déjà en cours d'exécution, et si + vous activez le mécanisme suEXEC pour la première fois, vous + devez arrêter et redémarrer Apache. Un redémarrage + à l'aide d'un simple signal HUP ou USR1 suffira.

    +

    Pour désactiver suEXEC, vous devez supprimer le fichier + suexec, puis arrêter et redémarrer + Apache.

    +
    top
    +
    +

    Utilisation de suEXEC

    + +

    Les requêtes pour des programmes CGI ne feront appel au + conteneur suEXEC que si elles concernent un hôte virtuel + contenant une directive SuexecUserGroup, ou si elles sont + traitées par mod_userdir.

    + +

    Hôtes virtuels :
    Une des méthodes + d'utilisation du conteneur suEXEC consiste à insérer une + directive SuexecUserGroup dans une section + VirtualHost. En définissant + des valeurs différentes de celles du serveur principal, toutes les + requêtes pour des ressources CGI seront exécutées sous + les User et Group définis pour cette section + <VirtualHost>. Si cette + directive est absente de la section <VirtualHost>, l'utilisateur du + serveur principal sera pris par défaut

    + +

    Répertoires des utilisateurs :
    Avec + cette méthode, les + requêtes traitées par mod_userdir appelleront le + conteneur suEXEC pour exécuter le programme CGI sous l'identifiant + utilisateur du répertoire utilisateur concerné. Seuls prérequis + pour pouvoir accéder à cette fonctionnalité : l'exécution des CGI + doit être activée pour l'utilisateur concerné, et le script doit + passer avec succès le test des vérifications de + sécurité décrit plus haut. Voir aussi l' + option de compilation + --with-suexec-userdir.

    top
    +
    +

    Débogage de suEXEC

    + +

    Le conteneur suEXEC va écrire ses informations de journalisation + dans le fichier défini par l'option de compilation + --with-suexec-logfile comme indiqué plus haut. Si vous + pensez avoir configuré et installé correctement le conteneur, + consultez ce journal, ainsi que le journal des erreurs du serveur + afin de déterminer l'endroit où vous avez fait fausse route.

    + +
    top
    +
    +

    Avis à la population ! + Avertissements et exemples

    + +

    NOTE ! Cette section est peut-être incomplète. + Pour en consulter la dernière révision, voir la version de la Documentation en ligne du Groupe Apache.

    + +

    Quelques points importants du conteneur peuvent + imposer des contraintes du point de vue de la configuration du + serveur. Veuillez en prendre connaissance avant de soumettre un + rapport de bogue à propos de suEXEC.

    + +
      +
    • Points importants de suEXEC
    • + +
    • + Limitations concernant la hiérarchie. + +

      + Pour des raisons de sécurité et d'efficacité, toutes les + requêtes suEXEC ne doivent concerner que des ressources + situées dans la racine des documents définie pour les + requêtes concernant un hôte virtuel, ou des ressources + situées dans la racine des documents définies pour les + requêtes concernant un répertoire utilisateur. Par exemple, + si vous avez configuré quatre hôtes virtuels, vous devrez + définir la structure des racines de documents de vos hôtes + virtuels en dehors d'une hiérarchie de documents principale + d'Apache, afin de tirer parti de suEXEC dans le contexte des + hôtes virtuels (Exemple à venir). +

      +
    • + +
    • + La variable d'environnement PATH de suEXEC + +

      + Modifier cette variable peut s'avérer dangereux. Assurez-vous + que tout chemin que vous ajoutez à cette variable est un + répertoire de confiance. Vous n'avez + probablement pas l'intention d'ouvrir votre serveur de façon + à ce que l'on puisse y exécuter un cheval de Troie. +

      +
    • + +
    • + Modification de suEXEC + +

      + Encore une fois, ceci peut vous causer de + graves ennuis si vous vous y essayez sans + savoir ce que vous faites. Évitez de vous y risquer dans la + mesure du possible. +

      +
    • +
    + +
    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/suexec.html.ja.euc-jp b/docs/manual/suexec.html.ja.euc-jp deleted file mode 100644 index 25fe865cae4..00000000000 --- a/docs/manual/suexec.html.ja.euc-jp +++ /dev/null @@ -1,609 +0,0 @@ - - - -suEXEC ¥µ¥ݡ¼¥È - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    suEXEC ¥µ¥ݡ¼¥È

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    suEXEC - µ¡ǽ¤ˤè¤ꡢApache ¥桼¥¶¤Ï Web ¥µ¡¼¥Фò¼¹Ԥ·¤Ƥ¤¤ë¥桼¥¶ ID ¤ȤÏ - °ۤʤë¥桼¥¶ ID ¤Ç CGI ¥ץí¥°¥é¥à¤ä SSI - ¥ץí¥°¥é¥à¤ò¼¹Ԥ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£CGI ¥ץí¥°¥é¥à¤ޤ¿¤Ï SSI - ¥ץí¥°¥é¥à¤ò¼¹Ԥ¹¤ë¾ì¹硢Ä̾ï¤Ï web ¥µ¡¼¥ФÈƱ¤¸¥桼¥¶¤Ǽ¹Ԥµ¤ì¤ޤ¹¡£ -

    - -

    ŬÀڤ˻ÈÍѤ¹¤ë¤ȡ¢¤³¤ε¡ǽ¤ˤè¤ê¥桼¥¶¤¬¸ÄÊ̤Î CGI - ¤ä SSI ¥ץí¥°¥é¥à¤ò³«ȯ¤·¼¹Ԥ¹¤뤳¤ȤÇÀ¸¤¸¤륻¥­¥å¥ê¥ƥ£¾å¤δí¸±¤ò¡¢ - ¤«¤ʤ긺¤餹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤·¤«¤·¡¢suEXEC ¤ÎÀßÄ꤬ÉÔŬÀڤÀ¤ȡ¢ - ¿¤¯¤ÎÌäÂ꤬À¸¤¸¡¢¤¢¤ʤ¿¤Υ³¥ó¥ԥ塼¥¿¤˿·¤·¤¤¥»¥­¥å¥ê¥ƥ£¥ۡ¼¥ë¤ò - ºî¤äƤ·¤ޤ¦²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£¤¢¤ʤ¿¤¬ setuid root - ¤µ¤줿¥ץí¥°¥é¥à¤ȡ¢¤½¤ì¤餫¤éÀ¸¤¸¤륻¥­¥å¥ê¥ƥ£¾å¤ÎÌäÂê¤δÉÍý¤Ë - ¾ܤ·¤¯¤ʤ¤¤褦¤ʤ顢suEXEC ¤λÈÍѤò¸¡Ƥ¤·¤ʤ¤¤褦¤˶¯¤¯¿侩¤·¤ޤ¹¡£ -

    -
    - -
    top
    -
    -

    »Ϥá¤ëÁ°¤Ë

    - -

    ¤³¤Îʸ½ñ¤ÎÀèƬ¤ËÈô¤ÖÁ°¤ˡ¢Apache - ¥°¥롼¥פȤ³¤Îʸ½ñ¤Ǥβ¾Äê¤òÃΤäƤª¤¯¤٤­¤Ǥ·¤礦¡£ -

    - -

    Âè 1 ¤ˡ¢¤¢¤ʤ¿¤¬ setuid ¤È - setgid Áàº²Äǽ¤Ê UNIX - ͳÍè¤Υª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤ò»ȤäƤ¤¤뤳¤ȤòÁÛÄꤷ¤Ƥ¤¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¤¹¤٤ƤΥ³¥ޥó¥ÉÎã¤ˤ¢¤ƤϤޤê¤ޤ¹¡£ - ¤½¤Î¾¤Υץé¥åȥۡ¼¥à¤Ǥϡ¢¤⤷ suEXEC - ¤¬¥µ¥ݡ¼¥Ȥµ¤ì¤Ƥ¤¤¿¤Ȥ·¤ƤâÀßÄê¤ϰۤʤ뤫¤⤷¤ì¤ޤ»¤ó¡£

    - -

    Âè 2 ¤ˡ¢¤¢¤ʤ¿¤¬»ÈÍÑÃæ¤Υ³¥ó¥ԥ塼¥¿¤Î - ¥»¥­¥å¥ê¥ƥ£¤˴ؤ¹¤ë´ðËÜŪ¤ʳµǰ¤ȡ¢¤½¤ì¤é¤δÉÍý¤ˤĤ¤¤ƾܤ·¤¤¤³¤Ȥò - ÁÛÄꤷ¤Ƥ¤¤ޤ¹¡£¤³¤ì¤ϡ¢setuid/setgid - Áàº¤¢¤ʤ¿¤Υ·¥¹¥ƥà¾å¤ǤΤ½¤ÎÁàºî¤ˤè¤ëÍ͡¹¤ʸú²̡¢ - ¥»¥­¥å¥ê¥ƥ£¥ì¥٥ë¤ˤĤ¤¤Ƥ¢¤ʤ¿¤¬Íý²򤷤Ƥ¤¤ë¤Ȥ¤¤¦¤³¤Ȥò´ޤߤޤ¹¡£ -

    - -

    Âè 3 ¤ˡ¢²þ¤¤µ¤ì¤Ƥ¤¤ʤ¤ suEXEC - ¥³¡¼¥ɤλÈÍѤòÁÛÄꤷ¤Ƥ¤¤ޤ¹¡£suEXEC ¤Υ³¡¼¥ɤϡ¢ - ¿¤¯¤Υ١¼¥¿¥ƥ¹¥¿¤À¤±¤Ǥʤ¯¡¢³«ȯ¼Ԥˤè¤äƤâÃí°տ¼¤¯Àººº¤µ¤ì - ¥ƥ¹¥Ȥµ¤ì¤Ƥ¤¤ޤ¹¡£¤½¤ì¤é¤ÎÃí°դˤè¤ꡢ´ʷé¤ǿ®Íê¤Ǥ­¤ë°ÂÁ´¤Ê - ¥³¡¼¥ɤδðÈפ¬Êݾڤµ¤ì¤ޤ¹¡£¤³¤Υ³¡¼¥ɤò²þÊѤ¹¤뤳¤Ȥǡ¢ - ͽ´ü¤µ¤ì¤ʤ¤ÌäÂê¤俷¤·¤¤¥»¥­¥å¥ê¥ƥ£¾å¤δí¸±¤¬À¸¤¸¤뤳¤Ȥ¬¤¢¤ê¤ޤ¹¡£ - ¥»¥­¥å¥ê¥ƥ£¥ץí¥°¥é¥ߥ󥰤ξܺ٤ËÄ̤¸¤Ƥ¤¤ơ¢ - º£¸å¤θ¡Ƥ¤Τ¿¤á¤ËÀ®²̤ò Apache - ¥°¥롼¥פȶ¦ͭ¤·¤褦¤Ȼפ¦¤ΤǤʤ±¤ì¤С¢suEXEC - ¥³¡¼¥ɤÏÊѤ¨¤ʤ¤¤³¤Ȥò ¶¯¤¯¿侩¤·¤ޤ¹¡£

    - -

    Âè 4 ¤ˡ¢¤³¤줬ºǸå¤Ǥ¹¤¬¡¢suEXEC ¤ò Apache - ¤Υǥե©¥ë¥ȥ¤¥󥹥ȡ¼¥ë¤ˤÏ´ޤá¤ʤ¤¤³¤Ȥ¬ - Apache ¥°¥롼¥פǷèÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£¤³¤ì¤ϡ¢suEXEC - ¤ÎÀßÄê¤ˤϴÉÍý¼Ԥξܺ٤ˤ錄¤뿵½ŤÊÃí°դ¬ɬÍפÀ¤«¤é¤Ǥ¹¡£ - suEXEC ¤ÎÍ͡¹¤ÊÀßÄê¤ˤĤ¤¤Ƹ¡Ƥ¤¬½ª¤ï¤ì¤С¢´ÉÍý¼ԤÏ suEXEC - ¤òÄ̾ï¤Υ¤¥󥹥ȡ¼¥ëÊýˡ¤ǥ¤¥󥹥ȡ¼¥뤹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤ì¤é¤ÎÀßÄêÃͤϡ¢suEXEC - µ¡ǽ¤λÈÍÑÃæ¤˥·¥¹¥ƥॻ¥­¥å¥ê¥ƥ£¤òŬÀڤËÊݤĤ¿¤á¤ˡ¢ - ´ÉÍý¼Ԥˤè¤äƿµ½Ť˷èÄꤵ¤ì»ØÄꤵ¤ì¤뤳¤Ȥ¬ɬÍפǤ¹¡£ - ¤³¤ξܺ٤ʼê½ç¤ˤè¤ꡢApache ¥°¥롼¥פϡ¢suEXEC - ¤Υ¤¥󥹥ȡ¼¥ë¤ˤĤ¤¤ơ¢Ãí°տ¼¤¯½½ʬ¤˸¡Ƥ¤·¤Ƥ½¤ì¤ò»ÈÍѤ¹¤뤳¤Ȥò - ·èÄꤷ¤¿¾ì¹ç¤˸¤äƤ¤¤¿¤À¤­¤¿¤¤¤ȹͤ¨¤Ƥ¤¤ޤ¹¡£ -

    - -

    ¤½¤ì¤Ǥâ¿ʤߤޤ¹¤«? ¤è¤í¤·¤¤¡£¤Ǥϡ¢Àè¤ؿʤߤޤ·¤礦!

    -
    top
    -
    -

    suEXEC ¥»¥­¥å¥ê¥ƥ£¥â¥ǥë

    - -

    suEXEC ¤ÎÀßÄê¤ȥ¤¥󥹥ȡ¼¥ë¤ò»Ϥá¤ëÁ°¤ˡ¢ - ¤ޤº¼ÂÁõ¤·¤褦¤Ȥ·¤Ƥ¤¤륻¥­¥å¥ê¥ƥ£¥â¥ǥë¤ˤĤ¤¤ÆÏÀ¤¸¤Ƥª¤­¤ޤ¹¡£ - ¤½¤ì¤ˤϡ¢suEXEC ¤ÎÆâÉô¤ǹԤʤï¤ì¤Ƥ¤¤뤳¤ȡ¢ - ¥·¥¹¥ƥà¤Υ»¥­¥å¥ê¥ƥ£¤òÊݾڤ¹¤뤿¤á¤˷ٹ𤵤ì¤뤳¤Ȥò - ¤褯Íý²򤷤Ƥª¤¤¤¿Êý¤¬¤褤¤Ǥ·¤礦¡£

    - -

    suEXEC ¤ϡ¢Apache web - ¥µ¡¼¥Ф«¤é¸ƤӽФµ¤ì¤ë setuid ¤µ¤줿 "wrapper" - ¥ץí¥°¥é¥ब´ðËܤȤʤäƤ¤¤ޤ¹¡£À߷פ·¤¿ CGI¡¢¤ޤ¿¤Ï SSI - ¥ץí¥°¥é¥à¤ؤÎ HTTP ¥ꥯ¥¨¥¹¥Ȥ¬¤¢¤ë¤ȡ¢¤³¤Î wrapper - ¤¬¸ƤӽФµ¤ì¤ޤ¹¡£¤³¤Τ褦¤ʥꥯ¥¨¥¹¥Ȥ¬¤¢¤ë¤ȡ¢Apache - ¤Ϥ½¤Υץí¥°¥é¥ब¼¹Ԥµ¤ì¤ëºݤΥץí¥°¥é¥à̾¤ȥ桼¥¶ ID ¤ȥ°¥롼¥× - ID ¤ò»ØÄꤷ¤Æ suEXEC wrapper ¤ò¼¹Ԥ·¤ޤ¹¡£ -

    - -

    ¤½¤줫¤顢wrapper ¤ÏÀ®¸ù¤ޤ¿¤ϼºÇԤò·èÄꤹ¤뤿¤á - °ʲ¼¤νèÍý¤ò¹Ԥʤ¤¤ޤ¹¡£¤³¤ì¤é¤ξõÂ֤Τ¦¤Á°ì¤ĤǤ⼺ÇԤ·¤¿¾ì¹硢 - ¥ץí¥°¥é¥à¤ϼºÇԤò¥í¥°¤˵­Ͽ¤·¤ƥ¨¥顼¤ǽªλ¤·¤ޤ¹¡£ - ¤½¤¦¤Ǥʤ±¤ì¤С¢¸å¤νèÍý¤¬³¤±¤é¤ì¤ޤ¹¡£

    - -
      -
    1. - wrapper - ¤ò¼¹Ԥ·¤Ƥ¤¤ë¥桼¥¶¤Ϥ³¤Υ·¥¹¥ƥà¤ÎÀµÅö¤ʥ桼¥¶¤«? - -

      - ¤³¤ì¤ϡ¢wrapper ¤ò¼¹Ԥ·¤Ƥ¤¤ë¥桼¥¶¤¬ - ËÜÅö¤˥·¥¹¥ƥà¤ÎÍøÍѼԤǤ¢¤뤳¤ȤòÊݾڤ¹¤뤿¤á¤Ǥ¹¡£ -

      -
    2. - - -
    3. - wrapper ¤¬ŬÀڤʿô¤ΰú¿ô¤ǸƤӽФµ¤줿¤«? - - -

      - wrapper ¤ÏŬÀڤʿô¤ΰú¿ô¤¬Ϳ¤¨¤é¤줿¾ì¹ç¤ˤΤ߼¹Ԥµ¤ì¤ޤ¹¡£ - ŬÀڤʰú¿ô¤Υե©¡¼¥ޥåȤÏ Apache Web ¥µ¡¼¥Ф˲ò¼ᤵ¤ì¤ޤ¹¡£ - ŬÀڤʿô¤ΰú¿ô¤ò¼õ¤±¼è¤é¤ʤ±¤ì¤С¢¹¶·â¤򤵤줿¤« - ¤¢¤ʤ¿¤Î Apache ¥Х¤¥ʥê¤Î suEXEC ¤ÎÉôʬ¤¬ - ¤ɤ³¤«¤ª¤«¤·¤¤²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£ -

      -
    4. - -
    5. - ¤³¤ÎÀµÅö¤ʥ桼¥¶¤Ï wrapper - ¤μ¹Ԥòµö²Ĥµ¤ì¤Ƥ¤¤뤫? - -

      - ¤³¤Υ桼¥¶¤Ï wrapper ¼¹Ԥòµö²Ĥµ¤줿¥桼¥¶¤Ǥ¹¤«? - ¤¿¤À°ì¿ͤΥ桼¥¶ (Apache ¥桼¥¶) ¤À¤±¤¬¡¢ - ¤³¤Υץí¥°¥é¥à¤μ¹Ԥòµö²Ĥµ¤ì¤ޤ¹¡£ -

      -
    6. - -
    7. - ÂоݤÎ CGI, SSI ¥ץí¥°¥é¥ब°ÂÁ´¤Ǥʤ¤³¬Áؤλ²¾Ȥ򤷤Ƥ¤¤뤫? - - -

      - ÂоݤÎ CGI, SSI ¥ץí¥°¥é¥ब '/' ¤«¤é»Ϥޤ롢¤ޤ¿¤Ï - '..' ¤ˤè¤뻲¾Ȥò¹ԤʤäƤ¤¤ޤ¹¤«? ¤³¤ì¤é¤ϵö²Ĥµ¤ì¤ޤ»¤ó¡£ - ÂоݤΥץí¥°¥é¥à¤Ï suEXEC ¤Υɥ­¥å¥á¥ó¥ȥ롼¥È - (²¼µ­¤Î --with-suexec-docroot=DIR ¤򻲾È) - Æâ¤Ë¸ºߤ·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ -

      -
    8. - -
    9. - ÂоݤȤʤë¥桼¥¶̾¤ÏÀµÅö¤ʤâ¤Τ«? - -

      - ÂоݤȤʤë¥桼¥¶̾¤Ï¸ºߤ·¤Ƥ¤¤ޤ¹¤«? -

      -
    10. - -
    11. - ÂоݤȤʤ륰¥롼¥×̾¤ÏÀµÅö¤ʤâ¤Τ«? - -

      - ÂоݤȤʤ륰¥롼¥×̾¤Ï¸ºߤ·¤Ƥ¤¤ޤ¹¤«? -

      -
    12. - -
    13. - ÌÜŪ¤Υ桼¥¶¤ϥ¹¡¼¥ѡ¼¥桼¥¶¤ǤϤʤ¤¤«? - - -

      - º£¤ΤȤ³¤í¡¢suEXEC ¤Ï root ¤ˤè¤ë CGI/SSI - ¥ץí¥°¥é¥à¤μ¹Ԥòµö²Ĥ·¤Ƥ¤¤ޤ»¤ó¡£ -

      -
    14. - -
    15. - ÂоݤȤʤë¥桼¥¶ ID ¤ϡ¢ºǾ®¤Î ID - Èֹæ¤è¤ê¤âÂ礭¤¤¤«? - -

      - ºǾ®¥桼¥¶ ID Èֹæ¤ÏÀßÄê»þ¤˻ØÄꤵ¤ì¤ޤ¹¡£¤³¤ì¤ϡ¢ - CGI/SSI ¥ץí¥°¥é¥à¼¹Ԥòµö²Ĥµ¤ì¤ë¥桼¥¶ ID - ¤ΤȤꤦ¤ëºǾ®ÃͤǤ¹¡£¤³¤ì¤Ï - "system" ÍѤΥ¢¥«¥¦¥ó¥ȤòÊĤá½Ф¹¤ΤËͭ¸ú¤Ǥ¹¡£ -

      -
    16. - -
    17. - ÂоݤȤʤ륰¥롼¥פϥ¹¡¼¥ѡ¼¥桼¥¶¤Υ°¥롼¥פǤÏ - ¤ʤ¤¤«? - -

      - º£¤ΤȤ³¤í¡¢suEXEC ¤Ï 'root' ¥°¥롼¥פˤè¤ë CGI/SSI - ¥ץí¥°¥é¥à¤μ¹Ԥòµö²Ĥ·¤Ƥ¤¤ޤ»¤ó¡£ -

      -
    18. - -
    19. - ÂоݤȤʤ륰¥롼¥× ID ¤ϺǾ®¤Î ID - Èֹæ¤è¤ê¤âÂ礭¤¤¤«? - -

      - ºǾ®¥°¥롼¥× ID Èֹæ¤ÏÀßÄê»þ¤˻ØÄꤵ¤ì¤ޤ¹¡£¤³¤ì¤ϡ¢ - CGI/SSI ¥ץí¥°¥é¥à¼¹Ԥòµö²Ĥµ¤ì¤륰¥롼¥× - ID ¤ΤȤꤦ¤ëºǾ®ÃͤǤ¹¡£ - ¤³¤ì¤Ï "system" ÍѤΥ°¥롼¥פòÊĤá½Ф¹¤ΤËͭ¸ú¤Ǥ¹¡£ -

      -
    20. - -
    21. - wrapper ¤¬Àµ¾ï¤ËÂоݤȤʤë¥桼¥¶¤ȥ°¥롼¥פˤʤì¤뤫? - - -

      - ¤³¤³¤ǡ¢setuid ¤È setgid - ¤ε¯ư¤ˤè¤ê¥ץí¥°¥é¥à¤ÏÂоݤȤʤë¥桼¥¶¤ȥ°¥롼¥פˤʤê¤ޤ¹¡£ - ¥°¥롼¥ץ¢¥¯¥»¥¹¥ꥹ¥Ȥϡ¢ - ¥桼¥¶¤¬°¤·¤Ƥ¤¤뤹¤٤ƤΥ°¥롼¥פǽé´ü²½¤µ¤ì¤ޤ¹¡£ -

      -
    22. - -
    23. - CGI/SSI ¥ץí¥°¥é¥बÃ֤«¤ì¤Ƥ¤¤ë¥ǥ£¥쥯¥ȥê¤˰Üư - (change directory) ¤Ǥ­¤뤫? - -

      - ¥ǥ£¥쥯¥ȥ꤬¸ºߤ·¤ʤ¤¤ʤ顢¤½¤Υե¡¥¤¥ë¤â¸ºߤ·¤ʤ¤¤«¤⤷¤ì¤ޤ»¤ó¡£ - ¥ǥ£¥쥯¥ȥê¤˰Üư¤Ǥ­¤ʤ¤¤ΤǤ¢¤ì¤С¢¤ª¤½¤餯¸ºߤ⤷¤ʤ¤¤Ǥ·¤礦¡£ -

      -
    24. - -
    25. - ¥ǥ£¥쥯¥ȥ꤬ Apache ¤Υɥ­¥å¥á¥ó¥ȥĥ꡼Æâ¤ˤ¢¤뤫? - - -

      - ¥ꥯ¥¨¥¹¥Ȥ¬¥µ¡¼¥ÐÆâ¤Τâ¤ΤǤ¢¤ì¤С¢ - Í׵ᤵ¤줿¥ǥ£¥쥯¥ȥ꤬ suEXEC ¤Υɥ­¥å¥á¥ó¥ȥ롼¥ÈÇ۲¼¤ˤ¢¤ê¤ޤ¹¤«? - ¥ꥯ¥¨¥¹¥Ȥ¬ UserDir ¤Τâ¤ΤǤ¢¤ì¤С¢Í׵ᤵ¤줿¥ǥ£¥쥯¥ȥ꤬ suEXEC - ¤Υ桼¥¶¤Υɥ­¥å¥á¥ó¥ȥ롼¥ÈÇ۲¼¤ˤ¢¤ê¤ޤ¹¤«? - (suEXEC ÀßÄꥪ¥ץ·¥ç¥ó »²¾È) -

      -
    26. - -
    27. - ¥ǥ£¥쥯¥ȥê¤ò¾¤Υ桼¥¶¤¬½񤭹þ¤á¤ë¤褦¤ˤʤäÆ - ¤¤¤ʤ¤¤«? - -

      - ¥ǥ£¥쥯¥ȥê¤ò¾¥桼¥¶¤˳«Êü¤·¤ʤ¤¤褦¤ˤ·¤ޤ¹¡£ - ½êͭ¥桼¥¶¤À¤±¤¬¤³¤Υǥ£¥쥯¥ȥê¤ÎÆâÍƤò²þÊѤǤ­¤ë¤褦¤ˤ·¤ޤ¹¡£ -

      -
    28. - - -
    29. - ÂоݤȤʤë CGI/SSI ¥ץí¥°¥é¥à¤Ï¸ºߤ¹¤뤫? - -

      - ¸ºߤ·¤ʤ±¤ì¤м¹ԤǤ­¤ޤ»¤ó¡£ -

      -
    30. - -
    31. - ÂоݤȤʤë CGI/SSI ¥ץí¥°¥é¥à¥ե¡¥¤¥뤬¾¥¢¥«¥¦¥ó¥Ȥ«¤é - ½񤭹þ¤á¤ë¤褦¤ˤʤ䯤¤¤ʤ¤¤«? - -

      - ½êͭ¼԰ʳ°¤ˤÏ CGI/SSI ¥ץí¥°¥é¥à¤òÊѹ¹¤¹¤븢¸¤ÏͿ¤¨¤é¤ì¤ޤ»¤ó¡£ -

      -
    32. - - -
    33. - ÂоݤȤʤë CGI/SSI ¥ץí¥°¥é¥ब setuid ¤ޤ¿¤Ï setgid - ¤µ¤ì¤Æ¤¤¤ʤ¤¤«? - -

      - UID/GID ¤òºÆÅÙÊѹ¹¤·¤ƤΥץí¥°¥é¥à¼¹ԤϤ·¤ޤ»¤ó -

      -
    34. - - -
    35. - ÂоݤȤʤë¥桼¥¶/¥°¥롼¥פ¬¥ץí¥°¥é¥à¤Î - ¥桼¥¶/¥°¥롼¥פÈƱ¤¸¤«? - -

      - ¥桼¥¶¤¬¤½¤Υե¡¥¤¥ë¤νêͭ¼ԤǤ¹¤«? -

      -
    36. - -
    37. - °ÂÁ´¤Êưºî¤òÊݾڤ¹¤뤿¤á¤δĶ­Êѿô¥¯¥ꥢ¤¬²Äǽ¤«? - - -

      - suEXEC ¤ϡ¢°ÂÁ´¤ʴĶ­Êѿô¤Υꥹ¥È - (¤³¤ì¤é¤ÏÀßÄê»þ¤˺îÀ®¤µ¤ì¤ޤ¹) Æâ¤ÎÊѿô¤Ȥ·¤ÆÅϤµ¤ì¤ë°ÂÁ´¤Ê - PATH Êѿô (ÀßÄê»þ¤˻ØÄꤵ¤ì¤ޤ¹) ¤òÀßÄꤹ¤뤳¤Ȥǡ¢ - ¥ץí¥»¥¹¤δĶ­Êѿô¤򥯥ꥢ¤·¤ޤ¹¡£ -

      -
    38. - - -
    39. - ÂоݤȤʤë CGI/SSI ¥ץí¥°¥é¥à¤ò exec ¤·¤Ƽ¹ԤǤ­¤뤫? - - -

      - ¤³¤³¤Ç suEXEC ¤¬½ªλ¤·¡¢ÂоݤȤʤë¥ץí¥°¥é¥ब³«»Ϥµ¤ì¤ޤ¹¡£ -

      -
    40. -
    - -

    ¤³¤³¤ޤǤ¬ suEXEC ¤Î wrapper - ¤ˤª¤±¤륻¥­¥å¥ê¥ƥ£¥â¥ǥë¤Îɸ½àŪ¤Êưºî¤Ǥ¹¡£¤⤦¾¯¤·¸·½ŤË - CGI/SSI À߷פˤĤ¤¤Ƥο·¤·¤¤À©¸¤䵬Äê¤ò¼è¤êÆþ¤ì¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¤¬¡¢ - suEXEC ¤ϥ»¥­¥å¥ê¥ƥ£¤ËÃí°դ·¤ƿµ½Ť˾¯¤·¤º¤ij«ȯ¤µ¤ì¤Ƥ­¤ޤ·¤¿¡£ -

    - -

    ¤³¤Υ»¥­¥å¥ê¥ƥ£¥â¥ǥë¤òÍѤ¤¤Æ - ¥µ¡¼¥ÐÀßÄê»þ¤ˤɤΤ褦¤˵ö¤¹¤³¤ȤòÀ©¸¤¹¤뤫¡¢¤ޤ¿¡¢suEXEC - ¤òŬÀڤËÀßÄꤹ¤ë¤ȤɤΤ褦¤ʥ»¥­¥å¥ê¥ƥ£¾å¤δí¸±¤òÈ򤱤é¤ì¤뤫¤Ë - ´ؤ¹¤ë¤è¤ê¾ܤ·¤¤¾ðÊó¤ˤĤ¤¤Ƥϡ¢"¤Ȥ«¤²¤ËÃí°Õ" - (Beware the Jabberwock) ¤ξϤ򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£ -

    -
    top
    -
    -

    suEXEC - ¤ÎÀßÄê¤ȥ¤¥󥹥ȡ¼¥ë

    - -

    ¤³¤³¤«¤é³ڤ·¤¯¤ʤê¤ޤ¹¡£

    - -

    suEXEC - ÀßÄꥪ¥ץ·¥ç¥ó
    -

    - -
    -
    --enable-suexec
    - -
    ¤³¤Υª¥ץ·¥ç¥ó¤ϡ¢¥ǥե©¥ë¥ȤǤϥ¤¥󥹥ȡ¼¥뤵¤줺¡¢ - ͭ¸ú¤ˤϤʤé¤ʤ¤ suEXEC µ¡ǽ¤òͭ¸ú¤ˤ·¤ޤ¹¡£ - suEXEC ¤ò»Ȥ¦¤褦¤Ë APACI ¤ËÍ׵᤹¤ë¤ˤϡ¢--enable-suexec - ¥ª¥ץ·¥ç¥ó¤ˤ¢¤碌¤ƾ¯¤ʤ¯¤Ȥâ°ì¤ĤÏ --with-suexec-xxxxx - ¥ª¥ץ·¥ç¥󤬻ØÄꤵ¤ì¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£
    - -
    --with-suexec-bin=PATH
    - -
    ¥»¥­¥å¥ê¥ƥ£¾å¤ÎÍýͳ¤ˤè¤ꡢsuexec ¥Х¤¥ʥê¤Υѥ¹¤ϥµ¡¼¥ФË - ¥ϡ¼¥ɥ³¡¼¥ɤµ¤ì¤Ƥ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£¥ǥե©¥ë¥ȤΥѥ¹¤ò - ÊѤ¨¤¿¤¤¤Ȥ­¤Ϥ³¤Υª¥ץ·¥ç¥ó¤ò»ȤäƤ¯¤À¤µ¤¤¡£Î㤨¤Ð¡¢ - --with-suexec-bin=/usr/sbin/suexec ¤Τ褦¤ˡ£
    - -
    --with-suexec-caller=UID
    - -
    Apache ¤òÄ̾ïưº¤»¤ë¥桼¥¶̾¤ò»ØÄꤷ¤ޤ¹¡£ - ¤³¤Υ桼¥¶¤À¤±¤¬ suexec ¤μ¹Ԥòµö²Ĥµ¤줿¥桼¥¶¤ˤʤê¤ޤ¹¡£
    - -
    --with-suexec-userdir=DIR
    - -
    suEXEC ¤¬¥¢¥¯¥»¥¹¤òµö¤µ¤ì¤ë¥桼¥¶¥ۡ¼¥à¥ǥ£¥쥯¥ȥêÇ۲¼¤Î - ¥µ¥֥ǥ£¥쥯¥ȥê¤ò»ØÄꤷ¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ȥê°ʲ¼¤ÎÁ´¼¹ԥե¡¥¤¥ë¤ϡ¢"°ÂÁ´¤Ê"¥ץí¥°¥é¥à¤ˤʤë¤褦¡¢ - suEXEC ¤¬¤½¤Υ桼¥¶¤Ȥ·¤Ƽ¹ԤǤ­¤ë¤褦¤ˤ·¤ޤ¹¡£ - "ñ½ã¤Ê" UserDir ¥ǥ£¥쥯¥ƥ£¥֤ò»ȤäƤ¤¤ë¾ì¹ç - (¤¹¤ʤï¤Á "*" ¤ò´ޤޤʤ¤¤â¤Î)¡¢¤³¤ì¤ÈƱ¤¸ÃͤòÀßÄꤹ¤٤­¤Ǥ¹¡£ - Userdir ¥ǥ£¥쥯¥ƥ£¥֤¬¤½¤Υ桼¥¶¤Υѥ¹¥¥ɥե¡¥¤¥ëÆâ¤Î - ¥ۡ¼¥à¥ǥ£¥쥯¥ȥê¤ÈƱ¤¸¾ì½ê¤ò»ؤ·¤Ƥ¤¤ʤ±¤ì¤С¢ - suEXEC ¤ÏŬÀڤËưº¤ޤ»¤󡣥ǥե©¥ë¥ȤÏ "public_html" ¤Ǥ¹¡£ -
    - ³Æ UserDir ¤¬°ۤʤ俲¾Áۥۥ¹¥ȤòÀßÄꤷ¤Ƥ¤¤ë¾ì¹硢 - ¤½¤ì¤é¤òÁ´¤ưì¤Ĥοƥǥ£¥쥯¥ȥê¤˴ޤá¤ơ¢ - ¤½¤οƥǥ£¥쥯¥ȥê¤Î̾Á°¤򤳤³¤ǻØÄꤹ¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤Τ褦¤˻ØÄꤵ¤ì¤ʤ±¤ì¤Ð "~userdir" cgi - ¤ؤΥꥯ¥¨¥¹¥Ȥ¬ưº¤ޤ»¤ó¡£
    - -
    --with-suexec-docroot=DIR
    - -
    Apache ¤Υɥ­¥å¥á¥ó¥ȥ롼¥ȤòÀßÄꤷ¤ޤ¹¡£¤³¤줬 suEXEC - ¤Îưºî¤ǻÈÍѤ¹¤ëͣ°ì¤Υǥ£¥쥯¥ȥ곬Áؤˤʤê¤ޤ¹ (UserDir - ¤λØÄê¤ÏÊÌ)¡£¥ǥե©¥ë¥ȤǤÏ --datedir ¤Ë "/htdocs" - ¤Ȥ¤¤¦¥µ¥ե£¥å¯¥¹¤ò¤Ĥ±¤¿¤â¤ΤǤ¹¡£ - "--datadir=/home/apache" ¤Ȥ·¤ÆÀßÄꤹ¤ë¤ȡ¢ - suEXEC wrapper ¤ˤȤäÆ "/home/apache/htdocs" - ¤¬¥ɥ­¥å¥á¥ó¥ȥ롼¥ȤȤ·¤ƻȤï¤ì¤ޤ¹¡£
    - -
    --with-suexec-uidmin=UID
    - -
    suEXEC ¤ÎÂоݥ桼¥¶¤Ȥ·¤Ƶö¤µ¤ì¤ë UID ¤κǾ®Ãͤò»ØÄꤷ¤ޤ¹¡£ - ÂçÄñ¤Υ·¥¹¥ƥà¤ǤÏ 500 ¤« 100 ¤¬°ìÈÌŪ¤Ǥ¹¡£ - ¥ǥե©¥ë¥ÈÃͤÏ 100 ¤Ǥ¹¡£
    - -
    --with-suexec-gidmin=GID
    - -
    suEXEC ¤ÎÂоݥ°¥롼¥פȤ·¤Ƶö¤µ¤ì¤ë GID - ¤κǾ®Ãͤò»ØÄꤷ¤ޤ¹¡£ÂçÄñ¤Υ·¥¹¥ƥà¤ǤÏ 100 ¤¬°ìÈÌŪ¤ʤΤǡ¢ - ¥ǥե©¥ë¥ÈÃͤȤ·¤Ƥâ 100 ¤¬»Ȥï¤ì¤Ƥ¤¤ޤ¹¡£
    - -
    --with-suexec-logfile=FILE
    - -
    suEXEC ¤νèÍý¤ȥ¨¥顼¤¬µ­Ͽ¤µ¤ì¤ë¥ե¡¥¤¥ë̾¤ò»ØÄꤷ¤ޤ¹¡£ - (´ƺº¤ä¥ǥХå°ÌÜŪ¤ËͭÍÑ) - ¥ǥե©¥ë¥ȤǤϥí¥°¥ե¡¥¤¥ë¤Ï "suexec_log" ¤Ȥ¤¤¦̾Á°¤ǡ¢ - ɸ½à¤Υí¥°¥ե¡¥¤¥ë¥ǥ£¥쥯¥ȥê (--logfiledir) ¤ËÃ֤«¤ì¤ޤ¹¡£ -
    - -
    --with-suexec-safepath=PATH
    - -
    CGI ¼¹ԥե¡¥¤¥ë¤ËÅϤµ¤ì¤ë°ÂÁ´¤Ê PATH ´Ķ­Êѿô¤Ǥ¹¡£ - ¥ǥե©¥ë¥ÈÃͤÏ "/usr/local/bin:/usr/bin:/bin" ¤Ǥ¹¡£ -
    -
    - -

    suEXEC wrapper - ¤Υ³¥ó¥ѥ¤¥ë¤ȥ¤¥󥹥ȡ¼¥ë
    - --enable-suexec ¥ª¥ץ·¥ç¥ó¤Ç suEXEC µ¡ǽ¤òͭ¸ú¤ˤ¹¤ë¤ȡ¢ - "make" ¥³¥ޥó¥ɤò¼¹Ԥ·¤¿»þ¤Ë suexec ¤ΥХ¤¥ʥê (Apache ¼«ÂΤâ) - ¤¬¼«ưŪ¤˺îÀ®¤µ¤ì¤ޤ¹¡£ -
    - ¤¹¤٤Ƥι½À®Í×ÁǤ¬ºîÀ®¤µ¤ì¤ë¤ȡ¢¤½¤ì¤é¤Υ¤¥󥹥ȡ¼¥ë¤ˤÏ - make install ¥³¥ޥó¥ɤ¬¼¹ԤǤ­¤ޤ¹¡£¥Х¤¥ʥꥤ¥᡼¥¸¤Î suexec - ¤Ï --sbindir ¥ª¥ץ·¥ç¥ó¤ǻØÄꤵ¤줿¥ǥ£¥쥯¥ȥê¤˥¤¥󥹥ȡ¼¥뤵¤ì¤ޤ¹¡£ - ¥ǥե©¥ë¥Ȥξì½ê¤Ï "/usr/local/apache/sbin/suexec" ¤Ǥ¹¡£
    - ¥¤¥󥹥ȡ¼¥ë»þ¤ˤÏ root - ¸¢¸¤¬ɬÍפʤΤÇÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£wrapper ¤¬¥桼¥¶ ID - ¤òÀßÄꤹ¤뤿¤á¤ˡ¢½êͭ¼Ô root - ¤ǤΥ»¥åȥ桼¥¶ ID - ¥ӥåȤ򤽤Υե¡¥¤¥ë¤Υ⡼¥ɤËÀßÄꤷ¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ -

    - -

    °ÂÁ´¤ʥѡ¼¥ߥå·¥ç¥ó¤òÀßÄꤹ¤ë
    - suEXEC ¥é¥åѡ¼¤ϡ¢--with-suexec-caller configure - ¥ª¥ץ·¥ç¥ó¤ǻØÄꤷ¤¿Àµ¤·¤¤¥桼¥¶¤ǵ¯ư¤µ¤ì¤Ƥ¤¤뤳¤Ȥò³Îǧ¤·¤ޤ¹¤¬¡¢ - ¥·¥¹¥ƥà¾å¤Ǥ³¤ΥÁ¥§¥å¯¤¬¹Ԥʤï¤ì¤ëÁ°¤ˡ¢ - suEXEC ¤¬¸Ƥ֥·¥¹¥ƥà¤ä¥饤¥֥é¥꤬Àȼå¤Ǥ¢¤ë²ÄǽÀ­¤ϻĤê¤ޤ¹¡£Âй³ºö¤Ȥ·¤ơ¢ - °ìÈ̤ËÎɤ¤½¬´·¤Ȥ⤵¤줤¤ޤ¹¤¬¡¢ - ¥ե¡¥¤¥륷¥¹¥ƥà¥ѡ¼¥ߥå·¥ç¥ó¤ò»ȤäÆ - Apache ¤μ¹Իþ¤Υ°¥롼¥פΤߤ¬ suEXEC ¤ò¼¹ԤǤ­¤ë¤褦¤Ë - ¤¹¤ë¤Τ¬Îɤ¤¤Ǥ·¤礦¡£

    - -

    ¤¿¤Ȥ¨¤С¢¼¡¤Τ褦¤˥µ¡¼¥Ф¬ÀßÄꤵ¤ì¤Ƥ¤¤¿¤Ȥ·¤ޤ¹¡£

    - -

    - User www
    - Group webgroup
    -

    - -

    suexec ¤¬ "/usr/local/apache2/sbin/suexec" - ¤˥¤¥󥹥ȡ¼¥뤵¤ì¤Ƥ¤¤¿¾ì¹硢¼¡¤Τ褦¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    - chgrp webgroup /usr/local/apache2/bin/suexec
    - chmod 4750 /usr/local/apache2/bin/suexec
    -

    - -

    ¤³¤ì¤Ç Apache ¤¬¼¹Ԥµ¤ì¤륰¥롼¥פΤߤ¬ - suEXEC ¥é¥åѡ¼¤ò¼¹ԤǤ­¤ë¤Ȥ¤¤¦¤³¤Ȥò - ³ξڤ·¤ޤ¹¡£

    -
    top
    -
    -

    suEXEC - ¤Îͭ¸ú²½¤È̵¸ú²½

    - -

    µ¯ư»þ¤ˡ¢Apache ¤Ï --sbindir - ¥ª¥ץ·¥ç¥ó¤ÇÀßÄꤵ¤줿¥ǥ£¥쥯¥ȥê¤Ç - suexec ¤òõ¤·¤ޤ¹ - (¥ǥե©¥ë¥ȤÏ "/usr/local/apache/sbin/suexec") ¡£ - ŬÀڤËÀßÄꤵ¤줿 suEXEC ¤¬¤ߤĤ«¤ë¤ȡ¢ - ¥¨¥顼¥í¥°¤˰ʲ¼¤Υá¥å»¡¼¥¸¤¬½ÐÎϤµ¤ì¤ޤ¹¡£

    - -

    - [notice] suEXEC mechanism enabled (wrapper: /path/to/suexec) -

    - -

    ¥µ¡¼¥е¯ư»þ¤ˤ³¤Υá¥å»¡¼¥¸¤¬½Фʤ¤¾ì¹硢 - ÂçÄñ¤ϥµ¡¼¥Ф¬ÁÛÄꤷ¤¿¾ì½ê¤Ç wrapper ¥ץí¥°¥é¥ब¸«¤Ĥ«¤é¤ʤ«¤ä¿¤«¡¢ - setuid root ¤Ȥ·¤ƥ¤¥󥹥ȡ¼¥뤵¤ì¤Ƥ¤¤ʤ¤¤«¤Ǥ¹¡£

    - -

    suEXEC ¤λÅÁȤߤò»ÈÍѤ¹¤ë¤Τ¬½é¤á¤Ƥǡ¢Apache ¤¬´û¤ËưºîÃæ¤Ǥ¢¤ì¤С¢ - Apache ¤ò kill ¤·¤ơ¢ºƵ¯ư¤·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£HUP ¥·¥°¥ʥë¤ä - USR1 ¥·¥°¥ʥë¤ˤè¤ëñ½ã¤ʺƵ¯ư¤ǤÏÉԽ½ʬ¤Ǥ¹¡£

    -

    suEXEC ¤ò̵¸ú¤ˤ¹¤ë¾ì¹ç¤ϡ¢suexec ¥ե¡¥¤¥ë¤òºï½ü¤·¤Ƥ«¤é - Apache ¤ò kill ¤·¤ƺƵ¯ư¤·¤ޤ¹¡£ -

    -
    top
    -
    -

    suEXEC ¤λÈÍÑ

    - -

    CGI ¥ץí¥°¥é¥à¤ؤΥꥯ¥¨¥¹¥Ȥ¬ suEXEC ¥é¥åѡ¼¤ò¸Ƥ֤Τϡ¢ - SuexecUserGroup ¥ǥ£¥쥯¥ƥ£¥֤ò - ´ޤà¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤؤΥꥯ¥¨¥¹¥Ȥ«¡¢mod_userdir ¤ˤè¤ê - ½èÍý¤µ¤줿¥ꥯ¥¨¥¹¥Ȥξì¹ç¤˸¤ê¤ޤ¹¡£

    - -

    ²¾Áۥۥ¹¥È:
    - suEXEC wrapper ¤λȤ¤Êý¤Ȥ·¤ơ¢ - VirtualHost ÀßÄê¤ǤÎ - SuexecUserGroup - ¥ǥ£¥쥯¥ƥ£¥֤òÄ̤·¤¿¤â¤Τ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ò¥ᥤ¥󥵡¼¥ФΥ桼¥¶ ID - ¤Ȱۤʤë¤â¤Τˤ¹¤ë¤ȡ¢CGI ¥꥽¡¼¥¹¤ؤΤ¹¤٤ƤΥꥯ¥¨¥¹¥Ȥϡ¢¤½¤Î - <VirtualHost> ¤ǻØÄꤵ¤줿 User ¤È - Group ¤Ȥ·¤Ƽ¹Ԥµ¤ì¤ޤ¹¡£<VirtualHost> - ¤Ǥ³¤Υǥ£¥쥯¥ƥ£¥֤¬»ØÄꤵ¤ì¤Ƥ¤¤ʤ¤¾ì¹硢 - ¥ᥤ¥󥵡¼¥ФΥ桼¥¶ ID ¤¬ÁÛÄꤵ¤ì¤ޤ¹¡£

    - -

    ¥桼¥¶¥ǥ£¥쥯¥ȥê:
    - mod_userdir ¤ˤè¤ê½èÍý¤µ¤줿¥ꥯ¥¨¥¹¥ȤÏ - ¥ꥯ¥¨¥¹¥Ȥµ¤줿¥桼¥¶¥ǥ£¥쥯¥ȥê¤Υ桼¥¶ ID ¤Ç CGI ¥ץí¥°¥é¥à¤ò - ¼¹Ԥ¹¤뤿¤á¤Ë suEXEC ¥é¥åѡ¼¤ò¸ƤӤޤ¹¡£ - ¤³¤ε¡ǽ¤òưº¤»¤뤿¤á¤ËɬÍפʤ³¤Ȥϡ¢CGI - ¤򤽤Υ桼¥¶¤Ǽ¹ԤǤ­¤뤳¤ȡ¢¤½¤Υ¹¥¯¥ê¥ץȤ¬¾嵭¤Î¥»¥­¥å¥ê¥ƥ£¸¡ºº¤ò¥ѥ¹¤Ǥ­¤뤳¤ȤǤ¹¡£ - ¥³¥ó¥ѥ¤¥ë - »þ¤Υª¥ץ·¥ç¥ó --with-suexec-userdir ¤⻲¾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    top
    -
    -

    suEXEC ¤ΥǥХå°

    - -

    suEXEC wrapper ¤ϡ¢¾嵭¤ǽҤ٤¿ --with-suexec-logfile - ¥ª¥ץ·¥ç¥ó¤ǻØÄꤵ¤줿¥ե¡¥¤¥ë¤˥í¥°¾ðÊó¤òµ­Ͽ¤·¤ޤ¹¡£ - wrapper ¤òŬÀڤËÀßÄꡢ¥¤¥󥹥ȡ¼¥ë¤Ǥ­¤Ƥ¤¤ë¤Ȼפ¦¾ì¹硢 - ¤ɤ³¤Ç̤äƤ¤¤뤫¸«¤褦¤Ȥ¹¤ë¤ʤ餳¤Υí¥°¤ȥµ¡¼¥ФÎ - ¥¨¥顼¥í¥°¤򸫤ë¤Ȥ褤¤Ǥ·¤礦¡£

    -
    top
    -
    -

    ¤Ȥ«¤²¤ËÃí°Õ: ·ٹð¤ȻöÎã

    - -

    Ãí°Õ! - ¤³¤ξϤϴ°Á´¤ǤϤ¢¤ê¤ޤ»¤󡣤³¤ξϤκǿ·²þÄûÈǤˤĤ¤¤Ƥϡ¢ - Apache ¥°¥롼¥פÎ - ¥ª¥ó¥饤¥ó¥ɥ­¥å¥á¥ó¥ÈÈǤ򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£ -

    - -

    ¥µ¡¼¥ФÎÀßÄê¤ËÀ©¸¤ò¤⤦¤±¤ë wrapper ¤ˤĤ¤¤ơ¢ - ¤¤¤¯¤Ĥ«¶½̣¿¼¤¤ÅÀ¤¬¤¢¤ê¤ޤ¹¡£suEXEC ¤˴ؤ¹¤ë "¥Х°" - ¤òÊó¹𤹤ëÁ°¤ˤ³¤ì¤é¤ò³Îǧ¤·¤Ƥ¯¤À¤µ¤¤¡£

    - -
      -
    • suEXEC ¤ζ½̣¿¼¤¤ÅÀ
    • - -
    • ³¬Áع½¤¤ÎÀ©¸Â - - -

      - ¥»¥­¥å¥ê¥ƥ£¤ȸúΨ¤ÎÍýͳ¤«¤顢suEXEC ¤ÎÁ´¤ƤΥꥯ¥¨¥¹¥ȤÏ - ²¾Áۥۥ¹¥ȤؤΥꥯ¥¨¥¹¥Ȥˤª¤±¤ëºǾå°̤Υɥ­¥å¥á¥ó¥ȥ롼¥ÈÆ⤫¡¢ - ¥桼¥¶¥ǥ£¥쥯¥ȥê¤ؤΥꥯ¥¨¥¹¥Ȥˤª¤±¤ë¸ġ¹¤Υ桼¥¶¤κǾå°̤Î - ¥ɥ­¥å¥á¥ó¥ȥ롼¥ÈÆâ¤˻Ĥé¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - Î㤨¤С¢»ͤĤβ¾Áۥۥ¹¥ȤòÀßÄꤷ¤Ƥ¤¤ë¾ì¹硢 - ²¾Áۥۥ¹¥ȤÎ suEXEC ¤ËͭÍø¤ʤ褦¤ˡ¢¥ᥤ¥ó¤Î Apache - ¥ɥ­¥å¥á¥ó¥ȳ¬Áؤγ°¦¤ËÁ´¤Ƥβ¾Áۥۥ¹¥ȤΥɥ­¥å¥á¥ó¥ȥ롼¥Ȥò - ¹½Ãۤ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£(Îã¤ϸåÆüµ­ºÜ) -

      -
    • - -
    • suEXEC ¤Î PATH ´Ķ­Êѿô - - -

      - ¤³¤ì¤òÊѹ¹¤¹¤ë¤Τϴí¸±¤Ǥ¹¡£¤³¤λØÄê¤˴ޤޤì¤ë³ƥѥ¹¤¬ - ¿®Íê¤Ǥ­¤ë - ¥ǥ£¥쥯¥ȥê¤Ǥ¢¤뤳¤Ȥò³Îǧ¤·¤Ƥ¯¤À¤µ¤¤¡£ - À¤³¦¤«¤é¤Υ¢¥¯¥»¥¹¤ˤè¤ꡢ狼¤¬¥ۥ¹¥Ⱦå¤ǥȥí¥¤¤ÎÌÚÇÏ - ¤ò¼¹ԤǤ­¤ë¤褦¤ˤϤ·¤¿¤¯¤ʤ¤¤Ǥ·¤礦¡£ -

      -
    • - -
    • suEXEC ¥³¡¼¥ɤβþ¤ - - -

      - ·«¤êÊ֤·¤ޤ¹¤¬¡¢²¿¤ò¤ä¤í¤¦¤Ȥ·¤Ƥ¤¤뤫Çİ®¤»¤º¤ˤ³¤ì¤ò¤ä¤ë¤È - Â礭¤ÊÌäÂê¤ò°ú¤­µ¯¤³¤·¤«¤ͤޤ»¤ó¡£ - ²Äǽ¤ʸ¤êÈ򤱤Ƥ¯¤À¤µ¤¤¡£ -

      -
    • -
    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/suexec.html.ja.utf8 b/docs/manual/suexec.html.ja.utf8 new file mode 100644 index 00000000000..4315d2baec5 --- /dev/null +++ b/docs/manual/suexec.html.ja.utf8 @@ -0,0 +1,645 @@ + + + + + +suEXEC サポート - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    suEXEC サポート

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    suEXEC + 機能により、Apache ユーザは Web サーバを実行しているユーザ ID とは + 異なるユーザ ID で CGI プログラムや SSI + プログラムを実行することができます。CGI プログラムまたは SSI + プログラムを実行する場合、通常は web サーバと同じユーザで実行されます。 +

    + +

    適切に使用すると、この機能によりユーザが個別の CGI + や SSI プログラムを開発し実行することで生じるセキュリティ上の危険を、 + かなり減らすことができます。しかし、suEXEC の設定が不適切だと、 + 多くの問題が生じ、あなたのコンピュータに新しいセキュリティホールを + 作ってしまう可能性があります。あなたが setuid root + されたプログラムと、それらから生じるセキュリティ上の問題の管理に + 詳しくないようなら、suEXEC の使用を検討しないように強く推奨します。 +

    +
    + +
    top
    +
    +

    始める前に

    + +

    この文書の先頭に飛ぶ前に、Apache + グループとこの文書での仮定を知っておくべきでしょう。 +

    + +

    第 1 に、あなたが setuid と + setgid 操作が可能な UNIX + 由来のオペレーティングシステムを使っていることを想定しています。 + これは、すべてのコマンド例にあてはまります。 + その他のプラットホームでは、もし suEXEC + がサポートされていたとしても設定は異なるかもしれません。

    + +

    第 2 に、あなたが使用中のコンピュータの + セキュリティに関する基本的な概念と、それらの管理について詳しいことを + 想定しています。これは、setuid/setgid + 操作、あなたのシステム上でのその操作による様々な効果、 + セキュリティレベルについてあなたが理解しているということを含みます。 +

    + +

    第 3 に、改造されていない suEXEC + コードの使用を想定しています。suEXEC のコードは、 + 多くのベータテスタだけでなく、開発者によっても注意深く精査され + テストされています。それらの注意により、簡潔で信頼できる安全な + コードの基盤が保証されます。このコードを改変することで、 + 予期されない問題や新しいセキュリティ上の危険が生じることがあります。 + セキュリティプログラミングの詳細に通じていて、 + 今後の検討のために成果を Apache + グループと共有しようと思うのでなければ、suEXEC + コードは変えないことを 強く推奨します。

    + +

    第 4 に、これが最後ですが、suEXEC を Apache + のデフォルトインストールには含めないことが + Apache グループで決定されています。これは、suEXEC + の設定には管理者の詳細にわたる慎重な注意が必要だからです。 + suEXEC の様々な設定について検討が終われば、管理者は suEXEC + を通常のインストール方法でインストールすることができます。 + これらの設定値は、suEXEC + 機能の使用中にシステムセキュリティを適切に保つために、 + 管理者によって慎重に決定され指定されることが必要です。 + この詳細な手順により、Apache グループは、suEXEC + のインストールについて、注意深く十分に検討してそれを使用することを + 決定した場合に限っていただきたいと考えています。 +

    + +

    それでも進みますか? よろしい。では、先へ進みましょう!

    +
    top
    +
    +

    suEXEC セキュリティモデル

    + +

    suEXEC の設定とインストールを始める前に、 + まず実装しようとしているセキュリティモデルについて論じておきます。 + それには、suEXEC の内部で行なわれていること、 + システムのセキュリティを保証するために警告されることを + よく理解しておいた方がよいでしょう。

    + +

    suEXEC は、Apache web + サーバから呼び出される setuid された "wrapper" + プログラムが基本となっています。設計した CGI、または SSI + プログラムへの HTTP リクエストがあると、この wrapper + が呼び出されます。このようなリクエストがあると、Apache + はそのプログラムが実行される際のプログラム名とユーザ ID とグループ + ID を指定して suEXEC wrapper を実行します。 +

    + +

    それから、wrapper は成功または失敗を決定するため + 以下の処理を行ないます。これらの状態のうち一つでも失敗した場合、 + プログラムは失敗をログに記録してエラーで終了します。 + そうでなければ、後の処理が続けられます。

    + +
      +
    1. + wrapper + を実行しているユーザはこのシステムの正当なユーザか? + +

      + これは、wrapper を実行しているユーザが + 本当にシステムの利用者であることを保証するためです。 +

      +
    2. + + +
    3. + wrapper が適切な数の引数で呼び出されたか? + + +

      + wrapper は適切な数の引数が与えられた場合にのみ実行されます。 + 適切な引数のフォーマットは Apache Web サーバに解釈されます。 + 適切な数の引数を受け取らなければ、攻撃をされたか + あなたの Apache バイナリの suEXEC の部分が + どこかおかしい可能性があります。 +

      +
    4. + +
    5. + この正当なユーザは wrapper + の実行を許可されているか? + +

      + このユーザは wrapper 実行を許可されたユーザですか? + ただ一人のユーザ (Apache ユーザ) だけが、 + このプログラムの実行を許可されます。 +

      +
    6. + +
    7. + 対象の CGI, SSI プログラムが安全でない階層の参照をしているか? + + +

      + 対象の CGI, SSI プログラムが '/' から始まる、または + '..' による参照を行なっていますか? これらは許可されません。 + 対象のプログラムは suEXEC のドキュメントルート + (下記の --with-suexec-docroot=DIR を参照) + 内に存在しなければなりません。 +

      +
    8. + +
    9. + 対象となるユーザ名は正当なものか? + +

      + 対象となるユーザ名は存在していますか? +

      +
    10. + +
    11. + 対象となるグループ名は正当なものか? + +

      + 対象となるグループ名は存在していますか? +

      +
    12. + +
    13. + 目的のユーザはスーパーユーザではないか? + + +

      + 今のところ、suEXEC は root による CGI/SSI + プログラムの実行を許可していません。 +

      +
    14. + +
    15. + 対象となるユーザ ID は、最小の ID + 番号よりも大きいか? + +

      + 最小ユーザ ID 番号は設定時に指定されます。これは、 + CGI/SSI プログラム実行を許可されるユーザ ID + のとりうる最小値です。これは + "system" 用のアカウントを閉め出すのに有効です。 +

      +
    16. + +
    17. + 対象となるグループはスーパーユーザのグループでは + ないか? + +

      + 今のところ、suEXEC は 'root' グループによる CGI/SSI + プログラムの実行を許可していません。 +

      +
    18. + +
    19. + 対象となるグループ ID は最小の ID + 番号よりも大きいか? + +

      + 最小グループ ID 番号は設定時に指定されます。これは、 + CGI/SSI プログラム実行を許可されるグループ + ID のとりうる最小値です。 + これは "system" 用のグループを閉め出すのに有効です。 +

      +
    20. + +
    21. + wrapper が正常に対象となるユーザとグループになれるか? + + +

      + ここで、setuid と setgid + の起動によりプログラムは対象となるユーザとグループになります。 + グループアクセスリストは、 + ユーザが属しているすべてのグループで初期化されます。 +

      +
    22. + +
    23. + CGI/SSI プログラムが置かれているディレクトリに移動 + (change directory) できるか? + +

      + ディレクトリが存在しないなら、そのファイルも存在しないかもしれません。 + ディレクトリに移動できないのであれば、おそらく存在もしないでしょう。 +

      +
    24. + +
    25. + ディレクトリが Apache のドキュメントツリー内にあるか? + + +

      + リクエストがサーバ内のものであれば、 + 要求されたディレクトリが suEXEC のドキュメントルート配下にありますか? + リクエストが UserDir のものであれば、要求されたディレクトリが suEXEC + のユーザのドキュメントルート配下にありますか? + (suEXEC 設定オプション 参照) +

      +
    26. + +
    27. + ディレクトリを他のユーザが書き込めるようになって + いないか? + +

      + ディレクトリを他ユーザに開放しないようにします。 + 所有ユーザだけがこのディレクトリの内容を改変できるようにします。 +

      +
    28. + + +
    29. + 対象となる CGI/SSI プログラムは存在するか? + +

      + 存在しなければ実行できません。 +

      +
    30. + +
    31. + 対象となる CGI/SSI プログラムファイルが他アカウントから + 書き込めるようになっていないか? + +

      + 所有者以外には CGI/SSI プログラムを変更する権限は与えられません。 +

      +
    32. + + +
    33. + 対象となる CGI/SSI プログラムが setuid または setgid + されていないか? + +

      + UID/GID を再度変更してのプログラム実行はしません +

      +
    34. + + +
    35. + 対象となるユーザ/グループがプログラムの + ユーザ/グループと同じか? + +

      + ユーザがそのファイルの所有者ですか? +

      +
    36. + +
    37. + 安全な動作を保証するための環境変数クリアが可能か? + + +

      + suEXEC は、安全な環境変数のリスト + (これらは設定時に作成されます) 内の変数として渡される安全な + PATH 変数 (設定時に指定されます) を設定することで、 + プロセスの環境変数をクリアします。 +

      +
    38. + + +
    39. + 対象となる CGI/SSI プログラムを exec して実行できるか? + + +

      + ここで suEXEC が終了し、対象となるプログラムが開始されます。 +

      +
    40. +
    + +

    ここまでが suEXEC の wrapper + におけるセキュリティモデルの標準的な動作です。もう少し厳重に + CGI/SSI 設計についての新しい制限や規定を取り入れることもできますが、 + suEXEC はセキュリティに注意して慎重に少しずつ開発されてきました。 +

    + +

    このセキュリティモデルを用いて + サーバ設定時にどのように許すことを制限するか、また、suEXEC + を適切に設定するとどのようなセキュリティ上の危険を避けられるかに + 関するより詳しい情報については、"とかげに注意" + (Beware the Jabberwock) の章を参照してください。 +

    +
    top
    +
    +

    suEXEC + の設定とインストール

    + +

    ここから楽しくなります。

    + +

    suEXEC + 設定オプション
    +

    + +
    +
    --enable-suexec
    + +
    このオプションは、デフォルトではインストールされず、 + 有効にはならない suEXEC 機能を有効にします。 + suEXEC を使うように APACI に要求するには、--enable-suexec + オプションにあわせて少なくとも一つは --with-suexec-xxxxx + オプションが指定されなければなりません。
    + +
    --with-suexec-bin=PATH
    + +
    セキュリティ上の理由により、suexec バイナリのパスはサーバに + ハードコードされている必要があります。デフォルトのパスを + 変えたいときはこのオプションを使ってください。例えば、 + --with-suexec-bin=/usr/sbin/suexec のように。
    + +
    --with-suexec-caller=UID
    + +
    Apache を通常動作させるユーザ名を指定します。 + このユーザだけが suexec の実行を許可されたユーザになります。
    + +
    --with-suexec-userdir=DIR
    + +
    suEXEC がアクセスを許されるユーザホームディレクトリ配下の + サブディレクトリを指定します。 + このディレクトリ以下の全実行ファイルは、"安全な"プログラムになるよう、 + suEXEC がそのユーザとして実行できるようにします。 + "単純な" UserDir ディレクティブを使っている場合 + (すなわち "*" を含まないもの)、これと同じ値を設定すべきです。 + Userdir ディレクティブがそのユーザのパスワードファイル内の + ホームディレクトリと同じ場所を指していなければ、 + suEXEC は適切に動作しません。デフォルトは "public_html" です。 +
    + 各 UserDir が異なった仮想ホストを設定している場合、 + それらを全て一つの親ディレクトリに含めて、 + その親ディレクトリの名前をここで指定する必要があります。 + このように指定されなければ "~userdir" cgi + へのリクエストが動作しません。
    + +
    --with-suexec-docroot=DIR
    + +
    Apache のドキュメントルートを設定します。これが suEXEC + の動作で使用する唯一のディレクトリ階層になります (UserDir + の指定は別)。デフォルトでは --datedir に "/htdocs" + というサフィックスをつけたものです。 + "--datadir=/home/apache" として設定すると、 + suEXEC wrapper にとって "/home/apache/htdocs" + がドキュメントルートとして使われます。
    + +
    --with-suexec-uidmin=UID
    + +
    suEXEC の対象ユーザとして許される UID の最小値を指定します。 + 大抵のシステムでは 500 か 100 が一般的です。 + デフォルト値は 100 です。
    + +
    --with-suexec-gidmin=GID
    + +
    suEXEC の対象グループとして許される GID + の最小値を指定します。大抵のシステムでは 100 が一般的なので、 + デフォルト値としても 100 が使われています。
    + +
    --with-suexec-logfile=FILE
    + +
    suEXEC の処理とエラーが記録されるファイル名を指定します。 + (監査やデバッグ目的に有用) + デフォルトではログファイルは "suexec_log" という名前で、 + 標準のログファイルディレクトリ (--logfiledir) に置かれます。 +
    + +
    --with-suexec-safepath=PATH
    + +
    CGI 実行ファイルに渡される安全な PATH 環境変数です。 + デフォルト値は "/usr/local/bin:/usr/bin:/bin" です。 +
    +
    + +

    suEXEC wrapper + のコンパイルとインストール
    + --enable-suexec オプションで suEXEC 機能を有効にすると、 + "make" コマンドを実行した時に suexec のバイナリ (Apache 自体も) + が自動的に作成されます。 +
    + すべての構成要素が作成されると、それらのインストールには + make install コマンドが実行できます。バイナリイメージの suexec + は --sbindir オプションで指定されたディレクトリにインストールされます。 + デフォルトの場所は "/usr/local/apache/sbin/suexec" です。
    + インストール時には root + 権限が必要なので注意してください。wrapper がユーザ ID + を設定するために、所有者 root + でのセットユーザ ID + ビットをそのファイルのモードに設定しなければなりません。 +

    + +

    安全なパーミッションを設定する
    + suEXEC ラッパーは、--with-suexec-caller configure + オプションで指定した正しいユーザで起動されていることを確認しますが、 + システム上でこのチェックが行なわれる前に、 + suEXEC が呼ぶシステムやライブラリが脆弱である可能性は残ります。対抗策として、 + 一般に良い習慣ともされていますが、 + ファイルシステムパーミッションを使って + Apache の実行時のグループのみが suEXEC を実行できるように + するのが良いでしょう。

    + +

    たとえば、次のようにサーバが設定されていたとします。

    + +

    + User www
    + Group webgroup
    +

    + +

    suexec が "/usr/local/apache2/sbin/suexec" + にインストールされていた場合、次のように設定する必要があります。

    + +

    + chgrp webgroup /usr/local/apache2/bin/suexec
    + chmod 4750 /usr/local/apache2/bin/suexec
    +

    + +

    これで Apache が実行されるグループのみが + suEXEC ラッパーを実行できるということを + 確証します。

    +
    top
    +
    +

    suEXEC + の有効化と無効化

    + +

    起動時に、Apache は --sbindir + オプションで設定されたディレクトリで + suexec を探します + (デフォルトは "/usr/local/apache/sbin/suexec") 。 + 適切に設定された suEXEC がみつかると、 + エラーログに以下のメッセージが出力されます。

    + +

    + [notice] suEXEC mechanism enabled (wrapper: /path/to/suexec) +

    + +

    サーバ起動時にこのメッセージが出ない場合、 + 大抵はサーバが想定した場所で wrapper プログラムが見つからなかったか、 + setuid root としてインストールされていないかです。

    + +

    suEXEC の仕組みを使用するのが初めてで、Apache が既に動作中であれば、 + Apache を kill して、再起動しなければなりません。HUP シグナルや + USR1 シグナルによる単純な再起動では不十分です。

    +

    suEXEC を無効にする場合は、suexec ファイルを削除してから + Apache を kill して再起動します。 +

    +
    top
    +
    +

    suEXEC の使用

    + +

    CGI プログラムへのリクエストが suEXEC ラッパーを呼ぶのは、 + SuexecUserGroup ディレクティブを + 含むバーチャルホストへのリクエストか、mod_userdir により + 処理されたリクエストの場合に限ります。

    + +

    仮想ホスト:
    + suEXEC wrapper の使い方として、 + VirtualHost 設定での + SuexecUserGroup + ディレクティブを通したものがあります。 + このディレクティブをメインサーバのユーザ ID + と異なるものにすると、CGI リソースへのすべてのリクエストは、その + <VirtualHost> で指定された User と + Group として実行されます。<VirtualHost> + でこのディレクティブが指定されていない場合、 + メインサーバのユーザ ID が想定されます。

    + +

    ユーザディレクトリ:
    + mod_userdir により処理されたリクエストは + リクエストされたユーザディレクトリのユーザ ID で CGI プログラムを + 実行するために suEXEC ラッパーを呼びます。 + この機能を動作させるために必要なことは、CGI + をそのユーザで実行できること、そのスクリプトが上記のセキュリティ検査をパスできることです。 + コンパイル + 時のオプション --with-suexec-userdir も参照してください。

    +
    top
    +
    +

    suEXEC のデバッグ

    + +

    suEXEC wrapper は、上記で述べた --with-suexec-logfile + オプションで指定されたファイルにログ情報を記録します。 + wrapper を適切に設定、インストールできていると思う場合、 + どこで迷っているか見ようとするならこのログとサーバの + エラーログを見るとよいでしょう。

    +
    top
    +
    +

    とかげに注意: 警告と事例

    + +

    注意! + この章は完全ではありません。この章の最新改訂版については、 + Apache グループの + オンラインドキュメント版を参照してください。 +

    + +

    サーバの設定に制限をもうける wrapper について、 + いくつか興味深い点があります。suEXEC に関する "バグ" + を報告する前にこれらを確認してください。

    + +
      +
    • suEXEC の興味深い点
    • + +
    • 階層構造の制限 + + +

      + セキュリティと効率の理由から、suEXEC の全てのリクエストは + 仮想ホストへのリクエストにおける最上位のドキュメントルート内か、 + ユーザディレクトリへのリクエストにおける個々のユーザの最上位の + ドキュメントルート内に残らなければなりません。 + 例えば、四つの仮想ホストを設定している場合、 + 仮想ホストの suEXEC に有利なように、メインの Apache + ドキュメント階層の外側に全ての仮想ホストのドキュメントルートを + 構築する必要があります。(例は後日記載) +

      +
    • + +
    • suEXEC の PATH 環境変数 + + +

      + これを変更するのは危険です。この指定に含まれる各パスが + 信頼できる + ディレクトリであることを確認してください。 + 世界からのアクセスにより、誰かがホスト上でトロイの木馬 + を実行できるようにはしたくないでしょう。 +

      +
    • + +
    • suEXEC コードの改造 + + +

      + 繰り返しますが、何をやろうとしているか把握せずにこれをやると + 大きな問題を引き起こしかねません。 + 可能な限り避けてください。 +

      +
    • +
    +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/suexec.html.ko.euc-kr b/docs/manual/suexec.html.ko.euc-kr index 59934221319..4254749900e 100644 --- a/docs/manual/suexec.html.ko.euc-kr +++ b/docs/manual/suexec.html.ko.euc-kr @@ -1,26 +1,35 @@ - -suEXEC Áö¿ø - Apache HTTP Server +suEXEC Áö¿ø - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    suEXEC Áö¿ø

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -44,7 +53,7 @@
  • suEXEC »ç¿ëÇϱâ
  • suEXEC µð¹ö±ëÇϱâ
  • ´ٽà Çѹø Á¶½ÉÇ϶ó: °æ°í¿Í ¿¹Á¦
  • -
    +
    top

    ½ÃÀÛÇϱâ Àü¿¡

    @@ -478,7 +487,7 @@

    ´ٽà Çѹø Á¶½ÉÇ϶ó: °æ°í¿Í ¿¹Á¦

    ÁÖÀÇ! ÀÌ ¼½¼ÇÀº ¿ÏÀüÇÏÁö ¾ÊÀ» ¼ö ÀִÙ. - ¾ÆÆÄġ±׷ìÀÇ ¿¶óÀÎ + ¾ÆÆÄġ±׷ìÀÇ ¿¶óÀÎ ¹®¼­¿¡¼­ ÀÌ ¹®¼­ÀÇ ÃֽÅÆÇÀ» Âü°íÇ϶ó.

    wrapper°¡ ¼­¹ö ¼³Á¤À» Á¦¾àÇϴ ¸Áö Èï¹̷οî Á¡ÀÌ ÀִÙ. @@ -526,9 +535,32 @@

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/suexec.html.tr.utf8 b/docs/manual/suexec.html.tr.utf8 new file mode 100644 index 00000000000..eae76933bff --- /dev/null +++ b/docs/manual/suexec.html.tr.utf8 @@ -0,0 +1,586 @@ + + + + + +SuEXEC Desteği - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    SuEXEC Desteği

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + +

    SuEXEC özelliği, Apache kullanıcılarına + CGI ve SSI programlarını sunucunun + aidiyetinde çalıştığı kullanıcıdan farklı bir kullanıcının aidiyetinde + çalıştırma olanağı verir. Normalde, CGI ve + SSI programlarını çalıştıranla sunucuyu çalıştıran + aynı kullanıcıdır.

    + +

    Gerektiği gibi kullanıldığında bu özellik, kullanıcılara + CGI ve SSI programlarını çalıştırma + ve geliştirmeye izin vermekle ortaya çıkan güvenlik risklerini azaltır. + Bununla birlikte, suEXEC gerektiği gibi + yapılandırılmadığı takdirde bazı sorunlara yol açabilir ve bilgisayar + güvenliğinizde yeni delikler ortaya çıkmasına sebep olabilir. + Güvenlikle ilgili mevcut sorunlarla başa çıkmada ve setuid + root programları yönetmekte bilgi ve deneyim sahibi değilseniz + suEXEC kullanmayı kesinlikle düşünmemenizi + öneririz.

    +
    + +
    top
    +
    +

    Başlamadan önce

    + +

    Belgeye balıklama dalmadan önce, Apache Grubu ve bu belge ile ilgili + kabuller hakkında bilgi sahibi olmalısınız.

    + +

    Öncelikle, üzerinde setuid va setgid + işlemlerinin yapılabildiği Unix türevi bir işletim sistemi + kullandığınızı varsayıyoruz. Tüm komut örnekleri buna dayanarak + verilmiştir. Bu desteğe sahip başka platformlar varsa onlardaki + yapılandırma burada anlattığımız yapılandırmadan farklı olabilir.

    + +

    İkinci olarak, bilgisayarınızın güvenliği ve yönetimi ile ilgili bazı + temel kavramları bildiğinizi kabul ediyoruz. Buna + setuid/setgid işlemlerinin sisteminiz ve güvenlik + seviyesi üzerindeki etkilerini bilmek dahildir.

    + +

    Üçüncü olarak, suEXEC kodunun + değiştirilmemiş bir sürümünü kullandığınızı + varsayıyoruz. Tüm suEXEC kodu, geliştiricilerin yanında sayısız beta + kullanıcısı tarafından dikkatle incelenmiş ve denenmiştir. Kodların hem + basit hem de sağlam bir şekilde güvenli olması için gerekli tüm + önlemler alınmıştır. Bu kodun değiştirilmesi beklenmedik sorunlara ve + yeni güvenlik risklerine yol açabilir. Özellikle güvenlikle ilgili + programlarda deneyimli değilseniz suEXEC kodunda kesinlikle bir + değişiklik yapmamalısınız. Değişiklik yaparsanız kodlarınızı gözden + geçirmek ve tartışmak üzere Apache Grubu ile paylaşmanızı öneririz.

    + +

    Dördüncü ve son olarak, Apache Grubunun suEXEC’i öntanımlı Apache + kurulumunun bir parçası yapmama kararından bahsetmek gerekir. Bunun + sonucu olarak, suEXEC yapılandırması sistem yöneticisinin ayrıntılı bir + incelemesini gerektirir. Gerekli incelemeden sonra yönetici tarafından + suEXEC yapılandırma seçeneklerine karar verilip, normal yollardan + sisteme kurulumu yapılır. Bu seçeneklerin belirlenmesi, suEXEC + işlevselliğinin kullanımı sırasında sistem güvenliğini gerektiği gibi + sağlamak için yönetici tarafından dikkatle saptanmayı gerektirir. Bu + sürecin ayrıntılarının yöneticiye bırakılma sebebi, Apache Grubunun + suEXEC kurulumunu, suEXEC’i dikkatle kullanacak yeterliliğe sahip + olanlarla sınırlama beklentisidir.

    + +

    Hala bizimle misiniz? Evet mi? Pekala, o halde devam!

    +
    top
    +
    +

    SuEXEC Güvenlik Modeli

    + +

    SuEXEC yapılandırması ve kurulumuna girişmeden önce biraz da + gerçekleşmesini istediğiniz güvenlik modelinin ayrıntıları üzerinde + duralım. Böylece, suEXEC’in içinde olup bitenleri ve sisteminizin + güvenliği için alınacak önlemleri daha iyi anlayabilirsiniz.

    + +

    suEXEC işlevselliği, Apache HTTP Sunucusu tarafından + gerektiği takdirde artalanda çalıştırılan bir setuid programa dayanır. + Bu program, bir CGI veya SSI betiğine bir HTTP isteği yapıldığı zaman, + bu betiği, yöneticinin ana sunucunun aidiyetinde çalıştığı kullanıcıdan + farklı olarak seçtiği bir kullanıcının aidiyetinde çalıştırmak için + çağrılır. Böyle bir istek geldiğinde, Apache artalandaki setuid + programına, HTTP isteği yapılan programın ismiyle beraber aidiyetinde + çalışacağı kullanıcı ve grup kimliklerini de aktarır.

    + +

    Artalanda çalıştırılan setuid program başarıyı ve başarısızlığı + aşağıdaki süreci izleyerek saptar. Bunlardan herhangi biri başarısız + olursa program başarısızlık durumunu günlüğe kaydeder ve bir hata + vererek çıkar. Aksi takdirde çalışmaya devam eder.

    + +
      +
    1. + Setuid programı çalıştıran kullanıcı sistemin geçerli + kullanıcılarından biri mi? + +

      Bu, setuid programı çalıştıran kullanıcının + sistemin gerçek bir kullanıcısı olduğunudan emin olunmasını sağlar. +

      +
    2. + +
    3. + Setuid program yeterli sayıda argümanla çağrılmış mı? + + +

      Apache’nin artalanda çağırdığı setuid program + ancak yeterli sayıda argüman sağlandığı takdirde çalışacaktır. + Argümanların sayısını ve sırasını Apache HTTP sunucusu bilir. Eğer + setuid program yeterli sayıda argümanla çağrılmamışsa ya + kendisinde bir değişiklik yapılmıştır ya da kurulu Apache + çalıştırılabilirinin suEXEC ile ilgili kısmında yanlış giden bir + şeyler vardır.

      +
    4. + +
    5. + Bu geçerli kullanıcının bu setuid programı çalıştırma + yetkisi var mı? + +

      Sadece tek bir kullanıcı (Apache’nin aidiyetinde + çalıştığı kullanıcı) bu programı çalıştırmaya yetkilidir.

      +
    6. + +
    7. + Hedef CGI veya SSI programı hiyerarşik olarak güvenliği + bozacak bir dosya yolu üzerinde mi? + +

      Hedef CGI veya SSI programının dosya yolu '/' veya + '..' ile başlıyor mu? Buna izin verilmez. Hedef CGI veya SSI + programı suEXEC’in belge kök dizininde yer almalıdır (aşağıda + --with-suexec-docroot=DİZİN seçeneğine + bakınız).

      +
    8. + +
    9. + Hedef kullanıcı ismi geçerli mi? + +

      Hedef kullanıcı mevcut mu?

      +
    10. + +
    11. + Hedef grup ismi geçerli mi? + +

      Hedef grup mevcut mu?

      +
    12. + +
    13. + Hedef kullanıcı root değil, değil mi? + +

      Mevcut durumda, root kullanıcısının + CGI/SSI programlarını çalıştırmasına izin verilmemektedir.

      +
    14. + +
    15. + Hedef kullanıcı kimliği asgari kullanıcı numarasından + BÜYÜK mü? + +

      Asgari kullanıcı numarası yapılandırma sırasında + belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin + verilecek olası en düşük kullanıcı numarasını belirlemeniz mümkün + kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için + yararlıdır.

      +
    16. + +
    17. + Hedef grup root değil, değil mi? + +

      root grubunun CGI/SSI + programlarını çalıştırmasına izin verilmez.

      +
    18. + +
    19. + Hedef grup numarası asgari grup numarasından + BÜYÜK mü? + +

      Asgari grup numarası yapılandırma sırasında + belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin + verilecek olası en düşük grup numarasını belirlemeniz mümkün + kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için + yararlıdır.

      +
    20. + +
    21. + Apache’nin artalanda çağırdığı setuid program hedef + kullanıcı ve grubun aidiyetine geçebildi mi? + +

      Bu noktadan itibaren program setuid ve setgid + çağrıları üzerinden hedef kullanıcı ve grubun aidiyetine geçer. + Erişim grubu listesi de ayrıca kullanıcının üyesi olduğu tüm + gruplara genişletilir.

      +
    22. + +
    23. + Hedef CGI/SSI programının bulunduğu dizine geçebildik mi? + + +

      Dizin mevcut değilse dosyaları da içeremez. Hedef + dizine geçemiyorsak bu, dizin mevcut olmadığından olabilir.

      +
    24. + +
    25. + Hedef dizin Apache için izin verilen yerlerden biri mi? + + +

      İstek sunucunun normal bir bölümü için yapılmış + olsa da istenen dizin acaba suEXEC’in belge kök dizini altında mı? + Yani, istenen dizin, suEXEC’in aidiyetinde çalıştığı kullanıcının + ev dizini altında bulunan, UserDir ile belirtilen dizinin altında mı? (suEXEC’in yapılandırma seçeneklerine + bakınız).

      +
    26. + +
    27. + Hedef dizin başkaları tarafından yazılabilen bir dizin değil, + değil mi? + +

      Başkaları da yazabilsin diye bir dizin açmıyoruz; + dizin içeriğini sadece sahibi değiştirebilmelidir.

      +
    28. + +
    29. + Hedef CGI/SSI programı mevcut mu? + +

      Mevcut değilse çalıştırılamaz.

      +
    30. + +
    31. + Hedef CGI/SSI program dosyasına başkaları tarafından + yazılamıyor, değil mi? + +

      Hedef CGI/SSI programının dosyasına sahibinden + başka kimsenin bir şeyler yazmasını istemeyiz.

      +
    32. + +
    33. + Hedef CGI/SSI program setuid veya setgid değil, + değil mi? + +

      UID/GID‘i tekrar değiştirecek programlar + çalıştırmayı istemeyiz.

      +
    34. + +
    35. + Hedef kullanıcı/grup, programın kullanıcı/grubu ile aynı mı? + + +

      Hedef kullanıcı dosyanın sahibi mi?

      +
    36. + +
    37. + İşlemlerin güvenle yapılabilmesi için süreç ortamını + başarıyla temizleyebildik mi? + +

      suEXEC, sürecin çalışacağı ortama güvenli bir + program çalıştırma yolu sağlamaktan başka, yapılandırma sırasında + oluşturulan güvenli ortam değişkenleri listesinde isimleri bulunan + ortam değişkenlerinden başkasını aktarmayacaktır.

      +
    38. + +
    39. + Hedef CGI/SSI programı haline gelip çalışabildik mi? + +

      Burası suEXEC’in bitip CGI/SSI programının + başladığı yerdir.

      +
    40. +
    + +

    Bu süreç suEXEC güvenlik modelinin standart işlemlerini oluşturur. + Biraz zorlayıcı ve CGI/SSI tasarımına yeni kurallar ve sınırlamalar + getiriyor olsa da düşünülen güvenliği adım adım sağlayacak şekilde + tasarlanmıştır.

    + +

    Düzgün bir suEXEC yapılandırmasının hangi güvenlik risklerinden + kurtulmayı sağladığı ve bu güvenlik modelinin sunucu yapılandırmasıyla + ilgili sorumluluklarınızı nasıl sınırlayabildiği hakkında daha + ayrıntılı bilgi edinmek için bu belgenin "Uyarılar ve Örnekler" bölümüne bakınız.

    +
    top
    +
    +

    suEXEC’in Yapılandırılması ve Kurulumu

    + +

    Eğlence başlıyor.

    + +

    suEXEC yapılandırma seçenekleri
    +

    + +
    +
    --enable-suexec
    + +
    Bu seçenek, hiçbir zaman öntanımlı olarak kurulmayan ve + etkinleştirilmeyen suEXEC özelliğini etkin kılar. suEXEC özelliğini + kullanma isteğinizi Apache’nin kabul edebilmesi için + --enable-suexec seçeneğinin yanında en azından bir tane + de --with-suexec-xxxxx seçeneği belirtilmiş + olmalıdır.
    + +
    --with-suexec-bin=YOL
    + +
    Güvenlik sebebiyle suexec çalıştırılabilirinin + bulunduğu yer sunucu koduna yazılır. Bu seçenekle öntanımlı yol + değiştirilmiş olur. Örnek:
    + --with-suexec-bin=/usr/sbin/suexec
    + +
    --with-suexec-caller=KULLANICI
    + +
    Normalde Apache’nin aidiyetinde çalıştığı kullanıcıdır. Bu, bu programı + çalıştırmasına izin verilen tek kullanıcıdır.
    + +
    --with-suexec-userdir=DİZİN
    + +

    Kullanıcıların ev dizinleri altında suEXEC’in erişmesine izin + verilen alt dizinin yerini tanımlar. Bu dizin altında suEXEC + kullanıcısı tarafından çalıştırılacak tüm programlar "güvenilir" + olmalıdır. Eğer “basit” bir UserDir yönergesi kullanıyorsanız ( içinde “*” + bulunmayan), bunun aynı dizin olması gerekir. Eğer burada belirtilen + dizin, passwd dosyasında kullanıcı için belirtilmiş + dizinin altında UserDir + yönergesinde belirtilen dizin olmadığı takdirde suEXEC işini + gerektiği gibi yapmayacaktır. Öntanımlı değer + public_html’dir.

    + +

    Eğer, sanal konaklarınızın herbiri farklı UserDir yönergeleri içeriyorsa + burada belirtilecek dizinin üst dizininin hepsinde aynı olması + gerekir. Aksi takdirde, "~kullanıcı" + istekleri düzgün çalışmayacaktır.

    + +
    --with-suexec-docroot=DİZİN
    + +
    Apache için belge kök dizinini belirler. Bu, (UserDir’lardan başka) suEXEC için + kullanılacak tek hiyerarşi olacaktır. Öntanımlı dizin sonuna + "/htdocs" eklenmiş --datadir dizinidir. + Yani, seçeneği "--datadir=/home/apache" olarak + belirtmişseniz suEXEC çalıştırıcısı için belge kök dizini + "/home/apache/htdocs" olur.
    + +
    --with-suexec-uidmin=UID
    + +
    suEXEC kullanıcısının kullanıcı kimliği olarak izin verilen en + düşük değeri belirler. Çoğu sistemde bu ya 500’dür ya da 100; 100 + öntanımlıdır.
    + +
    --with-suexec-gidmin=GID
    + +
    suEXEC kullanıcısının grup kimliği olarak izin verilen en düşük + değeri belirler. Çoğu sistemde bu 100 olup, seçeneğin de öntanımlı + değeridir.
    + +
    --with-suexec-logfile=DOSYA
    + +
    suEXEC hareketlerinin ve hatalarının kaydedileceği günlük + dosyasının adını belirler (denetim ve hata ayıklama için + kullanışlıdır). Öntanımlı günlük dosyası ismi + "suexec_log" olup yeri (--logfiledir + seçeneği ile belirtilen) günlük dosyaları dizinidir.
    + +
    --with-suexec-safepath=YOL
    + +
    CGI çalıştırılabilirlerine aktarılacak güvenilir PATH + ortam değişkeninin değerini tanımlar. + "/usr/local/bin:/usr/bin:/bin" öntanımlıdır.
    +
    + +

    SuEXEC çalıştırıcısının derlenmesi ve kurulumu

    + + +

    SuEXEC özelliğini --enable-suexec seçeneği ile + etkinleştirdiyseniz make komutunu verdiğinizde Apache + ile birlikte suexec çalıştırılabilir dosyası da + derlenecektir.

    + +

    Tüm bileşenler derlendikten sonra make install komutunu + vererek kurulumu tamamlayabilirsiniz. suexec + çalıştırılabilir dosyası --sbindir seçeneği ile + tanımlanan dizine kurulacaktır; öntanımlı yeri + /usr/local/apache2/bin/ dizinidir.

    + +

    Kurulum adımında root yetkisine sahip + olmanız gerektiğini unutmayın. Çalıştırıcıya kullanıcı kimliğinin + atanabilmesi ve dosyanın sahibi olan kullanıcı kimliği ile + çalıştırılabilmesini mümkün kılan bitinin etkin kılınabilmesi için + kurulumun root tarafından yapılması + önemlidir.

    + + +

    Paranoyak yetkilendirme

    + + +

    SuEXEC çalıştırıcısı kendini çalıştıran kullanıcının + configure betiğine + --with-suexec-caller seçeneği ile belirtilen kullanıcı + olup olmadığına bakacaksa da, bu sınamanın da bir sistem veya + kütüphane çağrısı ile istismar edilmiş olma ihtimali gözardı + edilmemelidir. Bunun meydana gelmesini önlemek için ve genelde + yapıldığı gibi dosyanın izinlerini suEXEC çalıştırıcısı sadece Apache + sunucusunun aidiyetinde çalıştığı kullanıcı tarafından çalıştırılacak + şekilde ayarlayınız.

    + +

    Örneğin, sunucunuz şöyle yapılandırılmışsa:

    + +

    + User apache
    + Group apache-grup
    +

    + +

    Ve suexec çalıştırılabilir de + /usr/local/apache2/bin/ dizinine kurulmuşsa şu komutları + vermelisiniz:

    + +

    + chgrp apache-grup /usr/local/apache2/bin/suexec
    + chmod 4750 /usr/local/apache2/bin/suexec
    +

    + +

    Böylece suEXEC çalıştırıcısını Apache’yi çalıştıran grubun + üyelerinden başkasının çalıştıramayacağından emin olabilirsiniz.

    + +
    top
    +
    +

    suEXEC’in etkin kılınması ve iptal edilmesi

    + + +

    Apache başlatıldığı sırada suexec çalıştırıcısı + için --sbindir seçeneği ile tanımlanan dizine bakar + (seçeneğin öntanımlı değeri + /usr/local/apache/sbin/suexec’tir). Apache düzgün + yapılandırılmış bir suEXEC çalıştırıcısı bulduğu takdirde hata + günlüğüne şöyle bir ileti yazacaktır:

    + +

    + [notice] suEXEC mechanism enabled (wrapper: /dosya/yolu/suexec) +

    + +

    Sunucu başlatıldığında bu ileti yazılmazsa sunucu ya çalıştırıcı + programı umduğu yerde bulamamıştır ya da dosyanın setuid biti + root tarafından etkin kılınmamıştır.

    + +

    SuEXEC mekanizmasını etkin kılmak istediğiniz sunucu çalışmaktaysa + sunucuyu önce öldürmeli sonra yeniden başlatmalısınız. Basit bir + HUP veya USR1 sinyali ile yeniden başlamasını + sağlamak yeterli olmayacaktır.

    + +

    SuEXEC mekanizmasını iptal etmek için ise suexec + dosyasını sildikten sonra Apache sunucusunu öldürüp yeniden + başlamalısınız.

    +
    top
    +
    +

    SuEXEC’in kullanımı

    + +

    CGI programlarına yapılan isteklerin suEXEC çalıştırıcısı tarafından + yerine getirilebilmesi için sanal konağın bir SuexecUserGroup yönergesi içermesi veya + isteğin mod_userdir tarafından işleme konulması + gerekir.

    + +

    Sanal Konaklar:
    SuEXEC çalıştırıcısını farklı + bir kullanıcı ile etkin kılmanın tek yolu VirtualHost bölümleri içinde SuexecUserGroup yönergesini + kullanmaktır. Bu yönergede ana sunucuyu çalıştıran kullanıcıdan farklı + bir kullanıcı belirterek ilgili sanal konak üzerinden CGI kaynakları + için yapılan tüm isteklerin belirtilen kullanıcı ve + grup tarafından çalıştırılması sağlanır. Bu yönergeyi + içermeyen sanal konaklar için ana sunucunun kullanıcısı + öntanımlıdır.

    + +

    Kullanıcı dizinleri:
    + mod_userdir tarafından işleme sokulan tüm istekler için + suEXEC çalıştırıcısı istek yapılan kullanıcı dizininin sahibinin + aidiyetinde çalıştırılacaktır. Bu özelliğin çalışması için tek + gereklilik, kullanıcının SuEXEC çalıştırıcısı için etkin kılınmış olması + ve çalıştırıcının yukarıdaki güvenlik sınamalarından + geçebilmesidir. Ayrıca, --with-suexec-userdir derleme seçeneğinin açıklamasına da bakınız.

    +
    top
    +
    +

    SuEXEC ve hata ayıklama

    + +

    SuEXEC çalıştırıcısı yukarıda değinildiği gibi günlük bilgilerini + --with-suexec-logfile seçeneği ile belirtilen dosyaya + yazacaktır. Çalıştırıcıyı doğru yapılandırarak kurduğunuzdan emin olmak + istiyorsanız, yolunda gitmeyen şeyler var mı diye bu günlük dosyasına + bakmayı ihmal etmeyin.

    + +
    top
    +
    +

    Uyarılar ve Örnekler

    + + +

    UYARI! Bu bölüm henüz bitmedi. Bu bölümün son hali + için çevrimiçi + belgelere bakınız.

    + +

    SuEXEC çalıştırıcısından dolayı sunucu ayarlarına bazı sınırlamalar + getiren bir kaç önemli nokta mevcuttur. SuEXEC ile ilgili hata + bildiriminde bulunmadan önce bunlara bir göz atmalısınız.

    + +
      +
    • suEXEC ile ilgili önemli noktalar
    • + +
    • Hiyerarşik sınırlamalar + +

      Güvenlik ve verimlilik adına, tüm suEXEC + isteklerinin sanal konaklar için üst düzey belge kökünün altındaki + dosyalarla, kullanıcı dizinleri için ise üst düzey bireysel belge + köklerinin altındaki dosyalarla sınırlı kalması gerekir. Örneğin, + dört sanal konağınız varsa ve suEXEC çalıştırıcısının + getirilerinden faydalanmak istiyorsanız, sanal konaklarınızın belge + kök dizinlerini ana sunucunun belge kök dizininin altında kalacak + şekilde yapılandırmanız gerekir (örnek yolda).

      +
    • + +
    • SuEXEC'in PATH ortam değişkeni + +

      Bunu değiştirmek tehlikeli olabilir. Bu değişkende + tanımladığınız her yolun güvenli bir dizini işaret + ettiğinden emin olmalısınız. Başkalarının oralarda bir truva atı + çalıştırmasını istemiyorsanız buna çok dikkat ediniz.

      +
    • + +
    • SuEXEC kodunda değişiklik + +

      Gerçekte ne yaptığınızı bilmiyorsanız bu, + büyük bir sorun olabilir. Böyle şeyler yapmaktan + mümkün olduğunca uzak durmalısınız.

      +
    • +
    + +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/suexec.xml b/docs/manual/suexec.xml index 875960dfc29..eed0194d0e4 100644 --- a/docs/manual/suexec.xml +++ b/docs/manual/suexec.xml @@ -4,12 +4,12 @@ + + + + + + + + Support suEXEC + + +

    La fonctionnalité suEXEC permet + l'exécution des programmes CGI et + SSI sous un identifiant utilisateur autre que celui sous + lequel s'exécute le serveur web qui appelle ces programmes. + Normalement, lorsqu'un programme CGI ou SSI est lancé, il + s'exécute sous le même identifiant utilisateur que celui du serveur web qui + l'appelle.

    + +

    Utilisée de manière appropriée, cette fonctionnalité peut + réduire considérablement les risques de sécurité encourus + lorsqu'on autorise les utilisateurs à développer et faire + s'exécuter des programmes CGI ou SSI de leur cru. Cependant, mal + configuré, suEXEC peut causer de nombreux problèmes et même créer + de nouvelles failles dans la sécurité de votre ordinateur. Si + vous n'êtes pas familier avec la gestion des programmes + setuid root et les risques de sécurité qu'ils comportent, + nous vous recommandons vivement de ne pas tenter + d'utiliser suEXEC.

    +
    + +
    Avant de commencer + +

    Avant de foncer tête baissée dans la lecture de ce document, + vous devez tenir compte des hypothèses faites par le Groupe + Apache et dans ce document.

    + +

    Premièrement, vous devez utiliser un système d'exploitation + UNIX ou dérivé, capable d'effectuer des opérations + setuid et setgid. Tous les + exemples de commande sont fournis dans ce context. D'autres + plates-formes, même si elles supportent suEXEC, peuvent + présenter une configuration différente.

    + +

    Deuxièmement, vous devez être familier avec les concepts de base + relatifs à la sécurité de votre ordinateur et son administration. + Ceci implique la compréhension des opérations + setuid/setgid et des différents effets qu'elles + peuvent produire sur votre système et son niveau de sécurité.

    + +

    Troisièmement, vous devez utiliser une version + non modifiée du code de suEXEC. L'ensemble du + code de suEXEC a été scruté et testé avec soin par les développeurs + et de nombreux bêta testeurs. Toutes les précautions ont été prises + pour s'assurer d'une base sûre de code non seulement simple, mais + aussi solide. La modification de ce code peut causer des problèmes + inattendus et de nouveaux risques de sécurité. Il est + vivement recommandé de ne pas modifier le code de + suEXEC, à moins que vous ne soyez un programmeur spécialiste des + particularités liées à la sécurité, et souhaitez partager votre + travail avec le Groupe Apache afin de pouvoir en discuter.

    + +

    Quatrièmement et dernièrement, le Groupe Apache a décidé de ne + PAS inclure suEXEC dans l'installation par défaut + d'Apache. Pour pouvoir mettre en oeuvre suEXEC, l'administrateur + doit porter la plus grande attention aux détails. Après avoir bien + réfléchi aux différents points de la configuration de suEXEC, + l'administrateur peut l'installer selon les méthodes classiques. + Le choix de chaque paramètre de configuration doit être + déterminé et spécifié avec soin par l'administrateur, afin de + maintenir la sécurité du système de manière appropriée lors de + l'utilisation de la fonctionnalité suEXEC. C'est par le biais de + ce processus minutieux que le Groupe Apache espère réserver + l'installation de suEXEC aux administrateurs prudents et + suffisamment déterminés à vouloir l'utiliser.

    + +

    Vous êtes encore avec nous ? Oui ? Bien. + Alors nous pouvons continuer !

    +
    + +
    Modèle de sécurité de suEXEC + +

    Avant d'installer et configurer suEXEC, nous allons tout d'abord + décrire le modèle de sécurité que vous êtes sur le point + d'implémenter. Vous devriez ainsi mieux comprendre ce qui se passe + vraiment à l'intérieur de suEXEC et quelles précautions ont été + prises pour préserver la sécurité de votre système.

    + +

    suEXEC est basé sur un programme "conteneur" + (wrapper) setuid qui est appelé par le serveur web Apache principal. + Ce conteneur est appelé quand une requête HTTP concerne + un programme CGI ou SSI que l'administrateur + a décidé de faire s'exécuter + sous un utilisateur autre que celui du serveur principal. + Lorsqu'il reçoit une telle requête, Apache fournit au conteneur + suEXEC le nom du programme, ainsi que les identifiants utilisateur + et groupe sous lesquels le programme doit s'exécuter.

    + +

    Le conteneur effectue ensuite les vérifications suivantes afin + de déterminer la réussite ou l'échec du processus -- si une seule + de ces conditions n'est pas vérifiée, le programme journalise + l'erreur et se termine en retournant un code d'erreur, sinon il + continue :

    + +
      +
    1. + L'utilisateur qui exécute le conteneur est-il un + utilisateur valide de ce système ? + +

      + Ceci permet de s'assurer que l'utilisateur qui exécute le + conteneur est vraiment un utilisateur appartenant au système. +

      +
    2. + +
    3. + Le conteneur a-t-il été appelé avec un nombre + d'arguments correct ? + +

      + Le conteneur ne s'exécutera que si on lui fournit un nombre + d'arguments correct. Le serveur web apache sait quel est le + bon format des arguments. Si le conteneur ne reçoit pas un + nombre d'arguments correct, soit il a été modifié, + soit quelque chose ne va pas dans la portion suEXEC de + votre binaire Apache. +

      +
    4. + +
    5. + Cet utilisateur valide est-il autorisé à exécuter le + conteneur ? + +

      + Cet utilisateur est-il celui autorisé à exécuter le + conteneur ? Un seul utilisateur (celui d'Apache) est + autorisé à exécuter ce programme. +

      +
    6. + +
    7. + Le chemin du programme CGI ou SSI cible est-il + non sûr ? + +

      + Le chemin du programme CGI ou SSI cible débute-t-il par un + '/' ou contient-il une référence arrière '..' ? Ceci est + interdit ; le programme CGI ou SSI cible doit se trouver dans + la hiérarchie de la racine des documents de suEXEC (voir + --with-suexec-docroot=DIR ci-dessous). +

      +
    8. + +
    9. + Le nom utilisateur cible est-il valide ? + +

      + L'utilisateur cible existe-t-il ? +

      +
    10. + +
    11. + Le nom du groupe cible est-il valide ? + +

      + Le groupe cible existe-t-il ? +

      +
    12. + +
    13. + L'utilisateur cible n'est-il PAS + superutilisateur ? + + +

      + suEXEc ne permet pas à + root d'exécuter des programmes CGI/SSI. +

      +
    14. + +
    15. + Le numéro de l'identifiant de l'utilisateur cible + est-il SUPERIEUR au numéro d'identifiant + minimum ? + +

      + Le numéro d'identifiant utilisateur minimum est défini à + l'exécution du script configure. Ceci vous permet de définir + le numéro d'identifiant utilisateur le plus bas qui sera + autorisé à éxécuter des programmes CGI/SSI. En particulier, + cela permet d'écarter les comptes système. +

      +
    16. + +
    17. + Le groupe cible n'est-il PAS le groupe + superutilisateur ? + +

      + Actuellement, suEXEC ne permet pas au groupe + root d'exécuter des programmes CGI/SSI. +

      +
    18. + +
    19. + Le numéro d'identifiant du groupe cible est-il + SUPERIEUR au numéro d'identifiant minimum ? + +

      + Le numéro d'identifiant de groupe minimum est spécifié lors + de l'exécution du script configure. Ceci vous permet de + définir l'identifiant de groupe le plus bas possible qui sera + autorisé à exécuter des programmes CGI/SSI, et est + particulièrement utile pour écarter les groupes "système". +

      +
    20. + +
    21. + Le conteneur peut-il obtenir avec succès l'identité + des utilisateur et groupe cibles ? + +

      + C'est ici que le programme obtient l'identité des utilisateur + et groupe cibles via des appels à setuid et setgid. De même, + la liste des accès groupe est initialisée avec tous les + groupes auxquels l'utilisateur cible appartient. +

      +
    22. + +
    23. + Peut-on se positionner dans le répertoire dans dequel + sont situés les programmes CGI/SSI ? + +

      + S'il n'existe pas, il ne peut pas contenir de fichier. Et si + l'on ne peut pas s'y positionner, il n'existe probablement + pas. +

      +
    24. + +
    25. + Le répertoire est-il dans l'espace web + d'Apache ? + +

      + Si la requête concerne une portion de la racine du serveur, + le répertoire demandé est-il dans la hiérarchie de la racine + des documents de suEXEC ? Si la requête concerne un + UserDir, le + répertoire demandé est-il dans la hiérarchie du répertoire + défini comme le répertoire utilisateur de suEXEC (voir les + options de configuration de suEXEC) ? +

      +
    26. + +
    27. + L'écriture dans le répertoire est-elle interdite pour + un utilisateur autre que le propriétaire ? + +

      + Le répertoire ne doit pas être ouvert aux autres + utilisateurs ; seul l'utilisateur propriétaire doit pouvoir + modifier le contenu du répertoire. +

      +
    28. + +
    29. + Le programme CGI/SSI cible existe-t-il ? + +

      + S'il n'existe pas, il ne peut pas être exécuté. +

      +
    30. + +
    31. + Les utilisateurs autres que le propriétaire n'ont-ils + PAS de droits en écriture sur le programme + CGI/SSI ? + +

      + Les utilisateurs autres que le propriétaire ne doivent pas + pouvoir modifier le programme CGI/SSI. +

      +
    32. + +
    33. + Le programme CGI/SSI n'est-il PAS setuid ou + setgid ? + +

      + Les programmes cibles ne doivent pas pouvoir modifier à + nouveau les identifiants utilisateur/groupe. +

      +
    34. + +
    35. + Le couple utilisateur/groupe cible est-il le même que + celui du programme ? + +

      + L'utilisateur est-il le propriétaire du fichier ? +

      +
    36. + +
    37. + Peut-on nettoyer avec succès l'environnement des + processus afin de garantir la sûreté des opérations ? + +

      + suExec nettoie l'environnement des processus en établissant + un chemin d'exécution sûr (défini lors de la configuration), + et en ne passant que les variables dont les noms font partie + de la liste de l'environnement sûr (créée de même lors de la + configuration). +

      +
    38. + +
    39. + Le conteneur peut-il avec succès se substituer au + programme CGI/SSI cible et s'exécuter ? + +

      + C'est là où l'exécution de suEXEC s'arrête et où commence + celle du programme CGI/ssi cible. +

      +
    40. +
    + +

    Ce sont les opérations standards effectuées par le modèle de + sécurité du conteneur suEXEC. Il peut paraître strict et est + susceptible d'imposer de nouvelles limitations et orientations + dans la conception des programmes CGI/SSI, mais il a été développé + avec le plus grand soin, étape par étape, en se focalisant sur + la sécurité.

    + +

    Pour plus d'informations sur la mesure dans laquelle ce modèle + de sécurité peut limiter vos possibilités au regard de la + configuration du serveur, ainsi que les risques de sécurité qui + peuvent être évités grâce à une configuration appropriée de suEXEC, + se référer à la section "Avis à la population !" de ce document.

    +
    + +
    Configurer et installer suEXEC + +

    C'est ici que nous entrons dans le vif du sujet.

    + +

    Options de configuration de suEXEC
    +

    + +
    +
    --enable-suexec
    + +
    Cette option active la fonctionnalité suEXEC qui n'est + jamais installée ou activée par défaut. Au moins une option + --with-suexec-xxxxx doit accompagner l'option + --enable-suexec pour qu'APACI (l'utilitaire de + configuration de la compilation d'Apache) accepte votre demande + d'utilisation de la fonctionnalité suEXEC.
    + +
    --with-suexec-bin=PATH
    + +
    Le chemin du binaire suexec doit être codé en + dur dans le serveur pour des raisons de sécurité. Cette option + vous permet de modifier le chemin par défaut. + Par exemple + --with-suexec-bin=/usr/sbin/suexec
    + +
    --with-suexec-caller=UID
    + +
    L'utilisateur sous + lequel Apache s'exécute habituellement. C'est le seul utilisateur + autorisé à utiliser suexec.
    + +
    --with-suexec-userdir=DIR
    + +
    Cette option définit le sous-répertoire de la hiérarchie des + répertoires utilisateurs dans lequel l'utilisation + de suEXEC sera autorisée. Tous les exécutables situés dans ce + répertoire seront exécutables par suEXEC sous l'utilisateur + cible ; ces programmes doivent donc être sûrs. Si vous utilisez + une directive UserDir + "simple" (c'est à dire ne contenant pas de + "*"), l'option --with-suexec-userdir + devra contenir la même valeur. suEXEC ne fonctionnera pas + correctement si la directive UserDir contient une valeur + différente du répertoire home de l'utilisateur tel qu'il est + défini dans le fichier passwd. la valeur par défaut + est "public_html".
    + Si vous avez plusieurs hôtes virtuels avec une directive + UserDir différente + pour chacun d'entre eux, vous devrez faire en sorte que chaque + UserDir possède un répertoire parent commun ; donnez alors à + l'option --with-suexec-userdir le nom + de ce répertoire commun. Si tout ceci n'est pas défini + correctement, les requêtes CGI "~userdir" ne fonctionneront + pas !
    + +
    --with-suexec-docroot=DIR
    + +
    Cette option fonctionne comme la directive DocumentRoot pour + Apache. Il s'agit de la seule hiérarchie (en dehors des directives + UserDir) dans laquelle la fonctionnalité suEXEC + pourra être utilisée. La valeur par défaut est la valeur de + --datadir accompagnée du suffixe + "/htdocs" ; + Par exemple, si vous exécutez configure avec + "--datadir=/home/apache", la valeur + "/home/apache/htdocs" sera utilisée par défaut comme + racine des documents pour le conteneur suEXEC.
    + +
    --with-suexec-uidmin=UID
    + +
    Cette option définit l'identifiant utilisateur le plus bas + avec lequel un utilisateur pourra être la cible de + suEXEC. 500 ou 100 sont des valeurs courantes sur la plupart des + systèmes. la valeur par défaut est 100.
    + +
    --with-suexec-gidmin=GID
    + +
    Cette option définit l'identifiant de groupe le plus bas + avec lequel un utilisateur pourra être la cible de + suEXEC. 100 est une valeur courante sur la plupart des + systèmes et est par conséquent la valeur par défaut.
    + +
    --with-suexec-logfile=FILE
    + +
    Cette option permet de définir le fichier dans lequel + toutes les transactions et erreurs de suEXEC seront journalisées + (à des fins d'analyse ou de débogage). Par défaut, le fichier + journal se nomme "suexec_log" et se trouve dans votre + répertoire standard des fichiers journaux défini par + --logfiledir
    + +
    --with-suexec-safepath=PATH
    + +
    Cette option permet de définir une variable d'environnement + PATH sûre à passer aux exécutables CGI. La valeur par défaut + est "/usr/local/bin:/usr/bin:/bin".
    +
    + +
    + Compilation et installation du conteneur suEXEC + +

    Si vous avez activé la fonctionnalité suEXEC à l'aide de + l'option --enable-suexec, le binaire + suexec sera automatiquement construit (en même temps + qu'Apache) lorsque vous exécuterez la comande + make.

    + +

    Lorsque tous les composants auront été construits, vous pourrez + exécuter la commande make install afin de les + installer. Le binaire suexec sera installé dans le + répertoire défini à l'aide de l'option --sbindir. La + localisation par défaut est "/usr/local/apache2/bin/suexec".

    +

    Veuillez noter que vous aurez besoin des + privilèges root pour passer l'étape de + l'installation. Pour que le conteneur puisse changer + l'identifiant utilisateur, il doit avoir comme propriétaire + root, et les droits du fichier doivent + inclure le bit d'exécution setuserid.

    +
    + +
    + >Mise en place de permissions pour + paranoïaque +

    Bien que le conteneur suEXEC vérifie que l'utilisateur qui + l'appelle correspond bien à l'utilisateur spécifié à l'aide de + l'option --with-suexec-caller du programme + configure, il subsiste toujours le risque qu'un + appel système ou une bibliothèque fasse appel à suEXEC avant que + cette vérification ne soit exploitable sur votre système. Pour + tenir compte de ceci, et parce que c'est en général la meilleure + pratique, vous devez utiliser les permissions du système de + fichiers afin de vous assurer que seul le groupe sous lequel + s'exécute Apache puisse faire appel à suEXEC.

    + +

    Si, par exemple, votre serveur web est configuré pour + s'exécuter en tant que :

    + + + User www
    + Group webgroup
    +
    + +

    et suexec se trouve à + "/usr/local/apache2/bin/suexec", vous devez exécuter les + commandes

    + + + chgrp webgroup /usr/local/apache2/bin/suexec
    + chmod 4750 /usr/local/apache2/bin/suexec
    +
    + +

    Ceci permet de s'assurer que seul le groupe sous lequel Apache + s'exécute (ici webgroup) puisse faire appel au conteneur + suEXEC.

    +
    +
    + +
    Activation et désactivation +de suEXEC + +

    Au démarrage, Apache vérifie la présence du fichier + suexec dans le répertoire défini par + l'option --sbindir du script configure (le + répertoire par défaut est "/usr/local/apache/sbin/suexec"). Si + Apache trouve un conteneur suEXEC correctement configuré, il + enregistrera le message suivant dans le journal des erreurs :

    + + + [notice] suEXEC mechanism enabled (wrapper: /path/to/suexec) + + +

    Si ce message n'est pas généré au démarrage du serveur, ce + dernier ne trouve probablement pas le programme conteneur à + l'endroit où il est sensé être, ou l'exécutable suexec n'est pas + installé en setuid root.

    + +

    Si le serveur Apache est déjà en cours d'exécution, et si + vous activez le mécanisme suEXEC pour la première fois, vous + devez arrêter et redémarrer Apache. Un redémarrage + à l'aide d'un simple signal HUP ou USR1 suffira.

    +

    Pour désactiver suEXEC, vous devez supprimer le fichier + suexec, puis arrêter et redémarrer + Apache.

    +
    + +
    Utilisation de suEXEC + +

    Les requêtes pour des programmes CGI ne feront appel au + conteneur suEXEC que si elles concernent un hôte virtuel + contenant une directive SuexecUserGroup, ou si elles sont + traitées par mod_userdir.

    + +

    Hôtes virtuels :
    Une des méthodes + d'utilisation du conteneur suEXEC consiste à insérer une + directive SuexecUserGroup dans une section + VirtualHost. En définissant + des valeurs différentes de celles du serveur principal, toutes les + requêtes pour des ressources CGI seront exécutées sous + les User et Group définis pour cette section + VirtualHost. Si cette + directive est absente de la section VirtualHost, l'utilisateur du + serveur principal sera pris par défaut

    + +

    Répertoires des utilisateurs :
    Avec + cette méthode, les + requêtes traitées par mod_userdir appelleront le + conteneur suEXEC pour exécuter le programme CGI sous l'identifiant + utilisateur du répertoire utilisateur concerné. Seuls prérequis + pour pouvoir accéder à cette fonctionnalité : l'exécution des CGI + doit être activée pour l'utilisateur concerné, et le script doit + passer avec succès le test des vérifications de + sécurité décrit plus haut. Voir aussi l' + option de compilation + --with-suexec-userdir.

    + +
    Débogage de suEXEC + +

    Le conteneur suEXEC va écrire ses informations de journalisation + dans le fichier défini par l'option de compilation + --with-suexec-logfile comme indiqué plus haut. Si vous + pensez avoir configuré et installé correctement le conteneur, + consultez ce journal, ainsi que le journal des erreurs du serveur + afin de déterminer l'endroit où vous avez fait fausse route.

    + +
    + +
    Avis à la population ! + Avertissements et exemples + +

    NOTE ! Cette section est peut-être incomplète. + Pour en consulter la dernière révision, voir la version de la Documentation en ligne du Groupe Apache.

    + +

    Quelques points importants du conteneur peuvent + imposer des contraintes du point de vue de la configuration du + serveur. Veuillez en prendre connaissance avant de soumettre un + rapport de bogue à propos de suEXEC.

    + +
      +
    • Points importants de suEXEC
    • + +
    • + Limitations concernant la hiérarchie. + +

      + Pour des raisons de sécurité et d'efficacité, toutes les + requêtes suEXEC ne doivent concerner que des ressources + situées dans la racine des documents définie pour les + requêtes concernant un hôte virtuel, ou des ressources + situées dans la racine des documents définies pour les + requêtes concernant un répertoire utilisateur. Par exemple, + si vous avez configuré quatre hôtes virtuels, vous devrez + définir la structure des racines de documents de vos hôtes + virtuels en dehors d'une hiérarchie de documents principale + d'Apache, afin de tirer parti de suEXEC dans le contexte des + hôtes virtuels (Exemple à venir). +

      +
    • + +
    • + La variable d'environnement PATH de suEXEC + +

      + Modifier cette variable peut s'avérer dangereux. Assurez-vous + que tout chemin que vous ajoutez à cette variable est un + répertoire de confiance. Vous n'avez + probablement pas l'intention d'ouvrir votre serveur de façon + à ce que l'on puisse y exécuter un cheval de Troie. +

      +
    • + +
    • + Modification de suEXEC + +

      + Encore une fois, ceci peut vous causer de + graves ennuis si vous vous y essayez sans + savoir ce que vous faites. Évitez de vous y risquer dans la + mesure du possible. +

      +
    • +
    + +
    + +
    diff --git a/docs/manual/suexec.xml.ja b/docs/manual/suexec.xml.ja index cb40e4c9e6f..bc71dee3b72 100644 --- a/docs/manual/suexec.xml.ja +++ b/docs/manual/suexec.xml.ja @@ -1,15 +1,15 @@ - + - + + - + suexec / . en - ja + fr + ja ko + tr diff --git a/docs/manual/suexec.xml.tr b/docs/manual/suexec.xml.tr new file mode 100644 index 00000000000..826b0482aa1 --- /dev/null +++ b/docs/manual/suexec.xml.tr @@ -0,0 +1,557 @@ + + + + + + + + + + + SuEXEC Desteği + + +

    SuEXEC özelliği, Apache kullanıcılarına + CGI ve SSI programlarını sunucunun + aidiyetinde çalıştığı kullanıcıdan farklı bir kullanıcının aidiyetinde + çalıştırma olanağı verir. Normalde, CGI ve + SSI programlarını çalıştıranla sunucuyu çalıştıran + aynı kullanıcıdır.

    + +

    Gerektiği gibi kullanıldığında bu özellik, kullanıcılara + CGI ve SSI programlarını çalıştırma + ve geliştirmeye izin vermekle ortaya çıkan güvenlik risklerini azaltır. + Bununla birlikte, suEXEC gerektiği gibi + yapılandırılmadığı takdirde bazı sorunlara yol açabilir ve bilgisayar + güvenliğinizde yeni delikler ortaya çıkmasına sebep olabilir. + Güvenlikle ilgili mevcut sorunlarla başa çıkmada ve setuid + root programları yönetmekte bilgi ve deneyim sahibi değilseniz + suEXEC kullanmayı kesinlikle düşünmemenizi + öneririz.

    +
    + +
    Başlamadan önce + +

    Belgeye balıklama dalmadan önce, Apache Grubu ve bu belge ile ilgili + kabuller hakkında bilgi sahibi olmalısınız.

    + +

    Öncelikle, üzerinde setuid va setgid + işlemlerinin yapılabildiği Unix türevi bir işletim sistemi + kullandığınızı varsayıyoruz. Tüm komut örnekleri buna dayanarak + verilmiştir. Bu desteğe sahip başka platformlar varsa onlardaki + yapılandırma burada anlattığımız yapılandırmadan farklı olabilir.

    + +

    İkinci olarak, bilgisayarınızın güvenliği ve yönetimi ile ilgili bazı + temel kavramları bildiğinizi kabul ediyoruz. Buna + setuid/setgid işlemlerinin sisteminiz ve güvenlik + seviyesi üzerindeki etkilerini bilmek dahildir.

    + +

    Üçüncü olarak, suEXEC kodunun + değiştirilmemiş bir sürümünü kullandığınızı + varsayıyoruz. Tüm suEXEC kodu, geliştiricilerin yanında sayısız beta + kullanıcısı tarafından dikkatle incelenmiş ve denenmiştir. Kodların hem + basit hem de sağlam bir şekilde güvenli olması için gerekli tüm + önlemler alınmıştır. Bu kodun değiştirilmesi beklenmedik sorunlara ve + yeni güvenlik risklerine yol açabilir. Özellikle güvenlikle ilgili + programlarda deneyimli değilseniz suEXEC kodunda kesinlikle bir + değişiklik yapmamalısınız. Değişiklik yaparsanız kodlarınızı gözden + geçirmek ve tartışmak üzere Apache Grubu ile paylaşmanızı öneririz.

    + +

    Dördüncü ve son olarak, Apache Grubunun suEXEC’i öntanımlı Apache + kurulumunun bir parçası yapmama kararından bahsetmek gerekir. Bunun + sonucu olarak, suEXEC yapılandırması sistem yöneticisinin ayrıntılı bir + incelemesini gerektirir. Gerekli incelemeden sonra yönetici tarafından + suEXEC yapılandırma seçeneklerine karar verilip, normal yollardan + sisteme kurulumu yapılır. Bu seçeneklerin belirlenmesi, suEXEC + işlevselliğinin kullanımı sırasında sistem güvenliğini gerektiği gibi + sağlamak için yönetici tarafından dikkatle saptanmayı gerektirir. Bu + sürecin ayrıntılarının yöneticiye bırakılma sebebi, Apache Grubunun + suEXEC kurulumunu, suEXEC’i dikkatle kullanacak yeterliliğe sahip + olanlarla sınırlama beklentisidir.

    + +

    Hala bizimle misiniz? Evet mi? Pekala, o halde devam!

    +
    + +
    SuEXEC Güvenlik Modeli + +

    SuEXEC yapılandırması ve kurulumuna girişmeden önce biraz da + gerçekleşmesini istediğiniz güvenlik modelinin ayrıntıları üzerinde + duralım. Böylece, suEXEC’in içinde olup bitenleri ve sisteminizin + güvenliği için alınacak önlemleri daha iyi anlayabilirsiniz.

    + +

    suEXEC işlevselliği, Apache HTTP Sunucusu tarafından + gerektiği takdirde artalanda çalıştırılan bir setuid programa dayanır. + Bu program, bir CGI veya SSI betiğine bir HTTP isteği yapıldığı zaman, + bu betiği, yöneticinin ana sunucunun aidiyetinde çalıştığı kullanıcıdan + farklı olarak seçtiği bir kullanıcının aidiyetinde çalıştırmak için + çağrılır. Böyle bir istek geldiğinde, Apache artalandaki setuid + programına, HTTP isteği yapılan programın ismiyle beraber aidiyetinde + çalışacağı kullanıcı ve grup kimliklerini de aktarır.

    + +

    Artalanda çalıştırılan setuid program başarıyı ve başarısızlığı + aşağıdaki süreci izleyerek saptar. Bunlardan herhangi biri başarısız + olursa program başarısızlık durumunu günlüğe kaydeder ve bir hata + vererek çıkar. Aksi takdirde çalışmaya devam eder.

    + +
      +
    1. + Setuid programı çalıştıran kullanıcı sistemin geçerli + kullanıcılarından biri mi? + +

      Bu, setuid programı çalıştıran kullanıcının + sistemin gerçek bir kullanıcısı olduğunudan emin olunmasını sağlar. +

      +
    2. + +
    3. + Setuid program yeterli sayıda argümanla çağrılmış mı? + + +

      Apache’nin artalanda çağırdığı setuid program + ancak yeterli sayıda argüman sağlandığı takdirde çalışacaktır. + Argümanların sayısını ve sırasını Apache HTTP sunucusu bilir. Eğer + setuid program yeterli sayıda argümanla çağrılmamışsa ya + kendisinde bir değişiklik yapılmıştır ya da kurulu Apache + çalıştırılabilirinin suEXEC ile ilgili kısmında yanlış giden bir + şeyler vardır.

      +
    4. + +
    5. + Bu geçerli kullanıcının bu setuid programı çalıştırma + yetkisi var mı? + +

      Sadece tek bir kullanıcı (Apache’nin aidiyetinde + çalıştığı kullanıcı) bu programı çalıştırmaya yetkilidir.

      +
    6. + +
    7. + Hedef CGI veya SSI programı hiyerarşik olarak güvenliği + bozacak bir dosya yolu üzerinde mi? + +

      Hedef CGI veya SSI programının dosya yolu '/' veya + '..' ile başlıyor mu? Buna izin verilmez. Hedef CGI veya SSI + programı suEXEC’in belge kök dizininde yer almalıdır (aşağıda + --with-suexec-docroot=DİZİN seçeneğine + bakınız).

      +
    8. + +
    9. + Hedef kullanıcı ismi geçerli mi? + +

      Hedef kullanıcı mevcut mu?

      +
    10. + +
    11. + Hedef grup ismi geçerli mi? + +

      Hedef grup mevcut mu?

      +
    12. + +
    13. + Hedef kullanıcı root değil, değil mi? + +

      Mevcut durumda, root kullanıcısının + CGI/SSI programlarını çalıştırmasına izin verilmemektedir.

      +
    14. + +
    15. + Hedef kullanıcı kimliği asgari kullanıcı numarasından + BÜYÜK mü? + +

      Asgari kullanıcı numarası yapılandırma sırasında + belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin + verilecek olası en düşük kullanıcı numarasını belirlemeniz mümkün + kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için + yararlıdır.

      +
    16. + +
    17. + Hedef grup root değil, değil mi? + +

      root grubunun CGI/SSI + programlarını çalıştırmasına izin verilmez.

      +
    18. + +
    19. + Hedef grup numarası asgari grup numarasından + BÜYÜK mü? + +

      Asgari grup numarası yapılandırma sırasında + belirtilir. Böylece CGI/SSI programlarını çalıştırmasına izin + verilecek olası en düşük grup numarasını belirlemeniz mümkün + kılınmıştır. Bu bazı “sistem” hesaplarını devreden çıkarmak için + yararlıdır.

      +
    20. + +
    21. + Apache’nin artalanda çağırdığı setuid program hedef + kullanıcı ve grubun aidiyetine geçebildi mi? + +

      Bu noktadan itibaren program setuid ve setgid + çağrıları üzerinden hedef kullanıcı ve grubun aidiyetine geçer. + Erişim grubu listesi de ayrıca kullanıcının üyesi olduğu tüm + gruplara genişletilir.

      +
    22. + +
    23. + Hedef CGI/SSI programının bulunduğu dizine geçebildik mi? + + +

      Dizin mevcut değilse dosyaları da içeremez. Hedef + dizine geçemiyorsak bu, dizin mevcut olmadığından olabilir.

      +
    24. + +
    25. + Hedef dizin Apache için izin verilen yerlerden biri mi? + + +

      İstek sunucunun normal bir bölümü için yapılmış + olsa da istenen dizin acaba suEXEC’in belge kök dizini altında mı? + Yani, istenen dizin, suEXEC’in aidiyetinde çalıştığı kullanıcının + ev dizini altında bulunan, UserDir ile belirtilen dizinin altında mı? (suEXEC’in yapılandırma seçeneklerine + bakınız).

      +
    26. + +
    27. + Hedef dizin başkaları tarafından yazılabilen bir dizin değil, + değil mi? + +

      Başkaları da yazabilsin diye bir dizin açmıyoruz; + dizin içeriğini sadece sahibi değiştirebilmelidir.

      +
    28. + +
    29. + Hedef CGI/SSI programı mevcut mu? + +

      Mevcut değilse çalıştırılamaz.

      +
    30. + +
    31. + Hedef CGI/SSI program dosyasına başkaları tarafından + yazılamıyor, değil mi? + +

      Hedef CGI/SSI programının dosyasına sahibinden + başka kimsenin bir şeyler yazmasını istemeyiz.

      +
    32. + +
    33. + Hedef CGI/SSI program setuid veya setgid değil, + değil mi? + +

      UID/GID‘i tekrar değiştirecek programlar + çalıştırmayı istemeyiz.

      +
    34. + +
    35. + Hedef kullanıcı/grup, programın kullanıcı/grubu ile aynı mı? + + +

      Hedef kullanıcı dosyanın sahibi mi?

      +
    36. + +
    37. + İşlemlerin güvenle yapılabilmesi için süreç ortamını + başarıyla temizleyebildik mi? + +

      suEXEC, sürecin çalışacağı ortama güvenli bir + program çalıştırma yolu sağlamaktan başka, yapılandırma sırasında + oluşturulan güvenli ortam değişkenleri listesinde isimleri bulunan + ortam değişkenlerinden başkasını aktarmayacaktır.

      +
    38. + +
    39. + Hedef CGI/SSI programı haline gelip çalışabildik mi? + +

      Burası suEXEC’in bitip CGI/SSI programının + başladığı yerdir.

      +
    40. +
    + +

    Bu süreç suEXEC güvenlik modelinin standart işlemlerini oluşturur. + Biraz zorlayıcı ve CGI/SSI tasarımına yeni kurallar ve sınırlamalar + getiriyor olsa da düşünülen güvenliği adım adım sağlayacak şekilde + tasarlanmıştır.

    + +

    Düzgün bir suEXEC yapılandırmasının hangi güvenlik risklerinden + kurtulmayı sağladığı ve bu güvenlik modelinin sunucu yapılandırmasıyla + ilgili sorumluluklarınızı nasıl sınırlayabildiği hakkında daha + ayrıntılı bilgi edinmek için bu belgenin "Uyarılar ve Örnekler" bölümüne bakınız.

    +
    + +
    suEXEC’in Yapılandırılması ve Kurulumu + +

    Eğlence başlıyor.

    + +

    suEXEC yapılandırma seçenekleri
    +

    + +
    +
    --enable-suexec
    + +
    Bu seçenek, hiçbir zaman öntanımlı olarak kurulmayan ve + etkinleştirilmeyen suEXEC özelliğini etkin kılar. suEXEC özelliğini + kullanma isteğinizi Apache’nin kabul edebilmesi için + --enable-suexec seçeneğinin yanında en azından bir tane + de --with-suexec-xxxxx seçeneği belirtilmiş + olmalıdır.
    + +
    --with-suexec-bin=YOL
    + +
    Güvenlik sebebiyle suexec çalıştırılabilirinin + bulunduğu yer sunucu koduna yazılır. Bu seçenekle öntanımlı yol + değiştirilmiş olur. Örnek:
    + --with-suexec-bin=/usr/sbin/suexec
    + +
    --with-suexec-caller=KULLANICI
    + +
    Normalde Apache’nin aidiyetinde çalıştığı kullanıcıdır. Bu, bu programı + çalıştırmasına izin verilen tek kullanıcıdır.
    + +
    --with-suexec-userdir=DİZİN
    + +

    Kullanıcıların ev dizinleri altında suEXEC’in erişmesine izin + verilen alt dizinin yerini tanımlar. Bu dizin altında suEXEC + kullanıcısı tarafından çalıştırılacak tüm programlar "güvenilir" + olmalıdır. Eğer “basit” bir UserDir yönergesi kullanıyorsanız ( içinde “*” + bulunmayan), bunun aynı dizin olması gerekir. Eğer burada belirtilen + dizin, passwd dosyasında kullanıcı için belirtilmiş + dizinin altında UserDir + yönergesinde belirtilen dizin olmadığı takdirde suEXEC işini + gerektiği gibi yapmayacaktır. Öntanımlı değer + public_html’dir.

    + +

    Eğer, sanal konaklarınızın herbiri farklı UserDir yönergeleri içeriyorsa + burada belirtilecek dizinin üst dizininin hepsinde aynı olması + gerekir. Aksi takdirde, "~kullanıcı" + istekleri düzgün çalışmayacaktır.

    + +
    --with-suexec-docroot=DİZİN
    + +
    Apache için belge kök dizinini belirler. Bu, (UserDir’lardan başka) suEXEC için + kullanılacak tek hiyerarşi olacaktır. Öntanımlı dizin sonuna + "/htdocs" eklenmiş --datadir dizinidir. + Yani, seçeneği "--datadir=/home/apache" olarak + belirtmişseniz suEXEC çalıştırıcısı için belge kök dizini + "/home/apache/htdocs" olur.
    + +
    --with-suexec-uidmin=UID
    + +
    suEXEC kullanıcısının kullanıcı kimliği olarak izin verilen en + düşük değeri belirler. Çoğu sistemde bu ya 500’dür ya da 100; 100 + öntanımlıdır.
    + +
    --with-suexec-gidmin=GID
    + +
    suEXEC kullanıcısının grup kimliği olarak izin verilen en düşük + değeri belirler. Çoğu sistemde bu 100 olup, seçeneğin de öntanımlı + değeridir.
    + +
    --with-suexec-logfile=DOSYA
    + +
    suEXEC hareketlerinin ve hatalarının kaydedileceği günlük + dosyasının adını belirler (denetim ve hata ayıklama için + kullanışlıdır). Öntanımlı günlük dosyası ismi + "suexec_log" olup yeri (--logfiledir + seçeneği ile belirtilen) günlük dosyaları dizinidir.
    + +
    --with-suexec-safepath=YOL
    + +
    CGI çalıştırılabilirlerine aktarılacak güvenilir PATH + ortam değişkeninin değerini tanımlar. + "/usr/local/bin:/usr/bin:/bin" öntanımlıdır.
    +
    + +
    + SuEXEC çalıştırıcısının derlenmesi ve kurulumu + +

    SuEXEC özelliğini --enable-suexec seçeneği ile + etkinleştirdiyseniz make komutunu verdiğinizde Apache + ile birlikte suexec çalıştırılabilir dosyası da + derlenecektir.

    + +

    Tüm bileşenler derlendikten sonra make install komutunu + vererek kurulumu tamamlayabilirsiniz. suexec + çalıştırılabilir dosyası --sbindir seçeneği ile + tanımlanan dizine kurulacaktır; öntanımlı yeri + /usr/local/apache2/bin/ dizinidir.

    + +

    Kurulum adımında root yetkisine sahip + olmanız gerektiğini unutmayın. Çalıştırıcıya kullanıcı kimliğinin + atanabilmesi ve dosyanın sahibi olan kullanıcı kimliği ile + çalıştırılabilmesini mümkün kılan bitinin etkin kılınabilmesi için + kurulumun root tarafından yapılması + önemlidir.

    +
    + +
    + Paranoyak yetkilendirme + +

    SuEXEC çalıştırıcısı kendini çalıştıran kullanıcının + configure betiğine + --with-suexec-caller seçeneği ile belirtilen kullanıcı + olup olmadığına bakacaksa da, bu sınamanın da bir sistem veya + kütüphane çağrısı ile istismar edilmiş olma ihtimali gözardı + edilmemelidir. Bunun meydana gelmesini önlemek için ve genelde + yapıldığı gibi dosyanın izinlerini suEXEC çalıştırıcısı sadece Apache + sunucusunun aidiyetinde çalıştığı kullanıcı tarafından çalıştırılacak + şekilde ayarlayınız.

    + +

    Örneğin, sunucunuz şöyle yapılandırılmışsa:

    + + + User apache
    + Group apache-grup
    +
    + +

    Ve suexec çalıştırılabilir de + /usr/local/apache2/bin/ dizinine kurulmuşsa şu komutları + vermelisiniz:

    + + + chgrp apache-grup /usr/local/apache2/bin/suexec
    + chmod 4750 /usr/local/apache2/bin/suexec
    +
    + +

    Böylece suEXEC çalıştırıcısını Apache’yi çalıştıran grubun + üyelerinden başkasının çalıştıramayacağından emin olabilirsiniz.

    +
    +
    + +
    + suEXEC’in etkin kılınması ve iptal edilmesi + +

    Apache başlatıldığı sırada suexec çalıştırıcısı + için --sbindir seçeneği ile tanımlanan dizine bakar + (seçeneğin öntanımlı değeri + /usr/local/apache/sbin/suexec’tir). Apache düzgün + yapılandırılmış bir suEXEC çalıştırıcısı bulduğu takdirde hata + günlüğüne şöyle bir ileti yazacaktır:

    + + + [notice] suEXEC mechanism enabled (wrapper: /dosya/yolu/suexec) + + +

    Sunucu başlatıldığında bu ileti yazılmazsa sunucu ya çalıştırıcı + programı umduğu yerde bulamamıştır ya da dosyanın setuid biti + root tarafından etkin kılınmamıştır.

    + +

    SuEXEC mekanizmasını etkin kılmak istediğiniz sunucu çalışmaktaysa + sunucuyu önce öldürmeli sonra yeniden başlatmalısınız. Basit bir + HUP veya USR1 sinyali ile yeniden başlamasını + sağlamak yeterli olmayacaktır.

    + +

    SuEXEC mekanizmasını iptal etmek için ise suexec + dosyasını sildikten sonra Apache sunucusunu öldürüp yeniden + başlamalısınız.

    +
    + +
    SuEXEC’in kullanımı + +

    CGI programlarına yapılan isteklerin suEXEC çalıştırıcısı tarafından + yerine getirilebilmesi için sanal konağın bir SuexecUserGroup yönergesi içermesi veya + isteğin mod_userdir tarafından işleme konulması + gerekir.

    + +

    Sanal Konaklar:
    SuEXEC çalıştırıcısını farklı + bir kullanıcı ile etkin kılmanın tek yolu VirtualHost bölümleri içinde SuexecUserGroup yönergesini + kullanmaktır. Bu yönergede ana sunucuyu çalıştıran kullanıcıdan farklı + bir kullanıcı belirterek ilgili sanal konak üzerinden CGI kaynakları + için yapılan tüm isteklerin belirtilen kullanıcı ve + grup tarafından çalıştırılması sağlanır. Bu yönergeyi + içermeyen sanal konaklar için ana sunucunun kullanıcısı + öntanımlıdır.

    + +

    Kullanıcı dizinleri:
    + mod_userdir tarafından işleme sokulan tüm istekler için + suEXEC çalıştırıcısı istek yapılan kullanıcı dizininin sahibinin + aidiyetinde çalıştırılacaktır. Bu özelliğin çalışması için tek + gereklilik, kullanıcının SuEXEC çalıştırıcısı için etkin kılınmış olması + ve çalıştırıcının yukarıdaki güvenlik sınamalarından + geçebilmesidir. Ayrıca, --with-suexec-userdir derleme seçeneğinin açıklamasına da bakınız.

    +
    + +
    SuEXEC ve hata ayıklama + +

    SuEXEC çalıştırıcısı yukarıda değinildiği gibi günlük bilgilerini + --with-suexec-logfile seçeneği ile belirtilen dosyaya + yazacaktır. Çalıştırıcıyı doğru yapılandırarak kurduğunuzdan emin olmak + istiyorsanız, yolunda gitmeyen şeyler var mı diye bu günlük dosyasına + bakmayı ihmal etmeyin.

    + +
    + +
    + Uyarılar ve Örnekler + +

    UYARI! Bu bölüm henüz bitmedi. Bu bölümün son hali + için çevrimiçi + belgelere bakınız.

    + +

    SuEXEC çalıştırıcısından dolayı sunucu ayarlarına bazı sınırlamalar + getiren bir kaç önemli nokta mevcuttur. SuEXEC ile ilgili hata + bildiriminde bulunmadan önce bunlara bir göz atmalısınız.

    + +
      +
    • suEXEC ile ilgili önemli noktalar
    • + +
    • Hiyerarşik sınırlamalar + +

      Güvenlik ve verimlilik adına, tüm suEXEC + isteklerinin sanal konaklar için üst düzey belge kökünün altındaki + dosyalarla, kullanıcı dizinleri için ise üst düzey bireysel belge + köklerinin altındaki dosyalarla sınırlı kalması gerekir. Örneğin, + dört sanal konağınız varsa ve suEXEC çalıştırıcısının + getirilerinden faydalanmak istiyorsanız, sanal konaklarınızın belge + kök dizinlerini ana sunucunun belge kök dizininin altında kalacak + şekilde yapılandırmanız gerekir (örnek yolda).

      +
    • + +
    • SuEXEC'in PATH ortam değişkeni + +

      Bunu değiştirmek tehlikeli olabilir. Bu değişkende + tanımladığınız her yolun güvenli bir dizini işaret + ettiğinden emin olmalısınız. Başkalarının oralarda bir truva atı + çalıştırmasını istemiyorsanız buna çok dikkat ediniz.

      +
    • + +
    • SuEXEC kodunda değişiklik + +

      Gerçekte ne yaptığınızı bilmiyorsanız bu, + büyük bir sorun olabilir. Böyle şeyler yapmaktan + mümkün olduğunca uzak durmalısınız.

      +
    • +
    + +
    + +
    diff --git a/docs/manual/upgrading.html b/docs/manual/upgrading.html index 35b0339c8f6..849a801236a 100644 --- a/docs/manual/upgrading.html +++ b/docs/manual/upgrading.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: upgrading.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,18 +12,6 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: upgrading.html.ja.euc-jp +URI: upgrading.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP - -URI: upgrading.html.ko.euc-kr -Content-Language: ko -Content-type: text/html; charset=EUC-KR - -URI: upgrading.html.pt-br -Content-Language: pt-br -Content-type: text/html; charset=ISO-8859-1 - -URI: upgrading.html.ru.koi8-r -Content-Language: ru -Content-type: text/html; charset=KOI8-R +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/upgrading.html.de b/docs/manual/upgrading.html.de index ec749e137a8..6f6725322a4 100644 --- a/docs/manual/upgrading.html.de +++ b/docs/manual/upgrading.html.de @@ -1,93 +1,109 @@ - -Upgrade von 2.0 auf 2.1 - Apache HTTP Server +Upgrade von 2.0 auf 2.2 - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Upgrade von 2.0 auf 2.1

    +Apache > HTTP-Server > Dokumentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Upgrade von 2.0 auf 2.2

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    + fr  | + ja 

    +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.
    -

    Dieses Dokument dient der Unterstützung beim Upgrade. Es - enthält die entscheidenden Informationen für bisherige +

    Dieses Dokument dient der Unterstützung beim Upgrade. Es + enthält die entscheidenden Informationen für bisherige Apache-Nutzer. Diese sind als kurze Anmerkungen gedacht. Weitere Informationen finden Sie entweder unter Neue Funktionen oder in den src/CHANGES-Dateien.

    -

    Dieses Dokument beschreibt lediglich die Änderungen von Version - 2.2 gegenüber Version 2.0. Wenn Sie ein Upgrade von Version 1.3 - durchführen, sollten Sie auch Upgrade von 1.3 +

    Dieses Dokument beschreibt lediglich die Änderungen von Version + 2.2 gegenüber Version 2.0. Wenn Sie ein Upgrade von Version 1.3 + durchführen, sollten Sie auch Upgrade von 1.3 auf 2.0 zu Rate ziehen.

    -
    top
    -

    Änderungen der Konfiguration bei der Kompilierung

    +

    Änderungen der Konfiguration bei der Kompilierung

    - +
    top
    -

    Änderungen der Laufzeit-Konfiguration

    +

    Änderungen der Laufzeit-Konfiguration

    • Die mit dem Apache HTTP Server ausgelieferte Konfigurationsdatei - httpd.conf wurde stark vereinfacht, indem alle außer + httpd.conf wurde stark vereinfacht, indem alle außer den unbedingt notwendigen Konfigurationseinstellungen entfernt wurden. Im conf/extra/-Verzeichnis Ihrer Installation finden Sie - eine Reihe von Konfigurationsbeispielen für erweiterte Funktionen. + eine Reihe von Konfigurationsbeispielen für erweiterte Funktionen.
    • Die apachectl-Option startssl gibt es - nicht mehr. Um SSL-Unterstützung zu aktivieren müssen Sie die + nicht mehr. Um SSL-Unterstützung zu aktivieren müssen Sie die httpd.conf editieren und die entsprechenden - mod_ssl-Anweisungen einfügen und - anschließend den Server mit apachectl start starten. + mod_ssl-Anweisungen einfügen und + anschließend den Server mit apachectl start starten. Eine Beispielkonfiguration zum Aktivieren von mod_ssl ist in conf/extra/httpd-ssl.conf enthalten.
    • Die Voreinstellung von UseCanonicalName ist jetzt Off. Wenn diese Anweisung nicht in Ihrer Konfigurationsdatei enthalten ist, - können Sie UseCanonicalName On einfügen, um das + können Sie UseCanonicalName On einfügen, um das bisherige Verhalten beizubehalten.
    • -
    • Das Modul mod_userdir reagiert nicht länger auf +
    • Das Modul mod_userdir reagiert nicht länger auf Anfragen, solange nicht in der Konfigurationsdatei eine UserDir-Anweisung enthalten ist, die - einen Verzeichnisnamen angibt. Fügen Sie Ihrer Konfigurationsdatei + einen Verzeichnisnamen angibt. Fügen Sie Ihrer Konfigurationsdatei die Anweisung UserDir public_html hinzu, um das bisherige Verhalten wiederherzustellen.
    top
    top
    @@ -97,14 +113,32 @@
    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    + fr  | + ja 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/upgrading.html.en b/docs/manual/upgrading.html.en index 993a3214af3..b3b8b4d31c8 100644 --- a/docs/manual/upgrading.html.en +++ b/docs/manual/upgrading.html.en @@ -1,30 +1,34 @@ - -Upgrading to 2.1 from 2.0 - Apache HTTP Server +Upgrading to 2.2 from 2.0 - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Upgrading to 2.1 from 2.0

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Upgrading to 2.2 from 2.0

    Available Languages:  de  |  en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    + fr  | + ja 

    In order to assist folks upgrading, we maintain a document @@ -34,7 +38,7 @@ the src/CHANGES file.

    This document describes only the changes from 2.0 to 2.2. If you - are upgrading from version 1.3, you should also consult the 1.3 to 2.0 + are upgrading from version 1.3, you should also consult the 1.3 to 2.0 upgrading document.

    @@ -43,32 +47,62 @@
  • Misc Changes
  • Third Party Modules
  • See also

    + Apache 2.2
    top

    Compile-Time Configuration Changes

    +

    The compilation process is very similar to the one used in + version 2.0. Your old configure command line (as + found in build/config.nice in the installed server + directory) can be used in some cases. The most significant change + required will be to account for changes in module names, in + particular for the authentication and authorization modules. + Some details of changes:

    + + +
    top

    Run-Time Configuration Changes

    -
      -
    • The config file httpd.conf distributed with the - Apache HTTP Server has been greatly simplified by removing all - but the most essential configuration settings. A set of example - configuration settings for more advanced features is present in - the conf/extra/ directory of the installed - server.
    • +

      Your existing version 2.0 config files and startup scripts can + usually be used unchanged in version 2.2. Some small + adjustments may be necessary for particular configurations as + discussed below. In addition, if you dynamically load the + standard modules using the LoadModule directive, then you will + need to account for the module name changes mentioned above.

      + +

      If you choose to use the new default + configuration file for version 2.2, you will find that it has + been greatly simplified by removing all but the most essential + configuration settings. A set of example configuration settings + for more advanced features is present in the + conf/extra/ directory of the installed server. Default + configuration files are installed in the conf/original + directory.

      +

      Some runtime configuration changes that you may notice:

      + +
      • The apachectl option - startssl is no longer available. To enable ssl + startssl is no longer available. To enable SSL support, you should edit httpd.conf to include the relevant mod_ssl directives and then use apachectl start to start the server. An example - configuration to activate mod_ssl has been included - in conf/extra/httpd-ssl.conf.
      • + configuration to activate mod_ssl has been + included in conf/extra/httpd-ssl.conf.
      • The default setting of UseCanonicalName is now Off. If you did not have this directive in your @@ -81,27 +115,73 @@ old default behavior, place the directive UserDir public_html in your config file.
      • +
      • The directive AuthDigestFile + from mod_auth_digest has been merged with + AuthUserFile + and is now part of mod_authn_file.
      • + +
      • RewriteRule directives + are evaluated before ProxyPass ones.
    top

    Misc Changes

    +
      +
    • The module mod_cache, which was + experimental in Apache 2.0, is now a standard module.
    • + +
    • The module mod_disk_cache, which was + experimental in Apache 2.0, is now a standard module.
    • + +
    • The module mod_mem_cache, which was + experimental in Apache 2.0, is now a standard module.
    • + +
    • The module mod_charset_lite, which was + experimental in Apache 2.0, is now a standard module.
    • + +
    • The module mod_dumpio, which was + experimental in Apache 2.0, is now a standard module.
    • + +
    top

    Third Party Modules

    +

    Many third-party modules designed for version 2.0 will work + unchanged with the Apache HTTP Server version 2.2. But all + modules must be recompiled before being loaded.

    +

    Available Languages:  de  |  en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    + fr  | + ja 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/upgrading.html.fr b/docs/manual/upgrading.html.fr index 28d055f8eb5..2498dcd7997 100644 --- a/docs/manual/upgrading.html.fr +++ b/docs/manual/upgrading.html.fr @@ -1,164 +1,205 @@ - - - - - - - - Mise à jour de la version 1.3 à la version - 2.0 - - - - -
    - [APACHE DOCUMENTATION] - -

    Apache HTTP Server Version 2.1

    -
    - - - - -

    Mise à de la version 1.3 à la - version 2.0

    - -

    Afin d'aider les personnes souhaitant se mettre à - jour, nous maintenons un document décrivant les - informations critiques concernant les utilisateurs d'Apache. - Ces informations sont sous la forme de brèves notes, et - vous pouvez trouver plus d'informations dans le document Nouvelles - fonctionnalités ou dans le fichier - src/CHANGES.

    - -

    Changement de la configuration à la compilation

    + + + + + +Mise à jour vers 2.2 depuis 2.0 - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Mise à jour vers 2.2 depuis 2.0

    +
    +

    Langues Disponibles:  de  | + en  | + fr  | + ja 

    +
    + +

    Afin d'assister les utilisateurs lors de leurs opérations de mise à + jour, nous maintenons un document + qui comporte des informations critiques à l'attention des personnes qui + utilisent déjà Apache. Ces informations ne sont que de brèves notes, et vous + devriez trouver plus d'informations dans le document Nouvelles fonctionnalités, ou dans + le fichier src/CHANGES.

    + +

    Ce document ne décrit que les modifications intervenues entre les versions + 2.0 et 2.2. Si vous effectuez une mise à jour depuis la version 1.3, vous + devez aussi consulter le + document de mise + à jour de 1.3 vers 2.0.

    + +
    + +
    top
    +
    +

    Modifications de la configuration au moment de la compilation

    + + +

    Le processus de compilation est très similaire à celui de la + version 2.0. Dans certains cas, vous pourrez même utiliser + votre ancienne ligne de commande + configure (que vous trouverez dans le fichier + build/config.nice à la racine du répertoire des sources de + votre serveur). Les changements qui devront être le plus souvent effectués + concerneront des noms de modules, et en particulier les modules gérant + l'authentification et les autorisations. + Quelques exemples de modifications :

      -
    • Apache utilise maintenant autoconf et - libtool afin de configurer la compilation. - L'utilisation de ces outils est similaire, mais pas tout - à fait identique, au système APACI de - configuration existant dans la version 1.3 d'Apache.
    • - -
    • En plus de l'habituelle sélection de modules que - vous pouvez choisir de compiler, Apache 2.0 a - déplacé la majeure partie du traitement des - requêtes dans les modules - multi-traitements (MPMs).
    • +
    • mod_imap a été renommé en mod_imagemap
    • +
    • mod_auth a été scindé en quatre modules : + mod_auth_basic, + mod_authn_file, mod_authz_user, et + mod_authz_groupfile
    • +
    • mod_access a été renommé en mod_authz_host
    • +
    • mod_auth_ldap a été renommé en mod_authnz_ldap
    • +
    • La version requise pour l'API APR est la 1.0.
    • +
    • La version de la bibliothèque PCRE intégrée est la 5.0
    -

    Changement de la configuration à - l'exécution

    +
    top
    +
    +

    Modifications de la configuration à l'exécution

    + + +

    Vos fichiers de configuration et scripts de démarrage de la version 2.0 + existante peuvent en général être utilisés sans modification avec la + version 2.2. Quelques petits ajustements peuvent cependant être nécessaires + dans le cas de configurations particulières comme décrit plus bas. + En outre, si des modules standards sont chargés dynamiquement à l'aide de + la directive LoadModule, + vous devez vérifier les changements de noms de modules mentionnés + plus haut.

    + +

    Si vous choisissez d'utiliser le nouveau fichier de configuration par + défaut de la + version 2.2, vous vous apercevrez qu'il a été considérablement simplifié + et ne conserve que les points les plus essentiels de la configuration. + Plusieurs exemples de configurations utilisant des fonctionnalités plus + avancées sont disponibles dans le répertoire + conf/extra/ de l'installation du serveur. Les fichiers de + configuration par défaut se trouvent dans le répertoire + conf/original.

    + +

    Quelques changements dans la configuration à l'exécution que vous + pouvez noter :

      -
    • La directive CacheNegotiatedDocs prend - maintenant un paramètre qui est soit on - soit off. Les configurations existantes - utilisant la directive CacheNegotiatedDocs - doivent la remplacer par CacheNegotiatedDocs - on.
    • - -
    • - La directive ErrorDocument n'utilise plus de - guillemets ou d'apostrophes au début du - paramètre indiquant le message. Dorénavant, - le message devra être entre guillemets. Par exemple, - la directive - -
      - ErrorDocument 403 "Some Message -
      - devra être remplacé par - -
      - ErrorDocument 403 "Some Message" -
      - Si le second argument n'est pas une URL ou un chemin - valide, il sera traité comme un message. -
    • - -
    • Les directives AccessConfig et - ResourceConfig n'existent plus. Ces directives - peuvent être remplacées de manière - équivalente par la directive Include. Si - vous utilisiez ces directives en utilisant les valeurs par - défaut sans les définir explicitement, vous - devez ajouter les lignes Include - conf/access.conf et Include conf/srm.conf - dans votre fichier httpd.conf. Afin de garantir qu'Apache lit - les différents fichiers de configuration dans le - même ordre que celui pour les anciennes directives, Les - directives Include doivent être - situées à la fin du fichier httpd.conf, celle - représentant srm.conf avant celle pour - access.conf.
    • - -
    • La directive BindAddress n'existe plus. La - même fonctionnalité est fournie par la directive - Listen.
    • - -
    • La directive ExtendedStatus n'existe plus. - Le suivi des statuts a été entièrement - réécrit afin de bénéficier du - nouveau système MPM.
    • - -
    • La directive ServerType n'existe plus. La - méthode utilisée pour servir les requêtes - est déterminée maintenant par la - sélection d'un MPM. Il n'existe pas actuellement de - MPM conçu pour être lancé par inetd.
    • - -
    • Beaucoup de directives qui étaient situées - dans le noyau du serveur pour la version 1.3 se trouvent - maintenant dans les MPMs.
    • - -
    • Les modules mod_log_agent et mod_log_referer qui - traitaient les directives AgentLog, - RefererLog et RefererIgnore ont - été supprimés. Le traçage des - agents et référants et toujours disponible en - utilisant la directive CustomLog du - module mod_log_config.
    • +
    • L'option startssl du programme + apachectl n'est plus disponible. Pour activer le + support SSL, vous devez éditer httpd.conf de façon à + inclure les directives du module mod_ssl + correspondantes, puis utiliser la commande apachectl start + pour démarrer le serveur. Vous trouverez un exemple de configuration + permettant d'activer le module mod_ssl dans le fichier + conf/extra/httpd-ssl.conf.
    • + +
    • La directive UseCanonicalName est maintenant définie par + défaut à Off. Si cette directive + n'était pas présente dans votre + ancien fichier de configuration, vous pouvez ajouter + UseCanonicalName On dans le nouveau pour garder inchangé + l'ancien comportement.
    • + +
    • Le module mod_userdir ne sera appliqué sur les + requêtes que si une directive UserDir spécifiant un nom de répertoire + se trouve dans le fichier de configuration. Pour garder l'ancien + comportement par défaut inchangé, placer la directive UserDir + public_html dans votre fichier de configuration.
    • + +
    • La directive AuthDigestFile + du module mod_auth_digest a été fusionnée avec la + directive AuthUserFile + et appartient maintenant au module mod_authn_file.
    • + +
    • Les directives RewriteRulesont évaluées avant les + directives ProxyPass.
    - -

    Changements divers

    +
    top
    +
    +

    Changements divers

    +
      -
    • L'option -S du programme httpd - qui servait à afficher la configuration des - hôtes virtuels est remplacé par -t -D - DUMP_VHOSTS.
    • - -
    • Le module mod_auth_digest, qui était - expérimental dans la version 1.3, est maintenant un - module standard.
    • - -
    • Le module mod_mmap_static, qui était - expérimental dans la version 1.3 a été - remplacé par le module mod_file_cache.
    • -
    +
  • Le module mod_cache, qui était + expérimental dans Apache 2.0, est désormais un module standard.
  • -

    Modules tiers

    +
  • Le module mod_disk_cache, qui était + expérimental dans Apache 2.0, est désormais un module standard.
  • -

    D'énormes changements ont été - réalisés sur l'API du serveur Apache 2.0. Les - modules conçus à l'aide de l'API Apache 1.3 - ne fonctionneront pas sur Apache 2.0 sans - modifications. Plus de détails sont fournis dans la documentation du développeur.

    -
    +
  • Le module mod_mem_cache, qui était + expérimental dans Apache 2.0, est désormais un module standard.
  • -

    Apache HTTP Server Version 2.1

    - Index +
  • Le module mod_charset_lite, qui était + expérimental dans Apache 2.0, est désormais un module standard.
  • +
  • Le module mod_dumpio, qui était + expérimental dans Apache 2.0, est désormais un module standard.
  • - - - - + +
    top
    +
    +

    Modules tiers

    + + +

    De nombreux modules tiers conçus pour la version 2.0 fonctionneront sans + changement avec le serveur HTTP Apache version 2.2. Mais tous ces modules + doivent être recompilés avant de pouvoir être chargés.

    + +
    +
    +

    Langues Disponibles:  de  | + en  | + fr  | + ja 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/upgrading.html.ja.euc-jp b/docs/manual/upgrading.html.ja.euc-jp deleted file mode 100644 index 5ebff64ac7e..00000000000 --- a/docs/manual/upgrading.html.ja.euc-jp +++ /dev/null @@ -1,224 +0,0 @@ - - - -1.3 ¤«¤é 2.0 ¤ؤΥ¢¥åץ°¥졼¥É - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    1.3 ¤«¤é 2.0 ¤ؤΥ¢¥åץ°¥졼¥É

    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    -
    This translation may be out of date. Check the - English version for recent changes.
    - -

    ¥¢¥åץ°¥졼¥ɤò´Êñ¤ˤ¹¤뤿¤á¤ˡ¢´û¸¤Î Apache ¥桼¥¶¤Ë - Èó¾ï¤˽ÅÍפʾðÊó¤򤳤Îʸ½ñ¤ˤޤȤá¤Ƥ¤¤ޤ¹¡£¤³¤ì¤Ïû¤¤ - Ãí°ս񤭤Ȥ·¤ƽ񤫤ì¤Ƥ¤¤ޤ¹¡£¤è¤ê¾ܤ·¤¤¾ðÊó¤Ï - ¿·µ¡ǽ¤Îʸ½ñ¤ä - src/CHANGES ¥ե¡¥¤¥ë¤Ǹ«¤Ĥ±¤é¤ì¤ë¤Ȼפ¤¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¥³¥ó¥ѥ¤¥ë»þ¤ÎÀßÄê¤ÎÊѹ¹

    - - -
      -
    • Apache ¤Ï ¥ӥë¥ɽèÍý¤ÎÀßÄê - ¤Ë autoconf ¤È libtool ¤ò»Ȥ¦¤褦¤ˤʤê¤ޤ·¤¿¡£ - ¤³¤Υ·¥¹¥ƥà¤Ï Apache 1.3 ¤Î APACI ¥·¥¹¥ƥà¤Ȼ÷¤Ƥ¤¤ޤ¹¤¬¡¢ - ¤ޤ俤¯Ʊ¤¸¤Ȥ¤¤¦¤櫓¤ǤϤ¢¤ê¤ޤ»¤ó¡£
    • - -
    • Ä̾ï¤Υ³¥ó¥ѥ¤¥뤹¤뤫¤ɤ¦¤«¤òÁªÂò¤Ǥ­¤ë¥⥸¥塼¥뷲¤˲䨤ơ¢ - Apache 2.0 ¤Ï - ¥ꥯ¥¨¥¹¥ȽèÍý¤μç¤ÊÉôʬ¤ò ¥ޥë¥Á¥ץí¥»¥å·¥ó¥° - ¥⥸¥塼¥ë (MPM) ¤˰Üư¤·¤ޤ·¤¿¡£
    • -
    -
    top
    -
    -

    ¼¹Իþ¤ÎÀßÄê¤ÎÊѹ¹

    - - -
      -
    • Apache 1.3 ¤λþ¤˥³¥¢¥µ¡¼¥Фˤ¢¤ä¿¿¤¯¤Υǥ£¥쥯¥ƥ£¥֤Ï - MPM ¤˰Üư¤·¤ޤ·¤¿¡£¥µ¡¼¥ФË Apache 1.3 ¤ȤǤ­¤ë¤À¤±Ʊ¤¸¿¶¤ëÉ񤤤ò - ¤µ¤»¤¿¤¤¾ì¹ç¤ϡ¢prefork MPM ¤ò - Áª¤ó¤Ǥ¯¤À¤µ¤¤¡£¾¤Î MPM ¤ϥץí¥»¥¹¤κîÀ®¤ä¥ꥯ¥¨¥¹¥ȤνèÍý¤Î - À©¸æ¤˰ۤʤä¿¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¤¤ޤ¹¡£
    • - -
    • Proxy ¥⥸¥塼¥ë ¤Ï - HTTP/1.1 ¤ËÂбþ¤¹¤뤿¤á¤˺ƹ½À®¤µ¤ì¤ޤ·¤¿¡£½ÅÍפÊÊѹ¹ÅÀ¤Ȥ·¤Ƥϡ¢ - ¥ץí¥­¥·¤Υ¢¥¯¥»¥¹À©¸椬 <Directory proxy:> ¥֥í¥å¯¤Î - Âå¤ï¤ê¤Ë <Proxy> - ¥֥í¥å¯¤ËÃ֤«¤ì¤ë¤褦¤ˤʤä¿¡¢¤Ȥ¤¤¦¤â¤Τ¬¤¢¤ê¤ޤ¹¡£
    • - -
    • ¥⥸¥塼¥ë¤ÎÃæ¤ˤϡ¢PATH_INFO (ËÜÅö¤Υե¡¥¤¥ë̾¤θå¤Ë³¤¯ - ¥ѥ¹¾ðÊó) ¤ΰ·¤¤¤¬ÊѤï¤ä¿¤â¤Τ¬¤¢¤ê¤ޤ¹¡£°ÊÁ°¤ϥϥó¥ɥé¤Ȥ·¤Æ - ¼ÂÁõ¤µ¤ì¤Ƥ¤¤¿¤â¤Τ¬¥ե£¥륿¤Ȥ·¤ƼÂÁõ¤µ¤ì¤ë¤褦¤ˤʤ俤â¤ΤÏ - PATH_INFO ¤Τ¢¤ë¥ꥯ¥¨¥¹¥Ȥò¼õ¤±Éդ±¤ޤ»¤ó¡£INCLUDES ¤ä - PHP ¤ʤɤΥե£¥륿¤Ï - ¥³¥¢¥ϥó¥ɥé¤ξå¤˼ÂÁõ¤µ¤ì¤Ƥ¤¤ޤ¹¤Τǡ¢PATH_INFO - Éդ­¤Υꥯ¥¨¥¹¥ȤòµñÈݤ·¤ޤ¹¡£ - AcceptPathInfo - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäƥ³¥¢¥ϥó¥ɥ餬 PATH_INFO - Éդ­¤Υꥯ¥¨¥¹¥Ȥò¼õ¤±Éդ±¤ë¤褦¤ˤǤ­¡¢¤½¤ì¤ˤè¤äÆ SSI Åù¤Ç - PATH_INFO ¤ò»Ȥ¦µ¡ǽ¤òÉü³褵¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£
    • - -
    • CacheNegotiatedDocs - ¥ǥ£¥쥯¥ƥ£¥֤Ï on ¤⤷¤¯¤Ï off ¤Ȥ¤¤¦°ú¿ô¤ò - ¼è¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£´û¤Ë¸ºߤ·¤Ƥ¤¤ë - CacheNegotiatedDocs ¤Ï - CacheNegotiatedDocs on - ¤ËÃ֤­´¹¤¨¤Ƥ¯¤À¤µ¤¤¡£
    • - -
    • - ErrorDocument - ¥ǥ£¥쥯¥ƥ£¥֤ϥƥ­¥¹¥ȥá¥å»¡¼¥¸¤ò - ¼¨¤¹¤¿¤á¤˰ú¿ô¤κǽé¤˻Ȥï¤ì¤Ƥ¤¤¿°úÍÑÉä¤ò»Ȥï¤ʤ¤¤褦¤ˤʤê¤ޤ·¤¿¡£ - Âå¤ï¤ê¤ˡ¢¥á¥å»¡¼¥¸¤òÆó½ŰúÍÑÉä¤ǰϤà¤褦¤ˤʤäƤ¤¤ޤ¹¡£ - Î㤨¤С¢´û¸¤Î - -

      - ErrorDocument 403 "Some Message -

      - ¤Ï - -

      - ErrorDocument 403 "Some Message" -

      - - ¤ËÃ֤­´¹¤¨¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ÆóÈÖÌܤΰú¿ô¤ϡ¢ͭ¸ú¤Ê URL ¤ä¥ѥ¹̾¤Ǥʤ¤¸¤ê - ¥ƥ­¥¹¥ȥá¥å»¡¼¥¸¤Ȥ·¤ư·¤ï¤ì¤ޤ¹¡£ -
    • - -
    • AccessConfig ¥ǥ£¥쥯¥ƥ£¥֤È - ResourceConfig ¥ǥ£¥쥯¥ƥ£¥֤Ϻï½ü¤µ¤ì¤ޤ·¤¿¡£ - ¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤ÏƱÅù¤ε¡ǽ¤ò»ý¤Ä - Include ¤Ç - Ã֤­´¹¤¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ÀßÄê¥ե¡¥¤¥ë¤˼è¤ê¹þ¤àÂå¤ï¤ê¤ˡ¢ - ¾å¤Υǥ£¥쥯¥ƥ£¥֤Υǥե©¥ë¥ÈÃͤò»ȤäƤ¤¤¿¾ì¹ç¤ϡ¢ - httpd.conf ¤Ë Include conf/access.conf ¤È - Include conf/srm.conf ¤òÄɲ乤ëɬÍפ¬¤¢¤ë¤Ǥ·¤礦¡£ - °ÊÁ°¤Υǥ£¥쥯¥ƥ£¥֤ˤè¤ë½çÈ֤Τ褦¤Ë Apache ¤¬ÀßÄê¥ե¡¥¤¥ë¤ò - Æɤ߹þ¤à¤褦¤ˤ¹¤뤿¤á¤ˤϡ¢httpd.conf ¤κǸå¤Ë - srm.conf¡¢access.conf ¤νç¤ˤ½¤줾¤ì - Include - ¥ǥ£¥쥯¥ƥ£¥֤ò½񤤤Ƥ¯¤À¤µ¤¤¡£
    • - -
    • BindAddress ¥ǥ£¥쥯¥ƥ£¥֤È Port - ¥ǥ£¥쥯¥ƥ£¥֤Ϻï½ü¤µ¤ì¤ޤ·¤¿¡£ƱÅù¤ε¡ǽ¤Ϥè¤ê½ÀÆð¤Ê - Listen - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤êÄ󶡤µ¤ì¤Ƥ¤¤ޤ¹¡£
    • - -
    • Port ¥ǥ£¥쥯¥ƥ£¥֤Ï Apache-1.3 ¤ˤϼ«¸ʻ²¾È URL ¤Ç - »Ȥï¤ì¤ë¥ݡ¼¥ÈÈֹæ¤òÀßÄꤹ¤롢¤Ȥ¤¤¦»ÈÍÑˡ¤⤢¤ê¤ޤ·¤¿¡£ - ¤³¤ì¤Ï Apache-2.0 ¤ǤϿ·¤·¤¤ - ServerName - ¹½ʸ¤ˤè¤äƹԤʤ¤¤ޤ¹¡£°ì¤ĤΥǥ£¥쥯¥ƥ£¥֤ǥۥ¹¥È̾¤È - ¼«¸ʻ²¾È URL ¤ÎξÊý¤òÀßÄê¤Ǥ­¤ë¤褦¤˹½ʸ¤¬Êѹ¹¤µ¤ì¤ޤ·¤¿¡£
    • - -
    • ServerName ¥ǥ£¥쥯¥ƥ£¥֤Ϻï½ü¤µ¤ì¤ޤ·¤¿¡£ - ¥ꥯ¥¨¥¹¥Ȥ򰷤¦Êýˡ¤Ï MPM ¤ÎÁªÂò¤ˤè¤ê·èÄꤵ¤ì¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£ - ¸½»þÅÀ¤ǤÏ inetd ¤«¤鵯ư¤µ¤ì¤ë¤褦¤ËÀ߷פµ¤줿 MPM ¤Ϥ¢¤ê¤ޤ»¤ó¡£
    • - -
    • AgentLog ¥ǥ£¥쥯¥ƥ£¥֡¢ - RefererLog ¥ǥ£¥쥯¥ƥ£¥֡¢ - RefererIgnore ¥ǥ£¥쥯¥ƥ£¥֤òÄ󶡤·¤Ƥ¤¤¿ - mod_log_agent ¤È mod_log_referer - ¥⥸¥塼¥ë¤Ϻï½ü¤µ¤ì¤ޤ·¤¿¡£ - Agent ¥í¥°¤È refere ¥í¥°¤Ï mod_log_config ¤Î - CustomLog - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤ê¼¸½²Äǽ¤Ǥ¹¡£
    • - -
    • AddModule ¥ǥ£¥쥯¥ƥ£¥֤È ClearModuleList - ¥ǥ£¥쥯¥ƥ£¥֤Ϻï½ü¤µ¤ì¤ޤ·¤¿¡£¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤ϡ¢ - ¥⥸¥塼¥뤬Àµ¤·¤¤½çÈ֤ǸƤФì¤ë¤褦¤ˤ¹¤뤿¤á¤˻Ȥï¤ì¤Ƥ¤¤ޤ·¤¿¡£ - Apache 2.0 ¤ο· API ¤ϥ⥸¥塼¥뤬ÌÀ¼¨Ū¤˽çÈ֤ò»ØÄê¤Ǥ­¤ë¤褦¤Ë - ¤ʤäƤª¤ꡢ¤³¤ì¤é¤Υǥ£¥쥯¥ƥ£¥֤ÏɬÍפʤ¯¤ʤê¤ޤ·¤¿¡£
    • - -
    • FancyIndexing ¥ǥ£¥쥯¥ƥ£¥֤Ϻï½ü¤µ¤ì¤ޤ·¤¿¡£ - Ʊ¤¸µ¡ǽ¤Ï IndexOptions - ¥ǥ£¥쥯¥ƥ£¥֤Î FancyIndexing ¥ª¥ץ·¥ç¥ó¤Ç - ¼¸½¤Ǥ­¤ޤ¹¡£
    • - -
    • mod_negotiation ¤ˤè¤ë MultiViews - ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥󵻽Ѥϡ¢ - ¥ǥե©¥ë¥ȤΥե¡¥¤¥ë¥ޥåÁ¥󥰤¬¤è¤긷̩¤ʤâ¤ΤËÊѹ¹¤µ¤ì¤ޤ·¤¿¡£ - ¥ͥ´¥·¥¨¡¼¥ȲÄǽ¤Ê¥ե¡¥¤¥ë¤ξì¹ç¤ˤΤßÁªÂ򤵤ì¤ޤ¹¡£ - °ÊÁ°¤εóư¤ϡ¢MultiviewsMatch - ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ¹¤뤳¤ȤÇÉü³è¤Ǥ­¤ޤ¹¡£
    • - -
    • (¥С¼¥¸¥ç¥ó 2.0.51 ¤«¤é) -

      ErrorHeader ¥ǥ£¥쥯¥ƥ£¥֤ÏÉÔŬÀڤÊ̾Á° - ¤À¤ä¿¤¿¤á¤ËÇѻߤµ¤졢¤½¤ε¡ǽ¤Ï Header ¥ǥ£¥쥯¥ƥ£¥֤ËÅý¹礵¤ì¤ޤ·¤¿¡£ - ˾¤ߤÎưºî¤òÆÀ¤뤿¤á¤ˤÏ ErrorHeader ¤ÎÂå¤ï¤ê¤Ë

      - -

      - Header always set foo bar -

      - -

      ¤ò»ȤäƤ¯¤À¤µ¤¤¡£

    • -
    -
    top
    -
    -

    ¤½¤Î¾¤ÎÊѹ¹

    - - -
      -
    • Apache 1.3 ¤Ǽ¸³Ū¤ʥ⥸¥塼¥ë¤À¤ä¿ - mod_auth_digest ¤Ï - ɸ½à¥⥸¥塼¥ë¤ˤʤê¤ޤ·¤¿¡£
    • - -
    • Apache 1.3 ¤Ǽ¸³Ū¤ʥ⥸¥塼¥ë¤À¤ä¿ mod_mmap_static ¤Ï - mod_file_cache ¤ÇÃ֤­´¹¤¨¤é¤ì¤ޤ·¤¿¡£
    • - -
    • Apache ¤ÎÇÛÉۤÏÆÈΩ¤·¤¿ src ¥ǥ£¥쥯¥ȥ꤬ - ¤ʤ¯¤ʤë¤褦¤ˡ¢´°Á´¤˺ƹ½À®¤µ¤ì¤ޤ·¤¿¡£¤½¤ÎÂå¤ï¤ê¤ˡ¢ - ¥½¡¼¥¹¤ϼç¥ǥ£¥쥯¥ȥê¤ËÏÀÍýŪ¤ËÇÛÃ֤µ¤ì¤ë¤褦¤ˤʤꡢ - ¥³¥ó¥ѥ¤¥뤵¤줿¥µ¡¼¥ФΥ¤¥󥹥ȡ¼¥ë¤ÏÊ̥ǥ£¥쥯¥ȥê¤Ø - ¹Ԥʤ¦¤褦¤ˤʤê¤ޤ·¤¿¡£
    • -
    -
    top
    -
    -

    ¥µ¡¼¥ɥѡ¼¥ƥ£¥⥸¥塼¥ë

    - - -

    Apache 2.0 ¤Υµ¡¼¥Ð API ¤ˤÏ¿¤¯¤ÎÊѹ¹¤¬²ä¨¤é¤ì¤ޤ·¤¿¡£ - Apache 1.3 ÍѤδû¸¤Υ⥸¥塼¥ë¤Ï Apache 2.0 ¤ǤϽ¤Àµ¤ʤ·¤ǤÏ - ư¤­¤ޤ»¤ó¡£¾ܺ٤Ï ³«ȯ¼Ըþ¤±ʸ½ñ ¤ˤ¢¤ê¤ޤ¹¡£

    -
    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    - \ No newline at end of file diff --git a/docs/manual/upgrading.html.ja.utf8 b/docs/manual/upgrading.html.ja.utf8 new file mode 100644 index 00000000000..64205554c48 --- /dev/null +++ b/docs/manual/upgrading.html.ja.utf8 @@ -0,0 +1,198 @@ + + + + + +2.0 から 2.2 へのアップグレード - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    2.0 から 2.2 へのアップグレード

    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    アップグレードを簡単にするために、既存の Apache ユーザに + 非常に重要な情報をこの文書にまとめています。これは短い + 注意書きとして書かれています。より詳しい情報は 新機能の文書や + src/CHANGES ファイルで見つけられると思います。

    + +

    この文書は 2.0 から 2.2 への変更点だけを説明します。 + もし 1.3 からのアップグレードをするのであれば、1.3 から 2.0 + へのアップグレードの文書 も参考にしてください。

    + +
    + +
    top
    +
    +

    コンパイル時の設定の変更

    + + +

    コンパイルの過程はバージョン 2.0 で使われているものと非常に + よく似ています。古い configure コマンドライン + (インストールしたサーバのディレクトリにある + build/config.nice) + が、ときには使えるでしょう。最も大きな変更点はモジュールの名前の + 変更を入れるために必要とされるもので、特に認証と認可のモジュール + の変更点です。 + 変更の詳細の一部は:

    + + + +
    top
    +
    +

    実行時の設定の変更

    + + +

    あなたが使っているバージョン 2.0 用の設定ファイルとスタート + アップスクリプトは通常バージョン 2.2 でも変更せずに使えます。 + 特定の設定については 以下に議論するようにいくらか小さな + 調整が必要となるかもしれません。 さらに、 + LoadModule + ディレクティブを使って動的にモジュールを読み込んで使って + いる場合には、上に挙げたモジュール名の変更を考慮する必要が + あるでしょう。

    + +

    もし、あなたがバージョン 2.2 のデフォルトの実行時設定を使う + ことを選ぶなら 最も基本的な設定以外は除外されていて 非常に + 簡単化されていることに気付くでしょう。 + より高度な機能に関する実行時の設定の例が、インストールした + サーバの conf/extra/ のディレクトリに入ります。 + デフォルトの設定ファイルは conf/original + にインストールされます。

    + +

    実行時の設定の主な変更点を挙げると:

    + +
      +
    • apachectl のオプションであった + startssl は無くなりました。 + SSL サポートを有効にするには httpd.conf を + 編集して関連する mod_ssl ディレクティブを + 入れるようにし、それから apachectl start で + サーバをスタートしてください。 + mod_ssl を有効にする設定ファイルの例が + conf/extra/httpd-ssl.conf + にあります。
    • + +
    • デフォルトの設定としての UseCanonicalName は + Off となりました。もし、このディレクティブを + 実行時設定ファイルに書いていなかったら、旧バージョンでの + ふるまいを維持したい場合には UseCanonicalName On を + 加えておくことができます。
    • + +
    • mod_userdir モジュールは、 + ディレクトリ名を指定したUserDir ディレクティブが + 設定ファイルに書かれていなければ + リクエスト時に動作しないようになりました。 古いデフォルト + 動作を復元させたい場合には、設定ファイルに UserDir + public_html を入れておいてください。
    • + +
    • mod_auth_digest にあった + AuthDigestFile ディレクティブは、 + AuthUserFile + に吸収され、 mod_authn_file の一部となりました。
    • +
    +
    top
    +
    +

    その他の変更

    + + +
      +
    • Apache 2.0 で実験的なモジュールだった + mod_cache は標準モジュールになりました。
    • + +
    • Apache 2.0 で実験的なモジュールだった + mod_disk_cache は標準モジュールになりました。
    • + +
    • Apache 2.0 で実験的なモジュールだった + mod_mem_cache は標準モジュールになりました。
    • + +
    • Apache 2.0 で実験的なモジュールだった + mod_charset_lite は標準モジュールになりました。
    • + +
    • Apache 2.0 で実験的なモジュールだった + mod_dumpio は標準モジュールになりました。
    • + +
    +
    top
    +
    +

    サードパーティモジュール

    + + +

    バージョン 2.0 のために設計された多くのサードパーティ + モジュールは Apache HTTP サーバ・バージョン 2.2 で、変更無しで + 動作するでしょう。しかし、全てのモジュールはロードの前に再コンパイル + する必要があります。

    + +
    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/upgrading.html.ko.euc-kr b/docs/manual/upgrading.html.ko.euc-kr deleted file mode 100644 index 90d949ec84e..00000000000 --- a/docs/manual/upgrading.html.ko.euc-kr +++ /dev/null @@ -1,206 +0,0 @@ - - - -1.3¿¡¼­ 2.0À¸·Î ¾÷±׷¹À̵å - Apache HTTP Server - - - - - -
    <-
    -

    1.3¿¡¼­ 2.0À¸·Î ¾÷±׷¹À̵å

    -
    -

    °¡´ÉÇÑ ¾ð¾î:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    -
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. - Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    - -

    ¿츮´Â ±âÁ¸ ¾ÆÆÄġ »ç¿ëÀڰ¡ ¾÷±׷¹À̵åÇϴ °ÍÀ» µ½±âÀ§ÇØ - Á߿äÇÑ Á¤º¸¸¦ ¾˷ÁÁִ ¹®¼­¸¦ Á¦°øÇѴÙ. ÀÌ ¹®¼­´Â °£´ÜÇÑ - ¿ä¾àÀ̹ǷÎ, »õ·οî ±â´É - ¹®¼­³ª src/CHANGES ÆÄÀϿ¡¼­ Á¤º¸¸¦ ã¾ƺÁ¾ß - ÇѴÙ.

    -
    - -
    top
    -
    -

    ÄÄÆÄÀϽà ±¸¼º º¯ȭ

    - - -
      -
    • ¾ÆÆÄġ´Â ÀÌÁ¦ ¾ÆÆÄġ ÄÄÆÄÀϰú ¼³ġ¸¦ À§ÇØ - autoconf¿Í libtool ½ýºÅÛÀ» - »ç¿ëÇѴÙ. ÀÌ ½ýºÅÛÀÇ »ç¿ë¹ýÀº Apache 1.3ÀÇ APACI ½ýºÅ۰ú - °°Áö´Â ¾ÊÁö¸¸ ºñ½ÁÇϴÙ.
    • - -
    • ÄÄÆÄÀÏ ¿©ºθ¦ ¼±ÅÃÇÒ ¸ðµâ¿ܿ¡ Apache 2.0Àº ¿äûÀ» - ó¸®Çϴ Áֿä ºκÐÀ» ´ÙÁßó¸® ¸ðµâ - (Multi-Processing Modules) (MPM)·Î ¿Űå´Ù.
    • -
    -
    top
    -
    -

    ½ÇÇà½Ã ¼³Á¤ º¯ȭ

    - - -
      -
    • Apache 1.3¿¡¼­ ¼­¹ö Çٽɿ¡ À־ú´ø ¸¹Àº Áö½þîµéÀÌ - ÀÌÁ¦´Â MPM¿¡ ÀִÙ. ¼­¹ö°¡ Apache 1.3°ú ÃִëÇÑ ºñ½ÁÇϰÔ - µ¿ÀÛÇϱæ ¹ٶõ´ٸé prefork MPMÀ» ¼±ÅÃÇؾß - ÇѴÙ. ´ٸ¥ MPMÀº ´ٸ¥ Áö½þ »ç¿ëÇϿ© ÇÁ·μ¼½º »ý¼º°ú - ¿äûÀÇ ó¸®¸¦ Á¶ÀýÇѴÙ.
    • - -
    • proxy ¸ðµâÀº HTTP/1.1¿¡ - ¸ÂÃ߾î ¼öÁ¤µǾú´Ù. Á߿äÇÑ º¯ȭÁß Çϳª´Â ÀÌÁ¦ ÇÁ·Ͻà Á¢±ÙÁ¦¾ - <Directory proxy:> ºí·ÏÀÌ ¾ƴ϶ó - <Proxy> - ºí·Ͽ¡ À§ġÇϴ Á¡À̴Ù.
    • - -
    • ¸î¸î ¸ðµ⿡¼­ PATH_INFO (Áø¥ °æ·θí - µڿ¡ ³ª¿À´Â °æ·Î Á¤º¸) ó¸® ¹æ½ÄÀÌ º¯°æµǾú´Ù. Àü¿¡ - Çڵ鷯¿´Áö¸¸ ÀÌÁ¦ ÇÊÅͷÎ ±¸ÇöµǴ ¸ðµâÀº ´õ À̻ó - PATH_INFO°¡ Àִ ¿äûÀ» ¹޾ƵéÀÌÁö ¸øÇѴÙ. - INCLUDES³ª PHP¿Í °°Àº ÇÊÅʹ - core Çڵ鷯 À§¿¡ ±¸ÇöµDZ⶧¹®¿¡ PATH_INFO°¡ - Àִ ¿äûÀ» °źÎÇѴÙ. core Çڵ鷯°¡ PATH_INFO°¡ - Àִ ¿äûÀ» ¹޾ƵéÀ̰í server-side include¿¡¼­ - PATH_INFO¸¦ »ç¿ëÇϰÔ ÇϷÁ¸é, AcceptPathInfo Áö½þ »ç¿ëÇؾß - ÇѴÙ.
    • - -
    • CacheNegotiatedDocs - Áö½þî´Â ÀÌÁ¦ ¾ƱԸÕƮ·Î on°ú off¸¦ - ¹޴´Ù. ±âÁ¸ÀÇ CacheNegotiatedDocs´Â - CacheNegotiatedDocs onÀ¸·Î ¼öÁ¤Çؾß ÇѴÙ.
    • - -
    • - ErrorDocument Áö½þî´Â - ´õÀ̻ó ¸޼¼Áö¸¦ ³ªŸ³»´Â ¾ƱԸÕƮ ¾տ¡ µû¿Èǥ¸¦ »ç¿ëÇÏÁö - ¾ʴ´Ù. ´ë½Å ½ֵû¿Èǥ·Î ¸޼¼Áö¸¦ ¹­¾î¾ß ÇѴÙ. ¿¹¸¦ µé¾î °ú°Å - -

      - ErrorDocument 403 "Some Message -

      - ´Â ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Çؾß ÇѴÙ. - -

      - ErrorDocument 403 "Some Message" -

      - µιø° ¾ƱԸÕƮ°¡ À¯ȿÇÑ URLÀ̳ª °æ·θíÀÌ ¾ƴ϶ó¸é ¸޼¼Áö·Î - °£ÁÖÇѴÙ. -
    • - -
    • AccessConfig¿Í ResourceConfig - Áö½þî´Â »ç¶óÁ³´Ù. ±âÁ¸¿¡ »ç¿ëÇϴø Áö½þî´Â °°Àº ±â´ÉÀ» - Çϴ Include Áö½þî·Î - ´ëüÇÒ ¼ö ÀִÙ. °ú°ſ¡ ¼³Á¤ÆÄÀϿ¡¼­ ÀÌ Áö½þîµéÀ» »ç¿ëÇÏÁö¾ʰí - ÀÌ Áö½þîµéÀÇ ±⺻°ªÀ» »ç¿ëÇߴٸé, http.conf¿¡ - Include conf/access.conf¿Í Include - conf/srm.conf¸¦ Ã߰¡ÇÒ Çʿ䰡 ÀִÙ. ¾ÆÆÄġ°¡ ÀÌÀü - Áö½þî¿Í °°Àº ¼ø¼­·Î ¼³Á¤ÆÄÀÏÀ» ÀаÔÇϷÁ¸é - Include Áö½þ - httpd.conf ³¡¿¡ µΰí, srm.confÀÌ - access.conf ¾տ¡ ³ª¿;ß ÇѴÙ.
    • - -
    • BindAddress¿Í Port Áö½þî´Â - »ç¶óÁ³´Ù. ´õ À¯¿¬ÇÑ Listen - Áö½þ °°Àº ±â´ÉÀ» ÇѴÙ.
    • - -
    • Apache-1.3¿¡¼­ Port´Â ÀڱâÂüÁ¶ - URLÀÇ Æ÷Ʈ ¹øȣ¸¦ ¼³Á¤Çϴ Àϵµ ÇߴÙ. Apache-2.0¿¡¼­ ÀÌ - ±â´ÉÀº »õ·οî ServerNameÀ¸·Î - ÇѴÙ. ÇÑ Áö½þ ȣ½ºƮ¸í°ú ÀڱâÂüÁ¶ URLÀ» À§ÇÑ - Æ÷Ʈ ¹øȣ¸¦ °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀִÙ.
    • - -
    • ServerType Áö½þî´Â »ç¶óÁ³´Ù. ¿äûÀ» - ¼­ºñ½ºÇϴ ¹æ¹ýÀº ÀÌÁ¦ MPM ¼±Åÿ¡ ´޷ȴÙ. ÇöÀç inetd¿¡¼­ - ½ÃÀÛÇϵµ·Ï ¼³°èµÈ MPMÀº ¾ø´Ù.
    • - -
    • AgentLog, RefererLog, - RefererIgnore Áö½þ Á¦°øÇÑ - mod_log_agent¿Í mod_log_referer - ¸ðµâÀÌ ¾ø¾îÁ³´Ù. agent ·α׿Í referer ·α״ - mod_log_configÀÇ CustomLog Áö½þ - »ç¿ëÇϿ© °è¼Ó Á¦°øµȴÙ.
    • - -
    • AddModule°ú ClearModuleList - Áö½þî´Â »ç¶óÁ³´Ù. ÀÌ Áö½þîµéÀº ¸ðµâÀ» ¿ùٸ¥ ¼ø¼­·Î - Ȱ¼ºȭÇϷÁ°í »ç¿ëÇߴÙ. »õ·οî Apache 2.0 API´Â ¸ðµâÀÌ - Ȱ¼ºȭµǴ ¼ø¼­¸¦ ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö À־, ÀÌ Áö½þîµéÀÌ - Çʿä¾ø°Ô µǾú´Ù.
    • - -
    • FancyIndexing Áö½þ ¾ø¾îÁ³´Ù. - IndexOptions - Áö½þîÀÇ FancyIndexing ¿ɼÇÀÌ °°Àº ±â´ÉÀ» ÇѴÙ.
    • - -
    • mod_negotiationÀÇ MultiViews ³»¿ëÇù»óÀÌ - ´õ ¾ö°ÝÇϰÔ ±⺻ÆÄÀÏÀ» ã´´Ù. ³»¿ëÇù»óÀº Çù»󰡴ÉÇÑ - ÆÄÀÏ Á߿¡¼­¸¸ ¼±ÅÃÇѴÙ. MultiviewsMatch Áö½þ - »ç¿ëÇϿ© ÀÌÀü°ú °°ÀÌ µ¿ÀÛÇϰÔ ÇÒ ¼ö ÀִÙ.
    • - -
    • (2.0.51 ¹öÀü ÀÌÈÄ) -

      ErrorHeader Áö½þî´Â À߸øµÈ ¸íĪÀ¸·Î, - ÀÌ Áö½þ ´ã´çÇÑ ±â´ÉÀº Header Áö½þî·εµ °¡´ÉÇϴÙ. - ¿øÇϴ ±â´ÉÀ» À§ÇØ,

      - -

      - Header always set ¾î¼°í Àú¼°í -

      - -

      ¿Í °°ÀÌ ¼³Á¤ÇѴÙ.

    • -
    -
    top
    -
    -

    ±âŸ º¯ȭ

    - - -
      -
    • Apache 1.3¿¡¼­ ½ÇÇèÀûÀ̿´´ø mod_auth_digest - ¸ðµâÀÌ ÀÌÁ¦ ǥÁØ ¸ðµâÀÌ µǾú´Ù.
    • - -
    • Apache 1.3¿¡¼­ ½ÇÇèÀûÀ̿´´ø mod_mmap_static - ¸ðµâÀÌ mod_file_cache·Î ´ëüµǾú´Ù.
    • - -
    • ¹èÆ÷º»ÀÌ ¿ÏÀüÈ÷ »õ·Î ±¸¼ºµǾî ´õÀ̻ó µ¶¸³µÈ src - µð·ºÅ丮°¡ ¾ø´Ù. ´ë½Å ¼ҽº´Â ÁÖ ¹èÆ÷º» µð·ºÅ丮 ¾Ʒ¡ ³í¸®ÀûÀ¸·Î - ±¸¼ºµÇÀְí, ÄÄÆÄÀÏÇÑ ¼­¹ö´Â ´ٸ¥ µð·ºÅ丮·Î ¼³ġµȴÙ.
    • -
    -
    top
    -
    -

    Á¦»ïÀڰ¡ ¸¸µç ¸ðµâ

    - - -

    Apache 2.0¿¡¼­ ¼­¹ö API°¡ ¸¹ÀÌ º¯°æµǾú´Ù. Apache 1.3 API¿¡ - ¸ÂÃçÁø ±âÁ¸ ¸ðµâÀ» ¼öÁ¤¾øÀÌ Apache 2.0¿¡¼­ »ç¿ëÇÒ ¼ö - ¾ø´Ù. Àڼ¼ÇÑ Á¤º¸´Â °³¹ßÀÚ - ¹®¼­¸¦ Âü°íÇ϶ó.

    -
    -
    -

    °¡´ÉÇÑ ¾ð¾î:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    - \ No newline at end of file diff --git a/docs/manual/upgrading.html.pt-br b/docs/manual/upgrading.html.pt-br deleted file mode 100644 index 5f3bd91caab..00000000000 --- a/docs/manual/upgrading.html.pt-br +++ /dev/null @@ -1,227 +0,0 @@ - - - -Atualizando da versão 1.3 para 2.0 - Servidor HTTP Apache - - - - - -
    <-
    -

    Atualizando da versão 1.3 para 2.0

    -
    -

    Línguas Disponíveis:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    -
    Esta tradução pode estar desatualizada. - Verifique a versão em Inglês para mudanças recentes.
    - -

    Com a finalidade de ajudar as pessoas na atualização do servidor, - nós mantemos um documento que descreve informações críticas para - os usuários já existentes do Apache. Essas informações tem o - intuito de serem breves notas e você deverá encontrar mais - informações no documento Novas Funcionalidades, ou no - arquivo src/CHANGES.

    -
    - -
    top
    -
    -

    Mudanças na Configuração em tempo de Compilação

    - - -
      -
    • O Apache agora usa o sistema autoconf - e libtool para - configurar o processo de construção. - A utilização desse sistema é similar, mas não o - mesmo, a usar o sistema APACI do Apache 1.3
    • - -
    • Além da seleção habitual de módulos que você - pode escolher para compilar, o Apache 2.0 mudou a parte - principal de processamentos de pedidos para os Módulos Multi-Processamento (MPMs).
    • -
    -
    top
    -
    -

    Mudanças na Configuração em tempo de Execução

    - - -
      -
    • Muitas diretrizes que estavam no núcleo do servidor - no Apache 1.3 estão agora nos MPMs. Se você desejar que - o funcionamento do servidor seja o mais similar possível ao - do Apache 1.3, você deve selecionar o MPM prefork. - Os outros MPMs terão diretrizes diferentes para controlar - a criação de processos e o processamento de pedidos.
    • - -
    • O módulo proxy foi reconstruído - para o padrão HTTP/1.1. Ao longo das mudanças importantes, - o controle de acesso ao proxy agora fica dentro de um bloco - <Proxy>, - ao invés de um bloco <Directory proxy:>.
    • - -
    • A operação com PATH_INFO (informação de - caminho procedente depois do nome do arquivo verdadeiro) mudou - para alguns módulos. Módulos que eram previamente implementados - como manipuladores mas agora são implementados como filtros - não podem mais aceitar pedidos com PATH_INFO. - Filtros como INCLUDES - ou PHP são implementados - no topo dos manipuladores principais, rejeitando pedidos - com PATH_INFO. Você pode usar a diretriz - AcceptPathInfo - para forçar o manipulador principal a aceitar pedidos - com PATH_INFO e assim restaurar a habilidade - de usá-lo em inclusões por parte do servidor (SSI).
    • - -
    • A diretriz CacheNegotiatedDocs agora aceita - o argumento on ou off. Instâncias - existentes de CacheNegotiatedDocs deverão - ser substituídas por CacheNegotiatedDocs on.
    • - -
    • - A diretriz ErrorDocument - não usa mais aspas no começo do argumento para indicar - mensagens de texto. Ao invés disso, você deve colocar - a mensagem inteira entre aspas. Por exemplo, instâncias - existentes de - -

      - ErrorDocument 403 "Alguma mensagem -

      - devem ser substituídas por - -

      - ErrorDocument 403 "Alguma mensagem" -

      - - Contanto que o segundo argumento não seja uma - URL válida ou um caminho de arquivo, irá ser - tratado como uma mensagem de texto. -
    • - -
    • As diretrizes AccessConfig e - ResourceConfig não existem mais. - Instâncias existentes dessas diretrizes podem ser substituídas - com a diretriz Include - que possui uma funcionalidade equivalente. Se você estava - fazendo uso dos valores padrões dessas diretrizes sem incluí-las - nos arquivos de configuração, você provavelmente terá - que adicionar Include conf/access.conf e - Include conf/srm.conf ao seu httpd.conf. - Com o fim de assegurar que o Apache leia os arquivos de - configuração na mesma ordem que as diretrizes velhas usavam, - a diretriz Include deve ser colocada - no final do httpd.conf, com uma entrada para - srm.conf antes de access.conf.
    • - -
    • As diretrizes BindAddress and Port - não existem mais. Uma funcionalidade equivalente é fornecida com - uma diretriz mais flexível Listen.
    • - -
    • Outro uso da diretriz Port no Apache-1.3 - era ajustar o número da porta usada em URLs auto-referenciáveis. - O equivalente no Apache-2.0 é a nova sintaxe ServerName: ela foi modificada para permitir que - sejam especificados ambos "hostname" e o número da porta - para URLs auto-referenciáveis em uma só diretriz.
    • - -
    • A diretriz ServerType não existe mais. - O método usado para atender pedidos é determinado pela - seleção de MPM. Atualmente não existe nenhuma MPM projetada - para ser executada pelo inetd.
    • - -
    • Os módulos mod_log_agent e mod_log_referer - que forneciam as diretrizes AgentLog, - RefererLog e RefererIgnore foram removidas. - Registros de agentes e referências ainda estão disponíveis - usando a diretriz CustomLog do - mod_log_config.
    • - -
    • As diretrizes AddModule e - ClearModuleList não existem mais. - Essas diretrizes eram usadas para garantir que módulos - pudessem ser habilitados na ordem correta. A nova API do - Apache 2.0 permite que os módulos especifiquem explicitamente - a sua ordem, eliminando a necessidade dessas diretrizes.
    • - -
    • A diretriz FancyIndexing foi removida. - A mesma funcionalidade está disponível através da - opção FancyIndexing da diretriz IndexOptions.
    • - -
    • A técnica de negociação de conteúdo (content-negotiation) - MultiViews fornecida pelo mod_negotiation - se tornou mais rigorosa em sua combinação de arquivo - padrão. Ela irá selecionar apenas arquivos negociáveis - (negotiable). O comportamento antigo pode ser restaurado usando a - diretriz MultiviewsMatch.
    • - -
    • (desde a versão 2.0.51) -

      A funcionalidade da diretriz ErrorHeader - foi colocada em conjunto com a diretriz Header, já que era um - uso de um nome impróprio. Utilize

      - -

      - Header always set foo bar -

      - -

      para obter o comportamento desejado.

    • -
    -
    top
    -
    -

    Mudanças Gerais

    - - -
      -
    • O módulo mod_auth_digest, que era - experimental no Apache 1.3, é agora um módulo padrão.
    • - -
    • O módulo mod_mmap_static, que era experimental no - Apache 1.3, foi substituído com mod_file_cache.
    • - -
    • A distribuição foi completamente reorganizada para - não conter mais um diretório src independente. - Em seu lugar, os fontes são organizados - logicamente no diretório principal da distribuição e - a instalação do servidor compilado deve ser direcionada - à um diretório separado.
    • -
    -
    top
    -
    -

    Módulos de Terceiros

    - - -

    Mudanças extensivas foram feitas na API do servidor - no Apache 2.0. Módulos existentes projetados para a API - do Apache 1.3, não funcionarão no Apache - 2.0 sem modificações. Detalhes serão fornecidos na - documentação do desenvolvedor.

    -
    -
    -

    Línguas Disponíveis:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    - \ No newline at end of file diff --git a/docs/manual/upgrading.html.ru.koi8-r b/docs/manual/upgrading.html.ru.koi8-r deleted file mode 100644 index c00462a2dab..00000000000 --- a/docs/manual/upgrading.html.ru.koi8-r +++ /dev/null @@ -1,203 +0,0 @@ - - - -ðÅÒÅÈÏÄ ÏÔ ×ÅÒÓÉÉ 1.3 Ë ×ÅÒÓÉÉ 2.0 - HTTP ÓÅÒ×ÅÒ Apache - - - - - -
    <-
    -

    ðÅÒÅÈÏÄ ÏÔ ×ÅÒÓÉÉ 1.3 Ë ×ÅÒÓÉÉ 2.0

    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    -
    This translation may be out of date. Check the - English version for recent changes.
    - -

    üÔÏÔ ÄÏËÕÍÅÎÔ ÎÅÏÂÈÏÄÉÍ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÍÏÞØ ÐÏÌØÚÏ×ÁÔÅÌÑÍ - ÐÅÒÅÊÔÉ Ë ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÓÅÒ×ÅÒÁ ×ÅÒÓÉÉ 2.0. úÄÅÓØ ×Ù ÎÁÊÄÅÔÅ ÌÉÛØ - ËÒÁÔËÉÅ ÚÁÍÅÞÁÎÉÑ; ÂÏÌÅÅ ÐÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÎÏ×Ï××ÅÄÅÎÉÑÈ ÍÏÖÎÏ - ÎÁÊÔÉ ÌÉÂÏ × ÄÏËÕÍÅÎÔÅ îÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÌÉÂÏ × ÆÁÊÌÅ src/CHANGES.

    -
    - -
    top
    -
    -

    éÚÍÅÎÅÎÉÑ × ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÉ ÓÂÏÒËÉ ÓÅÒ×ÅÒÁ

    - - -
      -
    • Apache ÔÅÐÅÒØ ÉÓÐÏÌØÚÕÅÔ ÓÉÓÔÅÍÕ autoconf É - libtool ÄÌÑ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ ÐÒÏÃÅÓÓÁ ÓÂÏÒËÉ. - éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÊ ÓÉÓÔÅÍÙ ÐÏÈÏÖÅ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ - APACI × Apache 1.3, ÈÏÔÑ É ÎÅ Ñ×ÌÑÅÔÓÑ ÁÂÓÏÌÀÔÎÏ ÔÅÍ ÖÅ ÓÁÍÙÍ.
    • - -
    • ÷ ÄÏÂÁ×ÏË Ë ÏÂÙÞÎÏÍÕ ÓÐÉÓËÕ ÍÏÄÕÌÅÊ, ËÏÔÏÒÙÅ ×Ù ÍÏÖÅÔÅ - ×ÙÂÒÁÔØ ÐÒÉ ÓÂÏÒËÅ ÓÅÒ×ÅÒÁ, × Apache 2.0 ÐÏÑ×ÉÌÉÓØ ÍÕÌØÔÉ - ÐÒÏÃÅÓÓÎÙÅ ÍÏÄÕÌÉ (íð - ÍÏÄÕÌÉ), × ËÏÔÏÒÙÈ ÔÅÐÅÒØ - ÓËÏÎÃÅÎÔÒÉÒÏ×ÁÎÁ ÏÓÎÏ×ÎÁÑ ÞÁÓÔØ ËÏÄÁ, ÏÔ×ÅÞÁÀÝÅÇÏ ÚÁ ÏÂÒÁÂÏÔËÕ - ÚÁÐÒÏÓÏ×.
    • -
    -
    top
    -
    -

    éÚÍÅÎÅÎÉÑ × ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÉ ÒÁÂÏÔÙ ÓÅÒ×ÅÒÁ

    - - -
      -
    • íÎÏÇÉÅ ÉÚ ÔÅÈ ÄÉÒÅËÔÉ×, ËÏÔÏÒÙÅ ÏÂÓÌÕÖÉ×ÁÌÉÓØ ÑÄÒÏÍ ÓÅÒ×ÅÒÁ - Apache 1.3, ÔÅÐÅÒØ ÐÅÒÅÎÅÓÅÎÙ × ÍÕÌØÔÉ - ÐÒÏÃÅÓÓÎÙÅ ÍÏÄÕÌÉ. åÓÌÉ ×Ù - ÈÏÔÉÔÅ, ÞÔÏÂÙ ÐÏ×ÅÄÅÎÉÅ ÓÅÒ×ÅÒÁ ÂÙÌÏ ÎÁÉÂÏÌÅÅ ÐÒÉÂÌÉÖÅÎÏ Ë ÐÏ×ÅÄÅÎÉÀ - Apache 1.3, ÔÏ ÐÒÉ ÓÂÏÒËÅ ×Ù ÄÏÌÖÎÙ ×ÙÂÒÁÔØ íð-ÍÏÄÕÌØ prefork. äÒÕÇÉÅ íð-ÍÏÄÕÌÉ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ - ÉÎÙÅ ÄÉÒÅËÔÉ×Ù, ÏÔ×ÅÞÁÀÝÉÅ ÚÁ ÒÁÂÏÔÕ ÐÒÏÃÅÓÓÏ× ÓÅÒ×ÅÒÁ É ÏÂÒÁÂÏÔËÕ - ÚÁÐÒÏÓÏ×.
    • - -
    • ðÒÏËÓÉ ÍÏÄÕÌØ ÂÙÌ ÐÅÒÅÐÉÓÁÎ, - É ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÓÐÅÃÉÆÉËÁÃÉÀ HTTP/1.1. ïÄÎÉÍ ÉÚ ÎÁÉÂÏÌÅÅ - ×ÁÖÎÙÈ ÉÚÍÅÎÅÎÉÊ Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÄÉÒÅËÔÉ×Ù, ËÏÎÔÒÏÌÉÒÕÀÝÉÅ ÒÁÂÏÔÕ - ÍÏÄÕÌÑ, ÔÅÐÅÒØ ÒÁÓÐÏÌÁÇÁÀÔÓÑ × ÓÅËÃÉÉ <Proxy>, Á ÎÅ × - <Directory proxy:>, ËÁË ÜÔÏ ÂÙÌÏ ÒÁÎÅÅ.
    • - -
    • ïÂÒÁÂÏÔËÁ PATH_INFO (ÐÕÔÅ×ÏÊ ÉÎÆÏÒÍÁÃÉÉ, ÓÌÅÄÕÀÝÅÊ ÚÁ - ÉÍÅÎÅÍ ÚÁÐÒÁÛÉ×ÁÅÍÏÇÏ ÄÏËÕÍÅÎÔÁ) ÉÚÍÅÎÉÌÁÓØ ÄÌÑ ÎÅËÏÔÏÒÙÈ ÍÏÄÕÌÅÊ. - íÏÄÕÌÉ, ËÏÔÏÒÙÅ ÒÁÎØÛÅ ÂÙÌÉ ÎÁÐÉÓÁÎÙ ËÁË ÏÂÒÁÂÏÔÞÉËÉ (handler), Á - ÔÅÐÅÒØ ×ÙÐÏÌÎÑÀÔ ÒÏÌØ ÆÉÌØÔÒÏ×, ÍÏÇÕÔ ÂÏÌÅÅ ÎÅ ÐÒÉÎÉÍÁÔØ ÚÁÐÒÏÓÙ, - ÓÏÄÅÒÖÁÝÉÅ PATH_INFO. ôÁËÉÅ ÆÉÌØÔÒÙ, ËÁË INCLUDES ÒÅÁÌÉÚÏ×ÁÎÙ ÐÅÒ×ÙÍÉ × ÂÁÚÏ×ÏÍ - ÏÂÒÁÂÏÔÞÉËÅ, ÔÁËÉÍ ÏÂÒÁÚÏÍ ÏÎÉ ÎÅ ÍÏÇÕÔ ÐÒÉÎÉÍÁÔØ ÚÁÐÒÏÓÙ, ÓÏÄÅÒÖÁÝÉÅ - PATH_INFO. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÉÒÅËÔÉ×Õ AcceptPathInfo, ÞÔÏÂÙ ÚÁÓÔÁ×ÉÔØ ÂÁÚÏ×ÙÊ - ÏÂÒÁÂÏÔÞÉË ÐÒÉÎÉÍÁÔØ ÐÏÄÏÂÎÙÅ ÚÁÐÒÏÓÙ, É ÔÁËÉÍ ÏÂÒÁÚÏÍ ×ÏÓÓÔÁÎÏ×ÉÔØ - ×ÏÚÍÏÖÎÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ PATH_INFO × ÄÏËÕÍÅÎÔÁÈ, ÉÓÐÏÌØÚÕÀÝÉÈ ×ËÌÀÞÅÎÉÑ - ÎÁ ÓÔÏÒÏÎÅ ÓÅÒ×ÅÒÁ (SSI).
    • - -
    • äÉÒÅËÔÉ×Á CacheNegotiatedDocs - ÔÅÐÅÒØ ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÁÒÇÕÍÅÎÔÙ on É - off. õÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÜËÚÅÍÐÌÑÒÙ ÄÉÒÅËÔÉ×Ù - CacheNegotiatedDocs ÄÏÌÖÎÙ ÂÙÔØ ÚÁÍÅÎÅÎÙ ÎÁ - CacheNegotiatedDocs on.
    • - -
    • - äÉÒÅËÔÉ×Á ErrorDocument - ÂÏÌÅÅ ÎÅ ÉÓÐÏÌØÚÕÅÔ ÏÔËÒÙ×ÁÀÝÕÀ ËÁ×ÙÞËÕ × ÎÁÞÁÌÅ ÁÒÇÕÍÅÎÔÁ - ÄÌÑ ÏÂÏÚÎÁÞÅÎÉÑ ÔÏÇÏ, ÞÔÏ ÁÒÇÕÍÅÎÔ Ñ×ÌÑÅÔÓÑ ÔÅËÓÔÏ×ÙÍ ÓÏÏÂÝÅÎÉÅÍ. - ÷ÍÅÓÔÏ ÜÔÏÇÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÚÁËÌÀÞÁÔØ ×ÅÓØ ÔÅËÓÔ ÓÏÏÂÝÅÎÉÑ - × Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ. îÁÐÒÉÍÅÒ, ÓÕÝÅÓÔ×ÕÀÝÉÅ ÄÉÒÅËÔÉ×Ù - -

      - ErrorDocument 403 "îÅËÏÔÏÒÏÅ ÓÏÏÂÝÅÎÉÅ -

      - ÄÏÌÖÎÙ ÂÙÔØ ÚÁÍÅÎÅÎÙ ÎÁ - -

      - ErrorDocument 403 "îÅËÏÔÏÒÏÅ ÓÏÏÂÝÅÎÉÅ" -

      - åÓÌÉ ×ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ ÎÅ Ñ×ÌÑÅÔÓÑ ÐÒÁ×ÉÌØÎÏ ÏÆÏÒÍÌÅÎÎÙÍ - ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ ÒÅÓÕÒÓÁ (URL) ÉÌÉ ÐÕÔÅ×ÙÍ ÉÍÅÎÅÍ, ÔÏ ÏÎ - ÂÕÄÅÔ ÉÎÔÅÒÐÒÅÔÉÒÏ×ÁÔØÓÑ ËÁË ÔÅËÓÔÏ×ÏÅ ÓÏÏÂÝÅÎÉÅ. -
    • - -
    • äÉÒÅËÔÉ×Ù AccessConfig É - ResourceConfig ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÀÔ. - éÍÅÀÝÉÅÓÑ ÉÈ ËÏÐÉÉ ÍÏÇÕÔ ÂÙÔØ ÚÁÍÅÎÅÎÙ ÄÉÒÅËÔÉ×ÏÊ - Include, ËÏÔÏÒÁÑ ÉÍÅÅÔ - ÔÕ ÖÅ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ. åÓÌÉ ÐÒÅÖÄÅ ×Ù ÎÅ ×ËÌÀÞÁÌÉ ÉÈ × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ - ÆÁÊÌÙ, ÔÅÍ ÓÁÍÙÍ ÉÓÐÏÌØÚÕÑ ÉÈ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÔÏ ÓÅÊÞÁÓ, - ÄÌÑ ÄÏÓÔÉÖÅÎÉÑ ÔÏÇÏ ÖÅ ÒÅÚÕÌØÔÁÔÁ, ×ÁÍ ÎÁÄÏ - ÄÏÂÁ×ÉÔØ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ÆÁÊÌ httpd.conf: Include conf/access.conf É Include - conf/srm.conf. äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÂÙÔØ Õ×ÅÒÅÎÎÙÍ × ÔÏÍ, ÞÔÏ - Apache ÓÞÉÔÙ×ÁÅÔ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ ÆÁÊÌÙ ÉÍÅÎÎÏ × ÔÏÍ ÐÏÒÑÄËÅ, - ËÏÔÏÒÙÊ ÂÙÌ ÐÒÅÄÕÓÍÏÔÒÅÎ ÓÔÁÒÙÍÉ ÄÉÒÅËÔÉ×ÁÍÉ, ÎÁÄÏ ÐÏÍÅÓÔÉÔØ - ÄÉÒÅËÔÉ×Ù Include × ËÏÎÃÅ ÆÁÊÌÁ httpd.conf, ÐÒÉÞÅÍ - ÓÐÅÒ×Á ÔÕ, ÞÔÏ ×ËÌÀÞÁÅÔ srm.conf, Á ÚÁÔÅÍ ÔÕ, ÞÔÏ - ×ËÌÀÞÁÅÔ access.conf.
    • - -
    • äÉÒÅËÔÉ×Ù BindAddress É Port - ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÀÔ. üË×É×ÁÌÅÎÔÎÁÑ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÐÒÅÄÏÓÔÁ×ÌÑÅÔÓÑ - ÂÏÌÅÅ ÇÉÂËÏÊ ÄÉÒÅËÔÉ×ÏÊ Listen. -
    • - -
    • ÷ Apache 1.3 ÄÉÒÅËÔÉ×Á Port - ÉÓÐÏÌØÚÏ×ÁÌÁÓØ, ËÒÏÍÅ ×ÓÅÇÏ ÐÒÏÞÅÇÏ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÓÅÒ×ÅÒ - ÍÏÇ ÆÏÒÍÉÒÏ×ÁÔØ ÐÒÁ×ÉÌØÎÙÅ ÓÓÙÌËÉ ÎÁ ÓÁÍÏÇÏ ÓÅÂÑ. ÷ Apache 2.0 ÄÌÑ - ÔÅÈ ÖÅ ÃÅÌÅÊ ÓÌÕÖÉÔ ÎÏ×ÙÊ ÓÉÎÔÁËÓÉÓ ÄÉÒÅËÔÉ×Ù ServerName: ÏÎ ÂÙÌ ÉÚÍÅÎÅÎ ÔÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏ ÔÅÐÅÒØ - ÉÍÑ ÈÏÓÔÁ É ÎÏÍÅÒ ÐÏÒÔÁ ÍÏÖÎÏ ÕËÁÚÙ×ÁÔØ × ÏÄÎÏÊ ÜÔÏÊ ÄÉÒÅËÔÉ×Å.
    • - -
    • äÉÒÅËÔÉ×Á ServerType ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ. - íÅÔÏÄ ÏÂÒÁÂÏÔËÉ ÚÁÐÒÏÓÏ× ÔÅÐÅÒØ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÏÓÒÅÄÓÔ×ÏÍ - ×ÙÂÏÒÁ íð-ÍÏÄÕÌÑ. ÷ ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ ÎÅÔ ÔÁËÏÇÏ íð-ÍÏÄÕÌÑ, - ËÏÔÏÒÙÊ ÍÏÇ ÂÙ ÚÁÐÕÓËÁÔØÓÑ ÐÏÓÒÅÄÓÔ×ÏÍ ÄÅÍÏÎÁ inetd.
    • - -
    • íÏÄÕÌÉ mod_log_agent É mod_log_referer, ËÏÔÏÒÙÅ ÐÒÅÄÏÓÔÁ×ÌÑÌÉ - ÔÁËÉÅ ÄÉÒÅËÔÉ×Ù, ËÁË AgentLog, RefererLog - É RefererIgnore, ÂÙÌÉ ÕÂÒÁÎÙ. ÷ÅÄÅÎÉÅ ÖÕÒÎÁÌÁ ÁÇÅÎÔÏ× - ÐÏÌØÚÏ×ÁÔÅÌÅÊ (agent logs) É ÏÔÐÒÁ×ÉÔÅÌÅÊ (referer logs) ÐÏ-ÐÒÅÖÎÅÍÕ - ×ÏÚÍÏÖÎÏ ÐÏÓÒÅÄÓÔ×ÏÍ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÄÉÒÅËÔÉ×Ù CustomLog ÍÏÄÕÌÑ mod_log_config.
    • - -
    • äÉÒÅËÔÉ×Ù AddModule É - ClearModuleList ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÀÔ. ïÎÉ ÉÓÐÏÌØÚÏ×ÁÌÉÓØ - ÄÌÑ ÏÂÅÓÐÅÞÅÎÉÑ ÐÒÁ×ÉÌØÎÏÇÏ ÐÏÒÑÄËÁ ÚÁÇÒÕÚËÉ ÍÏÄÕÌÅÊ. îÏ×ÙÊ API ÄÌÑ - Apache 2.0 ÐÏÚ×ÏÌÑÅÔ ÍÏÄÕÌÑÍ ÓÁÍÉÍ ÕËÁÚÙ×ÁÔØ ÐÏÒÑÄÏË ÉÈ ÚÁÇÒÕÚËÉ, ÞÔÏ - ÄÅÌÁÅÔ ÜÔÉ ÄÉÒÅËÔÉ×Ù ÎÅÎÕÖÎÙÍÉ.
    • - -
    • äÉÒÅËÔÉ×Á FancyIndexing ÂÙÌÁ ÕÂÒÁÎÁ. åÅ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ - ÔÅÐÅÒØ ÏÂÅÓÐÅÞÉ×ÁÅÔÓÑ ÏÐÃÉÅÊ FancyIndexing × ÄÉÒÅËÔÉ×Å IndexOptions
    • -
    -
    top
    -
    -

    äÒÕÇÉÅ ÉÚÍÅÎÅÎÉÑ

    - - -
      -
    • ïÐÃÉÑ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ httpd -S, - ÐÏÚ×ÏÌÑ×ÛÁÑ ÒÁÓÐÅÞÁÔÙ×ÁÔØ ËÏÎÆÉÇÕÒÁÃÉÀ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ×, ÔÅÐÅÒØ ÚÁÍÅÎÅÎÁ - ÏÐÃÉÅÊ -t -D DUMP_VHOSTS.
    • - -
    • íÏÄÕÌØ mod_auth_digest, ËÏÔÏÒÙÊ ÉÍÅÌ ÜËÓÐÅÒÉÍÅÎÔÁÌØÎÙÊ ÓÔÁÔÕÓ × - Apache 1.3, ÔÅÐÅÒØ Ñ×ÌÑÅÔÓÑ ÓÔÁÎÄÁÒÔÎÙÍ ÍÏÄÕÌÅÍ.
    • - -
    • íÏÄÕÌØ mod_mmap_static, ËÏÔÏÒÙÊ ÉÍÅÌ ÜËÓÐÅÒÉÍÅÎÔÁÌØÎÙÊ ÓÔÁÔÕÓ × - Apache 1.3, ÚÁÍÅÎÅÎ ÍÏÄÕÌÅÍ mod_file_cache.
    • - -
    • ïÒÇÁÎÉÚÁÃÉÑ ÄÉÓÔÒÉÂÕÔÉ×Á ÐÏÌÎÏÓÔØÀ ÉÚÍÅÎÅÎÁ É ÔÅÐÅÒØ - ÂÏÌÅÅ ÎÅ ÓÏÄÅÒÖÉÔ ÎÅÚÁ×ÉÓÉÍÏÇÏ ËÁÔÁÌÏÇÁ src. ÷ÍÅÓÔÏ ÜÔÏÇÏ - ÉÓÈÏÄÎÙÅ ËÏÄÙ ÌÏÇÉÞÅÓËÉ ÏÒÇÁÎÉÚÏ×ÁÎÙ × ÏÓÎÏ×ÎÏÍ ËÁÔÁÌÏÇÅ ÄÉÓÔÒÉÂÕÔÉ×Á, Á - ÕÓÔÁÎÏ×ËÁ ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÏÇÏ ÓÅÒ×ÅÒÁ ÐÒÏÉÚ×ÏÄÉÔÓÑ × ÏÔÄÅÌØÎÙÊ ËÁÔÁÌÏÇ.
    • -
    -
    top
    -
    -

    íÏÄÕÌÉ ÔÒÅÔØÉÈ ÆÉÒÍ

    - - -

    úÎÁÞÉÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ ÂÙÌÉ ×ÎÅÓÅÎÙ × API ÄÌÑ Apache 2.0. - óÕÝÅÓÔ×ÕÀÝÉÅ ÍÏÄÕÌÉ, ÎÁÐÉÓÁÎÎÙÅ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ Apache 1.3 API, - ÎÅ ÂÕÄÕÔ ÒÁÂÏÔÁÔØ ÐÏÄ Apache 2.0, ÅÓÌÉ ÎÅ ×ÎÅÓÔÉ - × ÎÉÈ ÎÅÏÂÈÏÄÉÍÙÅ ÉÚÍÅÎÅÎÉÑ. âÏÌÅÅ ÐÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ ÐÏ ÜÔÏÍÕ ÐÏ×ÏÄÕ - ÄÏÓÔÕÐÎÁ × ÄÏËÕÍÅÎÔÁÃÉÉ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.

    -
    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko  | - pt-br  | - ru 

    -
    - \ No newline at end of file diff --git a/docs/manual/upgrading.xml b/docs/manual/upgrading.xml index 20793679307..e9550533499 100644 --- a/docs/manual/upgrading.xml +++ b/docs/manual/upgrading.xml @@ -4,12 +4,12 @@ + + + + + + + + +Mise à jour vers 2.2 depuis 2.0 + + +

    Afin d'assister les utilisateurs lors de leurs opérations de mise à + jour, nous maintenons un document + qui comporte des informations critiques à l'attention des personnes qui + utilisent déjà Apache. Ces informations ne sont que de brèves notes, et vous + devriez trouver plus d'informations dans le document Nouvelles fonctionnalités, ou dans + le fichier src/CHANGES.

    + +

    Ce document ne décrit que les modifications intervenues entre les versions + 2.0 et 2.2. Si vous effectuez une mise à jour depuis la version 1.3, vous + devez aussi consulter le + document de mise + à jour de 1.3 vers 2.0.

    + +
    +Vue d'ensemble des nouvelles +fonctionnalités de Apache 2.2 + +
    + Modifications de la configuration au moment de la compilation + +

    Le processus de compilation est très similaire à celui de la + version 2.0. Dans certains cas, vous pourrez même utiliser + votre ancienne ligne de commande + configure (que vous trouverez dans le fichier + build/config.nice à la racine du répertoire des sources de + votre serveur). Les changements qui devront être le plus souvent effectués + concerneront des noms de modules, et en particulier les modules gérant + l'authentification et les autorisations. + Quelques exemples de modifications :

    + +
      +
    • mod_imap a été renommé en mod_imagemap
    • +
    • mod_auth a été scindé en quatre modules : + mod_auth_basic, + mod_authn_file, mod_authz_user, et + mod_authz_groupfile
    • +
    • mod_access a été renommé en mod_authz_host
    • +
    • mod_auth_ldap a été renommé en mod_authnz_ldap
    • +
    • La version requise pour l'API APR est la 1.0.
    • +
    • La version de la bibliothèque PCRE intégrée est la 5.0
    • +
    + +
    + +
    + Modifications de la configuration à l'exécution + +

    Vos fichiers de configuration et scripts de démarrage de la version 2.0 + existante peuvent en général être utilisés sans modification avec la + version 2.2. Quelques petits ajustements peuvent cependant être nécessaires + dans le cas de configurations particulières comme décrit plus bas. + En outre, si des modules standards sont chargés dynamiquement à l'aide de + la directive LoadModule, + vous devez vérifier les changements de noms de modules mentionnés + plus haut.

    + +

    Si vous choisissez d'utiliser le nouveau fichier de configuration par + défaut de la + version 2.2, vous vous apercevrez qu'il a été considérablement simplifié + et ne conserve que les points les plus essentiels de la configuration. + Plusieurs exemples de configurations utilisant des fonctionnalités plus + avancées sont disponibles dans le répertoire + conf/extra/ de l'installation du serveur. Les fichiers de + configuration par défaut se trouvent dans le répertoire + conf/original.

    + +

    Quelques changements dans la configuration à l'exécution que vous + pouvez noter :

    + +
      +
    • L'option startssl du programme + apachectl n'est plus disponible. Pour activer le + support SSL, vous devez éditer httpd.conf de façon à + inclure les directives du module mod_ssl + correspondantes, puis utiliser la commande apachectl start + pour démarrer le serveur. Vous trouverez un exemple de configuration + permettant d'activer le module mod_ssl dans le fichier + conf/extra/httpd-ssl.conf.
    • + +
    • La directive UseCanonicalName est maintenant définie par + défaut à Off. Si cette directive + n'était pas présente dans votre + ancien fichier de configuration, vous pouvez ajouter + UseCanonicalName On dans le nouveau pour garder inchangé + l'ancien comportement.
    • + +
    • Le module mod_userdir ne sera appliqué sur les + requêtes que si une directive UserDir spécifiant un nom de répertoire + se trouve dans le fichier de configuration. Pour garder l'ancien + comportement par défaut inchangé, placer la directive UserDir + public_html dans votre fichier de configuration.
    • + +
    • La directive AuthDigestFile + du module mod_auth_digest a été fusionnée avec la + directive AuthUserFile + et appartient maintenant au module mod_authn_file.
    • + +
    • Les directives RewriteRulesont évaluées avant les + directives ProxyPass.
    • +
    +
    + +
    + Changements divers + +
      +
    • Le module mod_cache, qui était + expérimental dans Apache 2.0, est désormais un module standard.
    • + +
    • Le module mod_disk_cache, qui était + expérimental dans Apache 2.0, est désormais un module standard.
    • + +
    • Le module mod_mem_cache, qui était + expérimental dans Apache 2.0, est désormais un module standard.
    • + +
    • Le module mod_charset_lite, qui était + expérimental dans Apache 2.0, est désormais un module standard.
    • + +
    • Le module mod_dumpio, qui était + expérimental dans Apache 2.0, est désormais un module standard.
    • + +
    +
    + +
    + Modules tiers + +

    De nombreux modules tiers conçus pour la version 2.0 fonctionneront sans + changement avec le serveur HTTP Apache version 2.2. Mais tous ces modules + doivent être recompilés avant de pouvoir être chargés.

    + +
    +
    diff --git a/docs/manual/upgrading.xml.ja b/docs/manual/upgrading.xml.ja index 211d9f819ad..a0071643d73 100644 --- a/docs/manual/upgrading.xml.ja +++ b/docs/manual/upgrading.xml.ja @@ -1,15 +1,15 @@ - + - - + + - - - - - -1.3¿¡¼­ 2.0À¸·Î ¾÷±׷¹À̵å - - -

    ¿츮´Â ±âÁ¸ ¾ÆÆÄġ »ç¿ëÀڰ¡ ¾÷±׷¹À̵åÇϴ °ÍÀ» µ½±âÀ§ÇØ - Á߿äÇÑ Á¤º¸¸¦ ¾˷ÁÁִ ¹®¼­¸¦ Á¦°øÇѴÙ. ÀÌ ¹®¼­´Â °£´ÜÇÑ - ¿ä¾àÀ̹ǷÎ, »õ·οî ±â´É - ¹®¼­³ª src/CHANGES ÆÄÀϿ¡¼­ Á¤º¸¸¦ ã¾ƺÁ¾ß - ÇѴÙ.

    -
    -¾ÆÆÄġ 2.0ÀÇ »õ·οî -±â´É ¿ä¾à - -
    - ÄÄÆÄÀϽà ±¸¼º º¯ȭ - -
      -
    • ¾ÆÆÄġ´Â ÀÌÁ¦ ¾ÆÆÄġ ÄÄÆÄÀϰú ¼³ġ¸¦ À§ÇØ - autoconf¿Í libtool ½ýºÅÛÀ» - »ç¿ëÇѴÙ. ÀÌ ½ýºÅÛÀÇ »ç¿ë¹ýÀº Apache 1.3ÀÇ APACI ½ýºÅ۰ú - °°Áö´Â ¾ÊÁö¸¸ ºñ½ÁÇϴÙ.
    • - -
    • ÄÄÆÄÀÏ ¿©ºθ¦ ¼±ÅÃÇÒ ¸ðµâ¿ܿ¡ Apache 2.0Àº ¿äûÀ» - ó¸®Çϴ Áֿä ºκÐÀ» ´ÙÁßó¸® ¸ðµâ - (Multi-Processing Modules) (MPM)·Î ¿Űå´Ù.
    • -
    -
    - -
    - ½ÇÇà½Ã ¼³Á¤ º¯ȭ - -
      -
    • Apache 1.3¿¡¼­ ¼­¹ö Çٽɿ¡ À־ú´ø ¸¹Àº Áö½þîµéÀÌ - ÀÌÁ¦´Â MPM¿¡ ÀִÙ. ¼­¹ö°¡ Apache 1.3°ú ÃִëÇÑ ºñ½ÁÇϰÔ - µ¿ÀÛÇϱæ ¹ٶõ´ٸé prefork MPMÀ» ¼±ÅÃÇؾß - ÇѴÙ. ´ٸ¥ MPMÀº ´ٸ¥ Áö½þ »ç¿ëÇϿ© ÇÁ·μ¼½º »ý¼º°ú - ¿äûÀÇ ó¸®¸¦ Á¶ÀýÇѴÙ.
    • - -
    • proxy ¸ðµâÀº HTTP/1.1¿¡ - ¸ÂÃ߾î ¼öÁ¤µǾú´Ù. Á߿äÇÑ º¯ȭÁß Çϳª´Â ÀÌÁ¦ ÇÁ·Ͻà Á¢±ÙÁ¦¾ - <Directory proxy:> ºí·ÏÀÌ ¾ƴ϶ó - Proxy - ºí·Ͽ¡ À§ġÇϴ Á¡À̴Ù.
    • - -
    • ¸î¸î ¸ðµ⿡¼­ PATH_INFO (Áø¥ °æ·θí - µڿ¡ ³ª¿À´Â °æ·Î Á¤º¸) ó¸® ¹æ½ÄÀÌ º¯°æµǾú´Ù. Àü¿¡ - Çڵ鷯¿´Áö¸¸ ÀÌÁ¦ ÇÊÅͷÎ ±¸ÇöµǴ ¸ðµâÀº ´õ À̻ó - PATH_INFO°¡ Àִ ¿äûÀ» ¹޾ƵéÀÌÁö ¸øÇѴÙ. - INCLUDES³ª PHP¿Í °°Àº ÇÊÅʹ - core Çڵ鷯 À§¿¡ ±¸ÇöµDZ⶧¹®¿¡ PATH_INFO°¡ - Àִ ¿äûÀ» °źÎÇѴÙ. core Çڵ鷯°¡ PATH_INFO°¡ - Àִ ¿äûÀ» ¹޾ƵéÀ̰í server-side include¿¡¼­ - PATH_INFO¸¦ »ç¿ëÇϰÔ ÇϷÁ¸é, AcceptPathInfo Áö½þ »ç¿ëÇؾß - ÇѴÙ.
    • - -
    • CacheNegotiatedDocs - Áö½þî´Â ÀÌÁ¦ ¾ƱԸÕƮ·Î on°ú off¸¦ - ¹޴´Ù. ±âÁ¸ÀÇ CacheNegotiatedDocs´Â - CacheNegotiatedDocs onÀ¸·Î ¼öÁ¤Çؾß ÇѴÙ.
    • - -
    • - ErrorDocument Áö½þî´Â - ´õÀ̻ó ¸޼¼Áö¸¦ ³ªŸ³»´Â ¾ƱԸÕƮ ¾տ¡ µû¿Èǥ¸¦ »ç¿ëÇÏÁö - ¾ʴ´Ù. ´ë½Å ½ֵû¿Èǥ·Î ¸޼¼Áö¸¦ ¹­¾î¾ß ÇѴÙ. ¿¹¸¦ µé¾î °ú°Å - - - ErrorDocument 403 "Some Message - - ´Â ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Çؾß ÇѴÙ. - - - ErrorDocument 403 "Some Message" - - µιø° ¾ƱԸÕƮ°¡ À¯ȿÇÑ URLÀ̳ª °æ·θíÀÌ ¾ƴ϶ó¸é ¸޼¼Áö·Î - °£ÁÖÇѴÙ. -
    • - -
    • AccessConfig¿Í ResourceConfig - Áö½þî´Â »ç¶óÁ³´Ù. ±âÁ¸¿¡ »ç¿ëÇϴø Áö½þî´Â °°Àº ±â´ÉÀ» - Çϴ Include Áö½þî·Î - ´ëüÇÒ ¼ö ÀִÙ. °ú°ſ¡ ¼³Á¤ÆÄÀϿ¡¼­ ÀÌ Áö½þîµéÀ» »ç¿ëÇÏÁö¾ʰí - ÀÌ Áö½þîµéÀÇ ±⺻°ªÀ» »ç¿ëÇߴٸé, http.conf¿¡ - Include conf/access.conf¿Í Include - conf/srm.conf¸¦ Ã߰¡ÇÒ Çʿ䰡 ÀִÙ. ¾ÆÆÄġ°¡ ÀÌÀü - Áö½þî¿Í °°Àº ¼ø¼­·Î ¼³Á¤ÆÄÀÏÀ» ÀаÔÇϷÁ¸é - Include Áö½þ - httpd.conf ³¡¿¡ µΰí, srm.confÀÌ - access.conf ¾տ¡ ³ª¿;ß ÇѴÙ.
    • - -
    • BindAddress¿Í Port Áö½þî´Â - »ç¶óÁ³´Ù. ´õ À¯¿¬ÇÑ Listen - Áö½þ °°Àº ±â´ÉÀ» ÇѴÙ.
    • - -
    • Apache-1.3¿¡¼­ Port´Â ÀڱâÂüÁ¶ - URLÀÇ Æ÷Ʈ ¹øȣ¸¦ ¼³Á¤Çϴ Àϵµ ÇߴÙ. Apache-2.0¿¡¼­ ÀÌ - ±â´ÉÀº »õ·οî ServerNameÀ¸·Î - ÇѴÙ. ÇÑ Áö½þ ȣ½ºƮ¸í°ú ÀڱâÂüÁ¶ URLÀ» À§ÇÑ - Æ÷Ʈ ¹øȣ¸¦ °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀִÙ.
    • - -
    • ServerType Áö½þî´Â »ç¶óÁ³´Ù. ¿äûÀ» - ¼­ºñ½ºÇϴ ¹æ¹ýÀº ÀÌÁ¦ MPM ¼±Åÿ¡ ´޷ȴÙ. ÇöÀç inetd¿¡¼­ - ½ÃÀÛÇϵµ·Ï ¼³°èµÈ MPMÀº ¾ø´Ù.
    • - -
    • AgentLog, RefererLog, - RefererIgnore Áö½þ Á¦°øÇÑ - mod_log_agent¿Í mod_log_referer - ¸ðµâÀÌ ¾ø¾îÁ³´Ù. agent ·α׿Í referer ·α״ - mod_log_configÀÇ CustomLog Áö½þ - »ç¿ëÇϿ© °è¼Ó Á¦°øµȴÙ.
    • - -
    • AddModule°ú ClearModuleList - Áö½þî´Â »ç¶óÁ³´Ù. ÀÌ Áö½þîµéÀº ¸ðµâÀ» ¿ùٸ¥ ¼ø¼­·Î - Ȱ¼ºȭÇϷÁ°í »ç¿ëÇߴÙ. »õ·οî Apache 2.0 API´Â ¸ðµâÀÌ - Ȱ¼ºȭµǴ ¼ø¼­¸¦ ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö À־, ÀÌ Áö½þîµéÀÌ - Çʿä¾ø°Ô µǾú´Ù.
    • - -
    • FancyIndexing Áö½þ ¾ø¾îÁ³´Ù. - IndexOptions - Áö½þîÀÇ FancyIndexing ¿ɼÇÀÌ °°Àº ±â´ÉÀ» ÇѴÙ.
    • - -
    • mod_negotiationÀÇ MultiViews ³»¿ëÇù»óÀÌ - ´õ ¾ö°ÝÇϰÔ ±⺻ÆÄÀÏÀ» ã´´Ù. ³»¿ëÇù»óÀº Çù»󰡴ÉÇÑ - ÆÄÀÏ Á߿¡¼­¸¸ ¼±ÅÃÇѴÙ. MultiviewsMatch Áö½þ - »ç¿ëÇϿ© ÀÌÀü°ú °°ÀÌ µ¿ÀÛÇϰÔ ÇÒ ¼ö ÀִÙ.
    • - -
    • (2.0.51 ¹öÀü ÀÌÈÄ) -

      ErrorHeader Áö½þî´Â À߸øµÈ ¸íĪÀ¸·Î, - ÀÌ Áö½þ ´ã´çÇÑ ±â´ÉÀº Header Áö½þî·εµ °¡´ÉÇϴÙ. - ¿øÇϴ ±â´ÉÀ» À§ÇØ,

      - - - Header always set ¾î¼°í Àú¼°í - - -

      ¿Í °°ÀÌ ¼³Á¤ÇѴÙ.

    • -
    -
    - -
    - ±âŸ º¯ȭ - -
      -
    • Apache 1.3¿¡¼­ ½ÇÇèÀûÀ̿´´ø mod_auth_digest - ¸ðµâÀÌ ÀÌÁ¦ ǥÁØ ¸ðµâÀÌ µǾú´Ù.
    • - -
    • Apache 1.3¿¡¼­ ½ÇÇèÀûÀ̿´´ø mod_mmap_static - ¸ðµâÀÌ mod_file_cache·Î ´ëüµǾú´Ù.
    • - -
    • ¹èÆ÷º»ÀÌ ¿ÏÀüÈ÷ »õ·Î ±¸¼ºµǾî ´õÀ̻ó µ¶¸³µÈ src - µð·ºÅ丮°¡ ¾ø´Ù. ´ë½Å ¼ҽº´Â ÁÖ ¹èÆ÷º» µð·ºÅ丮 ¾Ʒ¡ ³í¸®ÀûÀ¸·Î - ±¸¼ºµÇÀְí, ÄÄÆÄÀÏÇÑ ¼­¹ö´Â ´ٸ¥ µð·ºÅ丮·Î ¼³ġµȴÙ.
    • -
    -
    - -
    - Á¦»ïÀڰ¡ ¸¸µç ¸ðµâ - -

    Apache 2.0¿¡¼­ ¼­¹ö API°¡ ¸¹ÀÌ º¯°æµǾú´Ù. Apache 1.3 API¿¡ - ¸ÂÃçÁø ±âÁ¸ ¸ðµâÀ» ¼öÁ¤¾øÀÌ Apache 2.0¿¡¼­ »ç¿ëÇÒ ¼ö - ¾ø´Ù. Àڼ¼ÇÑ Á¤º¸´Â °³¹ßÀÚ - ¹®¼­¸¦ Âü°íÇ϶ó.

    -
    -
    diff --git a/docs/manual/upgrading.xml.meta b/docs/manual/upgrading.xml.meta index f738d57345c..814ac637ea9 100644 --- a/docs/manual/upgrading.xml.meta +++ b/docs/manual/upgrading.xml.meta @@ -1,17 +1,15 @@ + - + upgrading / . - de + de en - fr + fr ja - ko - pt-br - ru diff --git a/docs/manual/upgrading.xml.pt-br b/docs/manual/upgrading.xml.pt-br deleted file mode 100644 index 9ea19fe2b96..00000000000 --- a/docs/manual/upgrading.xml.pt-br +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - -Atualizando da versão 1.3 para 2.0 - - -

    Com a finalidade de ajudar as pessoas na atualização do servidor, - nós mantemos um documento que descreve informações críticas para - os usuários já existentes do Apache. Essas informações tem o - intuito de serem breves notas e você deverá encontrar mais - informações no documento Novas Funcionalidades, ou no - arquivo src/CHANGES.

    -
    -Descrição das novas - funcionalidades do Apache 2.0 - -
    - Mudanças na Configuração em tempo de Compilação - -
      -
    • O Apache agora usa o sistema autoconf - e libtool para - configurar o processo de construção. - A utilização desse sistema é similar, mas não o - mesmo, a usar o sistema APACI do Apache 1.3
    • - -
    • Além da seleção habitual de módulos que você - pode escolher para compilar, o Apache 2.0 mudou a parte - principal de processamentos de pedidos para os Módulos Multi-Processamento (MPMs).
    • -
    -
    - -
    - Mudanças na Configuração em tempo de Execução - -
      -
    • Muitas diretrizes que estavam no núcleo do servidor - no Apache 1.3 estão agora nos MPMs. Se você desejar que - o funcionamento do servidor seja o mais similar possível ao - do Apache 1.3, você deve selecionar o MPM prefork. - Os outros MPMs terão diretrizes diferentes para controlar - a criação de processos e o processamento de pedidos.
    • - -
    • O módulo proxy foi reconstruído - para o padrão HTTP/1.1. Ao longo das mudanças importantes, - o controle de acesso ao proxy agora fica dentro de um bloco - Proxy, - ao invés de um bloco <Directory proxy:>.
    • - -
    • A operação com PATH_INFO (informação de - caminho procedente depois do nome do arquivo verdadeiro) mudou - para alguns módulos. Módulos que eram previamente implementados - como manipuladores mas agora são implementados como filtros - não podem mais aceitar pedidos com PATH_INFO. - Filtros como INCLUDES - ou PHP são implementados - no topo dos manipuladores principais, rejeitando pedidos - com PATH_INFO. Você pode usar a diretriz - AcceptPathInfo - para forçar o manipulador principal a aceitar pedidos - com PATH_INFO e assim restaurar a habilidade - de usá-lo em inclusões por parte do servidor (SSI).
    • - -
    • A diretriz CacheNegotiatedDocs agora aceita - o argumento on ou off. Instâncias - existentes de CacheNegotiatedDocs deverão - ser substituídas por CacheNegotiatedDocs on.
    • - -
    • - A diretriz ErrorDocument - não usa mais aspas no começo do argumento para indicar - mensagens de texto. Ao invés disso, você deve colocar - a mensagem inteira entre aspas. Por exemplo, instâncias - existentes de - - - ErrorDocument 403 "Alguma mensagem - - devem ser substituídas por - - - ErrorDocument 403 "Alguma mensagem" - - - Contanto que o segundo argumento não seja uma - URL válida ou um caminho de arquivo, irá ser - tratado como uma mensagem de texto. -
    • - -
    • As diretrizes AccessConfig e - ResourceConfig não existem mais. - Instâncias existentes dessas diretrizes podem ser substituídas - com a diretriz Include - que possui uma funcionalidade equivalente. Se você estava - fazendo uso dos valores padrões dessas diretrizes sem incluí-las - nos arquivos de configuração, você provavelmente terá - que adicionar Include conf/access.conf e - Include conf/srm.conf ao seu httpd.conf. - Com o fim de assegurar que o Apache leia os arquivos de - configuração na mesma ordem que as diretrizes velhas usavam, - a diretriz Include deve ser colocada - no final do httpd.conf, com uma entrada para - srm.conf antes de access.conf.
    • - -
    • As diretrizes BindAddress and Port - não existem mais. Uma funcionalidade equivalente é fornecida com - uma diretriz mais flexível Listen.
    • - -
    • Outro uso da diretriz Port no Apache-1.3 - era ajustar o número da porta usada em URLs auto-referenciáveis. - O equivalente no Apache-2.0 é a nova sintaxe ServerName: ela foi modificada para permitir que - sejam especificados ambos "hostname" e o número da porta - para URLs auto-referenciáveis em uma só diretriz.
    • - -
    • A diretriz ServerType não existe mais. - O método usado para atender pedidos é determinado pela - seleção de MPM. Atualmente não existe nenhuma MPM projetada - para ser executada pelo inetd.
    • - -
    • Os módulos mod_log_agent e mod_log_referer - que forneciam as diretrizes AgentLog, - RefererLog e RefererIgnore foram removidas. - Registros de agentes e referências ainda estão disponíveis - usando a diretriz CustomLog do - mod_log_config.
    • - -
    • As diretrizes AddModule e - ClearModuleList não existem mais. - Essas diretrizes eram usadas para garantir que módulos - pudessem ser habilitados na ordem correta. A nova API do - Apache 2.0 permite que os módulos especifiquem explicitamente - a sua ordem, eliminando a necessidade dessas diretrizes.
    • - -
    • A diretriz FancyIndexing foi removida. - A mesma funcionalidade está disponível através da - opção FancyIndexing da diretriz IndexOptions.
    • - -
    • A técnica de negociação de conteúdo (content-negotiation) - MultiViews fornecida pelo mod_negotiation - se tornou mais rigorosa em sua combinação de arquivo - padrão. Ela irá selecionar apenas arquivos negociáveis - (negotiable). O comportamento antigo pode ser restaurado usando a - diretriz MultiviewsMatch.
    • - -
    • (desde a versão 2.0.51) -

      A funcionalidade da diretriz ErrorHeader - foi colocada em conjunto com a diretriz Header, já que era um - uso de um nome impróprio. Utilize

      - - - Header always set foo bar - - -

      para obter o comportamento desejado.

    • -
    -
    - -
    - Mudanças Gerais - -
      -
    • O módulo mod_auth_digest, que era - experimental no Apache 1.3, é agora um módulo padrão.
    • - -
    • O módulo mod_mmap_static, que era experimental no - Apache 1.3, foi substituído com mod_file_cache.
    • - -
    • A distribuição foi completamente reorganizada para - não conter mais um diretório src independente. - Em seu lugar, os fontes são organizados - logicamente no diretório principal da distribuição e - a instalação do servidor compilado deve ser direcionada - à um diretório separado.
    • -
    -
    - -
    - Módulos de Terceiros - -

    Mudanças extensivas foram feitas na API do servidor - no Apache 2.0. Módulos existentes projetados para a API - do Apache 1.3, não funcionarão no Apache - 2.0 sem modificações. Detalhes serão fornecidos na - documentação do desenvolvedor.

    -
    -
    diff --git a/docs/manual/upgrading.xml.ru b/docs/manual/upgrading.xml.ru deleted file mode 100644 index 39d1e2b744d..00000000000 --- a/docs/manual/upgrading.xml.ru +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - -ðÅÒÅÈÏÄ ÏÔ ×ÅÒÓÉÉ 1.3 Ë ×ÅÒÓÉÉ 2.0 - - -

    üÔÏÔ ÄÏËÕÍÅÎÔ ÎÅÏÂÈÏÄÉÍ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÍÏÞØ ÐÏÌØÚÏ×ÁÔÅÌÑÍ - ÐÅÒÅÊÔÉ Ë ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÓÅÒ×ÅÒÁ ×ÅÒÓÉÉ 2.0. úÄÅÓØ ×Ù ÎÁÊÄÅÔÅ ÌÉÛØ - ËÒÁÔËÉÅ ÚÁÍÅÞÁÎÉÑ; ÂÏÌÅÅ ÐÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÎÏ×Ï××ÅÄÅÎÉÑÈ ÍÏÖÎÏ - ÎÁÊÔÉ ÌÉÂÏ × ÄÏËÕÍÅÎÔÅ îÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÌÉÂÏ × ÆÁÊÌÅ src/CHANGES.

    -
    - -
    - éÚÍÅÎÅÎÉÑ × ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÉ ÓÂÏÒËÉ ÓÅÒ×ÅÒÁ - -
      -
    • Apache ÔÅÐÅÒØ ÉÓÐÏÌØÚÕÅÔ ÓÉÓÔÅÍÕ autoconf É - libtool ÄÌÑ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ ÐÒÏÃÅÓÓÁ ÓÂÏÒËÉ. - éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÊ ÓÉÓÔÅÍÙ ÐÏÈÏÖÅ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ - APACI × Apache 1.3, ÈÏÔÑ É ÎÅ Ñ×ÌÑÅÔÓÑ ÁÂÓÏÌÀÔÎÏ ÔÅÍ ÖÅ ÓÁÍÙÍ.
    • - -
    • ÷ ÄÏÂÁ×ÏË Ë ÏÂÙÞÎÏÍÕ ÓÐÉÓËÕ ÍÏÄÕÌÅÊ, ËÏÔÏÒÙÅ ×Ù ÍÏÖÅÔÅ - ×ÙÂÒÁÔØ ÐÒÉ ÓÂÏÒËÅ ÓÅÒ×ÅÒÁ, × Apache 2.0 ÐÏÑ×ÉÌÉÓØ ÍÕÌØÔÉ - ÐÒÏÃÅÓÓÎÙÅ ÍÏÄÕÌÉ (íð - ÍÏÄÕÌÉ), × ËÏÔÏÒÙÈ ÔÅÐÅÒØ - ÓËÏÎÃÅÎÔÒÉÒÏ×ÁÎÁ ÏÓÎÏ×ÎÁÑ ÞÁÓÔØ ËÏÄÁ, ÏÔ×ÅÞÁÀÝÅÇÏ ÚÁ ÏÂÒÁÂÏÔËÕ - ÚÁÐÒÏÓÏ×.
    • -
    -
    - -
    - éÚÍÅÎÅÎÉÑ × ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÉ ÒÁÂÏÔÙ ÓÅÒ×ÅÒÁ - -
      -
    • íÎÏÇÉÅ ÉÚ ÔÅÈ ÄÉÒÅËÔÉ×, ËÏÔÏÒÙÅ ÏÂÓÌÕÖÉ×ÁÌÉÓØ ÑÄÒÏÍ ÓÅÒ×ÅÒÁ - Apache 1.3, ÔÅÐÅÒØ ÐÅÒÅÎÅÓÅÎÙ × ÍÕÌØÔÉ - ÐÒÏÃÅÓÓÎÙÅ ÍÏÄÕÌÉ. åÓÌÉ ×Ù - ÈÏÔÉÔÅ, ÞÔÏÂÙ ÐÏ×ÅÄÅÎÉÅ ÓÅÒ×ÅÒÁ ÂÙÌÏ ÎÁÉÂÏÌÅÅ ÐÒÉÂÌÉÖÅÎÏ Ë ÐÏ×ÅÄÅÎÉÀ - Apache 1.3, ÔÏ ÐÒÉ ÓÂÏÒËÅ ×Ù ÄÏÌÖÎÙ ×ÙÂÒÁÔØ íð-ÍÏÄÕÌØ prefork. äÒÕÇÉÅ íð-ÍÏÄÕÌÉ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ - ÉÎÙÅ ÄÉÒÅËÔÉ×Ù, ÏÔ×ÅÞÁÀÝÉÅ ÚÁ ÒÁÂÏÔÕ ÐÒÏÃÅÓÓÏ× ÓÅÒ×ÅÒÁ É ÏÂÒÁÂÏÔËÕ - ÚÁÐÒÏÓÏ×.
    • - -
    • ðÒÏËÓÉ ÍÏÄÕÌØ ÂÙÌ ÐÅÒÅÐÉÓÁÎ, - É ÔÅÐÅÒØ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÓÐÅÃÉÆÉËÁÃÉÀ HTTP/1.1. ïÄÎÉÍ ÉÚ ÎÁÉÂÏÌÅÅ - ×ÁÖÎÙÈ ÉÚÍÅÎÅÎÉÊ Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÄÉÒÅËÔÉ×Ù, ËÏÎÔÒÏÌÉÒÕÀÝÉÅ ÒÁÂÏÔÕ - ÍÏÄÕÌÑ, ÔÅÐÅÒØ ÒÁÓÐÏÌÁÇÁÀÔÓÑ × ÓÅËÃÉÉ <Proxy>, Á ÎÅ × - <Directory proxy:>, ËÁË ÜÔÏ ÂÙÌÏ ÒÁÎÅÅ.
    • - -
    • ïÂÒÁÂÏÔËÁ PATH_INFO (ÐÕÔÅ×ÏÊ ÉÎÆÏÒÍÁÃÉÉ, ÓÌÅÄÕÀÝÅÊ ÚÁ - ÉÍÅÎÅÍ ÚÁÐÒÁÛÉ×ÁÅÍÏÇÏ ÄÏËÕÍÅÎÔÁ) ÉÚÍÅÎÉÌÁÓØ ÄÌÑ ÎÅËÏÔÏÒÙÈ ÍÏÄÕÌÅÊ. - íÏÄÕÌÉ, ËÏÔÏÒÙÅ ÒÁÎØÛÅ ÂÙÌÉ ÎÁÐÉÓÁÎÙ ËÁË ÏÂÒÁÂÏÔÞÉËÉ (handler), Á - ÔÅÐÅÒØ ×ÙÐÏÌÎÑÀÔ ÒÏÌØ ÆÉÌØÔÒÏ×, ÍÏÇÕÔ ÂÏÌÅÅ ÎÅ ÐÒÉÎÉÍÁÔØ ÚÁÐÒÏÓÙ, - ÓÏÄÅÒÖÁÝÉÅ PATH_INFO. ôÁËÉÅ ÆÉÌØÔÒÙ, ËÁË INCLUDES ÒÅÁÌÉÚÏ×ÁÎÙ ÐÅÒ×ÙÍÉ × ÂÁÚÏ×ÏÍ - ÏÂÒÁÂÏÔÞÉËÅ, ÔÁËÉÍ ÏÂÒÁÚÏÍ ÏÎÉ ÎÅ ÍÏÇÕÔ ÐÒÉÎÉÍÁÔØ ÚÁÐÒÏÓÙ, ÓÏÄÅÒÖÁÝÉÅ - PATH_INFO. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÉÒÅËÔÉ×Õ AcceptPathInfo, ÞÔÏÂÙ ÚÁÓÔÁ×ÉÔØ ÂÁÚÏ×ÙÊ - ÏÂÒÁÂÏÔÞÉË ÐÒÉÎÉÍÁÔØ ÐÏÄÏÂÎÙÅ ÚÁÐÒÏÓÙ, É ÔÁËÉÍ ÏÂÒÁÚÏÍ ×ÏÓÓÔÁÎÏ×ÉÔØ - ×ÏÚÍÏÖÎÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ PATH_INFO × ÄÏËÕÍÅÎÔÁÈ, ÉÓÐÏÌØÚÕÀÝÉÈ ×ËÌÀÞÅÎÉÑ - ÎÁ ÓÔÏÒÏÎÅ ÓÅÒ×ÅÒÁ (SSI).
    • - -
    • äÉÒÅËÔÉ×Á CacheNegotiatedDocs - ÔÅÐÅÒØ ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÁÒÇÕÍÅÎÔÙ on É - off. õÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÜËÚÅÍÐÌÑÒÙ ÄÉÒÅËÔÉ×Ù - CacheNegotiatedDocs ÄÏÌÖÎÙ ÂÙÔØ ÚÁÍÅÎÅÎÙ ÎÁ - CacheNegotiatedDocs on.
    • - -
    • - äÉÒÅËÔÉ×Á ErrorDocument - ÂÏÌÅÅ ÎÅ ÉÓÐÏÌØÚÕÅÔ ÏÔËÒÙ×ÁÀÝÕÀ ËÁ×ÙÞËÕ × ÎÁÞÁÌÅ ÁÒÇÕÍÅÎÔÁ - ÄÌÑ ÏÂÏÚÎÁÞÅÎÉÑ ÔÏÇÏ, ÞÔÏ ÁÒÇÕÍÅÎÔ Ñ×ÌÑÅÔÓÑ ÔÅËÓÔÏ×ÙÍ ÓÏÏÂÝÅÎÉÅÍ. - ÷ÍÅÓÔÏ ÜÔÏÇÏ ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÚÁËÌÀÞÁÔØ ×ÅÓØ ÔÅËÓÔ ÓÏÏÂÝÅÎÉÑ - × Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ. îÁÐÒÉÍÅÒ, ÓÕÝÅÓÔ×ÕÀÝÉÅ ÄÉÒÅËÔÉ×Ù - - - ErrorDocument 403 "îÅËÏÔÏÒÏÅ ÓÏÏÂÝÅÎÉÅ - - ÄÏÌÖÎÙ ÂÙÔØ ÚÁÍÅÎÅÎÙ ÎÁ - - - ErrorDocument 403 "îÅËÏÔÏÒÏÅ ÓÏÏÂÝÅÎÉÅ" - - åÓÌÉ ×ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ ÎÅ Ñ×ÌÑÅÔÓÑ ÐÒÁ×ÉÌØÎÏ ÏÆÏÒÍÌÅÎÎÙÍ - ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ ÒÅÓÕÒÓÁ (URL) ÉÌÉ ÐÕÔÅ×ÙÍ ÉÍÅÎÅÍ, ÔÏ ÏÎ - ÂÕÄÅÔ ÉÎÔÅÒÐÒÅÔÉÒÏ×ÁÔØÓÑ ËÁË ÔÅËÓÔÏ×ÏÅ ÓÏÏÂÝÅÎÉÅ. -
    • - -
    • äÉÒÅËÔÉ×Ù AccessConfig É - ResourceConfig ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÀÔ. - éÍÅÀÝÉÅÓÑ ÉÈ ËÏÐÉÉ ÍÏÇÕÔ ÂÙÔØ ÚÁÍÅÎÅÎÙ ÄÉÒÅËÔÉ×ÏÊ - Include, ËÏÔÏÒÁÑ ÉÍÅÅÔ - ÔÕ ÖÅ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ. åÓÌÉ ÐÒÅÖÄÅ ×Ù ÎÅ ×ËÌÀÞÁÌÉ ÉÈ × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ - ÆÁÊÌÙ, ÔÅÍ ÓÁÍÙÍ ÉÓÐÏÌØÚÕÑ ÉÈ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÔÏ ÓÅÊÞÁÓ, - ÄÌÑ ÄÏÓÔÉÖÅÎÉÑ ÔÏÇÏ ÖÅ ÒÅÚÕÌØÔÁÔÁ, ×ÁÍ ÎÁÄÏ - ÄÏÂÁ×ÉÔØ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ÆÁÊÌ httpd.conf: Include conf/access.conf É Include - conf/srm.conf. äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÂÙÔØ Õ×ÅÒÅÎÎÙÍ × ÔÏÍ, ÞÔÏ - Apache ÓÞÉÔÙ×ÁÅÔ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ ÆÁÊÌÙ ÉÍÅÎÎÏ × ÔÏÍ ÐÏÒÑÄËÅ, - ËÏÔÏÒÙÊ ÂÙÌ ÐÒÅÄÕÓÍÏÔÒÅÎ ÓÔÁÒÙÍÉ ÄÉÒÅËÔÉ×ÁÍÉ, ÎÁÄÏ ÐÏÍÅÓÔÉÔØ - ÄÉÒÅËÔÉ×Ù Include × ËÏÎÃÅ ÆÁÊÌÁ httpd.conf, ÐÒÉÞÅÍ - ÓÐÅÒ×Á ÔÕ, ÞÔÏ ×ËÌÀÞÁÅÔ srm.conf, Á ÚÁÔÅÍ ÔÕ, ÞÔÏ - ×ËÌÀÞÁÅÔ access.conf.
    • - -
    • äÉÒÅËÔÉ×Ù BindAddress É Port - ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÀÔ. üË×É×ÁÌÅÎÔÎÁÑ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÐÒÅÄÏÓÔÁ×ÌÑÅÔÓÑ - ÂÏÌÅÅ ÇÉÂËÏÊ ÄÉÒÅËÔÉ×ÏÊ Listen. -
    • - -
    • ÷ Apache 1.3 ÄÉÒÅËÔÉ×Á Port - ÉÓÐÏÌØÚÏ×ÁÌÁÓØ, ËÒÏÍÅ ×ÓÅÇÏ ÐÒÏÞÅÇÏ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÓÅÒ×ÅÒ - ÍÏÇ ÆÏÒÍÉÒÏ×ÁÔØ ÐÒÁ×ÉÌØÎÙÅ ÓÓÙÌËÉ ÎÁ ÓÁÍÏÇÏ ÓÅÂÑ. ÷ Apache 2.0 ÄÌÑ - ÔÅÈ ÖÅ ÃÅÌÅÊ ÓÌÕÖÉÔ ÎÏ×ÙÊ ÓÉÎÔÁËÓÉÓ ÄÉÒÅËÔÉ×Ù ServerName: ÏÎ ÂÙÌ ÉÚÍÅÎÅÎ ÔÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏ ÔÅÐÅÒØ - ÉÍÑ ÈÏÓÔÁ É ÎÏÍÅÒ ÐÏÒÔÁ ÍÏÖÎÏ ÕËÁÚÙ×ÁÔØ × ÏÄÎÏÊ ÜÔÏÊ ÄÉÒÅËÔÉ×Å.
    • - -
    • äÉÒÅËÔÉ×Á ServerType ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ. - íÅÔÏÄ ÏÂÒÁÂÏÔËÉ ÚÁÐÒÏÓÏ× ÔÅÐÅÒØ ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÏÓÒÅÄÓÔ×ÏÍ - ×ÙÂÏÒÁ íð-ÍÏÄÕÌÑ. ÷ ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ ÎÅÔ ÔÁËÏÇÏ íð-ÍÏÄÕÌÑ, - ËÏÔÏÒÙÊ ÍÏÇ ÂÙ ÚÁÐÕÓËÁÔØÓÑ ÐÏÓÒÅÄÓÔ×ÏÍ ÄÅÍÏÎÁ inetd.
    • - -
    • íÏÄÕÌÉ mod_log_agent É mod_log_referer, ËÏÔÏÒÙÅ ÐÒÅÄÏÓÔÁ×ÌÑÌÉ - ÔÁËÉÅ ÄÉÒÅËÔÉ×Ù, ËÁË AgentLog, RefererLog - É RefererIgnore, ÂÙÌÉ ÕÂÒÁÎÙ. ÷ÅÄÅÎÉÅ ÖÕÒÎÁÌÁ ÁÇÅÎÔÏ× - ÐÏÌØÚÏ×ÁÔÅÌÅÊ (agent logs) É ÏÔÐÒÁ×ÉÔÅÌÅÊ (referer logs) ÐÏ-ÐÒÅÖÎÅÍÕ - ×ÏÚÍÏÖÎÏ ÐÏÓÒÅÄÓÔ×ÏÍ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÄÉÒÅËÔÉ×Ù CustomLog ÍÏÄÕÌÑ mod_log_config.
    • - -
    • äÉÒÅËÔÉ×Ù AddModule É - ClearModuleList ÂÏÌÅÅ ÎÅ ÓÕÝÅÓÔ×ÕÀÔ. ïÎÉ ÉÓÐÏÌØÚÏ×ÁÌÉÓØ - ÄÌÑ ÏÂÅÓÐÅÞÅÎÉÑ ÐÒÁ×ÉÌØÎÏÇÏ ÐÏÒÑÄËÁ ÚÁÇÒÕÚËÉ ÍÏÄÕÌÅÊ. îÏ×ÙÊ API ÄÌÑ - Apache 2.0 ÐÏÚ×ÏÌÑÅÔ ÍÏÄÕÌÑÍ ÓÁÍÉÍ ÕËÁÚÙ×ÁÔØ ÐÏÒÑÄÏË ÉÈ ÚÁÇÒÕÚËÉ, ÞÔÏ - ÄÅÌÁÅÔ ÜÔÉ ÄÉÒÅËÔÉ×Ù ÎÅÎÕÖÎÙÍÉ.
    • - -
    • äÉÒÅËÔÉ×Á FancyIndexing ÂÙÌÁ ÕÂÒÁÎÁ. åÅ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ - ÔÅÐÅÒØ ÏÂÅÓÐÅÞÉ×ÁÅÔÓÑ ÏÐÃÉÅÊ FancyIndexing × ÄÉÒÅËÔÉ×Å IndexOptions
    • -
    -
    - -
    - äÒÕÇÉÅ ÉÚÍÅÎÅÎÉÑ - -
      -
    • ïÐÃÉÑ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ httpd -S, - ÐÏÚ×ÏÌÑ×ÛÁÑ ÒÁÓÐÅÞÁÔÙ×ÁÔØ ËÏÎÆÉÇÕÒÁÃÉÀ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ×, ÔÅÐÅÒØ ÚÁÍÅÎÅÎÁ - ÏÐÃÉÅÊ -t -D DUMP_VHOSTS.
    • - -
    • íÏÄÕÌØ mod_auth_digest, ËÏÔÏÒÙÊ ÉÍÅÌ ÜËÓÐÅÒÉÍÅÎÔÁÌØÎÙÊ ÓÔÁÔÕÓ × - Apache 1.3, ÔÅÐÅÒØ Ñ×ÌÑÅÔÓÑ ÓÔÁÎÄÁÒÔÎÙÍ ÍÏÄÕÌÅÍ.
    • - -
    • íÏÄÕÌØ mod_mmap_static, ËÏÔÏÒÙÊ ÉÍÅÌ ÜËÓÐÅÒÉÍÅÎÔÁÌØÎÙÊ ÓÔÁÔÕÓ × - Apache 1.3, ÚÁÍÅÎÅÎ ÍÏÄÕÌÅÍ mod_file_cache.
    • - -
    • ïÒÇÁÎÉÚÁÃÉÑ ÄÉÓÔÒÉÂÕÔÉ×Á ÐÏÌÎÏÓÔØÀ ÉÚÍÅÎÅÎÁ É ÔÅÐÅÒØ - ÂÏÌÅÅ ÎÅ ÓÏÄÅÒÖÉÔ ÎÅÚÁ×ÉÓÉÍÏÇÏ ËÁÔÁÌÏÇÁ src. ÷ÍÅÓÔÏ ÜÔÏÇÏ - ÉÓÈÏÄÎÙÅ ËÏÄÙ ÌÏÇÉÞÅÓËÉ ÏÒÇÁÎÉÚÏ×ÁÎÙ × ÏÓÎÏ×ÎÏÍ ËÁÔÁÌÏÇÅ ÄÉÓÔÒÉÂÕÔÉ×Á, Á - ÕÓÔÁÎÏ×ËÁ ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÏÇÏ ÓÅÒ×ÅÒÁ ÐÒÏÉÚ×ÏÄÉÔÓÑ × ÏÔÄÅÌØÎÙÊ ËÁÔÁÌÏÇ.
    • -
    -
    - -
    - íÏÄÕÌÉ ÔÒÅÔØÉÈ ÆÉÒÍ - -

    úÎÁÞÉÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ ÂÙÌÉ ×ÎÅÓÅÎÙ × API ÄÌÑ Apache 2.0. - óÕÝÅÓÔ×ÕÀÝÉÅ ÍÏÄÕÌÉ, ÎÁÐÉÓÁÎÎÙÅ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ Apache 1.3 API, - ÎÅ ÂÕÄÕÔ ÒÁÂÏÔÁÔØ ÐÏÄ Apache 2.0, ÅÓÌÉ ÎÅ ×ÎÅÓÔÉ - × ÎÉÈ ÎÅÏÂÈÏÄÉÍÙÅ ÉÚÍÅÎÅÎÉÑ. âÏÌÅÅ ÐÏÄÒÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ ÐÏ ÜÔÏÍÕ ÐÏ×ÏÄÕ - ÄÏÓÔÕÐÎÁ × ÄÏËÕÍÅÎÔÁÃÉÉ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.

    -
    -
    diff --git a/docs/manual/urlmapping.html b/docs/manual/urlmapping.html index 5a9c3a92787..d5b6507f0e7 100644 --- a/docs/manual/urlmapping.html +++ b/docs/manual/urlmapping.html @@ -1,11 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: urlmapping.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: urlmapping.html.ja.euc-jp +URI: urlmapping.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: urlmapping.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: urlmapping.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/urlmapping.html.en b/docs/manual/urlmapping.html.en index 1278d1d8c33..46c5d7a8e5c 100644 --- a/docs/manual/urlmapping.html.en +++ b/docs/manual/urlmapping.html.en @@ -1,26 +1,34 @@ - -Mapping URLs to Filesystem Locations - Apache HTTP Server +Mapping URLs to Filesystem Locations - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Mapping URLs to Filesystem Locations

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Mapping URLs to Filesystem Locations

    Available Languages:  en  |  ja  | - ko 

    + ko  | + tr 

    This document explains how Apache uses the URL of a request @@ -35,12 +43,12 @@

  • Reverse Proxy
  • Rewriting Engine
  • File Not Found
  • -
    +
    top
    top

    DocumentRoot

    @@ -54,6 +62,12 @@ make up the basic document tree which will be visible from the web.

    +

    For example, if DocumentRoot + were set to /var/www/html then a request for + http://www.example.com/fish/guppies.html would result + in the file /var/www/html/fish/guppies.html being + served to the requesting client.

    +

    Apache is also capable of Virtual Hosting, where the server receives requests for more than one host. In this case, a different DocumentRoot can be specified for each @@ -62,6 +76,10 @@ be used to dynamically determine the appropriate place from which to serve content based on the requested IP address or hostname.

    + +

    The DocumentRoot directive + is set in your main server configuration file + (httpd.conf) and, possibly, once per additional Virtual Host you create.

    top

    Files Outside the DocumentRoot

    @@ -84,13 +102,14 @@ will be served from /var/web/dir/file.html. The ScriptAlias directive works the same way, with the additional effect that all content - located at the target path is treated as CGI scripts.

    + located at the target path is treated as CGI scripts.

    For situations where you require additional flexibility, you - can use the AliasMatch and - ScriptAliasMatch - directives to do powerful regular-expression based matching and - substitution. For example,

    + can use the AliasMatch + and ScriptAliasMatch + directives to do powerful regular + expression based matching and substitution. For + example,

    ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) /home/$1/cgi-bin/$2

    @@ -198,8 +217,8 @@ server.

    ProxyPass /foo/ http://internal.example.com/bar/
    -ProxyPassReverse /foo/ http://internal.example.com/bar/ -ProxyPassReverseCookieDomain internal.example.com public.example.com +ProxyPassReverse /foo/ http://internal.example.com/bar/
    +ProxyPassReverseCookieDomain internal.example.com public.example.com
    ProxyPassReverseCookiePath /foo/ /bar/

    @@ -210,7 +229,7 @@ directive rewrites redirects originating at internal.example.com so that they target the appropriate directory on the local server. Similarly, the ProxyPassReverseCookieDomain -and ProxyPassReverseCookieDomain +and ProxyPassReverseCookiePath rewrite cookies set by the backend server.

    It is important to note, however, that links inside the documents will not be rewritten. So any absolute @@ -233,7 +252,7 @@ is available to rewrite links in HTML and XHTML.

    of performing all three types of mappings discussed above: internal redirects (aliases), external redirects, and proxying. Many practical examples employing mod_rewrite are discussed in the - URL Rewriting Guide.

    + detailed mod_rewrite documentation.

    top

    File Not Found

    @@ -278,8 +297,30 @@ is available to rewrite links in HTML and XHTML.

    Available Languages:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/urlmapping.html.ja.euc-jp b/docs/manual/urlmapping.html.ja.euc-jp deleted file mode 100644 index 1bafdd4c2de..00000000000 --- a/docs/manual/urlmapping.html.ja.euc-jp +++ /dev/null @@ -1,284 +0,0 @@ - - - -URL ¤«¤é¥ե¡¥¤¥륷¥¹¥ƥà¾å¤ΰÌÃ֤ؤΥޥå× - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    URL ¤«¤é¥ե¡¥¤¥륷¥¹¥ƥà¾å¤ΰÌÃ֤ؤΥޥå×

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - -

    ¤³¤Îʸ½ñ¤Ï Apache ¤¬¥ꥯ¥¨¥¹¥ȤÎ URL ¤«¤éÁ÷¿®¤¹¤ë¥ե¡¥¤¥ë¤Î - ¥ե¡¥¤¥륷¥¹¥ƥà¾å¤ΰÌÃ֤ò·èÄꤹ¤ëÊýˡ¤òÀâÌÀ¤·¤ޤ¹¡£

    -
    - -
    top
    -
    top
    -
    -

    DocumentRoot

    - -

    ¥ꥯ¥¨¥¹¥ȤËÂФ·¤ƤɤΥե¡¥¤¥ë¤òÁ÷¿®¤¹¤뤫¤ò·èÄꤹ¤ë¤Ȥ­¤Î - Apache ¤Υǥե©¥ë¥ȤÎưºî¤ϡ¢¥ꥯ¥¨¥¹¥ȤÎ URL-Path (URL ¤Υۥ¹¥È̾¤È - ¥ݡ¼¥ÈÈֹæ¤θå¤Ë³¤¯Éôʬ) ¤ò¼è¤ê½Ф·¤ÆÀßÄê¥ե¡¥¤¥ë¤ǻØÄꤵ¤ì¤Ƥ¤¤ë - DocumentRoot - ¤κǸå¤ËÄɲ乤롢¤Ȥ¤¤¦¤â¤ΤǤ¹¡£¤Ǥ¹¤«¤顢 - DocumentRoot - ¤β¼¤Υǥ£¥쥯¥ȥê¤ä¥ե¡¥¤¥뤬¥¦¥§¥֤«¤鸫¤¨¤ë´ðËܤΥɥ­¥å¥á¥ó¥ȤÎÌڹ½¤¤ò - ¤ʤ·¤ޤ¹¡£

    - -

    Apache ¤ˤϥµ¡¼¥Ф¬ʣ¿ô¤Υۥ¹¥ȤؤΥꥯ¥¨¥¹¥Ȥò¼õ¤±¼è¤ë - ¥С¼¥Á¥ã¥ë¥ۥ¹¥È ¤ε¡ǽ¤⤢¤ê¤ޤ¹¡£ - ¤³¤ξì¹硢¤½¤줾¤ì¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤËÂФ·¤ư㤦 - DocumentRoot - ¤ò»ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤ޤ¿¡¢mod_vhost_alias - ¥⥸¥塼¥ë¤ˤè¤êÄ󶡤µ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäơ¢ - Á÷¿®¤¹¤뤿¤á¤Υ³¥ó¥ƥó¥Ĥξì½ê¤ò¥ꥯ¥¨¥¹¥Ȥµ¤줿 IP - ¥¢¥ɥ쥹¤ä¥ۥ¹¥È̾¤«¤éưŪ¤˷è¤á¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    -
    top
    -
    -

    DocumentRoot ³°¤Υե¡¥¤¥ë

    - -

    ¥ե¡¥¤¥륷¥¹¥ƥà¾å¤Ρ¢ - ¸·̩¤ˤÏ DocumentRoot - ¤β¼¤ˤϤʤ¤Éôʬ¤ؤΥ¦¥§¥֥¢¥¯¥»¥¹¤òµö²Ĥ¹¤ëɬÍפ¬¤¢¤ë - ¾ì¹礬¤褯¤¢¤ê¤ޤ¹¡£Apache ¤Ϥ³¤Τ¿¤á¤Ëʣ¿ô¤ÎÊýˡ¤òÍѰդ·¤Ƥ¤¤ޤ¹¡£ - Unix ¥·¥¹¥ƥà¤Ǥϡ¢¥ե¡¥¤¥륷¥¹¥ƥà¤Î¾¤ÎÉôʬ¤򥷥ó¥ܥê¥å¯¥ê¥󥯤ò - »ȤäÆ DocumentRoot - ¤β¼¤˻ý¤äƤ¯¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¥»¥­¥å¥ê¥ƥ£¾å¤ÎÍýͳ¤ˤè¤ꡢ - Apache ¤ϳºÅö¤¹¤ë¥ǥ£¥쥯¥ȥê¤Î - Options ¤ÎÀßÄê¤Ë - FollowSymLinks ¤« SymLinksIfOwnerMatch ¤¬ - ¤¢¤ë¾ì¹ç¤ˤΤߥ·¥ó¥ܥê¥å¯¥ê¥󥯤򤿤ɤê¤ޤ¹¡£

    - -

    Âå¤ï¤ê¤ÎÊýˡ¤Ȥ·¤ơ¢Alias - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäƥե¡¥¤¥륷¥¹¥ƥà¤ÎǤ°դÎÉôʬ¤򥦥§¥֤ζõ´֤Ë - ¥ޥåפǤ­¤ޤ¹¡£¤¿¤Ȥ¨¤С¢

    - -

    Alias /docs /var/web

    - -

    ¤Ȥ¤¤¦ÀßÄê¤ΤȤ­¤ϡ¢URL - http://www.example.com/docs/dir/file.html ¤ˤÏ - /var/web/dir/file.html ¤¬Á÷¿®¤µ¤ì¤ޤ¹¡£ - ScriptAlias ¤⡢ - ÂоݤȤʤäƤ¤¤ë¥ѥ¹¤¬ CGI ¥¹¥¯¥ê¥ץȤȤ·¤ư·¤ï¤ì¤ë¤Ȥ¤¤¦ÄɲäÎ - ¸ú²̰ʳ°¤ÏƱ¤¸¤褦¤Ëưº¤ޤ¹¡£

    - -

    ¤â¤äȽÀÆð¤ÊÀßÄ꤬ɬÍפʾõ¶·¤Ǥϡ¢ - AliasMatch ¥ǥ£¥쥯¥ƥ£¥֤ä - ScriptAliasMatch ¥ǥ£¥쥯¥ƥ£¥Ö - ¤ò»Ȥäƶ¯ÎϤÊÀµµ¬ɽ¸½¤˴ð¤Ť¤¤¿¥ޥåÁ¤ÈÃִ¹¤ò¹Ԥʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤¿¤Ȥ¨¤С¢

    - -

    ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) - /home/$1/cgi-bin/$2

    - -

    ¤Ï http://example.com/~user/cgi-bin/script.cgi ¤ؤÎ - ¥ꥯ¥¨¥¹¥Ȥò /home/user/cgi-bin/script.cgi ¤Ȥ¤¤¦¥ѥ¹¤Ø - ¥ޥåפ·¡¢¤³¤Υޥåפηë²̤Ȥ·¤ƤΥե¡¥¤¥ë¤ò CGI ¥¹¥¯¥ê¥ץȤȤ·¤Æ - °·¤¤¤ޤ¹¡£

    -
    top
    -
    -

    ¥桼¥¶¥ǥ£¥쥯¥ȥê

    - -

    ÅÁÅýŪ¤Ë Unix ¥·¥¹¥ƥà¤Ǥϥ桼¥¶ user ¤Υۡ¼¥à¥ǥ£¥쥯¥ȥê¤ò - ~user/ ¤Ȥ·¤ƻ²¾ȤǤ­¤ޤ¹¡£mod_userdir - ¥⥸¥塼¥ë¤Ϥ³¤γµǰ¤򥦥§¥֤˳Èĥ¤·¤ơ¢ - ¤½¤줾¤ì¤Υ桼¥¶¤Υۡ¼¥à¥ǥ£¥쥯¥ȥê¤Υե¡¥¤¥ë¤ò - °ʲ¼¤Τ褦¤Ê URL ¤ò»Ȥäƥ¢¥¯¥»¥¹¤Ǥ­¤ë¤褦¤ˤ·¤ޤ¹¡£

    - -

    http://www.example.com/~user/file.html

    - -

    ¥»¥­¥å¥ê¥ƥ£¤δÑÅÀ¤«¤顢¥¦¥§¥֤«¤é¥桼¥¶¤Υۡ¼¥à¥ǥ£¥쥯¥ȥê¤Ø - ľÀܥ¢¥¯¥»¥¹¤Ǥ­¤ë¤褦¤ˤ¹¤뤳¤ȤÏŬÀڤǤϤ¢¤ê¤ޤ»¤󡣤Ǥ¹¤«¤顢 - UserDir ¥ǥ£¥쥯¥ƥ£¥֤ˤÏ - ¥桼¥¶¤Υۡ¼¥à¥ǥ£¥쥯¥ȥê¤β¼¤Ρ¢¥¦¥§¥֥ե¡¥¤¥ë¤Î - Ã֤«¤ì¤Ƥ¤¤ë¥ǥ£¥쥯¥ȥê¤ò»ØÄꤷ¤ޤ¹¡£¥ǥե©¥ë¥ȤÎÀßÄê¤Î - Userdir public_html ¤ò»Ȥ¦¤ȡ¢¾å¤Î URL ¤Ï - /home/user/public_html/file.html ¤Ȥ¤¤¦¤褦¤ʥե¡¥¤¥ë¤Ë - ¥ޥåפµ¤ì¤ޤ¹¡£¤³¤³¤ǡ¢/home/user/ ¤Ï - /etc/passwd ¤ǻØÄꤵ¤ì¤Ƥ¤¤ë¥桼¥¶¤Υۡ¼¥à¥ǥ£¥쥯¥ȥê¤Ǥ¹¡£

    - -

    Userdir ¤ˤϡ¢ - /etc/passwd ¤˥ۡ¼¥à¥ǥ£¥쥯¥ȥê¤ΰÌÃ֤¬½񤫤ì¤Ƥ¤¤ʤ¤ - ¥·¥¹¥ƥà¤Ǥâ»Ȥ¦¤³¤ȤΤǤ­¤ë¾¤ηÁ¼°¤⤢¤ê¤ޤ¹¡£

    - -

    Ãæ¤ˤϥ·¥ó¥ܥë "~" (%7e ¤Τ褦¤ËÉä¹沽¤µ¤ì¤뤳¤Ȥ¬¿¤¤) - ¤ò³ʹ¥¤¬°­¤¤¤Ȼפäơ¢¥桼¥¶¤Υǥ£¥쥯¥ȥê¤òɽ¤¹¤¿¤á¤ËÊ̤Îʸ»úÎó¤Î - »ÈÍѤ򹥤à¿ͤ¬¤¤¤ޤ¹¡£mod_userdir ¤Ϥ³¤ε¡ǽ¤򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ޤ»¤ó¡£ - ¤·¤«¤·¡¢¥桼¥¶¤Υۡ¼¥à¥ǥ£¥쥯¥ȥ꤬µ¬§Ū¤ʹ½À®¤ΤȤ­¤ϡ¢ - AliasMatch ¤ò»ȤäÆ˾¤ߤÎ - ¸ú²̤òãÀ®¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤¿¤Ȥ¨¤С¢ - http://www.example.com/upages/user/file.html ¤¬ - /home/user/public_html/file.html ¤˥ޥåפµ¤ì¤ë¤褦¤ˤ¹¤ë¤ˤϡ¢ - °ʲ¼¤Τ褦¤Ë AliasMatch ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥ¤¤ޤ¹:

    - -

    AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*) - /home/$1/public_html/$2

    -
    top
    -
    -

    URL ¥ê¥À¥¤¥쥯¥·¥ç¥ó

    - -

    ¾å¤ÎÀá¤ÇÀâÌÀ¤·¤¿ÀßÄêÍѤΥǥ£¥쥯¥ƥ£¥֤Ï Apache ¤Ë - ¥ե¡¥¤¥륷¥¹¥ƥà¤ÎÆÃÄê¤ξì½꤫¤饳¥ó¥ƥó¥Ĥò¼è¤äƤ­¤Æ - ¥¯¥饤¥¢¥ó¥ȤËÁ÷¤êÊ֤¹¤褦¤ˤ·¤ޤ¹¡£¤Ȥ­¤ˤϡ¢¤½¤ÎÂå¤ï¤ê¤Ë - ¥¯¥饤¥¢¥ó¥Ȥ˥ꥯ¥¨¥¹¥Ȥµ¤줿¥³¥ó¥ƥó¥ĤÏÊ̤Î URL ¤ˤ¢¤뤳¤Ȥò - ÃΤ餻¤ơ¢¥¯¥饤¥¢¥ó¥Ȥ¬¿·¤·¤¤ URL ¤ؿ·¤·¤¤¥ꥯ¥¨¥¹¥Ȥò¹Ԥʤ¦¤褦¤Ë - ¤¹¤ëÊý¤¬˾¤ޤ·¤¤¤³¤Ȥ¬¤¢¤ê¤ޤ¹¡£¤³¤ì¤Ï¥ê¥À¥¤¥쥯¥·¥ç¥ó¤È - ¸ƤФì¤Ƥ¤¤ơ¢Redirect - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤ê¼ÂÁõ¤µ¤ì¤Ƥ¤¤ޤ¹¡£¤¿¤Ȥ¨¤С¢ - DocumentRoot ¤β¼¤Υǥ£¥쥯¥ȥê - /foo/ ¤¬¿·¤·¤¤¥ǥ£¥쥯¥ȥê /bar/ ¤˰Üư¤·¤¿¤Ȥ­¤ϡ¢ - °ʲ¼¤Τ褦¤ˤ·¤ƥ¯¥饤¥¢¥ó¥Ȥ¬¿·¤·¤¤¾ì½ê¤Υ³¥ó¥ƥó¥Ĥò¥ꥯ¥¨¥¹¥Ȥ¹¤ë¤褦¤Ë - »ؼ¨¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹:

    - -

    Redirect permanent /foo/ - http://www.example.com/bar/

    - -

    ¤³¤ì¤ϡ¢/foo/ ¤ǻϤޤ뤹¤٤ƤÎ URL-Path ¤ò¡¢ - www.example.com ¥µ¡¼¥ФÎ /bar/ ¤¬ - /foo/ ¤ËÃִ¹¤µ¤줿¤â¤Τ˥ê¥À¥¤¥쥯¥Ȥ·¤ޤ¹¡£ - ¥µ¡¼¥Фϼ«ʬ¼«¿ȤΥµ¡¼¥ФÀ¤±¤Ǥʤ¯¡¢¤ɤΥµ¡¼¥ФˤǤ⥯¥饤¥¢¥ó¥Ȥò - ¥ê¥À¥¤¥쥯¥Ȥ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Apache ¤Ϥè¤êʣ»¨¤ʽ񤭴¹¤¨¤ÎÌäÂê¤Τ¿¤á¤ˡ¢ - RedirectMatch ¥ǥ£¥쥯¥ƥ£¥֤ò - Ä󶡤·¤Ƥ¤¤ޤ¹¡£¤¿¤Ȥ¨¤С¢¥µ¥¤¥ȤΥۡ¼¥à¥ڡ¼¥¸¤ò°㤦¥µ¥¤¥Ȥ˥ê¥À¥¤¥쥯¥È - ¤¹¤뤱¤ì¤ɡ¢¾¤Υꥯ¥¨¥¹¥ȤϤ½¤Τޤް·¤¦¡¢¤Ȥ¤¤¦¤Ȥ­¤ϰʲ¼¤ÎÀßÄê¤ò - »Ȥ¤¤ޤ¹:

    - -

    RedirectMatch permanent ^/$ - http://www.example.com/startpage.html

    - -

    ¤¢¤뤤¤ϡ¢°ì»þŪ¤˥µ¥¤¥ȤΤ¹¤٤ƤΥڡ¼¥¸¤ò¾¤Υµ¥¤¥ȤÎÆÃÄê¤Î - ¥ڡ¼¥¸¤إê¥À¥¤¥쥯¥Ȥ¹¤ë¤Ȥ­¤ϡ¢°ʲ¼¤ò»Ȥ¤¤ޤ¹:

    - -

    RedirectMatch temp .* - http://othersite.example.com/startpage.html

    -
    top
    -
    -

    ¥ê¥С¼¥¹¥ץí¥­¥·

    - -

    Apache ¤ϱó³ÖÃϤˤ¢¤ë¥ɥ­¥å¥á¥ó¥Ȥò¥í¡¼¥«¥ë¤Υµ¡¼¥ФÎ URL ¶õ´֤Ë -»ý¤äƤ¯¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£¤³¤μêˡ¤Ï¥ê¥С¼¥¹¥ץí¥­¥·¤ȸƤФì¤Ƥ¤¤ޤ¹¡£ -¥¦¥§¥֥µ¡¼¥Ф¬±ó³ÖÃϤΥɥ­¥å¥á¥ó¥Ȥò¼èÆÀ¤·¤ƥ¯¥饤¥¢¥ó¥ȤËÁ÷¤êÊ֤¹¤Τ¬ -¥ץí¥­¥·¥µ¡¼¥ФÎưºî¤Τ褦¤˸«¤¨¤뤫¤é¤Ǥ¹¡£¥¯¥饤¥¢¥ó¥Ȥˤϥɥ­¥å¥á¥ó¥Ȥ¬ -¥ê¥С¼¥¹¥ץí¥­¥·¥µ¡¼¥Ф«¤éÁ÷¤é¤ì¤Ƥ­¤Ƥ¤¤ë¤褦¤˸«¤¨¤ëÅÀ¤¬Ä̾ï¤Î -¥ץí¥­¥·¤Ȥϰۤʤê¤ޤ¹¡£

    - -

    ¼¡¤ÎÎã¤Ǥϡ¢¥¯¥饤¥¢¥ó¥Ȥ¬ /foo/ ¥ǥ£¥쥯¥ȥê¤β¼¤ˤ¢¤ë -¥ɥ­¥å¥á¥ó¥Ȥò¥ꥯ¥¨¥¹¥Ȥ¹¤ë¤ȡ¢¥µ¡¼¥Ф¬ internal.example.com ¤Î -/bar/ ¥ǥ£¥쥯¥ȥ꤫¤é¼èÆÀ¤·¤ơ¢¤µ¤â¥í¡¼¥«¥륵¡¼¥Ф«¤é¤Î -¥ɥ­¥å¥á¥ó¥ȤΤ褦¤ˤ·¤ƥ¯¥饤¥¢¥ó¥ȤËÊ֤·¤ޤ¹¡£

    - -

    -ProxyPass /foo/ http://internal.example.com/bar/
    -ProxyPassReverse /foo/ http://internal.example.com/bar/
    -ProxyPassReverseCookieDomain internal.example.com public.example.com
    -ProxyPassReverseCookiePath /foo/ /bar/ -

    - -

    ProxyPass ¥ǥ£¥쥯¥ƥ£¥֤Ï -¥µ¡¼¥Ф¬ŬÀڤʥɥ­¥å¥á¥ó¥Ȥò¼èÆÀ¤¹¤ë¤褦¤ËÀßÄꤷ¡¢ -ProxyPassReverse ¥ǥ£¥쥯¥ƥ£¥֤Ï -internal.example.com ¤«¤é¤Υê¥À¥¤¥쥯¥Ȥ¬¥í¡¼¥«¥륵¡¼¥ФÎ -ŬÀڤʥǥ£¥쥯¥ȥê¤ò»ؤ¹¤褦¤˽񤭴¹¤¨¤ޤ¹¡£ -ƱÍͤË ProxyPassReverseCookieDomain -¤È ProxyPassReverseCookiePath -¤ǥХ寥¨¥ó¥É¦¥µ¡¼¥ФÎȯ¹Ԥ·¤¿ Cookie ¤ò½񤭴¹¤¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -

    ¤¿¤À¤·¡¢¥ɥ­¥å¥á¥ó¥ȤÎÃæ¤Υê¥󥯤Ͻ񤭴¹¤¨¤é¤ì¤ʤ¤¡¢ -¤Ȥ¤¤¦¤³¤ȤÏÃΤäƤª¤¤¤Ƥ¯¤À¤µ¤¤¡£ -¤Ǥ¹¤«¤顢internal.example.com ¤ؤÎÀäÂХѥ¹¤ˤè¤ë¥ê¥󥯤Ǥϡ¢ -¥¯¥饤¥¢¥ó¥Ȥ¬¥ץí¥­¥·¥µ¡¼¥Фòȴ¤±½Ф·¤Æ internal.example.com ¤Ë -ľÀܥꥯ¥¨¥¹¥ȤòÁ÷¤롢¤Ȥ¤¤¦¤³¤Ȥˤʤê¤ޤ¹¡£ -¥µ¡¼¥ɥѡ¼¥ƥ£À½¥⥸¥塼¥ë¤Î mod_proxy_html -¤ϡ¢HTML ¤È XHTML Ãæ¤Υê¥󥯤ò½񤭴¹¤¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -
    top
    -
    -

    ¥ê¥饤¥ȥ¨¥󥸥ó

    - -

    ¤è¤ê°ìÁض¯ÎϤÊÃִ¹¤¬ɬÍפʤȤ­¤ϡ¢mod_rewrite - ¤¬Ä󶡤¹¤ë¥ê¥饤¥ȥ¨¥󥸥ó¤¬Ìò¤ËΩ¤ĤǤ·¤礦¡£ - ¤³¤Υ⥸¥塼¥ë¤ˤè¤êÄ󶡤µ¤ì¤ë¥ǥ£¥쥯¥ƥ£¥֤Ï - ¥֥饦¥¶¤μïÎࡢ¥ꥯ¥¨¥¹¥ȸµ¤Î IP ¥¢¥ɥ쥹¤ʤɤΥꥯ¥¨¥¹¥ȤÎÆÃħ¤ò - »ȤäÆÁ÷¤êÊ֤¹¥³¥ó¥ƥó¥Ĥξì½ê¤ò·è¤á¤ޤ¹¡£¤µ¤é¤ˡ¢mod_rewrite - ¤ϳ°Éô¤Υǡ¼¥¿¥١¼¥¹¥ե¡¥¤¥ë¤ä¥ץí¥°¥é¥à¤ò»Ȥäƥꥯ¥¨¥¹¥Ȥΰ·¤¤Êý¤ò - ·è¤á¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£¥ê¥饤¥ȥ¨¥󥸥ó¤Ͼå¤ǵ󤲤é¤ì¤Ƥ¤¤뻰¤ĤΥޥåԥó¥° - ¤¹¤٤Ƥò¹Ԥʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹: ÆâÉô¤Υê¥À¥¤¥쥯¥È (¥¨¥¤¥ꥢ¥¹)¡¢ - ³°Éô¤Υê¥À¥¤¥쥯¥ȡ¢¥ץí¥­¥·¤Ǥ¹¡£mod_rewrite ¤ò»Ȥ¦¿¤¯¤μÂÍÑŪ¤ÊÎã¤Ï - URL ¥ê¥饤¥ȥ¬¥¤¥É - ¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ޤ¹¡£

    -
    top
    -
    -

    File Not Found

    - -

    ɬ¤º¡¢¥ꥯ¥¨¥¹¥Ȥµ¤줿 URL ¤ËÂбþ¤¹¤ë¥ե¡¥¤¥뤬¥ե¡¥¤¥륷¥¹¥ƥà¤Ë - ̵¤¤¤Ȥ¤¤¦¾ì¹礬ȯÀ¸¤·¤ޤ¹¡£¤³¤줬µ¯¤³¤ë¤ΤˤϤ¤¤¯¤Ĥ«¤ÎÍýͳ¤¬¤¢¤ê¤ޤ¹¡£ - ¾ì¹ç¤ˤè¤äƤϡ¢¥ɥ­¥å¥á¥ó¥ȤòÊ̤ξì½ê¤˰Üư¤·¤¿·ë²̤Ǥ¢¤뤳¤Ȥ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ξì¹ç¤ϡ¢¥¯¥饤¥¢¥ó¥Ȥ˥꥽¡¼¥¹¤ο·¤·¤¤°ÌÃ֤òÃΤ餻¤뤿¤á¤Ë - URL ¥ê¥À¥¤¥쥯¥·¥ç¥ó¤ò»Ȥ¦¤Τ¬ºÇÁ±¤ÎÊýˡ¤Ǥ¹¡£ - ¤½¤¦¤¹¤뤳¤Ȥˤè¤äơ¢¥꥽¡¼¥¹¤Ͽ·¤·¤¤°ÌÃ֤˰Üư¤·¤Ƥ¤¤뤱¤ì¤ɤ⡢ - ¸Ť¤¥֥寥ޡ¼¥¯¤ä¥ê¥󥯤¬ưº³¤±¤ë¤褦¤ˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    "File Not Found" ¥¨¥顼¤Τ⤦°ì¤ĤΤ褯¤¢¤ëÍýͳ¤ϡ¢ - ¥֥饦¥¶¤ؤÎľÀÜÆþÎϤä HTML ¥ê¥󥯤«¤é¤ζöȯŪ¤Ê URL ¤ÎÆþÎϴְ㤤¤Ǥ¹¡£ - Apache ¤Ϥ³¤ÎÌäÂê¤ò²þÁ±¤¹¤뤿¤á¤ˡ¢mod_speling - ¥⥸¥塼¥ë (°տÞŪ¤ÊÄ֤ê´ְ㤤) - (ÌõÃí: Àµ¤·¤¯¤Ï spelling) ¤òÄ󶡤·¤Ƥ¤¤ޤ¹¡£¤³¤Υ⥸¥塼¥뤬 - »ÈÍѤµ¤ì¤Ƥ¤¤ë¤Ȥ­¤ϡ¢"File Not Found" ¥¨¥顼¤򲣼è¤ꤷ¤ơ¢ - »÷¤¿¥ե¡¥¤¥ë̾¤Υ꥽¡¼¥¹¤òõ¤·¤ޤ¹¡£¤⤷°ì¤ĤÀ¤±¸«¤Ĥ«¤ä¿¾ì¹ç¤Ï - mod_speling ¤ϥ¯¥饤¥¢¥ó¥ȤËÀµ¤·¤¤°ÌÃ֤òÃΤ餻¤뤿¤á¤Ë HTTP ¥ê¥À¥¤¥쥯¥Ȥò - Á÷¤ê¤ޤ¹¡£¤⤷ʣ¿ô¤Ρֶᤤ¡ץե¡¥¤¥뤬¸«¤Ĥ«¤ä¿¾ì¹ç¤ϡ¢¤½¤ì¤é - ÂåÂؤȤʤꤨ¤ë¤â¤ΤΥꥹ¥Ȥ¬¥¯¥饤¥¢¥ó¥ȤËɽ¼¨¤µ¤ì¤ޤ¹¡£

    - -

    mod_speling ¤ÎÈó¾ï¤ËͭÍѤʵ¡ǽ¤ϡ¢Âçʸ»ú¾®ʸ»ú¤ò¶èÊ̤»¤º¤Ë - ¥ե¡¥¤¥ë̾¤òÈæ³Ӥ¹¤ë¤â¤ΤǤ¹¡£¤³¤ì¤Ï URL ¤È unix ¤Î - ¥ե¡¥¤¥륷¥¹¥ƥबξÊý¤ȤâÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤¹¤ë¤â¤ΤǤ¢¤롢 - ¤Ȥ¤¤¦¤³¤Ȥò¥桼¥¶¤¬ÃΤé¤ʤ¤¥·¥¹¥ƥà¤ÇÌò¤ËΩ¤Á¤ޤ¹¡£¤¿¤À¤·¡¢ - »þÀޤÎ URL ÄûÀµÄøÅ٤ǺѤޤº¡¢mod_speling ¤ò¤è¤ê¿¤¯»ÈÍѤ¹¤ë¤ȡ¢¥µ¡¼¥ФË - ¤µ¤é¤ʤëÉé²٤¬¤«¤«¤ê¤ޤ¹¡£¤¹¤٤ƤΡÖÀµ¤·¤¯¤ʤ¤¡ץꥯ¥¨¥¹¥Ȥθå¤Ë - URL ¤Υê¥À¥¤¥쥯¥Ȥȥ¯¥饤¥¢¥ó¥Ȥ«¤é¤ο·¤·¤¤¥ꥯ¥¨¥¹¥Ȥ¬¤¯¤뤳¤ȤË - ¤ʤê¤ޤ¹¤«¤顣

    - -

    ¥³¥ó¥ƥó¥ĤΰÌÃ֤ò·è¤á¤褦¤Ȥ¹¤뤹¤٤Ƥλî¤ߤ¬¼ºÇԤ¹¤ë¤ȡ¢ - Apache ¤ϡ¢HTTP ¥¹¥ơ¼¥¿¥¹¥³¡¼¥É 404 (file not found) ¤ȶ¦¤Ë - ¥¨¥顼¥ڡ¼¥¸¤òÊ֤·¤ޤ¹¡£¤³¤Υ¨¥顼¥ڡ¼¥¸¤γ°´ѤÏ - ErrorDocument - ¥ǥ£¥쥯¥ƥ£¥֤ÇÀ©¸椵¤졢 - ¥«¥¹¥¿¥२¥顼¥쥹¥ݥó¥¹ ¤Ç - ÀâÌÀ¤µ¤ì¤Ƥ¤¤ë¤褦¤ˡ¢½ÀÆð¤ÊÀßÄê¤ò¹Ԥʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/urlmapping.html.ja.utf8 b/docs/manual/urlmapping.html.ja.utf8 new file mode 100644 index 00000000000..393f530584d --- /dev/null +++ b/docs/manual/urlmapping.html.ja.utf8 @@ -0,0 +1,320 @@ + + + + + +URL からファイルシステム上の位置へのマップ - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    URL からファイルシステム上の位置へのマップ

    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    この文書は Apache がリクエストの URL から送信するファイルの + ファイルシステム上の位置を決定する方法を説明します。

    +
    + +
    top
    +
    top
    +
    +

    DocumentRoot

    + +

    リクエストに対してどのファイルを送信するかを決定するときの + Apache のデフォルトの動作は、リクエストの URL-Path (URL のホスト名と + ポート番号の後に続く部分) を取り出して設定ファイルで指定されている + DocumentRoot + の最後に追加する、というものです。ですから、 + DocumentRoot + の下のディレクトリやファイルがウェブから見える基本のドキュメントの木構造を + なします。

    + +

    Apache にはサーバが複数のホストへのリクエストを受け取る + バーチャルホスト の機能もあります。 + この場合、それぞれのバーチャルホストに対して違う + DocumentRoot + を指定することができます。また、mod_vhost_alias + モジュールにより提供されるディレクティブを使って、 + 送信するためのコンテンツの場所をリクエストされた IP + アドレスやホスト名から動的に決めることもできます。

    +
    top
    +
    +

    DocumentRoot 外のファイル

    + +

    ファイルシステム上の、 + 厳密には DocumentRoot + の下にはない部分へのウェブアクセスを許可する必要がある + 場合がよくあります。Apache はこのために複数の方法を用意しています。 + Unix システムでは、ファイルシステムの他の部分をシンボリックリンクを + 使って DocumentRoot + の下に持ってくることができます。セキュリティ上の理由により、 + Apache は該当するディレクトリの + Options の設定に + FollowSymLinks か SymLinksIfOwnerMatch が + ある場合にのみシンボリックリンクをたどります。

    + +

    代わりの方法として、Alias + ディレクティブを使ってファイルシステムの任意の部分をウェブの空間に + マップできます。たとえば、

    + +

    Alias /docs /var/web

    + +

    という設定のときは、URL + http://www.example.com/docs/dir/file.html には + /var/web/dir/file.html が送信されます。 + ScriptAlias も、 + 対象となっているパスが CGI + スクリプトとして扱われるという追加の + 効果以外は同じように動作します。

    + +

    もっと柔軟な設定が必要な状況では、 + AliasMatch ディレクティブや + ScriptAliasMatch ディレクティブ + を使って強力な正規表現に基づいたマッチと + 置換を行なうことができます。 + たとえば、

    + +

    ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) + /home/$1/cgi-bin/$2

    + +

    は http://example.com/~user/cgi-bin/script.cgi への + リクエストを /home/user/cgi-bin/script.cgi というパスへ + マップし、このマップの結果としてのファイルを CGI スクリプトとして + 扱います。

    +
    top
    +
    +

    ユーザディレクトリ

    + +

    伝統的に Unix システムではユーザ user のホームディレクトリを + ~user/ として参照できます。mod_userdir + モジュールはこの概念をウェブに拡張して、 + それぞれのユーザのホームディレクトリのファイルを + 以下のような URL を使ってアクセスできるようにします。

    + +

    http://www.example.com/~user/file.html

    + +

    セキュリティの観点から、ウェブからユーザのホームディレクトリへ + 直接アクセスできるようにすることは適切ではありません。ですから、 + UserDir ディレクティブには + ユーザのホームディレクトリの下の、ウェブファイルの + 置かれているディレクトリを指定します。デフォルトの設定の + Userdir public_html を使うと、上の URL は + /home/user/public_html/file.html というようなファイルに + マップされます。ここで、/home/user/ は + /etc/passwd で指定されているユーザのホームディレクトリです。

    + +

    Userdir には、 + /etc/passwd にホームディレクトリの位置が書かれていない + システムでも使うことのできる他の形式もあります。

    + +

    中にはシンボル "~" (%7e のように符号化されることが多い) + を格好が悪いと思って、ユーザのディレクトリを表すために別の文字列の + 使用を好む人がいます。mod_userdir はこの機能をサポートしていません。 + しかし、ユーザのホームディレクトリが規則的な構成のときは、 + AliasMatch を使って望みの + 効果を達成することができます。たとえば、 + http://www.example.com/upages/user/file.html が + /home/user/public_html/file.html にマップされるようにするには、 + 以下のように AliasMatch ディレクティブを使います:

    + +

    AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*) + /home/$1/public_html/$2

    +
    top
    +
    +

    URL リダイレクション

    + +

    上の節で説明した設定用のディレクティブは Apache に + ファイルシステムの特定の場所からコンテンツを取ってきて + クライアントに送り返すようにします。ときには、その代わりに + クライアントにリクエストされたコンテンツは別の URL にあることを + 知らせて、クライアントが新しい URL へ新しいリクエストを行なうように + する方が望ましいことがあります。これはリダイレクションと + 呼ばれていて、Redirect + ディレクティブにより実装されています。たとえば、 + DocumentRoot の下のディレクトリ + /foo/ が新しいディレクトリ /bar/ に移動したときは、 + 以下のようにしてクライアントが新しい場所のコンテンツをリクエストするように + 指示することができます:

    + +

    Redirect permanent /foo/ + http://www.example.com/bar/

    + +

    これは、/foo/ で始まるすべての URL-Path を、 + www.example.com サーバの /bar/ が + /foo/ に置換されたものにリダイレクトします。 + サーバは自分自身のサーバだけでなく、どのサーバにでもクライアントを + リダイレクトすることができます。

    + +

    Apache はより複雑な書き換えの問題のために、 + RedirectMatch ディレクティブを + 提供しています。たとえば、サイトのホームページを違うサイトにリダイレクト + するけれど、他のリクエストはそのまま扱う、というときは以下の設定を + 使います:

    + +

    RedirectMatch permanent ^/$ + http://www.example.com/startpage.html

    + +

    あるいは、一時的にサイトのすべてのページを他のサイトの特定の + ページへリダイレクトするときは、以下を使います:

    + +

    RedirectMatch temp .* + http://othersite.example.com/startpage.html

    +
    top
    +
    +

    リバースプロキシ

    + +

    Apache は遠隔地にあるドキュメントをローカルのサーバの URL 空間に +持ってくることもできます。この手法はリバースプロキシと呼ばれています。 +ウェブサーバが遠隔地のドキュメントを取得してクライアントに送り返すのが +プロキシサーバの動作のように見えるからです。クライアントにはドキュメントが +リバースプロキシサーバから送られてきているように見える点が通常の +プロキシとは異なります。

    + +

    次の例では、クライアントが /foo/ ディレクトリの下にある +ドキュメントをリクエストすると、サーバが internal.example.com の +/bar/ ディレクトリから取得して、さもローカルサーバからの +ドキュメントのようにしてクライアントに返します。

    + +

    +ProxyPass /foo/ http://internal.example.com/bar/
    +ProxyPassReverse /foo/ http://internal.example.com/bar/
    +ProxyPassReverseCookieDomain internal.example.com public.example.com
    +ProxyPassReverseCookiePath /foo/ /bar/ +

    + +

    ProxyPass ディレクティブは +サーバが適切なドキュメントを取得するように設定し、 +ProxyPassReverse ディレクティブは +internal.example.com からのリダイレクトがローカルサーバの +適切なディレクトリを指すように書き換えます。 +同様に ProxyPassReverseCookieDomain +と ProxyPassReverseCookiePath +でバックエンド側サーバの発行した Cookie を書き換えることができます。

    +

    ただし、ドキュメントの中のリンクは書き換えられない、 +ということは知っておいてください。 +ですから、internal.example.com への絶対パスによるリンクでは、 +クライアントがプロキシサーバを抜け出して internal.example.com に +直接リクエストを送る、ということになります。 +サードパーティ製モジュールの mod_proxy_html +は、HTML と XHTML 中のリンクを書き換えることができます。

    +
    top
    +
    +

    リライトエンジン

    + +

    より一層強力な置換が必要なときは、mod_rewrite + が提供するリライトエンジンが役に立つでしょう。 + このモジュールにより提供されるディレクティブは + ブラウザの種類、リクエスト元の IP アドレスなどのリクエストの特徴を + 使って送り返すコンテンツの場所を決めます。さらに、mod_rewrite + は外部のデータベースファイルやプログラムを使ってリクエストの扱い方を + 決めることもできます。リライトエンジンは上で挙げられている三つのマッピング + すべてを行なうことができます: 内部のリダイレクト (エイリアス)、 + 外部のリダイレクト、プロキシです。mod_rewrite を使う多くの実用的な例は + URL リライトガイド + で説明されています。

    +
    top
    +
    +

    File Not Found

    + +

    必ず、リクエストされた URL に対応するファイルがファイルシステムに + 無いという場合が発生します。これが起こるのにはいくつかの理由があります。 + 場合によっては、ドキュメントを別の場所に移動した結果であることがあります。 + この場合は、クライアントにリソースの新しい位置を知らせるために + URL リダイレクションを使うのが最善の方法です。 + そうすることによって、リソースは新しい位置に移動しているけれども、 + 古いブックマークやリンクが動作し続けるようにすることができます。

    + +

    "File Not Found" エラーのもう一つのよくある理由は、 + ブラウザへの直接入力や HTML リンクからの偶発的な URL の入力間違いです。 + Apache はこの問題を改善するために、mod_speling + モジュール (意図的な綴り間違い) + (訳注: 正しくは spelling) を提供しています。このモジュールが + 使用されているときは、"File Not Found" エラーを横取りして、 + 似たファイル名のリソースを探します。もし一つだけ見つかった場合は + mod_speling はクライアントに正しい位置を知らせるために HTTP リダイレクトを + 送ります。もし複数の「近い」ファイルが見つかった場合は、それら + 代替となりえるもののリストがクライアントに表示されます。

    + +

    mod_speling の非常に有用な機能は、大文字小文字を区別せずに + ファイル名を比較するものです。これは URL と unix の + ファイルシステムが両方とも大文字小文字を区別するものである、 + ということをユーザが知らないシステムで役に立ちます。ただし、 + 時折の URL 訂正程度で済まず、mod_speling をより多く使用すると、サーバに + さらなる負荷がかかります。すべての「正しくない」リクエストの後に + URL のリダイレクトとクライアントからの新しいリクエストがくることに + なりますから。

    + +

    コンテンツの位置を決めようとするすべての試みが失敗すると、 + Apache は、HTTP ステータスコード 404 (file not found) と共に + エラーページを返します。このエラーページの外観は + ErrorDocument + ディレクティブで制御され、 + カスタムエラーレスポンス で + 説明されているように、柔軟な設定を行なうことができます。

    +
    +
    +

    翻訳済み言語:  en  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/urlmapping.html.ko.euc-kr b/docs/manual/urlmapping.html.ko.euc-kr index 6829599e3f2..de6553236f4 100644 --- a/docs/manual/urlmapping.html.ko.euc-kr +++ b/docs/manual/urlmapping.html.ko.euc-kr @@ -1,27 +1,37 @@ - -URLÀ» ÆÄÀϽýºÅÛ À§ġ·Î ´ëÀÀÇϱâ - Apache HTTP Server +URLÀ» ÆÄÀϽýºÅÛ À§ġ·Î ´ëÀÀÇϱâ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    URLÀ» ÆÄÀϽýºÅÛ À§ġ·Î ´ëÀÀÇϱâ

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    URLÀ» ÆÄÀϽýºÅÛ À§ġ·Î ´ëÀÀÇϱâ

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ÀÌ ¹®¼­´Â ¿äûÀÇ URLÀ» °¡Áö°í ¾ÆÆÄġ°¡ ¾°Ô ¼­ºñ½ºÇÒ ÆÄÀÏÀÇ ÆÄÀϽýºÅۻó À§ġ¸¦ ã´ÂÁö ¼³¸íÇѴÙ.

    @@ -34,7 +44,7 @@
  • ¿ªÇÁ·ϽÃ(Reverse Proxy)
  • ÀçÀۼº ¿£Áø (Rewriting Engine)
  • File Not Found
  • -
    +
    top

    °ü·õÈ ¸ðµâ°ú Áö½þîµé

    @@ -238,8 +248,30 @@ ProxyPassReverse /foo/ http://internal.example.com/bar/

    °¡´ÉÇÑ ¾ð¾î:  en  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/urlmapping.html.tr.utf8 b/docs/manual/urlmapping.html.tr.utf8 new file mode 100644 index 00000000000..b20ecb9bb5c --- /dev/null +++ b/docs/manual/urlmapping.html.tr.utf8 @@ -0,0 +1,312 @@ + + + + + +URL’lerin Dosya Sistemi ile Eşleştirilmesi - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    URL’lerin Dosya Sistemi ile Eşleştirilmesi

    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    + +

    Bu belgede, bir istekte belirtilen URL’nin sunulacak dosyanın dosya + sistemindeki yerini bulmak için Apache tarafından nasıl kullanıldığı + açıklanmaktadır.

    +
    + +
    top
    +
    top
    +
    +

    DocumentRoot

    + +

    Yapılan bir isteğe hangi dosyanın sunulacağına karar verirken + Apache’nin öntanımlı davranışı istek için URL yolunu (URL’den konak ismi + ve port ayrıldıktan sonra kalan kısım) alıp bunu yapılandırma dosyasında + DocumentRoot yönergesi ile + belirtilen dizinin sonuna eklemektir. Bu nedenle, DocumentRoot altındaki dizinler ve dosyalar + sitenin dışardan görünen temel belge ağacını oluştururlar.

    + +

    Örneğin, DocumentRoot yönergesine + /var/http/html atanmış olsun. + http://mesela.dom/balıklar/zargana.html şeklindeki bir + istek için istemciye /var/http/html/balıklar/zargana.html + dosyası sunulur.

    + +

    Apache ayrıca, sunucunun birden fazla konak için istek kabul etmesini + sağlayan sanal barındırmaya da muktedirdir. Bu + durumda her sanal konak için ayrı bir DocumentRoot belirtilebileceği gibi sunulacak içeriğin + istekte bulunulan IP adresi veya konak ismine dayanarak devingen olarak + saptanmasını sağlayabilen mod_vhost_alias modülüyle + gelen yönergeler de kullanılabilir.

    + +

    DocumentRoot yönergesi + yapılandırma dosyanızda ana sunucu için bir tane ve muhtemelen + oluşturduğunuz her sanal konak için de birer + tanedir.

    +
    top
    +
    +

    Belge Kök Dizini Dışındaki Dosyalar

    + +

    Bazen dosya sisteminde doğrudan DocumentRoot altında bulunmayan dosyalara da erişim izni + vermek gerekir. Apache’de bunu sağlamanın çeşitli yolları vardır. Unix + sistemlerinde sembolik bağlar sayesinde dosya sisteminin farklı + yerlerindeki dosyaları ve dizinleri DocumentRoot altındaymış gibi göstermek mümkündür. + Options yönergesine değer olarak + FollowSymLinks veya SymLinksIfOwnerMatch + atanmadıkça Apache olası güvenlik açıklarına karşı öntanımlı olarak + sembolik bağları izlemez.

    + +

    Bundan başka, dosya sisteminin farklı parçalarını belge kök dizini + altında göstermek için Alias + yönergesi de kullanılabilir. Örneğin,

    + +

    Alias /belgeler /var/http

    + +

    yapılandırması ile + http://mesela.dom/belgeler/dizin/dosya.html URL’si için + dosya sistemindeki /var/http/dizin/dosya.html dosyası + sunulacaktır. Hedef dizindeki dosyaları birer CGI betiği olarak imlemesi dışında ScriptAlias yönergesi de aynı şekilde + çalışır.

    + +

    Biraz daha fazla esnekliğin gerektiği durumlarda düzenli ifadelere dayalı eşleşmeler sağlamak + üzere AliasMatch ve ScriptAliasMatch yönergelerinin gücünden + yararlanılabilir. Örneğin,

    + +

    ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) + /home/$1/cgi-bin/$2

    + +

    satırı sayesinde http://mesela.dom/~user/cgi-bin/betik.cgi + URL’si /home/user/cgi-bin/betik.cgi dosyası ile + eşleştirilir ve dosya bir CGI betiği olarak çalıştırılırdı.

    +
    top
    +
    +

    Kullanıcı Dizinleri

    + +

    Geleneksel olarak Unix sistemlerinde belli bir kullanıcının (örn, + birisi) ev dizinine ~birisi/ şeklinde atıfta + bulunulabilir. mod_userdir modülü bu özelliği site + üzerinden kullanıcıların ev dizinlerindeki dosyaları kişisel sayfalar + olarak sunmalarını sağlamak üzere kullanır. Örnek:

    + +

    http://mesela.dom/~birisi/dosya.html

    + +

    Güvenlik sebebiyle kullanıcıların ev dizinlerine doğrudan HTTP erişimi + vermek uygun olmaz. Bu bakımdan, kullanıcının ev dizini altında HTTP + erişimi verilecek dosyaların bulunduğu dizini belirtmek için UserDir yönergesi sağlanmıştır. + Öntanımlı olan Userdir public_html yapılandırması ile + yukarıdaki gibi bir URL kullanıcının ev dizini (/etc/passwd + dosyasında belirtilir) /home/birisi/ altında yer alan + /home/birisi/public_html/dosya.html dosyası ile + eşleşirdi.

    + +

    Ev dizininin yerinin /etc/passwd dosyasında belirtilmediği + sistemlerde kullanılmak üzere Userdir yönergesinin başka + kullanım şekilleri de vardır.

    + +

    Bazı kişiler (genellikle URL üzerinde %7e olarak + kodlanması sebebiyle) "~" simgesini biçimsiz bulabilir ve kullanıcı + dizinlerini imlemek için başka bir karakter kullanmayı tercih + edebilirler. Bu işlevsellik mod_userdir tarafından + desteklenmemektedir. Ancak, kullanıcı dizinleri düzgün şekilde + yapılandırılmışsa istenen etki AliasMatch yönergesi ile sağlanabilir. + Örneğin, http://mesela.dom/sayfalar/birisi/dosya.html + URL’si ile /home/birisi/public_html/dosya.html dosyasını + eşlemek için AliasMatch yönergesi şöyle + kullanılabilirdi:

    + +

    AliasMatch ^/sayfalar/([a-zA-Z0-9]+)/?(.*) + /home/$1/public_html/$2

    +
    top
    +
    +

    URL Yönlendirme

    + +

    Yukarıdaki bölümlerde açıklanan yapılandırma yönergeleri Apache’ye + içeriği dosya sisteminin belli bir yerinden alıp istemciye göndermesini + söyler. Bazen istemciye, istediği içeriğe farklı bir URL ile + erişebileceğini ve bu URL için ayrı bir istek yapması gerektiğini + bildirmek gerekir. Bu işleme yönlendirme adı verilir ve bu + işlevsellik Redirect yönergesi + ile sağlanır. Örneğin, DocumentRoot + altındaki /foo/ dizininin içeriğinin /bar/ + adında yeni bir dizine taşınması halinde istemciye yeni konumun + bildirilmesi şöyle sağlanabilirdi:

    + +

    Redirect permanent /foo/ + http://mesela.dom/bar/

    + +

    Bu atama sayesinde /foo/ ile başlayan URL yolları + mesela.dom sunucundaki /bar/ dizini altındaki + içeriğe yönlendirilmektedir. Yönlendirmeyi aynı sunucu üzerinde yapmak + zorunda değilsiniz, bu yönerge ile başka bir sunucuya da yönlendirme + yapabilirsiniz.

    + +

    Apache ayrıca, yeniden yazma ile ilgili daha karmaşık sorunlara çözüm + olarak RedirectMatch diye bir + yönerge daha sağlar. Örneğin bir sitenin baş sayfasını diğer isteklerden + ayrı olarak farklı bir siteye yönlendirmek için yönergeyi şöyle + kullanabilirsiniz:

    + +

    RedirectMatch permanent ^/$ + http://misal.dom/ilksayfa.html

    + +

    Bundan başka, bir sitedeki tüm sayfalara yapılan istekleri başka bir + siteye geçici olarak yönlendirmek için şöyle bir şey yapabilirsiniz:

    + +

    RedirectMatch temp .* + http://mesela.misal.dom/ilksayfa.html

    +
    top
    +
    +

    Karşı Vekil

    + +

    Apache ayrıca, uzak sunuculardaki belgelerin yerel sunucunun URL + alanına getirilmesini de mümkün kılar. Bu tekniğe HTTP sunucunun + belgeleri uzak bir sunucudan alıp istemciye sunmasını sağlayarak bir + vekil sunucu gibi davranması nedeniyle ters vekalet adı + verilir. Belgelerin istemciye özkaynağın bulunduğu sunucudan + geliyormuş gibi değilde doğrudan isteği yaptığı sunucudan geliyormuş + gibi sunulması nedeniyle bu işlem normal vekaletten farklıdır.

    + +

    Aşağıdaki örnekte, istemci /foo/ dizini altından bir belge + istemekte, sunucu ise bu belgeyi dahili.mesela.dom + üzerindeki /bar/ dizininden alıp istemciye yerel sunucudan + geliyormuş gibi sunmaktadır:

    + +

    + ProxyPass /foo/ http://dahili.mesela.dom/bar/
    + ProxyPassReverse /foo/ http://dahili.mesela.dom/bar/
    + ProxyPassReverseCookieDomain dahili.mesela.dom harici.mesela.dom
    + ProxyPassReverseCookiePath /foo/ /bar/ +

    + +

    ProxyPass sunucuyu uygun + belgeleri alması için yapılandırırken ProxyPassReverse yönergesi dahili.mesela.dom + sunucusundan kaynaklanan yönlendirmeleri yeniden yazar, böylece bunların + yerel sunucudaki yerleri belirlenmiş olur. Benzer şekilde, ProxyPassReverseCookieDomain ve + ProxyPassReverseCookiePath + yönergeleri de arka sunucu tarafından atanan çerezleri yeniden yazar.

    + +

    Yalnız, belgelerin içindeki hiperbağların yeniden yazılmayacağına + dikkat ediniz. Dolayısıyla, belge içinde + dahili.mesela.dom’u ismiyle hedef alan mutlak hiperbağlar + varsa bunlar istemci tarafından vekil sunucudan değil doğrudan + dahili.mesela.dom’dan istenecektir. Üçüncü parti modüller + arasında HTML ve XHTML’de hiperbağları yeniden yazabilen mod_proxy_html + adında bir modül vardır.

    +
    top
    +
    +

    Yeniden Yazma Motoru

    + +

    Daha güçlü ikameler gerektiğinde mod_rewrite modülü + tarafından sağlanan yeniden yazma motoru işe yarayabilir. Bu modüldeki + yönergeler sunulacak içeriğin yerine karar vermek için kaynak IP adresi, + tarayıcı türü gibi isteğe özgü özellikleri kullanırlar. + mod_rewrite modülü buna ek olarak isteğin nasıl ele + alınacağına karar vermek için harici yazılımları ve veritabanlarını + kullanabilir. Yeniden yazma motoru yukarıda değinilen üç eşleşme türünü + de uygulayabilecek yetenektedir: Dahili yönlendirmeler (rumuzlar), + harici yönlendirmeler ve vekalet. mod_rewrite modülü + tarafından sağlanan yeteneklerin ayrıntılı açıklamaları ve bunların + kullanım örnekleri ayrıntılı olarak mod_rewrite + belgelerinde bulunmaktadır.

    +
    top
    +
    +

    Dosya orada yok

    + +

    Kaçınılmaz olarak, dosya sisteminde mevcut olmayan dosyalar için de + istek yapılacaktır. Bunun çeşitli sebepleri olabilir. Bazı durumlarda + bu, belgelerin yerlerininin değiştirilmesinin bir sonucu olabilir. Bu + durumda yapılacak en iyi şey, istemciyi belgeyi yeni yerinden istemesi + için bilgilendirmek amacıyla URL yönlendirmesi + kullanmaktır. Bu şekilde, içeriğin yeri değişse bile eski yer imlerinin + ve hiperbağların çalışmaya devam edeceklerinden emin olabilirsiniz.

    + +

    "Dosya orada yok" ("File Not Found") hatalarının diğer bir bildik + sebebi de URL’lerin hiperbağlarda veya doğrudan tarayıcıda kasıtlı ya da + kasıtsız, yanlış yazılmasıdır. Bu tür sorunlarda yardımcı olması için + Apache mod_speling (sic) adında bir modülle gelir. Bu + modül etkin kılındığında Apache, "Dosya orada yok" ("File Not Found") + hatalarının önünü kesip başka bir yerde benzer isimde bir dosya var mı + diye bakar. Böyle bir dosya varsa, mod_speling + istemciye dosyanın doğru yerini bildiren bir HTTP yönlendirmesi yollar. + Benzer çok sayıda dosya varsa bunlar istemciye bir liste halinde + sunulur.

    + +

    mod_speling modülünün en yararlı özelliklerinden biri + de dosya isimlerini harf büyüklüğüne duyarsız olarak arayabilmesidir. + Dosya isimlerinde harf büyüklüğünün önemli olduğu Unix benzeri sistemler + hakkında bilgisi olmayan kullanıcılara sahip sistemlerin kullanıcılarına + bu büyük yarar sağlar. Fakat modülün URL düzeltmekten başka şeyler için + de kullanılması, istemcilerden gelen neredeyse her isteğin URL + yönlendirmesine konu olmasına sebep olarak sunucunun yükünü + arttırabilir.

    + +

    Yerinde bulunmayan içeriğin bulunması çabalarının tümü Apache’nin 404 + (Dosya orada yok) HTTP durum kodlu bir hata sayfası döndürmesine yol + açar. Bu sayfanın içeriği ErrorDocument yönergesi ile denetlenebilir ve Hata Yanıtlarının Kişiselleştirilmesi + bölümünde anlatıldığı gibi oldukça esnek bir şekilde + kişiselleştirilebilir.

    +
    +
    +

    Mevcut Diller:  en  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/urlmapping.xml b/docs/manual/urlmapping.xml index bde7e694764..289ca241266 100644 --- a/docs/manual/urlmapping.xml +++ b/docs/manual/urlmapping.xml @@ -4,12 +4,12 @@ + + - + urlmapping / . en - ja - ko + ja + ko + tr diff --git a/docs/manual/urlmapping.xml.tr b/docs/manual/urlmapping.xml.tr new file mode 100644 index 00000000000..44d8a3567e4 --- /dev/null +++ b/docs/manual/urlmapping.xml.tr @@ -0,0 +1,315 @@ + + + + + + + + + + + URL’lerin Dosya Sistemi ile Eşleştirilmesi + + +

    Bu belgede, bir istekte belirtilen URL’nin sunulacak dosyanın dosya + sistemindeki yerini bulmak için Apache tarafından nasıl kullanıldığı + açıklanmaktadır.

    +
    + + + +
    <code>DocumentRoot</code> + +

    Yapılan bir isteğe hangi dosyanın sunulacağına karar verirken + Apache’nin öntanımlı davranışı istek için URL yolunu (URL’den konak ismi + ve port ayrıldıktan sonra kalan kısım) alıp bunu yapılandırma dosyasında + DocumentRoot yönergesi ile + belirtilen dizinin sonuna eklemektir. Bu nedenle, DocumentRoot altındaki dizinler ve dosyalar + sitenin dışardan görünen temel belge ağacını oluştururlar.

    + +

    Örneğin, DocumentRoot yönergesine + /var/http/html atanmış olsun. + http://mesela.dom/balıklar/zargana.html şeklindeki bir + istek için istemciye /var/http/html/balıklar/zargana.html + dosyası sunulur.

    + +

    Apache ayrıca, sunucunun birden fazla konak için istek kabul etmesini + sağlayan sanal barındırmaya da muktedirdir. Bu + durumda her sanal konak için ayrı bir DocumentRoot belirtilebileceği gibi sunulacak içeriğin + istekte bulunulan IP adresi veya konak ismine dayanarak devingen olarak + saptanmasını sağlayabilen mod_vhost_alias modülüyle + gelen yönergeler de kullanılabilir.

    + +

    DocumentRoot yönergesi + yapılandırma dosyanızda ana sunucu için bir tane ve muhtemelen + oluşturduğunuz her sanal konak için de birer + tanedir.

    +
    + +
    Belge Kök Dizini Dışındaki Dosyalar + +

    Bazen dosya sisteminde doğrudan DocumentRoot altında bulunmayan dosyalara da erişim izni + vermek gerekir. Apache’de bunu sağlamanın çeşitli yolları vardır. Unix + sistemlerinde sembolik bağlar sayesinde dosya sisteminin farklı + yerlerindeki dosyaları ve dizinleri DocumentRoot altındaymış gibi göstermek mümkündür. + Options yönergesine değer olarak + FollowSymLinks veya SymLinksIfOwnerMatch + atanmadıkça Apache olası güvenlik açıklarına karşı öntanımlı olarak + sembolik bağları izlemez.

    + +

    Bundan başka, dosya sisteminin farklı parçalarını belge kök dizini + altında göstermek için Alias + yönergesi de kullanılabilir. Örneğin,

    + + Alias /belgeler /var/http + +

    yapılandırması ile + http://mesela.dom/belgeler/dizin/dosya.html URL’si için + dosya sistemindeki /var/http/dizin/dosya.html dosyası + sunulacaktır. Hedef dizindeki dosyaları birer CGI betiği olarak imlemesi dışında ScriptAlias yönergesi de aynı şekilde + çalışır.

    + +

    Biraz daha fazla esnekliğin gerektiği durumlarda düzenli ifadelere dayalı eşleşmeler sağlamak + üzere AliasMatch ve ScriptAliasMatch yönergelerinin gücünden + yararlanılabilir. Örneğin,

    + + ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) + /home/$1/cgi-bin/$2 + +

    satırı sayesinde http://mesela.dom/~user/cgi-bin/betik.cgi + URL’si /home/user/cgi-bin/betik.cgi dosyası ile + eşleştirilir ve dosya bir CGI betiği olarak çalıştırılırdı.

    +
    + +
    Kullanıcı Dizinleri + +

    Geleneksel olarak Unix sistemlerinde belli bir kullanıcının (örn, + birisi) ev dizinine ~birisi/ şeklinde atıfta + bulunulabilir. mod_userdir modülü bu özelliği site + üzerinden kullanıcıların ev dizinlerindeki dosyaları kişisel sayfalar + olarak sunmalarını sağlamak üzere kullanır. Örnek:

    + + http://mesela.dom/~birisi/dosya.html + +

    Güvenlik sebebiyle kullanıcıların ev dizinlerine doğrudan HTTP erişimi + vermek uygun olmaz. Bu bakımdan, kullanıcının ev dizini altında HTTP + erişimi verilecek dosyaların bulunduğu dizini belirtmek için UserDir yönergesi sağlanmıştır. + Öntanımlı olan Userdir public_html yapılandırması ile + yukarıdaki gibi bir URL kullanıcının ev dizini (/etc/passwd + dosyasında belirtilir) /home/birisi/ altında yer alan + /home/birisi/public_html/dosya.html dosyası ile + eşleşirdi.

    + +

    Ev dizininin yerinin /etc/passwd dosyasında belirtilmediği + sistemlerde kullanılmak üzere Userdir yönergesinin başka + kullanım şekilleri de vardır.

    + +

    Bazı kişiler (genellikle URL üzerinde %7e olarak + kodlanması sebebiyle) "~" simgesini biçimsiz bulabilir ve kullanıcı + dizinlerini imlemek için başka bir karakter kullanmayı tercih + edebilirler. Bu işlevsellik mod_userdir tarafından + desteklenmemektedir. Ancak, kullanıcı dizinleri düzgün şekilde + yapılandırılmışsa istenen etki AliasMatch yönergesi ile sağlanabilir. + Örneğin, http://mesela.dom/sayfalar/birisi/dosya.html + URL’si ile /home/birisi/public_html/dosya.html dosyasını + eşlemek için AliasMatch yönergesi şöyle + kullanılabilirdi:

    + + AliasMatch ^/sayfalar/([a-zA-Z0-9]+)/?(.*) + /home/$1/public_html/$2 +
    + +
    URL Yönlendirme + +

    Yukarıdaki bölümlerde açıklanan yapılandırma yönergeleri Apache’ye + içeriği dosya sisteminin belli bir yerinden alıp istemciye göndermesini + söyler. Bazen istemciye, istediği içeriğe farklı bir URL ile + erişebileceğini ve bu URL için ayrı bir istek yapması gerektiğini + bildirmek gerekir. Bu işleme yönlendirme adı verilir ve bu + işlevsellik Redirect yönergesi + ile sağlanır. Örneğin, DocumentRoot + altındaki /foo/ dizininin içeriğinin /bar/ + adında yeni bir dizine taşınması halinde istemciye yeni konumun + bildirilmesi şöyle sağlanabilirdi:

    + + Redirect permanent /foo/ + http://mesela.dom/bar/ + +

    Bu atama sayesinde /foo/ ile başlayan URL yolları + mesela.dom sunucundaki /bar/ dizini altındaki + içeriğe yönlendirilmektedir. Yönlendirmeyi aynı sunucu üzerinde yapmak + zorunda değilsiniz, bu yönerge ile başka bir sunucuya da yönlendirme + yapabilirsiniz.

    + +

    Apache ayrıca, yeniden yazma ile ilgili daha karmaşık sorunlara çözüm + olarak RedirectMatch diye bir + yönerge daha sağlar. Örneğin bir sitenin baş sayfasını diğer isteklerden + ayrı olarak farklı bir siteye yönlendirmek için yönergeyi şöyle + kullanabilirsiniz:

    + + RedirectMatch permanent ^/$ + http://misal.dom/ilksayfa.html + +

    Bundan başka, bir sitedeki tüm sayfalara yapılan istekleri başka bir + siteye geçici olarak yönlendirmek için şöyle bir şey yapabilirsiniz:

    + + RedirectMatch temp .* + http://mesela.misal.dom/ilksayfa.html +
    + +
    Karşı Vekil + +

    Apache ayrıca, uzak sunuculardaki belgelerin yerel sunucunun URL + alanına getirilmesini de mümkün kılar. Bu tekniğe HTTP sunucunun + belgeleri uzak bir sunucudan alıp istemciye sunmasını sağlayarak bir + vekil sunucu gibi davranması nedeniyle ters vekalet adı + verilir. Belgelerin istemciye özkaynağın bulunduğu sunucudan + geliyormuş gibi değilde doğrudan isteği yaptığı sunucudan geliyormuş + gibi sunulması nedeniyle bu işlem normal vekaletten farklıdır.

    + +

    Aşağıdaki örnekte, istemci /foo/ dizini altından bir belge + istemekte, sunucu ise bu belgeyi dahili.mesela.dom + üzerindeki /bar/ dizininden alıp istemciye yerel sunucudan + geliyormuş gibi sunmaktadır:

    + + + ProxyPass /foo/ http://dahili.mesela.dom/bar/
    + ProxyPassReverse /foo/ http://dahili.mesela.dom/bar/
    + ProxyPassReverseCookieDomain dahili.mesela.dom harici.mesela.dom
    + ProxyPassReverseCookiePath /foo/ /bar/ +
    + +

    ProxyPass sunucuyu uygun + belgeleri alması için yapılandırırken ProxyPassReverse yönergesi dahili.mesela.dom + sunucusundan kaynaklanan yönlendirmeleri yeniden yazar, böylece bunların + yerel sunucudaki yerleri belirlenmiş olur. Benzer şekilde, ProxyPassReverseCookieDomain ve + ProxyPassReverseCookiePath + yönergeleri de arka sunucu tarafından atanan çerezleri yeniden yazar.

    + +

    Yalnız, belgelerin içindeki hiperbağların yeniden yazılmayacağına + dikkat ediniz. Dolayısıyla, belge içinde + dahili.mesela.dom’u ismiyle hedef alan mutlak hiperbağlar + varsa bunlar istemci tarafından vekil sunucudan değil doğrudan + dahili.mesela.dom’dan istenecektir. Üçüncü parti modüller + arasında HTML ve XHTML’de hiperbağları yeniden yazabilen mod_proxy_html + adında bir modül vardır.

    +
    + +
    Yeniden Yazma Motoru + +

    Daha güçlü ikameler gerektiğinde mod_rewrite modülü + tarafından sağlanan yeniden yazma motoru işe yarayabilir. Bu modüldeki + yönergeler sunulacak içeriğin yerine karar vermek için kaynak IP adresi, + tarayıcı türü gibi isteğe özgü özellikleri kullanırlar. + mod_rewrite modülü buna ek olarak isteğin nasıl ele + alınacağına karar vermek için harici yazılımları ve veritabanlarını + kullanabilir. Yeniden yazma motoru yukarıda değinilen üç eşleşme türünü + de uygulayabilecek yetenektedir: Dahili yönlendirmeler (rumuzlar), + harici yönlendirmeler ve vekalet. mod_rewrite modülü + tarafından sağlanan yeteneklerin ayrıntılı açıklamaları ve bunların + kullanım örnekleri ayrıntılı olarak mod_rewrite + belgelerinde bulunmaktadır.

    +
    + +
    Dosya orada yok + +

    Kaçınılmaz olarak, dosya sisteminde mevcut olmayan dosyalar için de + istek yapılacaktır. Bunun çeşitli sebepleri olabilir. Bazı durumlarda + bu, belgelerin yerlerininin değiştirilmesinin bir sonucu olabilir. Bu + durumda yapılacak en iyi şey, istemciyi belgeyi yeni yerinden istemesi + için bilgilendirmek amacıyla URL yönlendirmesi + kullanmaktır. Bu şekilde, içeriğin yeri değişse bile eski yer imlerinin + ve hiperbağların çalışmaya devam edeceklerinden emin olabilirsiniz.

    + +

    "Dosya orada yok" ("File Not Found") hatalarının diğer bir bildik + sebebi de URL’lerin hiperbağlarda veya doğrudan tarayıcıda kasıtlı ya da + kasıtsız, yanlış yazılmasıdır. Bu tür sorunlarda yardımcı olması için + Apache mod_speling (sic) adında bir modülle gelir. Bu + modül etkin kılındığında Apache, "Dosya orada yok" ("File Not Found") + hatalarının önünü kesip başka bir yerde benzer isimde bir dosya var mı + diye bakar. Böyle bir dosya varsa, mod_speling + istemciye dosyanın doğru yerini bildiren bir HTTP yönlendirmesi yollar. + Benzer çok sayıda dosya varsa bunlar istemciye bir liste halinde + sunulur.

    + +

    mod_speling modülünün en yararlı özelliklerinden biri + de dosya isimlerini harf büyüklüğüne duyarsız olarak arayabilmesidir. + Dosya isimlerinde harf büyüklüğünün önemli olduğu Unix benzeri sistemler + hakkında bilgisi olmayan kullanıcılara sahip sistemlerin kullanıcılarına + bu büyük yarar sağlar. Fakat modülün URL düzeltmekten başka şeyler için + de kullanılması, istemcilerden gelen neredeyse her isteğin URL + yönlendirmesine konu olmasına sebep olarak sunucunun yükünü + arttırabilir.

    + +

    Yerinde bulunmayan içeriğin bulunması çabalarının tümü Apache’nin 404 + (Dosya orada yok) HTTP durum kodlu bir hata sayfası döndürmesine yol + açar. Bu sayfanın içeriği ErrorDocument yönergesi ile denetlenebilir ve Hata Yanıtlarının Kişiselleştirilmesi + bölümünde anlatıldığı gibi oldukça esnek bir şekilde + kişiselleştirilebilir.

    +
    + +
    diff --git a/docs/manual/vhosts/details.html b/docs/manual/vhosts/details.html index a15007e684f..42c9b306322 100644 --- a/docs/manual/vhosts/details.html +++ b/docs/manual/vhosts/details.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: details.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -9,3 +11,7 @@ URI: details.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: details.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/vhosts/details.html.en b/docs/manual/vhosts/details.html.en index a7bae5a18d4..4b9b9a315f0 100644 --- a/docs/manual/vhosts/details.html.en +++ b/docs/manual/vhosts/details.html.en @@ -1,26 +1,34 @@ - -An In-Depth Discussion of Virtual Host Matching - Apache HTTP Server +An In-Depth Discussion of Virtual Host Matching - Apache HTTP Server Version 2.2 - - + + + +
    <-

    An In-Depth Discussion of Virtual Host Matching

    +Apache > HTTP Server > Documentation > Version 2.2 > Virtual Hosts

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    An In-Depth Discussion of Virtual Host Matching

    Available Languages:  en  | - fr  | - ko 

    + fr  | + ko  | + tr 

    @@ -40,7 +48,7 @@ +
    top

    Config File Parsing

    @@ -53,49 +61,49 @@ sections.

    The directives - Listen, - ServerName, - ServerPath, - and ServerAlias + ServerName and + ServerPath can appear anywhere within the definition of a server. However, each appearance overrides the previous appearance (within that server).

    -

    The default value of the Listen field for - main_server is 80. The main_server has no default +

    The main_server has no default ServerPath, or ServerAlias. The default ServerName is deduced from the server's IP address.

    -

    The main_server Listen directive has two functions. One - function is to determine the default network port Apache will - bind to. The second function is to specify the port number - which is used in absolute URIs during redirects.

    - -

    Unlike the main_server, vhost ports do not affect - what ports Apache listens for connections on.

    - +

    Port numbers specified in the VirtualHost directive do + not influence what port numbers Apache will listen on, they only discriminate between + which VirtualHost will be selected to handle a request.

    +

    Each address appearing in the VirtualHost directive can have an optional port. If the port is unspecified - it defaults to the value of the main_server's most recent - Listen statement. The special port * + it is treated as a wildcard port. The special port * indicates a wildcard that matches any port. Collectively the entire set of addresses (including multiple A record results from DNS lookups) are called the vhost's address set.

    Unless a NameVirtualHost - directive is used for a specific IP address the first vhost - with that address is treated as an IP-based vhost. The IP - address can also be the wildcard *.

    - -

    If name-based vhosts should be used a + directive is used for the exact IP address and port pair in the + VirtualHost directive, Apache selects the best match + only on the basis of the IP address (or wildcard) and port number. + If there are multiple identical best matches, the first VirtualHost + appearing in the configuration file will be selected.

    + +

    If you want Apache to further discriminate on the basis of the + HTTP Host header supplied by the client, the NameVirtualHost directive must appear - with the IP address set to be used for the name-based vhosts. - In other words, you must specify the IP address that holds the - hostname aliases (CNAMEs) for your name-based vhosts via a - NameVirtualHost directive in your configuration - file.

    + with the exact IP address (or wildcard) and port pair used in a corresponding + set of VirtualHost directives.

    + +

    The name-based virtual host selection occurs only after a single IP-based + virtual host has been selected, and only considers the set of virtual hosts + that carry an identical IP address and port pair.

    + +

    Hostnames can be used in place of IP addresses in a virtual host definition, + but it is resolved at startup and is not recommended.

    +

    Multiple NameVirtualHost directives can be used each with a set of VirtualHost directives but only @@ -157,18 +165,6 @@

    (To aid the readability of your configuration you should prefer the left variant.)

    -

    After parsing the VirtualHost directive, the - vhost server is given a default Listen equal to the - port assigned to the first name in its VirtualHost - directive.

    - -

    The complete list of names in the VirtualHost - directive are treated just like a ServerAlias (but - are not overridden by any ServerAlias statement) - if all names resolve to the same address set. Note that - subsequent Listen statements for this vhost will not - affect the ports assigned in the address set.

    -

    During initialization a list for each IP address is generated and inserted into an hash table. If the IP address is used in a NameVirtualHost directive the list @@ -188,13 +184,12 @@

    1. If a vhost has no ServerAdmin, - ResourceConfig, - AccessConfig, Timeout, KeepAliveTimeout, KeepAlive, MaxKeepAliveRequests, - or SendBufferSize + ReceiveBufferSize, + or SendBufferSize directive then the respective value is inherited from the main_server. (That is, inherited from whatever the final setting of that value is in the main_server.)
    2. @@ -288,6 +283,10 @@ matches against the real port to which the client sent the request.

      +

      The complete list of names in the VirtualHost + directive are treated just like a (non wildcard) ServerAlias + (but are not overridden by any ServerAlias statement).

      +

      If the client submitted a HTTP/1.0 request without Host: header field we don't know to what server the client tried to connect and any existing @@ -347,8 +346,7 @@ configuration file has the highest priority for its corresponding address set. -

    3. For security reasons the port number given in a - Host: header field is never used during the +
    4. The Host: header field is never used during the matching process. Apache always uses the real port to which the client sent the request.
    5. @@ -373,7 +371,9 @@ Listen by default. A wildcard port can be specified (i.e., _default_:*) to catch requests to any available port. This also applies to - NameVirtualHost * vhosts. + NameVirtualHost * vhosts. Note that this is simply an + extension of the "best match" principle, as a specific and exact match + is favored over a wildcard.
    6. The main_server is only used to serve a request if the IP address and port number to which the client connected is @@ -399,7 +399,7 @@ topics.
    7. ServerName should always be set for each - vhost. Otherwise A DNS lookup is required for each + vhost. Otherwise a DNS lookup is required for each vhost.
    8. @@ -433,9 +433,31 @@

    Available Languages:  en  | - fr  | - ko 

    -
    + fr  | + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/details.html.fr b/docs/manual/vhosts/details.html.fr index 4261dae8199..f167edf6594 100644 --- a/docs/manual/vhosts/details.html.fr +++ b/docs/manual/vhosts/details.html.fr @@ -1,113 +1,132 @@ - -Détails sur le fonctionnement des serveurs virtuels - Serveur Apache HTTP +Détails sur le fonctionnement des serveurs virtuels - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    Détails sur le fonctionnement des serveurs virtuels

    +Apache > Serveur HTTP > Documentation > Version 2.2 > Serveurs virtuels

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Détails sur le fonctionnement des serveurs virtuels

    Langues Disponibles:  en  | - fr  | - ko 

    + fr  | + ko  | + tr 

    -

    Le code gérant les serveurs virtuels a été réécrit à partir de - zéro dans Apache 1.3. Ce document vise à expliquer - dans le détail comment Apache procède lors du choix de l'utilisation - d'un serveur virtuel en fonction d'une requête reçue. L'apparition - de la directive NameVirtualHost - a rendu beaucoup plus facile et plus sûre la configuration des - serveurs virtuels par rapport aux versions précédant la 1.3.

    +

    Le code gérant les serveurs virtuels a été réécrit à partir de + zéro dans Apache 1.3. Ce document vise à expliquer + dans le détail comment Apache procède lors du choix de l'utilisation + d'un serveur virtuel en fonction d'une requête reçue. L'apparition + de la directive NameVirtualHost + a rendu beaucoup plus facile et plus sûre la configuration des + serveurs virtuels par rapport aux versions précédant la 1.3.

    -

    Si vous voulez juste que ça marche sans en - comprendre le fonctionnement, voici quelques +

    Si vous voulez juste que ça marche sans en + comprendre le fonctionnement, voici quelques exemples.

    -
    top
    -

    Interprétation des fichiers +

    Interprétation des fichiers de configuration

    -

    Un serveur principal (main_server) contient toutes - les définitions qui apparaissent en dehors des sections - <VirtualHost>. Les serveurs virtuels, aussi - appelés vhosts (pour virtual hosts), sont définis par les +

    Un serveur principal (main_server) contient toutes + les définitions qui apparaissent en dehors des sections + <VirtualHost>. Les serveurs virtuels, aussi + appelés vhosts (pour virtual hosts), sont définis par les sections <VirtualHost>.

    Les directives - Listen, - ServerName, - ServerPath, - et ServerAlias - peuvent être placées n'importe où dans le cadre de définition d'un - serveur. Cependant, chaque fois que l'une d'elles est lue, elle écrase - ses instances précédentes (dans le contexte du même serveur).

    - -

    La valeur par défaut du champ Listen pour le serveur - principal est de 80. Le serveur principal n'a pas de valeur par - défaut pour ServerPath ni pour ServerAlias. - La valeur par défaut de ServerName est déduite à partir + ServerName et + ServerPath + peuvent être placées n'importe où dans le cadre de définition d'un + serveur. Cependant, chaque fois que l'une d'elles est lue, elle écrase + ses instances précédentes (dans le contexte du même serveur).

    + +

    Le serveur principal n'a pas de valeur par + défaut pour ServerPath ni pour ServerAlias. + La valeur par défaut de ServerName est déduite à partir de l'adresses IP du serveur.

    -

    La directive Listen associée au serveur principal a deux utilités. - La première détermine le port réseau sur lequel Apache va écouter. - La deuxième spécifie le port qui sera utilisé dans les URIs absolus - lors des redirections.

    - -

    À la différence du serveur principal, les ports des serveurs - virtuels n'affectent pas les ports sur lesquels - Apache se met à l'écoute.

    - -

    Chaque adresse incluse dans une directive VirtualHost - peut disposer d'un port optionnel. Si le port n'est pas précisé, il - prend par défaut la dernière valeur de Listen lue dans - la configuration du serveur principal. Le port particulier - * représente un joker qui correspond à tous les ports. - L'ensemble des adresses (y compris les résultats multiples - A issus des requêtes DNS) est appelé jeu +

    Les numéros de port spécifiés par la directive + VirtualHost n'ont rien à voir avec les ports sur + lesquels Apache va se mettre en écoute. Ils permettent seulement + de déterminer quel VirtualHost devra être + sélectionné pour traiter la requête.

    + +

    Chaque adresse incluse dans une directive VirtualHost + peut disposer d'un port optionnel. Si le port n'est pas précisé, il + pourra prendre n'importe quelle valeur. Le port particulier + * représente un joker qui correspond à tous les ports. + L'ensemble des adresses (y compris les résultats multiples + A issus des requêtes DNS) est appelé jeu d'adresses du serveur virtuel.

    -

    À moins qu'une directive - NameVirtualHost ne soit utilisée - pour une adresse IP spécifique, le premier serveur virtuel avec - cette adresse est considéré comme un serveur virtuel par-IP. - L'adresse IP peut également prendre la valeur joker *.

    - -

    Dans les cas où l'on souhaite utiliser un serveur virtuel - par nom, la directive NameVirtualHost doit - apparaître avec l'adresse IP choisie. En d'autres termes, vous devez - spécifier dans votre fichier de configuration l'adresse IP des noms - de domaine (CNAME) de vos serveurs virtuels par nom au moyen de - la directive NameVirtualHost.

    - -

    On peut utiliser plusieurs directives NameVirtualHost - pour un groupe de directives VirtualHost, mais seule - une directive NameVirtualHost doit être utilisée pour - chaque couple IP:port donné.

    - -

    L'ordre d'apparition des directives NameVirtualHost - et VirtualHost est sans importance, ce qui fait que - les deux exemples suivants ont des effets identiques (seul l'ordre - des directives VirtualHost pour un jeu +

    À moins qu'une directive + NameVirtualHost ne soit utilisée + pour la paire adresse IP exacte/port dans la directive + VirtualHost, Apache sélectionne le serveur virtuel qui + correspond le mieux en se basant sur l'adresse IP (ou une adresse + quelconque) et le numéro de port. Si plusieurs serveurs virtuels + correspondent sans pouvoir être départagés, c'est le premier qui + apparaît dans le fichier de configuration qui sera sélectionné.

    + +

    Si vous souhaitez qu'Apache affine ses critères de + sélection en faisant entrer en jeu l'en-tête HTTP Host + fourni par le client, la directive NameVirtualHost doit + apparaître avec la paire adresse IP exacte (ou adresse + quelconque)/port utilisée dans le jeu de directives + VirtualHost correspondant.

    + +

    La sélection du serveur virtuel en fonction du nom n'intervient + qu'après la sélection d'un serveur virtuel à base d'adresse IP + unique, et ne prend en compte que l'ensemble des serveurs virtuels + qui possèdent la même paire adresse IP/port.

    + +

    On peut utiliser des nom d'hôtes à la place d'adresses IP dans la + définition des serveurs virtuels, mais ils seront résolus en + adresses IP au démarrage du serveur et ceci n'est pas recommandé.

    + + +

    On peut utiliser plusieurs directives NameVirtualHost + pour un groupe de directives VirtualHost, mais seule + une directive NameVirtualHost doit être utilisée pour + chaque couple IP:port donné.

    + +

    L'ordre d'apparition des directives NameVirtualHost + et VirtualHost est sans importance, ce qui fait que + les deux exemples suivants ont des effets identiques (seul l'ordre + des directives VirtualHost pour un jeu d'adresses est important, voir ci-dessous) :

    @@ -156,264 +175,260 @@ de configuration
    -

    (Il est conseillé d'adopter le choix de gauche pour faciliter - la lisibilité des fichiers de configuration.)

    - -

    Après la lecture de la directive VirtualHost, le - serveur virtuel se voit attribuer une valeur Listen - par défaut qui est la valeur du port associé au premier nom spécifié - dans sa directive VirtualHost.

    - -

    La liste complète des noms d'une directive VirtualHost - est gérée exactement comme des ServerAlias (mais ne - sont pas écrasés par d'autres ServerAlias) si tous - les noms sont résolus dans ce jeu d'adresse. À noter que les états - Listen de ce serveur virtuel sont sans incidence sur - les ports attibués au jeu d'adresses.

    - -

    Pendant la phase d'initialisation, une liste de chaque adresse - IP est générée et introduite dans une table de 'hash'. Si une - adresse IP est utilisée dans une directive NameVirtualHost, - cette liste contient les noms des serveurs virtuels pour cette - adresse. Si aucun serveur virtuel n'est défini pour cette adresse, - la directive NameVirtualHost est ignorée et un message - est envoyé au journal d'erreurs. Quand un serveur virtuel par IP - est utilisé, la table de 'hash' reste vide.

    - -

    La fonction de 'hash' étant rapide, le temps d'exécution d'un - 'hash' sur une adresse IP lors d'une requête est minimale et - quasiment imperceptible. De plus, la table est optimisée pour les - adresses IP dont le dernier octet est le seul à changer.

    - -

    Pour chaque serveur virtuel, diverses valeurs sont initialisées - par défaut. En particulier :

    +

    (Il est conseillé d'adopter le choix de gauche pour faciliter + la lisibilité des fichiers de configuration.)

    + +

    Pendant la phase d'initialisation, une liste de chaque adresse + IP est générée et introduite dans une table de 'hash'. Si une + adresse IP est utilisée dans une directive NameVirtualHost, + cette liste contient les noms des serveurs virtuels pour cette + adresse. Si aucun serveur virtuel n'est défini pour cette adresse, + la directive NameVirtualHost est ignorée et un message + est envoyé au journal d'erreurs. Quand un serveur virtuel par IP + est utilisé, la table de 'hash' reste vide.

    + +

    La fonction de 'hash' étant rapide, le temps d'exécution d'un + 'hash' sur une adresse IP lors d'une requête est minimale et + quasiment imperceptible. De plus, la table est optimisée pour les + adresses IP dont le dernier octet est le seul à changer.

    + +

    Pour chaque serveur virtuel, diverses valeurs sont initialisées + par défaut. En particulier :

      -
    1. Dans le cas où un serveur virtuel ne contient pas de directives +
    2. Dans le cas où un serveur virtuel ne contient pas de directives ServerAdmin, - ResourceConfig, - AccessConfig, Timeout, KeepAliveTimeout, KeepAlive, MaxKeepAliveRequests, - ou SendBufferSize, - alors la valeur de chacun de ces paramètres est héritée de celle du - serveur principal. (C'est à dire, héritée de la valeur finale après + ReceiveBufferSize, + ou SendBufferSize, + alors la valeur de chacun de ces paramètres est héritée de celle du + serveur principal. (C'est à dire, héritée de la valeur finale après lecture de la configuration du serveur principal.)
    3. -
    4. Les permissions par défaut sur les répertoires de chaque - serveur virtuel sont assemblées avec celles du serveur principal. - Elles concernent également toutes les informations de configuration - par répertoire pour tous les modules.
    5. +
    6. Les permissions par défaut sur les répertoires de chaque + serveur virtuel sont assemblées avec celles du serveur principal. + Elles concernent également toutes les informations de configuration + par répertoire pour tous les modules.
    7. -
    8. Les configurations par serveur pour chaque module sont assemblées - à partir de celles du serveur principal.
    9. +
    10. Les configurations par serveur pour chaque module sont assemblées + à partir de celles du serveur principal.
    -

    L'essentiel des valeurs de configuration des serveurs virtuels - provient de valeurs par défaut issues du serveur principal. +

    L'essentiel des valeurs de configuration des serveurs virtuels + provient de valeurs par défaut issues du serveur principal. Mais la position dans le fichier de configuration des directives - du serveur principal n'a pas d'importance -- l'ensemble de la - configuration du serveur principal est lu avant que ces valeurs par - défaut soient appliquées aux serveur virtuels. Ainsi, même si la - définition d'une valeur apparaît après celle d'un serveur virtuel, + du serveur principal n'a pas d'importance -- l'ensemble de la + configuration du serveur principal est lu avant que ces valeurs par + défaut soient appliquées aux serveur virtuels. Ainsi, même si la + définition d'une valeur apparaît après celle d'un serveur virtuel, cette valeur peut affecter la definition du serveur virtuel.

    -

    Dans le cas où le serveur principal n'a pas de ServerName - à ce stade, le nom de la machine sur laquelle tourne le programme - httpd est utilisé à sa place. Nous appellerons - jeu d'adresses du serveur principal, les adresses IP - renvoyées par une résolution DNS sur le ServerName +

    Dans le cas où le serveur principal n'a pas de ServerName + à ce stade, le nom de la machine sur laquelle tourne le programme + httpd est utilisé à sa place. Nous appellerons + jeu d'adresses du serveur principal les adresses IP + renvoyées par une résolution DNS sur le ServerName du serveur principal.

    -

    Pour tous les champs ServerName non définis, dans - le cas d'une configuration en serveur virtuel par nom, la valeur - adoptée par défaut est la première adresse donnée dans la section - VirtualHost qui définit le serveur virtuel.

    +

    Pour tous les champs ServerName non définis, dans + le cas d'une configuration en serveur virtuel par nom, la valeur + adoptée par défaut est la première adresse donnée dans la section + VirtualHost qui définit le serveur virtuel.

    -

    Si un serveur virtuel contient la valeur magique - _default_, il fonctionne sur le même ServerName +

    Si un serveur virtuel contient la valeur magique + _default_, il fonctionne sur le même ServerName que le serveur principal.

    top

    Choix du serveur virtuel

    -

    À la réception d'une requête, le serveur procède comme suit pour - déterminer quel serveur virtuel utiliser :

    +

    À la réception d'une requête, le serveur procède comme suit pour + déterminer quel serveur virtuel utiliser :

    -

    Vérification dans la table de hash

    +

    Vérification dans la table de hash

    -

    Après que le client se soit connecté, l'adresse - IP à laquelle le client s'est connecté est recherchée dans la +

    Après que le client se soit connecté, l'adresse + IP à laquelle le client s'est connecté est recherchée dans la table de hash IP interne.

    -

    Si la résolution de l'adresse IP n'aboutit pas (adresse IP non - trouvée), la requête est servie par le serveur virtuel - _default_ s'il est défini pour le port correspondant - à la requête. Sinon, elle est servie par le serveur principal.

    +

    Si la résolution de l'adresse IP n'aboutit pas (adresse IP non + trouvée), la requête est servie par le serveur virtuel + _default_ s'il est défini pour le port correspondant + à la requête. Sinon, elle est servie par le serveur principal.

    -

    Si l'adresse IP n'est pas trouvée dans la table de hash, la - recherche du numéro de port peut aussi se terminer par une - correspondance à un NameVirtualHost * qui est géré - ensuite comme les autres serveur virtuels par noms.

    - -

    Si une liste est bien trouvée dans la table pour l'adresse - IP recherchée, l'étape suivante est de déterminer s'il s'agit +

    Si l'adresse IP n'est pas trouvée dans la table de hash, la + recherche du numéro de port peut aussi se terminer par une + correspondance à un NameVirtualHost * qui est géré + ensuite comme les autres serveurs virtuels par noms.

    + +

    Si une liste est bien trouvée dans la table pour l'adresse + IP recherchée, l'étape suivante est de déterminer s'il s'agit d'un serveur virtuel par nom ou par IP.

    Serveur virtuel par IP

    -

    Si l'entrée trouvée dispose d'une liste de noms vide, c'est - qu'il s'agit d'un serveur virtuel par IP, et aucun autre choix - n'est plus à faire ; la requête est servie par ce serveur virtuel.

    +

    Si l'entrée trouvée dispose d'une liste de noms vide, c'est + qu'il s'agit d'un serveur virtuel par IP, et aucun autre choix + n'est plus à faire ; la requête est servie par ce serveur virtuel.

    Serveur virtuel par nom

    -

    Si l'entrée trouvée correspond à un serveur virtuel par nom, - la liste de noms contient au moins une structure de serveurs - virtuels. Les serveurs virtuels se présentent dans cette liste - dans le même ordre que la lecture des directives VirtualHost +

    Si l'entrée trouvée correspond à un serveur virtuel par nom, + la liste de noms contient au moins une structure de serveurs + virtuels. Les serveurs virtuels se présentent dans cette liste + dans le même ordre que la lecture des directives VirtualHost dans le fichier de configuration.

    -

    Le premier serveur virtuel de cette liste (donc, le premier - serveur virtuel attribué à une adresse IP donnée dans le fichier - de configuration) se voit attribuer la plus grande priorité, ce - qui signifie que c'est lui qui traite les requêtes présentant un - nom de serveur invalide ou ne présentant pas de champ - Host: dans l'en-tête.

    - -

    Si un champ Host: est transmis dans l'en-tête de - la requête, son occurrence est recherchée dans la liste et le - premier serveur virtuel qui présente un ServerName - ou un ServerAlias correspondant est choisi pour - servir la requête. Il est possible que le champ Host: - contienne un numéro de port, mais Apache utilise toujours le - port sur lequel il a effectivement reçu la requête.

    - -

    Dans le cas où le client a envoyé une requête en HTTP/1.0 sans - un champ d'en-tête Host:, il est impossible de - déterminer le serveur auquel le client veut se connecter ; l'URI - de la requête est recherché dans tous les ServerPath - existants. Le premier chemin trouvé est utilisé et la requête est +

    Le premier serveur virtuel de cette liste (donc, le premier + serveur virtuel du fichier de configuration + attribué à l'adresse IP spécifiée) + se voit attribuer la plus grande priorité, ce + qui signifie que c'est lui qui traite les requêtes présentant un + nom de serveur invalide ou ne présentant pas de champ + Host: dans l'en-tête.

    + +

    Si un champ Host: est transmis dans l'en-tête de + la requête, son occurrence est recherchée dans la liste et le + premier serveur virtuel qui présente un ServerName + ou un ServerAlias correspondant est choisi pour + servir la requête. Il est possible que le champ Host: + contienne un numéro de port, mais Apache utilise toujours le + port sur lequel il a effectivement reçu la requête.

    + +

    La liste complète des noms dans la section + VirtualHost sont traités comme un + ServerAlias sans caractères génériques (mais ne sont + pas écrasés par une directive ServerAlias).

    + +

    Dans le cas où le client a envoyé une requête en HTTP/1.0 sans + champ d'en-tête Host:, il est impossible de + déterminer le serveur auquel le client veut se connecter ; l'URI + de la requête est recherché dans tous les ServerPath + existants. Le premier chemin trouvé est utilisé et la requête est servie par le serveur virtuel correspondant.

    -

    Si aucun serveur virtuel n'est trouvé, la requête est servie - par le premier serveur virtuel qui écoute sur le port demandé et - qui est sur la liste associée à l'adresse IP vers laquelle la - requête a été envoyée (comme déjà précisé ci-avant).

    +

    Si aucun serveur virtuel n'est trouvé, la requête est servie + par le premier serveur virtuel qui écoute sur le port demandé et + qui est sur la liste associée à l'adresse IP vers laquelle la + requête a été envoyée (comme déjà précisé ci-avant).

    Connexions persistantes

    -

    La recherche par adresse IP décrite ci-avant n'est faite - qu'une fois pour chaque session TCP/IP, alors que la - recherche par nom est réalisée pour chaque requête au - cours d'une connexion persistante (KeepAlive). En d'autres termes, - il est possible pour un client de faire des requêtes sur - différents serveurs virtuels par nom, au cours d'une unique +

    La recherche par adresse IP décrite ci-avant n'est faite + qu'une fois pour chaque session TCP/IP, alors que la + recherche par nom est réalisée pour chaque requête au + cours d'une connexion persistante (KeepAlive). En d'autres termes, + il est possible pour un client de faire des requêtes sur + différents serveurs virtuels par nom, au cours d'une unique connexion persistante.

    URI absolu

    -

    Au cas où l'URI de la requête est absolu, et que son nom de - serveur et son port correspondent au serveur principal (ou l'un - des serveurs virtuels configurés), et qu'ils correspondent - à l'adresse et au port de la requête, alors l'URI est amputé - de son préfixe protocole/nom de serveur/port et traité par le - serveur correspondant (principal ou virtuel). Si cette correspondance - n'existe pas, l'URI reste inchangé et la requête est considérée - comme une requête d'un serveur mandataire (proxy).

    +

    Au cas où l'URI de la requête est absolu, et que son nom de + serveur et son port correspondent au serveur principal (ou l'un + des serveurs virtuels configurés), et qu'ils correspondent + à l'adresse et au port de la requête, alors l'URI est amputé + de son préfixe protocole/nom de serveur/port et traité par le + serveur correspondant (principal ou virtuel). Si cette correspondance + n'existe pas, l'URI reste inchangé et la requête est considérée + comme une requête d'un serveur mandataire (proxy).

    Observations

      -
    • Les serveurs virtuels par nom et par IP n'interfèrent - jamais entre eux. Les serveurs virtuels par IP ne sont joignables - qu'au travers de leur(s) adresse(s) IP propre(s), en aucun - cas par aucune autre adresse. Les serveurs virtuels par nom - ne sont accessibles que par leur(s) adresse(s) IP qui ne peuvent - être définies qu'au moyen de la directive +
    • Les serveurs virtuels par nom et par IP n'interfèrent + jamais entre eux. Les serveurs virtuels par IP ne sont joignables + qu'au travers de leur(s) adresse(s) IP propre(s), et en aucun + cas par une autre adresse. Les serveurs virtuels par nom + ne sont accessibles que par leur(s) adresse(s) IP qui ne peuvent + être définies qu'au moyen de la directive NameVirtualHost.
    • -
    • Les vérifications sur ServerAlias et - ServerPath ne sont jamais réalisées pour les +
    • Les vérifications sur ServerAlias et + ServerPath ne sont jamais réalisées pour les serveurs virtuels par IP.
    • -
    • L'ordre dans lequel sont agencés dans le fichier de - configuration le serveur virtuel _default_, les - serveurs virtuels par nom et par IP, et la directive - NameVirtualHost est sans incidence sur le - fonctionnement. Seul l'ordre des serveurs virtuels par nom - pour une adresse donnée a une importance. Le serveur virtuel - par nom qui est présent en premier dans la configuration se - voit attribué la priorité la plus haute pour les requêtes +
    • L'ordre dans lequel sont agencés dans le fichier de + configuration le serveur virtuel _default_, les + serveurs virtuels par nom et par IP, et la directive + NameVirtualHost est sans incidence sur le + fonctionnement. Seul l'ordre des serveurs virtuels par nom + pour une adresse donnée a une importance. Le serveur virtuel + par nom qui est présent en premier dans la configuration se + voit attribué la priorité la plus haute pour les requêtes arrivant sur son jeu d'adresses IP.
    • -
    • Pour des raisons de sécurité, le numéro de port présenté - dans le champ d'en-tête Host: n'est jamais utilisé - pour les tests de correspondances. Apache ne prend en compte - que le numéro de port sur lequel le client a envoyé la requête.
    • - -
    • Si une directive ServerPath existe, et se - trouve être préfixe d'une autre directive ServerPath - qui apparaît plus loin dans la configuration, la première - sera toujours utilisée et la deuxième jamais. (Ceci ne se - produit que dans le cas où aucun champ Host: - n'a été présenté par le client pour distinguer les deux.)
    • - -
    • Dans le cas où deux serveurs virtuels par IP ont une - adresse en commun, le serveur virtuel qui apparaît en premier - dans la configuration est toujours choisi. Ce genre de chose - peut arriver par inadvertance. Le serveur envoie une alerte - dans le journal d'erreurs si ce cas se présente.
    • - -
    • Le serveur virtuel _default_ ne sert la requête - que si aucun autre serveur virtuel travaillant sur l'adresse - IP et le port demandés n'est trouvé. La requête n'est - traitée que si le numéro de port qui a reçu la requête est - associé au serveur virtuel _default_ (qui par - défaut, correspond à Listen). Un port joker peut - être spécifié (comme dans _default_:*) - pour récupérer les requêtes sur tous les ports ouverts. Ceci - est également applicable aux serveurs virtuels - NameVirtualHost *.
    • - -
    • Le serveur principal ne sert à servir les requêtes que - lorsque l'adresse IP et le port demandés par le client ne - correspondent à aucun serveur virtuel (y compris un serveur - virtuel _default_). En d'autres termes, le serveur - principal n'est utile que pour les combinaisons adresse/port - non spécifiées (sauf quand un serveur virtuel _default_ +
    • Le numéro de port présenté + dans le champ d'en-tête Host: n'est jamais utilisé + pour les tests de correspondances. Apache ne prend en compte + que le numéro de port sur lequel le client a envoyé la requête.
    • + +
    • Si une directive ServerPath existe, et se + trouve être préfixe d'une autre directive ServerPath + qui apparaît plus loin dans la configuration, la première + sera toujours utilisée et la deuxième jamais. (Ceci ne se + produit que dans le cas où aucun champ Host: + n'a été présenté par le client pour distinguer les deux.)
    • + +
    • Dans le cas où deux serveurs virtuels par IP ont une + adresse en commun, le serveur virtuel qui apparaît en premier + dans la configuration est toujours choisi. Ce genre de chose + peut arriver par inadvertance. Le serveur envoie une alerte + dans le journal d'erreurs si ce cas se présente.
    • + +
    • Le serveur virtuel _default_ ne sert la requête + que si aucun autre serveur virtuel travaillant sur l'adresse + IP et le port demandés n'est trouvé. La requête n'est + traitée que si le numéro de port qui a reçu la requête est + associé au serveur virtuel _default_ (qui par + défaut, correspond à Listen). Un port joker peut + être spécifié (comme dans _default_:*) + pour récupérer les requêtes sur tous les ports ouverts. Ceci + est également applicable aux serveurs virtuels + NameVirtualHost *. Notez que ceci n'est qu'une + extension du principe de "meilleure correspondance", au même titre + qu'une correspondance spécifique et exacte est préférée à une + valeur quelconque.
    • + +
    • Le serveur principal ne sert les requêtes que + lorsque l'adresse IP et le port demandés par le client ne + correspondent à aucun serveur virtuel (y compris un serveur + virtuel _default_). En d'autres termes, le serveur + principal n'est utile que pour les combinaisons adresse/port + non spécifiées (sauf quand un serveur virtuel _default_ correspond au port).
    • -
    • Ni les serveurs virtuels _default_, ni le - serveur principal ne sont utilisés pour traiter une requête - avec un champ d'en-tête Host: manquant ou vide - lorsque l'adresse (et le port) de connexion correspondent à - des serveurs virtuels par nom, par exemple, dans une directive +
    • Ni les serveurs virtuels _default_, ni le + serveur principal ne sont utilisés pour traiter une requête + avec un champ d'en-tête Host: inconnu ou manquant + lorsque l'adresse (et le port) de connexion correspondent à + des serveurs virtuels par nom, par exemple, dans une directive NameVirtualHost.
    • -
    • Il ne faut jamais employer de noms DNS dans des directives - VirtualHost, car cela oblige le serveur a s'appuyer - sur le DNS au moment du démarrage. De plus, vous vous exposez - à des problèmes de sécurité si vous n'avez pas la maîtrise du - DNS pour la totalité de vos domaines. Voir la documentation - disponible ici, ainsi que - les deux points précisés ci-après.
    • - -
    • Un nom de serveur ServerName devrait toujours - être indiqué pour chaque serveur virtuel. Sans cela, une - résolution DNS est nécessaire pour chaque serveur virtuel.
    • +
    • Il ne faut jamais employer de noms DNS dans des directives + VirtualHost, car cela oblige le serveur a s'appuyer + sur le DNS au moment du démarrage. De plus, vous vous exposez + à des problèmes de sécurité si vous n'avez pas la maîtrise du + DNS pour la totalité de vos domaines. Voir la documentation + disponible ici, ainsi que + les deux points précisés ci-après.
    • + +
    • Un nom de serveur ServerName devrait toujours + être indiqué pour chaque serveur virtuel. Sans cela, une + résolution DNS est nécessaire pour chaque serveur virtuel.
    @@ -421,37 +436,60 @@ de configuration

    Trucs et astuces

    -

    En plus des points évoqués sur la page des - problèmes liés au DNS, - voici quelques points intéressants :

    +

    En plus des points évoqués sur la page des + problèmes liés au DNS, + voici quelques points intéressants :

      -
    • Toujours positionner les définitions relatives au serveur - principal avant toute définition VirtualHost. - (Ceci améliore grandement la lisibilité de la configuration - -- la manière dont la configuration est interprétée après la - lecture des fichiers ne met pas en évidence le fait que les - définitions positionnées avant et surtout après les serveurs - virtuels peuvent impacter le fonctionnement des serveurs virtuels.)
    • - -
    • Toujours regrouper les définitions NameVirtualHost - et VirtualHost dans la configuration pour une - meilleure lisibilité.
    • - -
    • Éviter les ServerPaths qui sont préfixes - d'autres ServerPaths. Si cela ne peut être évité, - veillez à ce que le serveur virtuel contenant le préfixe le plus - long (donc le plus précis) apparaisse dans le fichier de - configuration avant le plus court. (par exemple, - "ServerPath /abc" est à spécifier après "ServerPath /abc/def").
    • +
    • Toujours positionner les définitions relatives au serveur + principal avant toute définition VirtualHost. + (Ceci améliore grandement la lisibilité de la configuration + -- la manière dont la configuration est interprétée après la + lecture des fichiers ne met pas en évidence le fait que les + définitions positionnées avant et surtout après les serveurs + virtuels peuvent impacter le fonctionnement de tous les + serveurs virtuels.)
    • + +
    • Toujours regrouper les définitions NameVirtualHost + et VirtualHost correspondantes + dans la configuration pour une meilleure lisibilité.
    • + +
    • Éviter les ServerPaths qui sont préfixes + d'autres ServerPaths. Si cela ne peut être évité, + veillez à ce que le serveur virtuel contenant le préfixe le plus + long (donc le plus précis) apparaisse dans le fichier de + configuration avant le plus court. (par exemple, + "ServerPath /abc" est à spécifier après "ServerPath /abc/def").

    Langues Disponibles:  en  | - fr  | - ko 

    -
    + fr  | + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/details.html.ko.euc-kr b/docs/manual/vhosts/details.html.ko.euc-kr index 9b438715958..589beb3f3b2 100644 --- a/docs/manual/vhosts/details.html.ko.euc-kr +++ b/docs/manual/vhosts/details.html.ko.euc-kr @@ -1,26 +1,34 @@ - -°¡»óȣ½ºƮ ã±⿡ ´ëÇÑ Àڼ¼ÇÑ ¼³¸í - Apache HTTP Server +°¡»óȣ½ºƮ ã±⿡ ´ëÇÑ Àڼ¼ÇÑ ¼³¸í - Apache HTTP Server Version 2.2 - - + + + +
    <-

    °¡»óȣ½ºƮ ã±⿡ ´ëÇÑ Àڼ¼ÇÑ ¼³¸í

    +Apache > HTTP Server > Documentation > Version 2.2 > °¡»óȣ½ºƮ

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    °¡»óȣ½ºƮ ã±⿡ ´ëÇÑ Àڼ¼ÇÑ ¼³¸í

    °¡´ÉÇÑ ¾ð¾î:  en  |  fr  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -38,7 +46,7 @@ +
    top

    ¼³Á¤ÆÄÀÏ Àбâ

    @@ -377,8 +385,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  fr  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/details.html.tr.utf8 b/docs/manual/vhosts/details.html.tr.utf8 new file mode 100644 index 00000000000..5b5f1d32ebf --- /dev/null +++ b/docs/manual/vhosts/details.html.tr.utf8 @@ -0,0 +1,430 @@ + + + + + +Sanal Konak Eşlemenin Derinliğine İncelenmesi - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Sanal Konak Eşlemenin Derinliğine İncelenmesi

    +
    +

    Mevcut Diller:  en  | + fr  | + ko  | + tr 

    +
    +
    Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.
    + + +

    Sanal konak kodu Apache 1.3 sürümünde baştan yeniden + yazıldı. Bu belgede, bir istek aldığında Apache’nin hangi sanal konak + ile hizmet sunacağına nasıl karar verdiği açıklanmaya çalışılmıştır. + NameVirtualHost yönergesi sayesinde + sanal konak yapılandırması 1.3 sürümünün öncesine göre daha kolay ve + daha güvenilir hale gelmiştir.

    + +

    Sanal konakların nasıl çalıştığını öğrenmeden sadece çalıştırmak + isterseniz doğrudan örneklerin bulunduğu + sayfaya bakabilirsiniz.

    + +
    + +
    top
    +
    +

    Yapılandırma Dosyasının Çözümlenmesi

    + +

    Bu belgede <VirtualHost> bölümleri dışında kalan + tanımlardan bahsederken ana_sunucu, <VirtualHost> bölümlerindeki tanımlamalardan + bahsederken sankonlar diyeceğiz.

    + +

    ServerName ve + ServerPath yönergeleri bir sunucu + yapılandırmasının her yerinde karşımıza çıkabilir. Bununla birlikte, + sunucu dahilinde son göründükleri yerlerde önceki eşdeğerlerini geçersiz + kılarlar.

    + +

    ServerPath ve ServerAlias + yönergelerinin ana_sunucu için öntanımlı değerleri yoktur. Öntanımlı + ServerName değeri ise sunucunun IP adresinden elde + edilir.

    + +

    VirtualHost yönergesinde belirtilen port numaraları + Apache'nin dinleyeceği port numaraları olarak değerlendirilmez. Bunlar + sadece, bir isteği işleme sokmak üzere seçilecek + VirtualHost'lar arasında ayrım yapabilmek için kullanılır.

    + +

    VirtualHost yönergesinde görünen her adresin seçimlik bir + portu olabilir. Eğer bir port belirtilmemişse * belirtildiği + varsayılır. Port olarak * belirtildiği takdirde bütün portlar + dinlenir. Adreslerin tamamını (DNS sorgularındaki çoklu A kayıtları dahil) + içeren kümeye sankonların adres kümesi denir.

    + +

    NameVirtualHost yönergesi, + VirtualHost yönergesindeki IP adresini ve portu aynen + içermediği takdirde, Apache bu çiftle en iyi eşleşeni seçer. Eğer çok + sayıda eşleşen varsa yapılandırma dosyasında ilk eşleşen + VirtualHost seçilir.

    + +

    Eğer Apache'nin istemci tarafından sağlanan HTTP Host + başlığına dayanarak ayrım yapmasını istiyorsanız + NameVirtualHost yönergesindeki IP adresi ve portun + VirtualHost yönergesindeki ile tamamen eşleşmesi gerekir.

    + +

    İsme dayalı sanal konak seçimi sadece tek bir IP'ye dayalı sanal konak + seçildikten sonra ve bu sanal konaklar aynı IP-port çiftini taşıyorlarsa + mümkün olabilir.

    + +

    Bir sanal konak tanımında IP adresi yerine konak ismi de kullanılabilirse + de çözümleme işlemi sunucu başlatılırken yapılacağından bu önerilmez.

    + +

    Çok sayıda NameVirtualHost yönergesi belirtebilirse de her + IP:port çifti için birden fazla NameVirtualHost yönergesi + belirtilmemelidir.

    + +

    Aşağıdaki iki örneğin eşdeğer olması için NameVirtualHost + ve VirtualHost yönergelerinin sıralamasının bir önemi + yoktur. (Sadece tek adreslik küme içindeki + VirtualHost yönergelerinin sırası önemlidir; aşağıya + bakınız:)

    + + + + +

    + NameVirtualHost 111.22.33.44
    + <VirtualHost 111.22.33.44>
    + # sunucu A
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.44>
    + # sunucu B
    + ...
    + </VirtualHost>
    +
    + NameVirtualHost 111.22.33.55
    + <VirtualHost 111.22.33.55>
    + # sunucu C
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.55>
    + # sunucu D
    + ...
    + </VirtualHost> +

    + <VirtualHost 111.22.33.44>
    + # sunucu A
    + </VirtualHost>
    + <VirtualHost 111.22.33.55>
    + # sunucu C
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.44>
    + # sunucu B
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.55>
    + # sunucu D
    + ...
    + </VirtualHost>
    +
    + NameVirtualHost 111.22.33.44
    + NameVirtualHost 111.22.33.55
    +
    +

    + + +

    (Okuma kolaylığı bakımından soldaki sürümü tercih etmenizi öneririz.) +

    + +

    İsim listeleri IP adreslerine göre gruplanır ve bir çiftler tablosuna + kaydedilir. Eğer IP adresi bir NameVirtualHost yönergesinde + kullanılmışsa, liste bu IP adresi için tanımlanmış tüm sankonları + içerir. Eğer bu IP adresinin tanımlandığı bir sankon yoksa o + NameVirtualHost yönergesi yoksayılır ve günlüğe bir hata + kaydı düşülür. IP’ye dayalı sankonlar için çiftler listesinde isim + alanları boştur.

    + +

    Çiftler listesini işleyen işlevin hızı nedeniyle bir istek sırasında IP + adresine göre gruplama yaparken kaynak harcaması en düşük düzeyde olur + hatta neredeyse hiç olmaz. Ek olarak, tablo, IP adresinin son + sekizlisindeki değişikliklere göre de en iyilenir.

    + +

    Her sankon için bazı değerler öntanımlı olarak atanır. Bunların + başlıcaları:

    + +
      +
    1. Sankon bir ServerAdmin + yönergesi içermiyorsa, + Timeout, + KeepAliveTimeout, + KeepAlive, + MaxKeepAliveRequests, + ReceiveBufferSize ve + SendBufferSize yönergeleri için + öntanımlı değerler ana_sunucudaki eşdeğerlerinden miras alınır. (Yani, + bu yönergeler için ana_sunucudaki son değerler miras alınır.)
    2. + +
    3. Sankon için öntanımlı dizin erişim izinlerinin tanımlandığı "arama + öntanımlıları" ana_sunucununkilere katılır. Buna her modülün dizinlere + özgü yapılandırma bilgileri dahildir.
    4. + +
    5. Her modülün ana_sunucudaki sunuculara özgü yapılandırmaları sankon + sunucusununkilerle katıştırılır.
    6. +
    + +

    Esasen, ana_sunucu, sankon sunucularını oluştururken bir öntanımlılar + listesi veya öntanımlı değerlere dayanak noktası olarak ele alınır. + Fakat bu ana_sunucu tanımlarının yapılandırma dosyasındaki yerlerinin + saptanmasının konumuzla ilgisi yoktur; ana_sunucu yapılandırmasının + tamamı son katıştırma yapılacağı zaman çözümlenir. Bu bakımdan, + ana_sunucu tanımlarından bir kısmı sankon tanımlarından sonra yer alsa + bile sankon tanımlarında etkili olabilir.

    + +

    Eğer, bu noktada ana_sunucu hiçbir ServerName satırı + içermiyorsa httpd programının çalıştığı makinenin + konak ismi öntanımlıdır. Ana_sunucunun ServerName için + yaptığı DNS sorgusundan dönen IP adreslerine ana_sunucu adres + kümesi diyoruz.

    + +

    Tanımsız ServerName alanları için bir isme dayalı sankon, + sankonu tanımlayan VirtualHost yönergesinde belirtilen ilk + adresi öntanımlı değer kabul eder.

    + +

    Sihirli _default_ sankonları için ana_sunucunun + ServerName değeri kullanılır.

    + +
    top
    +
    +

    Sanal Konağın Belirlenmesi

    + +

    Sunucu bir istek durumunda hangi sankonun kullanılacağını şöyle + belirler:

    + +

    Değer çiftleri tablosu aranır

    + +

    Bir istemci tarafından bağlantı ilk yapıldığında önce IP-isim çiftleri + tablosunda istemcinin bağlandığı IP adresi için bir arama yapılır.

    + +

    Arama başarısız olursa (IP adresi yoksa) hizmet, istekte belirtilen + port için bir _default_ sankon varsa, o sankondan, yoksa + ana_sunucudan sunulur.

    + +

    Eğer çiftler tablosunda IP adresi yoksa port numarası ile eşleştirme + çabası ayrıca, diğer isme dayalı sanal konaklardaki gibi ard arda ele + alınmayı gerektiren NameVirtualHost * durumundaki bir + girdiyle sonuçlanabilir.

    + +

    Arama sonucunda tabloda IP adresi bulunursa sonraki adım hizmetin bir + IP’ye dayalı sankondan mı yoksa isme dayalı bir sankondan mı + sunulacağına karar vermektir.

    + + + +

    IP’ye dayalı sankon

    + +

    Eğer tabloda bulduğumuz girdinin isim alanları boşsa bir IP’ye dayalı + sanal konak bulmuşuz demektir. Artık karar vermek için başka bir şey + yapmaya gerek yoktur ve istek bu sankondan sunulur.

    + + + +

    İsme dayalı sankon

    + +

    Tabloda bulduğumuz girdi için bir isim listesi varsa bir isme dayalı + sankon sözkonusudur. Bu isim listesi, sankonları, ilgili + VirtualHost bölümlerinin yapılandırma dosyasında yer alış + sırasına göre içerir.

    + +

    Bu listedeki ilk sankon (yapılandırma dosyasında belirtilen IP adresine + sahip ilk sankon) en yüksek önceliğe sahiptir ve sunucu ismi + belirtilmeyen veya Host: başlık alanı olmayan istekleri bu + sankon karşılar.

    + +

    Eğer istemci bir Host: başlık alanı ile istek yapmışsa + liste bu sankon için aranır ve hizmet ServerName veya + ServerAlias ile ilk eşleşmenin sağlandığı sankondan + sunulur. Host: alanında bir port belirtilebilirse de Apache + daima istemcinin isteği gönderdiği portu gerçek port kabul eder.

    + +

    VirtualHost içindeki isimlerin tamamı (jokersiz) bir + ServerAlias gibi ele alınır (fakat başka bir + ServerAlias ile geçersiz kılınmazlar).

    + +

    Eğer istemci Host: başlık alanı bulunmayan bir HTTP/1.0 + isteği yapmışsa istemcinin hangi sankona bağlanmayı denediğini bilemeyiz + ve istekteki URI ile mevcut ServerPath değerini + eşleştirmeye çalışırız. Listedekilerden ilk eşleşen yola sahip sankondan + hizmeti sunarız.

    + +

    İstekle eşleşen bir sankon bulunamazsa IP listesinde istemcinin + bağlandığı portla eşleşen ilk sankondan hizmeti sunarız.

    + + + +

    Kalıcı bağlantılar

    + +

    Yukarıda açıklanan IP araması belli bir TCP/IP oturumunda bir defaya + mahsus yapıldığı halde bir kalıcı/KeepAlive bağlantı sırasında her istek + için ayrı bir arama yapılır. Başka bir deyişle, bir istemci tek bir + kalıcı bağlantı üzerinde farklı isme dayalı sankonlardan sayfa talebinde + bulunabilir.

    + + + +

    Mutlak URI

    + +

    Eğer istekte belirtilen URI bir mutlak URI ise ve istek yapılan konak + ismi ve port ana sunucuyla veya sankonlardan biriyle eşleşiyorsa, + şema/konakadı/port öneki ayrılır ve elde edilen göreli URI ilgili + sankondan veya ana sunucudan sunulur. Eğer bir eşleşme sağlanamazsa + URI’ye dokunulmaz ve istek bir vekil isteği olarak ele alınır.

    + + +

    İzlenimler

    + +
      +
    • Bir isme dayalı sankon asla bir IP’ye dayalı sankon ile (veya tersi) + etkileşime girmez. IP’ye dayalı sankonlara sadece kendi adres + kümesindeki bir IP adresi üzerinden erişilebilir, asla başka bir + adresten erişilemez. Aynısı isme dayalı sankonlara da uygulanır; + onlara sadece bir NameVirtualHost yönergesi ile + tanımlanmış adres kümesindeki bir IP adresi üzerinden + erişilebilir.
    • + +
    • Bir IP’ye dayalı sankon için asla ServerAlias ve + ServerPath değerine bakılmaz.
    • + +
    • Yapılandırma dosyası içinde isme/IP’ye dayalı ve + _default_ sankonlar ile NameVirtualHost + yönergelerinin yer alış sırasının birbirlerine göre bir önemi yoktur. + Sıralama sadece aynı IP adresine sahip isme dayalı sankonlar arasında + önemlidir. Aynı adres kümesine mensup isme dayalı sankonlardan + yapılandırma dosyasında ilk sırada yer alanı en yüksek önceliğe + sahiptir.
    • + +
    • Host: başlık alanı eşleştirme işlemi sırasında asla + kullanılmaz. Apache istemcinin bağlantı kurduğu gerçek portu + kullanır.
    • + +
    • Değeri başka bir ServerPath yönergesinin değeri için + önek olan bir ServerPath yönergesi yapılandırma + dosyasında daha önce yer alıyorsa sonrakiyle eşleşme asla + gerçekleşmez. (Bu belirsizliği giderecek bir Host: başlık + alanının mümkün olmadığı varsayılır.)
    • + +
    • Eğer tek bir IP adresine sahip IP’ye dayalı iki sankon varsa eşleşme + daima yapılandırma dosyasında ilk yer alanla gerçekleşir. Böyle bir + şey kasten yapılmaz. Sunucu böyle bir durumu saptadığında hata + günlüğünde bir uyarı verecektir.
    • + +
    • Bir _default_ sankon sadece istekle eşleşen bir IP + adresi bulunamadığında port numarası eşleştiği takdirde isteğe hizmet + sunabilir. Port düzeyinde eşleşmenin olabilmesi için isteğin geldiği + port ile sankon için belirtilen port eşleşmelidir. Olası tüm portlarla + eşleşmeyi sağlamak üzere yıldız imi (_default_:* + şeklinde) kullanılabilir. Aynı şey NameVirtualHost * + sankonlarına da uygulanır. Bunun, "en iyi eşleşme" kuralının bir uzantısı + olarak bir basitleştirme oluşuna dikkat ediniz; belirgin ve tıpatıp bir + eşleşme yıldız imine göre önceliklidir.
    • + +
    • Ana_sunucunun bir isteğe hizmet sunabilmesi için istemcinin + bağlandığı IP adresi ve port hiçbir yerde belirtilmemiş ve + _default_ dahil hiçbir sankon ile eşleşme sağlanamamış + olmalıdır. Başka bir deyişle, istemcinin bağlandığı port ile eşleşen + bir _default_ sankon olmadıkça adres ve port belirtmeyen + bir isteğe ana_sunucu yanıt verecektir.
    • + +
    • Host: başlık alanı içermeyen veya hedefi bilinmeyen bir + istek geldiği takdirde, eğer bu istemcinin bağlandığı adres ve port + için (örneğin, NameVirtualHost ile) tanımlanmış bir isme + dayalı sankon varsa bu isteğe ne ana_sunucu ne de bir + _default_ sankon hizmet sunabilir.
    • + +
    • VirtualHost yönergelerinde asla DNS isimleri + belirtmemelisiniz. Aksi takdirde sunucuyu başlatma sırasında DNS + sorgusu yapmaya zorlamış olursunuz. Listelenen tüm alanlar için DNS + üzerinde tam denetime sahip değilseniz bu ayrıca bir güvenlik + tehdidine yol açar. Bu konuda daha ayrıntılı bilgi edinmek için DNS ile ilgili konular ve Apache + belgesine bakınız.
    • + +
    • ServerName her sankon için ayrı ayrı belirlenmiş + olmalıdır. Aksi takdirde her sankon için bir DNS sorgusu gerekir.
    • +
    + + +
    top
    +
    +

    İpuçları

    + +

    DNS konuları sayfasındaki + ipuçlarına ilaveten burada da bazı ipuçları bulacaksınız:

    + +
      +
    • Ana_sunucu tanımlarının hepsini VirtualHost + tanımlarının öncesinde bitirin. Bu ayrıca yapılandırmanızın + okunabilirliğini de arttırır; VirtualHost tanımlarının + sonrasına sarkan yapılandırmaların katıştırılması işlemi tüm sanal + konakları etkileyebilen tanımlar bakımından bir + karışıklığa/belirsizliğe sebep olabilir.)
    • + +
    • Birbirleriyle ilgili NameVirtualHost ve + VirtualHost tanımlarını okunabilirliği arttırmak için + gruplayın.
    • + +
    • Değeri başka bir ServerPath için önek olan tanımlamalar + yapmaktan kaçının. Bundan kaçınamıyorsanız, yolu uzun olanı yolu kısa + olanın öncesine yerleştirin. Örneğin, "ServerPath /abc/def" önce + "ServerPath /abc" sonra yer alsın.
    • +
    + +
    +
    +

    Mevcut Diller:  en  | + fr  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/details.xml b/docs/manual/vhosts/details.xml index 2da46607a74..728b29b891f 100644 --- a/docs/manual/vhosts/details.xml +++ b/docs/manual/vhosts/details.xml @@ -4,12 +4,12 @@ + + + - + details /vhosts/ .. @@ -9,5 +10,6 @@ en fr ko + tr diff --git a/docs/manual/vhosts/details.xml.tr b/docs/manual/vhosts/details.xml.tr new file mode 100644 index 00000000000..316115b1df9 --- /dev/null +++ b/docs/manual/vhosts/details.xml.tr @@ -0,0 +1,396 @@ + + + + + + + + + +Sanal Konaklar + Sanal Konak Eşlemenin Derinliğine İncelenmesi + + + +

    Sanal konak kodu Apache 1.3 sürümünde baştan yeniden + yazıldı. Bu belgede, bir istek aldığında Apache’nin hangi sanal konak + ile hizmet sunacağına nasıl karar verdiği açıklanmaya çalışılmıştır. + NameVirtualHost yönergesi sayesinde + sanal konak yapılandırması 1.3 sürümünün öncesine göre daha kolay ve + daha güvenilir hale gelmiştir.

    + +

    Sanal konakların nasıl çalıştığını öğrenmeden sadece çalıştırmak + isterseniz doğrudan örneklerin bulunduğu + sayfaya bakabilirsiniz.

    + +
    + +
    Yapılandırma Dosyasının Çözümlenmesi + +

    Bu belgede <VirtualHost> bölümleri dışında kalan + tanımlardan bahsederken ana_sunucu, VirtualHost bölümlerindeki tanımlamalardan + bahsederken sankonlar diyeceğiz.

    + +

    ServerName ve + ServerPath yönergeleri bir sunucu + yapılandırmasının her yerinde karşımıza çıkabilir. Bununla birlikte, + sunucu dahilinde son göründükleri yerlerde önceki eşdeğerlerini geçersiz + kılarlar.

    + +

    ServerPath ve ServerAlias + yönergelerinin ana_sunucu için öntanımlı değerleri yoktur. Öntanımlı + ServerName değeri ise sunucunun IP adresinden elde + edilir.

    + +

    VirtualHost yönergesinde belirtilen port numaraları + Apache'nin dinleyeceği port numaraları olarak değerlendirilmez. Bunlar + sadece, bir isteği işleme sokmak üzere seçilecek + VirtualHost'lar arasında ayrım yapabilmek için kullanılır.

    + +

    VirtualHost yönergesinde görünen her adresin seçimlik bir + portu olabilir. Eğer bir port belirtilmemişse * belirtildiği + varsayılır. Port olarak * belirtildiği takdirde bütün portlar + dinlenir. Adreslerin tamamını (DNS sorgularındaki çoklu A kayıtları dahil) + içeren kümeye sankonların adres kümesi denir.

    + +

    NameVirtualHost yönergesi, + VirtualHost yönergesindeki IP adresini ve portu aynen + içermediği takdirde, Apache bu çiftle en iyi eşleşeni seçer. Eğer çok + sayıda eşleşen varsa yapılandırma dosyasında ilk eşleşen + VirtualHost seçilir.

    + +

    Eğer Apache'nin istemci tarafından sağlanan HTTP Host + başlığına dayanarak ayrım yapmasını istiyorsanız + NameVirtualHost yönergesindeki IP adresi ve portun + VirtualHost yönergesindeki ile tamamen eşleşmesi gerekir.

    + +

    İsme dayalı sanal konak seçimi sadece tek bir IP'ye dayalı sanal konak + seçildikten sonra ve bu sanal konaklar aynı IP-port çiftini taşıyorlarsa + mümkün olabilir.

    + +

    Bir sanal konak tanımında IP adresi yerine konak ismi de kullanılabilirse + de çözümleme işlemi sunucu başlatılırken yapılacağından bu önerilmez.

    + +

    Çok sayıda NameVirtualHost yönergesi belirtebilirse de her + IP:port çifti için birden fazla NameVirtualHost yönergesi + belirtilmemelidir.

    + +

    Aşağıdaki iki örneğin eşdeğer olması için NameVirtualHost + ve VirtualHost yönergelerinin sıralamasının bir önemi + yoktur. (Sadece tek adreslik küme içindeki + VirtualHost yönergelerinin sırası önemlidir; aşağıya + bakınız:)

    + + + + +
    + NameVirtualHost 111.22.33.44
    + <VirtualHost 111.22.33.44>
    + # sunucu A
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.44>
    + # sunucu B
    + ...
    + </VirtualHost>
    +
    + NameVirtualHost 111.22.33.55
    + <VirtualHost 111.22.33.55>
    + # sunucu C
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.55>
    + # sunucu D
    + ...
    + </VirtualHost> +
    + <VirtualHost 111.22.33.44>
    + # sunucu A
    + </VirtualHost>
    + <VirtualHost 111.22.33.55>
    + # sunucu C
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.44>
    + # sunucu B
    + ...
    + </VirtualHost>
    + <VirtualHost 111.22.33.55>
    + # sunucu D
    + ...
    + </VirtualHost>
    +
    + NameVirtualHost 111.22.33.44
    + NameVirtualHost 111.22.33.55
    +
    +
    + + +

    (Okuma kolaylığı bakımından soldaki sürümü tercih etmenizi öneririz.) +

    + +

    İsim listeleri IP adreslerine göre gruplanır ve bir çiftler tablosuna + kaydedilir. Eğer IP adresi bir NameVirtualHost yönergesinde + kullanılmışsa, liste bu IP adresi için tanımlanmış tüm sankonları + içerir. Eğer bu IP adresinin tanımlandığı bir sankon yoksa o + NameVirtualHost yönergesi yoksayılır ve günlüğe bir hata + kaydı düşülür. IP’ye dayalı sankonlar için çiftler listesinde isim + alanları boştur.

    + +

    Çiftler listesini işleyen işlevin hızı nedeniyle bir istek sırasında IP + adresine göre gruplama yaparken kaynak harcaması en düşük düzeyde olur + hatta neredeyse hiç olmaz. Ek olarak, tablo, IP adresinin son + sekizlisindeki değişikliklere göre de en iyilenir.

    + +

    Her sankon için bazı değerler öntanımlı olarak atanır. Bunların + başlıcaları:

    + +
      +
    1. Sankon bir ServerAdmin + yönergesi içermiyorsa, + Timeout, + KeepAliveTimeout, + KeepAlive, + MaxKeepAliveRequests, + ReceiveBufferSize ve + SendBufferSize yönergeleri için + öntanımlı değerler ana_sunucudaki eşdeğerlerinden miras alınır. (Yani, + bu yönergeler için ana_sunucudaki son değerler miras alınır.)
    2. + +
    3. Sankon için öntanımlı dizin erişim izinlerinin tanımlandığı "arama + öntanımlıları" ana_sunucununkilere katılır. Buna her modülün dizinlere + özgü yapılandırma bilgileri dahildir.
    4. + +
    5. Her modülün ana_sunucudaki sunuculara özgü yapılandırmaları sankon + sunucusununkilerle katıştırılır.
    6. +
    + +

    Esasen, ana_sunucu, sankon sunucularını oluştururken bir öntanımlılar + listesi veya öntanımlı değerlere dayanak noktası olarak ele alınır. + Fakat bu ana_sunucu tanımlarının yapılandırma dosyasındaki yerlerinin + saptanmasının konumuzla ilgisi yoktur; ana_sunucu yapılandırmasının + tamamı son katıştırma yapılacağı zaman çözümlenir. Bu bakımdan, + ana_sunucu tanımlarından bir kısmı sankon tanımlarından sonra yer alsa + bile sankon tanımlarında etkili olabilir.

    + +

    Eğer, bu noktada ana_sunucu hiçbir ServerName satırı + içermiyorsa httpd programının çalıştığı makinenin + konak ismi öntanımlıdır. Ana_sunucunun ServerName için + yaptığı DNS sorgusundan dönen IP adreslerine ana_sunucu adres + kümesi diyoruz.

    + +

    Tanımsız ServerName alanları için bir isme dayalı sankon, + sankonu tanımlayan VirtualHost yönergesinde belirtilen ilk + adresi öntanımlı değer kabul eder.

    + +

    Sihirli _default_ sankonları için ana_sunucunun + ServerName değeri kullanılır.

    + +
    + +
    Sanal Konağın Belirlenmesi + +

    Sunucu bir istek durumunda hangi sankonun kullanılacağını şöyle + belirler:

    + +
    Değer çiftleri tablosu aranır + +

    Bir istemci tarafından bağlantı ilk yapıldığında önce IP-isim çiftleri + tablosunda istemcinin bağlandığı IP adresi için bir arama yapılır.

    + +

    Arama başarısız olursa (IP adresi yoksa) hizmet, istekte belirtilen + port için bir _default_ sankon varsa, o sankondan, yoksa + ana_sunucudan sunulur.

    + +

    Eğer çiftler tablosunda IP adresi yoksa port numarası ile eşleştirme + çabası ayrıca, diğer isme dayalı sanal konaklardaki gibi ard arda ele + alınmayı gerektiren NameVirtualHost * durumundaki bir + girdiyle sonuçlanabilir.

    + +

    Arama sonucunda tabloda IP adresi bulunursa sonraki adım hizmetin bir + IP’ye dayalı sankondan mı yoksa isme dayalı bir sankondan mı + sunulacağına karar vermektir.

    + +
    + +
    IP’ye dayalı sankon + +

    Eğer tabloda bulduğumuz girdinin isim alanları boşsa bir IP’ye dayalı + sanal konak bulmuşuz demektir. Artık karar vermek için başka bir şey + yapmaya gerek yoktur ve istek bu sankondan sunulur.

    + +
    + +
    İsme dayalı sankon + +

    Tabloda bulduğumuz girdi için bir isim listesi varsa bir isme dayalı + sankon sözkonusudur. Bu isim listesi, sankonları, ilgili + VirtualHost bölümlerinin yapılandırma dosyasında yer alış + sırasına göre içerir.

    + +

    Bu listedeki ilk sankon (yapılandırma dosyasında belirtilen IP adresine + sahip ilk sankon) en yüksek önceliğe sahiptir ve sunucu ismi + belirtilmeyen veya Host: başlık alanı olmayan istekleri bu + sankon karşılar.

    + +

    Eğer istemci bir Host: başlık alanı ile istek yapmışsa + liste bu sankon için aranır ve hizmet ServerName veya + ServerAlias ile ilk eşleşmenin sağlandığı sankondan + sunulur. Host: alanında bir port belirtilebilirse de Apache + daima istemcinin isteği gönderdiği portu gerçek port kabul eder.

    + +

    VirtualHost içindeki isimlerin tamamı (jokersiz) bir + ServerAlias gibi ele alınır (fakat başka bir + ServerAlias ile geçersiz kılınmazlar).

    + +

    Eğer istemci Host: başlık alanı bulunmayan bir HTTP/1.0 + isteği yapmışsa istemcinin hangi sankona bağlanmayı denediğini bilemeyiz + ve istekteki URI ile mevcut ServerPath değerini + eşleştirmeye çalışırız. Listedekilerden ilk eşleşen yola sahip sankondan + hizmeti sunarız.

    + +

    İstekle eşleşen bir sankon bulunamazsa IP listesinde istemcinin + bağlandığı portla eşleşen ilk sankondan hizmeti sunarız.

    + +
    + +
    Kalıcı bağlantılar + +

    Yukarıda açıklanan IP araması belli bir TCP/IP oturumunda bir defaya + mahsus yapıldığı halde bir kalıcı/KeepAlive bağlantı sırasında her istek + için ayrı bir arama yapılır. Başka bir deyişle, bir istemci tek bir + kalıcı bağlantı üzerinde farklı isme dayalı sankonlardan sayfa talebinde + bulunabilir.

    + +
    + +
    Mutlak URI + +

    Eğer istekte belirtilen URI bir mutlak URI ise ve istek yapılan konak + ismi ve port ana sunucuyla veya sankonlardan biriyle eşleşiyorsa, + şema/konakadı/port öneki ayrılır ve elde edilen göreli URI ilgili + sankondan veya ana sunucudan sunulur. Eğer bir eşleşme sağlanamazsa + URI’ye dokunulmaz ve istek bir vekil isteği olarak ele alınır.

    +
    + +
    İzlenimler + +
      +
    • Bir isme dayalı sankon asla bir IP’ye dayalı sankon ile (veya tersi) + etkileşime girmez. IP’ye dayalı sankonlara sadece kendi adres + kümesindeki bir IP adresi üzerinden erişilebilir, asla başka bir + adresten erişilemez. Aynısı isme dayalı sankonlara da uygulanır; + onlara sadece bir NameVirtualHost yönergesi ile + tanımlanmış adres kümesindeki bir IP adresi üzerinden + erişilebilir.
    • + +
    • Bir IP’ye dayalı sankon için asla ServerAlias ve + ServerPath değerine bakılmaz.
    • + +
    • Yapılandırma dosyası içinde isme/IP’ye dayalı ve + _default_ sankonlar ile NameVirtualHost + yönergelerinin yer alış sırasının birbirlerine göre bir önemi yoktur. + Sıralama sadece aynı IP adresine sahip isme dayalı sankonlar arasında + önemlidir. Aynı adres kümesine mensup isme dayalı sankonlardan + yapılandırma dosyasında ilk sırada yer alanı en yüksek önceliğe + sahiptir.
    • + +
    • Host: başlık alanı eşleştirme işlemi sırasında asla + kullanılmaz. Apache istemcinin bağlantı kurduğu gerçek portu + kullanır.
    • + +
    • Değeri başka bir ServerPath yönergesinin değeri için + önek olan bir ServerPath yönergesi yapılandırma + dosyasında daha önce yer alıyorsa sonrakiyle eşleşme asla + gerçekleşmez. (Bu belirsizliği giderecek bir Host: başlık + alanının mümkün olmadığı varsayılır.)
    • + +
    • Eğer tek bir IP adresine sahip IP’ye dayalı iki sankon varsa eşleşme + daima yapılandırma dosyasında ilk yer alanla gerçekleşir. Böyle bir + şey kasten yapılmaz. Sunucu böyle bir durumu saptadığında hata + günlüğünde bir uyarı verecektir.
    • + +
    • Bir _default_ sankon sadece istekle eşleşen bir IP + adresi bulunamadığında port numarası eşleştiği takdirde isteğe hizmet + sunabilir. Port düzeyinde eşleşmenin olabilmesi için isteğin geldiği + port ile sankon için belirtilen port eşleşmelidir. Olası tüm portlarla + eşleşmeyi sağlamak üzere yıldız imi (_default_:* + şeklinde) kullanılabilir. Aynı şey NameVirtualHost * + sankonlarına da uygulanır. Bunun, "en iyi eşleşme" kuralının bir uzantısı + olarak bir basitleştirme oluşuna dikkat ediniz; belirgin ve tıpatıp bir + eşleşme yıldız imine göre önceliklidir.
    • + +
    • Ana_sunucunun bir isteğe hizmet sunabilmesi için istemcinin + bağlandığı IP adresi ve port hiçbir yerde belirtilmemiş ve + _default_ dahil hiçbir sankon ile eşleşme sağlanamamış + olmalıdır. Başka bir deyişle, istemcinin bağlandığı port ile eşleşen + bir _default_ sankon olmadıkça adres ve port belirtmeyen + bir isteğe ana_sunucu yanıt verecektir.
    • + +
    • Host: başlık alanı içermeyen veya hedefi bilinmeyen bir + istek geldiği takdirde, eğer bu istemcinin bağlandığı adres ve port + için (örneğin, NameVirtualHost ile) tanımlanmış bir isme + dayalı sankon varsa bu isteğe ne ana_sunucu ne de bir + _default_ sankon hizmet sunabilir.
    • + +
    • VirtualHost yönergelerinde asla DNS isimleri + belirtmemelisiniz. Aksi takdirde sunucuyu başlatma sırasında DNS + sorgusu yapmaya zorlamış olursunuz. Listelenen tüm alanlar için DNS + üzerinde tam denetime sahip değilseniz bu ayrıca bir güvenlik + tehdidine yol açar. Bu konuda daha ayrıntılı bilgi edinmek için DNS ile ilgili konular ve Apache + belgesine bakınız.
    • + +
    • ServerName her sankon için ayrı ayrı belirlenmiş + olmalıdır. Aksi takdirde her sankon için bir DNS sorgusu gerekir.
    • +
    +
    + +
    + +
    İpuçları + +

    DNS konuları sayfasındaki + ipuçlarına ilaveten burada da bazı ipuçları bulacaksınız:

    + +
      +
    • Ana_sunucu tanımlarının hepsini VirtualHost + tanımlarının öncesinde bitirin. Bu ayrıca yapılandırmanızın + okunabilirliğini de arttırır; VirtualHost tanımlarının + sonrasına sarkan yapılandırmaların katıştırılması işlemi tüm sanal + konakları etkileyebilen tanımlar bakımından bir + karışıklığa/belirsizliğe sebep olabilir.)
    • + +
    • Birbirleriyle ilgili NameVirtualHost ve + VirtualHost tanımlarını okunabilirliği arttırmak için + gruplayın.
    • + +
    • Değeri başka bir ServerPath için önek olan tanımlamalar + yapmaktan kaçının. Bundan kaçınamıyorsanız, yolu uzun olanı yolu kısa + olanın öncesine yerleştirin. Örneğin, "ServerPath /abc/def" önce + "ServerPath /abc" sonra yer alsın.
    • +
    + +
    +
    + diff --git a/docs/manual/vhosts/examples.html b/docs/manual/vhosts/examples.html index 0ed55e501a1..621e047951a 100644 --- a/docs/manual/vhosts/examples.html +++ b/docs/manual/vhosts/examples.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: examples.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -6,10 +8,14 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: examples.html.ja.euc-jp +URI: examples.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: examples.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: examples.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/vhosts/examples.html.en b/docs/manual/vhosts/examples.html.en index 7ac9de4b429..90b680cc399 100644 --- a/docs/manual/vhosts/examples.html.en +++ b/docs/manual/vhosts/examples.html.en @@ -1,32 +1,40 @@ - -VirtualHost Examples - Apache HTTP Server +VirtualHost Examples - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    VirtualHost Examples

    Available Languages:  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    This document attempts to answer the commonly-asked questions about - setting up virtual hosts. These scenarios are those involving multiple + setting up virtual hosts. These scenarios are those involving multiple web sites running on a single server, via name-based or IP-based virtual hosts.

    @@ -53,7 +61,7 @@ IP-based vhost
  • Using the ServerPath directive
  • -
    +
    top

    Running several name-based web @@ -429,17 +437,17 @@

    Using Virtual_host and mod_proxy together

    -

    The following example allows a front-end machine to proxy a - virtual host through to a server running on another machine. In the - example, a virtual host of the same name is configured on a machine - at 192.168.111.2. The ProxyPreserveHost On directive is - used so that the desired hostname is passed through, in case we are - proxying multiple hostnames to a single machine.

    +

    The following example allows a front-end machine to proxy a virtual host + through to a server running on another machine. In the example, a virtual + host of the same name is configured on a machine at + 192.168.111.2. The ProxyPreserveHost On directive is used + so that the desired hostname is passed through, in case we are proxying + multiple hostnames to a single machine.

    <VirtualHost *:*>
    ProxyPreserveHost On
    - ProxyPass / http://192.168.111.2
    + ProxyPass / http://192.168.111.2/
    ProxyPassReverse / http://192.168.111.2/
    ServerName hostname.example.com
    </VirtualHost> @@ -651,10 +659,32 @@

    Available Languages:  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/examples.html.fr b/docs/manual/vhosts/examples.html.fr index 4311af13984..1275c7bf114 100644 --- a/docs/manual/vhosts/examples.html.fr +++ b/docs/manual/vhosts/examples.html.fr @@ -1,34 +1,47 @@ - -Exemples d'utilisations de VirtualHost - Serveur Apache HTTP +Exemples d'utilisations de VirtualHost - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    Exemples d'utilisations de VirtualHost

    +Apache > Serveur HTTP > Documentation > Version 2.2 > Serveurs virtuels

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Exemples d'utilisations de VirtualHost

    Langues Disponibles:  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    -

    Le but de ce document est d'essayer de répondre aux questions - les plus répandues sur la configuration des serveurs virtuels. - Les scénarios présentés ici se rencontrent quand plusieurs - serveurs Webs doivent tourner sur une seule et même machine au +

    Le but de ce document est d'essayer de répondre aux questions + les plus répandues sur la configuration des serveurs virtuels. + Les scénarios présentés ici se rencontrent quand plusieurs + serveurs Webs doivent tourner sur une seule et même machine au moyen de serveurs virtuels par nom ou par IP.

    @@ -37,17 +50,17 @@ virtuels par nom sur une seule adresse IP.
  • Serveurs virtuels par nom sur plus d'une seule adresse IP.
  • -
  • Servir le même contenu sur des - adresses IP différentes (telle qu'une adresse interne et une +
  • Servir le même contenu sur des + adresses IP différentes (telle qu'une adresse interne et une externe).
  • -
  • Servir différents sites sur différents +
  • Servir différents sites sur différents ports.
  • -
  • Hébergement virtuel basé sur IP
  • -
  • Hébergements virtuels mixtes basés sur +
  • Hébergement virtuel basé sur IP
  • +
  • Hébergements virtuels mixtes basés sur les ports et sur les IP
  • -
  • Hébergements virtuels mixtes basé sur +
  • Hébergements virtuels mixtes basé sur les noms et sur IP
  • -
  • Utilisation simultanée de +
  • Utilisation simultanée de Virtual_host et de mod_proxy
  • Utilisation de serveurs virtuels _default_
  • @@ -55,7 +68,7 @@ par nom en un serveur virtuel par IP
  • Utilisation de la directive ServerPath
  • -
    +
    top

    Fonctionnement de plusieurs serveurs @@ -63,32 +76,32 @@

    Votre serveur ne dispose que d'une seule adresse IP, et de nombreux alias (CNAMES) pointent vers cette adresse dans le DNS. - Pour l'exemple, www.example1.com et - www.example2.org doivent tourner sur cette machine.

    + Pour l'exemple, www.example.com et + www.example.org doivent tourner sur cette machine.

    Note :

    La configuration de serveurs virtuels sous Apache ne provoque pas leur apparition magique dans la configuration du DNS. Il faut que leurs noms soient - définis dans le DNS, et qu'ils y soient résolus sur l'adresse IP + définis dans le DNS, et qu'ils y soient résolus sur l'adresse IP du serveur, faute de quoi personne ne pourra visiter votre site Web. - Il est possible d'ajouter des entrées dans le fichier + Il est possible d'ajouter des entrées dans le fichier hosts pour tests locaux, mais qui ne fonctionneront - que sur la machine possédant ces entrées.

    + que sur la machine possédant ces entrées.

    Configuration du serveur

    - # Apache doit écouter sur le port 80
    + # Apache doit écouter sur le port 80
    Listen 80

    - # Toutes les adresses IP doivent répondre aux requêtes sur les - # serveurs virtuels + # Toutes les adresses IP doivent répondre aux requêtes sur les
    + # serveurs virtuels
    NameVirtualHost *:80

    <VirtualHost *:80>
    - DocumentRoot /www/example1
    + DocumentRoot /www/example.com
    ServerName www.example1.com

    # Autres directives ici
    @@ -98,7 +111,7 @@
    <VirtualHost *:80>
    - DocumentRoot /www/example2
    + DocumentRoot /www/example.org
    ServerName www.example2.org

    # Autres directives ici
    @@ -107,12 +120,12 @@ </VirtualHost>

    -

    Les astérisques correspondent à toutes les adresses, si bien que - le serveur principal ne répondra jamais à aucune requête. Comme - www.example1.com se trouve en premier dans le fichier - de configuration, il a la plus grande priorité et peut être vu - comme serveur par défaut ou primaire ; - ce qui signifie que toute requête reçue ne correspondant pas à une +

    Les astérisques correspondent à toutes les adresses, si bien que + le serveur principal ne répondra jamais à aucune requête. Comme + www.example.com se trouve en premier dans le fichier + de configuration, il a la plus grande priorité et peut être vu + comme serveur par défaut ou primaire ; + ce qui signifie que toute requête reçue ne correspondant à aucune des directives ServerName sera servie par ce premier VirtualHost.

    @@ -120,8 +133,8 @@

    Note :

    Si vous le souhaitez, vous pouvez remplacer * - par l'adresse IP du système. Dans ce cas, l'argument de - VirtualHost doit correspondre à + par l'adresse IP du système. Dans ce cas, l'argument de + VirtualHost doit correspondre à l'argument de NameVirtualHost :

    @@ -131,21 +144,21 @@ # etc ...

    -

    En général, il est commode d'utiliser * sur - les systèmes dont l'adresse IP n'est pas constante - par - exemple, pour des serveurs dont l'adresse IP est attribuée - dynamiquement par le FAI, et où le DNS est géré au moyen +

    En général, il est commode d'utiliser * sur + les systèmes dont l'adresse IP n'est pas constante - par + exemple, pour des serveurs dont l'adresse IP est attribuée + dynamiquement par le FAI, et où le DNS est géré au moyen d'un DNS dynamique quelconque. Comme * signifie n'importe quelle adresse, cette configuration - fonctionne sans devoir être modifiée quand l'adresse IP du - système est modifiée.

    + fonctionne sans devoir être modifiée quand l'adresse IP du + système est modifiée.

    -

    La configuration ci-dessus est en pratique utilisée dans la +

    La configuration ci-dessus est en pratique utilisée dans la plupart des cas pour les serveurs virtuels par nom. En fait, le - seul cas où cette configuration ne fonctionne pas est lorsque - différents contenus doivent être servis en fonction de l'adresse IP - et du port contactés par le client.

    + seul cas où cette configuration ne fonctionne pas est lorsque + différents contenus doivent être servis en fonction de l'adresse IP + et du port contactés par le client.

    top
    @@ -153,15 +166,15 @@ d'une seule adresse IP.
    -

    Note :

    Toutes les techniques présentées ici - peuvent être étendues à un plus grand nombre d'adresses IP.

    +

    Note :

    Toutes les techniques présentées ici + peuvent être étendues à un plus grand nombre d'adresses IP.

    Le serveur a deux adresses IP. Sur l'une (172.20.30.40), le serveur "principal" - server.domain.com doit répondre, et sur l'autre + server.domain.com doit répondre, et sur l'autre (172.20.30.50), deux serveurs virtuels (ou plus) - répondront.

    + répondront.

    Configuration du serveur

    @@ -177,8 +190,8 @@
    <VirtualHost 172.20.30.50>
    - DocumentRoot /www/example1
    - ServerName www.example1.com
    + DocumentRoot /www/example.com
    + ServerName www.example.com

    # D'autres directives ici ...

    @@ -187,8 +200,8 @@
    <VirtualHost 172.20.30.50>
    - DocumentRoot /www/example2
    - ServerName www.example2.org
    + DocumentRoot /www/example.org
    + ServerName www.example.org

    # D'autres directives ici ...

    @@ -196,28 +209,28 @@ </VirtualHost>

    -

    Toute requête arrivant sur une autre adresse que +

    Toute requête arrivant sur une autre adresse que 172.20.30.50 sera servie par le serveur principal. - Les requêtes vers 172.20.30.50 avec un nom de serveur - inconnu, ou sans en-tête Host:, seront servies par - www.example1.com.

    + Les requêtes vers 172.20.30.50 avec un nom de serveur + inconnu, ou sans en-tête Host:, seront servies par + www.example.com.

    top
    -

    Servir le même contenu sur des - adresses IP différentes (telle qu'une adresse interne et une +

    Servir le même contenu sur des + adresses IP différentes (telle qu'une adresse interne et une externe).

    La machine serveur dispose de deux adresses IP (192.168.1.1 et 172.20.30.40). Cette - machine est placée à la fois sur le réseau interne (l'Intranet) - et le réseau externe (Internet). Sur Internet, le nom + machine est placée à la fois sur le réseau interne (l'Intranet) + et le réseau externe (Internet). Sur Internet, le nom server.example.com pointe vers l'adresse externe - (172.20.30.40), mais sur le réseau interne, ce même + (172.20.30.40), mais sur le réseau interne, ce même nom pointe vers l'adresse interne (192.168.1.1).

    -

    Le serveur peut être configuré pour répondre de la même manière - aux requêtes internes et externes, au moyen d'une seule section +

    Le serveur peut être configuré pour répondre de la même manière + aux requêtes internes et externes, au moyen d'une seule section VirtualHost.

    Configuration du serveur

    @@ -235,28 +248,28 @@ </VirtualHost>

    -

    Ainsi, les requêtes en provenance de chacun des deux réseaux - seront servies par le même VirtualHost.

    +

    Ainsi, les requêtes en provenance de chacun des deux réseaux + seront servies par le même VirtualHost.

    -

    Note :

    Sur le réseau interne, il est possible +

    Note :

    Sur le réseau interne, il est possible d'utiliser le nom raccourci server au lieu du nom complet server.example.com.

    -

    Notez également que dans l'exemple précédent, vous pouvez +

    Notez également que dans l'exemple précédent, vous pouvez remplacer la liste des adresses IP par des * afin - que le serveur réponde de la même manière sur toutes ses + que le serveur réponde de la même manière sur toutes ses adresses.

    top
    -

    Servir différents sites sur différents +

    Servir différents sites sur différents ports.

    -

    Vous disposez de plusieurs domaines pointant sur la même adresse - IP et vous voulez également servir de multiples ports. Vous y - parviendrez en définissant les ports dans la directive +

    Vous disposez de plusieurs domaines pointant sur la même adresse + IP et vous voulez également servir de multiples ports. Vous y + parviendrez en définissant les ports dans la directive "NameVirtualHost". Si vous tentez d'utiliser <VirtualHost name:port> sans directive NameVirtualHost name:port, ou tentez d'utiliser la directive Listen, votre configuration ne fonctionnera @@ -273,28 +286,28 @@
    <VirtualHost 172.20.30.40:80>
    - ServerName www.example1.com
    + ServerName www.example.com
    DocumentRoot /www/domain-80
    </VirtualHost>

    <VirtualHost 172.20.30.40:8080>
    - ServerName www.example1.com
    + ServerName www.example.com
    DocumentRoot /www/domain-8080
    </VirtualHost>

    <VirtualHost 172.20.30.40:80>
    - ServerName www.example2.org
    + ServerName www.example.org
    DocumentRoot /www/otherdomain-80
    </VirtualHost>

    <VirtualHost 172.20.30.40:8080>
    - ServerName www.example2.org
    + ServerName www.example.org
    DocumentRoot /www/otherdomain-8080
    </VirtualHost> @@ -302,11 +315,11 @@

    top
    -

    Hébergement virtuel basé sur IP

    +

    Hébergement virtuel basé sur IP

    Le serveur dispose de deux adresses IP (172.20.30.40 et 172.20.30.50) correspondant respectivement aux noms - www.example1.com et www.example2.org.

    + www.example.com et www.example.org.

    Configuration du serveur

    @@ -315,33 +328,33 @@
    <VirtualHost 172.20.30.40>
    - DocumentRoot /www/example1
    + DocumentRoot /www/example.com
    ServerName www.example1.com
    </VirtualHost>

    <VirtualHost 172.20.30.50>
    - DocumentRoot /www/example2
    + DocumentRoot /www/example.org
    ServerName www.example2.org
    </VirtualHost>

    -

    Les requêtes provenant d'adresses non spécifiées dans l'une des +

    Les requêtes provenant d'adresses non spécifiées dans l'une des directives <VirtualHost> (comme pour - localhost par exemple) seront dirigées vers le serveur + localhost par exemple) seront dirigées vers le serveur principal, s'il en existe un.

    top
    -

    Hébergements virtuels mixtes basés sur +

    Hébergements virtuels mixtes basés sur les ports et sur les IP

    Le serveur dispose de deux adresses IP (172.20.30.40 et 172.20.30.50) correspondant respectivement aux noms - www.example1.com et www.example2.org. - Pour chacun d'eux, nous voulons un hébergement sur les ports 80 + www.example.com et www.example.org. + Pour chacun d'eux, nous voulons un hébergement sur les ports 80 et 8080.

    Configuration du serveur

    @@ -354,40 +367,40 @@
    <VirtualHost 172.20.30.40:80>
    - DocumentRoot /www/example1-80
    - ServerName www.example1.com
    + DocumentRoot /www/example.com-80
    + ServerName www.example.com
    </VirtualHost>

    <VirtualHost 172.20.30.40:8080>
    - DocumentRoot /www/example1-8080
    - ServerName www.example1.com
    + DocumentRoot /www/example.com-8080
    + ServerName www.example.com
    </VirtualHost>

    <VirtualHost 172.20.30.50:80>
    - DocumentRoot /www/example2-80
    - ServerName www.example1.org
    + DocumentRoot /www/example.org-80
    + ServerName www.example.org
    </VirtualHost>

    <VirtualHost 172.20.30.50:8080>
    - DocumentRoot /www/example2-8080
    - ServerName www.example2.org
    + DocumentRoot /www/example.org-8080
    + ServerName www.example.org
    </VirtualHost>

    top
    -

    Hébergements virtuels mixtes basé sur +

    Hébergements virtuels mixtes basé sur les noms et sur IP

    -

    Pour certaines adresses, des serveurs virtuels seront définis - par nom, et pour d'autres, ils seront définis par IP.

    +

    Pour certaines adresses, des serveurs virtuels seront définis + par nom, et pour d'autres, ils seront définis par IP.

    Configuration du serveur

    @@ -398,54 +411,54 @@
    <VirtualHost 172.20.30.40>
    - DocumentRoot /www/example1
    - ServerName www.example1.com
    + DocumentRoot /www/example.com
    + ServerName www.example.com
    </VirtualHost>

    <VirtualHost 172.20.30.40>
    - DocumentRoot /www/example2
    - ServerName www.example2.org
    + DocumentRoot /www/example.org
    + ServerName www.example.org
    </VirtualHost>

    <VirtualHost 172.20.30.40>
    - DocumentRoot /www/example3
    - ServerName www.example3.net
    + DocumentRoot /www/example.net
    + ServerName www.example.net
    </VirtualHost>

    # "par-IP"
    <VirtualHost 172.20.30.50>
    - DocumentRoot /www/example4
    - ServerName www.example4.edu
    + DocumentRoot /www/example.edu
    + ServerName www.example.edu
    </VirtualHost>

    <VirtualHost 172.20.30.60>
    - DocumentRoot /www/example5
    - ServerName www.example5.gov
    + DocumentRoot /www/example.gov
    + ServerName www.example.gov
    </VirtualHost>

    top
    -

    Utilisation simultanée de +

    Utilisation simultanée de Virtual_host et de mod_proxy

    L'exemple suivant montre comment une machine peut mandater un serveur virtuel fonctionnant sur le serveur d'une autre machine. - Dans cet exemple, un serveur virtuel de même nom est configuré sur - une machine à l'adresse 192.168.111.2. La directive - ProxyPreserveHost On est - employée pour permette au nom de domaine d'être préservé lors du - transfert, au cas où plusieurs noms de domaines cohabitent sur - une même machine.

    + Dans cet exemple, un serveur virtuel de même nom est configuré sur + une machine à l'adresse 192.168.111.2. La directive + ProxyPreserveHost On est + employée pour permettre au nom de domaine d'être préservé lors du + transfert, au cas où plusieurs noms de domaines cohabitent sur + une même machine.

    <VirtualHost *:*>
    @@ -464,9 +477,9 @@

    Serveurs virtuels _default_ pour tous les ports

    -

    Exemple de capture de toutes les requêtes émanant - d'adresses IP ou de ports non connus, c'est-à-dire, d'un - couple adresse/port non traité par aucun autre serveur virtuel.

    +

    Exemple de capture de toutes les requêtes émanant + d'adresses IP ou de ports non connus, c'est-à-dire, d'un + couple adresse/port non traité par aucun autre serveur virtuel.

    Configuration du serveur

    @@ -479,30 +492,30 @@

    L'utilisation d'un tel serveur virtuel avec un joker pour le - port empêche de manière efficace qu'une requête n'atteigne le + port empêche de manière efficace qu'une requête n'atteigne le serveur principal.

    -

    Un serveur virtuel par défaut ne servira jamais une requête - qui est envoyée vers un couple adresse/port utilisée par un - serveur virtuel par nom. Si la requête contient un en-tête +

    Un serveur virtuel par défaut ne servira jamais une requête + qui est envoyée vers un couple adresse/port utilisée par un + serveur virtuel par nom. Si la requête contient un en-tête Host: inconnu, ou si celui-ci est absent, elle sera toujours servie par le serveur virtuel primaire par nom - (celui correspondant à ce couple adresse/port trouvé en premier + (celui correspondant à ce couple adresse/port trouvé en premier dans le fichier de configuration).

    Vous pouvez utiliser une directive AliasMatch ou RewriteRule afin de - réécrire une requête pour une unique page d'information (ou pour + réécrire une requête pour une unique page d'information (ou pour un script).

    Serveurs virtuels - _default_ pour des ports différents

    + _default_ pour des ports différents

    -

    La configuration est similaire à l'exemple précédent, mais - le serveur écoute sur plusieurs ports et un second serveur virtuel - _default_ pour le port 80 est ajouté.

    +

    La configuration est similaire à l'exemple précédent, mais + le serveur écoute sur plusieurs ports et un second serveur virtuel + _default_ pour le port 80 est ajouté.

    Configuration du serveur

    @@ -522,17 +535,17 @@ </VirtualHost>

    -

    Le serveur virtuel par défaut défini pour le port 80 (il doit - impérativement être placé avant un autre serveur virtuel par - défaut traitant tous les ports grâce au joker *) capture toutes - les requêtes envoyées sur une adresse IP non spécifiée. Le - serveur principal n'est jamais utilisé pour servir une requête.

    +

    Le serveur virtuel par défaut défini pour le port 80 (il doit + impérativement être placé avant un autre serveur virtuel par + défaut traitant tous les ports grâce au joker *) capture toutes + les requêtes envoyées sur une adresse IP non spécifiée. Le + serveur principal n'est jamais utilisé pour servir une requête.

    Serveurs virtuels _default_ pour un seul port

    -

    Nous voulons créer un serveur virtuel par défaut seulement +

    Nous voulons créer un serveur virtuel par défaut seulement pour le port 80.

    Configuration du serveur

    @@ -544,9 +557,9 @@ </VirtualHost>

    -

    Une requête vers une adresse non spécifiée sur le port 80 - sera servie par le serveur virtuel par défaut, et toute autre - requête vers une adresse et un port non spécifiés sera servie +

    Une requête vers une adresse non spécifiée sur le port 80 + sera servie par le serveur virtuel par défaut, et toute autre + requête vers une adresse et un port non spécifiés sera servie par le serveur principal.

    @@ -556,10 +569,10 @@ par nom en un serveur virtuel par IP

    Le serveur virtuel par nom avec le nom de domaine - www.example2.org (de notre exemple + www.example.org (de notre exemple par nom) devrait obtenir sa propre adresse IP. Pendant la - phase de migration, il est possible d'éviter les problèmes avec - les noms de serveurs et autres serveurs mandataires qui mémorisent + phase de migration, il est possible d'éviter les problèmes avec + les noms de serveurs et autres serveurs mandataires qui mémorisent les vielles adresses IP pour les serveurs virtuels par nom.
    La solution est simple, car il suffit d'ajouter la nouvelle adresse IP (172.20.30.50) dans la directive @@ -569,30 +582,30 @@ Listen 80
    - ServerName www.example1.com
    - DocumentRoot /www/example1
    + ServerName www.example.com
    + DocumentRoot /www/example.com

    NameVirtualHost 172.20.30.40

    <VirtualHost 172.20.30.40 172.20.30.50>
    - DocumentRoot /www/example2
    - ServerName www.example2.org
    + DocumentRoot /www/example.org
    + ServerName www.example.org
    # ...
    </VirtualHost>

    <VirtualHost 172.20.30.40>
    - DocumentRoot /www/example3
    - ServerName www.example3.net
    - ServerAlias *.example3.net
    + DocumentRoot /www/example.net
    + ServerName www.example.net
    + ServerAlias *.example.net
    # ...
    </VirtualHost>

    -

    Le serveur virtuel peut maintenant être joint par la nouvelle +

    Le serveur virtuel peut maintenant être joint par la nouvelle adresse (comme un serveur virtuel par IP) et par l'ancienne adresse (comme un serveur virtuel par nom).

    @@ -601,15 +614,15 @@

    Utilisation de la directive ServerPath

    -

    Dans le cas où vous disposez de deux serveurs virtuels par nom, - le client doit transmettre un en-tête Host: correct - pour déterminer le serveur concerné. Les vieux clients HTTP/1.0 - n'envoient pas un tel en-tête et Apache n'a aucun indice pour - connaître le serveur virtuel devant être joint (il sert la - requête à partir d'un serveur virtuel primaire). Dans un soucis - de préserver la compatibilité descendante, il suffit de créer - un serveur virtuel primaire chargé de retourner une page contenant - des liens dont les URLs auront un préfixe identifiant les serveurs +

    Dans le cas où vous disposez de deux serveurs virtuels par nom, + le client doit transmettre un en-tête Host: correct + pour déterminer le serveur concerné. Les vieux clients HTTP/1.0 + n'envoient pas un tel en-tête et Apache n'a aucun indice pour + connaître le serveur virtuel devant être joint (il sert la + requête à partir d'un serveur virtuel primaire). Dans un soucis + de préserver la compatibilité descendante, il suffit de créer + un serveur virtuel primaire chargé de retourner une page contenant + des liens dont les URLs auront un préfixe identifiant les serveurs virtuels par nom.

    Configuration du serveur

    @@ -650,30 +663,52 @@ </VirtualHost>

    -

    À cause de la directive - ServerPath, une requête sur +

    À cause de la directive + ServerPath, une requête sur une URL http://www.sub1.domain.tld/sub1/ est toujours servie par le serveur sub1-vhost.
    - Une requête sur une URL http://www.sub1.domain.tld/ n'est - servie par le serveur sub1-vhost que si le client envoie un en-tête - Host: correct. Si aucun en-tête Host: - n'est transmis, le serveur primaire sera utilisé.
    - Notez qu'il y a une singularité : une requête sur - http://www.sub2.domain.tld/sub1/ est également servie - par le serveur sub1-vhost si le client n'envoie pas d'en-tête - Host:.
    - Les directives RewriteRule - sont employées pour s'assurer que le client qui envoie un en-tête + Une requête sur une URL http://www.sub1.domain.tld/ n'est + servie par le serveur sub1-vhost que si le client envoie un en-tête + Host: correct. Si aucun en-tête Host: + n'est transmis, le serveur primaire sera utilisé.

    +

    Notez qu'il y a une singularité : une requête sur + http://www.sub2.domain.tld/sub1/ est également servie + par le serveur sub1-vhost si le client n'envoie pas d'en-tête + Host:.

    +

    Les directives RewriteRule + sont employées pour s'assurer que le client qui envoie un en-tête Host: correct puisse utiliser d'autres variantes d'URLs, - c'est-à-dire avec ou sans préfixe d'URL.

    + c'est-à-dire avec ou sans préfixe d'URL.

    Langues Disponibles:  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/examples.html.ja.euc-jp b/docs/manual/vhosts/examples.html.ja.euc-jp deleted file mode 100644 index 469d51c67a1..00000000000 --- a/docs/manual/vhosts/examples.html.ja.euc-jp +++ /dev/null @@ -1,648 +0,0 @@ - - - -¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÎã - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÎã

    -
    -

    Available Languages:  en  | - fr  | - ja  | - ko 

    -
    - - -

    ¤³¤Îʸ½ñ¤ϡ¢¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÀßÄê¤κݤË - ¤褯¤¢¤ë¼ÁÌä¤ËÅú¤¨¤ë¤â¤ΤǤ¹¡£ÁÛÄꤷ¤Ƥ¤¤ëÂоݤÏ ̾Á°¥١¼¥¹ ¤ä IP ¥١¼¥¹ ¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò»ȤäÆ - °ì¤ĤΥµ¡¼¥ФÇʣ¿ô¤Υ¦¥§¥֥µ¥¤¥Ȥò±¿ÍѤ·¤Ƥ¤¤ë¾õ¶·¤Ǥ¹¡£ -

    - -
    - -
    top
    -
    -

    °ì¤ĤÎ IP ¥¢¥ɥ쥹¤Ǥ¤¤¯¤Ĥ«¤Î̾Á°¥١¼¥¹¤Î - ¥¦¥§¥֥µ¥¤¥Ȥò¼¹Ԥ¹¤ë

    - -

    ¥µ¡¼¥ФÏ IP ¥¢¥ɥ쥹¤ò°ì¤ijä¤êÅö¤Ƥé¤ì¤Ƥ¤¤ơ¢DNS ¤ǥޥ·¥ó¤Ë - ʣ¿ô¤Î̾Á° (CNAME) ¤¬»ØÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£¤³¤Υޥ·¥ó¤Ç - www.example.com ¤È www.example.org - ¤Τ¿¤á¤Υ¦¥§¥֥µ¡¼¥Фò¼¹Ԥµ¤»¤¿¤¤¤Ȥ·¤ޤ¹¡£

    - -

    Ãí

    - Apache ¥µ¡¼¥ФÎÀßÄê¤ǥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÀßÄê¤򤷤¿¤À¤±¤ǡ¢ - ÃΤé¤ʤ¤´֤ˤ½¤Υۥ¹¥È̾¤ËÂбþ¤¹¤ë DNS ¤Υ¨¥ó¥ȥ꤬ - ºîÀ®¤µ¤줿¤ê¤Ϥ·¤ޤ»¤󡣤½¤Υµ¡¼¥ФÎ IP ¥¢¥ɥ쥹¤˲ò·褵¤ì¤ë - ¤褦¤Ë DNS ¤Ë̾Á°¤òÅÐϿ¤·¤ʤ±¤ì¤Ð¤ʤê¤ޤ»¤ó¡£ - ¤½¤¦¤Ǥʤ¤¤Èï¤⤢¤ʤ¿¤Υ¦¥§¥֥µ¥¤¥Ȥ򸫤뤳¤ȤϤǤ­¤ޤ»¤ó¡£ - ¥í¡¼¥«¥ë¤ǤΥƥ¹¥ȤΤ¿¤á¤Ë hosts ¥ե¡¥¤¥ë¤Ë - ¥¨¥ó¥ȥê¤òÄɲ乤뤳¤Ȥâ¤Ǥ­¤ޤ¹¤¬¡¢¤³¤ξì¹ç¤Ϥ½¤Î - hosts ¥¨¥ó¥ȥê¤Τ¢¤ë¥ޥ·¥󤫤餷¤«ưº¤ޤ»¤ó¡£

    -
    - -

    ¥µ¡¼¥ÐÀßÄê

    - - - # Ensure that Apache listens on port 80
    - Listen 80
    -
    - # Listen for virtual host requests on all IP addresses
    - NameVirtualHost *:80
    -
    - <VirtualHost *:80>
    - - DocumentRoot /www/example1
    - ServerName www.example.com
    -
    - # Other directives here
    -
    -
    - </VirtualHost>
    -
    - <VirtualHost *:80>
    - - DocumentRoot /www/example2
    - ServerName www.example.org
    -
    - # Other directives here
    -
    -
    - </VirtualHost> -

    - -

    ¥¢¥¹¥¿¥ꥹ¥¯¤Ϥ¹¤٤ƤΥ¢¥ɥ쥹¤˥ޥåÁ¤·¤ޤ¹¤Τǡ¢¼祵¡¼¥ФÏ - ¥ꥯ¥¨¥¹¥Ȥ򰷤¤¤ޤ»¤ó¡£www.example.com ¤Ï - ºǽé¤ˤ¢¤뤿¤ᡢͥÀè½ç°̤ϰìÈֹ⤯¤ʤꡢdefault ¤⤷¤¯¤Ï - primary ¤Υµ¡¼¥Фȹͤ¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£¤Ĥޤꡢ¥ꥯ¥¨¥¹¥Ȥ¬ - ¤ɤÎ ServerName ¥ǥ£¥쥯¥ƥ£¥֤ˤâ¥ޥåÁ¤·¤ʤ¤¾ì¹硢 - °ìÈֺǽé¤Î VirtualHost ¤ˤè¤갷¤ï¤ì¤ޤ¹¡£

    - -

    Ãí

    - -

    * ¤򥷥¹¥ƥà¤μºݤÎ IP ¥¢¥ɥ쥹¤ËÃ֤­´¹¤¨¤ë - ¤³¤Ȥâ¤Ǥ­¤ޤ¹¡£¤½¤ξì¹ç¤Ï VirtualHost ¤ΰú¿ô¤Ï - NameVirtualHost ¤ΰú¿ô¤ÈƱ¤¸¤Ë¤·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó - :

    - -

    - NameVirtualHost 172.20.30.40
    -
    - <VirtualHost 172.20.30.40>
    - # etc ... -

    - -

    ¤·¤«¤·¡¢IP ¥¢¥ɥ쥹¤¬ͽ¬ÉԲÄǽ¤ʥ·¥¹¥ƥà - ¡½¡½Î㤨¤Хץí¥Х¤¥À¤«¤éưŪ¤Ë IP ¥¢¥ɥ쥹¤ò¼èÆÀ¤·¤Ʋ¿¤餫¤Î - ¥À¥¤¥ʥߥå¯ DNS ¤ò»ȤäƤ¤¤ë¾ì¹ç¤ʤɡ½¡½¤ˤª¤¤¤Ƥϡ¢* - »ØÄê¤Ϥµ¤é¤ËÊØÍø¤Ǥ¹¡£* ¤Ϥ¹¤٤ƤÎ IP ¥¢¥ɥ쥹¤Ë - ¥ޥåÁ¤·¤ޤ¹¤Τǡ¢¤³¤ÎÀßÄê¤ˤ·¤Ƥª¤±¤Ð IP ¥¢¥ɥ쥹¤¬Êѹ¹¤µ¤ì¤Ƥâ - ÀßÄêÊѹ¹¤»¤º¤Ëưº¤ޤ¹¡£

    -
    - -

    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ƥ£¥󥰤ǤϤۤܤ¹¤٤Ƥξõ¶·¤ǡ¢ - ¾嵭¤ÎÀßÄê¤Ǵõ˾¤ÎÀßÄê¤ˤʤäƤ¤¤뤳¤ȤǤ·¤礦¡£ - ¼ºݤ³¤ÎÀßÄ꤬ưº¤ʤ¤¤Τϡ¢IP ¥¢¥ɥ쥹¤ä¥ݡ¼¥Ȥΰ㤤¤ˤè¤äÆ - °㤦¥³¥ó¥ƥó¥ĤòÁ÷¤ë¤Ȥ­¤À¤±¤Ǥ¹¡£

    - -
    top
    -
    -

    ʣ¿ô¤Î IP ¥¢¥ɥ쥹¤Τ¢¤ë¥ۥ¹¥ȤÇ̾Á°¥١¼¥¹¤Î - ¥ۥ¹¥ƥ£¥󥰤ò¹Ԥʤ¦

    - -
    -

    Ãí

    ¤³¤³¤ÇÀâÌÀ¤µ¤ì¤Ƥ¤¤ëÊýˡ¤Ï IP ¥¢¥ɥ쥹¤¬ - ²¿¸Ĥ¢¤äƤâƱÍͤˤǤ­¤ޤ¹¡£

    -
    - -

    ¥µ¡¼¥ФˤÏÆó¤Ä IP ¥¢¥ɥ쥹¤¬¤Ĥ¤¤Ƥ¤¤ޤ¹¡£°ì¤ÄÌÜ - (172.20.30.40) ¤Ǥϼ祵¡¼¥Ð - server.domain.com ¤򰷤¤¡¢¤⤦°ìÊý - (172.20.30.50) ¤ǤÏÆó¤Ĥ«¤½¤ì°ʾå¤οô¤Î - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥ򰷤¤¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - Listen 80
    -
    - # This is the "main" server running on 172.20.30.40
    - ServerName server.domain.com
    - DocumentRoot /www/mainserver
    -
    - # This is the other address
    - NameVirtualHost 172.20.30.50
    -
    - <VirtualHost 172.20.30.50>
    - - DocumentRoot /www/example1
    - ServerName www.example.com
    -
    - # Other directives here ...
    -
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.50>
    - - DocumentRoot /www/example2
    - ServerName www.example.org
    -
    - # Other directives here ...
    -
    -
    - </VirtualHost> -

    - -

    172.20.30.50 °ʳ°¤Υ¢¥ɥ쥹¤ؤΥꥯ¥¨¥¹¥Ȥϼ祵¡¼¥Ð - ¤¬°·¤¤¤ޤ¹¡£172.20.30.50 ¤ؤΡ¢̤ÃΤΥۥ¹¥È̾¤ޤ¿¤Ï - Host: ¥إåÀ¤ʤ·¤Υꥯ¥¨¥¹¥ȤÏ www.example.com - ¤¬°·¤¤¤ޤ¹¡£

    - -
    top
    -
    -

    °㤦 IP ¥¢¥ɥ쥹 (Î㤨¤С¢ÆâÉô¤ȳ°Éô¥¢¥ɥ쥹) - ¤ÇƱ¤¸¥³¥ó¥ƥó¥ĤòÁ÷¤ë

    - -

    ¥µ¡¼¥Хޥ·¥ó¤Ï IP ¥¢¥ɥ쥹¤òÆó¤Ä (192.168.1.1 - ¤È 172.20.30.40) »ý¤äƤ¤¤ޤ¹¡£¤³¤Υޥ·¥ó¤ÏÆâÉô - (¥¤¥ó¥ȥé¥ͥåÈ) ¤È ³°Éô (¥¤¥󥿡¼¥ͥåÈ) ¤Υͥåȥ¥¯¤δ֤Ë - ¤¢¤ê¤ޤ¹¡£server.example.com ¤ϥͥåȥ¥¯¤γ°¤«¤é¤Ï - ³°Éô¥¢¥ɥ쥹 (172.20.30.40) ¤Ȥ·¤Ʋò·褵¤ì¤ޤ¹¤¬¡¢ - ¥ͥåȥ¥¯¤ÎÃ椫¤é¤ÏÆâÉô¥¢¥ɥ쥹 (192.168.1.1) - ¤Ȥ·¤Ʋò·褵¤ì¤ޤ¹¡£

    - -

    VirtualHost °ì¤ĤÀ¤±¤ǥµ¡¼¥Ф¬ÆâÉô¤Υꥯ¥¨¥¹¥ȤÈ - ³°Éô¤Υꥯ¥¨¥¹¥ȤÎξÊý¤ËƱ¤¸¥³¥ó¥ƥó¥ĤDZþÅú¤¹¤ë¤褦¤ˤǤ­¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - NameVirtualHost 192.168.1.1
    - NameVirtualHost 172.20.30.40
    -
    - <VirtualHost 192.168.1.1 172.20.30.40>
    - - DocumentRoot /www/server1
    - ServerName server.example.com
    - ServerAlias server
    -
    - </VirtualHost> -

    - -

    ¤³¤ì¤ǤɤÁ¤é¤Υͥåȥ¥¯¤«¤é¤Υꥯ¥¨¥¹¥ȤâƱ¤¸ VirtualHost - ¤ǰ·¤ï¤ì¤ë¤褦¤ˤʤê¤ޤ¹¡£

    - -

    Ãí:

    ÆâÉô¥ͥåȥ¥¯¤Ǥϴ°Á´¤ʥۥ¹¥È̾¤Î - server.example.com ¤ÎÂå¤ï¤ê¤ˡ¢ñ¤Ë server - ¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¾å¤ÎÎã¤Ǥϡ¢IP ¥¢¥ɥ쥹¤Υꥹ¥Ȥ򡢤¹¤٤ƤΥ¢¥ɥ쥹¤Ë - Ʊ¤¸¥³¥ó¥ƥó¥ĤDZþÅú¤¹¤ë * ¤ËÃ֤­´¹¤¨¤é¤ì¤ޤ¹¡£

    -
    - -
    top
    -
    -

    °㤦¥ݡ¼¥Ȥǰ㤦¥µ¥¤¥Ȥ򱿱Ĥ¹¤ë

    - -

    Ʊ¤¸ IP ¤Ëʣ¿ô¤Υɥᥤ¥󤬤¢¤ꡢ¤µ¤é¤Ëʣ¿ô¤Υݡ¼¥Ȥò»ȤäÆ - ¥ꥯ¥¨¥¹¥Ȥ򰷤¤¤¿¤¤¤Ȥ­¤¬¤¢¤ê¤ޤ¹¡£"NameVirtualHost" ¥¿¥°¤ÎÃæ¤Ç - ¥ݡ¼¥ȤòÄêµÁ¤¹¤뤳¤Ȥǡ¢¤³¤ì¤òưº¤»¤é¤ì¤ޤ¹¡£ - NameVirtualHost name:port ̵¤·¤ä Listen ¥ǥ£¥쥯¥ƥ£¥֤Ç - <VirtualHost name:port> ¤ò»Ȥª¤¦¤Ȥ·¤Ƥ⡢¤½¤ÎÀßÄê¤Ïưº¤ޤ»¤ó¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - Listen 80
    - Listen 8080
    -
    - NameVirtualHost 172.20.30.40:80
    - NameVirtualHost 172.20.30.40:8080
    -
    - <VirtualHost 172.20.30.40:80>
    - - ServerName www.example.com
    - DocumentRoot /www/domain-80
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40:8080>
    - - ServerName www.example.com
    - DocumentRoot /www/domain-8080
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40:80>
    - - ServerName www.example.org
    - DocumentRoot /www/otherdomain-80
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40:8080>
    - - ServerName www.example.org
    - DocumentRoot /www/otherdomain-8080
    -
    - </VirtualHost> -

    - -
    top
    -
    -

    IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ƥ£¥ó¥°

    - -

    ¥µ¡¼¥ФÏ www.example.com ¤È www.example.org - ¤ˤ½¤줾¤ì²ò·褵¤ì¤롢Æó¤ĤÎ IP ¥¢¥ɥ쥹 (172.20.30.40 ¤È - 172.20.30.50) ¤¬¤¢¤ê¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - Listen 80
    -
    - <VirtualHost 172.20.30.40>
    - - DocumentRoot /www/example1
    - ServerName www.example.com
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.50>
    - - DocumentRoot /www/example2
    - ServerName www.example.org
    -
    - </VirtualHost> -

    - -

    <VirtualHost> ¥ǥ£¥쥯¥ƥ£¥֤Τɤì¤Ǥâ - »ØÄꤵ¤ì¤Ƥ¤¤ʤ¤¥¢¥ɥ쥹 (Î㤨¤Ð localhost) ¤ϡ¢ - ¼祵¡¼¥Ф¬¤¢¤ì¤Ф½¤³¤˹Ԥ­¤ޤ¹¡£

    - -
    top
    -
    -

    ¥ݡ¼¥ȥ١¼¥¹¤È IP ¥١¼¥¹¤κ®¤¶¤ä¿ - ¥С¼¥Á¥ã¥ë¥ۥ¹¥È

    - -

    ¥µ¡¼¥Хޥ·¥ó¤Ϥ½¤줾¤ì www.example.com ¤È - www.example.org ¤ˤ½¤줾¤ì²ò·褵¤ì¤롢IP ¥¢¥ɥ쥹¤òÆó¤Ä - (172.20.30.40 ¤È 172.20.30.50) »ý¤äƤ¤¤ޤ¹¡£ - ¤ɤÁ¤é¤â¥ݡ¼¥È 80 ¤È 8080 ¤ǥۥ¹¥ȤòÁö¤餻¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - Listen 172.20.30.40:80
    - Listen 172.20.30.40:8080
    - Listen 172.20.30.50:80
    - Listen 172.20.30.50:8080
    -
    - <VirtualHost 172.20.30.40:80>
    - - DocumentRoot /www/example1-80
    - ServerName www.example.com
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40:8080>
    - - DocumentRoot /www/example1-8080
    - ServerName www.example.com
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.50:80>
    - - DocumentRoot /www/example2-80
    - ServerName www.example.org
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.50:8080>
    - - DocumentRoot /www/example2-8080
    - ServerName www.example.org
    -
    - </VirtualHost> -

    - -
    top
    -
    -

    ̾Á°¥١¼¥¹¤È IP ¥١¼¥¹¤򺮤¼¤¿ - ¥С¼¥Á¥ã¥ë¥ۥ¹¥È

    - -

    ¤¤¤¯¤Ĥ«¤Υޥ·¥ó¤ǤÏ̾Á°¥١¼¥¹¤Ρ¢¤½¤Î¾¤ǤÏ IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë - ¥ۥ¹¥Ȥ򤷤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - Listen 80
    -
    - NameVirtualHost 172.20.30.40
    -
    - <VirtualHost 172.20.30.40>
    - - DocumentRoot /www/example1
    - ServerName www.example.com
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40>
    - - DocumentRoot /www/example2
    - ServerName www.example.org
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40>
    - - DocumentRoot /www/example3
    - ServerName www.example3.net
    -
    - </VirtualHost>
    -
    - # IP-based
    - <VirtualHost 172.20.30.50>
    - - DocumentRoot /www/example4
    - ServerName www.example4.edu
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.60>
    - - DocumentRoot /www/example5
    - ServerName www.example5.gov
    -
    - </VirtualHost> -

    - -
    top
    -
    -

    Virtual_host ¤È - mod_proxy ¤òʻÍѤ¹¤ë

    - -

    ¼¡¤ÎÎã¤ϡ¢¥եí¥ó¥È¦¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤǾ¤Υޥ·¥ó¤إץí¥¯¥·¤·¤ޤ¹¡£ - Îã¤ǤÏ 192.168.111.2 ¤Υޥ·¥ó¤ǤϥС¼¥Á¥ã¥ë¥ۥ¹¥È̾¤Ï - Ʊ¤¸̾Á°¤ÇÀßÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£ʣ¿ô¤Υۥ¹¥È̾¤ò°ìÂæ¤Υޥ·¥ó¤˥ץí¥¯¥·¤¹¤ë - ¾ì¹ç¤ϡ¢ProxyPreserveHost On - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäơ¢´õ˾¤Υۥ¹¥È̾¤òÅϤ»¤ë¤褦¤ˤʤê¤ޤ¹¡£ -

    - -

    - <VirtualHost *:*>
    - ProxyPreserveHost On
    - ProxyPass / http://192.168.111.2
    - ProxyPassReverse / http://192.168.111.2/
    - ServerName hostname.example.com
    - </VirtualHost> -

    - -
    top
    -
    -

    _default_ ¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò - »Ȥ¦

    - -

    ¤¹¤٤ƤΥݡ¼¥ȤËÂФ¹¤ë - _default_ ¥С¼¥Á¥ã¥ë¥ۥ¹¥È

    - -

    ̤»ØÄê¤Î IP ¥¢¥ɥ쥹¤ȥݡ¼¥ȡ¢¤Ĥޤ꾤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤË - »Ȥï¤ì¤Ƥ¤¤ʤ¤¥¢¥ɥ쥹¤ȥݡ¼¥ȤÎÁȤ߹ç¤碌¡¢¤ؤΤ¹¤٤ƤÎ¥ꥯ¥¨¥¹¥Ȥò - ¼õ¤±¼è¤ê¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - <VirtualHost _default_:*>
    - - DocumentRoot /www/default
    -
    - </VirtualHost> -

    - -

    ¤³¤Τ褦¤˥磻¥ë¥ɥ«¡¼¥ɤΥݡ¼¥Ȥǥǥե©¥ë¥ȤΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò - »ØÄꤹ¤ë¤ȡ¢¼祵¡¼¥Ф˥ꥯ¥¨¥¹¥Ȥ¬¹Ԥ¯¤ΤòËɤ²¤ޤ¹¡£

    - -

    ¥ǥե©¥ë¥ȤΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÏ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤË - »Ȥï¤ì¤Ƥ¤¤륢¥ɥ쥹¤ȥݡ¼¥ȤÎÁȤËÁ÷¤é¤줿¥ꥯ¥¨¥¹¥Ȥ򰷤¦¤³¤ȤÏ - ¤¢¤ê¤ޤ»¤󡣥ꥯ¥¨¥¹¥Ȥ¬ÉÔÌÀ¤Ê Host: ¥إåÀ¤䤽¤Î - ¥إåÀ¤¬¤ʤ«¤ä¿¤ꤹ¤ë¾ì¹ç¤ϴðËÜ̾Á°¥١¼¥¹¥С¼¥Á¥ã¥ë¥ۥ¹¥È (¤½¤Î - ¥¢¥ɥ쥹¤ȥݡ¼¥ȤÇÀßÄê¥ե¡¥¤¥ëÃæ¤Ǻǽé¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥È) ¤ˤè¤ê - °·¤ï¤ì¤ޤ¹¡£

    - -

    ¤ɤó¤ʥꥯ¥¨¥¹¥ȤǤâ AliasMatch - ¤ä RewriteRule ¤ò»ȤäÆ - ñ°ì¤ξðÊó¥ڡ¼¥¸ (¤䥹¥¯¥ê¥ץÈ) ¤˽񤭴¹¤¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - - -

    °㤦¥ݡ¼¥ȤΤ¿¤á¤Î - _default_ ¥С¼¥Á¥ã¥ë¥ۥ¹¥È

    - -

    °ì¤Ĥá¤ÎÀßÄê¤ȤۤÜƱ¤¸¤Ǥ¹¤¬¡¢¥µ¡¼¥ФÏʣ¿ô¤Υݡ¼¥Ȥò listen ¤·¤Ƥª¤ꡢ - 80 È֥ݡ¼¥ȤËÂФ·¤ÆÆó¤Ĥá¤Î _default_ ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥò - ÀßÄꤷ¤¿¤¤¾ì¹ç¤Ǥ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - <VirtualHost _default_:80>
    - - DocumentRoot /www/default80
    - # ...
    -
    - </VirtualHost>
    -
    - <VirtualHost _default_:*>
    - - DocumentRoot /www/default
    - # ...
    -
    - </VirtualHost> -

    - -

    80 È֥ݡ¼¥ȤΥǥե©¥ë¥ȥС¼¥Á¥ã¥ë¥ۥ¹¥È (¥磻¥ë¥ɥ«¡¼¥ɥݡ¼¥ȤÎ - ¥ǥե©¥ë¥ȥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥè¤ê¤âÁ°¤˽񤫤ì¤Ƥ¤¤ʤ±¤ì¤Ð¤ʤê¤ޤ»¤ó) ¤Ï - ̤»ØÄê¤Î IP ¥¢¥ɥ쥹¤ËÁ÷¤é¤줿¤¹¤٤ƤΥꥯ¥¨¥¹¥Ȥ򰷤¤¤ޤ¹¡£ - ¼祵¡¼¥Фϥꥯ¥¨¥¹¥Ȥ򰷤¤¤ޤ»¤ó¡£

    - - -

    °ì¤ĤΥݡ¼¥ȤËÂФ·¤ƤÀ¤±¤Î - _default_ ¥С¼¥Á¥ã¥ë¥ۥ¹¥È

    - -

    80 È֥ݡ¼¥Ȥˤϥǥե©¥ë¥ȤΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬ɬÍפǡ¢¾¤Î - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥϥǥե©¥ë¥Ȥ¬ɬÍפʤ¤¾ì¹ç¤Ǥ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - <VirtualHost _default_:80>
    - DocumentRoot /www/default
    - ...
    - </VirtualHost> -

    - -

    80 È֥ݡ¼¥ȤؤΥ¢¥ɥ쥹̤»ØÄê¤Υꥯ¥¨¥¹¥Ȥϥǥե©¥ë¥ȤΥС¼¥Á¥ã¥ë - ¥ۥ¹¥Ȥ«¤éÁ÷¤é¤ì¤ޤ¹¡£¾¤Î̤»ØÄê¤Υ¢¥ɥ쥹¤ȥݡ¼¥ȤؤΥꥯ¥¨¥¹¥ȤÏ - ¼祵¡¼¥Ф«¤éÁ÷¤é¤ì¤ޤ¹¡£

    - - -
    top
    -
    -

    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ«¤é IP ¥١¼¥¹¤Î - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥ˰ܹԤ¹¤ë

    - -

    ¥ۥ¹¥È̾¤¬̾Á° www.example.org ¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥È - (̾Á°¥١¼¥¹¤ÎÎã¤Î 2 ÈÖÌܤÎÀßÄê) ¤¬ÀìÍѤÎ IP ¥¢¥ɥ쥹¤ò - ÆÀ¤¿¤Ȥ·¤ޤ¹¡£̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤθŤ¤ IP ¥¢¥ɥ쥹¤ò - ¥­¥ã¥å·¥夷¤Ƥ¤¤ë¥͡¼¥ॵ¡¼¥Фä¥ץí¥­¥·¤Τ¿¤á¤˰ܹԴü´ÖÃæ¤ÏξÊý¤Î - ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤòÄ󶡤·¤¿¤¤¤Ȥ·¤ޤ¹¡£

    - -

    Åú¤ϴÊñ¤Ǥ¹¡£ñ¤˿·¤·¤¤ IP ¥¢¥ɥ쥹 (172.20.30.50) - ¤ò VirtualHost ¥ǥ£¥쥯¥ƥ£¥֤ËÄɲ乤뤳¤ȤÇ - ¤Ǥ­¤ޤ¹¡£

    - -

    ¥µ¡¼¥ÐÀßÄê

    - - - Listen 80
    - ServerName www.example.com
    - DocumentRoot /www/example1
    -
    - NameVirtualHost 172.20.30.40
    -
    - <VirtualHost 172.20.30.40 172.20.30.50>
    - - DocumentRoot /www/example2
    - ServerName www.example.org
    - # ...
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40>
    - - DocumentRoot /www/example3
    - ServerName www.example.net
    - ServerAlias *.example.net
    - # ...
    -
    - </VirtualHost> -

    - -

    ¤³¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤϿ·¤·¤¤¥¢¥ɥ쥹 (IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤȤ·¤Æ) - ¤ȸŤ¤¥¢¥ɥ쥹(̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤȤ·¤Æ) ¤ÎξÊý¤«¤é - ¥¢¥¯¥»¥¹¤Ǥ­¤ޤ¹¡£

    - -
    top
    -
    -

    ServerPath ¥ǥ£¥쥯¥ƥ£¥֤ò - »Ȥ¦

    - -

    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬Æó¤Ĥ¢¤륵¡¼¥Ф¬¤¢¤ë¤Ȥ·¤ޤ¹¡£ - Àµ¤·¤¤¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤòÆÀ¤뤿¤á¤ˤϥ¯¥饤¥¢¥ó¥ȤÏÀµ¤·¤¤ - Host: ¥إåÀ¤òÁ÷¤é¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - ¸Ť¤ HTTP/1.0 ¤Ϥ½¤Τ褦¤ʥإåÀ¤òÁ÷¤é¤ʤ¤¤Τǡ¢Apache ¤ϥ¯¥饤¥¢¥ó¥Ȥ¬ - ¤ɤΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò°տޤ·¤¿¤Τ«¤µ¤äѤê¤狼¤ê¤ޤ»¤ó - (¤ʤΤǡ¢¼ç¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥǥꥯ¥¨¥¹¥Ȥ򰷤¤¤ޤ¹)¡£ - ²Äǽ¤ʸ¤ê¤β¼°̸ߴ¹À­¤òÆÀ¤뤿¤ᡢ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÎ - URL ÀÜƬ¼­¤ؤΥê¥󥯤ν񤫤줿¥ڡ¼¥¸¤òÊ֤¹¡¢ - ¼ç¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬ºîÀ®¤µ¤ì¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÎÀßÄê

    - - - NameVirtualHost 172.20.30.40
    -
    - <VirtualHost 172.20.30.40>
    - - # primary vhost
    - DocumentRoot /www/subdomain
    - RewriteEngine On
    - RewriteRule ^/.* /www/subdomain/index.html
    - # ...
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40>
    - DocumentRoot /www/subdomain/sub1
    - - ServerName www.sub1.domain.tld
    - ServerPath /sub1/
    - RewriteEngine On
    - RewriteRule ^(/sub1/.*) /www/subdomain$1
    - # ...
    -
    - </VirtualHost>
    -
    - <VirtualHost 172.20.30.40>
    - - DocumentRoot /www/subdomain/sub2
    - ServerName www.sub2.domain.tld
    - ServerPath /sub2/
    - RewriteEngine On
    - RewriteRule ^(/sub2/.*) /www/subdomain$1
    - # ...
    -
    - </VirtualHost> -

    - -

    ServerPath ¥ǥ£¥쥯¥ƥ£¥֤ÎÀßÄê¤Ë - ¤è¤ꡢURL http://www.sub1.domain.tld/sub1/ ¤Ï - ¾ï¤Ë sub1-vhost ¤ˤè¤갷¤ï¤ì¤ޤ¹¡£URL - http://www.sub1.domain.tld/ ¤ؤΥꥯ¥¨¥¹¥ȤÏ - ¥¯¥饤¥¢¥ó¥Ȥ¬Àµ¤·¤¤ Host: ¥إåÀ¤òÁ÷¤ä¿¤Ȥ­¤ˤΤß - sub1-vhost ¤«¤éÁ÷¤é¤ì¤ޤ¹¡£Host: ¥إåÀ¤¬¤ʤ±¤ì¤Ð - ¥¯¥饤¥¢¥ó¥Ȥϼç¥ۥ¹¥ȤξðÊó¥ڡ¼¥¸¤òÆÀ¤ޤ¹¡£

    - -

    °ì¤Ĵñ̯¤Êưºî¤򤹤ëÅÀ¤¬¤¢¤뤳¤ȤϳФ¨¤Ƥª¤¤¤Ƥ¯¤À¤µ¤¤¡£ - http://www.sub2.domain.tld/sub1/ ¤ؤΥꥯ¥¨¥¹¥Ȥâ - Host: ¥إåÀ¤¬¤ʤ±¤ì¤Ð sub1-vhost ¤ˤè¤갷¤ï¤ì¤ޤ¹¡£

    - -

    Àµ¤·¤¤ Host: ¥إåÀ¤òÁ÷¤ä¿¥¯¥饤¥¢¥ó¥ȤϤɤÁ¤é¤Î - URL¡¢¤ĤޤêÀÜƬ¼­¤¬¤¢¤ëÊý¤â̵¤¤Êý¤â»Ȥ¨¤ë¤褦¤Ë - RewriteRule ¥ǥ£¥쥯¥ƥ£¥֤¬ - »Ȥï¤ì¤Ƥ¤¤ޤ¹¡£

    -
    -
    -

    Available Languages:  en  | - fr  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/vhosts/examples.html.ja.utf8 b/docs/manual/vhosts/examples.html.ja.utf8 new file mode 100644 index 00000000000..e2376dc41e9 --- /dev/null +++ b/docs/manual/vhosts/examples.html.ja.utf8 @@ -0,0 +1,682 @@ + + + + + +バーチャルホストの例 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    バーチャルホストの例

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + +

    この文書は、バーチャルホストの設定の際に + よくある質問に答えるものです。想定している対象は 名前ベース や IP ベース のバーチャルホストを使って + 一つのサーバで複数のウェブサイトを運用している状況です。 +

    + +
    + +
    top
    +
    +

    一つの IP アドレスでいくつかの名前ベースの + ウェブサイトを実行する

    + +

    サーバは IP アドレスを一つ割り当てられていて、DNS でマシンに + 複数の名前 (CNAME) が指定されています。このマシンで + www.example.com と www.example.org + のためのウェブサーバを実行させたいとします。

    + +

    注

    + Apache サーバの設定でバーチャルホストの設定をしただけで、 + 知らない間にそのホスト名に対応する DNS のエントリが + 作成されたりはしません。そのサーバの IP アドレスに解決される + ように DNS に名前を登録しなければなりません。 + そうでないと誰もあなたのウェブサイトを見ることはできません。 + ローカルでのテストのために hosts ファイルに + エントリを追加することもできますが、この場合はその + hosts エントリのあるマシンからしか動作しません。

    +
    + +

    サーバ設定

    + + + # Ensure that Apache listens on port 80
    + Listen 80
    +
    + # Listen for virtual host requests on all IP addresses
    + NameVirtualHost *:80
    +
    + <VirtualHost *:80>
    + + DocumentRoot /www/example1
    + ServerName www.example.com
    +
    + # Other directives here
    +
    +
    + </VirtualHost>
    +
    + <VirtualHost *:80>
    + + DocumentRoot /www/example2
    + ServerName www.example.org
    +
    + # Other directives here
    +
    +
    + </VirtualHost> +

    + +

    アスタリスクはすべてのアドレスにマッチしますので、主サーバは + リクエストを扱いません。www.example.com は + 最初にあるため、優先順位は一番高くなり、default もしくは + primary のサーバと考えることができます。つまり、リクエストが + どの ServerName ディレクティブにもマッチしない場合、 + 一番最初の VirtualHost により扱われます。

    + +

    注

    + +

    * をシステムの実際の IP アドレスに置き換える + こともできます。その場合は VirtualHost の引数は + NameVirtualHost の引数と同じにしなければなりません + :

    + +

    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40>
    + # etc ... +

    + +

    しかし、IP アドレスが予測不可能なシステム + ――例えばプロバイダから動的に IP アドレスを取得して何らかの + ダイナミック DNS を使っている場合など――においては、* + 指定はさらに便利です。* はすべての IP アドレスに + マッチしますので、この設定にしておけば IP アドレスが変更されても + 設定変更せずに動作します。

    +
    + +

    名前ベースのバーチャルホスティングではほぼすべての状況で、 + 上記の設定で希望の設定になっていることでしょう。 + 実際この設定が動作しないのは、IP アドレスやポートの違いによって + 違うコンテンツを送るときだけです。

    + +
    top
    +
    +

    複数の IP アドレスのあるホストで名前ベースの + ホスティングを行なう

    + +
    +

    注

    ここで説明されている方法は IP アドレスが + 何個あっても同様にできます。

    +
    + +

    サーバには二つ IP アドレスがついています。一つ目 + (172.20.30.40) では主サーバ + server.domain.com を扱い、もう一方 + (172.20.30.50) では二つかそれ以上の数の + バーチャルホストを扱います。

    + +

    サーバの設定

    + + + Listen 80
    +
    + # This is the "main" server running on 172.20.30.40
    + ServerName server.domain.com
    + DocumentRoot /www/mainserver
    +
    + # This is the other address
    + NameVirtualHost 172.20.30.50
    +
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /www/example1
    + ServerName www.example.com
    +
    + # Other directives here ...
    +
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /www/example2
    + ServerName www.example.org
    +
    + # Other directives here ...
    +
    +
    + </VirtualHost> +

    + +

    172.20.30.50 以外のアドレスへのリクエストは主サーバ + が扱います。172.20.30.50 への、未知のホスト名または + Host: ヘッダなしのリクエストは www.example.com + が扱います。

    + +
    top
    +
    +

    違う IP アドレス (例えば、内部と外部アドレス) + で同じコンテンツを送る

    + +

    サーバマシンは IP アドレスを二つ (192.168.1.1 + と 172.20.30.40) 持っています。このマシンは内部 + (イントラネット) と 外部 (インターネット) のネットワークの間に + あります。server.example.com はネットワークの外からは + 外部アドレス (172.20.30.40) として解決されますが、 + ネットワークの中からは内部アドレス (192.168.1.1) + として解決されます。

    + +

    VirtualHost 一つだけでサーバが内部のリクエストと + 外部のリクエストの両方に同じコンテンツで応答するようにできます。

    + +

    サーバの設定

    + + + NameVirtualHost 192.168.1.1
    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 192.168.1.1 172.20.30.40>
    + + DocumentRoot /www/server1
    + ServerName server.example.com
    + ServerAlias server
    +
    + </VirtualHost> +

    + +

    これでどちらのネットワークからのリクエストも同じ VirtualHost + で扱われるようになります。

    + +

    注:

    内部ネットワークでは完全なホスト名の + server.example.com の代わりに、単に server + を使うことができます。

    + +

    上の例では、IP アドレスのリストを、すべてのアドレスに + 同じコンテンツで応答する * に置き換えられます。

    +
    + +
    top
    +
    +

    違うポートで違うサイトを運営する

    + +

    同じ IP に複数のドメインがあり、さらに複数のポートを使って + リクエストを扱いたいときがあります。"NameVirtualHost" タグの中で + ポートを定義することで、これを動作させられます。 + NameVirtualHost name:port 無しや Listen ディレクティブで + <VirtualHost name:port> を使おうとしても、その設定は動作しません。

    + +

    サーバの設定

    + + + Listen 80
    + Listen 8080
    +
    + NameVirtualHost 172.20.30.40:80
    + NameVirtualHost 172.20.30.40:8080
    +
    + <VirtualHost 172.20.30.40:80>
    + + ServerName www.example.com
    + DocumentRoot /www/domain-80
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + ServerName www.example.com
    + DocumentRoot /www/domain-8080
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:80>
    + + ServerName www.example.org
    + DocumentRoot /www/otherdomain-80
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + ServerName www.example.org
    + DocumentRoot /www/otherdomain-8080
    +
    + </VirtualHost> +

    + +
    top
    +
    +

    IP ベースのバーチャルホスティング

    + +

    サーバは www.example.com と www.example.org + にそれぞれ解決される、二つの IP アドレス (172.20.30.40 と + 172.20.30.50) があります。

    + +

    サーバの設定

    + + + Listen 80
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /www/example1
    + ServerName www.example.com
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /www/example2
    + ServerName www.example.org
    +
    + </VirtualHost> +

    + +

    <VirtualHost> ディレクティブのどれでも + 指定されていないアドレス (例えば localhost) は、 + 主サーバがあればそこに行きます。

    + +
    top
    +
    +

    ポートベースと IP ベースの混ざった + バーチャルホスト

    + +

    サーバマシンはそれぞれ www.example.com と + www.example.org にそれぞれ解決される、IP アドレスを二つ + (172.20.30.40 と 172.20.30.50) 持っています。 + どちらもポート 80 と 8080 でホストを走らせます。

    + +

    サーバの設定

    + + + Listen 172.20.30.40:80
    + Listen 172.20.30.40:8080
    + Listen 172.20.30.50:80
    + Listen 172.20.30.50:8080
    +
    + <VirtualHost 172.20.30.40:80>
    + + DocumentRoot /www/example1-80
    + ServerName www.example.com
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + DocumentRoot /www/example1-8080
    + ServerName www.example.com
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50:80>
    + + DocumentRoot /www/example2-80
    + ServerName www.example.org
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50:8080>
    + + DocumentRoot /www/example2-8080
    + ServerName www.example.org
    +
    + </VirtualHost> +

    + +
    top
    +
    +

    名前ベースと IP ベースを混ぜた + バーチャルホスト

    + +

    いくつかのマシンでは名前ベースの、その他では IP ベースのバーチャル + ホストをします。

    + +

    サーバの設定

    + + + Listen 80
    +
    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /www/example1
    + ServerName www.example.com
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /www/example2
    + ServerName www.example.org
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /www/example3
    + ServerName www.example3.net
    +
    + </VirtualHost>
    +
    + # IP-based
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /www/example4
    + ServerName www.example4.edu
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.60>
    + + DocumentRoot /www/example5
    + ServerName www.example5.gov
    +
    + </VirtualHost> +

    + +
    top
    +
    +

    Virtual_host と + mod_proxy を併用する

    + +

    次の例は、フロント側のバーチャルホストで他のマシンへプロクシします。 + 例では 192.168.111.2 のマシンではバーチャルホスト名は + 同じ名前で設定されています。複数のホスト名を一台のマシンにプロクシする + 場合は、ProxyPreserveHost On + ディレクティブを使って、希望のホスト名を渡せるようになります。 +

    + +

    + <VirtualHost *:*>
    + ProxyPreserveHost On
    + ProxyPass / http://192.168.111.2
    + ProxyPassReverse / http://192.168.111.2/
    + ServerName hostname.example.com
    + </VirtualHost> +

    + +
    top
    +
    +

    _default_ のバーチャルホストを + 使う

    + +

    すべてのポートに対する + _default_ バーチャルホスト

    + +

    未指定の IP アドレスとポート、つまり他のバーチャルホストに + 使われていないアドレスとポートの組み合わせ、へのすべてのリクエストを + 受け取ります。

    + +

    サーバの設定

    + + + <VirtualHost _default_:*>
    + + DocumentRoot /www/default
    +
    + </VirtualHost> +

    + +

    このようにワイルドカードのポートでデフォルトのバーチャルホストを + 指定すると、主サーバにリクエストが行くのを防げます。

    + +

    デフォルトのバーチャルホストは名前ベースのバーチャルホストに + 使われているアドレスとポートの組に送られたリクエストを扱うことは + ありません。リクエストが不明な Host: ヘッダやその + ヘッダがなかったりする場合は基本名前ベースバーチャルホスト (その + アドレスとポートで設定ファイル中で最初のバーチャルホスト) により + 扱われます。

    + +

    どんなリクエストでも AliasMatch + や RewriteRule を使って + 単一の情報ページ (やスクリプト) に書き換えることができます。

    + + +

    違うポートのための + _default_ バーチャルホスト

    + +

    一つめの設定とほぼ同じですが、サーバは複数のポートを listen しており、 + 80 番ポートに対して二つめの _default_ バーチャルホストを + 設定したい場合です。

    + +

    サーバの設定

    + + + <VirtualHost _default_:80>
    + + DocumentRoot /www/default80
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost _default_:*>
    + + DocumentRoot /www/default
    + # ...
    +
    + </VirtualHost> +

    + +

    80 番ポートのデフォルトバーチャルホスト (ワイルドカードポートの + デフォルトバーチャルホストよりも前に書かれていなければなりません) は + 未指定の IP アドレスに送られたすべてのリクエストを扱います。 + 主サーバはリクエストを扱いません。

    + + +

    一つのポートに対してだけの + _default_ バーチャルホスト

    + +

    80 番ポートにはデフォルトのバーチャルホストが必要で、他の + バーチャルホストはデフォルトが必要ない場合です。

    + +

    サーバの設定

    + + + <VirtualHost _default_:80>
    + DocumentRoot /www/default
    + ...
    + </VirtualHost> +

    + +

    80 番ポートへのアドレス未指定のリクエストはデフォルトのバーチャル + ホストから送られます。他の未指定のアドレスとポートへのリクエストは + 主サーバから送られます。

    + + +
    top
    +
    +

    名前ベースのバーチャルホストから IP ベースの + バーチャルホストに移行する

    + +

    ホスト名が名前 www.example.org のバーチャルホスト + (名前ベースの例の 2 番目の設定) が専用の IP アドレスを + 得たとします。名前ベースのバーチャルホストの古い IP アドレスを + キャッシュしているネームサーバやプロキシのために移行期間中は両方の + バーチャルホストを提供したいとします。

    + +

    答は簡単です。単に新しい IP アドレス (172.20.30.50) + を VirtualHost ディレクティブに追加することで + できます。

    + +

    サーバ設定

    + + + Listen 80
    + ServerName www.example.com
    + DocumentRoot /www/example1
    +
    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40 172.20.30.50>
    + + DocumentRoot /www/example2
    + ServerName www.example.org
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /www/example3
    + ServerName www.example.net
    + ServerAlias *.example.net
    + # ...
    +
    + </VirtualHost> +

    + +

    このバーチャルホストは新しいアドレス (IP ベースのバーチャルホストとして) + と古いアドレス(名前ベースのバーチャルホストとして) の両方から + アクセスできます。

    + +
    top
    +
    +

    ServerPath ディレクティブを + 使う

    + +

    名前ベースのバーチャルホストが二つあるサーバがあるとします。 + 正しいバーチャルホストを得るためにはクライアントは正しい + Host: ヘッダを送らなければなりません。 + 古い HTTP/1.0 はそのようなヘッダを送らないので、Apache はクライアントが + どのバーチャルホストを意図したのかさっぱりわかりません + (なので、主バーチャルホストでリクエストを扱います)。 + 可能な限りの下位互換性を得るため、名前ベースのバーチャルホストの + URL 接頭辞へのリンクの書かれたページを返す、 + 主バーチャルホストが作成されます。

    + +

    サーバの設定

    + + + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40>
    + + # primary vhost
    + DocumentRoot /www/subdomain
    + RewriteEngine On
    + RewriteRule ^/.* /www/subdomain/index.html
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + DocumentRoot /www/subdomain/sub1
    + + ServerName www.sub1.domain.tld
    + ServerPath /sub1/
    + RewriteEngine On
    + RewriteRule ^(/sub1/.*) /www/subdomain$1
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /www/subdomain/sub2
    + ServerName www.sub2.domain.tld
    + ServerPath /sub2/
    + RewriteEngine On
    + RewriteRule ^(/sub2/.*) /www/subdomain$1
    + # ...
    +
    + </VirtualHost> +

    + +

    ServerPath ディレクティブの設定に + より、URL http://www.sub1.domain.tld/sub1/ は + 常に sub1-vhost により扱われます。URL + http://www.sub1.domain.tld/ へのリクエストは + クライアントが正しい Host: ヘッダを送ったときにのみ + sub1-vhost から送られます。Host: ヘッダがなければ + クライアントは主ホストの情報ページを得ます。

    + +

    一つ奇妙な動作をする点があることは覚えておいてください。 + http://www.sub2.domain.tld/sub1/ へのリクエストも + Host: ヘッダがなければ sub1-vhost により扱われます。

    + +

    正しい Host: ヘッダを送ったクライアントはどちらの + URL、つまり接頭辞がある方も無い方も使えるように + RewriteRule ディレクティブが + 使われています。

    +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/examples.html.ko.euc-kr b/docs/manual/vhosts/examples.html.ko.euc-kr index 0a70c921309..6a1d0b4f129 100644 --- a/docs/manual/vhosts/examples.html.ko.euc-kr +++ b/docs/manual/vhosts/examples.html.ko.euc-kr @@ -1,27 +1,35 @@ - -°¡»óȣ½ºƮ ¿¹ - Apache HTTP Server +°¡»óȣ½ºƮ ¿¹ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    °¡»óȣ½ºƮ ¿¹

    °¡´ÉÇÑ ¾ð¾î:  en  |  fr  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -53,7 +61,7 @@ °¡»óȣ½ºƮ·Î ¿űâ±â
  • ServerPath Áö½þî »ç¿ëÇϱâ
  • -
    +
    top
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/examples.html.tr.utf8 b/docs/manual/vhosts/examples.html.tr.utf8 new file mode 100644 index 00000000000..325baa10f29 --- /dev/null +++ b/docs/manual/vhosts/examples.html.tr.utf8 @@ -0,0 +1,673 @@ + + + + + +Sanal Konak Örnekleri - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Sanal Konak Örnekleri

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + + +

    Bu belgede sanal konaklar ile ilgili + karşılaşılması olası tüm senaryolara yer verilmeye çalışılmıştır. + Buradaki senaryolar, tek bir sunucu üzerinde isme dayalı veya IP’ye dayalı sanal + konaklar aracılığıyla çok sayıda sitenin sunumu ile ilgilidir. +

    + +
    + +
    top
    +
    +

    Tek bir IP ile çok sayıda isme dayalı site

    + + +

    Bu örnekte, makinenizin tek bir IP adresine sahip olduğunu ve bu + makineye mesela.dom ve faraza.dom şeklinde + (DNS A kayıtları sayesinde) farklı isimlerle erişilebildiğini + varsayalım.

    + +

    Bilginize

    Apache sunucusu üzerinde sanal konakları + yapılandırmakla bu konak isimleri için sihirli bir şekilde DNS + kayıtlarının da oluşturulmasını sağlamış olmazsınız. Bu isimler için + ilgili DNS kayıtlarında sizin IP adresinize çözümlenen A kayıtlarının + olması gerekir, yoksa sitenize kimse erişemez. Sitelere erişimi yerel + olarak denemek isterseniz, bu girdileri hosts dosyanıza + yazabilirsiniz. Fakat bu sadece sizin makinenizde çalışır. Yerel + ağınızdaki her makinenin hosts dosyasına bu girdileri + yazarak yerel ağdan erişimi bu yolla sağlayabilirsiniz ama dış ağdan + gelecek ziyaretçileriniz için DNS kayıtlarınızın olması şarttır.

    +
    + +

    Sunucu yapılandırması

    + + # Apache’nin 80. portu dinlediğinden emin olalım
    + Listen 80
    +
    + # Sanal konak istekleri için bütün IP adresleri dinlensin.
    + NameVirtualHost *:80
    +
    + <VirtualHost *:80>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost>
    +
    + <VirtualHost *:80>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost> +

    + +

    Yıldız imleri tüm adreslerle eşleşmeyi sağladığından ana sunucu + (yapılandırma dosyası genelindeki yapılandırma - sunucu geneli) + erişilebilir olmayacaktır. mesela.dom yapılandırma + dosyasındaki ilk sanal konak olduğundan en yüksek önceliğe sahiptir ve + öntanımlı veya baskın site olarak davranır. + Yani, hiçbir ServerName yönergesi ile eşleşmeyen bir istek + alındığında bu istek ilk VirtualHost yapılandırması ile + karşılanır.

    + +

    Bilginize

    +

    İsterseniz, * yerine kendi IP adresinizi yazabilirsiniz. + Ancak bu durumda bunu hem VirtualHost hem de + NameVirtualHost için yapmalısınız:

    + +

    + NameVirtualHost 192.168.1.22
    +
    + <VirtualHost 192.168.1.22>
    + # vs. ... +

    + +

    Bununla birlikte, IP adresinin önceden kestirilebilir olmadığı + sistemlerde, örneğin, hizmet sağlayıcınıza çevirmeli ağ ile bağlanıyor + ve onun rasgele atadığı bir IP adresi için bir devingen DNS çözümü + kullanıyorsanız, IP adresi değil de * kullanmak daha çok + işinize yarayacaktır. Yıldız imi her IP adresi ile eşleşeceğinden IP + adresiniz değişse bile bu yapılandırmayı değiştirmeden + kullanabilirsiniz.

    +
    + +

    Yukarıdaki yapılandırmayı hemen hemen tüm isme dayalı sanal konaklar + için kullanabilirsiniz. Bu yapılandırmanın çalışmayacağı tek durum, + farklı içerikleri farklı IP adreslerinden sunma gereğiyle + karşılaşmaktır.

    + +
    top
    +
    +

    IP adresleri farklı çok sayıda isme dayalı site

    + + +

    Bilginize

    +

    Burada açıklanan teknikler istendiği kadar çok IP adresine + genişletilebilir.

    +
    + +

    Sunucunun iki IP adresi olsun. Birinden "ana sunucu" + (192.168.1.2) diğerinden mesela.dom + 192.168.2.2 hizmet versin. Bu arada başka sanal konakları + da sunabilelim istiyoruz.

    + +

    Sunucu yapılandırması

    + + Listen 80
    +
    + # Bu, 192.168.1.2 adresindeki "ana sunucu" olsun
    + ServerName sunucu.faraza.dom
    + DocumentRoot /siteler/anasunucu
    +
    + # Burası da diğer adres için
    + NameVirtualHost 192.168.2.2
    +
    + <VirtualHost 192.168.2.2>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost>
    +
    + <VirtualHost 192.168.2.2>
    + + DocumentRoot /siteler/falanca
    + ServerName falanca.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost> +

    + +

    192.168.2.2 adresinden gelmeyen tüm isteklere ana sunucu + (sunucu.faraza.dom), 192.168.2.2 adresinden + gelen sunucu ismi belirtmeyenler ile Host: başlığı + belirtmeyenlere ise mesela.dom hizmet verecektir.

    + +
    top
    +
    +

    Aynı içeriği farklı IP adresleriyle sunmak + (örn., dahili ve harici ağlara)

    + +

    Sunucu makine iki IP adresine sahip olsun. Biri iç ağa + (192.168.1.1) diğeri dış ağa (172.20.30.40) + bakıyor olsun. sunucu.mesela.dom ismi dış ağda dış ağa + bakan IP’ye, iç ağda ise iç ağa bakan IP’ye çözümleniyor olsun.

    + +

    Bu durumda, sunucu hem iç hem de dış ağdan gelen isteklere aynı içerik, + dolayısıyla aynı VirtualHost bölümü ile hizmet + verebilir.

    + +

    Sunucu yapılandırması

    + + NameVirtualHost 192.168.1.1
    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 192.168.1.1 172.20.30.40>
    + + DocumentRoot /siteler/sunucu
    + ServerName sunucu.mesela.dom
    + ServerAlias sunucu
    +
    + </VirtualHost> +

    + +

    Artık, hem iç hem de dış ağdan gelen isteklere aynı + VirtualHost bölümünden hizmet sunulacaktır.

    + +

    Bilginize:

    +

    İç ağdan istek yapan biri, tam nitelenmiş konak ismi + sunucu.mesela.dom yerine makine ismini + (sunucu) kullanabilir (ServerAlias sunucu + satırına dikkat).

    + +

    Ayrıca, yukarıdaki gibi iki ayrı IP adresi belirtmek yerine sadece + * belirtmekle sunucunun tüm IP adreslerine yine aynı + içerikle yanıt vereceğine dikkat ediniz.

    +
    + +
    top
    +
    +

    Farklı portlarla farklı siteler

    + +

    Aynı IP adresine sahip çok sayıda konak ismine sahip olduğunuzu ve + bunların bazılarının farklı portları kullanmasını istediğinizi + varsayalım. NameVirtualHost + yönergesi ile port tanımlamak suretiyle bunu mümkün kılabilirsiniz. + NameVirtualHost isim:port tanımı yapmadan + veya bunun yerine Listen + kullanarak VirtualHost isim:port kullanmaya + kalkışırsanız, yapılandırmanız çalışmayacaktır.

    + +

    Sunucu yapılandırması

    + + Listen 80
    + Listen 8080
    +
    + NameVirtualHost 172.20.30.40:80
    + NameVirtualHost 172.20.30.40:8080
    +
    + <VirtualHost 172.20.30.40:80>
    + + ServerName mesela.dom
    + DocumentRoot /siteler/mesela-80
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + ServerName mesela.dom
    + DocumentRoot /siteler/mesela-8080
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:80>
    + + ServerName faraza.dom
    + DocumentRoot /siteler/faraza-80
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + ServerName faraza.dom
    + DocumentRoot /siteler/faraza-8080
    +
    + </VirtualHost> +

    + +
    top
    +
    +

    IP’ye dayalı sanal konaklar

    + +

    Sunucu makinenin, biri mesela.dom adından çözümlenen + 172.20.30.40, diğeri faraza.dom adından + çözümlenen 172.20.30.50 diye iki IP adresi olsun.

    + +

    Sunucu yapılandırması

    + + Listen 80
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    +
    + </VirtualHost> +

    + +

    <VirtualHost> yönergelerinde belirtilmeyen + adreslerle yapılan isteklere (örneğin, localhost) sunucu + genelindeki yapılandırma ile ana sunucu yanıt verecektir.

    +
    top
    +
    +

    Hem IP’ye hem de porta dayalı sanal konaklar

    + + +

    Sunucu makinenin, biri mesela.dom adından çözümlenen + 172.20.30.40, diğeri faraza.dom adından + çözümlenen 172.20.30.50 diye iki IP adresi olsun ve iki + konak da hem 80 hem de 8080 portlarında çalışsınlar istiyoruz.

    + +

    Sunucu yapılandırması

    + + Listen 172.20.30.40:80
    + Listen 172.20.30.40:8080
    + Listen 172.20.30.50:80
    + Listen 172.20.30.50:8080
    +
    + <VirtualHost 172.20.30.40:80>
    + + DocumentRoot /siteler/mesela-80
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + DocumentRoot /siteler/mesela-8080
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50:80>
    + + DocumentRoot /siteler/faraza-80
    + ServerName faraza.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50:8080>
    + + DocumentRoot /siteler/faraza-8080
    + ServerName faraza.dom
    +
    + </VirtualHost> +

    + +
    top
    +
    +

    Hem isme hem de IP‘ye dayalı sanal konaklar

    + + +

    Bazı adreslerde isme dayalı, bazılarında da IP’ye dayalı sanal konaklar + çalışsın istersek...

    + +

    Sunucu yapılandırması

    + + Listen 80
    +
    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/falanca
    + ServerName falanca.dom
    +
    + </VirtualHost>
    +
    + # IP-based
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /siteler/filanca
    + ServerName filanca.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.60>
    + + DocumentRoot /siteler/fesmekan
    + ServerName fesmekan.dom
    +
    + </VirtualHost> +

    + +
    top
    +
    +

    Virtualhost ve + mod_proxy’nin birlikte kullanımı

    + +

    Bu örnekte bir arabirimi dışarıya bakan bir makinede, başka bir + makinede çalışan bir sunucuya sanal konak olarak, bir vekil sunucu + çalıştırmak istediğimizi varsayıyoruz. 192.168.111.2 IP + adresli bir makinede aynı isimde bir sanal konak yapılandırılmış olsun. + Çok sayıda konak ismi için vekil olarak tek bir makine kullandığımızdan + ve konak isminin de aktarılmasını arzuladığımızdan ProxyPreserveHost On yönergesini + kullandık.

    + +

    + <VirtualHost *:*>
    + + ProxyPreserveHost On
    + ProxyPass / http://192.168.111.2/
    + ProxyPassReverse / http://192.168.111.2/
    + ServerName konak.mesela.dom
    +
    + </VirtualHost> +

    + +
    top
    +
    +

    _default_ sanal konakları

    + +

    Tüm portlar için _default_

    + + +

    Bir IP adresi ve port belirtilmeyen veya hiçbir sanal konağın hiçbir + adresi/portu ile eşleşmeyen istekleri yakalamak istersek...

    + +

    Sunucu yapılandırması

    + + + <VirtualHost _default_:*>
    + + DocumentRoot /siteler/default
    +
    + </VirtualHost> +

    + +

    Bütün portlarla eşleşen böyle bir öntanımlı sanal konağın kullanımı + hiçbir isteğin ana sunucuya gitmemesi sonucunu doğurur.

    + +

    Bir öntanımlı sanal konak, asla, isme dayalı sanal konaklar için + kullanılmış bir adrese/porta gönderilmiş bir isteğe hizmet sunmaz. Eğer + istek bilinmeyen bir Host: başlığına sahipse veya hiç + Host: başlığı içermiyorsa isteğe daima ilk (yapılandırma + dosyasındaki ilk) isme dayalı sanal konak hizmet sunar.

    + +

    Her isteği tek bir bilgilendirme sayfasına (veya betiğe) yönlendirmek + isterseniz AliasMatch veya + RewriteRule yönergesini + kullanabilirsiniz.

    + + +

    Farklı portlardan _default_

    + + +

    Önceki yapılandırmaya ek olarak 80. portta ayrı bir + _default_ sanal konağı kullanmak istersek...

    + +

    Sunucu yapılandırması

    + + + <VirtualHost _default_:80>
    + + DocumentRoot /siteler/default80
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost _default_:*>
    + + DocumentRoot /siteler/default
    + # ...
    +
    + </VirtualHost> +

    + +

    80. porttan hizmet sunan _default_ sanal konağı IP adresi + belirtilmeyen tüm istekleri yakalar, bunu yapabilmesi için yapılandırma + dosyasında tüm portlara hizmet sunan benzerinden önce yer almalıdır. Bu + durumda ana sunucu hiçbir isteğe yanıt vermeyecektir.

    + + +

    Tek portluk _default_

    + + +

    _default_ sanal konağının sadece 80. porttan hizmet + sunmasını istersek...

    + +

    Sunucu yapılandırması

    + + + <VirtualHost _default_:80>
    + DocumentRoot /siteler/default
    + ...
    + </VirtualHost> +

    + +

    80. porttan gelen IP adresi belirtilmemiş isteklere + _default_ sanal konağı, diğer portlardan gelen adres + belirtilmemiş isteklere ise ana sunucu hizmet verecektir.

    + + +
    top
    +
    +

    Bir isme dayalı sanal konağı bir IP’ye dayalı + sanal konakla yansılamak

    + +

    İsme dayalı sanal konak örneklerinin 2. sinde adı + geçen falanca.dom bu örnekte kendi IP adresinden hizmet + veriyor olsun. İsme dayalı sanal konağı eski IP adresiyle kaydetmiş + vekiller ve isim sunucularından kaynaklanacak olası sorunlardan kaçınmak + için yansılama sırasında sanal konağı hem eski hem de yeni IP adresiyle + sunmamız lazım.

    + +

    Çözüm kolay, çünkü yapacağımız sadece VirtualHost + yönergesine yeni IP adresini (192.168.2.2) eklemek olacak.

    + +

    Sunucu yapılandırması

    + + + Listen 80
    + ServerName mesela.dom
    + DocumentRoot /siteler/mesela
    +
    + <VirtualHost 192.168.1.2>
    +
    + <VirtualHost 192.168.1.2 192.168.2.2>
    + + DocumentRoot /siteler/falanca
    + ServerName falanca.dom
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 192.168.1.2>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    + ServerAlias *.faraza.dom
    + # ...
    +
    + </VirtualHost> +

    + +

    Böylece sanal konağa hem yeni (bir IP’ye dayalı sanal konak olarak) + hem de eski adresinden (bir isme dayalı sanal konak olarak) + erişilebilecektir.

    + +
    top
    +
    +

    ServerPath yönergesinin kullanımı

    + + +

    İsme dayalı iki sanal konağı olan bir sunucumuz olsun. Doğru sanal + konağa erişebilmek için istemcinin doğru Host: başlığı + göndermesi gerekir. Eski HTTP/1.0 istemcileri böyle bir başlık + göndermedikleri için Apache istemcinin hangi sanal konağa erişmek + istediğini bilemez (ve isteğe ilk sanal konaktan hizmet sunar). Daha iyi + bir geriye uyumluluk sağlamak için isme dayalı sanal konağa bir önek + bağlantısı içeren bir bilgilendirme sayfası sunmak üzere yeni bir sanal + konak oluşturabiliriz.

    + +

    Sunucu yapılandırması

    + + + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40>
    + + # ilk sanal konak
    + DocumentRoot /siteler/baska
    + RewriteEngine On
    + RewriteRule ^/.* /siteler/baska/index.html
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + DocumentRoot /siteler/baska/bir
    + + ServerName bir.baska.tld
    + ServerPath /bir/
    + RewriteEngine On
    + RewriteRule ^(/bir/.*) /siteler/baska$1
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/baska/iki
    + ServerName iki.baska.tld
    + ServerPath /iki/
    + RewriteEngine On
    + RewriteRule ^(/iki/.*) /siteler/baska$1
    + # ...
    +
    + </VirtualHost> +

    + +

    ServerPath yönergesinden dolayı + http://bir.baska.tld/bir/ şeklinde yapılan isteklere + daima “bir” sanal konağı hizmet sunacaktır.

    + +

    http://bir.baska.tld/ şeklinde yapılan isteklere ise + istemcinin doğru Host: başlığı göndermesi şartıyla + “bir” sanal konağı hizmet sunacaktır. İstemci, bir + Host: başlığı göndermediği takdirde ilk konaktan bir + bilgilendirme sayfası alacaktır.

    + +

    Yalnız buradaki bir tuhaflığa dikkat edin: Eğer istemci bir + Host: başlığı göndermeden + http://iki.baska.tld/bir/ şeklinde bir istek yaparsa bu + isteğe de “bir” sanal konağı hizmet sunacaktır.

    + +

    RewriteRule yönergesi, bir + istemcinin, bir URL öneki belirtsin ya da belirtmesin doğru + Host: başlığı gönderdiğinden emin olmak için + kullanılmıştır.

    + +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/examples.xml b/docs/manual/vhosts/examples.xml index 5f4b1a26b74..18f39f3b7c9 100644 --- a/docs/manual/vhosts/examples.xml +++ b/docs/manual/vhosts/examples.xml @@ -4,12 +4,12 @@ - + + + + -$B%P!<%A%c%k%[%9%H(B - $B%P!<%A%c%k%[%9%H$NNc(B +バーチャルホスト + バーチャルホストの例 -

    $B$3$NJ8=q$O!"%P!<%A%c%k%[%9%H$N@_Dj$N:]$K(B - $B$h$/$"$k]$O(B $BL>A0%Y!<%9(B $B$d(B IP $B%Y!<%9(B $B$N%P!<%A%c%k%[%9%H$r;H$C$F(B - $B0l$D$N%5!<%P$GJ#?t$N%&%'%V%5%$%H$r1?MQ$7$F$$$k>u67$G$9!#(B +

    この文書は、バーチャルホストの設定の際に + よくある質問に答えるものです。想定している対象は 名前ベース や IP ベース のバーチャルホストを使って + 一つのサーバで複数のウェブサイトを運用している状況です。

    -
    $B0l$D$N(B IP $B%"%I%l%9$G$$$/$D$+$NL>A0%Y!<%9$N(B - $B%&%'%V%5%$%H$r<B9T$9$k(B - -

    $B%5!<%P$O(B IP $B%"%I%l%9$r0l$D3d$jEv$F$i$l$F$$$F!"(BDNS $B$G%^%7%s$K(B - $BJ#?t$NL>A0(B (CNAME) $B$,;XDj$5$l$F$$$^$9!#$3$N%^%7%s$G(B - www.example.com $B$H(B www.example.org - $B$N$?$a$N%&%'%V%5!<%P$r - - $BCm(B

    - Apache $B%5!<%P$N@_Dj$G%P!<%A%c%k%[%9%H$N@_Dj$r$7$?$@$1$G!"(B - $BCN$i$J$$4V$K$=$N%[%9%HL>$KBP1~$9$k(B DNS $B$N%(%s%H%j$,(B - $B:n@.$5$l$?$j$O$7$^$;$s!#$=$N%5!<%P$N(B IP $B%"%I%l%9$K2r7h$5$l$k(B - $B$h$&$K(B DNS $B$KL>A0$rEPO?$7$J$1$l$P(B$B$J$j$^$;$s(B$B!#(B - $B$=$&$G$J$$$HC/$b$"$J$?$N%&%'%V%5%$%H$r8+$k$3$H$O$G$-$^$;$s!#(B - $B%m!<%+%k$G$N%F%9%H$N$?$a$K(B hosts $B%U%!%$%k$K(B - $B%(%s%H%j$rDI2C$9$k$3$H$b$G$-$^$9$,!"$3$N>l9g$O$=$N(B - hosts $B%(%s%H%j$N$"$k%^%7%s$+$i$7$+F0:n$7$^$;$s!#(B

    +
    一つの IP アドレスでいくつかの名前ベースの + ウェブサイトを実行する + +

    サーバは IP アドレスを一つ割り当てられていて、DNS でマシンに + 複数の名前 (CNAME) が指定されています。このマシンで + www.example.com と www.example.org + のためのウェブサーバを実行させたいとします。

    + + 注

    + Apache サーバの設定でバーチャルホストの設定をしただけで、 + 知らない間にそのホスト名に対応する DNS のエントリが + 作成されたりはしません。そのサーバの IP アドレスに解決される + ように DNS に名前を登録しなければなりません。 + そうでないと誰もあなたのウェブサイトを見ることはできません。 + ローカルでのテストのために hosts ファイルに + エントリを追加することもできますが、この場合はその + hosts エントリのあるマシンからしか動作しません。

    - $B%5!<%P@_Dj(B + サーバ設定 # Ensure that Apache listens on port 80
    Listen 80
    @@ -84,18 +84,18 @@ </VirtualHost>
    -

    $B%"%9%?%j%9%/$O$9$Y$F$N%"%I%l%9$K%^%C%A$7$^$9$N$G!"www.example.com $B$O(B - $B:G=i$K$"$k$?$a!"M%@h=g0L$O0lHV9b$/$J$j!"(Bdefault $B$b$7$/$O(B - primary $B$N%5!<%P$H9M$($k$3$H$,$G$-$^$9!#$D$^$j!"%j%/%(%9%H$,(B - $B$I$N(B ServerName $B%G%#%l%/%F%#%V$K$b%^%C%A$7$J$$>l9g!"(B - $B0lHV:G=i$N(B VirtualHost $B$K$h$j07$o$l$^$9!#(B

    +

    アスタリスクはすべてのアドレスにマッチしますので、主サーバは + リクエストを扱いません。www.example.com は + 最初にあるため、優先順位は一番高くなり、default もしくは + primary のサーバと考えることができます。つまり、リクエストが + どの ServerName ディレクティブにもマッチしない場合、 + 一番最初の VirtualHost により扱われます。

    - $BCm(B + 注 -

    * $B$r%7%9%F%`$Nl9g$O(B VirtualHost $B$N0z?t$O(B - NameVirtualHost $B$N0z?t$HF1$8$K(B$B$7$J$1$l$P$J$j$^$;$s(B +

    * をシステムの実際の IP アドレスに置き換える + こともできます。その場合は VirtualHost の引数は + NameVirtualHost の引数と同じにしなければなりません :

    @@ -105,37 +105,37 @@ # etc ... -

    $B$7$+$7!"(BIP $B%"%I%l%9$,M=B,IT2DG=$J%7%9%F%`(B - $B!=!=Nc$($P%W%m%P%$%@$+$iF0E*$K(B IP $B%"%I%l%9$rl9g$J$I!=!=$K$*$$$F$O!"(B* - $B;XDj$O$5$i$KJXMx$G$9!#(B* $B$O$9$Y$F$N(B IP $B%"%I%l%9$K(B - $B%^%C%A$7$^$9$N$G!"$3$N@_Dj$K$7$F$*$1$P(B IP $B%"%I%l%9$,JQ99$5$l$F$b(B - $B@_DjJQ99$;$:$KF0:n$7$^$9!#(B

    +

    しかし、IP アドレスが予測不可能なシステム + ――例えばプロバイダから動的に IP アドレスを取得して何らかの + ダイナミック DNS を使っている場合など――においては、* + 指定はさらに便利です。* はすべての IP アドレスに + マッチしますので、この設定にしておけば IP アドレスが変更されても + 設定変更せずに動作します。

    -

    $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%F%#%s%0$G$O$[$\$9$Y$F$N>u67$G!"(B - $B>e5-$N@_Dj$G4uK>$N@_Dj$K$J$C$F$$$k$3$H$G$7$g$&!#(B - $B +

    名前ベースのバーチャルホスティングではほぼすべての状況で、 + 上記の設定で希望の設定になっていることでしょう。 + 実際この設定が動作しないのは、IP アドレスやポートの違いによって + 違うコンテンツを送るときだけです。

    -
    $BJ#?t$N(B IP $B%"%I%l%9$N$"$k%[%9%H$GL>A0%Y!<%9$N(B - $B%[%9%F%#%s%0$r9T$J$&(B +
    複数の IP アドレスのあるホストで名前ベースの + ホスティングを行なう - $BCm(B

    $B$3$3$G@bL@$5$l$F$$$kJ}K!$O(B IP $B%"%I%l%9$,(B - $B2?8D$"$C$F$bF1MM$K$G$-$^$9!#(B

    + 注

    ここで説明されている方法は IP アドレスが + 何個あっても同様にできます。

    -

    $B%5!<%P$K$OFs$D(B IP $B%"%I%l%9$,$D$$$F$$$^$9!#0l$DL\(B - (172.20.30.40) $B$G$Oserver.domain.com $B$r07$$!"$b$&0lJ}(B - (172.20.30.50) $B$G$OFs$D$+$=$l0J>e$N?t$N(B - $B%P!<%A%c%k%[%9%H$r07$$$^$9!#(B

    +

    サーバには二つ IP アドレスがついています。一つ目 + (172.20.30.40) では主サーバ + server.domain.com を扱い、もう一方 + (172.20.30.50) では二つかそれ以上の数の + バーチャルホストを扱います。

    - $B%5!<%P$N@_Dj(B + サーバの設定 Listen 80

    @@ -167,29 +167,29 @@ </VirtualHost>
    -

    172.20.30.50 $B0J30$N%"%I%l%9$X$N%j%/%(%9%H$O172.20.30.50 $B$X$N!"L$CN$N%[%9%HL>$^$?$O(B - Host: $B%X%C%@$J$7$N%j%/%(%9%H$O(B www.example.com - $B$,07$$$^$9!#(B

    +

    172.20.30.50 以外のアドレスへのリクエストは主サーバ + が扱います。172.20.30.50 への、未知のホスト名または + Host: ヘッダなしのリクエストは www.example.com + が扱います。

    -
    $B0c$&(B IP $B%"%I%l%9(B ($BNc$($P!"FbIt$H30It%"%I%l%9(B) - $B$GF1$8%3%s%F%s%D$rAw$k(B +
    違う IP アドレス (例えば、内部と外部アドレス) + で同じコンテンツを送る -

    $B%5!<%P%^%7%s$O(B IP $B%"%I%l%9$rFs$D(B (192.168.1.1 - $B$H(B 172.20.30.40) $B;}$C$F$$$^$9!#$3$N%^%7%s$OFbIt(B - ($B%$%s%H%i%M%C%H(B) $B$H(B $B30It(B ($B%$%s%?!<%M%C%H(B) $B$N%M%C%H%o!<%/$N4V$K(B - $B$"$j$^$9!#(Bserver.example.com $B$O%M%C%H%o!<%/$N30$+$i$O(B - $B30It%"%I%l%9(B (172.20.30.40) $B$H$7$F2r7h$5$l$^$9$,!"(B - $B%M%C%H%o!<%/$NCf$+$i$OFbIt%"%I%l%9(B (192.168.1.1) - $B$H$7$F2r7h$5$l$^$9!#(B

    +

    サーバマシンは IP アドレスを二つ (192.168.1.1 + と 172.20.30.40) 持っています。このマシンは内部 + (イントラネット) と 外部 (インターネット) のネットワークの間に + あります。server.example.com はネットワークの外からは + 外部アドレス (172.20.30.40) として解決されますが、 + ネットワークの中からは内部アドレス (192.168.1.1) + として解決されます。

    -

    VirtualHost $B0l$D$@$1$G%5!<%P$,FbIt$N%j%/%(%9%H$H(B - $B30It$N%j%/%(%9%H$NN>J}$KF1$8%3%s%F%s%D$G1~Ez$9$k$h$&$K$G$-$^$9!#(B

    +

    VirtualHost 一つだけでサーバが内部のリクエストと + 外部のリクエストの両方に同じコンテンツで応答するようにできます。

    - $B%5!<%P$N@_Dj(B + サーバの設定 NameVirtualHost 192.168.1.1
    NameVirtualHost 172.20.30.40
    @@ -203,29 +203,29 @@ </VirtualHost>
    -

    $B$3$l$G$I$A$i$N%M%C%H%o!<%/$+$i$N%j%/%(%9%H$bF1$8(B VirtualHost - $B$G07$o$l$k$h$&$K$J$j$^$9!#(B

    +

    これでどちらのネットワークからのリクエストも同じ VirtualHost + で扱われるようになります。

    - $BCm(B:

    $BFbIt%M%C%H%o!<%/$G$O40A4$J%[%9%HL>$N(B - server.example.com $B$NBe$o$j$K!"C1$K(B server - $B$r;H$&$3$H$,$G$-$^$9!#(B

    + 注:

    内部ネットワークでは完全なホスト名の + server.example.com の代わりに、単に server + を使うことができます。

    -

    $B>e$NNc$G$O!"(BIP $B%"%I%l%9$N%j%9%H$r!"$9$Y$F$N%"%I%l%9$K(B - $BF1$8%3%s%F%s%D$G1~Ez$9$k(B * $B$KCV$-49$($i$l$^$9!#(B

    +

    上の例では、IP アドレスのリストを、すべてのアドレスに + 同じコンテンツで応答する * に置き換えられます。

    -
    $B0c$&%]!<%H$G0c$&%5%$%H$r1?1D$9$k(B +
    違うポートで違うサイトを運営する -

    $BF1$8(B IP $B$KJ#?t$N%I%a%$%s$,$"$j!"$5$i$KJ#?t$N%]!<%H$r;H$C$F(B - $B%j%/%(%9%H$r07$$$?$$$H$-$,$"$j$^$9!#(B"NameVirtualHost" $B%?%0$NCf$G(B - $B%]!<%H$rDj5A$9$k$3$H$G!"$3$l$rF0:n$5$;$i$l$^$9!#(B - NameVirtualHost name:port $BL5$7$d(B Listen $B%G%#%l%/%F%#%V$G(B - <VirtualHost name:port> $B$r;H$*$&$H$7$F$b!"$=$N@_Dj$OF0:n$7$^$;$s!#(B

    +

    同じ IP に複数のドメインがあり、さらに複数のポートを使って + リクエストを扱いたいときがあります。"NameVirtualHost" タグの中で + ポートを定義することで、これを動作させられます。 + NameVirtualHost name:port 無しや Listen ディレクティブで + <VirtualHost name:port> を使おうとしても、その設定は動作しません。

    - $B%5!<%P$N@_Dj(B + サーバの設定 Listen 80
    Listen 8080
    @@ -264,14 +264,14 @@
    -
    IP $B%Y!<%9$N%P!<%A%c%k%[%9%F%#%s%0(B +
    IP ベースのバーチャルホスティング -

    $B%5!<%P$O(B www.example.com $B$H(B www.example.org - $B$K$=$l$>$l2r7h$5$l$k!"Fs$D$N(B IP $B%"%I%l%9(B (172.20.30.40 $B$H(B - 172.20.30.50) $B$,$"$j$^$9!#(B

    +

    サーバは www.example.com と www.example.org + にそれぞれ解決される、二つの IP アドレス (172.20.30.40 と + 172.20.30.50) があります。

    - $B%5!<%P$N@_Dj(B + サーバの設定 Listen 80

    @@ -290,22 +290,22 @@ </VirtualHost>
    -

    <VirtualHost> $B%G%#%l%/%F%#%V$N$I$l$G$b(B - $B;XDj$5$l$F$$$J$$%"%I%l%9(B ($BNc$($P(B localhost) $B$O!"(B - $B +

    <VirtualHost> ディレクティブのどれでも + 指定されていないアドレス (例えば localhost) は、 + 主サーバがあればそこに行きます。

    -
    $B%]!<%H%Y!<%9$H(B IP $B%Y!<%9$N:.$6$C$?(B - $B%P!<%A%c%k%[%9%H(B +
    ポートベースと IP ベースの混ざった + バーチャルホスト -

    $B%5!<%P%^%7%s$O$=$l$>$l(B www.example.com $B$H(B - www.example.org $B$K$=$l$>$l2r7h$5$l$k!"(BIP $B%"%I%l%9$rFs$D(B - (172.20.30.40 $B$H(B 172.20.30.50) $B;}$C$F$$$^$9!#(B - $B$I$A$i$b%]!<%H(B 80 $B$H(B 8080 $B$G%[%9%H$rAv$i$;$^$9!#(B

    +

    サーバマシンはそれぞれ www.example.com と + www.example.org にそれぞれ解決される、IP アドレスを二つ + (172.20.30.40 と 172.20.30.50) 持っています。 + どちらもポート 80 と 8080 でホストを走らせます。

    - $B%5!<%P$N@_Dj(B + サーバの設定 Listen 172.20.30.40:80
    Listen 172.20.30.40:8080
    @@ -343,14 +343,14 @@
    -
    $BL>A0%Y!<%9$H(B IP $B%Y!<%9$r:.$<$?(B - $B%P!<%A%c%k%[%9%H(B +
    名前ベースと IP ベースを混ぜた + バーチャルホスト -

    $B$$$/$D$+$N%^%7%s$G$OL>A0%Y!<%9$N!"$=$NB>$G$O(B IP $B%Y!<%9$N%P!<%A%c%k(B - $B%[%9%H$r$7$^$9!#(B

    +

    いくつかのマシンでは名前ベースの、その他では IP ベースのバーチャル + ホストをします。

    - $B%5!<%P$N@_Dj(B + サーバの設定 Listen 80

    @@ -395,14 +395,14 @@
    -
    <code>Virtual_host</code> $B$H(B - mod_proxy $B$rJ;MQ$9$k(B +
    <code>Virtual_host</code> と + mod_proxy を併用する -

    $B$N%^%7%s$X%W%m%/%7$7$^$9!#(B - $BNc$G$O(B 192.168.111.2 $B$N%^%7%s$G$O%P!<%A%c%k%[%9%HL>$O(B - $BF1$8L>A0$G@_Dj$5$l$F$$$^$9!#J#?t$N%[%9%HL>$r0lBf$N%^%7%s$K%W%m%/%7$9$k(B - $B>l9g$O!"(BProxyPreserveHost On - $B%G%#%l%/%F%#%V$r;H$C$F!"4uK>$N%[%9%HL>$rEO$;$k$h$&$K$J$j$^$9!#(B +

    次の例は、フロント側のバーチャルホストで他のマシンへプロクシします。 + 例では 192.168.111.2 のマシンではバーチャルホスト名は + 同じ名前で設定されています。複数のホスト名を一台のマシンにプロクシする + 場合は、ProxyPreserveHost On + ディレクティブを使って、希望のホスト名を渡せるようになります。

    @@ -416,18 +416,18 @@
    -
    <code>_default_</code> $B$N%P!<%A%c%k%[%9%H$r(B - $B;H$&(B +
    <code>_default_</code> のバーチャルホストを + 使う -
    $B$9$Y$F$N%]!<%H$KBP$9$k(B - <code>_default_</code> $B%P!<%A%c%k%[%9%H(B +
    すべてのポートに対する + <code>_default_</code> バーチャルホスト -

    $BL$;XDj$N(B IP $B%"%I%l%9$H%]!<%H!"(B$B$D$^$j(B$BB>$N%P!<%A%c%k%[%9%H$K(B - $B;H$o$l$F$$$J$$%"%I%l%9$H%]!<%H$NAH$_9g$o$;!"$X$N(B$B$9$Y$F$N(B$B%j%/%(%9%H$r(B - $B +

    未指定の IP アドレスとポート、つまり他のバーチャルホストに + 使われていないアドレスとポートの組み合わせ、へのすべてのリクエストを + 受け取ります。

    - $B%5!<%P$N@_Dj(B + サーバの設定 <VirtualHost _default_:*>
    @@ -436,30 +436,30 @@ </VirtualHost>
    -

    $B$3$N$h$&$K%o%$%k%I%+!<%I$N%]!<%H$G%G%U%)%k%H$N%P!<%A%c%k%[%9%H$r(B - $B;XDj$9$k$H!" +

    このようにワイルドカードのポートでデフォルトのバーチャルホストを + 指定すると、主サーバにリクエストが行くのを防げます。

    -

    $B%G%U%)%k%H$N%P!<%A%c%k%[%9%H$OL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$K(B - $B;H$o$l$F$$$k%"%I%l%9$H%]!<%H$NAH$KAw$i$l$?%j%/%(%9%H$r07$&$3$H$O(B - $B$"$j$^$;$s!#%j%/%(%9%H$,ITL@$J(B Host: $B%X%C%@$d$=$N(B - $B%X%C%@$,$J$+$C$?$j$9$k>l9g$O4pK\L>A0%Y!<%9%P!<%A%c%k%[%9%H(B ($B$=$N(B - $B%"%I%l%9$H%]!<%H$G@_Dj%U%!%$%kCf$G:G=i$N%P!<%A%c%k%[%9%H(B) $B$K$h$j(B - $B07$o$l$^$9!#(B

    +

    デフォルトのバーチャルホストは名前ベースのバーチャルホストに + 使われているアドレスとポートの組に送られたリクエストを扱うことは + ありません。リクエストが不明な Host: ヘッダやその + ヘッダがなかったりする場合は基本名前ベースバーチャルホスト (その + アドレスとポートで設定ファイル中で最初のバーチャルホスト) により + 扱われます。

    -

    $B$I$s$J%j%/%(%9%H$G$b(B AliasMatch - $B$d(B RewriteRule $B$r;H$C$F(B - $BC10l$N>pJs%Z!<%8(B ($B$d%9%/%j%W%H(B) $B$K=q$-49$($k$3$H$,$G$-$^$9!#(B

    +

    どんなリクエストでも AliasMatch + や RewriteRule を使って + 単一の情報ページ (やスクリプト) に書き換えることができます。

    -
    $B0c$&%]!<%H$N$?$a$N(B - <code>_default_</code> $B%P!<%A%c%k%[%9%H(B +
    違うポートのための + <code>_default_</code> バーチャルホスト -

    $B0l$D$a$N@_Dj$H$[$\F1$8$G$9$,!"%5!<%P$OJ#?t$N%]!<%H$r(B listen $B$7$F$*$j!"(B - 80 $BHV%]!<%H$KBP$7$FFs$D$a$N(B _default_ $B%P!<%A%c%k%[%9%H$r(B - $B@_Dj$7$?$$>l9g$G$9!#(B

    +

    一つめの設定とほぼ同じですが、サーバは複数のポートを listen しており、 + 80 番ポートに対して二つめの _default_ バーチャルホストを + 設定したい場合です。

    - $B%5!<%P$N@_Dj(B + サーバの設定 <VirtualHost _default_:80>
    @@ -476,20 +476,20 @@ </VirtualHost>
    -

    80 $BHV%]!<%H$N%G%U%)%k%H%P!<%A%c%k%[%9%H(B ($B%o%$%k%I%+!<%I%]!<%H$N(B - $B%G%U%)%k%H%P!<%A%c%k%[%9%H$h$j$bA0$K=q$+$l$F$$$J$1$l$P(B$B$J$j$^$;$s(B) $B$O(B - $BL$;XDj$N(B IP $B%"%I%l%9$KAw$i$l$?$9$Y$F$N%j%/%(%9%H$r07$$$^$9!#(B - $B +

    80 番ポートのデフォルトバーチャルホスト (ワイルドカードポートの + デフォルトバーチャルホストよりも前に書かれていなければなりません) は + 未指定の IP アドレスに送られたすべてのリクエストを扱います。 + 主サーバはリクエストを扱いません。

    -
    $B0l$D$N%]!<%H$KBP$7$F$@$1$N(B - <code>_default_</code> $B%P!<%A%c%k%[%9%H(B +
    一つのポートに対してだけの + <code>_default_</code> バーチャルホスト -

    80 $BHV%]!<%H$K$O%G%U%)%k%H$N%P!<%A%c%k%[%9%H$,I,MW$G!"B>$N(B - $B%P!<%A%c%k%[%9%H$O%G%U%)%k%H$,I,MW$J$$>l9g$G$9!#(B

    +

    80 番ポートにはデフォルトのバーチャルホストが必要で、他の + バーチャルホストはデフォルトが必要ない場合です。

    - $B%5!<%P$N@_Dj(B + サーバの設定 <VirtualHost _default_:80>
    DocumentRoot /www/default
    @@ -497,28 +497,28 @@ </VirtualHost>
    -

    80 $BHV%]!<%H$X$N%"%I%l%9L$;XDj$N%j%/%(%9%H$O%G%U%)%k%H$N%P!<%A%c%k(B - $B%[%9%H$+$iAw$i$l$^$9!#B>$NL$;XDj$N%"%I%l%9$H%]!<%H$X$N%j%/%(%9%H$O(B - $B +

    80 番ポートへのアドレス未指定のリクエストはデフォルトのバーチャル + ホストから送られます。他の未指定のアドレスとポートへのリクエストは + 主サーバから送られます。

    -
    $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$+$i(B IP $B%Y!<%9$N(B - $B%P!<%A%c%k%[%9%H$K0\9T$9$k(B +
    名前ベースのバーチャルホストから IP ベースの + バーチャルホストに移行する -

    $B%[%9%HL>$,L>A0(B www.example.org $B$N%P!<%A%c%k%[%9%H(B - ($BL>A0%Y!<%9(B$B$NNc$N(B 2 $BHVL\$N@_Dj(B) $B$,@lMQ$N(B IP $B%"%I%l%9$r(B - $BF@$?$H$7$^$9!#L>A0%Y!<%9$N%P!<%A%c%k%[%9%H$N8E$$(B IP $B%"%I%l%9$r(B - $B%-%c%C%7%e$7$F$$$k%M!<%`%5!<%P$d%W%m%-%7$N$?$a$K0\9T4|4VCf$ON>J}$N(B - $B%P!<%A%c%k%[%9%H$rDs6!$7$?$$$H$7$^$9!#(B

    +

    ホスト名が名前 www.example.org のバーチャルホスト + (名前ベースの例の 2 番目の設定) が専用の IP アドレスを + 得たとします。名前ベースのバーチャルホストの古い IP アドレスを + キャッシュしているネームサーバやプロキシのために移行期間中は両方の + バーチャルホストを提供したいとします。

    -

    $BEz$O4JC1$G$9!#C1$K?7$7$$(B IP $B%"%I%l%9(B (172.20.30.50) - $B$r(B VirtualHost $B%G%#%l%/%F%#%V$KDI2C$9$k$3$H$G(B - $B$G$-$^$9!#(B

    +

    答は簡単です。単に新しい IP アドレス (172.20.30.50) + を VirtualHost ディレクティブに追加することで + できます。

    - $B%5!<%P@_Dj(B + サーバ設定 Listen 80
    ServerName www.example.com
    @@ -544,27 +544,27 @@ </VirtualHost>
    -

    $B$3$N%P!<%A%c%k%[%9%H$O?7$7$$%"%I%l%9(B (IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$H$7$F(B) - $B$H8E$$%"%I%l%9(B($BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$H$7$F(B) $B$NN>J}$+$i(B - $B%"%/%;%9$G$-$^$9!#(B

    +

    このバーチャルホストは新しいアドレス (IP ベースのバーチャルホストとして) + と古いアドレス(名前ベースのバーチャルホストとして) の両方から + アクセスできます。

    -
    <code>ServerPath</code> $B%G%#%l%/%F%#%V$r(B - $B;H$&(B +
    <code>ServerPath</code> ディレクティブを + 使う -

    $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$,Fs$D$"$k%5!<%P$,$"$k$H$7$^$9!#(B - $B@5$7$$%P!<%A%c%k%[%9%H$rF@$k$?$a$K$O%/%i%$%"%s%H$O@5$7$$(B - Host: $B%X%C%@$rAw$i$J$1$l$P$J$j$^$;$s!#(B - $B8E$$(B HTTP/1.0 $B$O$=$N$h$&$J%X%C%@$rAw$i$J$$$N$G!"(BApache $B$O%/%i%$%"%s%H$,(B - $B$I$N%P!<%A%c%k%[%9%H$r0U?^$7$?$N$+$5$C$Q$j$o$+$j$^$;$s(B - ($B$J$N$G!"A0%Y!<%9$N%P!<%A%c%k%[%9%H$N(B - URL $B@\F,<-$X$N%j%s%/$N=q$+$l$?%Z!<%8$rJV$9!"(B - $B +

    名前ベースのバーチャルホストが二つあるサーバがあるとします。 + 正しいバーチャルホストを得るためにはクライアントは正しい + Host: ヘッダを送らなければなりません。 + 古い HTTP/1.0 はそのようなヘッダを送らないので、Apache はクライアントが + どのバーチャルホストを意図したのかさっぱりわかりません + (なので、主バーチャルホストでリクエストを扱います)。 + 可能な限りの下位互換性を得るため、名前ベースのバーチャルホストの + URL 接頭辞へのリンクの書かれたページを返す、 + 主バーチャルホストが作成されます。

    - $B%5!<%P$N@_Dj(B + サーバの設定 NameVirtualHost 172.20.30.40

    @@ -601,22 +601,22 @@ </VirtualHost>
    -

    ServerPath $B%G%#%l%/%F%#%V$N@_Dj$K(B - $B$h$j!"(BURL http://www.sub1.domain.tld/sub1/ $B$O(B - $B>o$K(B sub1-vhost $B$K$h$j07$o$l$^$9!#(BURL - http://www.sub1.domain.tld/ $B$X$N%j%/%(%9%H$O(B - $B%/%i%$%"%s%H$,@5$7$$(B Host: $B%X%C%@$rAw$C$?$H$-$K$N$_(B - sub1-vhost $B$+$iAw$i$l$^$9!#(BHost: $B%X%C%@$,$J$1$l$P(B - $B%/%i%$%"%s%H$OpJs%Z!<%8$rF@$^$9!#(B

    - -

    $B0l$D4qL/$JF0:n$r$9$kE@$,$"$k$3$H$O3P$($F$*$$$F$/$@$5$$!#(B - http://www.sub2.domain.tld/sub1/ $B$X$N%j%/%(%9%H$b(B - Host: $B%X%C%@$,$J$1$l$P(B sub1-vhost $B$K$h$j07$o$l$^$9!#(B

    - -

    $B@5$7$$(B Host: $B%X%C%@$rAw$C$?%/%i%$%"%s%H$O$I$A$i$N(B - URL$B!"(B$B$D$^$j(B$B@\F,<-$,$"$kJ}$bL5$$J}$b;H$($k$h$&$K(B - RewriteRule $B%G%#%l%/%F%#%V$,(B - $B;H$o$l$F$$$^$9!#(B

    +

    ServerPath ディレクティブの設定に + より、URL http://www.sub1.domain.tld/sub1/ は + 常に sub1-vhost により扱われます。URL + http://www.sub1.domain.tld/ へのリクエストは + クライアントが正しい Host: ヘッダを送ったときにのみ + sub1-vhost から送られます。Host: ヘッダがなければ + クライアントは主ホストの情報ページを得ます。

    + +

    一つ奇妙な動作をする点があることは覚えておいてください。 + http://www.sub2.domain.tld/sub1/ へのリクエストも + Host: ヘッダがなければ sub1-vhost により扱われます。

    + +

    正しい Host: ヘッダを送ったクライアントはどちらの + URL、つまり接頭辞がある方も無い方も使えるように + RewriteRule ディレクティブが + 使われています。

    diff --git a/docs/manual/vhosts/examples.xml.ko b/docs/manual/vhosts/examples.xml.ko index 3059d3e1f88..cd2f58f38b9 100644 --- a/docs/manual/vhosts/examples.xml.ko +++ b/docs/manual/vhosts/examples.xml.ko @@ -1,15 +1,15 @@ - + - + examples /vhosts/ .. @@ -8,7 +9,8 @@ en fr - ja + ja ko + tr diff --git a/docs/manual/vhosts/examples.xml.tr b/docs/manual/vhosts/examples.xml.tr new file mode 100644 index 00000000000..0e9ebd8275c --- /dev/null +++ b/docs/manual/vhosts/examples.xml.tr @@ -0,0 +1,627 @@ + + + + + + + + + +Sanal Konaklar + Sanal Konak Örnekleri + + + +

    Bu belgede sanal konaklar ile ilgili + karşılaşılması olası tüm senaryolara yer verilmeye çalışılmıştır. + Buradaki senaryolar, tek bir sunucu üzerinde isme dayalı veya IP’ye dayalı sanal + konaklar aracılığıyla çok sayıda sitenin sunumu ile ilgilidir. +

    + +
    + +
    + Tek bir IP ile çok sayıda isme dayalı site + +

    Bu örnekte, makinenizin tek bir IP adresine sahip olduğunu ve bu + makineye mesela.dom ve faraza.dom şeklinde + (DNS A kayıtları sayesinde) farklı isimlerle erişilebildiğini + varsayalım.

    + + Bilginize

    Apache sunucusu üzerinde sanal konakları + yapılandırmakla bu konak isimleri için sihirli bir şekilde DNS + kayıtlarının da oluşturulmasını sağlamış olmazsınız. Bu isimler için + ilgili DNS kayıtlarında sizin IP adresinize çözümlenen A kayıtlarının + olması gerekir, yoksa sitenize kimse erişemez. Sitelere erişimi yerel + olarak denemek isterseniz, bu girdileri hosts dosyanıza + yazabilirsiniz. Fakat bu sadece sizin makinenizde çalışır. Yerel + ağınızdaki her makinenin hosts dosyasına bu girdileri + yazarak yerel ağdan erişimi bu yolla sağlayabilirsiniz ama dış ağdan + gelecek ziyaretçileriniz için DNS kayıtlarınızın olması şarttır.

    +
    + + Sunucu yapılandırması + + # Apache’nin 80. portu dinlediğinden emin olalım
    + Listen 80
    +
    + # Sanal konak istekleri için bütün IP adresleri dinlensin.
    + NameVirtualHost *:80
    +
    + <VirtualHost *:80>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost>
    +
    + <VirtualHost *:80>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost> +
    + +

    Yıldız imleri tüm adreslerle eşleşmeyi sağladığından ana sunucu + (yapılandırma dosyası genelindeki yapılandırma - sunucu geneli) + erişilebilir olmayacaktır. mesela.dom yapılandırma + dosyasındaki ilk sanal konak olduğundan en yüksek önceliğe sahiptir ve + öntanımlı veya baskın site olarak davranır. + Yani, hiçbir ServerName yönergesi ile eşleşmeyen bir istek + alındığında bu istek ilk VirtualHost yapılandırması ile + karşılanır.

    + + Bilginize +

    İsterseniz, * yerine kendi IP adresinizi yazabilirsiniz. + Ancak bu durumda bunu hem VirtualHost hem de + NameVirtualHost için yapmalısınız:

    + + + NameVirtualHost 192.168.1.22
    +
    + <VirtualHost 192.168.1.22>
    + # vs. ... +
    + +

    Bununla birlikte, IP adresinin önceden kestirilebilir olmadığı + sistemlerde, örneğin, hizmet sağlayıcınıza çevirmeli ağ ile bağlanıyor + ve onun rasgele atadığı bir IP adresi için bir devingen DNS çözümü + kullanıyorsanız, IP adresi değil de * kullanmak daha çok + işinize yarayacaktır. Yıldız imi her IP adresi ile eşleşeceğinden IP + adresiniz değişse bile bu yapılandırmayı değiştirmeden + kullanabilirsiniz.

    +
    + +

    Yukarıdaki yapılandırmayı hemen hemen tüm isme dayalı sanal konaklar + için kullanabilirsiniz. Bu yapılandırmanın çalışmayacağı tek durum, + farklı içerikleri farklı IP adreslerinden sunma gereğiyle + karşılaşmaktır.

    + +
    + +
    + IP adresleri farklı çok sayıda isme dayalı site + + Bilginize +

    Burada açıklanan teknikler istendiği kadar çok IP adresine + genişletilebilir.

    +
    + +

    Sunucunun iki IP adresi olsun. Birinden "ana sunucu" + (192.168.1.2) diğerinden mesela.dom + 192.168.2.2 hizmet versin. Bu arada başka sanal konakları + da sunabilelim istiyoruz.

    + + Sunucu yapılandırması + + Listen 80
    +
    + # Bu, 192.168.1.2 adresindeki "ana sunucu" olsun
    + ServerName sunucu.faraza.dom
    + DocumentRoot /siteler/anasunucu
    +
    + # Burası da diğer adres için
    + NameVirtualHost 192.168.2.2
    +
    + <VirtualHost 192.168.2.2>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost>
    +
    + <VirtualHost 192.168.2.2>
    + + DocumentRoot /siteler/falanca
    + ServerName falanca.dom
    +
    + # Diğer yönergeler, burada ...
    +
    +
    + </VirtualHost> +
    + +

    192.168.2.2 adresinden gelmeyen tüm isteklere ana sunucu + (sunucu.faraza.dom), 192.168.2.2 adresinden + gelen sunucu ismi belirtmeyenler ile Host: başlığı + belirtmeyenlere ise mesela.dom hizmet verecektir.

    + +
    + +
    Aynı içeriği farklı IP adresleriyle sunmak + (örn., dahili ve harici ağlara) + +

    Sunucu makine iki IP adresine sahip olsun. Biri iç ağa + (192.168.1.1) diğeri dış ağa (172.20.30.40) + bakıyor olsun. sunucu.mesela.dom ismi dış ağda dış ağa + bakan IP’ye, iç ağda ise iç ağa bakan IP’ye çözümleniyor olsun.

    + +

    Bu durumda, sunucu hem iç hem de dış ağdan gelen isteklere aynı içerik, + dolayısıyla aynı VirtualHost bölümü ile hizmet + verebilir.

    + + Sunucu yapılandırması + + NameVirtualHost 192.168.1.1
    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 192.168.1.1 172.20.30.40>
    + + DocumentRoot /siteler/sunucu
    + ServerName sunucu.mesela.dom
    + ServerAlias sunucu
    +
    + </VirtualHost> +
    + +

    Artık, hem iç hem de dış ağdan gelen isteklere aynı + VirtualHost bölümünden hizmet sunulacaktır.

    + + Bilginize: +

    İç ağdan istek yapan biri, tam nitelenmiş konak ismi + sunucu.mesela.dom yerine makine ismini + (sunucu) kullanabilir (ServerAlias sunucu + satırına dikkat).

    + +

    Ayrıca, yukarıdaki gibi iki ayrı IP adresi belirtmek yerine sadece + * belirtmekle sunucunun tüm IP adreslerine yine aynı + içerikle yanıt vereceğine dikkat ediniz.

    +
    + +
    + +
    Farklı portlarla farklı siteler + +

    Aynı IP adresine sahip çok sayıda konak ismine sahip olduğunuzu ve + bunların bazılarının farklı portları kullanmasını istediğinizi + varsayalım. NameVirtualHost + yönergesi ile port tanımlamak suretiyle bunu mümkün kılabilirsiniz. + NameVirtualHost isim:port tanımı yapmadan + veya bunun yerine Listen + kullanarak VirtualHost isim:port kullanmaya + kalkışırsanız, yapılandırmanız çalışmayacaktır.

    + + Sunucu yapılandırması + + Listen 80
    + Listen 8080
    +
    + NameVirtualHost 172.20.30.40:80
    + NameVirtualHost 172.20.30.40:8080
    +
    + <VirtualHost 172.20.30.40:80>
    + + ServerName mesela.dom
    + DocumentRoot /siteler/mesela-80
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + ServerName mesela.dom
    + DocumentRoot /siteler/mesela-8080
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:80>
    + + ServerName faraza.dom
    + DocumentRoot /siteler/faraza-80
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + ServerName faraza.dom
    + DocumentRoot /siteler/faraza-8080
    +
    + </VirtualHost> +
    + +
    + +
    IP’ye dayalı sanal konaklar + +

    Sunucu makinenin, biri mesela.dom adından çözümlenen + 172.20.30.40, diğeri faraza.dom adından + çözümlenen 172.20.30.50 diye iki IP adresi olsun.

    + + Sunucu yapılandırması + + Listen 80
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    +
    + </VirtualHost> +
    + +

    <VirtualHost> yönergelerinde belirtilmeyen + adreslerle yapılan isteklere (örneğin, localhost) sunucu + genelindeki yapılandırma ile ana sunucu yanıt verecektir.

    +
    + +
    + Hem IP’ye hem de porta dayalı sanal konaklar + +

    Sunucu makinenin, biri mesela.dom adından çözümlenen + 172.20.30.40, diğeri faraza.dom adından + çözümlenen 172.20.30.50 diye iki IP adresi olsun ve iki + konak da hem 80 hem de 8080 portlarında çalışsınlar istiyoruz.

    + + Sunucu yapılandırması + + Listen 172.20.30.40:80
    + Listen 172.20.30.40:8080
    + Listen 172.20.30.50:80
    + Listen 172.20.30.50:8080
    +
    + <VirtualHost 172.20.30.40:80>
    + + DocumentRoot /siteler/mesela-80
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40:8080>
    + + DocumentRoot /siteler/mesela-8080
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50:80>
    + + DocumentRoot /siteler/faraza-80
    + ServerName faraza.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.50:8080>
    + + DocumentRoot /siteler/faraza-8080
    + ServerName faraza.dom
    +
    + </VirtualHost> +
    + +
    + +
    + Hem isme hem de IP‘ye dayalı sanal konaklar + +

    Bazı adreslerde isme dayalı, bazılarında da IP’ye dayalı sanal konaklar + çalışsın istersek...

    + + Sunucu yapılandırması + + Listen 80
    +
    + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/mesela
    + ServerName mesela.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/falanca
    + ServerName falanca.dom
    +
    + </VirtualHost>
    +
    + # IP-based
    + <VirtualHost 172.20.30.50>
    + + DocumentRoot /siteler/filanca
    + ServerName filanca.dom
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.60>
    + + DocumentRoot /siteler/fesmekan
    + ServerName fesmekan.dom
    +
    + </VirtualHost> +
    + +
    + +
    <code>Virtualhost</code> ve + <code>mod_proxy</code>’nin birlikte kullanımı + +

    Bu örnekte bir arabirimi dışarıya bakan bir makinede, başka bir + makinede çalışan bir sunucuya sanal konak olarak, bir vekil sunucu + çalıştırmak istediğimizi varsayıyoruz. 192.168.111.2 IP + adresli bir makinede aynı isimde bir sanal konak yapılandırılmış olsun. + Çok sayıda konak ismi için vekil olarak tek bir makine kullandığımızdan + ve konak isminin de aktarılmasını arzuladığımızdan ProxyPreserveHost On yönergesini + kullandık.

    + + + <VirtualHost *:*>
    + + ProxyPreserveHost On
    + ProxyPass / http://192.168.111.2/
    + ProxyPassReverse / http://192.168.111.2/
    + ServerName konak.mesela.dom
    +
    + </VirtualHost> +
    + +
    + +
    <code>_default_</code> sanal konakları + +
    + Tüm portlar için <code>_default_</code> + +

    Bir IP adresi ve port belirtilmeyen veya hiçbir sanal konağın hiçbir + adresi/portu ile eşleşmeyen istekleri yakalamak istersek...

    + + + Sunucu yapılandırması + + <VirtualHost _default_:*>
    + + DocumentRoot /siteler/default
    +
    + </VirtualHost> +
    + +

    Bütün portlarla eşleşen böyle bir öntanımlı sanal konağın kullanımı + hiçbir isteğin ana sunucuya gitmemesi sonucunu doğurur.

    + +

    Bir öntanımlı sanal konak, asla, isme dayalı sanal konaklar için + kullanılmış bir adrese/porta gönderilmiş bir isteğe hizmet sunmaz. Eğer + istek bilinmeyen bir Host: başlığına sahipse veya hiç + Host: başlığı içermiyorsa isteğe daima ilk (yapılandırma + dosyasındaki ilk) isme dayalı sanal konak hizmet sunar.

    + +

    Her isteği tek bir bilgilendirme sayfasına (veya betiğe) yönlendirmek + isterseniz AliasMatch veya + RewriteRule yönergesini + kullanabilirsiniz.

    +
    + +
    + Farklı portlardan <code>_default_</code> + +

    Önceki yapılandırmaya ek olarak 80. portta ayrı bir + _default_ sanal konağı kullanmak istersek...

    + + + Sunucu yapılandırması + + <VirtualHost _default_:80>
    + + DocumentRoot /siteler/default80
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost _default_:*>
    + + DocumentRoot /siteler/default
    + # ...
    +
    + </VirtualHost> +
    + +

    80. porttan hizmet sunan _default_ sanal konağı IP adresi + belirtilmeyen tüm istekleri yakalar, bunu yapabilmesi için yapılandırma + dosyasında tüm portlara hizmet sunan benzerinden önce yer almalıdır. Bu + durumda ana sunucu hiçbir isteğe yanıt vermeyecektir.

    +
    + +
    + Tek portluk <code>_default_</code> + +

    _default_ sanal konağının sadece 80. porttan hizmet + sunmasını istersek...

    + + + Sunucu yapılandırması + + <VirtualHost _default_:80>
    + DocumentRoot /siteler/default
    + ...
    + </VirtualHost> +
    + +

    80. porttan gelen IP adresi belirtilmemiş isteklere + _default_ sanal konağı, diğer portlardan gelen adres + belirtilmemiş isteklere ise ana sunucu hizmet verecektir.

    +
    + +
    + +
    Bir isme dayalı sanal konağı bir IP’ye dayalı + sanal konakla yansılamak + +

    İsme dayalı sanal konak örneklerinin 2. sinde adı + geçen falanca.dom bu örnekte kendi IP adresinden hizmet + veriyor olsun. İsme dayalı sanal konağı eski IP adresiyle kaydetmiş + vekiller ve isim sunucularından kaynaklanacak olası sorunlardan kaçınmak + için yansılama sırasında sanal konağı hem eski hem de yeni IP adresiyle + sunmamız lazım.

    + +

    Çözüm kolay, çünkü yapacağımız sadece VirtualHost + yönergesine yeni IP adresini (192.168.2.2) eklemek olacak.

    + + + Sunucu yapılandırması + + Listen 80
    + ServerName mesela.dom
    + DocumentRoot /siteler/mesela
    +
    + <VirtualHost 192.168.1.2>
    +
    + <VirtualHost 192.168.1.2 192.168.2.2>
    + + DocumentRoot /siteler/falanca
    + ServerName falanca.dom
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 192.168.1.2>
    + + DocumentRoot /siteler/faraza
    + ServerName faraza.dom
    + ServerAlias *.faraza.dom
    + # ...
    +
    + </VirtualHost> +
    + +

    Böylece sanal konağa hem yeni (bir IP’ye dayalı sanal konak olarak) + hem de eski adresinden (bir isme dayalı sanal konak olarak) + erişilebilecektir.

    + +
    + +
    + <code>ServerPath</code> yönergesinin kullanımı + +

    İsme dayalı iki sanal konağı olan bir sunucumuz olsun. Doğru sanal + konağa erişebilmek için istemcinin doğru Host: başlığı + göndermesi gerekir. Eski HTTP/1.0 istemcileri böyle bir başlık + göndermedikleri için Apache istemcinin hangi sanal konağa erişmek + istediğini bilemez (ve isteğe ilk sanal konaktan hizmet sunar). Daha iyi + bir geriye uyumluluk sağlamak için isme dayalı sanal konağa bir önek + bağlantısı içeren bir bilgilendirme sayfası sunmak üzere yeni bir sanal + konak oluşturabiliriz.

    + + + Sunucu yapılandırması + + NameVirtualHost 172.20.30.40
    +
    + <VirtualHost 172.20.30.40>
    + + # ilk sanal konak
    + DocumentRoot /siteler/baska
    + RewriteEngine On
    + RewriteRule ^/.* /siteler/baska/index.html
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + DocumentRoot /siteler/baska/bir
    + + ServerName bir.baska.tld
    + ServerPath /bir/
    + RewriteEngine On
    + RewriteRule ^(/bir/.*) /siteler/baska$1
    + # ...
    +
    + </VirtualHost>
    +
    + <VirtualHost 172.20.30.40>
    + + DocumentRoot /siteler/baska/iki
    + ServerName iki.baska.tld
    + ServerPath /iki/
    + RewriteEngine On
    + RewriteRule ^(/iki/.*) /siteler/baska$1
    + # ...
    +
    + </VirtualHost> +
    + +

    ServerPath yönergesinden dolayı + http://bir.baska.tld/bir/ şeklinde yapılan isteklere + daima “bir” sanal konağı hizmet sunacaktır.

    + +

    http://bir.baska.tld/ şeklinde yapılan isteklere ise + istemcinin doğru Host: başlığı göndermesi şartıyla + “bir” sanal konağı hizmet sunacaktır. İstemci, bir + Host: başlığı göndermediği takdirde ilk konaktan bir + bilgilendirme sayfası alacaktır.

    + +

    Yalnız buradaki bir tuhaflığa dikkat edin: Eğer istemci bir + Host: başlığı göndermeden + http://iki.baska.tld/bir/ şeklinde bir istek yaparsa bu + isteğe de “bir” sanal konağı hizmet sunacaktır.

    + +

    RewriteRule yönergesi, bir + istemcinin, bir URL öneki belirtsin ya da belirtmesin doğru + Host: başlığı gönderdiğinden emin olmak için + kullanılmıştır.

    + +
    + +
    diff --git a/docs/manual/vhosts/fd-limits.html b/docs/manual/vhosts/fd-limits.html index 932c75d7716..3cd6111932c 100644 --- a/docs/manual/vhosts/fd-limits.html +++ b/docs/manual/vhosts/fd-limits.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: fd-limits.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -6,10 +8,14 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: fd-limits.html.ja.euc-jp +URI: fd-limits.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: fd-limits.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: fd-limits.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/vhosts/fd-limits.html.en b/docs/manual/vhosts/fd-limits.html.en index dc10fc042af..7245d80103f 100644 --- a/docs/manual/vhosts/fd-limits.html.en +++ b/docs/manual/vhosts/fd-limits.html.en @@ -1,27 +1,35 @@ - -File Descriptor Limits - Apache HTTP Server +File Descriptor Limits - Apache HTTP Server Version 2.2 - - + + + +
    <-

    File Descriptor Limits

    +Apache > HTTP Server > Documentation > Version 2.2 > Virtual Hosts

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    File Descriptor Limits

    Available Languages:  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    @@ -85,7 +93,7 @@ statistical analysis of the various virtual hosts. This can be accomplished in the following manner.

    First, you will need to add the virtual host information to the log -entries. This can be done using the +entries. This can be done using the LogFormat directive, and the %v variable. Add this to the beginning of your log format string:

    @@ -98,7 +106,7 @@ CustomLog logs/multiple_vhost_log vhost

    This will create a log file in the common log format, but with the canonical virtual host (whatever appears in the ServerName directive) prepended to -each line. (See Custom Log Formats for +each line. (See mod_log_config for more about customizing your log files.)

    When you wish to split your log file into its component parts (one @@ -119,10 +127,32 @@ Each file will be called hostname.log.

    Available Languages:  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/fd-limits.html.fr b/docs/manual/vhosts/fd-limits.html.fr index e2e417dc3f2..f9a50359992 100644 --- a/docs/manual/vhosts/fd-limits.html.fr +++ b/docs/manual/vhosts/fd-limits.html.fr @@ -1,75 +1,88 @@ - -Limites des descripteurs de fichiers - Serveur Apache HTTP +Limites des descripteurs de fichiers - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    Limites des descripteurs de fichiers

    +Apache > Serveur HTTP > Documentation > Version 2.2 > Serveurs Virtuels

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Limites des descripteurs de fichiers

    Langues Disponibles:  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    -

    Quand de nombreux serveurs virtuels sont créés, Apache peut - dépasser les limites en descripteurs de fichiers ('file descriptors', - également appelés gestionnaires de fichiers) si chacun +

    Quand de nombreux serveurs virtuels sont créés, Apache peut + dépasser les limites en descripteurs de fichiers ('file descriptors', + également appelés gestionnaires de fichiers) si chacun des serveurs virtuels utilise ses propres fichiers journaux. Le - nombre total de descripteurs de fichiers utilisés par Apache est + nombre total de descripteurs de fichiers utilisés par Apache est d'un par fichier journal, un pour chacune des autres directives de fichiers journaux, plus un nombre constant compris entre 10 et 20 - pour son fonctionnement interne. Les systèmes d'exploitation Unix + pour son fonctionnement interne. Les systèmes d'exploitation Unix limitent le nombre de descripteurs de fichiers utilisables par processus ; une valeur courante pour cette limite est de 64, et - cette valeur peut le plus souvent être augmentée.

    + cette valeur peut le plus souvent être augmentée.

    -

    Apache tente d'accroître cette valeur limite si nécessaire, mais +

    Apache tente d'accroître cette valeur limite si nécessaire, mais sans y parvenir dans les cas suivants :

      -
    1. Le système d'exploitation ne permet pas l'utilisation d'appels - systèmes setrlimit().
    2. +
    3. Le système d'exploitation ne permet pas l'utilisation d'appels + systèmes setrlimit().
    4. L'appel setrlimit(RLIMIT_NOFILE) ne fonctionne pas - sur votre système d'exploitation (c'est le cas sous Solaris 2.3).
    5. + sur votre système d'exploitation (c'est le cas sous Solaris 2.3). -
    6. Le nombre de descripteurs de fichiers nécessaires à Apache - dépasse la limite physique du matériel.
    7. +
    8. Le nombre de descripteurs de fichiers nécessaires à Apache + dépasse la limite physique du matériel.
    9. -
    10. Le système impose d'autres limites sur l'utilisation des +
    11. Le système impose d'autres limites sur l'utilisation des descripteurs de fichiers, comme par exemple une limite sur les flux stdio, utilisables uniquement sur les descripteurs de - fichiers inférieurs à 256. (sous Solaris 2).
    12. + fichiers inférieurs à 256. (sous Solaris 2).
    -

    En cas de problème, Vous pouvez :

    +

    En cas de problème, Vous pouvez :

      -
    • Réduire le nombre de fichiers journaux, en ne spécifiant +
    • Réduire le nombre de fichiers journaux, en ne spécifiant aucun fichier journal dans les sections <VirtualHost>, en donc en envoyant les informations aux fichiers journaux du - serveur principal (Voir Éclatement des + serveur principal (Voir Éclatement des fichiers journaux ci-dessous pour plus d'informations sur - cette possibilité).
    • + cette possibilité).
    • - Dans les cas 1 ou 2 (évoqués ci-dessus), augmentez la limite sur - les descripteurs de fichiers avant le démarrage d'Apache, au + Dans les cas 1 ou 2 (évoqués ci-dessus), augmentez la limite sur + les descripteurs de fichiers avant le démarrage d'Apache, au moyen d'un script comme

      @@ -85,57 +98,78 @@

      top
      -

      Éclatement des fichiers journaux

      +

      Éclatement des fichiers journaux

      -

      Lorsque vous choisissez d'enregistrer les informations émanant de -plusieurs serveurs virtuels dans un même fichier journal, vous voudrez -ensuite pouvoir scinder ces informations à des fins de statistiques, par -exemple, sur les différents serveurs virtuels. Il est possible de procéder -de la manière suivante :

      +

      Lorsque vous choisissez d'enregistrer les informations émanant de +plusieurs serveurs virtuels dans un même fichier journal, vous voudrez +ensuite pouvoir scinder ces informations à des fins de statistiques, par +exemple, sur les différents serveurs virtuels. Il est possible de procéder +de la manière suivante :

      -

      Tout d'abord, vous devez ajouter le nom du serveur virtuel à chaque -entrée du journal. Ceci se paramètre au moyen de la directive - LogFormat et de la -variable %v. Ajoutez cette variable au début de la chaîne -de définition du format de journalisations :

      +

      Tout d'abord, vous devez ajouter le nom du serveur virtuel à chaque +entrée du journal. Ceci se paramètre au moyen de la directive + LogFormat et de la +variable %v. Ajoutez cette variable au début de la chaîne +de définition du format de journalisations :

      LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
      CustomLog logs/multiple_vhost_log vhost

      -

      Cette configuration va provoquer la création d'un fichier de +

      Cette configuration va provoquer la création d'un fichier de journalisation au format standard (CLF : 'Common Log Format'), mais dont -chaque ligne débutera par le nom canonique du serveur virtuel (spécifié +chaque ligne débutera par le nom canonique du serveur virtuel (spécifié par la directive ServerName). -(Voir Formats de journalisation -personnalisés pour d'autres informations sur la +(Voir mod_log_config pour d'autres informations sur la personnalisation des fichiers journaux.)

      -

      Au moment de séparer les informations du fichier journal en un fichier +

      Au moment de séparer les informations du fichier journal en un fichier par serveur virtuel, le programme -split-logfile peut être -utilisé. Ce programme peut être trouvé dans le répertoire +split-logfile peut être +utilisé. Ce programme peut être trouvé dans le répertoire support de la distribution d'Apache.

      -

      Exécutez ce programme au moyen de la commande :

      +

      Exécutez ce programme au moyen de la commande :

      split-logfile < /logs/multiple_vhost_log

      -

      Une fois exécuté avec le nom du fichier contenant tous les journaux, -ce programme va générer un fichier pour chacun des serveurs virtuels -qui apparaît dans le fichier d'entrée. Chaque fichier en sortie est -nommé nomduserveur.log.

      +

      Une fois exécuté avec le nom du fichier contenant tous les journaux, +ce programme va générer un fichier pour chacun des serveurs virtuels +qui apparaît dans le fichier d'entrée. Chaque fichier en sortie est +nommé nomduserveur.log.

    Langues Disponibles:  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/fd-limits.html.ja.euc-jp b/docs/manual/vhosts/fd-limits.html.ja.euc-jp deleted file mode 100644 index 70f65e26e1a..00000000000 --- a/docs/manual/vhosts/fd-limits.html.ja.euc-jp +++ /dev/null @@ -1,125 +0,0 @@ - - - -¥ե¡¥¤¥뵭½һҤ賦 - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥ե¡¥¤¥뵭½һҤ賦

    -
    -

    Available Languages:  en  | - fr  | - ja  | - ko 

    -
    - - -

    ¤¿¤¯¤µ¤ó¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò±¿ÍѤ¹¤ë¾ì¹硢¤⤷¡¢ - ³ƥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ´¤Ȥ˰ۤʤë¥í¥°¥ե¡¥¤¥뤬»ØÄꤷ¤Ƥ¢¤ë¤ȡ¢ - Apache ¤¬¥ե¡¥¤¥뵭½һÒ (¥ե¡¥¤¥ë¥ϥó¥ɥë¤Ȥâ¸ƤФì¤ޤ¹) - ¤ò»Ȥ¤ÀڤäƤ·¤ޤ¦¤³¤Ȥ¬¤¢¤ê¤ޤ¹¡£Apache ¤¬»ÈÍѤ¹¤ë¥ե¡¥¤¥ë - µ­½һҤοô¤ϡ¢³ƥ¨¥顼¥í¥°¥ե¡¥¤¥ë¤ˤĤ­ 1 ¤ġ¢¾¤Υí¥°¥ե¡¥¤¥ë¤Î - ¥ǥ£¥쥯¥ƥ£¥֤ˤĤ­ 1 ¤ġ¢¤µ¤é¤ËÆâÉô¤ǻÈÍѤ¹¤ë 10 ¤«¤é 20¡¢ - ¤ιç·פˤʤê¤ޤ¹¡£Unix ¥ª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤Ǥϥץí¥»¥¹¤´¤ȤË - »ÈÍѲÄǽ¤ʥե¡¥¤¥뵭½һҤοô¤òÀ©¸¤·¤Ƥ¤¤ޤ¹¡£¤¿¤¤¤Ƥ¤¤ξì¹ç¤Ï 64 ¤ǡ¢ - ÉáÄ̤ÏÂ礭¤ÊÃͤΥϡ¼¥ɥê¥ߥåȤޤÇÁý¤䤹¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    Apache ¤ÏɬÍפ˱þ¤¸¤ƾ帤ò³ÈÂ礷¤褦¤Ȼî¤ߤޤ¹¤¬¡¢ - °ʲ¼¤Τ褦¤ʾì¹ç¤ˤϤ¦¤ޤ¯¤¤¤«¤ʤ¤¤«¤⤷¤ì¤ޤ»¤ó¡£

    - -
      -
    1. ÍøÍѤ·¤Ƥ¤¤륷¥¹¥ƥà¤Ç setrlimit() - ¥·¥¹¥ƥॳ¡¼¥뤬Ä󶡤µ¤ì¤Ƥ¤¤ʤ¤¡£
    2. - -
    3. ¥·¥¹¥ƥà¾å¤Ç setrlimit(RLIMIT_NOFILE) ¤¬ưº¤ʤ¤ - (¤¿¤Ȥ¨¤Ð Solaris 2.3 ¤Τ褦¤Ë)¡£
    4. - -
    5. Í׵ᤵ¤ì¤ë¥ե¡¥¤¥뵭½һҤοô¤¬ - ¥ϡ¼¥ɥê¥ߥåȤòͤ¨¤Ƥ·¤ޤ¦¡£
    6. - -
    7. ¥·¥¹¥ƥà¤˥ե¡¥¤¥뵭½һҤ˴ؤ·¤ÆÊ̤ÎÀ©¸¤¬¸ºߤ·¤Ƥ·¤ޤäƤ¤¤롣 - ¤¿¤Ȥ¨¤С¢stdio ¥¹¥ȥ꡼¥à¤Ǥϥե¡¥¤¥뵭½һҤò 256 °ʾå»Ȥ¨¤ʤ¤ - (Solaris 2)¡¢¤ʤɡ£
    8. -
    - -

    ÌäÂ꤬ȯÀ¸¤·¤¿»þ¤˼è¤êÆÀ¤ëÂнèÊýˡ¤ϼ¡¤ΤȤª¤ê:

    - -
      -
    • ¥í¥°¥ե¡¥¤¥ë¤οô¤򸺤餹¡£<VirtualHost> - ¥»¥¯¥·¥ç¥ó¤ǥí¥°¥ե¡¥¤¥ë¤ò»ØÄꤻ¤º¡¢¥ᥤ¥ó¤Υí¥°¥ե¡¥¤¥ë¤ˤΤߵ­Ͽ¤¹¤롣 - (¤³¤ì¤˴ؤ¹¤ë¾ܤ·¤¤¾ðÊó¤ϰʲ¼¤Î¥í¥°¥ե¡¥¤¥ë¤Îʬ³ä¤òÆɤó¤Ǥ¯¤À¤µ¤¤¡£)
    • - -
    • - ¤⤷¡¢Á°½ҤÎ 1 ¤ޤ¿¤Ï 2 ¤ξì¹ç¤Ǥ¢¤ì¤С¢ - Apache ¤òµ¯ư¤¹¤ëÁ°¤˥ե¡¥¤¥뵭½һҤòÁý¤䤷¤ޤ¹¡£ - ¤¿¤Ȥ¨¤м¡¤Τ褦¤ʥ¹¥¯¥ê¥ץȤò»Ȥ¤¤ޤ¹¡£ - -

      - #!/bin/sh
      - ulimit -S -n 100
      - exec httpd
      -

      -
    • -
    -
    -
    top
    -
    -

    ¥í¥°¥ե¡¥¤¥ë¤Îʬ³ä

    - -

    ʣ¿ô¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤΥí¥°¤òƱ¤¸¥í¥°¥ե¡¥¤¥ë¤˼ý½¸¤·¤褦¤Ȥ·¤Ƥ¤¤ë¤Ȥ­¤ˤϡ¢ -³ƥС¼¥Á¥ã¥ë¥ۥ¹¥ȤˤĤ¤¤ÆÅý·×Ū¤ʲòÀϤò¼¹Ԥ¹¤뤿¤á¤˸å¤ǥí¥°¥ե¡¥¤¥ë¤ò -ʬ³䤷¤¿¤¯¤ʤ뤫¤⤷¤ì¤ޤ»¤󡣤³¤ì¤ϰʲ¼¤Τ褦¤ˤ·¤Ƽ¸½¤Ǥ­¤ޤ¹¡£

    - -

    ¤ޤº¡¢¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤξðÊó¤ò¥í¥°¤Υ¨¥ó¥ȥê¤ËÄɲ乤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ -¤³¤ì¤Ï LogFormat -¥ǥ£¥쥯¥ƥ£¥֤Î %v Êѿô¤ò»Ȥ¦¤³¤ȤǤǤ­¤ޤ¹¡£ -¤³¤ì¤ò¥í¥°¤Υե©¡¼¥ޥåÈʸ»úÎó¤ÎÀèƬ¤ËÄɲä·¤ޤ¹:

    - -

    -LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
    -CustomLog logs/multiple_vhost_log vhost -

    - -

    ¤³¤ì¤Ï common log format ¤Υí¥°¤òºîÀ®¤·¤ޤ¹¤¬¡¢¤½¤줾¤ì¤ιԤÎÀèƬ¤Ë -Àµµ¬²½¤µ¤줿¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎ̾Á° -(ServerName -¥ǥ£¥쥯¥ƥ£¥֤˽񤫤ì¤Ƥ¤¤ë¤â¤Î) ¤¬Éղ䵤ì¤ޤ¹¡£ -(¥í¥°¥ե¡¥¤¥ë¤Υ«¥¹¥¿¥ޥ¤¥º¤ξܺ٤ˤĤ¤¤ƤÏ Custom Log Formats ¤ò -Æɤó¤Ǥ¯¤À¤µ¤¤¡£)

    - -

    ¥í¥°¥ե¡¥¤¥ë¤ò³ÆÉôʬ (¥С¼¥Á¥ã¥ë¥ۥ¹¥ÈËè¤Ë 1 ¥ե¡¥¤¥ë) ¤Ëʬ¤±¤¿¤¤¤Ȥ­¤ϡ¢ -split-logfile -¤ò»ȤäƹԤʤ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£¥ץí¥°¥é¥à¤Ï Apache ÇÛÉۤÎ -support ¥ǥ£¥쥯¥ȥê¤ˤ¢¤ê¤ޤ¹¡£

    - -

    °ʲ¼¤Τ褦¤ʥ³¥ޥó¥ɤǤ³¤Υץí¥°¥é¥à¤ò¼¹Ԥ·¤ޤ¹:

    - -

    -split-logfile < /logs/multiple_vhost_log -

    - -

    ¤³¤Υץí¥°¥é¥à¤ϥС¼¥Á¥ã¥ë¥ۥ¹¥ȤΥí¥°¥ե¡¥¤¥ë¤Î̾Á°¤ȤȤâ¤˼¹Ԥµ¤졢 -¥í¥°¥ե¡¥¤¥ë¤˸½¤ì¤뤽¤줾¤ì¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ÈËè¤˰ì¤ĤΥե¡¥¤¥ë¤òºîÀ®¤·¤ޤ¹¡£ -¤½¤줾¤ì¤Υե¡¥¤¥ë¤Ï ¥ۥ¹¥È̾.log ¤Ȥ¤¤¦̾Á°¤ˤʤê¤ޤ¹¡£

    - -
    -
    -

    Available Languages:  en  | - fr  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/vhosts/fd-limits.html.ja.utf8 b/docs/manual/vhosts/fd-limits.html.ja.utf8 new file mode 100644 index 00000000000..33a00605dda --- /dev/null +++ b/docs/manual/vhosts/fd-limits.html.ja.utf8 @@ -0,0 +1,159 @@ + + + + + +ファイル記述子の限界 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ファイル記述子の限界

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + +

    たくさんのバーチャルホストを運用する場合、もし、 + 各バーチャルホストごとに異なるログファイルが指定してあると、 + Apache がファイル記述子 (ファイルハンドルとも呼ばれます) + を使い切ってしまうことがあります。Apache が使用するファイル + 記述子の数は、各エラーログファイルにつき 1 つ、他のログファイルの + ディレクティブにつき 1 つ、さらに内部で使用する 10 から 20、 + の合計になります。Unix オペレーティングシステムではプロセスごとに + 使用可能なファイル記述子の数を制限しています。たいていの場合は 64 で、 + 普通は大きな値のハードリミットまで増やすことができます。

    + +

    Apache は必要に応じて上限を拡大しようと試みますが、 + 以下のような場合にはうまくいかないかもしれません。

    + +
      +
    1. 利用しているシステムで setrlimit() + システムコールが提供されていない。
    2. + +
    3. システム上で setrlimit(RLIMIT_NOFILE) が動作しない + (たとえば Solaris 2.3 のように)。
    4. + +
    5. 要求されるファイル記述子の数が + ハードリミットを超えてしまう。
    6. + +
    7. システムにファイル記述子に関して別の制限が存在してしまっている。 + たとえば、stdio ストリームではファイル記述子を 256 以上使えない + (Solaris 2)、など。
    8. +
    + +

    問題が発生した時に取り得る対処方法は次のとおり:

    + +
      +
    • ログファイルの数を減らす。<VirtualHost> + セクションでログファイルを指定せず、メインのログファイルにのみ記録する。 + (これに関する詳しい情報は以下のログファイルの分割を読んでください。)
    • + +
    • + もし、前述の 1 または 2 の場合であれば、 + Apache を起動する前にファイル記述子を増やします。 + たとえば次のようなスクリプトを使います。 + +

      + #!/bin/sh
      + ulimit -S -n 100
      + exec httpd
      +

      +
    • +
    +
    +
    top
    +
    +

    ログファイルの分割

    + +

    複数のバーチャルホストのログを同じログファイルに収集しようとしているときには、 +各バーチャルホストについて統計的な解析を実行するために後でログファイルを +分割したくなるかもしれません。これは以下のようにして実現できます。

    + +

    まず、バーチャルホストの情報をログのエントリに追加する必要があります。 +これは LogFormat +ディレクティブの %v 変数を使うことでできます。 +これをログのフォーマット文字列の先頭に追加します:

    + +

    +LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
    +CustomLog logs/multiple_vhost_log vhost +

    + +

    これは common log format のログを作成しますが、それぞれの行の先頭に +正規化されたバーチャルホストの名前 +(ServerName +ディレクティブに書かれているもの) が付加されます。 +(ログファイルのカスタマイズの詳細については Custom Log Formats を +読んでください。)

    + +

    ログファイルを各部分 (バーチャルホスト毎に 1 ファイル) に分けたいときは、 +split-logfile +を使って行なうことができます。プログラムは Apache 配布の +support ディレクトリにあります。

    + +

    以下のようなコマンドでこのプログラムを実行します:

    + +

    +split-logfile < /logs/multiple_vhost_log +

    + +

    このプログラムはバーチャルホストのログファイルの名前とともに実行され、 +ログファイルに現れるそれぞれのバーチャルホスト毎に一つのファイルを作成します。 +それぞれのファイルは ホスト名.log という名前になります。

    + +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/fd-limits.html.ko.euc-kr b/docs/manual/vhosts/fd-limits.html.ko.euc-kr index bdc97afc023..9f7c5864ebc 100644 --- a/docs/manual/vhosts/fd-limits.html.ko.euc-kr +++ b/docs/manual/vhosts/fd-limits.html.ko.euc-kr @@ -1,28 +1,38 @@ - -ÆÄÀϱâ¼úÀÚ(file descriptor) ÇѰè - Apache HTTP Server +ÆÄÀϱâ¼úÀÚ(file descriptor) ÇѰè - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ÆÄÀϱâ¼úÀÚ(file descriptor) ÇѰè

    +Apache > HTTP Server > Documentation > Version 2.2 > °¡»óȣ½ºƮ

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ÆÄÀϱâ¼úÀÚ(file descriptor) ÇѰè

    °¡´ÉÇÑ ¾ð¾î:  en  |  fr  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    °¡»óȣ½ºƮ¸¦ ¸¹ÀÌ »ç¿ëÇϰí °¢ °¡»óȣ½ºƮ¿¡ ¼­·Î ´ٸ¥ @@ -115,8 +125,30 @@ split-logfile < /logs/multiple_vhost_log

    °¡´ÉÇÑ ¾ð¾î:  en  |  fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/fd-limits.html.tr.utf8 b/docs/manual/vhosts/fd-limits.html.tr.utf8 new file mode 100644 index 00000000000..7806c0c87ec --- /dev/null +++ b/docs/manual/vhosts/fd-limits.html.tr.utf8 @@ -0,0 +1,153 @@ + + + + + +Dosya Tanıtıcı Sınırları - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Dosya Tanıtıcı Sınırları

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + + +

    Çok büyük sayıda sanal konak kullanıyorsanız ve bunların her biri için + ayrı günlük kayıtları tutuyorsanız, Apache dosya tanıtıcılarını + tüketebilir. Apache tarafından, dahili olarak 10-20 dosya tanıtıcıya ek + olarak her hata günlüğü için bir ve her diğer günlük kaydı için bir dosya + tanıcı kullanılır. Unix işletim sisteminde dosya tanıtıcıların sayısı + süreç başına 64 taneyle sınırlıdır ve gerekirse donanıma bağlı olarak + arttırılabilir.

    + +

    Apache gerektiğinde bu sınırı kendisi arttırmaya çalışırsa da bu her + zaman mümkün olmaz. Şöyle ki:

    + +
      +
    1. Sisteminiz setrlimit() sistem çağrısını + sağlamıyordur.
    2. + +
    3. Sisteminizde setrlimit(RLIMIT_NOFILE) çağrısı hiçbir işe + yaramıyordur (örneğin, Solaris 2.3).
    4. + +
    5. Dosya tanıtıcılarının sayısı donanıma bağlı olarak daha fazla + arttırılamıyordur.
    6. + +
    7. Sisteminiz dosya tanıtıcı sayısını başka sınırlara bağlı kılmıştır: + örneğin stdio akımları ile ilgili sınır, dosya tanıtıcı sayısının + 256’nın altında ollmasını gerektiriyordur (Solaris 2).
    8. +
    + +

    Böyle sorunlar karşısında yapabilecekleriniz:

    + +
    • Ana günlük dosyaları hariç, <VirtualHost> bölümlerinde günlük dosyası + belirtmeyerek günlük dosyası sayısını düşürürsünüz. (Bunun nasıl + yapılacağını öğrenmek için Günlük kayıtlarının + ayrıştırılması bölümüne bakınız.)
    • + +
    • Sisteminizde serbest dosya tanıtıcı sayısı 1-2 civarına düşerse + Apache’yi aşağıdaki gibi bir betikle yeniden çalıştırarak dosya + tanıtıcı sayısını arttırabilirsiniz: + +

      + #!/bin/sh
      + ulimit -S -n 100
      + exec httpd
      +

      +
    • +
    + +
    +
    top
    +
    +

    Günlük kayıtlarının ayrıştırılması

    + +

    Günlük dosyalarını çok sayıda sanal konak için ortak olarak + kullanıyorsanız, sanal konaklar için istatistiksel çözümlemeler yapmak + amacıyla sırası geldiğinde bunları ayrıştırabilirsiniz. Bu işlem aşağıda + anlatıldığı gibi yapılabilir.

    + +

    İlk iş olarak, sanal konak bilgilerini günlük girdilerine eklemeniz + gerekir. Bu işlem, LogFormat yönergesi ve + %v biçem değişkeni ile yapılabilir. Günlük girdisi biçem + dizgesinin başına bunu ekleyiniz:

    + +

    + LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
    + CustomLog logs/multiple_vhost_log vhost +

    + +

    Bu yapılandırma ile her günlük kaydının başında sanal konağın + ServerName yönergesine belirtilen + ismi eklenir. (Günlük dosyalarınızın kişiselleştirilmesi ile ilgili daha + fazla bilgi için mod_log_config belgesine bakınız.)

    + +

    Günlük dosyanızdaki kayıtları bileşenlere göre gruplamak isterseniz + split-logfile + programını kullanabilirsiniz. Bu programı Apache dağıtımının + support dizininde bulabilirsiniz.

    + +

    Programı aşağıdaki gibi çalıştırın:

    + +

    + split-logfile < /logs/multiple_vhost_log +

    + +

    Bu programı sanal konaklar için tuttuğunuz günlük dosyasının ismini + argüman olarak belirterek çalıştırdığınızda o dosyadaki kayıtlardan her + sanal konak için ayrı bir günlük dosyası + (konakadı.log) üretilir.

    + +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/fd-limits.xml b/docs/manual/vhosts/fd-limits.xml index 54a3563aba5..d5b2feeba69 100644 --- a/docs/manual/vhosts/fd-limits.xml +++ b/docs/manual/vhosts/fd-limits.xml @@ -4,12 +4,12 @@ - + + -
    Éclatement des fichiers journaux +
    Éclatement des fichiers journaux -

    Lorsque vous choisissez d'enregistrer les informations émanant de -plusieurs serveurs virtuels dans un même fichier journal, vous voudrez -ensuite pouvoir scinder ces informations à des fins de statistiques, par -exemple, sur les différents serveurs virtuels. Il est possible de procéder -de la manière suivante :

    +

    Lorsque vous choisissez d'enregistrer les informations émanant de +plusieurs serveurs virtuels dans un même fichier journal, vous voudrez +ensuite pouvoir scinder ces informations à des fins de statistiques, par +exemple, sur les différents serveurs virtuels. Il est possible de procéder +de la manière suivante :

    -

    Tout d'abord, vous devez ajouter le nom du serveur virtuel à chaque -entrée du journal. Ceci se paramètre au moyen de la directive +

    Tout d'abord, vous devez ajouter le nom du serveur virtuel à chaque +entrée du journal. Ceci se paramètre au moyen de la directive LogFormat et de la -variable %v. Ajoutez cette variable au début de la chaîne -de définition du format de journalisations :

    +variable %v. Ajoutez cette variable au début de la chaîne +de définition du format de journalisations :

    LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
    CustomLog logs/multiple_vhost_log vhost
    -

    Cette configuration va provoquer la création d'un fichier de +

    Cette configuration va provoquer la création d'un fichier de journalisation au format standard (CLF : 'Common Log Format'), mais dont -chaque ligne débutera par le nom canonique du serveur virtuel (spécifié +chaque ligne débutera par le nom canonique du serveur virtuel (spécifié par la directive ServerName). -(Voir Formats de journalisation -personnalisés pour d'autres informations sur la +(Voir mod_log_config pour d'autres informations sur la personnalisation des fichiers journaux.)

    -

    Au moment de séparer les informations du fichier journal en un fichier +

    Au moment de séparer les informations du fichier journal en un fichier par serveur virtuel, le programme -split-logfile peut être -utilisé. Ce programme peut être trouvé dans le répertoire +split-logfile peut être +utilisé. Ce programme peut être trouvé dans le répertoire support de la distribution d'Apache.

    -

    Exécutez ce programme au moyen de la commande :

    +

    Exécutez ce programme au moyen de la commande :

    split-logfile < /logs/multiple_vhost_log -

    Une fois exécuté avec le nom du fichier contenant tous les journaux, -ce programme va générer un fichier pour chacun des serveurs virtuels -qui apparaît dans le fichier d'entrée. Chaque fichier en sortie est -nommé nomduserveur.log.

    +

    Une fois exécuté avec le nom du fichier contenant tous les journaux, +ce programme va générer un fichier pour chacun des serveurs virtuels +qui apparaît dans le fichier d'entrée. Chaque fichier en sortie est +nommé nomduserveur.log.

    diff --git a/docs/manual/vhosts/fd-limits.xml.ja b/docs/manual/vhosts/fd-limits.xml.ja index 41d08178371..ed97eabeb25 100644 --- a/docs/manual/vhosts/fd-limits.xml.ja +++ b/docs/manual/vhosts/fd-limits.xml.ja @@ -1,15 +1,15 @@ - + - + -$B%P!<%A%c%k%[%9%H(B - $B%U%!%$%k5-=R;R$N8B3&(B +バーチャルホスト + ファイル記述子の限界 -

    $B$?$/$5$s$N%P!<%A%c%k%[%9%H$r1?MQ$9$k>l9g!"$b$7!"(B - $B3F%P!<%A%c%k%[%9%H$4$H$K0[$J$k%m%0%U%!%$%k$,;XDj$7$F$"$k$H!"(B - Apache $B$,%U%!%$%k5-=R;R(B ($B%U%!%$%k%O%s%I%k(B$B$H$b8F$P$l$^$9(B) - $B$r;H$$@Z$C$F$7$^$&$3$H$,$"$j$^$9!#(BApache $B$,;HMQ$9$k%U%!%$%k(B - $B5-=R;R$N?t$O!"3F%(%i!<%m%0%U%!%$%k$K$D$-(B 1 $B$D!"B>$N%m%0%U%!%$%k$N(B - $B%G%#%l%/%F%#%V$K$D$-(B 1 $B$D!"$5$i$KFbIt$G;HMQ$9$k(B 10 $B$+$i(B 20$B!"(B - $B$N9g7W$K$J$j$^$9!#(BUnix $B%*%Z%l!<%F%#%s%0%7%9%F%`$G$O%W%m%;%9$4$H$K(B - $B;HMQ2DG=$J%U%!%$%k5-=R;R$N?t$r@)8B$7$F$$$^$9!#$?$$$F$$$N>l9g$O(B 64 $B$G!"(B - $BIaDL$OBg$-$JCM$N%O!<%I%j%_%C%H$^$GA}$d$9$3$H$,$G$-$^$9!#(B

    +

    たくさんのバーチャルホストを運用する場合、もし、 + 各バーチャルホストごとに異なるログファイルが指定してあると、 + Apache がファイル記述子 (ファイルハンドルとも呼ばれます) + を使い切ってしまうことがあります。Apache が使用するファイル + 記述子の数は、各エラーログファイルにつき 1 つ、他のログファイルの + ディレクティブにつき 1 つ、さらに内部で使用する 10 から 20、 + の合計になります。Unix オペレーティングシステムではプロセスごとに + 使用可能なファイル記述子の数を制限しています。たいていの場合は 64 で、 + 普通は大きな値のハードリミットまで増やすことができます。

    -

    Apache $B$OI,MW$K1~$8$F>e8B$r3HBg$7$h$&$H;n$_$^$9$,!"(B - $B0J2<$N$h$&$J>l9g$K$O$&$^$/$$$+$J$$$+$b$7$l$^$;$s!#(B

    +

    Apache は必要に応じて上限を拡大しようと試みますが、 + 以下のような場合にはうまくいかないかもしれません。

      -
    1. $BMxMQ$7$F$$$k%7%9%F%`$G(B setrlimit() - $B%7%9%F%`%3!<%k$,Ds6!$5$l$F$$$J$$!#(B
    2. +
    3. 利用しているシステムで setrlimit() + システムコールが提供されていない。
    4. -
    5. $B%7%9%F%`>e$G(B setrlimit(RLIMIT_NOFILE) $B$,F0:n$7$J$$(B - ($B$?$H$($P(B Solaris 2.3 $B$N$h$&$K(B)$B!#(B
    6. +
    7. システム上で setrlimit(RLIMIT_NOFILE) が動作しない + (たとえば Solaris 2.3 のように)。
    8. -
    9. $BMW5a$5$l$k%U%!%$%k5-=R;R$N?t$,(B - $B%O!<%I%j%_%C%H$rD6$($F$7$^$&!#(B
    10. +
    11. 要求されるファイル記述子の数が + ハードリミットを超えてしまう。
    12. -
    13. $B%7%9%F%`$K%U%!%$%k5-=R;R$K4X$7$FJL$N@)8B$,B8:_$7$F$7$^$C$F$$$k!#(B - $B$?$H$($P!"(Bstdio $B%9%H%j!<%`$G$O%U%!%$%k5-=R;R$r(B 256 $B0J>e;H$($J$$(B - (Solaris 2)$B!"$J$I!#(B
    14. +
    15. システムにファイル記述子に関して別の制限が存在してしまっている。 + たとえば、stdio ストリームではファイル記述子を 256 以上使えない + (Solaris 2)、など。
    -

    $BLdBj$,H/@8$7$?;~$K +

    問題が発生した時に取り得る対処方法は次のとおり:

      -
    • $B%m%0%U%!%$%k$N?t$r8:$i$9!#(Bログファイルの数を減らす。VirtualHost - $B%;%/%7%g%s$G%m%0%U%!%$%k$r;XDj$;$:!"%a%$%s$N%m%0%U%!%$%k$K$N$_5-O?$9$k!#(B - ($B$3$l$K4X$9$k>\$7$$>pJs$O0J2<$N(B$B%m%0%U%!%$%k$NJ,3d(B$B$rFI$s$G$/$@$5$$!#(B)
    • + セクションでログファイルを指定せず、メインのログファイルにのみ記録する。 + (これに関する詳しい情報は以下のログファイルの分割を読んでください。)
    • - $B$b$7!"A0=R$N(B 1 $B$^$?$O(B 2 $B$N>l9g$G$"$l$P!"(B - Apache $B$r5/F0$9$kA0$K%U%!%$%k5-=R;R$rA}$d$7$^$9!#(B - $B$?$H$($P #!/bin/sh
      @@ -77,44 +77,44 @@
    -
    $B%m%0%U%!%$%k$NJ,3d(B +
    ログファイルの分割 -

    $BJ#?t$N%P!<%A%c%k%[%9%H$N%m%0$rF1$8%m%0%U%!%$%k$K<}=8$7$h$&$H$7$F$$$k$H$-$K$O!"(B -$B3F%P!<%A%c%k%[%9%H$K$D$$$FE}7WE*$J2r@O$r +

    複数のバーチャルホストのログを同じログファイルに収集しようとしているときには、 +各バーチャルホストについて統計的な解析を実行するために後でログファイルを +分割したくなるかもしれません。これは以下のようにして実現できます。

    -

    $B$^$:!"%P!<%A%c%k%[%9%H$N>pJs$r%m%0$N%(%s%H%j$KDI2C$9$kI,MW$,$"$j$^$9!#(B -$B$3$l$O(B LogFormat -$B%G%#%l%/%F%#%V$N(B %v $BJQ?t$r;H$&$3$H$G$G$-$^$9!#(B -$B$3$l$r%m%0$N%U%)!<%^%C%HJ8;zNs$N@hF,$KDI2C$7$^$9(B:

    +

    まず、バーチャルホストの情報をログのエントリに追加する必要があります。 +これは LogFormat +ディレクティブの %v 変数を使うことでできます。 +これをログのフォーマット文字列の先頭に追加します:

    LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
    CustomLog logs/multiple_vhost_log vhost
    -

    $B$3$l$O(B common log format $B$N%m%0$r:n@.$7$^$9$,!"$=$l$>$l$N9T$N@hF,$K(B -$B@55,2=$5$l$?%P!<%A%c%k%[%9%H$NL>A0(B +

    これは common log format のログを作成しますが、それぞれの行の先頭に +正規化されたバーチャルホストの名前 (ServerName -$B%G%#%l%/%F%#%V$K=q$+$l$F$$$k$b$N(B) $B$,IU2C$5$l$^$9!#(B -($B%m%0%U%!%$%k$N%+%9%?%^%$%:$N>\:Y$K$D$$$F$O(B Custom Log Formats $B$r(B -$BFI$s$G$/$@$5$$!#(B)

    +ディレクティブに書かれているもの) が付加されます。 +(ログファイルのカスタマイズの詳細については Custom Log Formats を +読んでください。)

    -

    $B%m%0%U%!%$%k$r3FItJ,(B ($B%P!<%A%c%k%[%9%HKh$K(B 1 $B%U%!%$%k(B) $B$KJ,$1$?$$$H$-$O!"(B +

    ログファイルを各部分 (バーチャルホスト毎に 1 ファイル) に分けたいときは、 split-logfile -$B$r;H$C$F9T$J$&$3$H$,$G$-$^$9!#%W%m%0%i%`$O(B Apache $BG[I[$N(B -support $B%G%#%l%/%H%j$K$"$j$^$9!#(B

    +を使って行なうことができます。プログラムは Apache 配布の +support ディレクトリにあります。

    -

    $B0J2<$N$h$&$J%3%^%s%I$G$3$N%W%m%0%i%`$r +

    以下のようなコマンドでこのプログラムを実行します:

    split-logfile < /logs/multiple_vhost_log -

    $B$3$N%W%m%0%i%`$O%P!<%A%c%k%[%9%H$N%m%0%U%!%$%k$NL>A0$H$H$b$K$l$N%P!<%A%c%k%[%9%HKh$K0l$D$N%U%!%$%k$r:n@.$7$^$9!#(B -$B$=$l$>$l$N%U%!%$%k$O(B $B%[%9%HL>(B.log $B$H$$$&L>A0$K$J$j$^$9!#(B

    +

    このプログラムはバーチャルホストのログファイルの名前とともに実行され、 +ログファイルに現れるそれぞれのバーチャルホスト毎に一つのファイルを作成します。 +それぞれのファイルは ホスト名.log という名前になります。

    diff --git a/docs/manual/vhosts/fd-limits.xml.ko b/docs/manual/vhosts/fd-limits.xml.ko index 53c75e22afa..85028a2df31 100644 --- a/docs/manual/vhosts/fd-limits.xml.ko +++ b/docs/manual/vhosts/fd-limits.xml.ko @@ -1,15 +1,15 @@ - + - + fd-limits /vhosts/ .. @@ -8,7 +9,8 @@ en fr - ja - ko + ja + ko + tr diff --git a/docs/manual/vhosts/fd-limits.xml.tr b/docs/manual/vhosts/fd-limits.xml.tr new file mode 100644 index 00000000000..7e903466bdd --- /dev/null +++ b/docs/manual/vhosts/fd-limits.xml.tr @@ -0,0 +1,122 @@ + + + + + + + + + +Sanal Konaklar + Dosya Tanıtıcı Sınırları + + + +

    Çok büyük sayıda sanal konak kullanıyorsanız ve bunların her biri için + ayrı günlük kayıtları tutuyorsanız, Apache dosya tanıtıcılarını + tüketebilir. Apache tarafından, dahili olarak 10-20 dosya tanıtıcıya ek + olarak her hata günlüğü için bir ve her diğer günlük kaydı için bir dosya + tanıcı kullanılır. Unix işletim sisteminde dosya tanıtıcıların sayısı + süreç başına 64 taneyle sınırlıdır ve gerekirse donanıma bağlı olarak + arttırılabilir.

    + +

    Apache gerektiğinde bu sınırı kendisi arttırmaya çalışırsa da bu her + zaman mümkün olmaz. Şöyle ki:

    + +
      +
    1. Sisteminiz setrlimit() sistem çağrısını + sağlamıyordur.
    2. + +
    3. Sisteminizde setrlimit(RLIMIT_NOFILE) çağrısı hiçbir işe + yaramıyordur (örneğin, Solaris 2.3).
    4. + +
    5. Dosya tanıtıcılarının sayısı donanıma bağlı olarak daha fazla + arttırılamıyordur.
    6. + +
    7. Sisteminiz dosya tanıtıcı sayısını başka sınırlara bağlı kılmıştır: + örneğin stdio akımları ile ilgili sınır, dosya tanıtıcı sayısının + 256’nın altında ollmasını gerektiriyordur (Solaris 2).
    8. +
    + +

    Böyle sorunlar karşısında yapabilecekleriniz:

    + +
    • Ana günlük dosyaları hariç, VirtualHost bölümlerinde günlük dosyası + belirtmeyerek günlük dosyası sayısını düşürürsünüz. (Bunun nasıl + yapılacağını öğrenmek için Günlük kayıtlarının + ayrıştırılması bölümüne bakınız.)
    • + +
    • Sisteminizde serbest dosya tanıtıcı sayısı 1-2 civarına düşerse + Apache’yi aşağıdaki gibi bir betikle yeniden çalıştırarak dosya + tanıtıcı sayısını arttırabilirsiniz: + + + #!/bin/sh
      + ulimit -S -n 100
      + exec httpd
      +
      +
    • +
    + +
    + +
    Günlük kayıtlarının ayrıştırılması + +

    Günlük dosyalarını çok sayıda sanal konak için ortak olarak + kullanıyorsanız, sanal konaklar için istatistiksel çözümlemeler yapmak + amacıyla sırası geldiğinde bunları ayrıştırabilirsiniz. Bu işlem aşağıda + anlatıldığı gibi yapılabilir.

    + +

    İlk iş olarak, sanal konak bilgilerini günlük girdilerine eklemeniz + gerekir. Bu işlem, LogFormat yönergesi ve + %v biçem değişkeni ile yapılabilir. Günlük girdisi biçem + dizgesinin başına bunu ekleyiniz:

    + + + LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
    + CustomLog logs/multiple_vhost_log vhost +
    + +

    Bu yapılandırma ile her günlük kaydının başında sanal konağın + ServerName yönergesine belirtilen + ismi eklenir. (Günlük dosyalarınızın kişiselleştirilmesi ile ilgili daha + fazla bilgi için mod_log_config belgesine bakınız.)

    + +

    Günlük dosyanızdaki kayıtları bileşenlere göre gruplamak isterseniz + split-logfile + programını kullanabilirsiniz. Bu programı Apache dağıtımının + support dizininde bulabilirsiniz.

    + +

    Programı aşağıdaki gibi çalıştırın:

    + + + split-logfile < /logs/multiple_vhost_log + + +

    Bu programı sanal konaklar için tuttuğunuz günlük dosyasının ismini + argüman olarak belirterek çalıştırdığınızda o dosyadaki kayıtlardan her + sanal konak için ayrı bir günlük dosyası + (konakadı.log) üretilir.

    + +
    +
    + diff --git a/docs/manual/vhosts/index.html b/docs/manual/vhosts/index.html index 53c2a9e3f3c..7d103eeb0e8 100644 --- a/docs/manual/vhosts/index.html +++ b/docs/manual/vhosts/index.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: index.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,10 +12,22 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: index.html.ja.euc-jp +URI: index.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: index.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: index.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: index.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 + +URI: index.html.zh-cn.utf8 +Content-Language: zh-cn +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/vhosts/index.html.de b/docs/manual/vhosts/index.html.de index 32631f946a5..68499e0f5b1 100644 --- a/docs/manual/vhosts/index.html.de +++ b/docs/manual/vhosts/index.html.de @@ -1,71 +1,84 @@ - -Apache-Dokumentation zu virtuellen Hosts - Apache HTTP Server +Apache-Dokumentation zu virtuellen Hosts - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Apache-Dokumentation zu virtuellen Hosts

    +Apache > HTTP-Server > Dokumentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache-Dokumentation zu virtuellen Hosts

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.
    -

    Der Begriff virtueller Host (Anm.d.Ü.: engl. 'virtual +

    Der Begriff virtueller Host (Anm.d.Ü.: engl. 'virtual host') bezieht sich auf die Praxis, mehr als ein Webangebot (z.B. www.company1.com und www.company2.com) - auf einer einzigen Maschine zu betreiben. Virtuelle Hosts können + auf einer einzigen Maschine zu betreiben. Virtuelle Hosts können "IP-basiert" sein, was bedeutet, dass jedes Webangebot eine andere IP besitzt, oder "Namens-basiert", was bedeutet, dass unter jeder IP-Adresse mehrere Namen laufen. Die Tatsache, dass sie - auf dem gleichen physischen Server laufen, ist für den Endbenutzer + auf dem gleichen physischen Server laufen, ist für den Endbenutzer nicht offensichtlich.

    Der Apache war einer der ersten Server, der IP-basierte - virtuelle Hosts von Haus aus direkt unterstützt hat. Seit Version 1.1 - unterstützt der Apache sowohl IP-basierte als auch namensbasierte + virtuelle Hosts von Haus aus direkt unterstützt hat. Seit Version 1.1 + unterstützt der Apache sowohl IP-basierte als auch namensbasierte virtuelle Hosts (vhosts). Letzteres wird zuweilen auch Host-basiert oder non-IP-Virtual-Host genannt.

    Nachfolgend finden Sie eine Liste von Dokumenten, die alle Details - der Unterstützung von virtuellen Hosts ab Apache Version 1.3 + der Unterstützung von virtuellen Hosts ab Apache Version 1.3 beschreiben.

    -

    Bei der Suche von Fehlern in Ihrer Virtual-Host-Konfiguration ist - die Apache-Befehlszeilenoption -S möglicherweise + die Apache-Befehlszeilenoption -S möglicherweise hilfreich. Geben Sie dazu den folgenden Befehl ein:

    @@ -90,19 +103,26 @@

    Diese Anweisung gibt eine Beschreibung aus, wie der Apache die - Konfigurationsdatei analysiert hat. Eine sorgfältige - Überprüfung der IP-Adressen und Servernamen kann helfen, + Konfigurationsdatei analysiert hat. Eine sorgfältige + Überprüfung der IP-Adressen und Servernamen kann helfen, Konfigurationsfehler aufzudecken. (Lesen Sie die Dokumentation zum - httpd-Programm für weitere + httpd-Programm für weitere Befehlszeilenoptionen.)

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Lizenziert unter der Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.en b/docs/manual/vhosts/index.html.en index 5c23b3147b1..0baab1e7b3a 100644 --- a/docs/manual/vhosts/index.html.en +++ b/docs/manual/vhosts/index.html.en @@ -1,34 +1,44 @@ - -Apache Virtual Host documentation - Apache HTTP Server +Apache Virtual Host documentation - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Apache Virtual Host documentation

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Virtual Host documentation

    Available Languages:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    The term Virtual Host refers to the practice of running more than one web site (such as - www.company1.com and www.company2.com) + company1.example.com and company2.example.com) on a single machine. Virtual hosts can be "IP-based", meaning that you have a different IP address for every web site, or "name-based", meaning that you have multiple names running on each IP address. The fact that they @@ -42,8 +52,7 @@ called host-based or non-IP virtual hosts.

    Below is a list of documentation pages which explain all - details of virtual host support in Apache version 1.3 and - later.

    + details of virtual host support in Apache HTTP Server:

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.fr b/docs/manual/vhosts/index.html.fr index 829c0d37507..9bf9924422c 100644 --- a/docs/manual/vhosts/index.html.fr +++ b/docs/manual/vhosts/index.html.fr @@ -1,55 +1,70 @@ - -Documentation sur les serveurs virtuels Apache - Serveur Apache HTTP +Documentation sur les serveurs virtuels Apache - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    Documentation sur les serveurs virtuels Apache

    +Apache > Serveur HTTP > Documentation > Version 2.2

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Documentation sur les serveurs virtuels Apache

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    -

    Le principe des Serveurs Virtuels consiste à +

    Le principe des Serveurs Virtuels consiste à faire fonctionner un ou plusieurs serveurs Web (comme - www.company1.com et www.company2.com) - sur une même machine. Les serveurs virtuels peuvent être soit - "par-IP" où une adresse IP est - attribuée pour chaque serveur Web, soit "par-nom" où plusieurs noms de domaine se côtoient sur - des mêmes adresses IP. L'utilisateur final ne perçoit pas - qu'en fait il s'agit d'un même serveur physique.

    + company1.example.com and company2.example.com) + sur une même machine. Les serveurs virtuels peuvent être soit + "par-IP" où une adresse IP est + attribuée pour chaque serveur Web, soit "par-nom" où plusieurs noms de domaine se côtoient sur + des mêmes adresses IP. L'utilisateur final ne perçoit pas + qu'en fait il s'agit d'un même serveur physique.

    -

    Apache a été le précurseur des serveurs proposant cette - méthode de serveurs virtuels basés sur les adresses IP. Ses - versions 1.1 et suivantes ont toujours proposées ces deux - méthodes de serveurs virtuels par-IP et par-nom. Cette - deuxième méthode est parfois également appelée host-based +

    Apache a été le précurseur des serveurs proposant cette + méthode de serveurs virtuels basés sur les adresses IP. Ses + versions 1.1 et suivantes proposent les deux + méthodes de serveurs virtuels : par-IP et par-nom. Cette + deuxième méthode est parfois également appelée host-based ou serveur virtuel non-IP.

    Vous trouverez ci-dessous une liste documentaire qui vous - expliquera en détails le fonctionnement des serveurs virtuels - sous Apache 1.3 et ses versions suivantes.

    + expliquera en détails le fonctionnement des serveurs virtuels + au sein du serveur HTTP Apache :

    +

    Voir aussi

    top
    top
    @@ -74,24 +89,24 @@

    Directives de configuration

    -

    Pour vérifier et analyser la configuration de vos serveurs +

    Pour vérifier et analyser la configuration de vos serveurs virtuels, vous pouvez utiliser l'argument -S sur - la ligne de commande lançant le programme Apache comme ceci :

    + la ligne de commande lançant le programme Apache comme ceci :

    /usr/local/apache2/bin/httpd -S

    -

    Cette commande affichera dans le détail comment Apache a - traité son fichier de configuration. Les erreurs de configuration - peuvent être corrigées par l'examen attentif des adresses IP et +

    Cette commande affichera dans le détail comment Apache a + traité son fichier de configuration. Les erreurs de configuration + peuvent être corrigées par l'examen attentif des adresses IP et des noms de serveurs. (Consultez la documentation du programme httpd pour les autres arguments de la ligne de commande)

    @@ -100,10 +115,17 @@

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Autorisé sous Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.ja.euc-jp b/docs/manual/vhosts/index.html.ja.euc-jp deleted file mode 100644 index 182ce77d0ab..00000000000 --- a/docs/manual/vhosts/index.html.ja.euc-jp +++ /dev/null @@ -1,103 +0,0 @@ - - - -Apache ¥С¼¥Á¥ã¥ë¥ۥ¹¥ÈÀâÌÀ½ñ - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    Apache ¥С¼¥Á¥ã¥ë¥ۥ¹¥ÈÀâÌÀ½ñ

    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko 

    -
    - - -

    ¥С¼¥Á¥ã¥ë¥ۥ¹¥È¤Ȥ¤¤¦ÍѸì¤ϡ¢1 Âæ¤Υޥ·¥ó¾å¤Ç - (www.company1.com and www.company2.com ¤Τ褦¤Ê) - Æó¤İʾå¤Υ¦¥§¥֥µ¥¤¥Ȥ򰷤¦±¿ÍÑÊýˡ¤Τ³¤Ȥò»ؤ·¤ޤ¹¡£ - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥˤϡ¢³ƥ¦¥§¥֥µ¥¤¥Ȥ˰㤦 IP ¥¢¥ɥ쥹¤¬¤¢¤ë - ¡ÖIP ¥١¼¥¹¡פȡ¢¤½¤줾¤ì¤Î IP ¥¢¥ɥ쥹¤Ë - ʣ¿ô¤Î̾Á°¤¬¤¢¤ë¡Ö̾Á°¥١¼¥¹¡פȤ¬¤¢¤ê¤ޤ¹¡£ - ʣ¿ô¤Υµ¥¤¥Ȥ¬ʪÍýŪ¤ËƱ¤¸¥µ¡¼¥Фǰ·¤ï¤ì¤Ƥ¤¤롢¤Ȥ¤¤¦¤³¤Ȥϥ¨¥ó¥ɥ桼¥¶¤ˤÏ - ÌÀ¤餫¤ǤϤ¢¤ê¤ޤ»¤ó¡£

    - -

    Apache ¤ϡ¢Æä˼ê¤òÆþ¤ì¤ʤ¤¾õÂ֤Ç IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥È - ¤򥵥ݡ¼¥Ȥ·¤¿ºǽé¤Υµ¡¼¥Фΰì¤ĤǤ¹¡£¥С¼¥¸¥ç¥ó 1.1 °ʹߤÎ Apache - ¤Ǥϡ¢IP ¥١¼¥¹¤ȥ͡¼¥à¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÎξÊý¤򥵥ݡ¼¥È - ¤·¤Ƥ¤¤ޤ¹¡£¥͡¼¥à¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥϡ¢¥ۥ¹¥ȥ١¼¥¹¤¢¤뤤¤Ï - Èó IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤȸƤФì¤뤳¤Ȥ⤢¤ê¤ޤ¹¡£

    - -

    °ʲ¼¤Υڡ¼¥¸¤Ǥϡ¢Apache ¥С¼¥¸¥ç¥ó 1.3 - °ʹߤǤΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤΥµ¥ݡ¼¥ȤˤĤ¤¤Ƥξܺ٤òÀâÌÀ¤·¤ޤ¹¡£

    - -
    - -
    top
    -
    top
    -
    -

    ÀßÄê¥ǥ£¥쥯¥ƥ£¥Ö

    - - - -

    ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÀßÄê¤ΥǥХå°¤򤹤ë¤ˤÏ - Apache ¤Υ³¥ޥó¥ɥ饤¥󥹥¤¥åÁ -S ¤¬ÊØÍø¤Ǥ¹¡£ - ¤Ĥޤꡢ°ʲ¼¤Υ³¥ޥó¥ɤòÆþÎϤ·¤ޤ¹:

    - -

    - /usr/local/apache2/bin/httpd -S -

    - -

    ¤³¤Υ³¥ޥó¥ɤÏ Apache ¤¬ÀßÄê¥ե¡¥¤¥ë¤ò¤ɤ¦²òÀϤ·¤¿¤«¤ˤĤ¤¤ƽÐÎϤ·¤ޤ¹¡£ - IP ¥¢¥ɥ쥹¤ȥµ¡¼¥Ð̾¤òÃí°տ¼¤¯Ĵ¤٤ì¤С¢ - ÀßÄê¤δְ㤤¤򸫤Ĥ±¤ë½õ¤±¤ˤʤë¤Ǥ·¤礦¡£ - (¾¤Υ³¥ޥó¥ɥ饤¥ó¤Υª¥ץ·¥ç¥ó¤Ï httpd - ¥ץí¥°¥é¥à¤ÎÀâÌÀʸ½ñ¤򸫤Ƥ¯¤À¤µ¤¤)

    - -
    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.ja.utf8 b/docs/manual/vhosts/index.html.ja.utf8 new file mode 100644 index 00000000000..84dd49de0ad --- /dev/null +++ b/docs/manual/vhosts/index.html.ja.utf8 @@ -0,0 +1,124 @@ + + + + + +Apache バーチャルホスト説明書 - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache バーチャルホスト説明書

    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + +

    バーチャルホストという用語は、1 台のマシン上で + (www.company1.com and www.company2.com のような) + 二つ以上のウェブサイトを扱う運用方法のことを指します。 + バーチャルホストには、各ウェブサイトに違う IP アドレスがある + 「IP ベース」と、それぞれの IP アドレスに + 複数の名前がある「名前ベース」とがあります。 + 複数のサイトが物理的に同じサーバで扱われている、ということはエンドユーザには + 明らかではありません。

    + +

    Apache は、特に手を入れない状態で IP ベースのバーチャルホスト + をサポートした最初のサーバの一つです。バージョン 1.1 以降の Apache + では、IP ベースとネームベースのバーチャルホストの両方をサポート + しています。ネームベースのバーチャルホストは、ホストベースあるいは + 非 IP ベースのバーチャルホストと呼ばれることもあります。

    + +

    以下のページでは、Apache バージョン 1.3 + 以降でのバーチャルホストのサポートについての詳細を説明します。

    + +
    + +
    top
    +
    top
    +
    +

    設定ディレクティブ

    + + + +

    バーチャルホストの設定のデバッグをするには + Apache のコマンドラインスイッチ -S が便利です。 + つまり、以下のコマンドを入力します:

    + +

    + /usr/local/apache2/bin/httpd -S +

    + +

    このコマンドは Apache が設定ファイルをどう解析したかについて出力します。 + IP アドレスとサーバ名を注意深く調べれば、 + 設定の間違いを見つける助けになるでしょう。 + (他のコマンドラインのオプションは httpd + プログラムの説明文書を見てください)

    + +
    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.ko.euc-kr b/docs/manual/vhosts/index.html.ko.euc-kr index 7e0c22c480f..872a01c8d1f 100644 --- a/docs/manual/vhosts/index.html.ko.euc-kr +++ b/docs/manual/vhosts/index.html.ko.euc-kr @@ -1,28 +1,38 @@ - -¾ÆÆÄġ °¡»óȣ½ºƮ ¹®¼­ - Apache HTTP Server +¾ÆÆÄġ °¡»óȣ½ºƮ ¹®¼­ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¾ÆÆÄġ °¡»óȣ½ºƮ ¹®¼­

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ °¡»óȣ½ºƮ ¹®¼­

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  |  fr  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -99,8 +109,15 @@  en  |  fr  |  ja  | - ko 

    + ko  | + ru  | + tr  | + zh-cn 

    +

    Copyright 2018 The Apache Software Foundation.
    Licensed under the Apache License, Version 2.0.

    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.ru.koi8-r b/docs/manual/vhosts/index.html.ru.koi8-r new file mode 100644 index 00000000000..b9e3522e536 --- /dev/null +++ b/docs/manual/vhosts/index.html.ru.koi8-r @@ -0,0 +1,123 @@ + + + + + +äÏËÕÍÅÎÔÁÃÉÑ ÐÏ ×ÉÒÔÕÁÌØÎÙÍ ÈÏÓÔÁÍ × Apache - HTTP ÓÅÒ×ÅÒ Apache ÷ÅÒÓÉÑ 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    äÏËÕÍÅÎÔÁÃÉÑ ÐÏ ×ÉÒÔÕÁÌØÎÙÍ ÈÏÓÔÁÍ × Apache

    +
    +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    +
    üÔÏÔ ÐÅÒÅ×ÏÄ ÍÏÖÅÔ ÂÙÔØ ÕÓÔÁÒÅ×ÛÉÍ. óÍÏÔÒÉÔÅ + ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÌÑ ÏÚÎÁËÏÍÌÅÎÉÑ ÓÏ ×ÓÅÍÉ ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ + × ÄÏËÕÍÅÎÔÅ.
    + + +

    ôÅÒÍÉÎ ×ÉÒÔÕÁÌØÎÙÊ ÈÏÓÔ ÏÔÎÏÓÉÔÓÑ Ë ÐÒÁËÔÉËÅ + ÒÁÚÍÅÝÅÎÉÑ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏÇÏ ×ÅÂ-ÓÁÊÔÁ (ÎÁÐÒÉÍÅÒ, + www.company1.com É www.company2.com) + ÎÁ ÏÄÎÏÊ ÍÁÛÉÎÅ. ÷ÉÒÔÕÁÌØÎÙÊ ÈÏÓÔ ÍÏÖÅÔ ÂÙÔØ ËÁË «ÐÒÉ×ÑÚÁÎÎÙÍ Ë IP-ÁÄÒÅÓÕ», ÞÔÏ ÏÚÎÁÞÁÅÔ + ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÔÄÅÌØÎÏÇÏ IP ÁÄÒÅÓÁ ÄÌÑ ËÁÖÄÏÇÏ ÓÁÊÔÁ, ÌÉÂÏ «ÐÒÉ×ÑÚÁÎÎÙÍ Ë ÉÍÅÎÉ», ÐÏÚ×ÏÌÑÑ ×ÁÍ + ÉÍÅÔØ ÎÅÓËÏÌØËÏ ÒÁÚÌÉÞÎÙÈ ÉͣÎ ÄÌÑ ËÁÖÄÏÇÏ IP-ÁÄÒÅÓÁ. æÁËÔ ÔÏÇÏ, + ÞÔÏ ÜÔÉ ÓÁÊÔÙ ÒÁÂÏÔÁÀÔ ÎÁ ÏÄÎÏÍ É ÔÏÍ ÖÅ ÆÉÚÉÞÅÓËÏÍ ÓÅÒ×ÅÒÅ, + ÎÅ ÏÞÅ×ÉÄÅÎ ËÏÎÅÞÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ.

    + +

    Apache ÂÙÌ ÏÄÎÉÍ ÉÚ ÐÅÒ×ÙÈ ÓÅÒ×ÅÒÏ×, ËÏÔÏÒÙÊ ÐÏÄÄÅÒÖÉ×ÁÌ IP-ÐÒÉ×ÑÚÁÎÎÙÅ + ×ÉÒÔÕÁÌØÎÙÅ ÈÏÓÔÙ. ÷ÅÒÓÉÉ Apache 1.1 É ÂÏÌÅÅ ÎÏ×ÙÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ËÁË + IP-ÐÒÉ×ÑÚÁÎÎÙÅ, ÔÁË É ×ÉÒÔÕÁÌØÎÙÅ ÈÏÓÔÙ, ÏÐÒÅÄÅÌÑÅÍÙÅ ÐÏ ÉÍÅÎÉ. + ðÏÓÌÅÄÎÉÊ ×ÁÒÉÁÎÔ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ× ÔÁËÖÅ ÉÎÏÇÄÁ + ÎÁÚÙ×ÁÀÔ ÈÏÓÔ-ÐÒÉ×ÑÚÁÎÎÙÍÉ ÉÌÉ ÎÅ-IP ×ÉÒÔÕÁÌØÎÙÍÉ ÈÏÓÔÁÍÉ.

    + +

    îÉÖÅ ×Ù ×ÉÄÉÔÅ ÓÐÉÓÏË ÄÏËÕÍÅÎÔÏ×, ËÏÔÏÒÙÅ ÄÅÔÁÌØÎÏ ÏÂßÑÓÎÑÀÔ + ÐÏÄÄÅÒÖËÕ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ× × Apache 1.3 É ×ÙÛÅ.

    + +
    + +
    top
    +
    top
    +
    +

    ëÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ ÄÉÒÅËÔÉ×Ù

    + + + +

    åÓÌÉ ×Ù ÐÙÔÁÅÔÅÓØ ÏÔÌÁÖÉ×ÁÔØ ×ÁÛÕ ËÏÎÆÉÇÕÒÁÃÉÀ Ó ×ÉÒÔÕÁÌØÎÙÍÉ ÈÏÓÔÁÍÉ, ÔÏ + ËÌÀÞ ÄÌÑ ÚÁÐÕÓËÁ Apache ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ -S ÂÕÄÅÔ ËÒÁÊÎÅ ÐÏÌÅÚÅÎ. + ôÏ ÅÓÔØ, ÓÌÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÌÅÄÕÀÝÕÀ ËÏÍÁÎÄÕ:

    + +

    + /usr/local/apache2/bin/httpd -S +

    + +

    üÔÁ ËÏÍÁÎÄÁ ÒÁÓÐÅÞÁÔÁÅÔ ÏÐÉÓÁÎÉÅ ÔÏÇÏ, ËÁË Apache ÒÁÚÏÂÒÁÌ + ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ. ôÝÁÔÅÌØÎÏÅ ÉÚÕÞÅÎÉÅ IP ÁÄÒÅÓÏ× É ÉͣÎ ÓÅÒ×ÅÒÏ× + ÐÏÍÏÖÅÔ ÎÁÊÔÉ ÏÛÉÂËÉ ËÏÎÆÉÇÕÒÁÃÉÉ. (óÍÏÔÒÉÔÅ ÔÁËÖÅ + ÄÏËÕÍÅÎÔÁÃÉÀ Ë ÐÒÏÇÒÁÍÍÅ httpd ÄÌÑ + ÉÚÕÞÅÎÉÑ ÄÒÕÇÉÈ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ ÚÁÐÕÓËÁ ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ.)

    + +
    +
    +

    äÏÓÔÕÐÎÙÅ ÑÚÙËÉ:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.tr.utf8 b/docs/manual/vhosts/index.html.tr.utf8 new file mode 100644 index 00000000000..8683fd5f6d9 --- /dev/null +++ b/docs/manual/vhosts/index.html.tr.utf8 @@ -0,0 +1,121 @@ + + + + + +Apache Sanal Konak Belgeleri - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache Sanal Konak Belgeleri

    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + + +

    Sanal Konak (Virtual Host) terimi tek bir makine üzerinde + birden fazla sitenin (sirket1.example.com, sirket2.example.com gibi) barındırılma + uygulamasını betimler. Sanal konaklar, "IP’ye + dayalı" veya "isme dayalı" olabilir; + birincisinde, her site ayrı bir IP adresinden sunulurken, ikincisinde her + IP adresinde birden fazla site sunulur. Olayda aynı fiziksel sunucu + kullanıldığı halde bu sunucu son kullanıcıya görünür değildir.

    + +

    Apache yazılımsal olarak IP’ye dayalı sanal konakları destekleyen ilk + sunuculardan biridir. 1.1 sürümünden itibaren Apache hem IP’ye dayalı hem de + isme dayalı sanal konakları desteklemektedir. İsme dayalı sanal konaklara + bazen konağa dayalı sanal konaklar veya IP’ye dayanmayan + sanal konaklar da denmektedir.

    + +

    Aşağıda, Apache HTTP Sunucusu için sanal konak desteğini bütün + ayrıntıları ile açıklayan belgeler listelenmiştir.

    + +
    + +
    top
    +
    top
    +
    +

    Yapılandırma Yönergeleri

    + + + +

    Sanal konak yapılandırmanız üzerinde hata ayıklamaya çalışıyorsanız + Apache’nin -S komut satırı seçeneği şu şekilde çok işinize + yarayabilir:

    + +

    + /usr/local/apache2/bin/httpd -S +

    + +

    Bu komut, yapılandırma dosyasının Apache yorumunu dökümler. IP + adreslerinin ve sunucu isimlerinin dikkatli bir incelemesi, yapılandırma + yanlışlarınızı keşfetmenize yardımcı olabilir. (Diğer komut satırı + seçenekleri için httpd programının belgelerine + bakınız.)

    + +
    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/index.html.zh-cn.utf8 b/docs/manual/vhosts/index.html.zh-cn.utf8 new file mode 100644 index 00000000000..9e92ca95a52 --- /dev/null +++ b/docs/manual/vhosts/index.html.zh-cn.utf8 @@ -0,0 +1,110 @@ + + + + + +Apache 虚拟主机文档 - Apache HTTP 服务器 版本 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 虚拟主机文档

    +
    +

    可用语言:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    +
    此翻译可能过期。要了解最近的更改,请阅读英文版。
    + + +

    术语虚拟主机指的是在单一机器上运行多个网站 + (例如 www.company1.com 和 + www.company2.com) 。 + 虚拟主机可以“基于 IP”,即每个 IP 一个站点; + 或者“基于名称”, + 即每个 IP 多个站点。这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。

    + +

    Apache 是第一个支持基于 IP 的虚拟主机的服务器。 + Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。 + 基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机.

    + +

    以下是在 Apache 1.3 以及更新版本中,解释支持虚拟主机的所有详细信息的文档页面列表。

    + +
    + +
    top
    +
    top
    +
    +

    配置指令

    + + + +

    如果你要调试虚拟主机配置,你会发现 Apache 的命令行参数 -S + 非常有用。即输入以下命令:

    + +

    + /usr/local/apache2/bin/httpd -S +

    + +

    这个命令将会显示 Apache 是如何解析配置文件的。仔细检查 IP + 地址与服务器名称可能会帮助你发现配置错误 + (参见 httpd 程序文档,以便了解其它命令行选项)。

    + +
    +
    +

    可用语言:  de  | + en  | + fr  | + ja  | + ko  | + ru  | + tr  | + zh-cn 

    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/index.xml b/docs/manual/vhosts/index.xml index 3e73056adc5..1dd91bad59e 100644 --- a/docs/manual/vhosts/index.xml +++ b/docs/manual/vhosts/index.xml @@ -4,12 +4,12 @@ + + + + + - + index /vhosts/ .. - de + de en fr - ja + ja ko + ru + tr + zh-cn diff --git a/docs/manual/vhosts/index.xml.ru b/docs/manual/vhosts/index.xml.ru new file mode 100644 index 00000000000..4d8d1622a1d --- /dev/null +++ b/docs/manual/vhosts/index.xml.ru @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + äÏËÕÍÅÎÔÁÃÉÑ ÐÏ ×ÉÒÔÕÁÌØÎÙÍ ÈÏÓÔÁÍ × Apache + + + +

    ôÅÒÍÉÎ ×ÉÒÔÕÁÌØÎÙÊ ÈÏÓÔ ÏÔÎÏÓÉÔÓÑ Ë ÐÒÁËÔÉËÅ + ÒÁÚÍÅÝÅÎÉÑ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏÇÏ ×ÅÂ-ÓÁÊÔÁ (ÎÁÐÒÉÍÅÒ, + www.company1.com É www.company2.com) + ÎÁ ÏÄÎÏÊ ÍÁÛÉÎÅ. ÷ÉÒÔÕÁÌØÎÙÊ ÈÏÓÔ ÍÏÖÅÔ ÂÙÔØ ËÁË «ÐÒÉ×ÑÚÁÎÎÙÍ Ë IP-ÁÄÒÅÓÕ», ÞÔÏ ÏÚÎÁÞÁÅÔ + ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÔÄÅÌØÎÏÇÏ IP ÁÄÒÅÓÁ ÄÌÑ ËÁÖÄÏÇÏ ÓÁÊÔÁ, ÌÉÂÏ «ÐÒÉ×ÑÚÁÎÎÙÍ Ë ÉÍÅÎÉ», ÐÏÚ×ÏÌÑÑ ×ÁÍ + ÉÍÅÔØ ÎÅÓËÏÌØËÏ ÒÁÚÌÉÞÎÙÈ ÉͣÎ ÄÌÑ ËÁÖÄÏÇÏ IP-ÁÄÒÅÓÁ. æÁËÔ ÔÏÇÏ, + ÞÔÏ ÜÔÉ ÓÁÊÔÙ ÒÁÂÏÔÁÀÔ ÎÁ ÏÄÎÏÍ É ÔÏÍ ÖÅ ÆÉÚÉÞÅÓËÏÍ ÓÅÒ×ÅÒÅ, + ÎÅ ÏÞÅ×ÉÄÅÎ ËÏÎÅÞÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ.

    + +

    Apache ÂÙÌ ÏÄÎÉÍ ÉÚ ÐÅÒ×ÙÈ ÓÅÒ×ÅÒÏ×, ËÏÔÏÒÙÊ ÐÏÄÄÅÒÖÉ×ÁÌ IP-ÐÒÉ×ÑÚÁÎÎÙÅ + ×ÉÒÔÕÁÌØÎÙÅ ÈÏÓÔÙ. ÷ÅÒÓÉÉ Apache 1.1 É ÂÏÌÅÅ ÎÏ×ÙÅ ÐÏÄÄÅÒÖÉ×ÁÀÔ ËÁË + IP-ÐÒÉ×ÑÚÁÎÎÙÅ, ÔÁË É ×ÉÒÔÕÁÌØÎÙÅ ÈÏÓÔÙ, ÏÐÒÅÄÅÌÑÅÍÙÅ ÐÏ ÉÍÅÎÉ. + ðÏÓÌÅÄÎÉÊ ×ÁÒÉÁÎÔ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ× ÔÁËÖÅ ÉÎÏÇÄÁ + ÎÁÚÙ×ÁÀÔ ÈÏÓÔ-ÐÒÉ×ÑÚÁÎÎÙÍÉ ÉÌÉ ÎÅ-IP ×ÉÒÔÕÁÌØÎÙÍÉ ÈÏÓÔÁÍÉ.

    + +

    îÉÖÅ ×Ù ×ÉÄÉÔÅ ÓÐÉÓÏË ÄÏËÕÍÅÎÔÏ×, ËÏÔÏÒÙÅ ÄÅÔÁÌØÎÏ ÏÂßÑÓÎÑÀÔ + ÐÏÄÄÅÒÖËÕ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ× × Apache 1.3 É ×ÙÛÅ.

    + +
    + +mod_vhost_alias +÷ÉÒÔÕÁÌØÎÙÅ ÈÏÓÔÙ, ÏÓÎÏ×ÁÎÎÙÅ ÎÁ ÉÍÅÎÉ +IP-ÐÒÉ×ÑÚÁÎÎÙÅ ×ÉÒÔÕÁÌØÎÙÅ ÈÏÓÔÙ +ðÒÉÍÅÒÙ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ× +ïÇÒÁÎÉÞÅÎÉÑ ÆÁÊÌÏ×ÙÈ ÄÅÓËÒÉÐÔÏÒÏ× +íÁÓÓÏ×ÙÊ ×ÉÒÔÕÁÌØÎÙÊ ÈÏÓÔÉÎÇ +ðÏÄÒÏÂÎÏÓÔÉ ×ÙÂÏÒÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÈÏÓÔÁ + +
    ðÏÄÄÅÒÖËÁ ×ÉÒÔÕÁÌØÎÙÈ ÈÏÓÔÏ× + + + +
    + +
    ëÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ ÄÉÒÅËÔÉ×Ù + +
      +
    • VirtualHost
    • +
    • NameVirtualHost
    • +
    • ServerName
    • +
    • ServerAlias
    • +
    • ServerPath
    • +
    + +

    åÓÌÉ ×Ù ÐÙÔÁÅÔÅÓØ ÏÔÌÁÖÉ×ÁÔØ ×ÁÛÕ ËÏÎÆÉÇÕÒÁÃÉÀ Ó ×ÉÒÔÕÁÌØÎÙÍÉ ÈÏÓÔÁÍÉ, ÔÏ + ËÌÀÞ ÄÌÑ ÚÁÐÕÓËÁ Apache ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ -S ÂÕÄÅÔ ËÒÁÊÎÅ ÐÏÌÅÚÅÎ. + ôÏ ÅÓÔØ, ÓÌÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÌÅÄÕÀÝÕÀ ËÏÍÁÎÄÕ:

    + + + /usr/local/apache2/bin/httpd -S + + +

    üÔÁ ËÏÍÁÎÄÁ ÒÁÓÐÅÞÁÔÁÅÔ ÏÐÉÓÁÎÉÅ ÔÏÇÏ, ËÁË Apache ÒÁÚÏÂÒÁÌ + ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ. ôÝÁÔÅÌØÎÏÅ ÉÚÕÞÅÎÉÅ IP ÁÄÒÅÓÏ× É ÉͣÎ ÓÅÒ×ÅÒÏ× + ÐÏÍÏÖÅÔ ÎÁÊÔÉ ÏÛÉÂËÉ ËÏÎÆÉÇÕÒÁÃÉÉ. (óÍÏÔÒÉÔÅ ÔÁËÖÅ + ÄÏËÕÍÅÎÔÁÃÉÀ Ë ÐÒÏÇÒÁÍÍÅ httpd ÄÌÑ + ÉÚÕÞÅÎÉÑ ÄÒÕÇÉÈ ÐÁÒÁÍÅÔÒÏ× ÄÌÑ ÚÁÐÕÓËÁ ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ.)

    + +
    +
    + diff --git a/docs/manual/vhosts/index.xml.tr b/docs/manual/vhosts/index.xml.tr new file mode 100644 index 00000000000..34c76978912 --- /dev/null +++ b/docs/manual/vhosts/index.xml.tr @@ -0,0 +1,105 @@ + + + + + + + + + + + + Apache Sanal Konak Belgeleri + + + +

    Sanal Konak (Virtual Host) terimi tek bir makine üzerinde + birden fazla sitenin (sirket1.example.com, sirket2.example.com gibi) barındırılma + uygulamasını betimler. Sanal konaklar, "IP’ye + dayalı" veya "isme dayalı" olabilir; + birincisinde, her site ayrı bir IP adresinden sunulurken, ikincisinde her + IP adresinde birden fazla site sunulur. Olayda aynı fiziksel sunucu + kullanıldığı halde bu sunucu son kullanıcıya görünür değildir.

    + +

    Apache yazılımsal olarak IP’ye dayalı sanal konakları destekleyen ilk + sunuculardan biridir. 1.1 sürümünden itibaren Apache hem IP’ye dayalı hem de + isme dayalı sanal konakları desteklemektedir. İsme dayalı sanal konaklara + bazen konağa dayalı sanal konaklar veya IP’ye dayanmayan + sanal konaklar da denmektedir.

    + +

    Aşağıda, Apache HTTP Sunucusu için sanal konak desteğini bütün + ayrıntıları ile açıklayan belgeler listelenmiştir.

    + +
    + +mod_vhost_alias +İsme Dayalı Sanal Konaklar +IP Adresine Dayalı Sanal Konaklar +Sanal Konak Örnekleri +Dosya Tanıtıcı Sınırları +Kütlesel Sanal Konaklık +Ayrıntılı olarak Konak Eşleme + +
    Sanal Konak Desteği + + + +
    + +
    Yapılandırma Yönergeleri + +
      +
    • NameVirtualHost
    • +
    • VirtualHost
    • +
    • ServerName
    • +
    • ServerAlias
    • +
    • ServerPath
    • +
    + +

    Sanal konak yapılandırmanız üzerinde hata ayıklamaya çalışıyorsanız + Apache’nin -S komut satırı seçeneği şu şekilde çok işinize + yarayabilir:

    + + + /usr/local/apache2/bin/httpd -S + + +

    Bu komut, yapılandırma dosyasının Apache yorumunu dökümler. IP + adreslerinin ve sunucu isimlerinin dikkatli bir incelemesi, yapılandırma + yanlışlarınızı keşfetmenize yardımcı olabilir. (Diğer komut satırı + seçenekleri için httpd programının belgelerine + bakınız.)

    + +
    +
    diff --git a/docs/manual/vhosts/index.xml.zh-cn b/docs/manual/vhosts/index.xml.zh-cn new file mode 100644 index 00000000000..4a85e8838c6 --- /dev/null +++ b/docs/manual/vhosts/index.xml.zh-cn @@ -0,0 +1,90 @@ + + + + + + + + + + + Apache 虚拟主机文档 + + + +

    术语虚拟主机指的是在单一机器上运行多个网站 + (例如 www.company1.com 和 + www.company2.com) 。 + 虚拟主机可以“基于 IP”,即每个 IP 一个站点; + 或者“基于名称”, + 即每个 IP 多个站点。这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。

    + +

    Apache 是第一个支持基于 IP 的虚拟主机的服务器。 + Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。 + 基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机.

    + +

    以下是在 Apache 1.3 以及更新版本中,解释支持虚拟主机的所有详细信息的文档页面列表。

    + +
    + +mod_vhost_alias +基于名称的虚拟主机 +基于 IP 的虚拟主机 +虚拟主机样例 +文件句柄限制 +动态配置的大规模虚拟主机 +虚拟主机匹配的深入讨论 + +
    虚拟主机支持 + + + +
    + +
    配置指令 + +
      +
    • VirtualHost
    • +
    • NameVirtualHost
    • +
    • ServerName
    • +
    • ServerAlias
    • +
    • ServerPath
    • +
    + +

    如果你要调试虚拟主机配置,你会发现 Apache 的命令行参数 -S + 非常有用。即输入以下命令:

    + + + /usr/local/apache2/bin/httpd -S + + +

    这个命令将会显示 Apache 是如何解析配置文件的。仔细检查 IP + 地址与服务器名称可能会帮助你发现配置错误 + (参见 httpd 程序文档,以便了解其它命令行选项)。

    + +
    +
    diff --git a/docs/manual/vhosts/ip-based.html b/docs/manual/vhosts/ip-based.html index c18fe7e05ab..4bb60e08085 100644 --- a/docs/manual/vhosts/ip-based.html +++ b/docs/manual/vhosts/ip-based.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: ip-based.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -6,10 +8,14 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: ip-based.html.ja.euc-jp +URI: ip-based.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: ip-based.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: ip-based.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/vhosts/ip-based.html.en b/docs/manual/vhosts/ip-based.html.en index 4cef603a08d..08e120610f0 100644 --- a/docs/manual/vhosts/ip-based.html.en +++ b/docs/manual/vhosts/ip-based.html.en @@ -1,49 +1,74 @@ - -Apache IP-based Virtual Host Support - Apache HTTP Server +Apache IP-based Virtual Host Support - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Apache IP-based Virtual Host Support

    +Apache > HTTP Server > Documentation > Version 2.2 > Virtual Hosts

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache IP-based Virtual Host Support

    Available Languages:  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    -
    top
    +

    What is IP-based virtual hosting

    +

    IP-based virtual hosting is a method to apply different directives +based on the IP address and port a request is received on. Most commonly, +this is used to serve different websites on different ports or interfaces.

    + +

    In many cases, name-based +virtual hosts are more convenient, because they allow +many virtual hosts to share a single address/port. +See Name-based vs. IP-based +Virtual Hosts to help you decide.

    +
    top
    +

    System requirements

    As the term IP-based indicates, the server - must have a different IP address for each IP-based + must have a different IP address/port combination for each IP-based virtual host. This can be achieved by the machine having several physical network connections, or by use of virtual interfaces which are supported by most modern operating systems (see system documentation for details, these are frequently called "ip aliases", and the "ifconfig" command is - most commonly used to set them up).

    + most commonly used to set them up), and/or using multiple + port numbers.

    + +

    In the terminology of Apache HTTP Server, using a single IP address + but multiple TCP ports, is also IP-based virtual hosting.

    top
    @@ -93,7 +118,7 @@ that daemon services. e.g.

    - Listen www.smallco.com:80 + Listen 192.168.0.1:80

    It is recommended that you use an IP address instead of a @@ -102,7 +127,7 @@

    top

    Setting up a single daemon - with virtual hosts

    + with virtual hosts

    For this case, a single httpd will service requests for the main server and all the virtual hosts. The VirtualHost directive @@ -112,25 +137,30 @@ host. e.g.

    - <VirtualHost www.smallco.com>
    - ServerAdmin webmaster@mail.smallco.com
    + <VirtualHost 192.168.0.1:80>
    + ServerAdmin webmaster@smallco.example.com
    DocumentRoot /groups/smallco/www
    - ServerName www.smallco.com
    + ServerName smallco.example.com
    ErrorLog /groups/smallco/logs/error_log
    TransferLog /groups/smallco/logs/access_log
    </VirtualHost>
    -
    - <VirtualHost www.baygroup.org>
    - ServerAdmin webmaster@mail.baygroup.org
    +
    + <VirtualHost 192.168.0.2:80>
    + ServerAdmin webmaster@baygroup.example.org
    DocumentRoot /groups/baygroup/www
    - ServerName www.baygroup.org
    + ServerName baygroup.example.com
    ErrorLog /groups/baygroup/logs/error_log
    TransferLog /groups/baygroup/logs/access_log
    - </VirtualHost> -

    +</VirtualHost> +

    It is recommended that you use an IP address instead of a - hostname (see DNS caveats).

    + hostname in the <VirtualHost> directive + (see DNS caveats).

    + +

    Specific IP addresses or ports have precedence over their wildcard + equivalents, and any virtual host that matches has precedence over + the servers base configuration.

    Almost any configuration directive can be put in the VirtualHost directive, with the exception of @@ -153,10 +183,32 @@

    Available Languages:  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/ip-based.html.fr b/docs/manual/vhosts/ip-based.html.fr index a90dc50d65f..385b5bd8130 100644 --- a/docs/manual/vhosts/ip-based.html.fr +++ b/docs/manual/vhosts/ip-based.html.fr @@ -1,93 +1,126 @@ - -Support Apache des serveurs virtuels par IP - Serveur Apache HTTP +Support Apache des serveurs virtuels par IP - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    Support Apache des serveurs virtuels par IP

    +Apache > Serveur HTTP > Documentation > Version 2.2 > Serveurs virtuels

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Support Apache des serveurs virtuels par IP

    Langues Disponibles:  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    -
    top
    -

    Système requis

    +

    Qu'est-ce que l'hébergement virtuel +basé sur IP

    +

    L'hébergement virtuel basé sur IP est une méthode permettant +d'appliquer certaines directives en fonction de l'adresse IP et du port +sur lesquels la requête est reçue. En général, il s'agit de servir +différents sites web sur des ports ou interfaces différents.

    + +

    Dans de nombreux cas, l'hébergement virtuel +basé sur le nom est plus adapté car il permet à plusieurs serveurs +virtuels de partager la même adresse/port. Voir le document Hébergement virtuel basé sur IP ou sur le +nom pour prendre votre décision.

    +
    top
    +
    +

    Système requis

    Comme l'indique le terme par IP, le serveur - doit disposer de différentes adresses IP pour chaque - serveur virtuel par IP. La machine peut posséder - plusieurs connexions physiques au réseau, ou utiliser des - interfaces virtuelles qui sont supportées par la plupart des - systèmes d'exploitation modernes (Consultez la documentation des - systèmes d'exploitation pour plus de détails, notamment les "alias - IP" et la commande "ifconfig" pour les activer).

    + doit disposer de couples adresses IP/port différents pour chaque + serveur virtuel par IP. La machine peut posséder + plusieurs connexions physiques au réseau, ou utiliser des + interfaces virtuelles qui sont supportées par la plupart des + systèmes d'exploitation modernes (Consultez la documentation des + systèmes d'exploitation pour plus de détails, notamment les "alias + IP" et la commande "ifconfig" pour les activer), et/ou utiliser + plusieurs ports.

    + +

    Dans la terminologie du serveur HTTP Apache, l'utilisation de + plusieurs ports TCP pour une seule adresse IP se nomme aussi + hébergement virtuel basé sur IP.

    top

    Comment configurer Apache

    -

    Il y a deux manières de configurer Apache pour le support de +

    Il y a deux manières de configurer Apache pour le support de multiples serveurs virtuels. Il suffit soit de faire tourner un - processus résident httpd pour chaque nom de - domaine, soit de faire tourner un unique processus résident qui - gère tous les serveurs virtuels.

    + processus résident httpd pour chaque nom de + domaine, soit de faire tourner un unique processus résident qui + gère tous les serveurs virtuels.

    -

    Utilisez des processus résidents multiples lorsque :

    +

    Utilisez des processus résidents multiples lorsque :

      -
    • il y a des problèmes de répartition de sécurité, tels +
    • il y a des problèmes de répartition de sécurité, tels qu'une entreprise1 ne souhaite que personne d'une entreprise2 - ne puisse lire ses données excepté via le Web. Dans ce cas, - vous aurez besoin de deux processus résidents, chacun fonctionnant - avec des paramètres User, + ne puisse lire ses données excepté via le Web. Dans ce cas, + vous aurez besoin de deux processus résidents, chacun fonctionnant + avec des paramètres User, Group, Listen, et - ServerRoot différents.
    • + ServerRoot différents. -
    • vous disposez suffisamment de mémoire et de +
    • vous disposez suffisamment de mémoire et de descripteurs de fichiers - pour l'écoute de chaque alias IP de la machine. Il est seulement + pour l'écoute de chaque alias IP de la machine. Il est seulement possible d'appliquer la directive Listen, soit sur toutes les adresses avec le joker "*", soit uniquement sur des adresses - spécifiques. Donc, si vous avez besoin d'écouter une adresse + spécifiques. Donc, si vous avez besoin d'écouter une adresse en particulier, vous devrez le faire pour l'ensemble des autres adresses (Bien qu'il soit plus simple de lancer un - processus httpd pour écouter N-1 adresses, + processus httpd pour écouter N-1 adresses, et un autre pour l'adresse restante).
    -

    Utilisez un unique processus résident lorsque :

    +

    Utilisez un unique processus résident lorsque :

    • le partage de la configuration httpd entre les serveurs virtuels est acceptable.
    • -
    • la machine assume déjà une grande quantité de requêtes, et - que l'ajout de processus résidents supplémentaires en affecterait +
    • la machine assume déjà une grande quantité de requêtes, et + que l'ajout de processus résidents supplémentaires en affecterait les performances.
    @@ -95,88 +128,114 @@ r

    Configuration de processus multiples

    -

    Créez une installation indépendante du programme +

    Créez une installation indépendante du programme httpd pour chaque serveur virtuel. Pour chacune d'elle, utilisez la directive Listen dans le fichier - de configuration pour définir l'adresse IP (ou serveur virtuel) - que le processus résident doit gérer. Par exemple :

    + de configuration pour définir l'adresse IP (ou serveur virtuel) + que le processus résident doit gérer. Par exemple :

    - Listen www.smallco.com:80 + Listen 192.168.0.1:80

    -

    Il est recommandé d'utiliser une adresse IP plutôt qu'un nom - de domaine (consultez Problèmes DNS +

    Il est recommandé d'utiliser une adresse IP plutôt qu'un nom + de domaine (consultez Problèmes DNS avec Apache).

    top

    Configuration d'un unique processus -résident pour des serveurs virtuels

    +résident pour des serveurs virtuels -

    Dans ce cas, un unique processus httpd va gérer les requêtes +

    Dans ce cas, un unique processus httpd va gérer les requêtes pour le serveur principal et tous les serveurs virtuels. Dans le fichier de configuration, la directive - VirtualHost va servir à - définir les autres directives + VirtualHost va servir à + définir les autres directives ServerAdmin, ServerName, DocumentRoot, ErrorLog et TransferLog ou CustomLog avec des - valeurs différentes pour chaque serveur virtuel. Par exemple :

    + valeurs différentes pour chaque serveur virtuel. Par exemple :

    - <VirtualHost www.smallco.com>
    - ServerAdmin webmaster@mail.smallco.com
    + <VirtualHost 192.168.0.1:80>
    + ServerAdmin webmaster@smallco.example.com
    DocumentRoot /groups/smallco/www
    - ServerName www.smallco.com
    + ServerName smallco.example.com
    ErrorLog /groups/smallco/logs/error_log
    TransferLog /groups/smallco/logs/access_log
    </VirtualHost>

    - <VirtualHost www.baygroup.org>
    - ServerAdmin webmaster@mail.baygroup.org
    + <VirtualHost 192.168.0.2:80>
    + ServerAdmin webmaster@baygroup.example.org
    DocumentRoot /groups/baygroup/www
    - ServerName www.baygroup.org
    + ServerName baygroup.example.com
    ErrorLog /groups/baygroup/logs/error_log
    TransferLog /groups/baygroup/logs/access_log
    </VirtualHost>

    -

    Il est recommandé d'utiliser une adresse IP plutôt qu'un nom - de domaine (consultez Problèmes DNS - avec Apache).

    +

    Il est recommandé d'utiliser une adresse IP plutôt qu'un nom + de domaine dans la définition du <VirtualHost> (consultez Problèmes DNS avec Apache).

    + +

    Les adresses IP et ports explicites l'emportent sur leurs + équivalents avec caractères génériques, et tout serveur virtuel qui + correspond à la requête l'emporte sur la configuration du serveur de + base.

    Presque toutes les directives de configuration - peuvent être employées dans une directive VirtualHost, à l'exception - des directives qui contrôlent la création du processus et de - quelques autres. Pour connaître celles utilisables dans une - directive VirtualHost, vérifiez leur + peuvent être employées dans une directive VirtualHost, à l'exception + des directives qui contrôlent la création du processus et de + quelques autres. Pour connaître celles utilisables dans une + directive VirtualHost, vérifiez leur Contexte en utilisant l'Index des directives.

    -

    SuexecUserGroup peut être - utilisées à l'intérieur d'une directive VirtualHost si l'exécution se fait +

    SuexecUserGroup peut être + utilisées à l'intérieur d'une directive VirtualHost si l'exécution se fait sous suEXEC. (Voir suEXEC).

    -

    SÉCURITÉ : lorsque vous spécifiez où écrire les +

    SÉCURITÉ : lorsque vous spécifiez où écrire les fichiers journaux, soyez attentif aux risques si quelqu'un d'autre - que celui qui a démarré Apache dispose des droits d'écriture + que celui qui a démarré Apache dispose des droits d'écriture sur l'emplacement de ces fichiers. Consultez les - Conseils sur la sécurité - pour plus de détails.

    + Conseils sur la sécurité + pour plus de détails.

    Langues Disponibles:  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/ip-based.html.ja.euc-jp b/docs/manual/vhosts/ip-based.html.ja.euc-jp deleted file mode 100644 index b48e69c0142..00000000000 --- a/docs/manual/vhosts/ip-based.html.ja.euc-jp +++ /dev/null @@ -1,158 +0,0 @@ - - - -Apache ¤Î IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȥµ¥ݡ¼¥È - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    Apache ¤Î IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȥµ¥ݡ¼¥È

    -
    -

    Available Languages:  en  | - fr  | - ja  | - ko 

    -
    -
    - -
    top
    -
    -

    ¥·¥¹¥ƥàÍ׷ï

    - -

    IP ¥١¼¥¹ ¤Ȥ¤¤¦̾Á°¤¬¼¨¤¹¤褦¤ˡ¢¥µ¡¼¥ФˤÏ - IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ½¤줾¤ì¤ˤĤ­¡¢Ê̡¹¤Î IP ¥¢¥ɥ쥹¤¬ - ɬÍפǤ¹¡£ʣ¿ô¤ÎʪÍý¥³¥ͥ¯¥·¥ç¥ó¤ò»ý¤äƤ¤¤ë¥ޥ·¥ó¤òÍѰդ¹¤뤫¡¢ - ºǶá¤Υª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤ǥµ¥ݡ¼¥Ȥµ¤ì¤Ƥ¤¤ë¥С¼¥Á¥ã¥ë - ¥¤¥󥿥ե§¡¼¥¹ (¾ܺ٤ϥ·¥¹¥ƥà¤ÎÀâÌÀ½ñ¤òÆɤó¤Ǥ¯¤À¤µ¤¤¡£¤¿¤¤¤Ƥ¤¤Ï - "ip ¥¨¥¤¥ꥢ¥¹" ¤ȸƤФì¤Ƥ¤¤ơ¢ÀßÄê¤ˤÏÉáÄÌ "ifconfig" ¥³¥ޥó¥ɤò - »Ȥ¤¤ޤ¹) ¤ò»Ȥ¦¤«¤Ǽ¸½¤Ǥ­¤ޤ¹¡£

    -
    top
    -
    -

    Apache ¤ÎÀßÄêÊýˡ

    - -

    ʣ¿ô¤Υۥ¹¥Ȥ򥵥ݡ¼¥Ȥ¹¤ë¤褦¤Ë Apache ¤òÀßÄꤹ¤ëÊýˡ¤Ï - ÆóÄ̤ꤢ¤ê¤ޤ¹¡£Ê̤Î httpd ¥ǡ¼¥â¥ó¤ò³ƥۥ¹¥ÈËè¤˼¹Ԥ¹¤뤫¡¢ - ¤¹¤٤ƤΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ򥵥ݡ¼¥Ȥ¹¤ë¥ǡ¼¥â¥ó¤ò°ì¤ļ¹Ԥ¹¤뤫¤Ǥ¹¡£

    - -

    °ʲ¼¤ΤȤ­¤ˤÏʣ¿ô¤Υǡ¼¥â¥ó¤ò»Ȥ¦¤ÈÎɤ¤¤Ǥ·¤礦:

    - -
      -
    • ²ñ¼Ò1 ¤ϥ¦¥§¥ַÐͳ°ʳ°¤Ǥϲñ¼Ò2 ¤«¤é¤ϥǡ¼¥¿¤òÆɤޤ줿¤¯¤ʤ¤¡¢ - ¤Ȥ¤¤ä¿¥»¥­¥å¥ê¥ƥ£¤ÎʬΥ¤ÎÌäÂ꤬¤¢¤ë¤Ȥ­¡£¤³¤ξì¹硢¤½¤줾¤ì - User, Group, Listen, ServerRoot ¤ÎÀßÄ꤬°㤦Æó¤ĤΥǡ¼¥â¥ó¤ò - ¼¹Ԥ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£
    • - -
    • ¥ޥ·¥ó¤Τ¹¤٤ƤÎ IP ¥¨¥¤¥ꥢ¥¹¤ò listen ¤¹¤ë¤À¤±¤Î - ¥á¥â¥ê¤ȥե¡¥¤¥뵭½һҤÎ;͵¤¬¤¢¤ë¤Ȥ­¡£Listen ¤ϡ֥磻¥ë¥ɥ«¡¼¥ɡ× - ¥¢¥ɥ쥹¤«¡¢ÆÃÄê¤Υ¢¥ɥ쥹¤Τߤò listen ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢²¿¤餫¤ÎÍýͳ¤ÇÆÃÄê¤Υ¢¥ɥ쥹¤ò listen ¤·¤ʤ±¤Фʤé¤ʤ¤ - ¤Ȥ­¤ϡ¢¤½¤ÎÆÃÄê¤Υ¢¥ɥ쥹¤򤹤٤Æ listen ¤¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - (¤¿¤À¤·¡¢°ì¤ĤÎ httpd ¤¬ N-1 ¸ĤΥ¢¥ɥ쥹¤ò listen ¤·¡¢ - Ê̤Î httpd ¤¬»Ĥê¤Υ¢¥ɥ쥹¤ò listen ¤¹¤ë¤Ȥ¤¤ä¿¤³¤ȤϲÄǽ¤Ǥ¹¡£)
    • -
    - -

    °ʲ¼¤ΤȤ­¤ˤÏñÆȤΥǡ¼¥â¥ó¤ò»Ȥ¦¤ÈÎɤ¤¤Ǥ·¤礦:

    - -
      -
    • ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȴ֤ǤÎ httpd ¤ÎÀßÄê¤ò¶¦ͭ¤·¤Ƥâ¤褤¤Ȥ­¡£
    • - -
    • ¥ޥ·¥ó¤¬¿¤¯¤Υꥯ¥¨¥¹¥Ȥ򰷤¦¤¿¤ᡢÊ̥ǡ¼¥â¥ó¤ò¼¹Ԥ¹¤뤳¤Ȥˤè¤ë - À­ǽ¤ÎÄ㲼¤αƶÁ¤¬Ãø¤·¤¤¤Ȥ­¡£
    • -
    - -
    top
    -
    -

    ʣ¿ô¥ǡ¼¥â¥ó¤ÎÀßÄê

    - -

    ³ƥС¼¥Á¥ã¥ë¥ۥ¹¥ȤËÂФ·¤ÆÊ̤Î httpd ¤Υ¤¥󥹥ȡ¼¥ë¤ò¹Ԥʤ¤¤ޤ¹¡£ - ÀßÄê¥ե¡¥¤¥ëÃæ¤Î Listen - ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäơ¢ - ³ƥ¤¥󥹥ȡ¼¥ë¤ǥǡ¼¥â¥󤬰·¤¦ IP ¥¢¥ɥ쥹 (¥С¼¥Á¥ã¥ë¥ۥ¹¥È) - ¤òÁªÂ򤷤ޤ¹¡£Î㤨¤Ð

    - -

    - Listen www.smallco.com:80 -

    - -

    ¤³¤³¤ǡ¢¥ۥ¹¥È̾¤ÎÂå¤ï¤ê¤Ë IP ¥¢¥ɥ쥹¤ò»Ȥ¦Êý¤¬¿侩¤µ¤ì¤Ƥ¤¤뤳¤ȤË - Ãí°դ·¤Ƥª¤¤¤Ƥ¯¤À¤µ¤¤ - (DNS ¤ÎÃí°ջö¹à »²¾È)¡£

    - -
    top
    -
    -

    ʣ¿ô¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÀßÄê¤򤷤¿ -¥ǡ¼¥â¥ó¤ò°ì¤ÄÀßÄꤹ¤ë

    - -

    ¤³¤ξì¹ç¤ϡ¢°ì¤ĤÎ httpd ¤¬¼祵¡¼¥ФȤ¹¤٤ƤΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤΥꥯ¥¨¥¹¥Ȥò - ½èÍý¤·¤ޤ¹¡£ÀßÄê¥ե¡¥¤¥ë¤Î VirtualHost ¥ǥ£¥쥯¥ƥ£¥֤ò»Ȥäơ¢ - ServerAdmin, ServerName, DocumentRoot, ErrorLog, TransferLog - ¤ä CustomLog - ÀßÄê¥ǥ£¥쥯¥ƥ£¥֤ÎÃͤ¬³ƥۥ¹¥ÈËè¤˰ۤʤëÃͤËÀßÄꤵ¤ì¤ë¤褦¤ˤ·¤ޤ¹¡£ - Î㤨¤Ð

    - -

    - <VirtualHost www.smallco.com>
    - ServerAdmin webmaster@mail.smallco.com
    - DocumentRoot /groups/smallco/www
    - ServerName www.smallco.com
    - ErrorLog /groups/smallco/logs/error_log
    - TransferLog /groups/smallco/logs/access_log
    - </VirtualHost>
    -
    - <VirtualHost www.baygroup.org>
    - ServerAdmin webmaster@mail.baygroup.org
    - DocumentRoot /groups/baygroup/www
    - ServerName www.baygroup.org
    - ErrorLog /groups/baygroup/logs/error_log
    - TransferLog /groups/baygroup/logs/access_log
    - </VirtualHost> -

    - -

    ¤³¤³¤ǡ¢¥ۥ¹¥È̾¤ÎÂå¤ï¤ê¤Ë IP ¥¢¥ɥ쥹¤ò»Ȥ¦Êý¤¬¿侩¤µ¤ì¤Ƥ¤¤뤳¤ȤË - Ãí°դ·¤Ƥª¤¤¤Ƥ¯¤À¤µ¤¤ - (DNS ¤ÎÃí°ջö¹à »²¾È)¡£

    - -

    ¥ץí¥»¥¹À¸À®¤òÀ©¸椹¤ë¥ǥ£¥쥯¥ƥ£¥֤䤽¤Î¾¤Τ¤¤¯¤Ĥ«¤Υǥ£¥쥯¥ƥ£¥֤ò - ½ü¤¤¤ơ¢¤ۤܤ¹¤٤ƤÎÀßÄê¥ǥ£¥쥯¥ƥ£¥֤ò VirtualHost - ¥ǥ£¥쥯¥ƥ£¥֤ÎÃæ¤˽񤯤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£¥ǥ£¥쥯¥ƥ£¥֤¬ VirtualHost - ¥ǥ£¥쥯¥ƥ£¥֤ǻÈÍѤǤ­¤뤫¤ɤ¦¤«¤Ï ¥ǥ£¥쥯¥ƥ£¥ֺ÷°ú¤ò»Ȥ䯥³¥ó¥ƥ­¥¹¥È¤Î - Íó¤òĴ¤٤Ƥ¯¤À¤µ¤¤¡£

    - -

    suEXEC¥é¥åѡ¼¤ò»ȤäƤ¤¤ë¾ì¹ç¤ϡ¢ - SuexecUserGroup - ¥ǥ£¥쥯¥ƥ£¥֤ò VirtualHost - ¥ǥ£¥쥯¥ƥ£¥֤ÎÃæ¤ǻÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¥»¥­¥å¥ê¥ƥ£: ¥í¥°¥ե¡¥¤¥ë¤ò½񤯾ì½ê¤ò»ØÄꤹ¤ë¤Ȥ­¤ϡ¢ - Apache ¤òµ¯ư¤·¤¿¥桼¥¶°ʳ°¤¬¤½¤Υǥ£¥쥯¥ȥê¤˽񤭹þ¤߸¢¸¤ò - »ý¤äƤ¤¤ë¾ì¹ç¤˥»¥­¥å¥ê¥ƥ£¾å¤δí¸±¤¬¤¢¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¾ܺ٤Ï¥»¥­¥å¥ê¥ƥ£¤Τ³¤Ä¥ɥ­¥å¥á¥ó¥Ȥò - »²¾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    -
    -

    Available Languages:  en  | - fr  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/vhosts/ip-based.html.ja.utf8 b/docs/manual/vhosts/ip-based.html.ja.utf8 new file mode 100644 index 00000000000..0184929f163 --- /dev/null +++ b/docs/manual/vhosts/ip-based.html.ja.utf8 @@ -0,0 +1,192 @@ + + + + + +Apache の IP ベースのバーチャルホストサポート - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache の IP ベースのバーチャルホストサポート

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    +
    + +
    top
    +
    +

    システム要件

    + +

    IP ベース という名前が示すように、サーバには + IP ベースのバーチャルホストそれぞれにつき、別々の IP アドレスが + 必要です。複数の物理コネクションを持っているマシンを用意するか、 + 最近のオペレーティングシステムでサポートされているバーチャル + インタフェース (詳細はシステムの説明書を読んでください。たいていは + "ip エイリアス" と呼ばれていて、設定には普通 "ifconfig" コマンドを + 使います) を使うかで実現できます。

    +
    top
    +
    +

    Apache の設定方法

    + +

    複数のホストをサポートするように Apache を設定する方法は + 二通りあります。別の httpd デーモンを各ホスト毎に実行するか、 + すべてのバーチャルホストをサポートするデーモンを一つ実行するかです。

    + +

    以下のときには複数のデーモンを使うと良いでしょう:

    + +
      +
    • 会社1 はウェブ経由以外では会社2 からはデータを読まれたくない、 + といったセキュリティの分離の問題があるとき。この場合、それぞれ + User, Group, Listen, ServerRoot の設定が違う二つのデーモンを + 実行する必要があります。
    • + +
    • マシンのすべての IP エイリアスを listen するだけの + メモリとファイル記述子の余裕があるとき。Listen は「ワイルドカード」 + アドレスか、特定のアドレスのみを listen することができます。 + ですから、何らかの理由で特定のアドレスを listen しなけばならない + ときは、その特定のアドレスをすべて listen する必要があります。 + (ただし、一つの httpd が N-1 個のアドレスを listen し、 + 別の httpd が残りのアドレスを listen するといったことは可能です。)
    • +
    + +

    以下のときには単独のデーモンを使うと良いでしょう:

    + +
      +
    • バーチャルホスト間での httpd の設定を共有してもよいとき。
    • + +
    • マシンが多くのリクエストを扱うため、別デーモンを実行することによる + 性能の低下の影響が著しいとき。
    • +
    + +
    top
    +
    +

    複数デーモンの設定

    + +

    各バーチャルホストに対して別の httpd のインストールを行ないます。 + 設定ファイル中の Listen + ディレクティブを使って、 + 各インストールでデーモンが扱う IP アドレス (バーチャルホスト) + を選択します。例えば

    + +

    + Listen www.smallco.com:80 +

    + +

    ここで、ホスト名の代わりに IP アドレスを使う方が推奨されていることに + 注意しておいてください + (DNS の注意事項 参照)。

    + +
    top
    +
    +

    複数のバーチャルホストの設定をした +デーモンを一つ設定する

    + +

    この場合は、一つの httpd が主サーバとすべてのバーチャルホストのリクエストを + 処理します。設定ファイルの VirtualHost ディレクティブを使って、 + ServerAdmin, ServerName, DocumentRoot, ErrorLog, TransferLog + や CustomLog + 設定ディレクティブの値が各ホスト毎に異なる値に設定されるようにします。 + 例えば

    + +

    + <VirtualHost www.smallco.com>
    + ServerAdmin webmaster@mail.smallco.com
    + DocumentRoot /groups/smallco/www
    + ServerName www.smallco.com
    + ErrorLog /groups/smallco/logs/error_log
    + TransferLog /groups/smallco/logs/access_log
    + </VirtualHost>
    +
    + <VirtualHost www.baygroup.org>
    + ServerAdmin webmaster@mail.baygroup.org
    + DocumentRoot /groups/baygroup/www
    + ServerName www.baygroup.org
    + ErrorLog /groups/baygroup/logs/error_log
    + TransferLog /groups/baygroup/logs/access_log
    + </VirtualHost> +

    + +

    ここで、ホスト名の代わりに IP アドレスを使う方が推奨されていることに + 注意しておいてください + (DNS の注意事項 参照)。

    + +

    プロセス生成を制御するディレクティブやその他のいくつかのディレクティブを + 除いて、ほぼすべての設定ディレクティブを VirtualHost + ディレクティブの中に書くことができます。ディレクティブが VirtualHost + ディレクティブで使用できるかどうかは ディレクティブ索引を使ってコンテキストの + 欄を調べてください。

    + +

    suEXECラッパーを使っている場合は、 + SuexecUserGroup + ディレクティブを VirtualHost + ディレクティブの中で使用することができます。

    + +

    セキュリティ: ログファイルを書く場所を指定するときは、 + Apache を起動したユーザ以外がそのディレクトリに書き込み権限を + 持っている場合にセキュリティ上の危険があることに注意してください。 + 詳細はセキュリティのこつドキュメントを + 参照してください。

    + +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/ip-based.html.ko.euc-kr b/docs/manual/vhosts/ip-based.html.ko.euc-kr index 313fdfcfed0..7a69d6d071a 100644 --- a/docs/manual/vhosts/ip-based.html.ko.euc-kr +++ b/docs/manual/vhosts/ip-based.html.ko.euc-kr @@ -1,27 +1,35 @@ - -¾ÆÆÄġ IP±â¹Ý °¡»óȣ½ºƮ Áö¿ø - Apache HTTP Server +¾ÆÆÄġ IP±â¹Ý °¡»óȣ½ºƮ Áö¿ø - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ¾ÆÆÄġ IP±â¹Ý °¡»óȣ½ºƮ Áö¿ø

    +Apache > HTTP Server > Documentation > Version 2.2 > °¡»óȣ½ºƮ

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¾ÆÆÄġ IP±â¹Ý °¡»óȣ½ºƮ Áö¿ø

    °¡´ÉÇÑ ¾ð¾î:  en  |  fr  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -32,7 +40,7 @@
  • ¼­¹ö Çϳª·Î °¡»óȣ½ºƮ ½ÇÇàÇϱâ
  • Âü°í

    +
    top

    ½ýºÅÛ ¿䱸»çÇ×

    @@ -145,8 +153,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/ip-based.html.tr.utf8 b/docs/manual/vhosts/ip-based.html.tr.utf8 new file mode 100644 index 00000000000..adda3430f46 --- /dev/null +++ b/docs/manual/vhosts/ip-based.html.tr.utf8 @@ -0,0 +1,219 @@ + + + + + +Apache’de IP’ye Dayalı Sanal Konak Desteği - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache’de IP’ye Dayalı Sanal Konak Desteği

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    + +
    top
    +
    +

    IP'ye dayalı sanal konak desteği nedir

    +

    IP'ye dayalı sanal konak desteği, bir isteğin alındığı IP adresi ve + porta bağlı olarak farklı yönergeleri uygulamak için bir yoldur. Özetle, + farklı siteleri farklı portlardan ve arayüzlerden sunmakta + kullanılır.

    + +

    Çoğu durumda, isme dayalı sanal konaklar + birçok sanal konağın tek bir IP adresi/port çiftini paylaşmasını + sağladığından daha kullanışlıdır. Neyi kullanacağınıza karar vermek için + İsme dayalı ve IP’ye dayalı Sanal + Konaklar bölümüne bakınız.

    +
    top
    +
    +

    Sistem gereksinimleri

    + +

    IP’ye dayalı deyince, sunucunun her IP’ye dayalı + sanal konak için ayrı bir IP adresi/port çiftine sahip olduğunu + anlıyoruz. Bunun olması için, makine ya çok sayıda ağ bağlantısına + sahiptir ya da makinede, günümüzde çoğu işletim sistemi tarafından + desteklenen sanal arabirimler ve/veya çok sayıda port kullanılıyordur. + (Sanal arabirimlerle ilgili ayrıntılar için sistem belgelerinize bakınız; + bu konu genellikle çoklu port kullanımı ve/veya IP rumuzları (ip aliases) + olarak geçer ve ayarlamak için genellikle "ifconfig" komutu + kullanılır.)

    + +

    Apache HTTP Sunucusu terminolojisinde, tek bir IP adresinin çok sayıda + TCP portuyla kullanımı IP'ye dayalı sanal konak desteği olarak + bilinir.

    +
    top
    +
    +

    Apache nasıl ayarlanır?

    + +

    Çok sayıda konağı desteklemek üzere Apache iki şekilde + yapılandırılabilir. Ya her konak için ayrı bir httpd + süreci çalıştırırsınız ya da tüm sanal konakları destekleyen tek bir + süreciniz olur.

    + +

    Çok sayıda süreç kullanıyorsanız:

    + +
      +
    • Güvenli bölgeler oluşturmanız gerekiyordur. Örneğin, şirket2’deki hiç + kimse dosya sistemi üzerinden şirket1’e ait verileri okuyamasın, sadece + herkes gibi tarayıcı kullanarak okuyabilsin istenebilir. Bu durumda, + User, + Group, + Listen ve + ServerRoot yönergeleri farklı + değerlerle yapılandırılmış iki ayrı süreç çalıştırmanız gerekir.
    • + +
    • Makine üzerindeki her IP adresini dinlemek için gereken dosya tanıtıcı + ve bellek miktarını makul bir seviyede tutabilirsiniz. Bu sadece belli + adresleri dinleyerek veya çok sayıda adresle eşleşen adres kalıpları + kullanarak mümükün olabilir. Zaten, bir sebeple belli bir adresi dinleme + ihtiyacı duyarsanız, diğer tüm adresleri de ayrı ayrı dinlemeniz + gerekir. (Bir httpd programı N-1 adresi dinlerken + diğerleri kalan adresleri dinleyebilir.)
    • +
    + +

    Tek bir süreç kullanıyorsanız:

    + +
      +
    • httpd yapılandırmasının sanal konaklar arasında + paylaşılmasına izin veriliyor demektir.
    • + +
    • Makine çok büyük miktarda isteği karşılayabilir ve ayrı ayrı + süreçlerin çalışmasından kaynaklanan önemli başarım kayıpları + yaşanmaz.
    • +
    + +
    top
    +
    +

    Çok sayıda sürecin yapılandırılması

    + +

    Her sanal konak için ayrı bir httpd yapılandırması + oluşturulur. Her yapılandırmada, o süreç tarafından sunulacak IP adresi + (veya sanal konak) için Listen + yönergesi kullanılır. Örnek:

    + +

    + Listen 192.168.0.1:80 +

    + +

    Burada konak ismi yerine IP adresi kullanmanız önerilir (ayrıntılar için + DNS ile ilgili konular belgesine + bakınız).

    + +
    top
    +
    +

    Sanal konaklarla tek bir sürecin yapılandırılması

    + +

    Bu durum için, ana sunucu ve sanal konakların tümüne gelen istekler tek + bir httpd süreci tarafından karşılanır. Yapılandırma + dosyasında, her sanal konak için, farklı değerlere sahip ServerAdmin, ServerName, DocumentRoot, ErrorLogveTransferLog + veya CustomLog yönergeleri + içeren ayrı birer VirtualHost bölümü + oluşturulur. Örnek:

    + +

    + <VirtualHost 192.168.0.1:80> + + ServerAdmin bilgi@posta.birkobi.example.com
    + DocumentRoot /gruplar/birkobi/belgeler
    + ServerName birkobi.example.com
    + ErrorLog /gruplar/birkobi/günlükler/hatalar.log
    + TransferLog /gruplar/birkobi/günlükler/erisim.log +
    + </VirtualHost>
    +
    + <VirtualHost 192.168.0.2:80> + + ServerAdmin bilgi@posta.digerkobi.example.com
    + DocumentRoot /gruplar/digerkobi/belgeler
    + ServerName digerkobi.example.com
    + ErrorLog /gruplar/digerkobi/günlükler/hatalar.log
    + TransferLog /gruplar/digerkobi/günlükler/erisim.log +
    + </VirtualHost> +

    + +

    <VirtualHost> yönergelerinde konak isimlerinin yerlerine IP + adreslerini kullanmanız önerilir (ayrıntılar için + DNS ile ilgili konular + belgesine bakınız).

    + +

    Belli bir IP adresi veya port kullanımı bunların joker eşdeğerlerine + göre daha yüksek öncelik sağlar ve eşleşen bir sanal konak da genel + sunucuya göre öncelik alır.

    + +

    Süreç oluşturmayı denetleyen yönergeler ve bir kaç başka yönerge dışında + hemen hemen tüm yapılandırma yönergeleri VirtualHost bölümleri içinde kullanılabilir. Bir + yönergenin VirtualHost bölümlerinde + kullanılıp kullanılmayacağını öğrenmek için yönerge dizinini kullanarak yönergenin Bağlam’ına bakınız.

    + +

    suEXEC sarmalayıcısı kullanıldığı takdirde + SuexecUserGroup yönergesi de + bir VirtualHost bölümü içinde + kullanılabilir.

    + +

    GÜVENLİK:Günlük dosyalarının yazılacağı yeri belirlerken, + Apache’yi başlatan kullanıcıdan başka kimsenin yazamayacağı bir yerin + seçilmesi bazı güvenlik risklerini ortadan kaldırmak bakımından önemlidir. + Ayrıntılar için güvenlik ipuçları + belgesine bakınız.

    +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/ip-based.xml b/docs/manual/vhosts/ip-based.xml index 25b54c0fdd8..8ab6df4da65 100644 --- a/docs/manual/vhosts/ip-based.xml +++ b/docs/manual/vhosts/ip-based.xml @@ -4,12 +4,12 @@ + + + -

    SuexecUserGroup peut être - utilisées à l'intérieur d'une directive VirtualHost si l'exécution se fait +

    SuexecUserGroup peut être + utilisées à l'intérieur d'une directive VirtualHost si l'exécution se fait sous suEXEC. (Voir suEXEC).

    -

    SÉCURITÉ : lorsque vous spécifiez où écrire les +

    SÉCURITÉ : lorsque vous spécifiez où écrire les fichiers journaux, soyez attentif aux risques si quelqu'un d'autre - que celui qui a démarré Apache dispose des droits d'écriture + que celui qui a démarré Apache dispose des droits d'écriture sur l'emplacement de ces fichiers. Consultez les - Conseils sur la sécurité - pour plus de détails.

    + Conseils sur la sécurité + pour plus de détails.

    diff --git a/docs/manual/vhosts/ip-based.xml.ja b/docs/manual/vhosts/ip-based.xml.ja index 03efa3a1a3d..5976bfb502b 100644 --- a/docs/manual/vhosts/ip-based.xml.ja +++ b/docs/manual/vhosts/ip-based.xml.ja @@ -1,15 +1,15 @@ - + - + -$B%P!<%A%c%k%[%9%H(B - Apache $B$N(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H%5%]!<%H(B +バーチャルホスト + Apache の IP ベースのバーチャルホストサポート -$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H%5%]!<%H(B +名前ベースのバーチャルホストサポート -
    $B%7%9%F%`MW7o(B +
    システム要件 -

    IP $B%Y!<%9(B $B$H$$$&L>A0$,<($9$h$&$K!"%5!<%P$K$O(B - IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$=$l$>$l$K$D$-!"JL!9$N(B IP $B%"%I%l%9$,(B - $BI,MW$G$9(B$B!#J#?t$NJ*M}%3%M%/%7%g%s$r;}$C$F$$$k%^%7%s$rMQ0U$9$k$+!"(B - $B:G6a$N%*%Z%l!<%F%#%s%0%7%9%F%`$G%5%]!<%H$5$l$F$$$k%P!<%A%c%k(B - $B%$%s%?%U%'!<%9(B ($B>\:Y$O%7%9%F%`$N@bL@=q$rFI$s$G$/$@$5$$!#$?$$$F$$$O(B - "ip $B%(%$%j%"%9(B" $B$H8F$P$l$F$$$F!"@_Dj$K$OIaDL(B "ifconfig" $B%3%^%s%I$r(B - $B;H$$$^$9(B) $B$r;H$&$+$G +

    IP ベース という名前が示すように、サーバには + IP ベースのバーチャルホストそれぞれにつき、別々の IP アドレスが + 必要です。複数の物理コネクションを持っているマシンを用意するか、 + 最近のオペレーティングシステムでサポートされているバーチャル + インタフェース (詳細はシステムの説明書を読んでください。たいていは + "ip エイリアス" と呼ばれていて、設定には普通 "ifconfig" コマンドを + 使います) を使うかで実現できます。

    -
    Apache $B$N@_DjJ}K!(B +
    Apache の設定方法 -

    $BJ#?t$N%[%9%H$r%5%]!<%H$9$k$h$&$K(B Apache $B$r@_Dj$9$kJ}K!$O(B - $BFsDL$j$"$j$^$9!#JL$N(B httpd $B%G!<%b%s$r3F%[%9%HKh$K +

    複数のホストをサポートするように Apache を設定する方法は + 二通りあります。別の httpd デーモンを各ホスト毎に実行するか、 + すべてのバーチャルホストをサポートするデーモンを一つ実行するかです。

    -

    $B0J2<$N$H$-$K$OJ#?t$N%G!<%b%s$r;H$&$HNI$$$G$7$g$&(B:

    +

    以下のときには複数のデーモンを使うと良いでしょう:

      -
    • $B2ql9g!"$=$l$>$l(B +
    • 会社1 はウェブ経由以外では会社2 からはデータを読まれたくない、 + といったセキュリティの分離の問題があるとき。この場合、それぞれ User, Group, Listen, ServerRoot $B$N@_Dj$,0c$&Fs$D$N%G!<%b%s$r(B - $B - -
    • $B%^%7%s$N$9$Y$F$N(B IP $B%(%$%j%"%9$r(B listen $B$9$k$@$1$N(B - $B%a%b%j$H%U%!%$%k5-=R;R$NM>M5$,$"$k$H$-!#(BListen $B$O!V%o%$%k%I%+!<%I!W(B - $B%"%I%l%9$+!"FCDj$N%"%I%l%9$N$_$r(B listen $B$9$k$3$H$,$G$-$^$9!#(B - $B$G$9$+$i!"2?$i$+$NM}M3$GFCDj$N%"%I%l%9$r(B listen $B$7$J$1$P$J$i$J$$(B - $B$H$-$O!"$=$NFCDj$N%"%I%l%9$r$9$Y$F(B listen $B$9$kI,MW$,$"$j$^$9!#(B - ($B$?$@$7!"0l$D$N(B httpd $B$,(B N-1 $B8D$N%"%I%l%9$r(B listen $B$7!"(B - $BJL$N(B httpd $B$,;D$j$N%"%I%l%9$r(B listen $B$9$k$H$$$C$?$3$H$O2DG=$G$9!#(B)
    • + module="core">ServerRoot の設定が違う二つのデーモンを + 実行する必要があります。 + +
    • マシンのすべての IP エイリアスを listen するだけの + メモリとファイル記述子の余裕があるとき。Listen は「ワイルドカード」 + アドレスか、特定のアドレスのみを listen することができます。 + ですから、何らかの理由で特定のアドレスを listen しなけばならない + ときは、その特定のアドレスをすべて listen する必要があります。 + (ただし、一つの httpd が N-1 個のアドレスを listen し、 + 別の httpd が残りのアドレスを listen するといったことは可能です。)
    -

    $B0J2<$N$H$-$K$OC1FH$N%G!<%b%s$r;H$&$HNI$$$G$7$g$&(B:

    +

    以下のときには単独のデーモンを使うと良いでしょう:

      -
    • $B%P!<%A%c%k%[%9%H4V$G$N(B httpd $B$N@_Dj$r6&M-$7$F$b$h$$$H$-!#(B
    • +
    • バーチャルホスト間での httpd の設定を共有してもよいとき。
    • -
    • $B%^%7%s$,B?$/$N%j%/%(%9%H$r07$&$?$a!"JL%G!<%b%s$r +
    • マシンが多くのリクエストを扱うため、別デーモンを実行することによる + 性能の低下の影響が著しいとき。
    -
    $BJ#?t%G!<%b%s$N@_Dj(B +
    複数デーモンの設定 -

    $B3F%P!<%A%c%k%[%9%H$KBP$7$FJL$N(B httpd $B$N%$%s%9%H!<%k$r9T$J$$$^$9!#(B - $B@_Dj%U%!%$%kCf$N(B Listen - $B%G%#%l%/%F%#%V$r;H$C$F!"(B - $B3F%$%s%9%H!<%k$G%G!<%b%s$,07$&(B IP $B%"%I%l%9(B ($B%P!<%A%c%k%[%9%H(B) - $B$rA*Br$7$^$9!#Nc$($P(B

    +

    各バーチャルホストに対して別の httpd のインストールを行ないます。 + 設定ファイル中の Listen + ディレクティブを使って、 + 各インストールでデーモンが扱う IP アドレス (バーチャルホスト) + を選択します。例えば

    Listen www.smallco.com:80 -

    $B$3$3$G!"%[%9%HL>$NBe$o$j$K(B IP $B%"%I%l%9$r;H$&J}$,?d>)$5$l$F$$$k$3$H$K(B - $BCm0U$7$F$*$$$F$/$@$5$$(B - (DNS $B$NCm0U;v9`(B $B;2>H(B)$B!#(B

    +

    ここで、ホスト名の代わりに IP アドレスを使う方が推奨されていることに + 注意しておいてください + (DNS の注意事項 参照)。

    -
    $BJ#?t$N%P!<%A%c%k%[%9%H$N@_Dj$r$7$?(B -$B%G!<%b%s$r0l$D@_Dj$9$k(B +
    複数のバーチャルホストの設定をした +デーモンを一つ設定する -

    $B$3$N>l9g$O!"0l$D$N(B httpd $B$,VirtualHost $B%G%#%l%/%F%#%V$r;H$C$F!"(B +

    この場合は、一つの httpd が主サーバとすべてのバーチャルホストのリクエストを + 処理します。設定ファイルの VirtualHost ディレクティブを使って、 ServerAdmin, ServerName, DocumentRoot, ErrorLog, TransferLog - $B$d(B CustomLog - $B@_Dj%G%#%l%/%F%#%V$NCM$,3F%[%9%HKh$K0[$J$kCM$K@_Dj$5$l$k$h$&$K$7$^$9!#(B - $BNc$($P(B

    + や CustomLog + 設定ディレクティブの値が各ホスト毎に異なる値に設定されるようにします。 + 例えば

    <VirtualHost www.smallco.com>
    @@ -130,29 +130,29 @@ </VirtualHost>
    -

    $B$3$3$G!"%[%9%HL>$NBe$o$j$K(B IP $B%"%I%l%9$r;H$&J}$,?d>)$5$l$F$$$k$3$H$K(B - $BCm0U$7$F$*$$$F$/$@$5$$(B - (DNS $B$NCm0U;v9`(B $B;2>H(B)$B!#(B

    +

    ここで、ホスト名の代わりに IP アドレスを使う方が推奨されていることに + 注意しておいてください + (DNS の注意事項 参照)。

    -

    $B%W%m%;%9@8@.$r@)8f$9$k%G%#%l%/%F%#%V$d$=$NB>$N$$$/$D$+$N%G%#%l%/%F%#%V$r(B - $B=|$$$F!"$[$\(B$B$9$Y$F(B$B$N@_Dj%G%#%l%/%F%#%V$r(B VirtualHost - $B%G%#%l%/%F%#%V$NCf$K=q$/$3$H$,$G$-$^$9!#%G%#%l%/%F%#%V$,(B VirtualHost - $B%G%#%l%/%F%#%V$G;HMQ$G$-$k$+$I$&$+$O(B $B%G%#%l%/%F%#%V:w0z(B$B$r;H$C$F(B$B%3%s%F%-%9%H(B$B$N(B - $BMs$rD4$Y$F$/$@$5$$!#(B

    +

    プロセス生成を制御するディレクティブやその他のいくつかのディレクティブを + 除いて、ほぼすべての設定ディレクティブを VirtualHost + ディレクティブの中に書くことができます。ディレクティブが VirtualHost + ディレクティブで使用できるかどうかは ディレクティブ索引を使ってコンテキストの + 欄を調べてください。

    -

    suEXEC$B%i%C%Q!<(B$B$r;H$C$F$$$k>l9g$O!"(B +

    suEXECラッパーを使っている場合は、 SuexecUserGroup - $B%G%#%l%/%F%#%V$r(B VirtualHost - $B%G%#%l%/%F%#%V$NCf$G;HMQ$9$k$3$H$,$G$-$^$9!#(B

    - -

    $B%;%-%e%j%F%#(B: $B%m%0%U%!%$%k$r=q$/>l=j$r;XDj$9$k$H$-$O!"(B - Apache $B$r5/F0$7$?%f!<%60J30$,$=$N%G%#%l%/%H%j$K=q$-9~$_8"8B$r(B - $B;}$C$F$$$k>l9g$K%;%-%e%j%F%#>e$N4m81$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B - $B>\:Y$O(B$B%;%-%e%j%F%#$N$3$D(B$B%I%-%e%a%s%H$r(B - $B;2>H$7$F$/$@$5$$!#(B

    + ディレクティブを VirtualHost + ディレクティブの中で使用することができます。

    + +

    セキュリティ: ログファイルを書く場所を指定するときは、 + Apache を起動したユーザ以外がそのディレクトリに書き込み権限を + 持っている場合にセキュリティ上の危険があることに注意してください。 + 詳細はセキュリティのこつドキュメントを + 参照してください。

    diff --git a/docs/manual/vhosts/ip-based.xml.ko b/docs/manual/vhosts/ip-based.xml.ko index c3b96f8ba8b..c1863efc8fa 100644 --- a/docs/manual/vhosts/ip-based.xml.ko +++ b/docs/manual/vhosts/ip-based.xml.ko @@ -1,15 +1,15 @@ - + - + ip-based /vhosts/ .. @@ -8,7 +9,8 @@ en fr - ja + ja ko + tr diff --git a/docs/manual/vhosts/ip-based.xml.tr b/docs/manual/vhosts/ip-based.xml.tr new file mode 100644 index 00000000000..ac4d8d9563c --- /dev/null +++ b/docs/manual/vhosts/ip-based.xml.tr @@ -0,0 +1,187 @@ + + + + + + + + + +Sanal Konaklar + Apache’de IP’ye Dayalı Sanal Konak Desteği + + +İsme Dayalı Sanal Konak Desteği + + +
    IP'ye dayalı sanal konak desteği nedir +

    IP'ye dayalı sanal konak desteği, bir isteğin alındığı IP adresi ve + porta bağlı olarak farklı yönergeleri uygulamak için bir yoldur. Özetle, + farklı siteleri farklı portlardan ve arayüzlerden sunmakta + kullanılır.

    + +

    Çoğu durumda, isme dayalı sanal konaklar + birçok sanal konağın tek bir IP adresi/port çiftini paylaşmasını + sağladığından daha kullanışlıdır. Neyi kullanacağınıza karar vermek için + İsme dayalı ve IP’ye dayalı Sanal + Konaklar bölümüne bakınız.

    +
    + +
    Sistem gereksinimleri + +

    IP’ye dayalı deyince, sunucunun her IP’ye dayalı + sanal konak için ayrı bir IP adresi/port çiftine sahip olduğunu + anlıyoruz. Bunun olması için, makine ya çok sayıda ağ bağlantısına + sahiptir ya da makinede, günümüzde çoğu işletim sistemi tarafından + desteklenen sanal arabirimler ve/veya çok sayıda port kullanılıyordur. + (Sanal arabirimlerle ilgili ayrıntılar için sistem belgelerinize bakınız; + bu konu genellikle çoklu port kullanımı ve/veya IP rumuzları (ip aliases) + olarak geçer ve ayarlamak için genellikle "ifconfig" komutu + kullanılır.)

    + +

    Apache HTTP Sunucusu terminolojisinde, tek bir IP adresinin çok sayıda + TCP portuyla kullanımı IP'ye dayalı sanal konak desteği olarak + bilinir.

    +
    + +
    Apache nasıl ayarlanır? + +

    Çok sayıda konağı desteklemek üzere Apache iki şekilde + yapılandırılabilir. Ya her konak için ayrı bir httpd + süreci çalıştırırsınız ya da tüm sanal konakları destekleyen tek bir + süreciniz olur.

    + +

    Çok sayıda süreç kullanıyorsanız:

    + +
      +
    • Güvenli bölgeler oluşturmanız gerekiyordur. Örneğin, şirket2’deki hiç + kimse dosya sistemi üzerinden şirket1’e ait verileri okuyamasın, sadece + herkes gibi tarayıcı kullanarak okuyabilsin istenebilir. Bu durumda, + User, + Group, + Listen ve + ServerRoot yönergeleri farklı + değerlerle yapılandırılmış iki ayrı süreç çalıştırmanız gerekir.
    • + +
    • Makine üzerindeki her IP adresini dinlemek için gereken dosya tanıtıcı + ve bellek miktarını makul bir seviyede tutabilirsiniz. Bu sadece belli + adresleri dinleyerek veya çok sayıda adresle eşleşen adres kalıpları + kullanarak mümükün olabilir. Zaten, bir sebeple belli bir adresi dinleme + ihtiyacı duyarsanız, diğer tüm adresleri de ayrı ayrı dinlemeniz + gerekir. (Bir httpd programı N-1 adresi dinlerken + diğerleri kalan adresleri dinleyebilir.)
    • +
    + +

    Tek bir süreç kullanıyorsanız:

    + +
      +
    • httpd yapılandırmasının sanal konaklar arasında + paylaşılmasına izin veriliyor demektir.
    • + +
    • Makine çok büyük miktarda isteği karşılayabilir ve ayrı ayrı + süreçlerin çalışmasından kaynaklanan önemli başarım kayıpları + yaşanmaz.
    • +
    + +
    + +
    Çok sayıda sürecin yapılandırılması + +

    Her sanal konak için ayrı bir httpd yapılandırması + oluşturulur. Her yapılandırmada, o süreç tarafından sunulacak IP adresi + (veya sanal konak) için Listen + yönergesi kullanılır. Örnek:

    + + + Listen 192.168.0.1:80 + + +

    Burada konak ismi yerine IP adresi kullanmanız önerilir (ayrıntılar için + DNS ile ilgili konular belgesine + bakınız).

    + +
    + +
    Sanal konaklarla tek bir sürecin yapılandırılması + +

    Bu durum için, ana sunucu ve sanal konakların tümüne gelen istekler tek + bir httpd süreci tarafından karşılanır. Yapılandırma + dosyasında, her sanal konak için, farklı değerlere sahip ServerAdmin, ServerName, DocumentRoot, ErrorLogveTransferLog + veya CustomLog yönergeleri + içeren ayrı birer VirtualHost bölümü + oluşturulur. Örnek:

    + + + <VirtualHost 192.168.0.1:80> + + ServerAdmin bilgi@posta.birkobi.example.com
    + DocumentRoot /gruplar/birkobi/belgeler
    + ServerName birkobi.example.com
    + ErrorLog /gruplar/birkobi/günlükler/hatalar.log
    + TransferLog /gruplar/birkobi/günlükler/erisim.log +
    + </VirtualHost>
    +
    + <VirtualHost 192.168.0.2:80> + + ServerAdmin bilgi@posta.digerkobi.example.com
    + DocumentRoot /gruplar/digerkobi/belgeler
    + ServerName digerkobi.example.com
    + ErrorLog /gruplar/digerkobi/günlükler/hatalar.log
    + TransferLog /gruplar/digerkobi/günlükler/erisim.log +
    + </VirtualHost> +
    + +

    <VirtualHost> yönergelerinde konak isimlerinin yerlerine IP + adreslerini kullanmanız önerilir (ayrıntılar için + DNS ile ilgili konular + belgesine bakınız).

    + +

    Belli bir IP adresi veya port kullanımı bunların joker eşdeğerlerine + göre daha yüksek öncelik sağlar ve eşleşen bir sanal konak da genel + sunucuya göre öncelik alır.

    + +

    Süreç oluşturmayı denetleyen yönergeler ve bir kaç başka yönerge dışında + hemen hemen tüm yapılandırma yönergeleri VirtualHost bölümleri içinde kullanılabilir. Bir + yönergenin VirtualHost bölümlerinde + kullanılıp kullanılmayacağını öğrenmek için yönerge dizinini kullanarak yönergenin Bağlam’ına bakınız.

    + +

    suEXEC sarmalayıcısı kullanıldığı takdirde + SuexecUserGroup yönergesi de + bir VirtualHost bölümü içinde + kullanılabilir.

    + +

    GÜVENLİK:Günlük dosyalarının yazılacağı yeri belirlerken, + Apache’yi başlatan kullanıcıdan başka kimsenin yazamayacağı bir yerin + seçilmesi bazı güvenlik risklerini ortadan kaldırmak bakımından önemlidir. + Ayrıntılar için güvenlik ipuçları + belgesine bakınız.

    +
    +
    diff --git a/docs/manual/vhosts/mass.html b/docs/manual/vhosts/mass.html index 6c05d28e88f..408420d11ba 100644 --- a/docs/manual/vhosts/mass.html +++ b/docs/manual/vhosts/mass.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: mass.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -5,3 +7,7 @@ URI: mass.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: mass.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/vhosts/mass.html.en b/docs/manual/vhosts/mass.html.en index 1f8c2380763..febefbd8ebe 100644 --- a/docs/manual/vhosts/mass.html.en +++ b/docs/manual/vhosts/mass.html.en @@ -1,25 +1,33 @@ - -Dynamically configured mass virtual hosting - Apache HTTP Server +Dynamically configured mass virtual hosting - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Dynamically configured mass virtual hosting

    +Apache > HTTP Server > Documentation > Version 2.2 > Virtual Hosts

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    +
    top

    Motivation

    @@ -253,6 +260,17 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    </VirtualHost>

    +
    +

    Note

    +

    If the first VirtualHost block does not include a + ServerName directive, the reverse + DNS of the relevant IP will be used instead. + If this is not the server name you + wish to use, a bogus entry (ServerName + none.example.com) can be added to get around this + behaviour.

    +
    +
    top

    More efficient IP-based virtual hosting

    @@ -279,30 +297,6 @@ VirtualDocumentRootIP /www/hosts/%0/docs
    VirtualScriptAliasIP /www/hosts/%0/cgi-bin

    -
    top
    -
    -

    Using older versions of Apache

    - -

    The examples above rely on mod_vhost_alias - which appeared after version 1.3.6. If you are using a version - of Apache without mod_vhost_alias then you can - implement this technique with mod_rewrite as - illustrated below, but only for Host:-header-based virtual - hosts.

    - -

    In addition there are some things to beware of with logging. - Apache 1.3.6 is the first version to include the - %V log format directive; in versions 1.3.0 - 1.3.3 - the %v option did what %V does; - version 1.3.4 has no equivalent. In all these versions of - Apache the UseCanonicalName directive can appear - in .htaccess files which means that customers can - cause the wrong thing to be logged. Therefore the best thing to - do is use the %{Host}i directive which logs the - Host: header directly; note that this may include - :port on the end which is not the case for - %V.

    -
    top
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/mass.html.ko.euc-kr b/docs/manual/vhosts/mass.html.ko.euc-kr index e331a3e528c..b18497d882a 100644 --- a/docs/manual/vhosts/mass.html.ko.euc-kr +++ b/docs/manual/vhosts/mass.html.ko.euc-kr @@ -1,25 +1,33 @@ - -´뷮ÀÇ °¡»óȣ½ºƮ¸¦ µ¿ÀûÀ¸·Î ¼³Á¤Çϱâ - Apache HTTP Server +´뷮ÀÇ °¡»óȣ½ºƮ¸¦ µ¿ÀûÀ¸·Î ¼³Á¤Çϱâ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ´뷮ÀÇ °¡»óȣ½ºƮ¸¦ µ¿ÀûÀ¸·Î ¼³Á¤Çϱâ

    +Apache > HTTP Server > Documentation > Version 2.2 > °¡»óȣ½ºƮ

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ´뷮ÀÇ °¡»óȣ½ºƮ¸¦ µ¿ÀûÀ¸·Î ¼³Á¤Çϱâ

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -44,7 +52,7 @@ »ç¿ëÇÑ ȨÆäÀÌÁö ½ýºÅÛ
  • º°µµÀÇ °¡»óȣ½ºƮ ¼³Á¤ÆÄÀÏ »ç¿ëÇϱâ
  • -
    +
    top

    µ¿±â

    @@ -416,8 +424,30 @@ RewriteRule ^/(.*)$ %1/cgi-bin/$1

    °¡´ÉÇÑ ¾ð¾î:  en  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/mass.html.tr.utf8 b/docs/manual/vhosts/mass.html.tr.utf8 new file mode 100644 index 00000000000..f3446947d45 --- /dev/null +++ b/docs/manual/vhosts/mass.html.tr.utf8 @@ -0,0 +1,444 @@ + + + + + +Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma

    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    + + +

    Bu belgede sanal konakların sonu belirsiz bir şekilde artışı karşısında + Apache httpd sunucusunun nasıl daha verimli kullanılacağı açıklanmıştır. +

    + +
    + +
    top
    +
    +

    Amaç

    + +

    Burada açıklanan teknikler, httpd.conf dosyanızın + örnekteki gibi, aslında hemen hemen birbirinin aynı çok sayıda + <VirtualHost> bölümü içereceği zaman yapılacaklar ile + ilgilidir. +

    + +

    +NameVirtualHost 111.22.33.44
    +<VirtualHost 111.22.33.44>
    + + ServerName musteri-1.dom
    + DocumentRoot /siteler/musteri-1.dom/belgeler
    + ScriptAlias /cgi-bin/ /siteler/musteri-1.dom/cgi-bin
    +
    +</VirtualHost>
    +<VirtualHost 111.22.33.44>
    + + ServerName musteri-2.dom
    + DocumentRoot /siteler/musteri-2.dom/belgeler
    + ScriptAlias /cgi-bin/ /siteler/musteri-2.dom/cgi-bin
    +
    +</VirtualHost>
    +# blah blah blah
    +<VirtualHost 111.22.33.44>
    + + ServerName musteri-N.dom
    + DocumentRoot /siteler/musteri-N.dom/belgeler
    + ScriptAlias /cgi-bin/ /siteler/musteri-N.dom/cgi-bin
    +
    +</VirtualHost> +

    + +

    Ana fikir, tüm durağan <VirtualHost> + yapılandırmalarını devingen olarak çalışan tek bir + <VirtualHost> bölümüyle değiştirmektir. Bunun elbette + bazı getirileri olacaktır:

    + +
      +
    1. Yapılandırma dosyanız küçüleceği için Apache daha çabuk + başlatılabilecek ve daha az bellek harcayacaktır.
    2. + +
    3. Yeni sanal konakların eklenmesi, DNS’de yeni girdiler oluşturmak ve + dosya sisteminde bununla ilgili dizinleri açmak dışında biraz daha + basit olacaktır; en azından Apache’yi yeniden yapılandırmak ve yeniden + başlatmak zorunda kalmayacaksınız.
    4. +
    + +

    Ana götürüsü ise her sanal konak için ayrı birer günlük dosyasına sahip + olamayacak olmanızdır. Öte yandan, dosya tanıtıcılarının sınırlı olması + nedeniyle bunu yapmayı zaten istemezsiniz. Günlük kayıtları için bir + fifo veya bir boru hattı oluşturmak ve diğer uçta çalışan bir süreç + vasıtasıyla günlükleri müşterilere paylaştırmak daha iyidir (ayrıca, bu, + istatistikleri toplamanızı da kolaylaştırır).

    + +
    top
    +
    +

    Genel Bakış

    + +

    Bir sanal konak iki bilgiye bakarak belirlenir: IP adresi ve HTTP + isteğindeki Host: başlığının içeriği. Devingen sanal + barındırma tekniği, isteği yerine getirmek için kullanılacak dosya + yoluna bu bilgiyi kendiliğinden girmek esasına dayanır. Bu, Apache 2.0 + ile mod_vhost_alias kullanarak oldukça kolay + yapılabileceği gibi mod_rewrite da kullanılabilir. Bu + modüllerin her ikisi de öntanımlı olarak devre dışıdır. Bu tekniği + kullanmak isterseniz Apache’yi yeniden yapılandırıp derleyerek bu iki + modülü etkin duruma getirmeniz gerekir.

    + +

    Devingen sanal konağı normal bir sanal konak gibi göstermek için bazı + şeyleri ’göstermelik’ olarak yapmak gerekir. Bunlardan en önemlisi, + Apache tarafından göreli URL’lerden normal URL’leri ve benzerlerini + üretmek için kullanılan sunucu ismidir. Sunucu ismi + ServerName yönergesi ile yapılandırılır ve CGI’ler + tarafından SERVER_NAME ortam değişkeni üzerinden + kullanılır. Çalışma anındaki asıl değer UseCanonicalName yönergesi tarafından denetlenir. + UseCanonicalName Off olduğunda sunucu ismi isteğin + Host: başlık alanından elde edilir. UseCanonicalName + DNS belirtilmişse, sunucu ismi, sanal konağın IP adresinden + tersine DNS sorgusu yapılarak elde edilir. Birincisi isme dayalı sanal + konaklar tarafından ikincisi ise IP’ye dayalı sanal konaklar tarafından + kullanılır. Eğer Apache, istekte Host: başlığının olmayışı + veya DNS sorgusunun başarısız olması sebebiyle sunucu ismini elde + edemezse son çare olarak ServerName yönergesinde yazılı + değeri kullanır.

    + +

    ‘Göstermelik’ yapılan şeylerden biri de DocumentRoot + yönergesi ile yapılandırılan belge kök dizini olup CGI’ler tarafından + DOCUMENT_ROOT ortam değişkeni üzerinden kullanılır. Normal + yapılandırmada core modülü tarafından dosya isimlerini + URI’lere eşlerken kullanılır. Fakat sunucu devingen sanal konakları + kullanmak üzere yapılandırıldığında, eşleştirmeyi farklı yollardan yapan + başka bir modül devreye girer (mod_vhost_alias veya + mod_rewrite). DOCUMENT_ROOT ortam değişkenine + değerini atamaktan sorumlu olan bu iki modülden biri kullanılmazsa CGI + veya SSI belgeleri yanlış değerlerle üretilirler.

    + +
    top
    +
    +

    Basit Devingen Sanal Konaklar

    + +

    Yukarıda Amaç bölümünde özetlenen sanal konak + düzenlemesinin mod_vhost_alias kullanarak daha soysal bir + tarzda gerçekleştirilmiş halini içeren httpd.conf bölümü + aşağıdadır.

    + +

    +# sunucu ismini Host: başlığından elde edelim
    +UseCanonicalName Off
    +
    +# Bu günlükleme biçiminde ilk alana bakarak
    +# sanal konak günlükleri ayrıştırılabilir
    +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +# istekleri yerine getirmek için kullanılacak
    +# dosya isimlerine sunucu ismini ekleyelim
    +VirtualDocumentRoot /siteler/%0/belgeler
    +VirtualScriptAlias /siteler/%0/cgi-bin +

    + +

    Bu yapılandırmayı IP’ye dayalı sanal konaklar için kullanmak isterseniz + UseCanonicalName Off yerine UseCanonicalName + DNS yazmanız yeterlidir. Böylece dosya ismine eklenecek konak + ismi sanal konağın IP adresinden türetilir.

    + +
    top
    +
    +

    Sanal Kişisel Sayfalar Sistemi

    + +

    Bu sistem, yukarıdaki yapılandırmanın bir ISS’nin kişisel sayfalar + sunucusuna uyarlanmasından başka bir şey değildir. Biraz daha karmaşık + bir yapılandırma ile dosya isimlerine /home/kullanıcı/ + dizinlerini ekleyebiliriz. Farklı olarak her sanal konak için bir tane + değil hepsi için bir tane cgi-bin olacaktır.

    + +

    +# Son bölüm hariç yukarıdaki yapılandırma, burada...
    +
    +# sunucu ismine eklenecek dosya isimlerini oluşturalım
    +VirtualDocumentRoot /siteler/%2/belgeler
    +
    +# ortak cgi-bin dizini
    +ScriptAlias /cgi-bin/ /siteler/std-cgi/
    +

    + +

    mod_vhost_alias belgesinde daha karmaşık + VirtualDocumentRoot örnekleri vardır.

    + +
    top
    +
    +

    Aynı Sunucuda Kişisel ve Kurumsal Sanal Konaklar

    + +

    Daha karmaşık ayarlamalar yaparak Apache’inin normal + <VirtualHost> bölümlerini farklı kitlesel sanal konak + yapılandırmaları için kullanabilirsiniz. Örneğin, bireysel + müşterileriniz için bir IP adresiniz, kurumsal müşterileriniz için de + başka bir IP adresiniz olsun. Her biri için ayrı ayrı sanal konaklar + ayarlamak yerine aşağıdaki gibi bir yapılandırma kullanabilirsiniz:

    + +

    +UseCanonicalName Off
    +
    +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    +
    +<Directory /siteler/kurumsal>
    + + Options FollowSymLinks
    + AllowOverride All
    +
    +</Directory>
    +
    +<Directory /siteler/bireysel>
    + + Options FollowSymLinks
    + AllowOverride None
    +
    +</Directory>
    +
    +<VirtualHost 111.22.33.44>
    + + ServerName kurumsal.iss.dom
    +
    + CustomLog logs/access_log.kurumsal vcommon
    +
    + VirtualDocumentRoot /siteler/kurumsal/%0/belgeler
    + VirtualScriptAlias /siteler/kurumsal/%0/cgi-bin
    +
    +</VirtualHost>
    +
    +<VirtualHost 111.22.33.45>
    + + ServerName bireysel.iss.dom
    +
    + CustomLog logs/access_log.bireysel vcommon
    +
    + VirtualDocumentRoot /siteler/bireysel/%0/belgeler
    + ScriptAlias /cgi-bin/ /siteler/std-cgi/
    +
    +</VirtualHost> +

    + +

    Bilginize

    +

    Eğer ilk <VirtualHost> bölümü bir ServerName yönergesi içermezse ilgili IP + için ters DNS sorgusu yapılır. Eğer sorgudan elde edilen isim + sunucunun ismi değilse bu istenmeyen duruma bir çözüm olarak bir + bilgilendirme bölümü (ServerName isimsiz.iss.dom) + eklenebilir.

    +
    + +
    top
    +
    +

    IP’ye dayalı sanal konakları daha verimli kılmak

    + +

    İlk örnekte IP’ye dayalı sanal konaklar için + kullanılmak istenirse yapılandırmada neyin nasıl değiştirileceği + belirtilmişti. Her istek için ayrı bir DNS sorgusu gerekeceğinden bu + başarım düşmesine yol açar. DNS sorgusu ihtiyacını ortadan kaldırmak + için, bir çözüm olarak dosya sistemi, konak isimleri yerine IP + adreslerine göre düzenlenebilir. Günlük kayıtları da IP adreslerine göre + ayrıştırılacak şekilde ayarlanabilir.

    + +

    +# Sunucu ismini IP adresinden ters DNS sorgusu ile elde edelim
    +UseCanonicalName DNS
    +
    +# Günlük kayıtları IP adreslerine göre ayrıştırılabilsin
    +LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +# dosya isimleri IP adreslerini içersin
    +VirtualDocumentRootIP /siteler/%0/belgeler
    +VirtualScriptAliasIP /siteler/%0/cgi-bin
    +

    + +
    top
    +
    +

    mod_rewrite ile Kurumsal Müşteriler Sistemi

    + +

    Buradaki httpd.conf bölümü de ilk + örnekteki gibi elde edilmiştir. İlk yarı, bazı değişiklikler dışında + yukarıdaki örneğe çok benzer. Bu değişiklikler yapılandırmanın + mod_rewrite bölümünün düzgün çalışması ve geriye doğru + uyumluluk için gereklidir. İkinci yarı, asıl işi yapan + mod_rewrite yapılandırmasını içerir.

    + +

    Biraz uzmanlık gerektiren bazı kısımlar var: Öntanımlı olarak + mod_rewrite diğer (mod_alias, vs. gibi) URI + dönüşüm modüllerinden önce çalışır. Dolayısıyla bu modülleri kullanmak + isterseniz, mod_rewrite’ı bunlara izin verecek şekilde + yapılandırmalısınız. Ayrıca her devingen sanal konağa eşdeğer bir + ScriptAlias yapmak için de biraz büyü yapmak gerekir.

    + +

    +# Sunucu ismini Host: başlığınıdan alalım.
    +UseCanonicalName Off
    +
    +# Günlük dosyasından bilgileri ayıklayabilelim.
    +LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +<Directory /siteler/hosts>
    + + # ScriptAlias için yaptıklarımızla CGI betiklerini
    + # çalışmaya zorlayamayacağımızdan ExecCGI burada gerekli.
    + Options FollowSymLinks ExecCGI
    +
    +</Directory>
    +
    +# İşin zor yanına geldik.
    +
    +RewriteEngine On
    +
    +# Host: başlığından elde edilen sunucu isminde harf
    +# büyüklükleri çeşitli olabilir. Hepsini küçük harf yapalım.
    +RewriteMap lowercase int:tolower
    +
    +## önce normal belgelerle anlaşalım:
    +# Alias /icons/ çalışsın - diğer rumuzlar için yineleyelim
    +RewriteCond %{REQUEST_URI} !^/icons/
    +# CGI’ler de çalışsın.
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +# Biraz da büyü yapalım.
    +RewriteRule ^/(.*)$ /siteler/${lowercase:%{SERVER_NAME}}/belgeler/$1
    +
    +## Artık CGI’lerle anlaşabiliriz. - Bir MIME türü isteyelim.
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteRule ^/(.*)$ /siteler/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi]
    +
    +# Bu kadar! +

    + +
    top
    +
    +

    mod_rewrite ile Kişisel Sayfalar Sistemi

    + +

    Burada da ikinci örnekte yaptıklarımızı + yapıyoruz.

    + +

    +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +# CGI’ler çalışsın.
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +
    +# konak ismi doğru mu bakalım yoksa RewriteRule çalışmaz.
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.dom$
    +
    +# URI’nin başına sanal konak ismini ekleyelim.
    +# [C], bunu bitirdikten sonra, sonraki rewrite ile devam et demek.
    +RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
    +
    +# Artık asıl dosya ismini oluşturabiliriz.
    +RewriteRule ^www\.([a-z-]+)\.isp\.dom/(.*) /home/$1/$2
    +
    +# Ortak CGI dizinini tanımlayalım.
    +ScriptAlias /cgi-bin/ /siteler/std-cgi/ +

    + +
    top
    +
    +

    Sanal konaklar için ayrı bir yapılandırma dosyası kullanmak

    + +

    Burada, sanal konak isimlerinden belge kök dizini elde ederken + mod_rewrite modülünün daha gelişkin özelliklerinden + yararlanarak isimleri ayrı bir dosyadan okutacağız. Bu, esnekliği + artırır ama daha karmaşık bir yapılandırma gerekir.

    + +

    Aşağıdaki içeriğe sahip bir vhost.mapdosyamız olsun:

    + +

    +musteri-1.dom /siteler/kurumsal/1
    +musteri-2.dom /siteler/kurumsal/2
    +# ...
    +musteri-N.dom /siteler/kurumsal/N
    +

    + +

    httpd.conf dosyamız da şunları içerecektir:

    + +

    +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +# Eşlem dosyasını tanımlayalım
    +RewriteMap vhost txt:/siteler/conf/vhost.map
    +
    +# Rumuzları yukarıdaki gibi halledelim.
    +RewriteCond %{REQUEST_URI} !^/icons/
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +# Eşlemeyi dosyalar için de yapalım.
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/belgeler/$1
    +
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/cgi-bin/$1 +

    + +
    +
    +

    Mevcut Diller:  en  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/mass.xml b/docs/manual/vhosts/mass.xml index f430ff61097..321085e8f34 100644 --- a/docs/manual/vhosts/mass.xml +++ b/docs/manual/vhosts/mass.xml @@ -4,12 +4,12 @@ + - + mass /vhosts/ .. @@ -8,5 +9,6 @@ en ko + tr diff --git a/docs/manual/vhosts/mass.xml.tr b/docs/manual/vhosts/mass.xml.tr new file mode 100644 index 00000000000..d683a5f20e6 --- /dev/null +++ b/docs/manual/vhosts/mass.xml.tr @@ -0,0 +1,415 @@ + + + + + + + + + +Sanal Konaklar + Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma + + + +

    Bu belgede sanal konakların sonu belirsiz bir şekilde artışı karşısında + Apache httpd sunucusunun nasıl daha verimli kullanılacağı açıklanmıştır. +

    + +
    + +
    Amaç + +

    Burada açıklanan teknikler, httpd.conf dosyanızın + örnekteki gibi, aslında hemen hemen birbirinin aynı çok sayıda + <VirtualHost> bölümü içereceği zaman yapılacaklar ile + ilgilidir. +

    + + +NameVirtualHost 111.22.33.44
    +<VirtualHost 111.22.33.44>
    + + ServerName musteri-1.dom
    + DocumentRoot /siteler/musteri-1.dom/belgeler
    + ScriptAlias /cgi-bin/ /siteler/musteri-1.dom/cgi-bin
    +
    +</VirtualHost>
    +<VirtualHost 111.22.33.44>
    + + ServerName musteri-2.dom
    + DocumentRoot /siteler/musteri-2.dom/belgeler
    + ScriptAlias /cgi-bin/ /siteler/musteri-2.dom/cgi-bin
    +
    +</VirtualHost>
    +# blah blah blah
    +<VirtualHost 111.22.33.44>
    + + ServerName musteri-N.dom
    + DocumentRoot /siteler/musteri-N.dom/belgeler
    + ScriptAlias /cgi-bin/ /siteler/musteri-N.dom/cgi-bin
    +
    +</VirtualHost> +
    + +

    Ana fikir, tüm durağan <VirtualHost> + yapılandırmalarını devingen olarak çalışan tek bir + <VirtualHost> bölümüyle değiştirmektir. Bunun elbette + bazı getirileri olacaktır:

    + +
      +
    1. Yapılandırma dosyanız küçüleceği için Apache daha çabuk + başlatılabilecek ve daha az bellek harcayacaktır.
    2. + +
    3. Yeni sanal konakların eklenmesi, DNS’de yeni girdiler oluşturmak ve + dosya sisteminde bununla ilgili dizinleri açmak dışında biraz daha + basit olacaktır; en azından Apache’yi yeniden yapılandırmak ve yeniden + başlatmak zorunda kalmayacaksınız.
    4. +
    + +

    Ana götürüsü ise her sanal konak için ayrı birer günlük dosyasına sahip + olamayacak olmanızdır. Öte yandan, dosya tanıtıcılarının sınırlı olması + nedeniyle bunu yapmayı zaten istemezsiniz. Günlük kayıtları için bir + fifo veya bir boru hattı oluşturmak ve diğer uçta çalışan bir süreç + vasıtasıyla günlükleri müşterilere paylaştırmak daha iyidir (ayrıca, bu, + istatistikleri toplamanızı da kolaylaştırır).

    + +
    + +
    Genel Bakış + +

    Bir sanal konak iki bilgiye bakarak belirlenir: IP adresi ve HTTP + isteğindeki Host: başlığının içeriği. Devingen sanal + barındırma tekniği, isteği yerine getirmek için kullanılacak dosya + yoluna bu bilgiyi kendiliğinden girmek esasına dayanır. Bu, Apache 2.0 + ile mod_vhost_alias kullanarak oldukça kolay + yapılabileceği gibi mod_rewrite da kullanılabilir. Bu + modüllerin her ikisi de öntanımlı olarak devre dışıdır. Bu tekniği + kullanmak isterseniz Apache’yi yeniden yapılandırıp derleyerek bu iki + modülü etkin duruma getirmeniz gerekir.

    + +

    Devingen sanal konağı normal bir sanal konak gibi göstermek için bazı + şeyleri ’göstermelik’ olarak yapmak gerekir. Bunlardan en önemlisi, + Apache tarafından göreli URL’lerden normal URL’leri ve benzerlerini + üretmek için kullanılan sunucu ismidir. Sunucu ismi + ServerName yönergesi ile yapılandırılır ve CGI’ler + tarafından SERVER_NAME ortam değişkeni üzerinden + kullanılır. Çalışma anındaki asıl değer UseCanonicalName yönergesi tarafından denetlenir. + UseCanonicalName Off olduğunda sunucu ismi isteğin + Host: başlık alanından elde edilir. UseCanonicalName + DNS belirtilmişse, sunucu ismi, sanal konağın IP adresinden + tersine DNS sorgusu yapılarak elde edilir. Birincisi isme dayalı sanal + konaklar tarafından ikincisi ise IP’ye dayalı sanal konaklar tarafından + kullanılır. Eğer Apache, istekte Host: başlığının olmayışı + veya DNS sorgusunun başarısız olması sebebiyle sunucu ismini elde + edemezse son çare olarak ServerName yönergesinde yazılı + değeri kullanır.

    + +

    ‘Göstermelik’ yapılan şeylerden biri de DocumentRoot + yönergesi ile yapılandırılan belge kök dizini olup CGI’ler tarafından + DOCUMENT_ROOT ortam değişkeni üzerinden kullanılır. Normal + yapılandırmada core modülü tarafından dosya isimlerini + URI’lere eşlerken kullanılır. Fakat sunucu devingen sanal konakları + kullanmak üzere yapılandırıldığında, eşleştirmeyi farklı yollardan yapan + başka bir modül devreye girer (mod_vhost_alias veya + mod_rewrite). DOCUMENT_ROOT ortam değişkenine + değerini atamaktan sorumlu olan bu iki modülden biri kullanılmazsa CGI + veya SSI belgeleri yanlış değerlerle üretilirler.

    + +
    + +
    Basit Devingen Sanal Konaklar + +

    Yukarıda Amaç bölümünde özetlenen sanal konak + düzenlemesinin mod_vhost_alias kullanarak daha soysal bir + tarzda gerçekleştirilmiş halini içeren httpd.conf bölümü + aşağıdadır.

    + + +# sunucu ismini Host: başlığından elde edelim
    +UseCanonicalName Off
    +
    +# Bu günlükleme biçiminde ilk alana bakarak
    +# sanal konak günlükleri ayrıştırılabilir
    +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +# istekleri yerine getirmek için kullanılacak
    +# dosya isimlerine sunucu ismini ekleyelim
    +VirtualDocumentRoot /siteler/%0/belgeler
    +VirtualScriptAlias /siteler/%0/cgi-bin +
    + +

    Bu yapılandırmayı IP’ye dayalı sanal konaklar için kullanmak isterseniz + UseCanonicalName Off yerine UseCanonicalName + DNS yazmanız yeterlidir. Böylece dosya ismine eklenecek konak + ismi sanal konağın IP adresinden türetilir.

    + +
    + +
    Sanal Kişisel Sayfalar Sistemi + +

    Bu sistem, yukarıdaki yapılandırmanın bir ISS’nin kişisel sayfalar + sunucusuna uyarlanmasından başka bir şey değildir. Biraz daha karmaşık + bir yapılandırma ile dosya isimlerine /home/kullanıcı/ + dizinlerini ekleyebiliriz. Farklı olarak her sanal konak için bir tane + değil hepsi için bir tane cgi-bin olacaktır.

    + + +# Son bölüm hariç yukarıdaki yapılandırma, burada...
    +
    +# sunucu ismine eklenecek dosya isimlerini oluşturalım
    +VirtualDocumentRoot /siteler/%2/belgeler
    +
    +# ortak cgi-bin dizini
    +ScriptAlias /cgi-bin/ /siteler/std-cgi/
    +
    + +

    mod_vhost_alias belgesinde daha karmaşık + VirtualDocumentRoot örnekleri vardır.

    + +
    + +
    Aynı Sunucuda Kişisel ve Kurumsal Sanal Konaklar + +

    Daha karmaşık ayarlamalar yaparak Apache’inin normal + <VirtualHost> bölümlerini farklı kitlesel sanal konak + yapılandırmaları için kullanabilirsiniz. Örneğin, bireysel + müşterileriniz için bir IP adresiniz, kurumsal müşterileriniz için de + başka bir IP adresiniz olsun. Her biri için ayrı ayrı sanal konaklar + ayarlamak yerine aşağıdaki gibi bir yapılandırma kullanabilirsiniz:

    + + +UseCanonicalName Off
    +
    +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
    +
    +<Directory /siteler/kurumsal>
    + + Options FollowSymLinks
    + AllowOverride All
    +
    +</Directory>
    +
    +<Directory /siteler/bireysel>
    + + Options FollowSymLinks
    + AllowOverride None
    +
    +</Directory>
    +
    +<VirtualHost 111.22.33.44>
    + + ServerName kurumsal.iss.dom
    +
    + CustomLog logs/access_log.kurumsal vcommon
    +
    + VirtualDocumentRoot /siteler/kurumsal/%0/belgeler
    + VirtualScriptAlias /siteler/kurumsal/%0/cgi-bin
    +
    +</VirtualHost>
    +
    +<VirtualHost 111.22.33.45>
    + + ServerName bireysel.iss.dom
    +
    + CustomLog logs/access_log.bireysel vcommon
    +
    + VirtualDocumentRoot /siteler/bireysel/%0/belgeler
    + ScriptAlias /cgi-bin/ /siteler/std-cgi/
    +
    +</VirtualHost> +
    + + Bilginize +

    Eğer ilk <VirtualHost> bölümü bir ServerName yönergesi içermezse ilgili IP + için ters DNS sorgusu yapılır. Eğer sorgudan elde edilen isim + sunucunun ismi değilse bu istenmeyen duruma bir çözüm olarak bir + bilgilendirme bölümü (ServerName isimsiz.iss.dom) + eklenebilir.

    +
    + +
    + +
    IP’ye dayalı sanal konakları daha verimli kılmak + +

    İlk örnekte IP’ye dayalı sanal konaklar için + kullanılmak istenirse yapılandırmada neyin nasıl değiştirileceği + belirtilmişti. Her istek için ayrı bir DNS sorgusu gerekeceğinden bu + başarım düşmesine yol açar. DNS sorgusu ihtiyacını ortadan kaldırmak + için, bir çözüm olarak dosya sistemi, konak isimleri yerine IP + adreslerine göre düzenlenebilir. Günlük kayıtları da IP adreslerine göre + ayrıştırılacak şekilde ayarlanabilir.

    + + +# Sunucu ismini IP adresinden ters DNS sorgusu ile elde edelim
    +UseCanonicalName DNS
    +
    +# Günlük kayıtları IP adreslerine göre ayrıştırılabilsin
    +LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +# dosya isimleri IP adreslerini içersin
    +VirtualDocumentRootIP /siteler/%0/belgeler
    +VirtualScriptAliasIP /siteler/%0/cgi-bin
    +
    + +
    + +
    <code>mod_rewrite</code> ile Kurumsal Müşteriler Sistemi + +

    Buradaki httpd.conf bölümü de ilk + örnekteki gibi elde edilmiştir. İlk yarı, bazı değişiklikler dışında + yukarıdaki örneğe çok benzer. Bu değişiklikler yapılandırmanın + mod_rewrite bölümünün düzgün çalışması ve geriye doğru + uyumluluk için gereklidir. İkinci yarı, asıl işi yapan + mod_rewrite yapılandırmasını içerir.

    + +

    Biraz uzmanlık gerektiren bazı kısımlar var: Öntanımlı olarak + mod_rewrite diğer (mod_alias, vs. gibi) URI + dönüşüm modüllerinden önce çalışır. Dolayısıyla bu modülleri kullanmak + isterseniz, mod_rewrite’ı bunlara izin verecek şekilde + yapılandırmalısınız. Ayrıca her devingen sanal konağa eşdeğer bir + ScriptAlias yapmak için de biraz büyü yapmak gerekir.

    + + +# Sunucu ismini Host: başlığınıdan alalım.
    +UseCanonicalName Off
    +
    +# Günlük dosyasından bilgileri ayıklayabilelim.
    +LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
    +CustomLog logs/access_log vcommon
    +
    +<Directory /siteler/hosts>
    + + # ScriptAlias için yaptıklarımızla CGI betiklerini
    + # çalışmaya zorlayamayacağımızdan ExecCGI burada gerekli.
    + Options FollowSymLinks ExecCGI
    +
    +</Directory>
    +
    +# İşin zor yanına geldik.
    +
    +RewriteEngine On
    +
    +# Host: başlığından elde edilen sunucu isminde harf
    +# büyüklükleri çeşitli olabilir. Hepsini küçük harf yapalım.
    +RewriteMap lowercase int:tolower
    +
    +## önce normal belgelerle anlaşalım:
    +# Alias /icons/ çalışsın - diğer rumuzlar için yineleyelim
    +RewriteCond %{REQUEST_URI} !^/icons/
    +# CGI’ler de çalışsın.
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +# Biraz da büyü yapalım.
    +RewriteRule ^/(.*)$ /siteler/${lowercase:%{SERVER_NAME}}/belgeler/$1
    +
    +## Artık CGI’lerle anlaşabiliriz. - Bir MIME türü isteyelim.
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteRule ^/(.*)$ /siteler/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi]
    +
    +# Bu kadar! +
    + +
    + +
    <code>mod_rewrite</code> ile Kişisel Sayfalar Sistemi + +

    Burada da ikinci örnekte yaptıklarımızı + yapıyoruz.

    + + +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +# CGI’ler çalışsın.
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +
    +# konak ismi doğru mu bakalım yoksa RewriteRule çalışmaz.
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.dom$
    +
    +# URI’nin başına sanal konak ismini ekleyelim.
    +# [C], bunu bitirdikten sonra, sonraki rewrite ile devam et demek.
    +RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
    +
    +# Artık asıl dosya ismini oluşturabiliriz.
    +RewriteRule ^www\.([a-z-]+)\.isp\.dom/(.*) /home/$1/$2
    +
    +# Ortak CGI dizinini tanımlayalım.
    +ScriptAlias /cgi-bin/ /siteler/std-cgi/ +
    + +
    + +
    Sanal konaklar için ayrı bir yapılandırma dosyası kullanmak + +

    Burada, sanal konak isimlerinden belge kök dizini elde ederken + mod_rewrite modülünün daha gelişkin özelliklerinden + yararlanarak isimleri ayrı bir dosyadan okutacağız. Bu, esnekliği + artırır ama daha karmaşık bir yapılandırma gerekir.

    + +

    Aşağıdaki içeriğe sahip bir vhost.mapdosyamız olsun:

    + + +musteri-1.dom /siteler/kurumsal/1
    +musteri-2.dom /siteler/kurumsal/2
    +# ...
    +musteri-N.dom /siteler/kurumsal/N
    +
    + +

    httpd.conf dosyamız da şunları içerecektir:

    + + +RewriteEngine on
    +
    +RewriteMap lowercase int:tolower
    +
    +# Eşlem dosyasını tanımlayalım
    +RewriteMap vhost txt:/siteler/conf/vhost.map
    +
    +# Rumuzları yukarıdaki gibi halledelim.
    +RewriteCond %{REQUEST_URI} !^/icons/
    +RewriteCond %{REQUEST_URI} !^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +# Eşlemeyi dosyalar için de yapalım.
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/belgeler/$1
    +
    +RewriteCond %{REQUEST_URI} ^/cgi-bin/
    +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    +RewriteCond ${vhost:%1} ^(/.*)$
    +RewriteRule ^/(.*)$ %1/cgi-bin/$1 +
    + +
    +
    diff --git a/docs/manual/vhosts/name-based.html b/docs/manual/vhosts/name-based.html index ceb5e6662ec..47fc5d875a6 100644 --- a/docs/manual/vhosts/name-based.html +++ b/docs/manual/vhosts/name-based.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: name-based.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -10,10 +12,14 @@ Content-Language: fr Content-type: text/html; charset=ISO-8859-1 -URI: name-based.html.ja.euc-jp +URI: name-based.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: name-based.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: name-based.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/vhosts/name-based.html.de b/docs/manual/vhosts/name-based.html.de index ca391adf640..efdaca6c09d 100644 --- a/docs/manual/vhosts/name-based.html.de +++ b/docs/manual/vhosts/name-based.html.de @@ -1,63 +1,74 @@ - -Unterstützung namensbasierter virtueller Hosts - Apache HTTP Server +Unterstützung namensbasierter virtueller Hosts - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Unterstützung namensbasierter virtueller Hosts

    +Apache > HTTP-Server > Dokumentation > Version 2.2 > Virtual Hosts

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Unterstützung namensbasierter virtueller Hosts

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.

    Das Dokument beschreibt, wann und wie namensbasierte virtuelle Hosts zu verwenden sind.

    -
    top
    -

    Namensbasierte gegenüber IP-basierten +

    Namensbasierte gegenüber IP-basierten virtuellen Hosts

    IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den korrekten virtuellen Host zur Bedienung einer Anfrage zu ermitteln. Folglich - benötigen Sie eine IP-Adresse für jeden virtuellen Host. Bei der - Verwendung von namensbasierten virtuellen Hosts verläßt sich der + benötigen Sie eine IP-Adresse für jeden virtuellen Host. Bei der + Verwendung von namensbasierten virtuellen Hosts verläßt sich der Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header - angibt. Durch Anwendung dieser Technik können sich mehrere verschiedene + angibt. Durch Anwendung dieser Technik können sich mehrere verschiedene Hosts die gleiche IP-Adresse teilen.

    -

    Die Verwendung von namensbasierten virtuellen Hosts ist gewöhnlich - einfacher. Sie müssen lediglich Ihren DNS-Server darauf einstellen, +

    Die Verwendung von namensbasierten virtuellen Hosts ist gewöhnlich + einfacher. Sie müssen lediglich Ihren DNS-Server darauf einstellen, jeden Hostnamen auf die richtige IP-Adresse abzubilden, und dann den Apache HTTP Server so konfigurieren, dass er die verschiedenen Hostnamen erkennt. - Namensbasierte virtuelle Hosts entschärfen auch den Bedarf an + Namensbasierte virtuelle Hosts entschärfen auch den Bedarf an knappen IP-Adressen. Daher sollten Sie namensbasierte virtuelle Hosts - verwenden, sofern kein besonderer Grund dafür existiert, IP-basierte - virtuelle Hosts zu wählen. Mögliche Gründe für die + verwenden, sofern kein besonderer Grund dafür existiert, IP-basierte + virtuelle Hosts zu wählen. Mögliche Gründe für die Verwendung IP-basierter virtueller Hosts sind:

      @@ -65,17 +76,17 @@ virtuellen Hosts. Damit namensbasierte virtuelle Hosts funktionieren, muss der Client den HTTP-Host-Header senden. Dies ist bei HTTP/1.1 vorgeschrieben und in allen modernen HTTP/1.0-Browsern als Erweiterung - implementiert. Wenn Sie Unterstützung für veraltete Clients - benötigen und dennoch namensbasierte virtuelle Hosts verwenden, - dann finden Sie eine mögliche Lösung dafür am Ende des + implementiert. Wenn Sie Unterstützung für veraltete Clients + benötigen und dennoch namensbasierte virtuelle Hosts verwenden, + dann finden Sie eine mögliche Lösung dafür am Ende des Dokuments. -
    • Namensbasierte virtuelle Hosts können aufgrund der Natur des +
    • Namensbasierte virtuelle Hosts können aufgrund der Natur des SSL-Protokolls nicht mit SSL-gesicherten Servern verwendet werden.
    • Einige Betriebssysteme und Netzwerkanlagen setzen Techniken zum Bandbreiten-Management ein, die nicht zwischen Hosts unterscheiden - können, wenn diese nicht auf verschiedenen IP-Adressen liegen.
    • + können, wenn diese nicht auf verschiedenen IP-Adressen liegen.

    top
    @@ -84,44 +95,44 @@ -

    Um namensbasierte virtuelle Hosts zu verwenden, müssen Sie die - IP-Adresse (und möglicherweise den Port) des Servers benennen, an - der Anfragen für die Hosts entgegengenommen werden. Dies wird mit +

    Um namensbasierte virtuelle Hosts zu verwenden, müssen Sie die + IP-Adresse (und möglicherweise den Port) des Servers benennen, an + der Anfragen für die Hosts entgegengenommen werden. Dies wird mit der Direktive NameVirtualHost eingestellt. Im Normalfall, wenn alle IP-Adressen des Server verwendet - werden sollen, können Sie * als Argument für + werden sollen, können Sie * als Argument für NameVirtualHost verwenden. Wenn Sie - vorhaben, mehrere Ports zu nutzen (etwa wenn SSL läuft), sollten - Sie dem Argument einen Port hinzufügen, wie zum Beispiel + vorhaben, mehrere Ports zu nutzen (etwa wenn SSL läuft), sollten + Sie dem Argument einen Port hinzufügen, wie zum Beispiel *:80. Beachten Sie, dass die Angabe einer IP-Adresse in einer NameVirtualHost-Anweisung den Server nicht - automatisch an dieser Adresse lauschen läßt. Lesen Sie bitte "Bestimmen der vom Apache verwendeten Adressen und - Ports" für weitere Details. Zusätzlich muss jede hier + automatisch an dieser Adresse lauschen läßt. Lesen Sie bitte "Bestimmen der vom Apache verwendeten Adressen und + Ports" für weitere Details. Zusätzlich muss jede hier angegebene IP-Adresse einer Netzwerkkarte des Servers zugeordnet sein.

    -

    Der nächste Schritt ist die Erstellung eines <VirtualHost>-Blocks für jeden einzelnen +

    Der nächste Schritt ist die Erstellung eines <VirtualHost>-Blocks für jeden einzelnen Host, den Sie bedienen wollen. Das Argument der Direktive <VirtualHost> sollte das gleiche sein wie das Argument der NameVirtualHost-Anweisung (d.h. eine IP-Adresse - oder * für alle Adressen). Innerhalb jedes <VirtualHost>-Blocks benötigen + oder * für alle Adressen). Innerhalb jedes <VirtualHost>-Blocks benötigen Sie zumindestens eine ServerName-Anweisung, um zu bestimmen, welcher Host bedient wird, und eine DocumentRoot-Anweisung, um anzugeben, wo im Dateisystem der Inhalt des Hosts abgelegt ist.

    Der Hauptserver verschwindet

    - Wenn Sie virtuelle Hosts zu einem bestehenden Webserver hinzufügen, - müssen Sie auch einen <VirtualHost>-Block für den bestehenden Host - (Anm.d.Ü.: und bisherigen Hauptserver) erstellen. + Wenn Sie virtuelle Hosts zu einem bestehenden Webserver hinzufügen, + müssen Sie auch einen <VirtualHost>-Block für den bestehenden Host + (Anm.d.Ü.: und bisherigen Hauptserver) erstellen. Die ServerName- und DocumentRoot-Anweisungen zu diesem - virtuellen Host sollten die gleichen sein wie die globalen ServerName- und DocumentRoot-Anweisungen. Führen Sie diesen + virtuellen Host sollten die gleichen sein wie die globalen ServerName- und DocumentRoot-Anweisungen. Führen Sie diesen virtuellen Host als erstes in der Konfigurationsdatei auf, so dass er als Standard-Host fungiert.

    Vorausgesetzt, Sie bedienen z.B. die Domain - www.domain.tld und möchten den virtuellen Host - www.otherdomain.tld hinzufügen, welcher auf - die gleiche IP-Adresse zeigt. Dann fügen Sie einfach Folgendes der + www.domain.tld und möchten den virtuellen Host + www.otherdomain.tld hinzufügen, welcher auf + die gleiche IP-Adresse zeigt. Dann fügen Sie einfach Folgendes der httpd.conf hinzu:

    @@ -142,7 +153,7 @@ </VirtualHost>

    -

    Sie können anstelle des * bei den beiden Anweisungen +

    Sie können anstelle des * bei den beiden Anweisungen NameVirtualHost und <VirtualHost> alternativ eine eindeutige IP-Adresse angeben. Das kann man beispielsweise machen, um einige namensbasierte virtuelle Hosts auf einer IP-Adresse zu betreiben und @@ -152,71 +163,71 @@

    Viele Server wollen unter mehr als einem Namen erreichbar sein. Die Direktive ServerAlias, die innerhalb des <VirtualHost>-Abschnittes angegeben wird, - ermöglicht dies. Zum Beispiel zeigt die ServerAlias-Anweisung in dem ersten <VirtualHost>-Block oben an, dass die - aufgeführten Namen alternative Namen sind, die man verwenden kann, um + ermöglicht dies. Zum Beispiel zeigt die ServerAlias-Anweisung in dem ersten <VirtualHost>-Block oben an, dass die + aufgeführten Namen alternative Namen sind, die man verwenden kann, um das gleiche Webangebot zu erreichen:

    ServerAlias domain.tld *.domain.tld

    -

    Anfragen für alle Hosts der Domain domain.tld werden +

    Anfragen für alle Hosts der Domain domain.tld werden von dem virtuellen Host www.domain.tld bedient. Die - Platzhalter * und ? können anstelle - entsprechender Namen verwendet werden. Natürlich können Sie nicht + Platzhalter * und ? können anstelle + entsprechender Namen verwendet werden. Natürlich können Sie nicht einfach Namen erfinden und diese bei ServerName oder ServerAlias - angeben, Sie müssen zunächst Ihren DNS Server entsprechend - konfigurieren, dass er diese Namen auf die mit Ihrem Server verknüpfte + angeben, Sie müssen zunächst Ihren DNS Server entsprechend + konfigurieren, dass er diese Namen auf die mit Ihrem Server verknüpfte IP-Adresse abbildet.

    -

    Und schlußendlich können Sie die Konfiguration der virtuellen +

    Und schlußendlich können Sie die Konfiguration der virtuellen Hosts mittels Angabe weiterer Direktiven innherhalb der <VirtualHost>-Container - feineinstellen. Die meisten Direktiven können in diesen Containern - angegeben werden und verändern dann ausschließlich die - Konfiguration des entsprechenden virtuellen Hosts. Prüfen Sie den Kontext einer Direktive, um - herauszufinden, ob eine bestimmte Direktive zulässig ist. - Im Hauptserver-Kontext (außerhalb der <VirtualHost>-Container) definierte + feineinstellen. Die meisten Direktiven können in diesen Containern + angegeben werden und verändern dann ausschließlich die + Konfiguration des entsprechenden virtuellen Hosts. Prüfen Sie den Kontext einer Direktive, um + herauszufinden, ob eine bestimmte Direktive zulässig ist. + Im Hauptserver-Kontext (außerhalb der <VirtualHost>-Container) definierte Konfigurationsanweisungen werden nur dann angewendet, wenn sie nicht durch - Einstellungen des virtuellen Hosts außer Kraft gesetzt wurden.

    + Einstellungen des virtuellen Hosts außer Kraft gesetzt wurden.

    -

    Wenn nun eine Anfrage eintrifft, prüft der Server zuerst, ob sie eine +

    Wenn nun eine Anfrage eintrifft, prüft der Server zuerst, ob sie eine IP-Adresse verwendet, die der NameVirtualHost-Anweisung entspricht. Ist dies der Fall, dann sieht er sich jeden <VirtualHost>-Abschnitt mit einer passenden - IP-Adresse an und versucht den einen zu finden, dessen ServerName- oder ServerAlias-Anweisung mit dem gewünschten - Hostnamen übereinstimmt. Findet er einen, dann verwendet er die + IP-Adresse an und versucht den einen zu finden, dessen ServerName- oder ServerAlias-Anweisung mit dem gewünschten + Hostnamen übereinstimmt. Findet er einen, dann verwendet er die Konfiguration dieses Servers. Wird kein passender virtueller Host gefunden, dann wird der erste angegeben virtuelle Host verwendet, - dessen IP-Adresse paßt.

    + dessen IP-Adresse paßt.

    -

    Die Folge davon ist, dass der erste aufgeführte virtuelle Host der +

    Die Folge davon ist, dass der erste aufgeführte virtuelle Host der Standard-Virtual-Host ist. Die DocumentRoot-Anweisung des Hauptservers wird niemals verwendet, wenn eine IP-Adresse mit einer NameVirtualHost-Anweisung - übereinstimmt. Wenn Sie eine spezielle Konfiguration für Anfragen - angeben möchten, die keinem bestimmten virtuellen Host entsprechen, - packen Sie diese Konfiguration einfach in einen <VirtualHost>-Container und führen diesen als + übereinstimmt. Wenn Sie eine spezielle Konfiguration für Anfragen + angeben möchten, die keinem bestimmten virtuellen Host entsprechen, + packen Sie diese Konfiguration einfach in einen <VirtualHost>-Container und führen diesen als erstes in der Konfigurationsdatei auf.

    top
    -

    Kompatibilität mit älteren Browsern

    +

    Kompatibilität mit älteren Browsern

    -

    Wie zuvor erwähnt gibt es einige Clients, die nicht die notwendigen +

    Wie zuvor erwähnt gibt es einige Clients, die nicht die notwendigen Daten senden, mit denen namensbasierte virtuelle Hosts korrekt - funktionieren. Diesen Clients werden stets die Seiten des ersten, für - diese IP-Adresse aufgeführten virtuellen Hosts gesendet werden (des - primären namensbasierten virtuellen Hosts).

    + funktionieren. Diesen Clients werden stets die Seiten des ersten, für + diese IP-Adresse aufgeführten virtuellen Hosts gesendet werden (des + primären namensbasierten virtuellen Hosts).

    -

    Was bedeutet älter?

    -

    Beachten Sie bitte, wenn wir von älter sprechen, meinen wir auch - älter. Es ist sehr unwahrscheinlich, dass sie einen dieser Browser +

    Was bedeutet älter?

    +

    Beachten Sie bitte, wenn wir von älter sprechen, meinen wir auch + älter. Es ist sehr unwahrscheinlich, dass sie einen dieser Browser heutzutage in Verwendung finden werden. Alle aktuellen Browser-Versionen - senden den Host-Header, so wie er für namensbasierte - virtuelle Hosts benäötigt wird.

    + senden den Host-Header, so wie er für namensbasierte + virtuelle Hosts benäötigt wird.

    Mit der Direktive ServerPath existiert - eine mögliche Behelfskonstruktion, obgleich sie etwas schwerfällig + eine mögliche Behelfskonstruktion, obgleich sie etwas schwerfällig ist:

    Beispielkonfiguration:

    @@ -233,18 +244,18 @@ </VirtualHost>

    -

    Was bedeutet das? Es bedeutet, dass eine Anfrage für eine mit +

    Was bedeutet das? Es bedeutet, dass eine Anfrage für eine mit "/domain" beginnende URI von dem virtuellen Host - www.domain.tld bedient wird. Dies heißt, dass die Seiten - für alle Clients unter http://www.domain.tld/domain/ + www.domain.tld bedient wird. Dies heißt, dass die Seiten + für alle Clients unter http://www.domain.tld/domain/ abrufbar sind, wenngleich Clients, die den Header Host: - senden, auch über http://www.domain.tld/ auf sie zugreifen - können.

    + senden, auch über http://www.domain.tld/ auf sie zugreifen + können.

    -

    Legen Sie einen Link auf der Seite Ihres primären virtuellen Hosts zu - http://www.domain.tld/domain/, um die Behelfslösung - verfügbar zu machen. Bei den Seiten der virtuellen Hosts müssen - Sie dann sicherstellen, entweder außschließlich relative Links +

    Legen Sie einen Link auf der Seite Ihres primären virtuellen Hosts zu + http://www.domain.tld/domain/, um die Behelfslösung + verfügbar zu machen. Bei den Seiten der virtuellen Hosts müssen + Sie dann sicherstellen, entweder außschließlich relative Links (z.B. "file.html" oder "../icons/image.gif") zu verwenden oder Links, die das einleitende /domain/ enthalten (z.B., @@ -252,17 +263,39 @@ "/domain/misc/file.html").

    Dies erfordert etwas Disziplin, die Befolgung dieser Richtlinien stellt - jedoch größtenteils sicher, dass Ihre Seiten mit allen Browsern + jedoch größtenteils sicher, dass Ihre Seiten mit allen Browsern funktionieren, alten wie neuen.

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/name-based.html.en b/docs/manual/vhosts/name-based.html.en index a4966a990d6..1bd9984dc07 100644 --- a/docs/manual/vhosts/name-based.html.en +++ b/docs/manual/vhosts/name-based.html.en @@ -1,28 +1,36 @@ - -Name-based Virtual Host Support - Apache HTTP Server +Name-based Virtual Host Support - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Name-based Virtual Host Support

    +Apache > HTTP Server > Documentation > Version 2.2 > Virtual Hosts

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    top

    Name-based vs. IP-based Virtual Hosts

    @@ -47,26 +55,12 @@ IP address and then configure the Apache HTTP Server to recognize the different hostnames. Name-based virtual hosting also eases the demand for scarce IP addresses. Therefore you should use - name-based virtual hosting unless there is a specific reason to - choose IP-based virtual hosting. Some reasons why you might consider - using IP-based virtual hosting:

    - -
      -
    • Some ancient clients are not compatible with name-based virtual - hosting. For name-based virtual hosting to work, the client must send - the HTTP Host header. This is required by HTTP/1.1, and is - implemented by all modern HTTP/1.0 browsers as an extension. If you - need to support obsolete clients and still use name-based virtual - hosting, a possible technique is discussed at the end of this - document.
    • - -
    • Name-based virtual hosting cannot be used with SSL secure servers - because of the nature of the SSL protocol.
    • - -
    • Some operating systems and network equipment implement bandwidth - management techniques that cannot differentiate between hosts unless - they are on separate IP addresses.
    • -
    + name-based virtual hosting unless you are using equipment + that explicitly demands IP-based hosting. Historical reasons for + IP-based virtual hosting based on client support are no longer + applicable to a general-purpose web server, unless you are + using a mod_ssl version without SNI support + (standard in Apache releases since 2.2.12).

    top
    @@ -90,8 +84,8 @@

    The next step is to create a <VirtualHost> block for each different host that you would like to serve. The argument to the <VirtualHost> directive - should be the same as the argument to the NameVirtualHost directive (ie, an IP address, - or * for all addresses). Inside each <VirtualHost> block, you will need at minimum a + must match a defined NameVirtualHost directive. (In this usual case, + this will be "*:80"). Inside each <VirtualHost> block, you will need at minimum a ServerName directive to designate which host is served and a DocumentRoot directive to show where in the filesystem the content for that host @@ -152,6 +146,9 @@ first have your DNS server properly configured to map those names to an IP address associated with your server.

    +

    The complete list of names in the VirtualHost directive are treated just like a (non wildcard) + ServerAlias.

    +

    Finally, you can fine-tune the configuration of the virtual hosts by placing other directives inside the <VirtualHost> containers. Most directives can be placed in these containers and will then change the configuration only of @@ -237,10 +234,32 @@

    Available Languages:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/name-based.html.fr b/docs/manual/vhosts/name-based.html.fr index e76f0bd7573..88131411743 100644 --- a/docs/manual/vhosts/name-based.html.fr +++ b/docs/manual/vhosts/name-based.html.fr @@ -1,140 +1,136 @@ - -Support Apache des serveurs virtuels par nom - Serveur Apache HTTP +Support Apache des serveurs virtuels par nom - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    Support Apache des serveurs virtuels par nom

    +Apache > Serveur HTTP > Documentation > Version 2.2 > Serveurs virtuels

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Support Apache des serveurs virtuels par nom

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    -

    Ce document décrit quand et comment utiliser des serveurs +

    Ce document décrit quand et comment utiliser des serveurs virtuels par nom.

    +
  • Compatibilité avec les navigateurs anciens
  • +

    Voir aussi

    top

    Serveurs virtuels par nom vs. par IP

    -

    Les hébergements virtuels par IP utilisent l'adresse IP - de la connexion afin de déterminer quel serveur virtuel doit - répondre. Par conséquent, vous devez disposer d'adresses IP - différentes pour chaque nom de domaine complet (FQDN) que vous hébergez. - Avec un hébergement - virtuel par nom, le serveur s'appuit sur les informations - transmises par le client dans les en-têtes HTTP de ses requêtes. - La technique présentée ici vous permet de disposer de serveurs - virtuels différents partagés sur une même adresse IP.

    - -

    L'hébergement virtuel par nom est habituellement plus simple, - car il vous suffit de configurer votre serveur DNS pour que - chaque domaine pointe sur l'adresse IP dont vous disposez, et de - configurer votre serveur Apache HTTP afin qu'il reconnaisse - ces domaines. Il réduit aussi la pénurie en adresses IP. Par - conséquent, vous devriez utiliser l'hébergement virtuel par - nom à moins d'avoir une raison spécifique de préférer - l'hébergement virtuel par IP. Certaines de ces raisons vous - sont exposées ci-après :

    - -
      -
    • Certains anciens navigateurs ne sont pas compatibles - avec les serveurs virtuels par nom, car pour fonctionner, - un client doit transmettre un champ d'en-tête HTTP Host. - Cet en-tête est exigé pour HTTP/1.1, et peut être implémenté - sur des navigateurs modernes HTTP/1.0 grâce à une extension. - Si vous devez maintenir des clients obsolètes tout en - utilisant l'hébergement virtuel par nom, il existe une - technique qui est traitée à la fin de ce document.
    • +

      Les hébergements virtuels par IP utilisent l'adresse IP + de la connexion afin de déterminer quel serveur virtuel doit + répondre. Par conséquent, vous devez disposer d'adresses IP + différentes pour chaque serveur. + Avec un hébergement + virtuel par nom, le serveur s'appuit sur les informations + transmises par le client dans les en-têtes HTTP de ses requêtes. + La technique présentée ici vous permet de disposer de serveurs + virtuels différents partagés sur une même adresse IP.

      -
    • L'hébergement virtuel par nom ne peut pas être utilisé - avec des serveurs sécurisés SSL à cause de la nature même - du protocole SSL.
    • - -
    • Certains systèmes d'exploitation et équipements réseaux - emploient des techniques de gestion de la bande passante - qui ne peuvent pas différencier des domaines autrement que - par des adresses IP séparées.
    • -
    +

    L'hébergement virtuel par nom est habituellement plus simple, + car il vous suffit de configurer votre serveur DNS pour que + chaque domaine pointe sur l'adresse IP dont vous disposez, et de + configurer votre serveur Apache HTTP afin qu'il reconnaisse + ces domaines. Il réduit aussi la pénurie en adresses IP. Par + conséquent, vous devriez utiliser l'hébergement virtuel par + nom, sauf dans le cas où vous utiliseriez des équipements qui + nécessitent un hébergement basé sur IP. Les raisons historiques de + l'hébergement basé sur IP dans un but de support de certains clients ne + s'appliquent plus à un serveur web d'usage général, sauf si vous + utilisez une version de mod_ssl sans support SNI + (situation standard depuis la version 2.2.12 d'Apache).

    top

    Utilisation de serveurs virtuels par nom

    - + -

    Pour utiliser des serveurs virtuels par nom, vous devez - désigner l'adresse IP (et si possible le port) sur le serveur - devant accepter les requêtes pour des domaines. Cette - configuration utilise la directive - NameVirtualHost. Dans un - cas normal où n'importe quelle adresse IP peut être utilisée, - vous pouvez ajouter * comme argument de la directive - NameVirtualHost. Si vous - prévoyez d'utiliser de multiples ports (comme l'emploi de SSL), - vous devriez ajouter le port à cet argument tel que - *:80. Notez que la simple mention d'une adresse - IP dans une directive - NameVirtualHost ne suffit - pas à faire écouter le serveur sur cette IP. Consultez - la page sur les liaisons pour plus - de détails. Par ailleurs, chaque adresse IP spécifiée ici doit - être associée avec une interface réseau sur le serveur.

    +

    Pour utiliser des serveurs virtuels par nom, vous devez + désigner l'adresse IP (et si possible le port) sur le serveur + devant accepter les requêtes pour des domaines. Cette + configuration utilise la directive + NameVirtualHost. Dans un + cas normal où n'importe quelle adresse IP peut être utilisée, + vous pouvez ajouter * comme argument de la directive + NameVirtualHost. Si vous + prévoyez d'utiliser de multiples ports (comme l'emploi de SSL), + vous devriez ajouter le port à cet argument tel que + *:80. Notez que la simple mention d'une adresse + IP dans une directive + NameVirtualHost ne suffit + pas à faire écouter le serveur sur cette IP. Consultez + Définition des adresses et ports qu'utilise + Apache pour plus + de détails. Par ailleurs, chaque adresse IP spécifiée ici doit + être associée avec une interface réseau sur le serveur.

    -

    L'étape suivante est la création d'une section - <VirtualHost> - pour chacun des serveurs à créer. L'argument de la directive - <VirtualHost> - doit être le même que celui de la directive - NameVirtualHost - (c'est-à-dire l'adresse IP ou * pour toutes les - adresses). Dans chaque section - <VirtualHost>, - vous devez définir au minimum une directive - ServerName pour désigner - le serveur concerné et une directive - DocumentRoot pour préciser - l'emplacement sur le système de fichiers du contenu de ce serveur.

    +

    L'étape suivante est la création d'une section + <VirtualHost> + pour chacun des serveurs à créer. L'argument de la directive + <VirtualHost> + doit être le même que celui de la directive + NameVirtualHost + (dans le cas présent "*:80"). Dans chaque section + <VirtualHost>, + vous devez définir au minimum une directive + ServerName pour désigner + le serveur concerné et une directive + DocumentRoot pour préciser + l'emplacement sur le système de fichiers du contenu de ce serveur.

    -

    Le serveur principal disparaît

    -

    Si vous ajoutez des serveurs virtuels à un serveur Web - existant, vous devez également créer une section - <VirtualHost> - redéfinissant ce serveur existant. Les directives - ServerName et - DocumentRoot incluses - dans ce serveur virtuel doivent être les mêmes que pour - les directives globales - ServerName et - DocumentRoot. Positionnez - ce serveur virtuel en premier dans le fichier de configuration - pour en faire le serveur par défaut.

    +

    Le serveur principal disparaît

    +

    Si vous ajoutez des serveurs virtuels à un serveur Web + existant, vous devez également créer une section + <VirtualHost> + redéfinissant ce serveur existant. Les directives + ServerName et + DocumentRoot incluses + dans ce serveur virtuel doivent être les mêmes que pour + les directives globales + ServerName et + DocumentRoot. Positionnez + ce serveur virtuel en premier dans le fichier de configuration + pour en faire le serveur par défaut.

    -

    Par exemple, supposez que vous hébergez le domaine - www.domain.tld et que vous souhaitez ajouter le - serveur virtuel www.otherdomain.tld qui pointe sur - la même adresse IP. Il vous suffit d'ajouter la configuration - suivante à httpd.conf :

    +

    Par exemple, supposez que vous hébergez le domaine + www.domain.tld et que vous souhaitez ajouter le + serveur virtuel www.otherdomain.tld qui pointe sur + la même adresse IP. Il vous suffit d'ajouter la configuration + suivante à httpd.conf :

    NameVirtualHost *:80
    @@ -154,99 +150,103 @@ </VirtualHost>

    -

    Autrement, vous pouvez spécifiez une adresse IP explicite - à la place de * dans les deux directives - NameVirtualHost et - <VirtualHost>. - Par exemple, cette méthode est utile si vous souhaitez faire - tourner quelques serveurs virtuels par nom sur une même adresse - IP, et d'autres, soit par IP, soit basés sur un autre jeu de +

    Autrement, vous pouvez spécifiez une adresse IP explicite + à la place de * dans les deux directives + NameVirtualHost et + <VirtualHost>. + Par exemple, cette méthode est utile si vous souhaitez faire + tourner quelques serveurs virtuels par nom sur une même adresse + IP, et d'autres, soit par IP, soit basés sur un autre jeu de serveurs virtuels par nom sur une autre adresse IP.

    -

    Plusieurs serveurs sont accessibles par plus d'un nom. Il - suffit de placer la directive - ServerAlias dans une section - <VirtualHost>. - Par exemple, dans la première section - <VirtualHost> - ci-dessus, la directive ServerAlias - indique aux utilisateurs les autres noms permis pour accéder au - même site Web :

    +

    Plusieurs serveurs sont accessibles par plus d'un nom. Il + suffit de placer la directive + ServerAlias dans une section + <VirtualHost>. + Par exemple, dans la première section + <VirtualHost> + ci-dessus, la directive ServerAlias + indique aux utilisateurs les autres noms permis pour accéder au + même site Web :

    ServerAlias domain.tld *.domain.tld

    -

    ainsi, toutes les requêtes portant sur un domaine - domain.tld seront servies par le serveur virtuel - www.domain.tld. Les caractères joker * - et ? peuvent être utilisés pour les correspondances. - Bien entendu, vous ne pouvez pas inventer des noms et les placer - dans une directive ServerName - ou ServerAlias. Tout d'abord, votre serveur DNS - doit être correctement configuré pour lier ces noms à une - adresse IP associée avec votre serveur.

    +

    ainsi, toutes les requêtes portant sur un domaine + domain.tld seront servies par le serveur virtuel + www.domain.tld. Les caractères joker * + et ? peuvent être utilisés pour les correspondances. + Bien entendu, vous ne pouvez pas inventer des noms et les placer + dans une directive ServerName + ou ServerAlias. Tout d'abord, votre serveur DNS + doit être correctement configuré pour lier ces noms à une + adresse IP associée avec votre serveur.

    + +

    La liste complète des noms dans la section VirtualHost sont traités comme une + directive ServerAlias sans + caractères génériques.

    -

    Finalement, vous pouvez affiner la configuration des serveurs - virtuels en plaçant d'autres directives à l'intérieur des sections - <VirtualHost>. - La plupart des directives peut être placée dans ces sections en - y changeant seulement la configuration du serveur virtuel associé. - Pour déterminer si une directive particulière est permise, - consultez la page de - contexte. Le jeu de directives configurées dans le contexte - du serveur principal (en dehors de toutes sections - <VirtualHost>) - sera utilisé seulement s'il n'y a pas de configuration contraire +

    Finalement, vous pouvez affiner la configuration des serveurs + virtuels en plaçant d'autres directives à l'intérieur des sections + <VirtualHost>. + La plupart des directives peut être placée dans ces sections en + y changeant seulement la configuration du serveur virtuel associé. + Pour déterminer si une directive particulière est permise, + consultez le contexte de la + directive. Le jeu de directives configurées dans le contexte + du serveur principal (en dehors de toutes sections + <VirtualHost>) + sera utilisé seulement s'il n'y a pas de configuration contraire par un serveur virtuel.

    -

    Maintenant, lorsqu'une requête arrive, le serveur va d'abord - tester si elle utilise une adresse IP qui correspond à - NameVirtualHost. Si c'est - le cas, il regardera chaque section - <VirtualHost> - avec l'adresse correspondante et essaiera d'en trouver une où - le nom de domaine requis correspond à - ServerName ou - ServerAlias. S'il en trouve une, il utilisera - sa configuration pour le serveur. Si aucun serveur virtuel ne - correspond, alors le premier serveur virtuel listé - dont l'adresse IP correspond sera employé.

    +

    Maintenant, lorsqu'une requête arrive, le serveur va d'abord + tester si elle utilise une adresse IP qui correspond à + NameVirtualHost. Si c'est + le cas, il regardera chaque section + <VirtualHost> + avec l'adresse correspondante et essaiera d'en trouver une où + le nom de domaine requis correspond à + ServerName ou + ServerAlias. S'il en trouve une, il utilisera + sa configuration pour le serveur. Si aucun serveur virtuel ne + correspond, alors le premier serveur virtuel listé + dont l'adresse IP correspond sera employé.

    -

    En conséquence, le premier serveur virtuel listé est le - serveur virtuel default. La directive - DocumentRoot du - serveur principal ne sera - jamais employée lorsqu'une adresse IP - correspond dans une directive - NameVirtualHost. Si vous - ne voulez pas avoir de configuration spéciale pour les requêtes - qui ne sont pas attachées à un serveur virtuel en particulier, - mettez cette configuration dans une section - <VirtualHost> +

    En conséquence, le premier serveur virtuel listé est le + serveur virtuel par défaut. La directive + DocumentRoot du + serveur principal ne sera + jamais employée lorsqu'une adresse IP + correspond à la directive + NameVirtualHost. Si vous + souhaitez avoir une configuration spéciale pour les requêtes + qui ne correspondent pas à un serveur virtuel en particulier, + mettez cette configuration dans une section + <VirtualHost> que vous placerez en premier dans le fichier de configuration.

    top
    -

    Compatibilité avec les navigateurs anciens

    +

    Compatibilité avec les navigateurs anciens

    -

    Comme mentionné plus tôt, certains clients ne transmettent - pas les données nécessaires pour le bon fonctionnement des - serveurs virtuels. Ces clients recevront toujours les pages - du premier serveur virtuel listé pour cette adresse IP (le +

    Comme mentionné plus tôt, certains clients ne transmettent + pas les données nécessaires pour le bon fonctionnement des + serveurs virtuels par nom. Ces clients recevront toujours les pages + du premier serveur virtuel listé pour cette adresse IP (le serveur virtuel par nom primaire).

    De combien plus anciens ?

    -

    Veuillez noter que quand nous disons plus anciens, nous - disons vraiment plus anciens. Vous seriez malchanceux de rencontrer - de tels navigateurs encore utilisés de nos jours. Toutes les - versions actuelles des navigateurs transmettent leur en-tête - Host comme exigé par les serveurs virtuels par nom.

    +

    Veuillez noter que quand nous disons plus anciens, nous + disons vraiment plus anciens. Vous avez peu de chances de rencontrer + de tels navigateurs encore utilisés de nos jours. Toutes les + versions actuelles des navigateurs transmettent leur en-tête + Host comme exigé par les serveurs virtuels par nom.

    -

    Il existe une solution avec la directive - ServerPath, bien que - légèrement complexe :

    +

    Il existe une solution avec la directive + ServerPath, bien que + légèrement complexe :

    Exemple de configuration :

    @@ -262,37 +262,59 @@ </VirtualHost>

    -

    Qu'est-ce que cela signifie ? Il signifie qu'une requête - pour tout URI qui commence par "/domain" sera - servie par le serveur virtuel www.domain.tld. - Ainsi, les pages sont accessibles à - http://www.domain.tld/domain/ pour tous les - clients, bien que ceux qui transmettent un en-tête - Host: peuvent également y accéder à +

    Qu'est-ce que cela signifie ? Il signifie qu'une requête + pour tout URI qui commence par "/domain" sera + servie par le serveur virtuel www.domain.tld. + Ainsi, les pages sont accessibles à + http://www.domain.tld/domain/ pour tous les + clients, bien que ceux qui transmettent un en-tête + Host: peuvent également y accéder à http://www.domain.tld/.

    -

    Pour rendre cette technique fonctionnelle, mettez un lien - dans votre serveur virtuel primaire vers - http://www.domain.tld/domain/. Ensuite, dans les - pages de ce serveur virtuel, assurez vous ne n'utiliser que - des liens relatifs (par exemple, "file.html" - ou "../icons/image.gif") ou des liens contenant - le préfixe /domain/ (par exemple, - "http://www.domain.tld/domain/misc/file.html" +

    Pour rendre cette technique fonctionnelle, mettez un lien + dans votre serveur virtuel primaire vers + http://www.domain.tld/domain/. Ensuite, dans les + pages de ce serveur virtuel, assurez vous de n'utiliser que + des liens relatifs (par exemple, "file.html" + ou "../icons/image.gif") ou des liens contenant + le préfixe /domain/ (par exemple, + "http://www.domain.tld/domain/misc/file.html" ou "/domain/misc/file.html").

    -

    Cela requiert un peu de discipline, mais si vous suivez - cette ligne de conduite, vous serez assuré que vos pages +

    Cela requiert un peu de discipline, mais si vous suivez + cette ligne de conduite, vous serez assuré que vos pages s'afficheront dans tous les navigateurs, nouveaux et anciens.

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/name-based.html.ja.euc-jp b/docs/manual/vhosts/name-based.html.ja.euc-jp deleted file mode 100644 index ce79326e284..00000000000 --- a/docs/manual/vhosts/name-based.html.ja.euc-jp +++ /dev/null @@ -1,271 +0,0 @@ - - - -̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥È - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥È

    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko 

    -
    - -

    ¤³¤Îʸ½ñ¤ǤÏ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò¤ɤó¤ʤȤ­¡¢ - ¤ɤ¦¤ä¤äƻȤ¦¤«¤òÀâÌÀ¤·¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ̾Á°¥١¼¥¹¤È IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÈæ³Ó

    - -

    IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤǤϡ¢±þÅú¤¹¤ë - ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤؤΥ³¥ͥ¯¥·¥ç¥ó¤ò·èÄꤹ¤뤿¤á¤Ë IP - ¥¢¥ɥ쥹¤ò»ÈÍѤ·¤ޤ¹¡£¤Ǥ¹¤«¤顢¤½¤줾¤ì¤Υۥ¹¥Ȥ˸ġ¹¤Ë IP - ¥¢¥ɥ쥹¤¬ɬÍפˤʤê¤ޤ¹¡£¤³¤ì¤ËÂФ·¤Æ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤǤϡ¢ - ¥¯¥饤¥¢¥ó¥Ȥ¬ HTTP ¥إåÀ¤ΰìÉô¤Ȥ·¤ƥۥ¹¥È̾¤ò¹𤲤롢 - ¤Ȥ¤¤¦¤³¤Ȥ˰͸¤·¤ޤ¹¡£¤³¤ε»½ѤÇƱ°ì IP - ¥¢¥ɥ쥹¤ò°ۤʤë¿¿ô¤Υۥ¹¥ȤǶ¦ͭ¤·¤Ƥ¤¤ޤ¹¡£

    - -

    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÏÄ̾ïñ½ã¤ǡ¢¤½¤줾¤ì¤Υۥ¹¥È̾¤È - ¤½¤ì¤ËÂбþ¤¹¤ëÀµ³ΤÊ IP ¥¢¥ɥ쥹¤ò DNS ¤ÇÀßÄꤷ¡¢°ۤʤë - ¥ۥ¹¥È̾¤ò¶èÊ̤¹¤ë¤褦¤Ë Apache HTTP ¥µ¡¼¥ФòÀßÄꤹ¤ë¤À¤±¤Ǥ¹¡£ - ¤µ¤é¤ˡ¢̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÏÉÔ­¤¹¤ë IP - ¥¢¥ɥ쥹¤μûÍפò´ËϤ·¤ޤ¹¡£¤·¤¿¤¬¤äơ¢IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò - ÁªÂ򤹤٤­ÆÃÄê¤ÎÍýͳ¤¬¤ʤ±¤ì¤Ð̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò»Ȥ¦¤٤­¤Ǥ¹¡£ - IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò»ÈÍѤ¹¤뤳¤Ȥò¹Íθ¤¹¤ëÍýͳ¤Ȥ·¤ơ¢

    - -
      -
    • ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤËÂбþ¤·¤Ƥ¤¤ʤ¤¸Ť¤¥¯¥饤¥¢¥ó¥Ȥ¬¤¢¤ë - ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬Ư¤¯¤¿¤á¤ˤϡ¢¥¯¥饤¥¢¥ó¥ȤÏ - HTTP ¥ۥ¹¥ȥإåÀ¤òÁ÷¤äƤ³¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - ¤³¤ì¤Ï HTTP/1.1 ¤λÅÍͤÇÍ׵ᤵ¤ì¤Ƥ¤¤ơ¢¤¹¤٤Ƥθ½ÂåŪ¤Ê - HTTP/1.0 ¥֥饦¥¶¤Ǥâ³Èĥ¤Ȥ·¤ƼÂÁõ¤µ¤ì¤Ƥ¤¤ޤ¹¡£ - ¤ȤƤ⸍¤¥¯¥饤¥¢¥ó¥Ȥ򥵥ݡ¼¥Ȥ·¤Ĥġ¢̾Á°¥١¼¥¹¤Î - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥò¹Ԥ¤¤¿¤¤¾ì¹ç¤ϡ¢¤³¤Îʸ½ñ¤κǸå¤ÎÊý¤Ë - ½񤫤ì¤Ƥ¤¤ë²ò·èºö¤ˤʤ뤫¤⤷¤ì¤ʤ¤Êýˡ¤򸫤Ƥ¯¤À¤µ¤¤¡£
    • - -
    • ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÏ SSL ¥ץí¥ȥ³¥ë¤ÎÆÃħ¤ˤè¤ꡢ - SSL ¥»¥­¥奢¥µ¡¼¥ФˤϻȤ¨¤ޤ»¤ó¡£
    • - -
    • ¥ª¥ڥ졼¥ƥ£¥󥰥·¥¹¥ƥà¤ä¥ͥåȥ¥¯ÁõÃ֤Τʤ«¤ˤϡ¢ - Ê̤Î IP ¥¢¥ɥ쥹¾å¤Ǥʤ¤¾ì¹硢ʣ¿ô¤Υۥ¹¥ȤòḚ̂·¤¤¤Ǥ­¤ʤ¤¤褦¤Ê - ÂӰè´ÉÍý¤ÎÊýˡ¤ò¼ÂÁõ¤·¤Ƥ¤¤ë¤â¤Τ¬¤¢¤ê¤ޤ¹¡£
    • -
    - -
    top
    -
    -

    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤòÍøÍѤ¹¤ë

    - - - -

    ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò»Ȥ¦¤ˤϡ¢¤½¤Υۥ¹¥ȤؤÎ - ¥ꥯ¥¨¥¹¥Ȥò¼õ¤±Éդ±¤륵¡¼¥ФÎ IP ¥¢¥ɥ쥹 (¤⤷¤«¤·¤¿¤é¥ݡ¼¥Ȥâ) - ¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤Ï NameVirtualHost - ¥ǥ£¥쥯¥ƥ£¥֤ÇÀßÄꤷ¤ޤ¹¡£Ä̾NameVirtualHost ¤Ç - * ¤Î°À­¤ò»Ȥäƥµ¡¼¥ФÎÁ´¤ƤÎ IP ¥¢¥ɥ쥹¤ò»Ȥ¤¤ޤ¹¡£ - (Î㤨¤Ð SSL ¤λÈÍѤʤɤÇ) ʣ¿ô¤Υݡ¼¥Ȥò»Ȥ¦¤³¤Ȥò·ײ褷¤Ƥ¤¤ë¤ΤǤ¢¤ì¤С¢ - °ú¿ô¤Ë *:80 ¤Τ褦¤˥ݡ¼¥Ȥâ´ޤá¤ë¤褦¤ˤ·¤Ƥ¯¤À¤µ¤¤¡£ - NameVirtualHost ¥ǥ£¥쥯¥ƥ£¥֤Ç - IP ¥¢¥ɥ쥹¤ò½񤤤Ƥ⡢ - ¼«ưŪ¤˥µ¡¼¥Ф¬¤½¤Î IP ¥¢¥ɥ쥹¤ò¥ê¥å¹¥󤹤ë¤Ȥ¤¤¦¤³¤ȤϤʤ¤¤³¤ȤË - Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£¾ܺ٤ϡÖApache ¤λȤ¦¥¢¥ɥ쥹¤È - ¥ݡ¼¥ȤòÀßÄꤹ¤ë¡פòÆɤó¤Ǥ¯¤À¤µ¤¤¡£¤µ¤é¤ˡ¢¤³¤³¤ǻØÄꤵ¤줿 - IP ¥¢¥ɥ쥹¤ÏÁ´¤ƥµ¡¼¥ФΥͥåȥ¥¯¥¤¥󥿡¼¥ե§¡¼¥¹¤ȴØϢÉդ±¤é¤ì¤Æ - ¤¤¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    ¼¡¤ϡ¢°·¤¦¥ۥ¹¥Ȥ½¤줾¤ì¤ËÂФ·¤Æ <VirtualHost> ¥֥í¥å¯¤ò - ºîÀ®¤·¤Ƥ¯¤À¤µ¤¤¡£<VirtualHost> - ¥ǥ£¥쥯¥ƥ£¥֤ΰú¿ô¤Ï NameVirtualHost - ¥ǥ£¥쥯¥ƥ£¥֤ΰú¿ô¤ÈƱ¤¸¤ˤ·¤Ƥ¯¤À¤µ¤¤ (¤¹¤ʤï¤Á¡¢IP ¥¢¥ɥ쥹¤«¡¢Á´¤ƤΥ¢¥ɥ쥹¤ò°Ọ̃¤¹¤ë - *)¡£¤½¤줾¤ì¤Î <VirtualHost> - ¥ǥ£¥쥯¥ƥ£¥֤ÎÃæ¤ˤϡ¢ºÇÄ㸡¢¤ɤΥۥ¹¥Ȥ¬°·¤ï¤ì¤뤫¤򼨤¹ ServerName ¥ǥ£¥쥯¥ƥ£¥֤ȡ¢ - ¤½¤Υۥ¹¥ÈÍѤΥ³¥ó¥ƥó¥Ĥ¬¥ե¡¥¤¥륷¥¹¥ƥà¾å¤Τɤ³¤ˤ¢¤뤫¤򼨤¹ - DocumentRoot ¥ǥ£¥쥯¥ƥ£¥֤ò - ½ñ¤¯ɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    ¥ᥤ¥ó¥ۥ¹¥ȤϤʤ¯¤ʤê¤ޤ¹

    -

    ´û¤ˤ¢¤륦¥§¥֥µ¡¼¥Ф˥С¼¥Á¥ã¥ë¥ۥ¹¥ȤòÄɲ乤ë¾ì¹硢 - ´û¸¤Υ¦¥§¥֥µ¡¼¥ФËÂФ·¤Ƥâ <VirtualHost> - ¥֥í¥å¯¤òºî¤é¤ʤ±¤ì¤Фʤê¤ޤ»¤󡣤³¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÎ - ServerName ¤È - DocumentRoot - ¤ϡ¢¥°¥í¡¼¥Хë¤Ê ServerName ¤È - DocumentRoot - ¤ÈƱ¤¸¤â¤Τˤ·¤ޤ¹¡£¤ޤ¿¡¢¤³¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤòÀßÄê¥ե¡¥¤¥ë¤ÎÃæ¤Ç - ÀèƬ¤ËÃ֤¤¤ơ¢¥ǥե©¥ë¥ȥۥ¹¥ȤȤ·¤Æưº¤ë¤褦¤ˤ·¤ޤ¹¡£

    -
    - -

    ¤¿¤Ȥ¨¤С¢www.domain.tld ¤òư¤«¤·¤Ƥ¤¤ơ¢ - ¤µ¤é¤˥С¼¥Á¥ã¥ë¥ۥ¹¥È www.otherdomain.tld - ¤òÄɲ乤ë¤Ȥ·¤ޤ·¤礦¡£¤³¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤÏƱ°ì IP ¤ò»ؤ·¤Ƥ¤¤ë¤Ȥ·¤ޤ¹¡£ - ¤½¤Τ褦¤ʾì¹ç¤ϡ¢httpd.conf - ¤˰ʲ¼¤Τ褦¤ʥ³¡¼¥ɤòÄɲ乤ë¤À¤±¤Ǥ¹

    - -

    - NameVirtualHost *:80
    -
    - <VirtualHost *:80>
    - - ServerName www.domain.tld
    - ServerAlias domain.tld *.domain.tld
    - DocumentRoot /www/domain
    -
    - </VirtualHost>
    -
    - <VirtualHost *:80>
    - ServerName www.otherdomain.tld
    - DocumentRoot /www/otherdomain
    -
    - </VirtualHost>
    -

    - -

    NameVirtualHost µڤÓ - VirtualHost ¤ΤɤÁ¤é¤ξì¹ç¤⡢ - * ¤ÎÉôʬ¤ˤÏÌÀ¼¨Ū¤Ë IP ¥¢¥ɥ쥹¤ò»ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - Î㤨¤С¢¤¢¤ë IP ¥¢¥ɥ쥹¤ǤÏ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò»Ȥ¤¤¿¤¤°ìÊý¤ǡ¢ - Ê̤Î IP ¥¢¥ɥ쥹¤Ǥϡ¢¾¤Î IP ¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥä - ÊÌÁȤÎ̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥò»Ȥ¤¤¿¤¤¾ì¹硢 - ¤½¤¦ÀßÄꤹ¤뤳¤Ȥˤʤë¤Ǥ·¤礦¡£

    - -

    ʣ¿ô¤Î̾Á°¤ǥµ¡¼¥Х¢¥¯¥»¥¹¤¬¤Ǥ­¤ë¤褦¤ˤ·¤¿¤¤¤³¤Ȥ⿤¤¤Ǥ·¤礦¡£ - ¤³¤Τ褦¤ʤ³¤Ȥϡ¢ServerAlias ¥ǥ£¥쥯¥ƥ£¥֤ò <VirtualHost> - ¥»¥¯¥·¥ç¥ó¤˵­½Ҥ¹¤뤳¤ȤǼ¸½¤Ǥ­¤ޤ¹¡£ - Î㤨¤о嵭¤Î <VirtualHost> ¤ÎÎã¤Ǥ¢¤ì¤С¢ - ¼¡¤Τ褦¤˰ìÍ÷¤˵󤲤é¤줿̾Á°¤¬¡¢ - ¥桼¥¶¤¬Ʊ°ì¤Υ¦¥§¥֥µ¥¤¥ȤȤ·¤ÆÌܤˤ·¤ƻÈÍѤǤ­¤륵¡¼¥Ð̾¤Ǥ¢¤롢 - ¤È ServerAlias - ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄê¤Ǥ­¤ޤ¹¡£

    - -

    - ServerAlias domain.tld *.domain.tld -

    - -

    domain.tld ¥ɥᥤ¥ó¤ؤÎÁ´¤ƤΥۥ¹¥ȤؤΥꥯ¥¨¥¹¥ȤÏ - www.domain.tld ¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬½èÍý¤·¤ޤ¹¡£ - ̾Á°¤ò¥ޥåÁ¤µ¤»¤뤿¤á¤ˡ¢¥磻¥ë¥ɥ«¡¼¥Éʸ»ú * ¤ä ? - ¤ò»ÈÍѤ¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£¤â¤Á¤í¤ó»פ¤¤Ĥ­¤Î̾Á°¤òºî¤äơ¢ - ServerName ¤ä - ServerAlias - ¤ˤ½¤Î̾Á°¤ò½񤯤Ȥ¤¤ä¿¤³¤ȤϤǤ­¤ޤ»¤󡣤ޤº¤ϡ¢ - ¤³¤ì¤é¤Î̾Á°¤¬ ¥µ¡¼¥ФËÉդ±¤é¤줿 IP ¥¢¥ɥ쥹¤˥ޥåפµ¤ì¤ë¤褦¤Ë - DNS ¥µ¡¼¥ФòŬÀڤËÀßÄꤷ¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£

    - -

    ºǸå¤ˡ¢<VirtualHost> ¥³¥ó¥ƥʤÎÃæ¤Ë - ¾¤Υǥ£¥쥯¥ƥ£¥֤ò½񤯤³¤Ȥǡ¢¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤÎÀßÄê¤òº٤«¤¯ĴÀ° - ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤ۤȤó¤ɤΥǥ£¥쥯¥ƥ£¥֤Ϥ³¤ì¤é¤Υ³¥ó¥ƥʤËÀßÃ֤¹¤뤳¤Ȥ¬¤Ǥ­¤ơ¢ - Êѹ¹ÅÀ¤Ϥ½¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤËÂФ·¤ƤΤßͭ¸ú¤ˤʤê¤ޤ¹¡£ - ¤ɤΥǥ£¥쥯¥ƥ£¥֤ò½񤯤³¤Ȥ¬¤Ǥ­¤뤫¤ϡ¢¥ǥ£¥쥯¥ƥ£¥֤Î ¥³¥ó¥ƥ­¥¹¥È ¤ò - Ĵ¤٤Ƥ¯¤À¤µ¤¤¡£¼祵¡¼¥Х³¥ó¥ƥ­¥¹¥È - (<VirtualHost> - ¥³¥ó¥ƥʤγ°) ¤ÎÀßÄêÍѥǥ£¥쥯¥ƥ£¥֤ϥС¼¥Á¥ã¥ë¥ۥ¹¥ȤǤÎÀßÄê¤Ç - ¾å½񤭤µ¤ì¤ʤ¤¾ì¹ç¤Τ߻ÈÍѤµ¤ì¤ޤ¹¡£

    - -

    ¥ꥯ¥¨¥¹¥Ȥ¬Íè¤ë¤ȡ¢¥µ¡¼¥ФϤޤººǽé¤Ë <NameVirtualHost> - ¤˥ޥåÁ¤¹¤ë IP ¥¢¥ɥ쥹¤«¤ɤ¦¤«¤ò¥Á¥§¥å¯¤·¤ޤ¹¡£¥ޥåÁ¤¹¤ì¤Ð - ¥ޥåÁ¤·¤¿ IP ¥¢¥ɥ쥹¤Î <VirtualHost> - ¤Τ½¤줾¤ì¤Υ»¥¯¥·¥ç¥ó¤ÎÃ椫¤é - ServerName ¤« - ServerAlias - ¤ËÍ׵ᤵ¤줿¥ۥ¹¥È̾¤¬¤¢¤뤫õ¤·¤ޤ¹¡£ - ¸«¤Ĥ«¤ì¤Ф½¤Υµ¡¼¥ÐÍѤÎÀßÄê¤ò»Ȥ¤¤ޤ¹¡£¥ޥåÁ¤¹¤ë¥С¼¥Á¥ã¥ë¥ۥ¹¥È - ¤¬¸«¤Ĥ«¤é¤ʤ±¤ì¤С¢¥ޥåÁ¤·¤¿ IP ¥¢¥ɥ쥹¤Î - ¥ꥹ¥Ȥκǽé¤ˤ¢¤ë¥С¼¥Á¥ã¥ë¥ۥ¹¥È ¤¬»Ȥï¤ì¤ޤ¹¡£

    - -

    ·ë²̤Ȥ·¤ơ¢¥ꥹ¥Ȥκǽé¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬ ¥ǥե©¥ë¥È ¤Î - ¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥˤʤê¤ޤ¹¡£IP ¥¢¥ɥ쥹¤¬ NameVirtualHost - ¥ǥ£¥쥯¥ƥ£¥֤˥ޥåÁ¤·¤¿¾ì¹ç¤ϡ¢¥ᥤ¥ó¤Υµ¡¼¥Ð ¤Î - DocumentRoot - ¤Ï·褷¤ƻȤï¤ì¤ޤ»¤ó - ¤ɤΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥˤâ¥ޥåÁ¤·¤ʤ¤¥ꥯ¥¨¥¹¥ȤËÂФ·¤ơ¢ - ÆÃÊ̤ÊÀßÄê¤򤷤¿¤¤¤ΤǤ¢¤ì¤С¢ÀßÄê¥ե¡¥¤¥ëÃæ¤κǽé¤Î - <VirtualHost> ¥³¥ó¥ƥʤˤ½¤ì¤򵭽Ҥ·¤Ƥ¯¤À¤µ¤¤¡£

    - -
    top
    -
    -

    ¸Ť¤¥֥饦¥¶¤Ȥθߴ¹À­

    - -

    °ÊÁ°½Ҥ٤¿¤褦¤ˡ¢̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬Àµ¤·¤¯ưº¤ë - ¤¿¤á¤ËɬÍפʾðÊó¤òÁ÷¤äƤ³¤ʤ¤¥¯¥饤¥¢¥ó¥Ȥ¬°ÍÁ³¤Ȥ·¤Æ¸ºߤ·¤Ƥ¤¤ޤ¹¡£ - ¤½¤Τ褦¤ʥ¯¥饤¥¢¥ó¥ȤËÂФ·¤Ƥϡ¢³ºÅö¤¹¤ë IP ¥¢¥ɥ쥹¤ˤĤ¤¤ơ¢ - °ìÈֺǽé¤ËÀßÄꤵ¤ì¤Ƥ¤¤ë¥С¼¥Á¥ã¥ë¥ۥ¹¥È - (¥ץ饤¥ޥê¤Î̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥È) - ¤«¤é¥ڡ¼¥¸¤¬Á÷¤êÊ֤µ¤ì¤ޤ¹¡£

    - -

    ¤ɤΤ°¤餤¸Ť¤¤Î ?

    -

    ¡ָŤ¤¡פÈɽ¸½¤·¤Ƥ¤¤ë¾ì¹硢ËÜÅö¤˸Ť¤¤³¤Ȥò°Ọ̃¤·¤ƻȤäƤ¤¤ޤ¹¡£ - ÉԹ¬¤ˤ·¤ƺ£¸½ºߤǤ⤳¤Τ褦¤ʸŤ¤¥֥饦¥¶¤ËÁø¶ø¤¹¤뤳¤Ȥ¬¤¢¤ê¤ޤ¹¡£ - ¸½ºߤΥ֥饦¥¶¤ÏÁ´¤ơ¢̾Á°¥١¼¥¹¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤËɬÍפÊ - Host ¥إåÀ¤òÁ÷¤ê¤ޤ¹¡£

    -
    - -

    ServerPath - ¥ǥ£¥쥯¥ƥ£¥֤ÇÂн褬²Äǽ¤Ǥ¹¡£¤Á¤ç¤äÈÉԳʹ¥¤Ǥ¹¤±¤ì¤ɤ⡣

    - -

    ÀßÄêÎã

    - -

    - NameVirtualHost 111.22.33.44
    -
    - <VirtualHost 111.22.33.44>
    - - ServerName www.domain.tld
    - ServerPath /domain
    - DocumentRoot /web/domain
    -
    - </VirtualHost>
    -

    - -

    ¤³¤ÎÎã¤ˤϤɤ¦¤¤¤¦°Ọ̃¤¬¤¢¤ë¤Ǥ·¤礦¤«? ¤³¤ì¤Ï - "/domain" ¤ǻϤޤë URI ¤ؤΥꥯ¥¨¥¹¥ȤϤ¹¤٤ơ¢ - ¥С¼¥Á¥ã¥ë¥ۥ¹¥È www.domain.tld ¤ǽèÍý¤µ¤ì¤롢 - ¤Ȥ¤¤¦°Ọ̃¤Ǥ¹¡£¤Ĥޤꡢ¤¹¤٤ƤΥ¯¥饤¥¢¥ó¥ȤÇ - http://www.domain.tld/domain/ ¤ǥ¢¥¯¥»¥¹¤Ǥ­¤ë¥ڡ¼¥¸¤¬¡¢ - Host: ¥إåÀ¤òÁ÷¤äƤ¯¤륯¥饤¥¢¥ó¥ȤǤ¢¤ì¤Ð - http://www.domain.tld/ ¤Ȥ·¤Ƥ⥢¥¯¥»¥¹¤Ǥ­¤롢 - ¤Ȥ¤¤¦°Ọ̃¤Ǥ¹¡£

    - -

    ¤³¤줬ưº¤ë¤褦¤ˤ¹¤ë¤ˤϡ¢ - ¥ץ饤¥ޥê¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥ȤΥڡ¼¥¸¤Ë - http://www.domain.tld/domain/ ¤ؤΥê¥󥯤òÀßÃ֤·¤ޤ¹¡£ - ¤½¤·¤ơ¢¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤΥڡ¼¥¸¤Ǥϡ¢½ã¿è¤ÊÁêÂХê¥ó¥¯ (Îã: - "file.html" ¤ä "../icons/image.gif")¡¢ - ¤¢¤뤤¤Ï /domain/ ¤ǻϤޤë¥ê¥ó¥¯ (Îã: - "http://www.domain.tld/domain/misc/file.html" ¤ä - "/domain/misc/file.html") ¤À¤±¤òÀßÃ֤·¤ޤ¹¡£

    - -

    ¤³¤ì¤ˤϡ¢´öʬ¤«¤ε¬Χ¤¬ɬÍפȤʤê¤ޤ¹¤¬¡¢ - ¤³¤Τ褦¤ʥ¬¥¤¥ɥ饤¥ó¤òÃ鼤˼é¤뤳¤Ȥˤè¤ꡢ¤¿¤¤¤Ƥ¤¤ξì¹硢 - ¤¹¤٤ƤΥ֥饦¥¶¤Ç ¡½ ¿·¤·¤¤¥֥饦¥¶¤Ǥ⸍¤¤â¤ΤǤâ ¡½ - ºîÀ®¤·¤¿¥ڡ¼¥¸¤¬¸«¤¨¤ë¤Ȥ¤¤¦¤³¤ȤòÊݾڤ·¤ޤ¹¡£

    - -
    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/vhosts/name-based.html.ja.utf8 b/docs/manual/vhosts/name-based.html.ja.utf8 new file mode 100644 index 00000000000..6e5c3e46715 --- /dev/null +++ b/docs/manual/vhosts/name-based.html.ja.utf8 @@ -0,0 +1,305 @@ + + + + + +名前ベースのバーチャルホスト - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    名前ベースのバーチャルホスト

    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    この文書では名前ベースのバーチャルホストをどんなとき、 + どうやって使うかを説明します。

    +
    + +
    top
    +
    +

    名前ベースと IP ベースのバーチャルホストの比較

    + +

    IP ベースのバーチャルホストでは、応答する + バーチャルホストへのコネクションを決定するために IP + アドレスを使用します。ですから、それぞれのホストに個々に IP + アドレスが必要になります。これに対して名前ベースのバーチャルホストでは、 + クライアントが HTTP ヘッダの一部としてホスト名を告げる、 + ということに依存します。この技術で同一 IP + アドレスを異なる多数のホストで共有しています。

    + +

    名前ベースのバーチャルホストは通常単純で、それぞれのホスト名と + それに対応する正確な IP アドレスを DNS で設定し、異なる + ホスト名を区別するように Apache HTTP サーバを設定するだけです。 + さらに、名前ベースのバーチャルホストは不足する IP + アドレスの需要を緩和します。したがって、IP ベースのバーチャルホストを + 選択すべき特定の理由がなければ名前ベースのバーチャルホストを使うべきです。 + IP ベースのバーチャルホストを使用することを考慮する理由として、

    + +
      +
    • 名前ベースのバーチャルホストに対応していない古いクライアントがある + 名前ベースのバーチャルホストが働くためには、クライアントは + HTTP ホストヘッダを送ってこなければなりません。 + これは HTTP/1.1 の仕様で要求されていて、すべての現代的な + HTTP/1.0 ブラウザでも拡張として実装されています。 + とても古いクライアントをサポートしつつ、名前ベースの + バーチャルホストを行いたい場合は、この文書の最後の方に + 書かれている解決策になるかもしれない方法を見てください。
    • + +
    • 名前ベースのバーチャルホストは SSL プロトコルの特徴により、 + SSL セキュアサーバには使えません。
    • + +
    • オペレーティングシステムやネットワーク装置のなかには、 + 別の IP アドレス上でない場合、複数のホストを別扱いできないような + 帯域管理の方法を実装しているものがあります。
    • +
    + +
    top
    +
    +

    名前ベースのバーチャルホストを利用する

    + + + +

    名前ベースのバーチャルホストを使うには、そのホストへの + リクエストを受け付けるサーバの IP アドレス (もしかしたらポートも) + を指定する必要があります。 + これは NameVirtualHost + ディレクティブで設定します。通常、NameVirtualHost で + * の属性を使ってサーバの全ての IP アドレスを使います。 + (例えば SSL の使用などで) 複数のポートを使うことを計画しているのであれば、 + 引数に *:80 のようにポートも含めるようにしてください。 + NameVirtualHost ディレクティブで + IP アドレスを書いても、 + 自動的にサーバがその IP アドレスをリッスンするということはないことに + 注意してください。詳細は「Apache の使うアドレスと + ポートを設定する」を読んでください。さらに、ここで指定された + IP アドレスは全てサーバのネットワークインターフェースと関連付けられて + いなければなりません。

    + +

    次は、扱うホストそれぞれに対して <VirtualHost> ブロックを + 作成してください。<VirtualHost> + ディレクティブの引数は NameVirtualHost + ディレクティブの引数と同じにしてください (すなわち、IP アドレスか、全てのアドレスを意味する + *)。それぞれの <VirtualHost> + ディレクティブの中には、最低限、どのホストが扱われるかを示す ServerName ディレクティブと、 + そのホスト用のコンテンツがファイルシステム上のどこにあるかを示す + DocumentRoot ディレクティブを + 書く必要があります。

    + +

    メインホストはなくなります

    +

    既にあるウェブサーバにバーチャルホストを追加する場合、 + 既存のウェブサーバに対しても <VirtualHost> + ブロックを作らなければなりません。このバーチャルホストの + ServerName と + DocumentRoot + は、グローバルな ServerName と + DocumentRoot + と同じものにします。また、このバーチャルホストを設定ファイルの中で + 先頭に置いて、デフォルトホストとして動作するようにします。

    +
    + +

    たとえば、www.domain.tld を動かしていて、 + さらにバーチャルホスト www.otherdomain.tld + を追加するとしましょう。このバーチャルホストは同一 IP を指しているとします。 + そのような場合は、httpd.conf + に以下のようなコードを追加するだけです

    + +

    + NameVirtualHost *:80
    +
    + <VirtualHost *:80>
    + + ServerName www.domain.tld
    + ServerAlias domain.tld *.domain.tld
    + DocumentRoot /www/domain
    +
    + </VirtualHost>
    +
    + <VirtualHost *:80>
    + ServerName www.otherdomain.tld
    + DocumentRoot /www/otherdomain
    +
    + </VirtualHost>
    +

    + +

    NameVirtualHost 及び + VirtualHost のどちらの場合も、 + * の部分には明示的に IP アドレスを指定することができます。 + 例えば、ある IP アドレスでは名前ベースのバーチャルホストを使いたい一方で、 + 別の IP アドレスでは、他の IP ベースのバーチャルホストや + 別組の名前ベースのバーチャルホストを使いたい場合、 + そう設定することになるでしょう。

    + +

    複数の名前でサーバアクセスができるようにしたいことも多いでしょう。 + このようなことは、ServerAlias ディレクティブを <VirtualHost> + セクションに記述することで実現できます。 + 例えば上記の <VirtualHost> の例であれば、 + 次のように一覧に挙げられた名前が、 + ユーザが同一のウェブサイトとして目にして使用できるサーバ名である、 + と ServerAlias + ディレクティブで指定できます。

    + +

    + ServerAlias domain.tld *.domain.tld +

    + +

    domain.tld ドメインへの全てのホストへのリクエストは + www.domain.tld のバーチャルホストが処理します。 + 名前をマッチさせるために、ワイルドカード文字 * や ? + を使用することもできます。もちろん思いつきの名前を作って、 + ServerName や + ServerAlias + にその名前を書くといったことはできません。まずは、 + これらの名前が サーバに付けられた IP アドレスにマップされるように + DNS サーバを適切に設定しなければなりません。

    + +

    最後に、<VirtualHost> コンテナの中に + 他のディレクティブを書くことで、バーチャルホストの設定を細かく調整 + することができます。 + ほとんどのディレクティブはこれらのコンテナに設置することができて、 + 変更点はそのバーチャルホストに対してのみ有効になります。 + どのディレクティブを書くことができるかは、ディレクティブの コンテキスト を + 調べてください。主サーバコンテキスト + (<VirtualHost> + コンテナの外) の設定用ディレクティブはバーチャルホストでの設定で + 上書きされない場合のみ使用されます。

    + +

    リクエストが来ると、サーバはまず最初に <NameVirtualHost> + にマッチする IP アドレスかどうかをチェックします。マッチすれば + マッチした IP アドレスの <VirtualHost> + のそれぞれのセクションの中から + ServerName か + ServerAlias + に要求されたホスト名があるか探します。 + 見つかればそのサーバ用の設定を使います。マッチするバーチャルホスト + が見つからなければ、マッチした IP アドレスの + リストの最初にあるバーチャルホスト が使われます。

    + +

    結果として、リストの最初のバーチャルホストが デフォルト の + バーチャルホストになります。IP アドレスが NameVirtualHost + ディレクティブにマッチした場合は、メインのサーバ の + DocumentRoot + は決して使われません + どのバーチャルホストにもマッチしないリクエストに対して、 + 特別な設定をしたいのであれば、設定ファイル中の最初の + <VirtualHost> コンテナにそれを記述してください。

    + +
    top
    +
    +

    古いブラウザとの互換性

    + +

    以前述べたように、名前ベースのバーチャルホストが正しく動作する + ために必要な情報を送ってこないクライアントが依然として存在しています。 + そのようなクライアントに対しては、該当する IP アドレスについて、 + 一番最初に設定されているバーチャルホスト + (プライマリの名前ベースのバーチャルホスト) + からページが送り返されます。

    + +

    どのぐらい古いの ?

    +

    「古い」と表現している場合、本当に古いことを意味して使っています。 + 不幸にして今現在でもこのような古いブラウザに遭遇することがあります。 + 現在のブラウザは全て、名前ベースのバーチャルホストに必要な + Host ヘッダを送ります。

    +
    + +

    ServerPath + ディレクティブで対処が可能です。ちょっと不格好ですけれども。

    + +

    設定例

    + +

    + NameVirtualHost 111.22.33.44
    +
    + <VirtualHost 111.22.33.44>
    + + ServerName www.domain.tld
    + ServerPath /domain
    + DocumentRoot /web/domain
    +
    + </VirtualHost>
    +

    + +

    この例にはどういう意味があるでしょうか? これは + "/domain" で始まる URI へのリクエストはすべて、 + バーチャルホスト www.domain.tld で処理される、 + という意味です。つまり、すべてのクライアントで + http://www.domain.tld/domain/ でアクセスできるページが、 + Host: ヘッダを送ってくるクライアントであれば + http://www.domain.tld/ としてもアクセスできる、 + という意味です。

    + +

    これが動作するようにするには、 + プライマリのバーチャルホストのページに + http://www.domain.tld/domain/ へのリンクを設置します。 + そして、バーチャルホストのページでは、純粋な相対リンク (例: + "file.html" や "../icons/image.gif")、 + あるいは /domain/ で始まるリンク (例: + "http://www.domain.tld/domain/misc/file.html" や + "/domain/misc/file.html") だけを設置します。

    + +

    これには、幾分かの規律が必要となりますが、 + このようなガイドラインを忠実に守ることにより、たいていの場合、 + すべてのブラウザで ― 新しいブラウザでも古いものでも ― + 作成したページが見えるということを保証します。

    + +
    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/name-based.html.ko.euc-kr b/docs/manual/vhosts/name-based.html.ko.euc-kr index 871f1cffe93..249e0fa1d76 100644 --- a/docs/manual/vhosts/name-based.html.ko.euc-kr +++ b/docs/manual/vhosts/name-based.html.ko.euc-kr @@ -1,29 +1,39 @@ - -À̸§±â¹Ý °¡»óȣ½ºƮ Áö¿ø - Apache HTTP Server +À̸§±â¹Ý °¡»óȣ½ºƮ Áö¿ø - Apache HTTP Server Version 2.2 - - + + + +
    <-

    À̸§±â¹Ý °¡»óȣ½ºƮ Áö¿ø

    +Apache > HTTP Server > Documentation > Version 2.2 > °¡»óȣ½ºƮ

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    top
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/vhosts/name-based.html.tr.utf8 b/docs/manual/vhosts/name-based.html.tr.utf8 new file mode 100644 index 00000000000..623dc67724a --- /dev/null +++ b/docs/manual/vhosts/name-based.html.tr.utf8 @@ -0,0 +1,272 @@ + + + + + +İsme Dayalı Sanal Konaklar - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    İsme Dayalı Sanal Konaklar

    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    + +

    Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları + açıklanmıştır.

    +
    + +
    top
    +
    +

    İsme dayalı ve IP’ye dayalı Sanal Konaklar

    + +

    IP’ye dayalı sanal konaklarda sunulacak sanal konağı doğru tespit + edebilmek için bağlantının yapıldığı IP adresine bakılır. Bu bakımdan her + konak için ayrı bir IP adresine gereksinim vardır. İsme dayalı sanal + konaklarda ise sunucu, istemcinin HTTP başlığının bir parçası olarak + gönderdiği konak adını kullanır. Bu teknikte aynı IP adresini çok sayıda + farklı konak kullanabilir.

    + +

    İsme dayalı sanal barındırma nispeten daha kolaydır, çünkü her konak + ismini doğru IP adresiyle eşlemek için DNS sunucunuzu yapılandırdıktan + sonra Apache HTTP sunucusunu farklı konak isimlerini tanıyacak şekilde + yapılandırmanız yeterli olur. İsme dayalı sanal barındırma ayrıca zaten + kıt olan IP adreslerine talebi de azaltır. Bu nedenle, açıkça IP’ye dayalı + sanal konakları talep eden donanım kullanmadıkça isme dayalı sanal konaklar + kullanmalısınız. SNI desteksiz bir mod_ssl sürümü + (Apache'nin 2.2.12 sürümüne kadar standart) kullanmıyorsanız, istemci + desteğine bağlı IP’ye dayalı sanal konaklar için geçerli tarihsel sebepler, + genel amaçlı bir HTTP sunucusu için artık uygulanabilir değildir.

    + +
    top
    +
    +

    İsme Dayalı Sanal Konakların Kullanımı

    + + + +

    İsme dayalı sanal konakları kullanmak için, bu konaklar için istekleri + kabul edecek sunucuya IP adresini (ve muhtemelen portu da) + belirtmelisiniz. Bu işlem NameVirtualHost yönergesiyle yapılır. Normal + şartlar altında sunucu üzerinde bütün IP adreslerinin kullanılması + gerekir; bunun için NameVirtualHost + yönergesine argüman olarak * belirtebilirsiniz. Çok sayıda + port kullanmayı planlıyorsanız (SSL çalıştırmak gibi), argümana + *:80 şeklinde port ekleyebilirsiniz. Yalnız, NameVirtualHost yönergesinde bir IP adresi + belirtmiş olmakla sunucunun kendiliğinden o IP adresini dinlemeyeceğine + dikkat ediniz. Bu konuda ayrıntılı bilgi edinmek için Apache’nin kullanacağı adreslerin ve portların + ayarlanması belgesine bakınız. Ayrıca, sunucuda, burada belirttiğiniz + IP adresine sahip bir ağ arabirimi olmalıdır.

    + +

    Sonraki adım sunacağınız her konak için ayrı bir <VirtualHost> bölümü oluşturmaktır. + <VirtualHost> + yönergesinin argümanı ile eşleşen bir NameVirtualHost yönergesi tanımlanmış olmalıdır + (değer normalde "*:80" olacaktır). Her <VirtualHost> bölümü içinde sunulan konağı + belirtmek üzere en azından bir adet ServerName yönergesine ve konak içeriğinin dosya + sisteminde bulunduğu yeri gösteren bir DocumentRoot yönergesine + ihtiyacınız olacaktır.

    + +

    Ana konağı unutmayın

    +

    Mevcut sitenize sanal konaklar eklerseniz, mevcut siteniz için de bir + <VirtualHost> bölümü + oluşturmalısınız. Bu sanal konak bölümü içinde kullanacağınız + ServerName ve DocumentRoot yönergelerinin argümanları, bu + yönergelerin sunucu geneli için belirttiğiniz değerlerini + içermelidir. Bu sanal konağı yapılandırma dosyanızdaki ilk sanal konak + yapın ki, öntanımlı konak olsun.

    +
    + +

    Örnek olarak, www.biralan.tld adresinden sitenizi sunmakta + olduğunuzu ve bunun yanına aynı IP adresini kullanan + www.digeralan.tld sanal konağını eklemek istediğinizi + varsayalım. Bunun için httpd.conf dosyanıza basitçe şu + satırları ekleyebilirsiniz:

    + +

    + NameVirtualHost *:80
    +
    + <VirtualHost *:80>
    + + ServerName www.biralan.tld
    + ServerAlias biralan.tld *.biralan.tld
    + DocumentRoot /siteler/biralan
    +
    + </VirtualHost>
    +
    + <VirtualHost *:80>
    + ServerName www.digeralan.tld
    + DocumentRoot /siteler/digeralan
    +
    + </VirtualHost>
    +

    + +

    İsterseniz, NameVirtualHost ve + <VirtualHost> + yönergelerinde argüman olarak * yerine doğrudan bir IP adresi + belirtebilirsiniz. Hatta, daha sonra, isme dayalı sanal konakları bir IP + adresinden ve IP’ye dayalı olanları veya isme dayalı diğer bir sanal konak + grubunu diğer IP adreslerinden sunmak isteyebilirsiniz.

    + +

    Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu, + <VirtualHost> bölümü + içine bir ServerAlias yönergesi + yerleştirmek suretiyle mümkün olur. Örneğin yukarıdaki örnekte, + kullanıcıların aynı siteye farklı isimlerle erişmelerini mümkün kılmak + için bölüm içine şu satırı ekleyebilirsiniz:

    + +

    + ServerAlias biralan.tld *.biralan.tld +

    + +

    Böylece biralan.tld alanındaki tüm konaklar için gelen + isteklere www.biralan.tld sanal konağından hizmet sunulmuş + olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri + * ve ? kullanılabilir. Şüphesiz bu isimleri sırf + ServerName veya + ServerAlias yönergesinde belirtmiş olmakla bu isimleri + erişilebilir kılamazsınız. Öncelikle, bu isimleri sunucunuzdaki IP + adresleriyle eşlemek üzere yapılandıracağınız bir DNS sunucunuz + olmalıdır.

    + +

    VirtualHost içindeki isimlerin tamamı (jokersiz) bir + ServerAlias gibi ele alınır (fakat başka bir + ServerAlias ile geçersiz kılınmazlar).

    + +

    Son olarak, sanal konak yapılandırmanıza, <VirtualHost> bölümlerinin içine başka yönergeler + yerleştirerek ince ayar çekebilirsiniz. Çoğu yönerge bu bölümlere + yerleştirilebilir ve sadece o sanal konakla ilgili yapılandırmayı + değiştirmek için kullanılabilir. Belli bir yönergenin sanal konak + bölümlerinde kullanılıp kullanılmayacağını yönergenin açıklamasında Bağlam satırına bakarak + öğrenebilirsiniz. Ana sunucu bağlamındaki (<VirtualHost> bölümleri dışındaki) + yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz + kılınmamış olanlar kullanılacaktır.

    + +

    Sunucuya bir istek geldiğinde, sunucu önce IP adresiyle eşleşmesi olası + NameVirtualHost bölümleri var mı diye + bakar. Varsa, IP adresini eşleştirmek için NameVirtualHost bölümlerine tek tek bakar ve + istenen konak ismi ile eşleşen bir ServerName veya ServerAlias yönergesi bulmaya + çalışır. Bir tane bulduğunda, sunucu için onun yapılandırmasını kullanır. + İsimle eşleşen bir sanal konak bulamazsa IP adresiyle eşleşen ilk + sanal konağın yapılandırmasını kullanır.

    + +

    Bir önkabul olarak yapılandırma dosyasında rastlanan ilk sanal konak + öntanımlı sanal konaktır. IP adresi bir sanal konakla eşleştiği + takdirde ana sunucunun DocumentRoot değeri asla kullanılmayacaktır. + Sanal konaklardan hiçbiriyle eşleşmeyen istekler için özel bir + yapılandırmanız olsun isterseniz, bu yapılandırmayı yapılandırma + dosyanızdaki ilk <VirtualHost> bölümüne yerleştirmeniz + yetecektir.

    + +
    top
    +
    +

    Artık Tarihe Karışmış Tarayıcılarla Uyumluluk

    + +

    Evvelce de bahsedildiği gibi, isme dayalı sanal konakların gerektiği gibi + çalışması için gerekli veriyi göndermeyen bazı istemciler vardır. Bu + istemcilere daima o IP adresinin yapılandırma dosyasındaki ilk sanal + konağının (isme dayalı başat sanal konak) sayfaları + gönderilir.

    + +

    Ne kadar eski?

    +

    Lütfen dikkat edin, eski deyince gerçekten de antika demek istiyoruz. + Günümüzde bu tür tarayıcılara rastlamanız neredeyse imkansızdır. Günümüz + tarayıcılarının hepsi isme dayalı sanal konakların gerektirdiği + Host başlığını gönderirler.

    +
    + +

    Olayı fazla germeden ServerPath + yönergesini kullanarak sorunun çevresinden dolanmak mümkündür:

    + +

    Örnek yapılandırma:

    + +

    + NameVirtualHost 111.22.33.44
    +
    + <VirtualHost 111.22.33.44>
    + + ServerName www.biralan.tld
    + ServerPath /biralan
    + DocumentRoot /siteler/biralan
    +
    + </VirtualHost>
    +

    + +

    Bu ne anlama geliyor? Anlamı, "/biralan" ile başlayan her + URI isteği www.biralan.tld sanal konağı tarafından sunulacak, + demektir. Yani, tüm istemcilerin + http://www.biralan.tld/biralan/ olarak eriştiği yere + Host: başlığı gönderen istemciler + http://www.biralan.tld/ olarak erişirler.

    + +

    Bunu gerçekleştirebilmek için başat sanal konağın baş sayfasına + http://www.biralan.tld/biralan/ için bir bağ koyduktan sonra + sanal konağın sayfalarında ya tamamen göreli bağlar + ("dosya.html", "../simgeler/resim.png" gibi) + veya /biralan/ ile öncelenmiş bağlar + ("http://www.biralan.tld/biralan/muht/dosya.html" veya + "/biralan/muht/dosya.html" gibi) kullanın.

    + +

    Bu işlem biraz disiplin gerektirse de bu yazılanlara sıkı sıkıya bağlı + kalarak hem eski hem de yeni tarayıcıların sayfalarınızı doğru + görüntülemesini sağlamış olursunuz.

    + +
    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/vhosts/name-based.xml b/docs/manual/vhosts/name-based.xml index 567b3faba10..fa3d6392813 100644 --- a/docs/manual/vhosts/name-based.xml +++ b/docs/manual/vhosts/name-based.xml @@ -4,12 +4,12 @@ + - + + + + -$B%P!<%A%c%k%[%9%H(B -$BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H(B +バーチャルホスト +名前ベースのバーチャルホスト -

    $B$3$NJ8=q$G$OL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r$I$s$J$H$-!"(B - $B$I$&$d$C$F;H$&$+$r@bL@$7$^$9!#(B

    +

    この文書では名前ベースのバーチャルホストをどんなとき、 + どうやって使うかを説明します。

    -$B%M!<%`%Y!<%9$N%P!<%A%c%k%[%9%H(B -$B%P!<%A%c%k%[%9%H$N%^%C%A%s%0$K$D$$$F$N>\:Y(B -$BBgNL$N%P!<%A%c%k%[%9%H$NF0E*$J@_Dj(B -$B%P!<%A%c%k%[%9%H$N0lHLE*$J@_DjNc(B -ServerPath $B@_DjNc(B - -
    $BL>A0%Y!<%9$H(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$NHf3S(B - -

    IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$G$O!"1~Ez$9$k(B - $B%P!<%A%c%k%[%9%H$X$N%3%M%/%7%g%s$r7hDj$9$k$?$a$K(B IP - $B%"%I%l%9$r;HMQ$7$^$9!#$G$9$+$i!"$=$l$>$l$N%[%9%H$K8D!9$K(B IP - $B%"%I%l%9$,I,MW$K$J$j$^$9!#$3$l$KBP$7$FL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$G$O!"(B - $B%/%i%$%"%s%H$,(B HTTP $B%X%C%@$N0lIt$H$7$F%[%9%HL>$r9p$2$k!"(B - $B$H$$$&$3$H$K0MB8$7$^$9!#$3$N5;=Q$GF10l(B IP - $B%"%I%l%9$r0[$J$kB??t$N%[%9%H$G6&M-$7$F$$$^$9!#(B

    - -

    $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$ODL>oC1=c$G!"$=$l$>$l$N%[%9%HL>$H(B - $B$=$l$KBP1~$9$k@53N$J(B IP $B%"%I%l%9$r(B DNS $B$G@_Dj$7!"0[$J$k(B - $B%[%9%HL>$r6hJL$9$k$h$&$K(B Apache HTTP $B%5!<%P$r@_Dj$9$k$@$1$G$9!#(B - $B$5$i$K!"L>A0%Y!<%9$N%P!<%A%c%k%[%9%H$OITB-$9$k(B IP - $B%"%I%l%9$N<{MW$r4KOB$7$^$9!#$7$?$,$C$F!"(BIP $B%Y!<%9$N%P!<%A%c%k%[%9%H$r(B - $BA*Br$9$Y$-FCDj$NM}M3$,$J$1$l$PL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r;H$&$Y$-$G$9!#(B - IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$r;HMQ$9$k$3$H$r9MN8$9$kM}M3$H$7$F!"(B

    +ネームベースのバーチャルホスト +バーチャルホストのマッチングについての詳細 +大量のバーチャルホストの動的な設定 +バーチャルホストの一般的な設定例 +ServerPath 設定例 + +
    名前ベースと IP ベースのバーチャルホストの比較 + +

    IP ベースのバーチャルホストでは、応答する + バーチャルホストへのコネクションを決定するために IP + アドレスを使用します。ですから、それぞれのホストに個々に IP + アドレスが必要になります。これに対して名前ベースのバーチャルホストでは、 + クライアントが HTTP ヘッダの一部としてホスト名を告げる、 + ということに依存します。この技術で同一 IP + アドレスを異なる多数のホストで共有しています。

    + +

    名前ベースのバーチャルホストは通常単純で、それぞれのホスト名と + それに対応する正確な IP アドレスを DNS で設定し、異なる + ホスト名を区別するように Apache HTTP サーバを設定するだけです。 + さらに、名前ベースのバーチャルホストは不足する IP + アドレスの需要を緩和します。したがって、IP ベースのバーチャルホストを + 選択すべき特定の理由がなければ名前ベースのバーチャルホストを使うべきです。 + IP ベースのバーチャルホストを使用することを考慮する理由として、

      -
    • $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$KBP1~$7$F$$$J$$8E$$%/%i%$%"%s%H$,$"$k(B - $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$,F/$/$?$a$K$O!"%/%i%$%"%s%H$O(B - HTTP $B%[%9%H%X%C%@$rAw$C$F$3$J$1$l$P$J$j$^$;$s!#(B - $B$3$l$O(B HTTP/1.1 $B$N;EMM$GMW5a$5$l$F$$$F!"$9$Y$F$N8=BeE*$J(B - HTTP/1.0 $B%V%i%&%6$G$b3HD%$H$7$FA0%Y!<%9$N(B - $B%P!<%A%c%k%[%9%H$r9T$$$?$$>l9g$O!"$3$NJ8=q$N:G8e$NJ}$K(B - $B=q$+$l$F$$$k2r7h:v$K$J$k$+$b$7$l$J$$J}K!$r8+$F$/$@$5$$!#(B
    • - -
    • $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$O(B SSL $B%W%m%H%3%k$NFCD'$K$h$j!"(B - SSL $B%;%-%e%"%5!<%P$K$O;H$($^$;$s!#(B
    • - -
    • $B%*%Z%l!<%F%#%s%0%7%9%F%`$d%M%C%H%o!<%/AuCV$N$J$+$K$O!"(B - $BJL$N(B IP $B%"%I%l%9>e$G$J$$>l9g!"J#?t$N%[%9%H$rJL07$$$G$-$J$$$h$&$J(B - $BBS0h4IM}$NJ}K!$r +
    • 名前ベースのバーチャルホストに対応していない古いクライアントがある + 名前ベースのバーチャルホストが働くためには、クライアントは + HTTP ホストヘッダを送ってこなければなりません。 + これは HTTP/1.1 の仕様で要求されていて、すべての現代的な + HTTP/1.0 ブラウザでも拡張として実装されています。 + とても古いクライアントをサポートしつつ、名前ベースの + バーチャルホストを行いたい場合は、この文書の最後の方に + 書かれている解決策になるかもしれない方法を見てください。
    • + +
    • 名前ベースのバーチャルホストは SSL プロトコルの特徴により、 + SSL セキュアサーバには使えません。
    • + +
    • オペレーティングシステムやネットワーク装置のなかには、 + 別の IP アドレス上でない場合、複数のホストを別扱いできないような + 帯域管理の方法を実装しているものがあります。
    -
    $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$rMxMQ$9$k(B +
    名前ベースのバーチャルホストを利用する @@ -91,53 +91,53 @@ -

    $BL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r;H$&$K$O!"$=$N%[%9%H$X$N(B - $B%j%/%(%9%H$rNameVirtualHost - $B%G%#%l%/%F%#%V$G@_Dj$7$^$9!#DL>o!"(BNameVirtualHost $B$G(B - * $B$NB0@-$r;H$C$F%5!<%P$NA4$F$N(B IP $B%"%I%l%9$r;H$$$^$9!#(B - ($BNc$($P(B SSL $B$N;HMQ$J$I$G(B) $BJ#?t$N%]!<%H$r;H$&$3$H$r7W2h$7$F$$$k$N$G$"$l$P!"(B - $B0z?t$K(B *:80 $B$N$h$&$K%]!<%H$b4^$a$k$h$&$K$7$F$/$@$5$$!#(B - NameVirtualHost $B%G%#%l%/%F%#%V$G(B - IP $B%"%I%l%9$r=q$$$F$b!"(B - $B<+F0E*$K%5!<%P$,$=$N(B IP $B%"%I%l%9$r%j%C%9%s$9$k$H$$$&$3$H$O$J$$$3$H$K(B - $BCm0U$7$F$/$@$5$$!#>\:Y$O!V(BApache $B$N;H$&%"%I%l%9$H(B - $B%]!<%H$r@_Dj$9$k(B$B!W$rFI$s$G$/$@$5$$!#$5$i$K!"$3$3$G;XDj$5$l$?(B - IP $B%"%I%l%9$OA4$F%5!<%P$N%M%C%H%o!<%/%$%s%?!<%U%'!<%9$H4XO"IU$1$i$l$F(B - $B$$$J$1$l$P$J$j$^$;$s!#(B

    - -

    $B$l$KBP$7$F(B VirtualHost $B%V%m%C%/$r(B - $B:n@.$7$F$/$@$5$$!#(BVirtualHost - $B%G%#%l%/%F%#%V$N0z?t$O(B NameVirtualHost - $B%G%#%l%/%F%#%V$N0z?t$HF1$8$K$7$F$/$@$5$$(B ($B$9$J$o$A!"(BIP $B%"%I%l%9$+!"A4$F$N%"%I%l%9$r0UL#$9$k(B - *)$B!#$=$l$>$l$N(B VirtualHost - $B%G%#%l%/%F%#%V$NCf$K$O!":GDc8B!"$I$N%[%9%H$,07$o$l$k$+$r<($9(B ServerName $B%G%#%l%/%F%#%V$H!"(B - $B$=$N%[%9%HMQ$N%3%s%F%s%D$,%U%!%$%k%7%9%F%`>e$N$I$3$K$"$k$+$r<($9(B - DocumentRoot $B%G%#%l%/%F%#%V$r(B - $B=q$/I,MW$,$"$j$^$9!#(B

    - - $B%a%$%s%[%9%H$O$J$/$J$j$^$9(B -

    $B4{$K$"$k%&%'%V%5!<%P$K%P!<%A%c%k%[%9%H$rDI2C$9$k>l9g!"(B - $B4{B8$N%&%'%V%5!<%P$KBP$7$F$b(B 名前ベースのバーチャルホストを使うには、そのホストへの + リクエストを受け付けるサーバの IP アドレス (もしかしたらポートも) + を指定する必要があります。 + これは NameVirtualHost + ディレクティブで設定します。通常、NameVirtualHost で + * の属性を使ってサーバの全ての IP アドレスを使います。 + (例えば SSL の使用などで) 複数のポートを使うことを計画しているのであれば、 + 引数に *:80 のようにポートも含めるようにしてください。 + NameVirtualHost ディレクティブで + IP アドレスを書いても、 + 自動的にサーバがその IP アドレスをリッスンするということはないことに + 注意してください。詳細は「Apache の使うアドレスと + ポートを設定する」を読んでください。さらに、ここで指定された + IP アドレスは全てサーバのネットワークインターフェースと関連付けられて + いなければなりません。

    + +

    次は、扱うホストそれぞれに対して VirtualHost ブロックを + 作成してください。VirtualHost + ディレクティブの引数は NameVirtualHost + ディレクティブの引数と同じにしてください (すなわち、IP アドレスか、全てのアドレスを意味する + *)。それぞれの VirtualHost + ディレクティブの中には、最低限、どのホストが扱われるかを示す ServerName ディレクティブと、 + そのホスト用のコンテンツがファイルシステム上のどこにあるかを示す + DocumentRoot ディレクティブを + 書く必要があります。

    + + メインホストはなくなります +

    既にあるウェブサーバにバーチャルホストを追加する場合、 + 既存のウェブサーバに対しても VirtualHost - $B%V%m%C%/$r:n$i$J$1$l$P$J$j$^$;$s!#$3$N%P!<%A%c%k%[%9%H$N(B - ServerName $B$H(B + ブロックを作らなければなりません。このバーチャルホストの + ServerName と DocumentRoot - $B$O!"%0%m!<%P%k$J(B ServerName $B$H(B + は、グローバルな ServerName と DocumentRoot - $B$HF1$8$b$N$K$7$^$9!#$^$?!"$3$N%P!<%A%c%k%[%9%H$r@_Dj%U%!%$%k$NCf$G(B - $B@hF,$KCV$$$F!"%G%U%)%k%H%[%9%H$H$7$FF0:n$9$k$h$&$K$7$^$9!#(B

    + と同じものにします。また、このバーチャルホストを設定ファイルの中で + 先頭に置いて、デフォルトホストとして動作するようにします。

    -

    $B$?$H$($P!"(Bwww.domain.tld $B$rF0$+$7$F$$$F!"(B - $B$5$i$K%P!<%A%c%k%[%9%H(B www.otherdomain.tld - $B$rDI2C$9$k$H$7$^$7$g$&!#$3$N%P!<%A%c%k%[%9%H$OF10l(B IP $B$r;X$7$F$$$k$H$7$^$9!#(B - $B$=$N$h$&$J>l9g$O!"(Bhttpd.conf - $B$K0J2<$N$h$&$J%3!<%I$rDI2C$9$k$@$1$G$9(B

    +

    たとえば、www.domain.tld を動かしていて、 + さらにバーチャルホスト www.otherdomain.tld + を追加するとしましょう。このバーチャルホストは同一 IP を指しているとします。 + そのような場合は、httpd.conf + に以下のようなコードを追加するだけです

    NameVirtualHost *:80
    @@ -157,98 +157,98 @@ </VirtualHost>
    -

    NameVirtualHost $B5Z$S(B - VirtualHost $B$N$I$A$i$N>l9g$b!"(B - * $B$NItJ,$K$OL@<(E*$K(B IP $B%"%I%l%9$r;XDj$9$k$3$H$,$G$-$^$9!#(B - $BNc$($P!"$"$k(B IP $B%"%I%l%9$G$OL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r;H$$$?$$0lJ}$G!"(B - $BJL$N(B IP $B%"%I%l%9$G$O!"B>$N(B IP $B%Y!<%9$N%P!<%A%c%k%[%9%H$d(B - $BJLAH$NL>A0%Y!<%9$N%P!<%A%c%k%[%9%H$r;H$$$?$$>l9g!"(B - $B$=$&@_Dj$9$k$3$H$K$J$k$G$7$g$&!#(B

    - -

    $BJ#?t$NL>A0$G%5!<%P%"%/%;%9$,$G$-$k$h$&$K$7$?$$$3$H$bB?$$$G$7$g$&!#(B - $B$3$N$h$&$J$3$H$O!"(BServerAlias $B%G%#%l%/%F%#%V$r(B NameVirtualHost 及び + VirtualHost のどちらの場合も、 + * の部分には明示的に IP アドレスを指定することができます。 + 例えば、ある IP アドレスでは名前ベースのバーチャルホストを使いたい一方で、 + 別の IP アドレスでは、他の IP ベースのバーチャルホストや + 別組の名前ベースのバーチャルホストを使いたい場合、 + そう設定することになるでしょう。

    + +

    複数の名前でサーバアクセスができるようにしたいことも多いでしょう。 + このようなことは、ServerAlias ディレクティブを VirtualHost - $B%;%/%7%g%s$K5-=R$9$k$3$H$Ge5-$N(B VirtualHost $B$NNc$G$"$l$P!"(B - $BA0$,!"(B - $B%f!<%6$,F10l$N%&%'%V%5%$%H$H$7$FL\$K$7$F;HMQ$G$-$k%5!<%PL>$G$"$k!"(B - $B$H(B ServerAlias - $B%G%#%l%/%F%#%V$G;XDj$G$-$^$9!#(B

    + セクションに記述することで実現できます。 + 例えば上記の VirtualHost の例であれば、 + 次のように一覧に挙げられた名前が、 + ユーザが同一のウェブサイトとして目にして使用できるサーバ名である、 + と ServerAlias + ディレクティブで指定できます。

    ServerAlias domain.tld *.domain.tld -

    domain.tld $B%I%a%$%s$X$NA4$F$N%[%9%H$X$N%j%/%(%9%H$O(B - www.domain.tld $B$N%P!<%A%c%k%[%9%H$,=hM}$7$^$9!#(B - $BL>A0$r%^%C%A$5$;$k$?$a$K!"%o%$%k%I%+!<%IJ8;z(B * $B$d(B ? - $B$r;HMQ$9$k$3$H$b$G$-$^$9!#$b$A$m$s;W$$$D$-$NL>A0$r:n$C$F!"(B - ServerName $B$d(B +

    domain.tld ドメインへの全てのホストへのリクエストは + www.domain.tld のバーチャルホストが処理します。 + 名前をマッチさせるために、ワイルドカード文字 * や ? + を使用することもできます。もちろん思いつきの名前を作って、 + ServerName や ServerAlias - $B$K$=$NL>A0$r=q$/$H$$$C$?$3$H$O$G$-$^$;$s!#$^$:$O!"(B - $B$3$l$i$NL>A0$,(B $B%5!<%P$KIU$1$i$l$?(B IP $B%"%I%l%9$K%^%C%W$5$l$k$h$&$K(B - DNS $B%5!<%P$rE,@Z$K@_Dj$7$J$1$l$P$J$j$^$;$s!#(B

    - -

    $B:G8e$K!"(BVirtualHost $B%3%s%F%J$NCf$K(B - $BB>$N%G%#%l%/%F%#%V$r=q$/$3$H$G!"%P!<%A%c%k%[%9%H$N@_Dj$r:Y$+$/D4@0(B - $B$9$k$3$H$,$G$-$^$9!#(B - $B$[$H$s$I$N%G%#%l%/%F%#%V$O$3$l$i$N%3%s%F%J$K@_CV$9$k$3$H$,$G$-$F!"(B - $BJQ99E@$O$=$N%P!<%A%c%k%[%9%H$KBP$7$F$N$_M-8z$K$J$j$^$9!#(B - $B$I$N%G%#%l%/%F%#%V$r=q$/$3$H$,$G$-$k$+$O!"%G%#%l%/%F%#%V$N(B $B%3%s%F%-%9%H(B $B$r(B - $BD4$Y$F$/$@$5$$!#(B$B + にその名前を書くといったことはできません。まずは、 + これらの名前が サーバに付けられた IP アドレスにマップされるように + DNS サーバを適切に設定しなければなりません。

    + +

    最後に、VirtualHost コンテナの中に + 他のディレクティブを書くことで、バーチャルホストの設定を細かく調整 + することができます。 + ほとんどのディレクティブはこれらのコンテナに設置することができて、 + 変更点はそのバーチャルホストに対してのみ有効になります。 + どのディレクティブを書くことができるかは、ディレクティブの コンテキスト を + 調べてください。主サーバコンテキスト (VirtualHost - $B%3%s%F%J$N30(B) $B$N@_DjMQ%G%#%l%/%F%#%V$O%P!<%A%c%k%[%9%H$G$N@_Dj$G(B - $B>e=q$-$5$l$J$$>l9g$N$_;HMQ$5$l$^$9!#(B

    + コンテナの外) の設定用ディレクティブはバーチャルホストでの設定で + 上書きされない場合のみ使用されます。

    -

    $B%j%/%(%9%H$,Mh$k$H!"%5!<%P$O$^$::G=i$K(B リクエストが来ると、サーバはまず最初に NameVirtualHost - $B$K%^%C%A$9$k(B IP $B%"%I%l%9$+$I$&$+$r%A%'%C%/$7$^$9!#%^%C%A$9$l$P(B - $B%^%C%A$7$?(B IP $B%"%I%l%9$N(B VirtualHost - $B$N$=$l$>$l$N%;%/%7%g%s$NCf$+$i(B - ServerName $B$+(B + のそれぞれのセクションの中から + ServerName か ServerAlias - $B$KMW5a$5$l$?%[%9%HL>$,$"$k$+C5$7$^$9!#(B - $B8+$D$+$l$P$=$N%5!<%PMQ$N@_Dj$r;H$$$^$9!#%^%C%A$9$k%P!<%A%c%k%[%9%H(B - $B$,8+$D$+$i$J$1$l$P!"%^%C%A$7$?(B IP $B%"%I%l%9$N(B - $B%j%9%H$N:G=i$K$"$k%P!<%A%c%k%[%9%H(B $B$,;H$o$l$^$9!#(B

    + に要求されたホスト名があるか探します。 + 見つかればそのサーバ用の設定を使います。マッチするバーチャルホスト + が見つからなければ、マッチした IP アドレスの + リストの最初にあるバーチャルホスト が使われます。

    -

    $B7k2L$H$7$F!"%j%9%H$N:G=i$N%P!<%A%c%k%[%9%H$,(B $B%G%U%)%k%H(B $B$N(B - $B%P!<%A%c%k%[%9%H$K$J$j$^$9!#(BIP $B%"%I%l%9$,(B 結果として、リストの最初のバーチャルホストが デフォルト の + バーチャルホストになります。IP アドレスが NameVirtualHost - $B%G%#%l%/%F%#%V$K%^%C%A$7$?>l9g$O!"(B$B%a%$%s$N%5!<%P(B $B$N(B + ディレクティブにマッチした場合は、メインのサーバ の DocumentRoot - $B$O(B$B7h$7$F;H$o$l$^$;$s(B - $B$I$N%P!<%A%c%k%[%9%H$K$b%^%C%A$7$J$$%j%/%(%9%H$KBP$7$F!"(B - $BFCJL$J@_Dj$r$7$?$$$N$G$"$l$P!"@_Dj%U%!%$%kCf$N:G=i$N(B - <VirtualHost> $B%3%s%F%J$K$=$l$r5-=R$7$F$/$@$5$$!#(B

    + は決して使われません + どのバーチャルホストにもマッチしないリクエストに対して、 + 特別な設定をしたいのであれば、設定ファイル中の最初の + <VirtualHost> コンテナにそれを記述してください。

    -
    $B8E$$%V%i%&%6$H$N8_49@-(B +
    古いブラウザとの互換性 -

    $B0JA0=R$Y$?$h$&$K!"L>A0%Y!<%9$N%P!<%A%c%k%[%9%H$,@5$7$/F0:n$9$k(B - $B$?$a$KI,MW$J>pJs$rAw$C$F$3$J$$%/%i%$%"%s%H$,0MA3$H$7$FB8:_$7$F$$$^$9!#(B - $B$=$N$h$&$J%/%i%$%"%s%H$KBP$7$F$O!"3:Ev$9$k(B IP $B%"%I%l%9$K$D$$$F!"(B - $B0lHV:G=i$K@_Dj$5$l$F$$$k%P!<%A%c%k%[%9%H(B - ($B%W%i%$%^%j(B$B$NL>A0%Y!<%9$N%P!<%A%c%k%[%9%H(B) - $B$+$i%Z!<%8$,Aw$jJV$5$l$^$9!#(B

    +

    以前述べたように、名前ベースのバーチャルホストが正しく動作する + ために必要な情報を送ってこないクライアントが依然として存在しています。 + そのようなクライアントに対しては、該当する IP アドレスについて、 + 一番最初に設定されているバーチャルホスト + (プライマリの名前ベースのバーチャルホスト) + からページが送り返されます。

    - $B$I$N$0$i$$8E$$$N(B ? -

    $B!V8E$$!W$HI=8=$7$F$$$k>l9g!"K\Ev$K8E$$$3$H$r0UL#$7$F;H$C$F$$$^$9!#(B - $BIT9,$K$7$F:#8=:_$G$b$3$N$h$&$J8E$$%V%i%&%6$KAx6x$9$k$3$H$,$"$j$^$9!#(B - $B8=:_$N%V%i%&%6$OA4$F!"L>A0%Y!<%9$N%P!<%A%c%k%[%9%H$KI,MW$J(B - Host $B%X%C%@$rAw$j$^$9!#(B

    + どのぐらい古いの ? +

    「古い」と表現している場合、本当に古いことを意味して使っています。 + 不幸にして今現在でもこのような古いブラウザに遭遇することがあります。 + 現在のブラウザは全て、名前ベースのバーチャルホストに必要な + Host ヘッダを送ります。

    ServerPath - $B%G%#%l%/%F%#%V$GBP=h$,2DG=$G$9!#$A$g$C$HIT3J9%$G$9$1$l$I$b!#(B

    + ディレクティブで対処が可能です。ちょっと不格好ですけれども。

    -

    $B@_DjNc(B

    +

    設定例

    NameVirtualHost 111.22.33.44
    @@ -262,28 +262,28 @@ </VirtualHost>
    -

    $B$3$NNc$K$O$I$&$$$&0UL#$,$"$k$G$7$g$&$+(B? $B$3$l$O(B - "/domain" $B$G;O$^$k(B URI $B$X$N%j%/%(%9%H$O$9$Y$F!"(B - $B%P!<%A%c%k%[%9%H(B www.domain.tld $B$G=hM}$5$l$k!"(B - $B$H$$$&0UL#$G$9!#$D$^$j!"$9$Y$F$N%/%i%$%"%s%H$G(B - http://www.domain.tld/domain/ $B$G%"%/%;%9$G$-$k%Z!<%8$,!"(B - Host: $B%X%C%@$rAw$C$F$/$k%/%i%$%"%s%H$G$"$l$P(B - http://www.domain.tld/ $B$H$7$F$b%"%/%;%9$G$-$k!"(B - $B$H$$$&0UL#$G$9!#(B

    - -

    $B$3$l$,F0:n$9$k$h$&$K$9$k$K$O!"(B - $B%W%i%$%^%j$N%P!<%A%c%k%[%9%H$N%Z!<%8$K(B - http://www.domain.tld/domain/ $B$X$N%j%s%/$r@_CV$7$^$9!#(B - $B$=$7$F!"%P!<%A%c%k%[%9%H$N%Z!<%8$G$O!"=c?h$JAjBP%j%s%/(B ($BNc(B: - "file.html" $B$d(B "../icons/image.gif")$B!"(B - $B$"$k$$$O(B /domain/ $B$G;O$^$k%j%s%/(B ($BNc(B: - "http://www.domain.tld/domain/misc/file.html" $B$d(B - "/domain/misc/file.html") $B$@$1$r@_CV$7$^$9!#(B

    - -

    $B$3$l$K$O!"4vJ,$+$N5,N'$,I,MW$H$J$j$^$9$,!"(B - $B$3$N$h$&$J%,%$%I%i%$%s$rCil9g!"(B - $B$9$Y$F$N%V%i%&%6$G(B $B!=(B $B?7$7$$%V%i%&%6$G$b8E$$$b$N$G$b(B $B!=(B - $B:n@.$7$?%Z!<%8$,8+$($k$H$$$&$3$H$rJ]>Z$7$^$9!#(B

    +

    この例にはどういう意味があるでしょうか? これは + "/domain" で始まる URI へのリクエストはすべて、 + バーチャルホスト www.domain.tld で処理される、 + という意味です。つまり、すべてのクライアントで + http://www.domain.tld/domain/ でアクセスできるページが、 + Host: ヘッダを送ってくるクライアントであれば + http://www.domain.tld/ としてもアクセスできる、 + という意味です。

    + +

    これが動作するようにするには、 + プライマリのバーチャルホストのページに + http://www.domain.tld/domain/ へのリンクを設置します。 + そして、バーチャルホストのページでは、純粋な相対リンク (例: + "file.html" や "../icons/image.gif")、 + あるいは /domain/ で始まるリンク (例: + "http://www.domain.tld/domain/misc/file.html" や + "/domain/misc/file.html") だけを設置します。

    + +

    これには、幾分かの規律が必要となりますが、 + このようなガイドラインを忠実に守ることにより、たいていの場合、 + すべてのブラウザで ― 新しいブラウザでも古いものでも ― + 作成したページが見えるということを保証します。

    diff --git a/docs/manual/vhosts/name-based.xml.ko b/docs/manual/vhosts/name-based.xml.ko index 6aa5894d267..e8a733fdc2a 100644 --- a/docs/manual/vhosts/name-based.xml.ko +++ b/docs/manual/vhosts/name-based.xml.ko @@ -1,15 +1,15 @@ - + - + name-based /vhosts/ .. - de + de en fr - ja - ko + ja + ko + tr diff --git a/docs/manual/vhosts/name-based.xml.tr b/docs/manual/vhosts/name-based.xml.tr new file mode 100644 index 00000000000..f40f313fca4 --- /dev/null +++ b/docs/manual/vhosts/name-based.xml.tr @@ -0,0 +1,267 @@ + + + + + + + + + +Sanal Konaklar +İsme Dayalı Sanal Konaklar + + +

    Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları + açıklanmıştır.

    +
    + +IP Adresine Dayalı Sanal Konaklar +Konak Eşlemenin Derinliğine İncelenmesi + +Devingen olarak Yapılandırılan Kütlesel Sanal +Barındırma +Çok kullanılan sanal konak yapılandırma +örnekleri +ServerPath yapılandırma örneği + + +
    İsme dayalı ve IP’ye dayalı Sanal Konaklar + +

    IP’ye dayalı sanal konaklarda sunulacak sanal konağı doğru tespit + edebilmek için bağlantının yapıldığı IP adresine bakılır. Bu bakımdan her + konak için ayrı bir IP adresine gereksinim vardır. İsme dayalı sanal + konaklarda ise sunucu, istemcinin HTTP başlığının bir parçası olarak + gönderdiği konak adını kullanır. Bu teknikte aynı IP adresini çok sayıda + farklı konak kullanabilir.

    + +

    İsme dayalı sanal barındırma nispeten daha kolaydır, çünkü her konak + ismini doğru IP adresiyle eşlemek için DNS sunucunuzu yapılandırdıktan + sonra Apache HTTP sunucusunu farklı konak isimlerini tanıyacak şekilde + yapılandırmanız yeterli olur. İsme dayalı sanal barındırma ayrıca zaten + kıt olan IP adreslerine talebi de azaltır. Bu nedenle, açıkça IP’ye dayalı + sanal konakları talep eden donanım kullanmadıkça isme dayalı sanal konaklar + kullanmalısınız. SNI desteksiz bir mod_ssl sürümü + (Apache'nin 2.2.12 sürümüne kadar standart) kullanmıyorsanız, istemci + desteğine bağlı IP’ye dayalı sanal konaklar için geçerli tarihsel sebepler, + genel amaçlı bir HTTP sunucusu için artık uygulanabilir değildir.

    + +
    + +
    İsme Dayalı Sanal Konakların Kullanımı + + + + core + + + + DocumentRoot + NameVirtualHost + ServerAlias + ServerName + ServerPath + VirtualHost + + + +

    İsme dayalı sanal konakları kullanmak için, bu konaklar için istekleri + kabul edecek sunucuya IP adresini (ve muhtemelen portu da) + belirtmelisiniz. Bu işlem NameVirtualHost yönergesiyle yapılır. Normal + şartlar altında sunucu üzerinde bütün IP adreslerinin kullanılması + gerekir; bunun için NameVirtualHost + yönergesine argüman olarak * belirtebilirsiniz. Çok sayıda + port kullanmayı planlıyorsanız (SSL çalıştırmak gibi), argümana + *:80 şeklinde port ekleyebilirsiniz. Yalnız, NameVirtualHost yönergesinde bir IP adresi + belirtmiş olmakla sunucunun kendiliğinden o IP adresini dinlemeyeceğine + dikkat ediniz. Bu konuda ayrıntılı bilgi edinmek için Apache’nin kullanacağı adreslerin ve portların + ayarlanması belgesine bakınız. Ayrıca, sunucuda, burada belirttiğiniz + IP adresine sahip bir ağ arabirimi olmalıdır.

    + +

    Sonraki adım sunacağınız her konak için ayrı bir VirtualHost bölümü oluşturmaktır. + VirtualHost + yönergesinin argümanı ile eşleşen bir NameVirtualHost yönergesi tanımlanmış olmalıdır + (değer normalde "*:80" olacaktır). Her VirtualHost bölümü içinde sunulan konağı + belirtmek üzere en azından bir adet ServerName yönergesine ve konak içeriğinin dosya + sisteminde bulunduğu yeri gösteren bir DocumentRoot yönergesine + ihtiyacınız olacaktır.

    + + Ana konağı unutmayın +

    Mevcut sitenize sanal konaklar eklerseniz, mevcut siteniz için de bir + VirtualHost bölümü + oluşturmalısınız. Bu sanal konak bölümü içinde kullanacağınız + ServerName ve DocumentRoot yönergelerinin argümanları, bu + yönergelerin sunucu geneli için belirttiğiniz değerlerini + içermelidir. Bu sanal konağı yapılandırma dosyanızdaki ilk sanal konak + yapın ki, öntanımlı konak olsun.

    +
    + +

    Örnek olarak, www.biralan.tld adresinden sitenizi sunmakta + olduğunuzu ve bunun yanına aynı IP adresini kullanan + www.digeralan.tld sanal konağını eklemek istediğinizi + varsayalım. Bunun için httpd.conf dosyanıza basitçe şu + satırları ekleyebilirsiniz:

    + + + NameVirtualHost *:80
    +
    + <VirtualHost *:80>
    + + ServerName www.biralan.tld
    + ServerAlias biralan.tld *.biralan.tld
    + DocumentRoot /siteler/biralan
    +
    + </VirtualHost>
    +
    + <VirtualHost *:80>
    + ServerName www.digeralan.tld
    + DocumentRoot /siteler/digeralan
    +
    + </VirtualHost>
    +
    + +

    İsterseniz, NameVirtualHost ve + VirtualHost + yönergelerinde argüman olarak * yerine doğrudan bir IP adresi + belirtebilirsiniz. Hatta, daha sonra, isme dayalı sanal konakları bir IP + adresinden ve IP’ye dayalı olanları veya isme dayalı diğer bir sanal konak + grubunu diğer IP adreslerinden sunmak isteyebilirsiniz.

    + +

    Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu, + VirtualHost bölümü + içine bir ServerAlias yönergesi + yerleştirmek suretiyle mümkün olur. Örneğin yukarıdaki örnekte, + kullanıcıların aynı siteye farklı isimlerle erişmelerini mümkün kılmak + için bölüm içine şu satırı ekleyebilirsiniz:

    + + + ServerAlias biralan.tld *.biralan.tld + + +

    Böylece biralan.tld alanındaki tüm konaklar için gelen + isteklere www.biralan.tld sanal konağından hizmet sunulmuş + olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri + * ve ? kullanılabilir. Şüphesiz bu isimleri sırf + ServerName veya + ServerAlias yönergesinde belirtmiş olmakla bu isimleri + erişilebilir kılamazsınız. Öncelikle, bu isimleri sunucunuzdaki IP + adresleriyle eşlemek üzere yapılandıracağınız bir DNS sunucunuz + olmalıdır.

    + +

    VirtualHost içindeki isimlerin tamamı (jokersiz) bir + ServerAlias gibi ele alınır (fakat başka bir + ServerAlias ile geçersiz kılınmazlar).

    + +

    Son olarak, sanal konak yapılandırmanıza, VirtualHost bölümlerinin içine başka yönergeler + yerleştirerek ince ayar çekebilirsiniz. Çoğu yönerge bu bölümlere + yerleştirilebilir ve sadece o sanal konakla ilgili yapılandırmayı + değiştirmek için kullanılabilir. Belli bir yönergenin sanal konak + bölümlerinde kullanılıp kullanılmayacağını yönergenin açıklamasında Bağlam satırına bakarak + öğrenebilirsiniz. Ana sunucu bağlamındaki (VirtualHost bölümleri dışındaki) + yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz + kılınmamış olanlar kullanılacaktır.

    + +

    Sunucuya bir istek geldiğinde, sunucu önce IP adresiyle eşleşmesi olası + NameVirtualHost bölümleri var mı diye + bakar. Varsa, IP adresini eşleştirmek için NameVirtualHost bölümlerine tek tek bakar ve + istenen konak ismi ile eşleşen bir ServerName veya ServerAlias yönergesi bulmaya + çalışır. Bir tane bulduğunda, sunucu için onun yapılandırmasını kullanır. + İsimle eşleşen bir sanal konak bulamazsa IP adresiyle eşleşen ilk + sanal konağın yapılandırmasını kullanır.

    + +

    Bir önkabul olarak yapılandırma dosyasında rastlanan ilk sanal konak + öntanımlı sanal konaktır. IP adresi bir sanal konakla eşleştiği + takdirde ana sunucunun DocumentRoot değeri asla kullanılmayacaktır. + Sanal konaklardan hiçbiriyle eşleşmeyen istekler için özel bir + yapılandırmanız olsun isterseniz, bu yapılandırmayı yapılandırma + dosyanızdaki ilk VirtualHost bölümüne yerleştirmeniz + yetecektir.

    + +
    + +
    Artık Tarihe Karışmış Tarayıcılarla Uyumluluk + +

    Evvelce de bahsedildiği gibi, isme dayalı sanal konakların gerektiği gibi + çalışması için gerekli veriyi göndermeyen bazı istemciler vardır. Bu + istemcilere daima o IP adresinin yapılandırma dosyasındaki ilk sanal + konağının (isme dayalı başat sanal konak) sayfaları + gönderilir.

    + + Ne kadar eski? +

    Lütfen dikkat edin, eski deyince gerçekten de antika demek istiyoruz. + Günümüzde bu tür tarayıcılara rastlamanız neredeyse imkansızdır. Günümüz + tarayıcılarının hepsi isme dayalı sanal konakların gerektirdiği + Host başlığını gönderirler.

    +
    + +

    Olayı fazla germeden ServerPath + yönergesini kullanarak sorunun çevresinden dolanmak mümkündür:

    + +

    Örnek yapılandırma:

    + + + NameVirtualHost 111.22.33.44
    +
    + <VirtualHost 111.22.33.44>
    + + ServerName www.biralan.tld
    + ServerPath /biralan
    + DocumentRoot /siteler/biralan
    +
    + </VirtualHost>
    +
    + +

    Bu ne anlama geliyor? Anlamı, "/biralan" ile başlayan her + URI isteği www.biralan.tld sanal konağı tarafından sunulacak, + demektir. Yani, tüm istemcilerin + http://www.biralan.tld/biralan/ olarak eriştiği yere + Host: başlığı gönderen istemciler + http://www.biralan.tld/ olarak erişirler.

    + +

    Bunu gerçekleştirebilmek için başat sanal konağın baş sayfasına + http://www.biralan.tld/biralan/ için bir bağ koyduktan sonra + sanal konağın sayfalarında ya tamamen göreli bağlar + ("dosya.html", "../simgeler/resim.png" gibi) + veya /biralan/ ile öncelenmiş bağlar + ("http://www.biralan.tld/biralan/muht/dosya.html" veya + "/biralan/muht/dosya.html" gibi) kullanın.

    + +

    Bu işlem biraz disiplin gerektirse de bu yazılanlara sıkı sıkıya bağlı + kalarak hem eski hem de yeni tarayıcıların sayfalarınızı doğru + görüntülemesini sağlamış olursunuz.

    + +
    +
    diff --git a/httpd.dep b/httpd.dep new file mode 100644 index 00000000000..78c5aa3d6de --- /dev/null +++ b/httpd.dep @@ -0,0 +1,42 @@ +# Microsoft Developer Studio Generated Dependency File, included by httpd.mak + +.\build\win32\httpd.rc : \ + ".\include\ap_release.h"\ + + +.\server\main.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\mpm.h"\ + ".\include\mpm_common.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_buckets.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_md5.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr-util\include\apu_version.h"\ + ".\srclib\apr\include\apr_getopt.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + ".\srclib\apr\include\apr_version.h"\ + diff --git a/httpd.dsp b/httpd.dsp index 27482fed3d7..96b5f4460ed 100644 --- a/httpd.dsp +++ b/httpd.dsp @@ -44,13 +44,19 @@ RSC=rc.exe # ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "SHARED_MODULE" /FD /c # ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /Fd"Release\httpd" /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /i "./include" /i "./srclib/apr/include" /d "NDEBUG" /d "APP_FILE" /d BIN_NAME="httpd.exe" /d LONG_NAME="Apache HTTP Server" /d ICON_FILE="apache.ico" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /stack:0x40000 /subsystem:console /debug /machine:I386 /opt:ref +# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:console +# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /stack:0x40000 /subsystem:console /debug /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\httpd.exe +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);1 +# End Special Build Tool !ELSEIF "$(CFG)" == "httpd - Win32 Debug" @@ -65,17 +71,23 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /Fd"Debug\httpd" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /Fd"Debug\httpd" /FD /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /i "./include" /i "./srclib/apr/include" /d "_DEBUG" /d "APP_FILE" /d BIN_NAME="httpd.exe" /d LONG_NAME="Apache HTTP Server" /d ICON_FILE="apache.ico" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /stack:0x40000 /subsystem:console /incremental:no /debug /machine:I386 +# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:console /incremental:no /debug +# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /stack:0x40000 /subsystem:console /incremental:no /debug +# Begin Special Build Tool +TargetPath=.\Debug\httpd.exe +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);1 +# End Special Build Tool !ENDIF @@ -94,35 +106,6 @@ SOURCE=.\build\win32\httpd.rc # Begin Source File SOURCE=.\server\main.c -# End Source File -# Begin Source File - -SOURCE=.\build\win32\win32ver.awk - -!IF "$(CFG)" == "httpd - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=.\build\win32\win32ver.awk - -".\build\win32\httpd.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ./build/win32/win32ver.awk httpd.exe "Apache HTTP Server" ./include/ap_release.h icon=apache.ico > .\build\win32\httpd.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "httpd - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=.\build\win32\win32ver.awk - -".\build\win32\httpd.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ./build/win32/win32ver.awk httpd.exe "Apache HTTP Server" ./include/ap_release.h icon=apache.ico > .\build\win32\httpd.rc - -# End Custom Build - -!ENDIF - # End Source File # End Target # End Project diff --git a/httpd.mak b/httpd.mak new file mode 100644 index 00000000000..6ac1cbd98a8 --- /dev/null +++ b/httpd.mak @@ -0,0 +1,344 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on httpd.dsp +!IF "$(CFG)" == "" +CFG=httpd - Win32 Release +!MESSAGE No configuration specified. Defaulting to httpd - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "httpd - Win32 Release" && "$(CFG)" != "httpd - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "httpd.mak" CFG="httpd - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "httpd - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "httpd - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "httpd - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\httpd.exe" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\httpd.exe" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\httpd.idb" + -@erase "$(INTDIR)\httpd.res" + -@erase "$(INTDIR)\main.obj" + -@erase "$(OUTDIR)\httpd.exe" + -@erase "$(OUTDIR)\httpd.pdb" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\httpd" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\httpd.res" /i "./include" /i "./srclib/apr/include" /d "NDEBUG" /d "APP_FILE" /d BIN_NAME="httpd.exe" /d LONG_NAME="Apache HTTP Server" /d ICON_FILE="apache.ico" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\httpd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /stack:0x40000 /subsystem:console /incremental:no /pdb:"$(OUTDIR)\httpd.pdb" /debug /out:"$(OUTDIR)\httpd.exe" /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\main.obj" \ + "$(INTDIR)\httpd.res" \ + ".\srclib\apr\Release\libapr-1.lib" \ + ".\srclib\apr-util\Release\libaprutil-1.lib" \ + "$(OUTDIR)\libhttpd.lib" + +"$(OUTDIR)\httpd.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\httpd.exe +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\httpd.exe" + if exist .\Release\httpd.exe.manifest mt.exe -manifest .\Release\httpd.exe.manifest -outputresource:.\Release\httpd.exe;1 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "httpd - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\httpd.exe" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\httpd.exe" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\httpd.idb" + -@erase "$(INTDIR)\httpd.res" + -@erase "$(INTDIR)\main.obj" + -@erase "$(OUTDIR)\httpd.exe" + -@erase "$(OUTDIR)\httpd.pdb" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\httpd" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\httpd.res" /i "./include" /i "./srclib/apr/include" /d "_DEBUG" /d "APP_FILE" /d BIN_NAME="httpd.exe" /d LONG_NAME="Apache HTTP Server" /d ICON_FILE="apache.ico" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\httpd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /stack:0x40000 /subsystem:console /incremental:no /pdb:"$(OUTDIR)\httpd.pdb" /debug /out:"$(OUTDIR)\httpd.exe" +LINK32_OBJS= \ + "$(INTDIR)\main.obj" \ + "$(INTDIR)\httpd.res" \ + ".\srclib\apr\Debug\libapr-1.lib" \ + ".\srclib\apr-util\Debug\libaprutil-1.lib" \ + "$(OUTDIR)\libhttpd.lib" + +"$(OUTDIR)\httpd.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\httpd.exe +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\httpd.exe" + if exist .\Debug\httpd.exe.manifest mt.exe -manifest .\Debug\httpd.exe.manifest -outputresource:.\Debug\httpd.exe;1 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("httpd.dep") +!INCLUDE "httpd.dep" +!ELSE +!MESSAGE Warning: cannot find "httpd.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "httpd - Win32 Release" || "$(CFG)" == "httpd - Win32 Debug" + +!IF "$(CFG)" == "httpd - Win32 Release" + +"libapr - Win32 Release" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\.." + +"libapr - Win32 ReleaseCLEAN" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "httpd - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\.." + +"libapr - Win32 DebugCLEAN" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "httpd - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\.." + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "httpd - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\.." + +"libaprutil - Win32 DebugCLEAN" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "httpd - Win32 Release" + +"libhttpd - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd "." + +"libhttpd - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "httpd - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd "." + +"libhttpd - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + +SOURCE=.\build\win32\httpd.rc + +!IF "$(CFG)" == "httpd - Win32 Release" + + +"$(INTDIR)\httpd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\httpd.res" /i "./include" /i "./srclib/apr/include" /i "build\win32" /d "NDEBUG" /d "APP_FILE" /d BIN_NAME="httpd.exe" /d LONG_NAME="Apache HTTP Server" /d ICON_FILE="apache.ico" $(SOURCE) + + +!ELSEIF "$(CFG)" == "httpd - Win32 Debug" + + +"$(INTDIR)\httpd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\httpd.res" /i "./include" /i "./srclib/apr/include" /i "build\win32" /d "_DEBUG" /d "APP_FILE" /d BIN_NAME="httpd.exe" /d LONG_NAME="Apache HTTP Server" /d ICON_FILE="apache.ico" $(SOURCE) + + +!ENDIF + +SOURCE=.\server\main.c + +"$(INTDIR)\main.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + + +!ENDIF + diff --git a/include/ap_compat.h b/include/ap_compat.h index 4c25b0ad9dd..af9303fa1e3 100644 --- a/include/ap_compat.h +++ b/include/ap_compat.h @@ -1,9 +1,9 @@ -/* Copyright 2001-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * @file ap_compat.h + * @brief Redefine Apache 1.3 symbols + */ + #ifndef AP_COMPAT_H #define AP_COMPAT_H diff --git a/include/ap_config.h b/include/ap_config.h index cfcd04ac95e..dd977a6ca03 100644 --- a/include/ap_config.h +++ b/include/ap_config.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * @file ap_config.h + * @brief Symbol export macros and hook functions + */ + #ifndef AP_CONFIG_H #define AP_CONFIG_H @@ -21,13 +26,11 @@ #include "apr_hooks.h" #include "apr_optional_hooks.h" -/** - * @file ap_config.h - * @brief Symbol export macros and hook functions - */ - /* Although this file doesn't declare any hooks, declare the hook group here */ -/** @defgroup hooks Apache Hooks */ +/** + * @defgroup hooks Apache Hooks + * @ingroup APACHE_CORE + */ #ifdef DOXYGEN /* define these just so doxygen documents them */ @@ -227,7 +230,7 @@ APR_OPTIONAL_HOOK(ap,name,fn,pre,succ,order) #include "os.h" -#if !defined(WIN32) && !defined(NETWARE) +#if (!defined(WIN32) && !defined(NETWARE)) || defined(__MINGW32__) #include "ap_config_auto.h" #include "ap_config_layout.h" #endif @@ -249,4 +252,12 @@ #define AP_HAVE_RELIABLE_PIPED_LOGS TRUE #endif +/* Presume that the compiler supports C99-style designated + * initializers if using GCC (but not G++), or for any other compiler + * which claims C99 support. */ +#if (defined(__GNUC__) && !defined(__cplusplus)) \ + || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) +#define AP_HAVE_DESIGNATED_INITIALIZER +#endif + #endif /* AP_CONFIG_H */ diff --git a/include/ap_config_layout.h.in b/include/ap_config_layout.h.in index 185494de26e..2b4a70c4616 100644 --- a/include/ap_config_layout.h.in +++ b/include/ap_config_layout.h.in @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * @file ap_config_layout.h + * @brief Apache Config Layout + */ + #ifndef AP_CONFIG_LAYOUT_H #define AP_CONFIG_LAYOUT_H diff --git a/include/ap_listen.h b/include/ap_listen.h index d98949f3792..b623495ba1c 100644 --- a/include/ap_listen.h +++ b/include/ap_listen.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file ap_listen.h + * @brief Apache Listeners Library + * + * @defgroup APACHE_CORE_LISTEN Apache Listeners Library + * @ingroup APACHE_CORE + * @{ + */ + #ifndef AP_LISTEN_H #define AP_LISTEN_H @@ -21,15 +30,17 @@ #include "httpd.h" #include "http_config.h" -/** - * @package Apache Listeners Library - */ +#ifdef __cplusplus +extern "C" { +#endif typedef struct ap_listen_rec ap_listen_rec; typedef apr_status_t (*accept_function)(void **csd, ap_listen_rec *lr, apr_pool_t *ptrans); /** - * Apache's listeners record. These are used in the Multi-Processing Modules + * @brief Apache's listeners record. + * + * These are used in the Multi-Processing Modules * to setup all of the sockets for the MPM to listen to and accept on. */ struct ap_listen_rec { @@ -77,6 +88,11 @@ AP_DECLARE(void) ap_listen_pre_config(void); */ AP_DECLARE(int) ap_setup_listeners(server_rec *s); +/** + * Loop through the global ap_listen_rec list and close each of the sockets. + */ +AP_DECLARE_NONSTD(void) ap_close_listeners(void); + /* Although these functions are exported from libmain, they are not really * public functions. These functions are actually called while parsing the * config file, when one of the LISTEN_COMMANDS directives is read. These @@ -103,4 +119,9 @@ AP_INIT_TAKE1("SendBufferSize", ap_set_send_buffer_size, NULL, RSRC_CONF, \ AP_INIT_TAKE1("ReceiveBufferSize", ap_set_receive_buffer_size, NULL, \ RSRC_CONF, "Receive buffer size in bytes") +#ifdef __cplusplus +} +#endif + #endif +/** @} */ diff --git a/include/ap_mmn.h b/include/ap_mmn.h index b8d922fdf6a..fcbce6ffadc 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,13 +14,18 @@ * limitations under the License. */ -#ifndef APACHE_AP_MMN_H -#define APACHE_AP_MMN_H - /** - * @package Module Magic Number + * @file ap_mmn.h + * @brief Module Magic Number + * + * @defgroup APACHE_CORE_MMN Module Magic Number + * @ingroup APACHE_CORE + * @{ */ +#ifndef APACHE_AP_MMN_H +#define APACHE_AP_MMN_H + /* * MODULE_MAGIC_NUMBER_MAJOR * Major API changes that could cause compatibility problems for older modules @@ -31,7 +36,7 @@ * Minor API changes that do not cause binary compatibility problems. * Should be reset to 0 when upgrading MODULE_MAGIC_NUMBER_MAJOR. * - * See the MODULE_MAGIC_AT_LEAST macro below for an example. + * See the AP_MODULE_MAGIC_AT_LEAST macro below for an example. */ /* @@ -100,14 +105,78 @@ * 20050701.1 (2.1.7-dev) trace_enable member added to core server_config * 20050708.0 (2.1.7-dev) Bump MODULE_MAGIC_COOKIE to "AP22"! * 20050708.1 (2.1.7-dev) add proxy request_status hook (minor) - */ + * 20051006.0 (2.1.8-dev) NET_TIME filter eliminated + * 20051115.0 (2.1.10-dev/2.2.0) add use_canonical_phys_port to core_dir_config + * 20051115.1 (2.2.1) flush_packets and flush_wait members added to + * proxy_server (minor) + * 20051115.2 (2.2.2) added inreslist member to proxy_conn_rec (minor) + * 20051115.3 (2.2.3) Added server_scheme member to server_rec (minor) + * 20051115.4 (2.2.4) Added ap_get_server_banner() and + * ap_get_server_description() (minor) + * 20051115.5 (2.2.5) Added ap_mpm_safe_kill() (minor) + * 20051115.6 (2.2.7) Added retry_set to proxy_worker (minor) + * 20051115.7 (2.2.7) Added conn_rec::clogging_input_filters (minor) + * 20051115.8 (2.2.7) Added flags to proxy_alias (minor) + * 20051115.9 (2.2.7) Add ap_send_interim_response API + * 20051115.10 (2.2.7) Added ap_mod_status_reqtail (minor) + * 20051115.11 (2.2.7) Add *ftp_directory_charset to proxy_dir_conf + * 20051115.12 (2.2.8) Add optional function ap_logio_add_bytes_in() to mog_logio + * 20051115.13 (2.2.9) Add disablereuse and disablereuse_set + * to proxy_worker struct (minor) + * 20051115.14 (2.2.9) Add ap_proxy_ssl_connection_cleanup and + * add *scpool, *r and need_flush to proxy_conn_rec + * structure + * 20051115.15 (2.2.9) Add interpolate_env to proxy_dir_conf and + * introduce proxy_req_conf. + * 20051115.16 (2.2.9) Add conn_timeout and conn_timeout_set to + * proxy_worker struct. + * 20051115.17 (2.2.10) Add scolonsep to proxy_balancer + * 20051115.18 (2.2.10) Add chroot support to unixd_config + * 20051115.19 (2.2.11) Added ap_timeout_parameter_parse to util.c / httpd.h + * 20051115.20 (2.2.11) Add ap_proxy_buckets_lifetime_transform to mod_proxy.h + * 20051115.21 (2.2.11) Export mod_rewrite.h in the public API + * 20051115.22 (2.2.12) Add ap_escape_html2 API, with additional option + * 20051115.23 (2.2.12) Add ap_open_piped_log_ex API, with cmdtype option, + * and conditional cmdtype member of piped_log struct + * 20051115.24 (2.2.15) Add forward member to proxy_conn_rec + * 20051115.25 (2.2.17) Add errstatuses member to proxy_balancer + * 20051115.26 (2.2.18) Add ap_cache_check_allowed() + * 20051115.27 (2.2.18) BROKEN ABI fixed in 2.2.19: + * ap_unescape_url_keep2f() signature change + * Add core_dir_config.decode_encoded_slashes. + * 20051115.28 (2.2.19) Restore ap_unescape_url_keep2f(char *url) signature + * altered in 2.2.18. Add ap_unescape_url_keep2f_ex(). + * 20051115.29 (2.2.21) add max_ranges to core_dir_config + * 20051115.30 (2.2.21) add ap_set_accept_ranges() + * 20051115.31 (2.2.23) Add forcerecovery to proxy_balancer_shared struct + * 20051115.32 (2.2.24) Add ap_get_exec_line + * 20051115.33 (2.2.24) Add ap_pregsub_ex() + * 20051115.34 (2.2.28) Add ap_copy_scoreboard_worker() + * 20051115.35 (2.2.28) Add SSL reusable SNI to mod_proxy.h's proxy_conn_rec + * 20051115.36 (2.2.28) Add r->trailers_{in,out} + * 20051115.37 (2.2.30) Add ap_get_server_name_for_url() + * 20051115.38 (2.2.30) Add ap_proxy_set_scoreboard_lb() in mod_proxy.h + * 20051115.39 (2.2.30) Add ap_proxy_connection_reusable() + * 20051115.40 (2.2.30) Add ap_map_http_request_error() + * 20051115.41 (2.2.32) Add s member to proxy_server_conf struct and server + * member to proxy_worker struct. + * 20051115.42 (2.2.32) Add http09_enable, http_conformance, and + * http_methods to core_server_config + * Add ap_scan_http_field_token(), + * ap_scan_http_field_content(), + * and ap_scan_vchar_obstext() + * Replaced fold boolean with with multiple bit flags + * to ap_[r]getline() + * 20051115.43 (2.2.33) Add ap_get_basic_auth_components() and deprecate + * ap_get_basic_auth_pw() + */ #define MODULE_MAGIC_COOKIE 0x41503232UL /* "AP22" */ #ifndef MODULE_MAGIC_NUMBER_MAJOR -#define MODULE_MAGIC_NUMBER_MAJOR 20050708 +#define MODULE_MAGIC_NUMBER_MAJOR 20051115 #endif -#define MODULE_MAGIC_NUMBER_MINOR 1 /* 0...n */ +#define MODULE_MAGIC_NUMBER_MINOR 43 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a @@ -137,3 +206,4 @@ #define MODULE_MAGIC_AT_LEAST old_broken_macro_we_hope_you_are_not_using #endif /* !APACHE_AP_MMN_H */ +/** @} */ diff --git a/include/ap_mpm.h b/include/ap_mpm.h index b1e303fe052..713f97d8ffb 100644 --- a/include/ap_mpm.h +++ b/include/ap_mpm.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,14 +14,23 @@ * limitations under the License. */ +/** + * @file ap_mmn.h + * @brief Apache Multi-Processing Module library + * + * @defgroup APACHE_CORE_MPM Multi-Processing Module library + * @ingroup APACHE_CORE + * @{ + */ + #ifndef AP_MPM_H #define AP_MPM_H #include "apr_thread_proc.h" -/** - * @package Multi-Processing Module library - */ +#ifdef __cplusplus +extern "C" { +#endif /* The MPM, "multi-processing model" provides an abstraction of the @@ -174,4 +183,9 @@ typedef struct ap_exception_info_t { AP_DECLARE_HOOK(int,fatal_exception,(ap_exception_info_t *ei)) #endif /*AP_ENABLE_EXCEPTION_HOOK*/ +#ifdef __cplusplus +} +#endif + #endif +/** @} */ diff --git a/include/ap_provider.h b/include/ap_provider.h index c05da554c5a..adfc69cad69 100644 --- a/include/ap_provider.h +++ b/include/ap_provider.h @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,14 +14,28 @@ * limitations under the License. */ +/** + * @file ap_provider.h + * @brief Apache Provider API + * + * @defgroup APACHE_CORE_PROVIDER Provider API + * @ingroup APACHE_CORE + * @{ + */ + #ifndef AP_PROVIDER_H #define AP_PROVIDER_H #include "ap_config.h" -/** - * @package Provider API - */ +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + const char *provider_name; +} ap_list_provider_names_t; + /** * This function is used to register a provider with the global @@ -51,4 +65,22 @@ AP_DECLARE(void *) ap_lookup_provider(const char *provider_group, const char *provider_name, const char *provider_version); +/** + * This function is used to retrieve a list (array) of provider + * names from the specified group with the specified version. + * @param pool The pool to create any storage from + * @param provider_group The group to look for this provider in + * @param provider_version The version for the provider + * @return pointer to array of ap_list_provider_names_t of provider names (could be empty) + */ + +AP_DECLARE(apr_array_header_t *) ap_list_provider_names(apr_pool_t *pool, + const char *provider_group, + const char *provider_version); + +#ifdef __cplusplus +} +#endif + #endif +/** @} */ diff --git a/include/ap_regex.h b/include/ap_regex.h index a52ade81806..e6ae569610f 100644 --- a/include/ap_regex.h +++ b/include/ap_regex.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -47,6 +47,11 @@ POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ +/** + * @file ap_regex.h + * @brief Apache Regex defines + */ + #ifndef AP_REGEX_H #define AP_REGEX_H @@ -95,7 +100,8 @@ typedef struct { * Compile a regular expression. * @param preg Returned compiled regex * @param regex The regular expression string - * @param cflags Must be zero (currently). + * @param cflags Bitwise OR of AP_REG_* flags (ICASE and NEWLINE supported, + * other flags are ignored) * @return Zero on success or non-zero on error */ AP_DECLARE(int) ap_regcomp(ap_regex_t *preg, const char *regex, int cflags); @@ -106,8 +112,9 @@ AP_DECLARE(int) ap_regcomp(ap_regex_t *preg, const char *regex, int cflags); * @param string The string to match * @param nmatch Provide information regarding the location of any matches * @param pmatch Provide information regarding the location of any matches - * @param eflags Bitwise OR of any of AP_REG_* flags - * @return 0 for successful match, #REG_NOMATCH otherwise + * @param eflags Bitwise OR of AP_REG_* flags (NOTBOL and NOTEOL supported, + * other flags are ignored) + * @return 0 for successful match, AP_REG_NOMATCH otherwise */ AP_DECLARE(int) ap_regexec(const ap_regex_t *preg, const char *string, apr_size_t nmatch, ap_regmatch_t *pmatch, int eflags); diff --git a/include/ap_regkey.h b/include/ap_regkey.h index 1964ccd2d3f..84e3246a291 100644 --- a/include/ap_regkey.h +++ b/include/ap_regkey.h @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * @file ap_regkey.h + * @brief APR-style Win32 Registry Manipulation + */ + #ifndef AP_REGKEY_H #define AP_REGKEY_H @@ -33,11 +38,6 @@ typedef struct ap_regkey_t ap_regkey_t; */ AP_DECLARE(const ap_regkey_t *) ap_regkey_const(int i); -/** - * @file ap_regkey.h - * @brief APR-style Win32 Registry Manipulation - */ - /** * Win32 Only: Constants for ap_regkey_open() */ diff --git a/include/ap_release.h b/include/ap_release.h index 2923f0e39f7..6422350e555 100644 --- a/include/ap_release.h +++ b/include/ap_release.h @@ -1,9 +1,9 @@ -/* Copyright 2001-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,16 +14,16 @@ * limitations under the License. */ +/** + * @file ap_release.h + * @brief Version Release defines + */ + #ifndef AP_RELEASE_H #define AP_RELEASE_H -/* The numeric compile-time version constants. These constants are the - * authoritative version numbers for APR. - */ -/** Properly quote a value as a string in the C preprocessor */ -#define AP_STRINGIFY(n) AP_STRINGIFY_HELPER(n) -/** Helper macro for AP_STRINGIFY */ -#define AP_STRINGIFY_HELPER(n) #n +#define AP_SERVER_COPYRIGHT \ + "Copyright 2018 The Apache Software Foundation." /* * The below defines the base string of the Server: header. Additional @@ -32,29 +32,40 @@ * The tokens are listed in order of their significance for identifying the * application. * - * "Product tokens should be short and to the point -- use of them for + * "Product tokens should be short and to the point -- use of them for * advertizing or other non-essential information is explicitly forbidden." * - * Example: "Apache/1.1.0 MrWidget/0.1-alpha" + * Example: "Apache/1.1.0 MrWidget/0.1-alpha" */ #define AP_SERVER_BASEVENDOR "Apache Software Foundation" +#define AP_SERVER_BASEPROJECT "Apache HTTP Server" #define AP_SERVER_BASEPRODUCT "Apache" #define AP_SERVER_MAJORVERSION_NUMBER 2 -#define AP_SERVER_MINORVERSION_NUMBER 3 -#define AP_SERVER_PATCHLEVEL_NUMBER 0 +#define AP_SERVER_MINORVERSION_NUMBER 2 +#define AP_SERVER_PATCHLEVEL_NUMBER 35 #define AP_SERVER_DEVBUILD_BOOLEAN 1 +/* Synchronize the above with docs/manual/style/version.ent */ + #if AP_SERVER_DEVBUILD_BOOLEAN #define AP_SERVER_ADD_STRING "-dev" #else #define AP_SERVER_ADD_STRING "" #endif +/* APR_STRINGIFY is defined here, and also in apr_general.h, so wrap it */ +#ifndef APR_STRINGIFY +/** Properly quote a value as a string in the C preprocessor */ +#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n) +/** Helper macro for APR_STRINGIFY */ +#define APR_STRINGIFY_HELPER(n) #n +#endif + /* keep old macros as well */ -#define AP_SERVER_MAJORVERSION AP_STRINGIFY(AP_SERVER_MAJORVERSION_NUMBER) -#define AP_SERVER_MINORVERSION AP_STRINGIFY(AP_SERVER_MINORVERSION_NUMBER) -#define AP_SERVER_PATCHLEVEL AP_STRINGIFY(AP_SERVER_PATCHLEVEL_NUMBER) \ +#define AP_SERVER_MAJORVERSION APR_STRINGIFY(AP_SERVER_MAJORVERSION_NUMBER) +#define AP_SERVER_MINORVERSION APR_STRINGIFY(AP_SERVER_MINORVERSION_NUMBER) +#define AP_SERVER_PATCHLEVEL APR_STRINGIFY(AP_SERVER_PATCHLEVEL_NUMBER) \ AP_SERVER_ADD_STRING #define AP_SERVER_MINORREVISION AP_SERVER_MAJORVERSION "." AP_SERVER_MINORVERSION diff --git a/include/http_config.h b/include/http_config.h index 483cae56d22..5e9fd51d0d5 100644 --- a/include/http_config.h +++ b/include/http_config.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file http_config.h + * @brief Apache Configuration + * + * @defgroup APACHE_CORE_CONFIG Configuration + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_HTTP_CONFIG_H #define APACHE_HTTP_CONFIG_H @@ -24,11 +33,6 @@ extern "C" { #endif -/** - * @file http_config.h - * @brief Apache Configuration - */ - /* * The central data structures around here... */ @@ -694,7 +698,7 @@ AP_DECLARE(const char *) ap_walk_config(ap_directive_t *conftree, ap_conf_vector_t *section_vector); /** - * @defgroup ap_check_cmd_context ap_check_cmd_context + * @defgroup ap_check_cmd_context Check command context * @{ */ /** @@ -721,7 +725,7 @@ AP_DECLARE(const char *) ap_check_cmd_context(cmd_parms *cmd, #ifdef CORE_PRIVATE /** - * This structure is used to assign symbol names to module pointers + * @brief This structure is used to assign symbol names to module pointers */ typedef struct { const char *name; @@ -1049,3 +1053,4 @@ AP_DECLARE_HOOK(void,optional_fn_retrieve,(void)) #endif #endif /* !APACHE_HTTP_CONFIG_H */ +/** @} */ diff --git a/include/http_connection.h b/include/http_connection.h index 8ade757b1dc..fdd2e535d8c 100644 --- a/include/http_connection.h +++ b/include/http_connection.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file http_connection.h + * @brief Apache connection library + * + * @defgroup APACHE_CORE_CONNECTION Connection Library + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_HTTP_CONNECTION_H #define APACHE_HTTP_CONNECTION_H @@ -24,10 +33,11 @@ #ifdef __cplusplus extern "C" { #endif - /** - * @package Apache connection library + * @file http_connection.h + * @brief Apache connection library */ + #ifdef CORE_PRIVATE /** * This is the protocol module driver. This calls all of the @@ -36,10 +46,13 @@ extern "C" { * @param csd The mechanism on which this connection is to be read. * Most times this will be a socket, but it is up to the module * that accepts the request to determine the exact type. - * @deffunc void ap_process_connection(conn_rec *c, void *csd) */ AP_CORE_DECLARE(void) ap_process_connection(conn_rec *c, void *csd); +/** + * Flushes all remain data in the client send buffer + * @param c The connection to flush + */ AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c); /** @@ -70,10 +83,12 @@ AP_DECLARE(void) ap_lingering_close(conn_rec *c); * if it encounters a fatal error condition. * * @param p The pool from which to allocate the connection record + * @param server The server record to create the connection too. * @param csd The socket that has been accepted * @param conn_id A unique identifier for this connection. The ID only * needs to be unique at that time, not forever. * @param sbh A handle to scoreboard information for this connection. + * @param alloc The bucket allocator to use for all bucket/brigade creations * @return An allocated connection record or NULL. */ AP_DECLARE_HOOK(conn_rec *, create_connection, @@ -89,7 +104,6 @@ AP_DECLARE_HOOK(conn_rec *, create_connection, * Most times this will be a socket, but it is up to the module * that accepts the request to determine the exact type. * @return OK or DECLINED - * @deffunc int ap_run_pre_connection(conn_rec *c, void *csd) */ AP_DECLARE_HOOK(int,pre_connection,(conn_rec *c, void *csd)) @@ -100,12 +114,10 @@ AP_DECLARE_HOOK(int,pre_connection,(conn_rec *c, void *csd)) * to handle the request is the last module run. * @param c The connection on which the request has been received. * @return OK or DECLINED - * @deffunc int ap_run_process_connection(conn_rec *c) */ AP_DECLARE_HOOK(int,process_connection,(conn_rec *c)) -/* End Of Connection (EOC) bucket */ - +/** End Of Connection (EOC) bucket */ AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc; /** @@ -119,7 +131,6 @@ AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc; * Make the bucket passed in an End Of Connection (EOC) bucket * @param b The bucket to make into an EOC bucket * @return The new bucket, or NULL if allocation failed - * @deffunc apr_bucket *ap_bucket_eoc_make(apr_bucket *b) */ AP_DECLARE(apr_bucket *) ap_bucket_eoc_make(apr_bucket *b); @@ -128,7 +139,6 @@ AP_DECLARE(apr_bucket *) ap_bucket_eoc_make(apr_bucket *b); * that the connection will be closed. * @param list The freelist from which this bucket should be allocated * @return The new bucket, or NULL if allocation failed - * @deffunc apr_bucket *ap_bucket_eoc_create(apr_bucket_alloc_t *list) */ AP_DECLARE(apr_bucket *) ap_bucket_eoc_create(apr_bucket_alloc_t *list); @@ -137,3 +147,4 @@ AP_DECLARE(apr_bucket *) ap_bucket_eoc_create(apr_bucket_alloc_t *list); #endif #endif /* !APACHE_HTTP_REQUEST_H */ +/** @} */ diff --git a/include/http_core.h b/include/http_core.h index d25f93c9765..4a85db67323 100644 --- a/include/http_core.h +++ b/include/http_core.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file http_core.h + * @brief CORE HTTP Daemon + * + * @defgroup APACHE_CORE_HTTPD Core HTTP Daemon + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_HTTP_CORE_H #define APACHE_HTTP_CORE_H @@ -32,10 +41,6 @@ extern "C" { #endif -/** - * @package CORE HTTP Daemon - */ - /* **************************************************************** * * The most basic server code is encapsulated in a single module @@ -48,61 +53,101 @@ extern "C" { * of one of them (allow_options). */ +/** + * @defgroup APACHE_CORE_HTTPD_ACESSORS Acessors + * + * @brief File/Directory Accessor directives + * + * @{ + */ + +/** No directives */ #define OPT_NONE 0 +/** Indexes directive */ #define OPT_INDEXES 1 +/** SSI is enabled without exec= permission */ #define OPT_INCLUDES 2 +/** FollowSymLinks directive */ #define OPT_SYM_LINKS 4 +/** ExecCGI directive */ #define OPT_EXECCGI 8 +/** directive unset */ #define OPT_UNSET 16 +/** IncludesNOEXEC directive */ #define OPT_INCNOEXEC 32 +/** SymLinksIfOwnerMatch directive */ #define OPT_SYM_OWNER 64 +/** MultiViews directive */ #define OPT_MULTI 128 -#define OPT_ALL (OPT_INDEXES|OPT_INCLUDES|OPT_SYM_LINKS|OPT_EXECCGI) +/** All directives */ +#define OPT_ALL (OPT_INDEXES|OPT_INCLUDES|OPT_INCNOEXEC|OPT_SYM_LINKS|OPT_EXECCGI) +/** @} */ -/* options for get_remote_host() */ -/* REMOTE_HOST returns the hostname, or NULL if the hostname +#ifdef CORE_PRIVATE +/* For internal use only - since 2.2.12, the OPT_INCNOEXEC bit is + * internally replaced by OPT_INC_WITH_EXEC. The internal semantics + * of the two SSI-related bits are hence: + * + * OPT_INCLUDES => "enable SSI, without exec= permission" + * OPT_INC_WITH_EXEC => "iff OPT_INCLUDES is set, also enable exec=" + * + * The set of options exposed via ap_allow_options() retains the + * semantics of OPT_INCNOEXEC by flipping the bit. */ +#define OPT_INC_WITH_EXEC OPT_INCNOEXEC +#endif + +/** + * @defgroup get_remote_host Remote Host Resolution + * @ingroup APACHE_CORE_HTTPD + * @{ + */ +/** REMOTE_HOST returns the hostname, or NULL if the hostname * lookup fails. It will force a DNS lookup according to the * HostnameLookups setting. */ #define REMOTE_HOST (0) -/* REMOTE_NAME returns the hostname, or the dotted quad if the +/** REMOTE_NAME returns the hostname, or the dotted quad if the * hostname lookup fails. It will force a DNS lookup according * to the HostnameLookups setting. */ #define REMOTE_NAME (1) -/* REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is +/** REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is * never forced. */ #define REMOTE_NOLOOKUP (2) -/* REMOTE_DOUBLE_REV will always force a DNS lookup, and also force +/** REMOTE_DOUBLE_REV will always force a DNS lookup, and also force * a double reverse lookup, regardless of the HostnameLookups * setting. The result is the (double reverse checked) hostname, * or NULL if any of the lookups fail. */ #define REMOTE_DOUBLE_REV (3) +/** @} // get_remote_host */ + +/** all of the requirements must be met */ #define SATISFY_ALL 0 +/** any of the requirements must be met */ #define SATISFY_ANY 1 +/** There are no applicable satisfy lines */ #define SATISFY_NOSPEC 2 -/* Make sure we don't write less than 8000 bytes at any one time. +/** Make sure we don't write less than 8000 bytes at any one time. */ #define AP_MIN_BYTES_TO_WRITE 8000 -/* default maximum of internal redirects */ +/** default maximum of internal redirects */ # define AP_DEFAULT_MAX_INTERNAL_REDIRECTS 10 -/* default maximum subrequest nesting level */ +/** default maximum subrequest nesting level */ # define AP_DEFAULT_MAX_SUBREQ_DEPTH 10 /** * Retrieve the value of Options for this request * @param r The current request * @return the Options bitmask - * @deffunc int ap_allow_options(request_rec *r) */ AP_DECLARE(int) ap_allow_options(request_rec *r); @@ -110,7 +155,6 @@ AP_DECLARE(int) ap_allow_options(request_rec *r); * Retrieve the value of the AllowOverride for this request * @param r The current request * @return the overrides bitmask - * @deffunc int ap_allow_overrides(request_rec *r) */ AP_DECLARE(int) ap_allow_overrides(request_rec *r); @@ -118,7 +162,6 @@ AP_DECLARE(int) ap_allow_overrides(request_rec *r); * Retrieve the value of the DefaultType directive, or text/plain if not set * @param r The current request * @return The default type - * @deffunc const char *ap_default_type(request_rec *r) */ AP_DECLARE(const char *) ap_default_type(request_rec *r); @@ -128,12 +171,12 @@ AP_DECLARE(const char *) ap_default_type(request_rec *r); * @warning Don't use this! If your request went through a Userdir, or * something like that, it'll screw you. But it's back-compatible... * @return The document root - * @deffunc const char *ap_document_root(request_rec *r) */ AP_DECLARE(const char *) ap_document_root(request_rec *r); /** * Lookup the remote client's DNS name or IP address + * @ingroup get_remote_host * @param conn The current connection * @param dir_config The directory config vector from the request * @param type The type of lookup to perform. One of: @@ -154,7 +197,6 @@ AP_DECLARE(const char *) ap_document_root(request_rec *r); * @param str_is_ip unless NULL is passed, this will be set to non-zero on output when an IP address * string is returned * @return The remote hostname - * @deffunc const char *ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip) */ AP_DECLARE(const char *) ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip); @@ -163,7 +205,6 @@ AP_DECLARE(const char *) ap_get_remote_host(conn_rec *conn, void *dir_config, in * determined * @param r The current request * @return The user logged in to the client machine - * @deffunc const char *ap_get_remote_logname(request_rec *r) */ AP_DECLARE(const char *) ap_get_remote_logname(request_rec *r); @@ -176,7 +217,6 @@ AP_DECLARE(const char *) ap_get_remote_logname(request_rec *r); * @param uri The path to the requested file * @param r The current request * @return A fully qualified URL - * @deffunc char *ap_construct_url(apr_pool_t *p, const char *uri, request_rec *r) */ AP_DECLARE(char *) ap_construct_url(apr_pool_t *p, const char *uri, request_rec *r); @@ -184,15 +224,22 @@ AP_DECLARE(char *) ap_construct_url(apr_pool_t *p, const char *uri, request_rec * Get the current server name from the request * @param r The current request * @return the server name - * @deffunc const char *ap_get_server_name(request_rec *r) */ AP_DECLARE(const char *) ap_get_server_name(request_rec *r); +/** + * Get the current server name from the request for the purposes + * of using in a URL. If the server name is an IPv6 literal + * address, it will be returned in URL format (e.g., "[fe80::1]"). + * @param r The current request + * @return the server name + */ +AP_DECLARE(const char *) ap_get_server_name_for_url(request_rec *r); + /** * Get the current server port - * @param The current request + * @param r The current request * @return The server's port - * @deffunc apr_port_t ap_get_server_port(const request_rec *r) */ AP_DECLARE(apr_port_t) ap_get_server_port(const request_rec *r); @@ -200,7 +247,6 @@ AP_DECLARE(apr_port_t) ap_get_server_port(const request_rec *r); * Return the limit on bytes in request msg body * @param r The current request * @return the maximum number of bytes in the request msg body - * @deffunc apr_off_t ap_get_limit_req_body(const request_rec *r) */ AP_DECLARE(apr_off_t) ap_get_limit_req_body(const request_rec *r); @@ -208,7 +254,6 @@ AP_DECLARE(apr_off_t) ap_get_limit_req_body(const request_rec *r); * Return the limit on bytes in XML request msg body * @param r The current request * @return the maximum number of bytes in XML request msg body - * @deffunc size_t ap_get_limit_xml_body(const request_rec *r) */ AP_DECLARE(size_t) ap_get_limit_xml_body(const request_rec *r); @@ -225,7 +270,6 @@ AP_DECLARE(void) ap_custom_response(request_rec *r, int status, const char *stri * Check if the current request is beyond the configured max. number of redirects or subrequests * @param r The current request * @return true (is exceeded) or false - * @deffunc int ap_is_recursion_limit_exceeded(const request_rec *r) */ AP_DECLARE(int) ap_is_recursion_limit_exceeded(const request_rec *r); @@ -233,7 +277,6 @@ AP_DECLARE(int) ap_is_recursion_limit_exceeded(const request_rec *r); * Check for a definition from the server command line * @param name The define to check for * @return 1 if defined, 0 otherwise - * @deffunc int ap_exists_config_define(const char *name) */ AP_DECLARE(int) ap_exists_config_define(const char *name); /* FIXME! See STATUS about how */ @@ -245,9 +288,13 @@ AP_DECLARE_NONSTD(int) ap_core_translate(request_rec *r); * to maintain common state for all of them in the core, and make it * available to the other modules through interfaces. */ + +/** @see require_line */ typedef struct require_line require_line; -/** A structure to keep track of authorization requirements */ +/** + * @brief A structure to keep track of authorization requirements +*/ struct require_line { /** Where the require line is in the config file. */ apr_int64_t method_mask; @@ -259,7 +306,6 @@ struct require_line { * Return the type of authorization required for this request * @param r The current request * @return The authorization required - * @deffunc const char *ap_auth_type(request_rec *r) */ AP_DECLARE(const char *) ap_auth_type(request_rec *r); @@ -267,7 +313,6 @@ AP_DECLARE(const char *) ap_auth_type(request_rec *r); * Return the current Authorization realm * @param r The current request * @return The current authorization realm - * @deffunc const char *ap_auth_name(request_rec *r) */ AP_DECLARE(const char *) ap_auth_name(request_rec *r); @@ -280,7 +325,6 @@ AP_DECLARE(const char *) ap_auth_name(request_rec *r); * SATISFY_ALL -- all of the requirements must be met. * SATISFY_NOSPEC -- There are no applicable satisfy lines * - * @deffunc int ap_satisfies(request_rec *r) */ AP_DECLARE(int) ap_satisfies(request_rec *r); @@ -288,35 +332,34 @@ AP_DECLARE(int) ap_satisfies(request_rec *r); * Retrieve information about all of the requires directives for this request * @param r The current request * @return An array of all requires directives for this request - * @deffunc const apr_array_header_t *ap_requires(request_rec *r) */ AP_DECLARE(const apr_array_header_t *) ap_requires(request_rec *r); #ifdef CORE_PRIVATE -/* +/** * Core is also unlike other modules in being implemented in more than * one file... so, data structures are declared here, even though most of * the code that cares really is in http_core.c. Also, another accessor. */ - AP_DECLARE_DATA extern module core_module; -/* Per-request configuration */ - +/** + * @brief Per-request configuration +*/ typedef struct { - /* bucket brigade used by getline for look-ahead and + /** bucket brigade used by getline for look-ahead and * ap_get_client_block for holding left-over request body */ struct apr_bucket_brigade *bb; - /* an array of per-request working data elements, accessed + /** an array of per-request working data elements, accessed * by ID using ap_get_request_note() * (Use ap_register_request_note() during initialization * to add elements) */ void **notes; - /* There is a script processor installed on the output filter chain, + /** There is a script processor installed on the output filter chain, * so it needs the default_handler to deliver a (script) file into * the chain so it can process it. Normally, default_handler only * serves files on a GET request (assuming the file is actual content), @@ -326,13 +369,13 @@ typedef struct { */ int deliver_script; - /* Custom response strings registered via ap_custom_response(), + /** Custom response strings registered via ap_custom_response(), * or NULL; check per-dir config if nothing found here */ char **response_code_strings; /* from ap_custom_response(), not from * ErrorDocument */ - /* Should addition of charset= be suppressed for this request? + /** Should addition of charset= be suppressed for this request? */ int suppress_charset; } core_request_config; @@ -371,7 +414,6 @@ AP_DECLARE(apr_size_t) ap_register_request_note(void); */ AP_DECLARE(void **) ap_get_request_note(request_rec *r, apr_size_t note_num); -/* Per-directory configuration */ typedef unsigned char allow_options_t; typedef unsigned char overrides_t; @@ -392,6 +434,9 @@ typedef unsigned long etag_components_t; #define ETAG_BACKWARD (ETAG_MTIME | ETAG_INODE | ETAG_SIZE) #define ETAG_ALL (ETAG_MTIME | ETAG_INODE | ETAG_SIZE) +/** + * @brief Server Signature Enumeration + */ typedef enum { srv_sig_unset, srv_sig_off, @@ -399,13 +444,16 @@ typedef enum { srv_sig_withmail } server_signature_e; +/** + * @brief Per-directory configuration + */ typedef struct { - /* path of the directory/regex/etc. see also d_is_fnmatch/absolute below */ + /** path of the directory/regex/etc. see also d_is_fnmatch/absolute below */ char *d; - /* the number of slashes in d */ + /** the number of slashes in d */ unsigned d_components; - /* If (opts & OPT_UNSET) then no absolute assignment to options has + /** If (opts & OPT_UNSET) then no absolute assignment to options has * been made. * invariant: (opts_add & opts_remove) == 0 * Which said another way means that the last relative (options + or -) @@ -523,6 +571,22 @@ typedef struct { unsigned int enable_sendfile : 2; /* files in this dir can be mmap'ed */ unsigned int allow_encoded_slashes : 1; /* URLs may contain %2f w/o being * pitched indiscriminately */ + +#define USE_CANONICAL_PHYS_PORT_OFF (0) +#define USE_CANONICAL_PHYS_PORT_ON (1) +#define USE_CANONICAL_PHYS_PORT_UNSET (2) + unsigned use_canonical_phys_port : 2; + + + unsigned int decode_encoded_slashes : 1; /* whether to decode encoded slashes in URLs */ + +#define AP_MAXRANGES_UNSET -1 +#define AP_MAXRANGES_DEFAULT -2 +#define AP_MAXRANGES_UNLIMITED -3 +#define AP_MAXRANGES_NORANGES 0 + /** Number of Ranges before returning HTTP_OK. **/ + int max_ranges; + } core_dir_config; /* Per-server core configuration */ @@ -558,6 +622,25 @@ typedef struct { #define AP_TRACE_ENABLE 1 #define AP_TRACE_EXTENDED 2 int trace_enable; +#define AP_MERGE_TRAILERS_UNSET 0 +#define AP_MERGE_TRAILERS_ENABLE 1 +#define AP_MERGE_TRAILERS_DISABLE 2 + int merge_trailers; + +#define AP_HTTP09_UNSET 0 +#define AP_HTTP09_ENABLE 1 +#define AP_HTTP09_DISABLE 2 + char http09_enable; + +#define AP_HTTP_CONFORMANCE_UNSET 0 +#define AP_HTTP_CONFORMANCE_UNSAFE 1 +#define AP_HTTP_CONFORMANCE_STRICT 2 + char http_conformance; + +#define AP_HTTP_METHODS_UNSET 0 +#define AP_HTTP_METHODS_LENIENT 1 +#define AP_HTTP_METHODS_REGISTERED 2 + char http_methods; } core_server_config; @@ -574,9 +657,6 @@ AP_CORE_DECLARE(void) ap_add_file_conf(core_dir_config *conf, void *url_config); AP_CORE_DECLARE_NONSTD(const char *) ap_limit_section(cmd_parms *cmd, void *dummy, const char *arg); /* Core filters; not exported. */ -int ap_net_time_filter(ap_filter_t *f, apr_bucket_brigade *b, - ap_input_mode_t mode, apr_read_type_e block, - apr_off_t readbytes); int ap_core_input_filter(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes); @@ -615,7 +695,6 @@ typedef struct { extern AP_DECLARE_DATA ap_filter_rec_t *ap_subreq_core_filter_handle; extern AP_DECLARE_DATA ap_filter_rec_t *ap_core_output_filter_handle; extern AP_DECLARE_DATA ap_filter_rec_t *ap_content_length_filter_handle; -extern AP_DECLARE_DATA ap_filter_rec_t *ap_net_time_filter_handle; extern AP_DECLARE_DATA ap_filter_rec_t *ap_core_input_filter_handle; /** @@ -644,6 +723,9 @@ AP_DECLARE_HOOK(int, get_mgmt_items, APR_DECLARE_OPTIONAL_FN(void, ap_logio_add_bytes_out, (conn_rec *c, apr_off_t bytes)); +APR_DECLARE_OPTIONAL_FN(void, ap_logio_add_bytes_in, + (conn_rec *c, apr_off_t bytes)); + /* ---------------------------------------------------------------------- * * ident lookups with mod_ident @@ -659,3 +741,4 @@ APR_DECLARE_OPTIONAL_FN(const char *, ap_ident_lookup, #endif #endif /* !APACHE_HTTP_CORE_H */ +/** @} */ diff --git a/include/http_log.h b/include/http_log.h index 8912beca0ba..e0c0c29014a 100644 --- a/include/http_log.h +++ b/include/http_log.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file http_log.h + * @brief Apache Logging library + * + * @defgroup APACHE_CORE_LOG Logging library + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_HTTP_LOG_H #define APACHE_HTTP_LOG_H @@ -23,10 +32,6 @@ extern "C" { #include "apr_thread_proc.h" -/** - * @package Apache logging library - */ - #ifdef HAVE_SYSLOG #include @@ -110,7 +115,7 @@ AP_DECLARE(apr_status_t) ap_replace_stderr_log(apr_pool_t *p, * @param plog The pool to allocate the logs from * @param ptemp Pool used for temporary allocations * @param s_main The main server - * @tip ap_open_logs isn't expected to be used by modules, it is + * @note ap_open_logs isn't expected to be used by modules, it is * an internal core function */ int ap_open_logs(apr_pool_t *pconf, apr_pool_t *plog, @@ -123,7 +128,7 @@ int ap_open_logs(apr_pool_t *pconf, apr_pool_t *plog, * processes. * @param p Not used * @param s Not used - * @tip ap_logs_child_init is not for use by modules; it is an + * @note ap_logs_child_init is not for use by modules; it is an * internal core function */ void ap_logs_child_init(apr_pool_t *p, server_rec *s); @@ -151,8 +156,8 @@ void ap_logs_child_init(apr_pool_t *p, server_rec *s); * @param s The server on which we are logging * @param fmt The format string * @param ... The arguments to use to fill out fmt. - * @tip Use APLOG_MARK to fill out file and line - * @tip If a request_rec is available, use that with ap_log_rerror() + * @note Use APLOG_MARK to fill out file and line + * @note If a request_rec is available, use that with ap_log_rerror() * in preference to calling this function. Otherwise, if a conn_rec is * available, use that with ap_log_cerror() in preference to calling * this function. @@ -162,7 +167,6 @@ void ap_logs_child_init(apr_pool_t *p, server_rec *s); * denial-of-service attack and other messy behavior. Instead, use a * simple format string like "%s", followed by the string containing the * untrusted data. - * @deffunc void ap_log_error(const char *file, int line, int level, apr_status_t status, const server_rec *s, const char *fmt, ...) */ AP_DECLARE(void) ap_log_error(const char *file, int line, int level, apr_status_t status, const server_rec *s, @@ -180,14 +184,13 @@ AP_DECLARE(void) ap_log_error(const char *file, int line, int level, * @param p The pool which we are logging for * @param fmt The format string * @param ... The arguments to use to fill out fmt. - * @tip Use APLOG_MARK to fill out file and line + * @note Use APLOG_MARK to fill out file and line * @warning It is VERY IMPORTANT that you not include any raw data from * the network, such as the request-URI or request header fields, within * the format string. Doing so makes the server vulnerable to a * denial-of-service attack and other messy behavior. Instead, use a * simple format string like "%s", followed by the string containing the * untrusted data. - * @deffunc void ap_log_perror(const char *file, int line, int level, apr_status_t status, apr_pool_t *p, const char *fmt, ...) */ AP_DECLARE(void) ap_log_perror(const char *file, int line, int level, apr_status_t status, apr_pool_t *p, @@ -205,14 +208,13 @@ AP_DECLARE(void) ap_log_perror(const char *file, int line, int level, * @param r The request which we are logging for * @param fmt The format string * @param ... The arguments to use to fill out fmt. - * @tip Use APLOG_MARK to fill out file and line + * @note Use APLOG_MARK to fill out file and line * @warning It is VERY IMPORTANT that you not include any raw data from * the network, such as the request-URI or request header fields, within * the format string. Doing so makes the server vulnerable to a * denial-of-service attack and other messy behavior. Instead, use a * simple format string like "%s", followed by the string containing the * untrusted data. - * @deffunc void ap_log_rerror(const char *file, int line, int level, apr_status_t status, const request_rec *r, const char *fmt, ...) */ AP_DECLARE(void) ap_log_rerror(const char *file, int line, int level, apr_status_t status, const request_rec *r, @@ -230,8 +232,8 @@ AP_DECLARE(void) ap_log_rerror(const char *file, int line, int level, * @param c The connection which we are logging for * @param fmt The format string * @param ... The arguments to use to fill out fmt. - * @tip Use APLOG_MARK to fill out file and line - * @tip If a request_rec is available, use that with ap_log_rerror() + * @note Use APLOG_MARK to fill out file and line + * @note If a request_rec is available, use that with ap_log_rerror() * in preference to calling this function. * @warning It is VERY IMPORTANT that you not include any raw data from * the network, such as the request-URI or request header fields, within @@ -239,7 +241,6 @@ AP_DECLARE(void) ap_log_rerror(const char *file, int line, int level, * denial-of-service attack and other messy behavior. Instead, use a * simple format string like "%s", followed by the string containing the * untrusted data. - * @deffunc void ap_log_cerror(const char *file, int line, int level, apr_status_t status, const conn_rec *c, const char *fmt, ...) */ AP_DECLARE(void) ap_log_cerror(const char *file, int line, int level, apr_status_t status, const conn_rec *c, @@ -249,7 +250,6 @@ AP_DECLARE(void) ap_log_cerror(const char *file, int line, int level, /** * Convert stderr to the error log * @param s The current server - * @deffunc void ap_error_log2stderr(server_rec *s) */ AP_DECLARE(void) ap_error_log2stderr(server_rec *s); @@ -268,11 +268,14 @@ AP_DECLARE(void) ap_log_pid(apr_pool_t *p, const char *fname); */ AP_DECLARE(apr_status_t) ap_read_pid(apr_pool_t *p, const char *filename, pid_t *mypid); +/** @see piped_log */ typedef struct piped_log piped_log; /** - * The piped logging structure. Piped logs are used to move functionality - * out of the main server. For example, log rotation is done with piped logs. + * @brief The piped logging structure. + * + * Piped logs are used to move functionality out of the main server. + * For example, log rotation is done with piped logs. */ struct piped_log { /** The pool to use for the piped log */ @@ -286,6 +289,8 @@ struct piped_log { char *program; /** The pid of the logging process */ apr_proc_t *pid; + /** How to reinvoke program when it must be replaced */ + apr_cmdtype_e cmdtype; #endif }; @@ -294,14 +299,25 @@ struct piped_log { * @param p The pool to allocate out of * @param program The program to run in the logging process * @return The piped log structure - * @deffunc piped_log *ap_open_piped_log(apr_pool_t *p, const char *program) + * @tip The log program is invoked as APR_SHELLCMD_ENV, + * @see ap_open_piped_log_ex to modify this behavior */ AP_DECLARE(piped_log *) ap_open_piped_log(apr_pool_t *p, const char *program); +/** + * Open the piped log process specifying the execution choice for program + * @param p The pool to allocate out of + * @param program The program to run in the logging process + * @param cmdtype How to invoke program, e.g. APR_PROGRAM, APR_SHELLCMD_ENV, etc + * @return The piped log structure + */ +AP_DECLARE(piped_log *) ap_open_piped_log_ex(apr_pool_t *p, + const char *program, + apr_cmdtype_e cmdtype); + /** * Close the piped log and kill the logging process * @param pl The piped log structure - * @deffunc void ap_close_piped_log(piped_log *pl) */ AP_DECLARE(void) ap_close_piped_log(piped_log *pl); @@ -309,7 +325,6 @@ AP_DECLARE(void) ap_close_piped_log(piped_log *pl); * A macro to access the read side of the piped log pipe * @param pl The piped log structure * @return The native file descriptor - * @deffunc ap_piped_log_read_fd(pl) */ #define ap_piped_log_read_fd(pl) ((pl)->fds[0]) @@ -317,10 +332,21 @@ AP_DECLARE(void) ap_close_piped_log(piped_log *pl); * A macro to access the write side of the piped log pipe * @param pl The piped log structure * @return The native file descriptor - * @deffunc ap_piped_log_read_fd(pl) */ #define ap_piped_log_write_fd(pl) ((pl)->fds[1]) +/** + * hook method to log error messages + * @ingroup hooks + * @param file The file in which this function is called + * @param line The line number on which this function is called + * @param level The level of this error message + * @param status The status code from the previous command + * @param s The server which we are logging for + * @param r The request which we are logging for + * @param pool Memory pool to allocate from + * @param errstr message to log + */ AP_DECLARE_HOOK(void, error_log, (const char *file, int line, int level, apr_status_t status, const server_rec *s, const request_rec *r, apr_pool_t *pool, @@ -331,3 +357,4 @@ AP_DECLARE_HOOK(void, error_log, (const char *file, int line, int level, #endif #endif /* !APACHE_HTTP_LOG_H */ +/** @} */ diff --git a/include/http_main.h b/include/http_main.h index fcd6236dcfd..15e32b55aa4 100644 --- a/include/http_main.h +++ b/include/http_main.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,25 +14,30 @@ * limitations under the License. */ +/** + * @file http_main.h + * @brief Command line options + * + * @defgroup APACHE_CORE_MAIN Command line options + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_HTTP_MAIN_H #define APACHE_HTTP_MAIN_H #include "apr_optional.h" -/* AP_SERVER_BASEARGS is the command argument list parsed by http_main.c +/** AP_SERVER_BASEARGS is the command argument list parsed by http_main.c * in apr_getopt() format. Use this for default'ing args that the MPM * can safely ignore and pass on from its rewrite_args() handler. */ -#define AP_SERVER_BASEARGS "C:c:D:d:E:e:f:vVlLtSMh?X" +#define AP_SERVER_BASEARGS "C:c:D:d:E:e:f:vVlLtTSMh?X" #ifdef __cplusplus extern "C" { #endif -/** - * @package Command line options - */ - /** The name of the Apache executable */ AP_DECLARE_DATA extern const char *ap_server_argv0; /** The global server's ServerRoot */ @@ -48,7 +53,16 @@ AP_DECLARE_DATA extern apr_array_header_t *ap_server_post_read_config; /** An array of all -D defines on the command line. This allows people to * effect the server based on command line options */ AP_DECLARE_DATA extern apr_array_header_t *ap_server_config_defines; +/** Available integer for using the -T switch */ +AP_DECLARE_DATA extern int ap_document_root_check; +/** + * An optional function to send signal to server on presence of '-k' + * command line argument. + * Called if MPM defines AP_MPM_WANT_SIGNAL_SERVER + * @param status The exit status after sending signal + * @param pool Memory pool to allocate from + */ APR_DECLARE_OPTIONAL_FN(int, ap_signal_server, (int *, apr_pool_t *)); #ifdef __cplusplus @@ -56,3 +70,4 @@ APR_DECLARE_OPTIONAL_FN(int, ap_signal_server, (int *, apr_pool_t *)); #endif #endif /* !APACHE_HTTP_MAIN_H */ +/** @} */ diff --git a/include/http_protocol.h b/include/http_protocol.h index 405ff2415aa..3fed9b2566b 100644 --- a/include/http_protocol.h +++ b/include/http_protocol.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file http_protocol.h + * @brief HTTP protocol handling + * + * @defgroup APACHE_CORE_PROTO HTTP Protocol Handling + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_HTTP_PROTOCOL_H #define APACHE_HTTP_PROTOCOL_H @@ -28,10 +37,6 @@ extern "C" { #endif -/** - * @package HTTP protocol handling - */ - /** * This hook allows modules to insert filters for the current error response * @param r the current request @@ -39,7 +44,7 @@ extern "C" { */ AP_DECLARE_HOOK(void,insert_error_filter,(request_rec *r)) -/* This is an optimization. We keep a record of the filter_rec that +/** This is an optimization. We keep a record of the filter_rec that * stores the old_write filter, so that we can avoid strcmp's later. */ AP_DECLARE_DATA extern ap_filter_rec_t *ap_old_write_func; @@ -77,7 +82,6 @@ AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r, * Called at completion of sending the response. It sends the terminating * protocol information. * @param r The current request - * @deffunc void ap_finalize_request_protocol(request_rec *r) */ AP_DECLARE(void) ap_finalize_request_protocol(request_rec *r); @@ -89,7 +93,6 @@ AP_DECLARE(void) ap_finalize_request_protocol(request_rec *r); * to handle some other error. In that case, we print the default * report for the first thing that went wrong, and more briefly report * on the problem with the ErrorDocument. - * @deffunc void ap_send_error_response(request_rec *r, int recursive_error) */ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error); @@ -104,7 +107,6 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error); * Set the content length for this request * @param r The current request * @param length The new content length - * @deffunc void ap_set_content_length(request_rec *r, apr_off_t length) */ AP_DECLARE(void) ap_set_content_length(request_rec *r, apr_off_t length); @@ -112,7 +114,6 @@ AP_DECLARE(void) ap_set_content_length(request_rec *r, apr_off_t length); * Set the keepalive status for this request * @param r The current request * @return 1 if keepalive can be set, 0 otherwise - * @deffunc int ap_set_keepalive(request_rec *r) */ AP_DECLARE(int) ap_set_keepalive(request_rec *r); @@ -122,7 +123,6 @@ AP_DECLARE(int) ap_set_keepalive(request_rec *r); * @param r The current request * @param mtime The last modified time * @return the latest rational time. - * @deffunc apr_time_t ap_rationalize_mtime(request_rec *r, apr_time_t mtime) */ AP_DECLARE(apr_time_t) ap_rationalize_mtime(request_rec *r, apr_time_t mtime); @@ -134,8 +134,8 @@ AP_DECLARE(apr_time_t) ap_rationalize_mtime(request_rec *r, apr_time_t mtime); * - then, if there are no parameters on type, add the default charset * - return type * @param r The current request + * @param type The content type * @return The content-type - * @deffunc const char *ap_make_content_type(request_rec *r, const char *type); */ AP_DECLARE(const char *) ap_make_content_type(request_rec *r, const char *type); @@ -143,8 +143,7 @@ AP_DECLARE(const char *) ap_make_content_type(request_rec *r, #ifdef CORE_PRIVATE /** * Precompile metadata structures used by ap_make_content_type() - * @param r The pool to use for allocations - * @deffunc void ap_setup_make_content_type(apr_pool_t *pool) + * @param pool The pool to use for allocations */ AP_DECLARE(void) ap_setup_make_content_type(apr_pool_t *pool); #endif /* CORE_PRIVATE */ @@ -156,21 +155,18 @@ AP_DECLARE(void) ap_setup_make_content_type(apr_pool_t *pool); * @param force_weak Force the entity tag to be weak - it could be modified * again in as short an interval. * @return The entity tag - * @deffunc char *ap_make_etag(request_rec *r, int force_weak) */ AP_DECLARE(char *) ap_make_etag(request_rec *r, int force_weak); /** * Set the E-tag outgoing header - * @param The current request - * @deffunc void ap_set_etag(request_rec *r) + * @param r The current request */ AP_DECLARE(void) ap_set_etag(request_rec *r); /** * Set the last modified time for the file being sent * @param r The current request - * @deffunc void ap_set_last_modified(request_rec *r) */ AP_DECLARE(void) ap_set_last_modified(request_rec *r); @@ -181,7 +177,6 @@ AP_DECLARE(void) ap_set_last_modified(request_rec *r); * @param r The current request * @return OK if the response fulfills the condition GET rules, some * other status code otherwise - * @deffunc int ap_meets_conditions(request_rec *r) */ AP_DECLARE(int) ap_meets_conditions(request_rec *r); @@ -204,7 +199,6 @@ AP_DECLARE(int) ap_meets_conditions(request_rec *r); * @param offset Offset into the file to start sending. * @param length Amount of data to send * @param nbytes Amount of data actually sent - * @deffunc apr_status_t ap_send_fd(apr_file_t *fd, request_rec *r, apr_off_t offset, apr_size_t length, apr_size_t *nbytes); */ AP_DECLARE(apr_status_t) ap_send_fd(apr_file_t *fd, request_rec *r, apr_off_t offset, apr_size_t length, apr_size_t *nbytes); @@ -217,7 +211,6 @@ AP_DECLARE(apr_status_t) ap_send_fd(apr_file_t *fd, request_rec *r, apr_off_t of * @param offset The offset into the MMAP to start sending * @param length The amount of data to send * @return The number of bytes sent - * @deffunc size_t ap_send_mmap(apr_mmap_t *mm, request_rec *r, size_t offset, size_t length) */ AP_DECLARE(size_t) ap_send_mmap(apr_mmap_t *mm, request_rec *r, size_t offset, size_t length); @@ -241,7 +234,7 @@ AP_DECLARE(int) ap_method_register(apr_pool_t *p, const char *methname); */ AP_DECLARE(void) ap_method_registry_init(apr_pool_t *p); -/* +/** * This is a convenience macro to ease with checking a mask * against a method name. */ @@ -256,9 +249,16 @@ AP_DECLARE(void) ap_method_registry_init(apr_pool_t *p); * allocated. * @param nelts Number of preallocated extension slots * @return Pointer to the newly created structure. - * @deffunc ap_method_list_t ap_make_method_list(apr_pool_t *p, int nelts) */ AP_DECLARE(ap_method_list_t *) ap_make_method_list(apr_pool_t *p, int nelts); + + +/** + * Copy a method list + * + * @param dest List to copy to + * @param src List to copy from + */ AP_DECLARE(void) ap_copy_method_list(ap_method_list_t *dest, ap_method_list_t *src); @@ -269,7 +269,6 @@ AP_DECLARE(void) ap_copy_method_list(ap_method_list_t *dest, * @param method String containing the name of the method to check. * @param l Pointer to a method list, such as cmd->methods_limited. * @return 1 if method is in the list, otherwise 0 - * @deffunc int ap_method_in_list(const char *method, ap_method_list_t *l) */ AP_DECLARE(int) ap_method_in_list(ap_method_list_t *l, const char *method); @@ -280,7 +279,6 @@ AP_DECLARE(int) ap_method_in_list(ap_method_list_t *l, const char *method); * @param method String containing the name of the method to check. * @param l Pointer to a method list, such as cmd->methods_limited. * @return None. - * @deffunc void ap_method_in_list(ap_method_list_t *l, const char *method) */ AP_DECLARE(void) ap_method_list_add(ap_method_list_t *l, const char *method); @@ -290,7 +288,6 @@ AP_DECLARE(void) ap_method_list_add(ap_method_list_t *l, const char *method); * @param l Pointer to a method list, such as cmd->methods_limited. * @param method String containing the name of the method to remove. * @return None. - * @deffunc void ap_method_list_remove(ap_method_list_t *l, const char *method) */ AP_DECLARE(void) ap_method_list_remove(ap_method_list_t *l, const char *method); @@ -300,7 +297,6 @@ AP_DECLARE(void) ap_method_list_remove(ap_method_list_t *l, * * @param l Pointer to a method list, such as cmd->methods_limited. * @return None. - * @deffunc void ap_clear_method_list(ap_method_list_t *l) */ AP_DECLARE(void) ap_clear_method_list(ap_method_list_t *l); @@ -308,12 +304,18 @@ AP_DECLARE(void) ap_clear_method_list(ap_method_list_t *l); * Set the content type for this request (r->content_type). * @param r The current request * @param ct The new content type - * @deffunc void ap_set_content_type(request_rec *r, const char* ct) * @warning This function must be called to set r->content_type in order * for the AddOutputFilterByType directive to work correctly. */ AP_DECLARE(void) ap_set_content_type(request_rec *r, const char *ct); +/** + * Set the Accept-Ranges header for this response + * @param r The current request + */ +AP_DECLARE(void) ap_set_accept_ranges(request_rec *r); + + /* Hmmm... could macrofy these for now, and maybe forever, though the * definitions of the macros would get a whole lot hairier. */ @@ -323,7 +325,6 @@ AP_DECLARE(void) ap_set_content_type(request_rec *r, const char *ct); * @param c the character to output * @param r the current request * @return The number of bytes sent - * @deffunc int ap_rputc(int c, request_rec *r) */ AP_DECLARE(int) ap_rputc(int c, request_rec *r); @@ -332,7 +333,6 @@ AP_DECLARE(int) ap_rputc(int c, request_rec *r); * @param str The string to output * @param r The current request * @return The number of bytes sent - * @deffunc int ap_rputs(const char *str, request_rec *r) */ AP_DECLARE(int) ap_rputs(const char *str, request_rec *r); @@ -342,7 +342,6 @@ AP_DECLARE(int) ap_rputs(const char *str, request_rec *r); * @param nbyte The number of bytes to send from the buffer * @param r The current request * @return The number of bytes sent - * @deffunc int ap_rwrite(const void *buf, int nbyte, request_rec *r) */ AP_DECLARE(int) ap_rwrite(const void *buf, int nbyte, request_rec *r); @@ -351,7 +350,6 @@ AP_DECLARE(int) ap_rwrite(const void *buf, int nbyte, request_rec *r); * @param r The current request * @param ... The strings to write * @return The number of bytes sent - * @deffunc int ap_rvputs(request_rec *r, ...) */ AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r,...); @@ -361,7 +359,6 @@ AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r,...); * @param fmt The format string * @param vlist The arguments to use to fill out the format string * @return The number of bytes sent - * @deffunc int ap_vrprintf(request_rec *r, const char *fmt, va_list vlist) */ AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list vlist); @@ -371,15 +368,14 @@ AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list vlist); * @param fmt The format string * @param ... The arguments to use to fill out the format string * @return The number of bytes sent - * @deffunc int ap_rprintf(request_rec *r, const char *fmt, ...) */ AP_DECLARE_NONSTD(int) ap_rprintf(request_rec *r, const char *fmt,...) __attribute__((format(printf,2,3))); + /** * Flush all of the data for the current request to the client * @param r The current request - * @return The number of bytes sent - * @deffunc int ap_rflush(request_rec *r) + * @return 0 on success, -1 if an error occurred */ AP_DECLARE(int) ap_rflush(request_rec *r); @@ -388,7 +384,6 @@ AP_DECLARE(int) ap_rflush(request_rec *r); * (only use outside protocol.c is in getting them configured). * @param status HTTP status code * @return The index of the response - * @deffunc int ap_index_of_response(int status) */ AP_DECLARE(int) ap_index_of_response(int status); @@ -398,7 +393,6 @@ AP_DECLARE(int) ap_index_of_response(int status); * passed, "500 Internal Server Error" will be returned. * @param status The HTTP status code * @return The Status-Line - * @deffunc const char *ap_get_status_line(int status) */ AP_DECLARE(const char *) ap_get_status_line(int status); @@ -414,7 +408,6 @@ AP_DECLARE(const char *) ap_get_status_line(int status); * REQUEST_CHUNKED_DECHUNK If chunked, remove the chunks for me. * * @return either OK or an error code - * @deffunc int ap_setup_client_block(request_rec *r, int read_policy) */ AP_DECLARE(int) ap_setup_client_block(request_rec *r, int read_policy); @@ -425,7 +418,6 @@ AP_DECLARE(int) ap_setup_client_block(request_rec *r, int read_policy); * @warning Never call this function more than once. * @param r The current request * @return 0 if there is no message to read, 1 otherwise - * @deffunc int ap_should_client_block(request_rec *r) */ AP_DECLARE(int) ap_should_client_block(request_rec *r); @@ -437,10 +429,26 @@ AP_DECLARE(int) ap_should_client_block(request_rec *r); * @param bufsiz The size of the buffer * @return Number of bytes inserted into the buffer. When done reading, 0 * if EOF, or -1 if there was an error - * @deffunc long ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz) */ AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz); +/* + * Map specific APR codes returned by the filter stack to HTTP error + * codes, or the default status code provided. Use it as follows: + * + * return ap_map_http_request_error(rv, HTTP_BAD_REQUEST); + * + * If the filter has already handled the error, AP_FILTER_ERROR will + * be returned, which is cleanly passed through. + * + * These mappings imply that the filter stack is reading from the + * downstream client, the proxy will map these codes differently. + * @param rv APR status code + * @param status Default HTTP code should the APR code not be recognised + * @return Mapped HTTP status code + */ +AP_DECLARE(int) ap_map_http_request_error(apr_status_t rv, int status); + /** * In HTTP/1.1, any method can have a body. However, most GET handlers * wouldn't know what to do with a request body if they received one. @@ -450,17 +458,14 @@ AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer, apr_size_t bu * as the next request on a persistent connection. * @param r The current request * @return error status if request is malformed, OK otherwise - * @deffunc int ap_discard_request_body(request_rec *r) */ AP_DECLARE(int) ap_discard_request_body(request_rec *r); - /** * Setup the output headers so that the client knows how to authenticate * itself the next time, if an authentication request failed. This function * works for both basic and digest authentication * @param r The current request - * @deffunc void ap_note_auth_failure(request_rec *r) */ AP_DECLARE(void) ap_note_auth_failure(request_rec *r); @@ -469,7 +474,6 @@ AP_DECLARE(void) ap_note_auth_failure(request_rec *r); * itself the next time, if an authentication request failed. This function * works only for basic authentication * @param r The current request - * @deffunc void ap_note_basic_auth_failure(request_rec *r) */ AP_DECLARE(void) ap_note_basic_auth_failure(request_rec *r); @@ -478,12 +482,15 @@ AP_DECLARE(void) ap_note_basic_auth_failure(request_rec *r); * itself the next time, if an authentication request failed. This function * works only for digest authentication * @param r The current request - * @deffunc void ap_note_digest_auth_failure(request_rec *r) */ AP_DECLARE(void) ap_note_digest_auth_failure(request_rec *r); /** - * Get the password from the request headers + * Get the password from the request headers. This function has multiple side + * effects due to its prior use in the old authentication framework. + * ap_get_basic_auth_components() should be preferred. + * + * @deprecated @see ap_get_basic_auth_components * @param r The current request * @param pw The password as set in the headers * @return 0 (OK) if it set the 'pw' argument (and assured @@ -493,35 +500,55 @@ AP_DECLARE(void) ap_note_digest_auth_failure(request_rec *r); * seemed to be in use, or DECLINED if there was authentication but * it wasn't Basic (in which case, the caller should presumably * decline as well). - * @deffunc int ap_get_basic_auth_pw(request_rec *r, const char **pw) */ AP_DECLARE(int) ap_get_basic_auth_pw(request_rec *r, const char **pw); +#define AP_GET_BASIC_AUTH_PW_NOTE "AP_GET_BASIC_AUTH_PW_NOTE" + +/** + * Get the username and/or password from the request's Basic authentication + * headers. Unlike ap_get_basic_auth_pw(), calling this function has no side + * effects on the passed request_rec. + * + * @param r The current request + * @param username If not NULL, set to the username sent by the client + * @param password If not NULL, set to the password sent by the client + * @return APR_SUCCESS if the credentials were successfully parsed and returned; + * APR_EINVAL if there was no authentication header sent or if the + * client was not using the Basic authentication scheme. username and + * password are unchanged on failure. + */ +AP_DECLARE(apr_status_t) ap_get_basic_auth_components(const request_rec *r, + const char **username, + const char **password); + /** * parse_uri: break apart the uri - * @warning Side Effects:
    - *    - sets r->args to rest after '?' (or NULL if no '?')
    - *    - sets r->uri to request uri (without r->args part)
    - *    - sets r->hostname (if not set already) from request (scheme://host:port)
    - * 
    + * @warning Side Effects: + * @li sets r->args to rest after '?' (or NULL if no '?') + * @li sets r->uri to request uri (without r->args part) + * @li sets r->hostname (if not set already) from request (scheme://host:port) * @param r The current request * @param uri The uri to break apart - * @deffunc void ap_parse_uri(request_rec *r, const char *uri) */ AP_CORE_DECLARE(void) ap_parse_uri(request_rec *r, const char *uri); +#define AP_GETLINE_FOLD 1 /* Whether to merge continuation lines */ +#define AP_GETLINE_CRLF 2 /*Whether line ends must be in the form CR LF */ + /** * Get the next line of input for the request * @param s The buffer into which to read the line * @param n The size of the buffer * @param r The request - * @param fold Whether to merge continuation lines + * @param flags Bit flag of multiple parsing options + * AP_GETLINE_FOLD Whether to merge continuation lines + * AP_GETLINE_CRLF Whether line ends must be in the form CR LF * @return The length of the line, if successful * n, if the line is too big to fit in the buffer * -1 for miscellaneous errors - * @deffunc int ap_method_number_of(const char *method) */ -AP_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int fold); +AP_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int flags); /** * Get the next line of input for the request @@ -539,7 +566,9 @@ AP_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int fold); * @param n The size of the buffer * @param read The length of the line. * @param r The request - * @param fold Whether to merge continuation lines + * @param flags Bit flag of multiple parsing options + * AP_GETLINE_FOLD Whether to merge continuation lines + * AP_GETLINE_CRLF Whether line ends must be in the form CR LF * @param bb Working brigade to use when reading buckets * @return APR_SUCCESS, if successful * APR_ENOSPC, if the line is too big to fit in the buffer @@ -548,15 +577,17 @@ AP_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int fold); #if APR_CHARSET_EBCDIC AP_DECLARE(apr_status_t) ap_rgetline(char **s, apr_size_t n, apr_size_t *read, - request_rec *r, int fold, + request_rec *r, int flags, apr_bucket_brigade *bb); #else /* ASCII box */ #define ap_rgetline(s, n, read, r, fold, bb) \ ap_rgetline_core((s), (n), (read), (r), (fold), (bb)) #endif + +/** @see ap_rgetline */ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, apr_size_t *read, - request_rec *r, int fold, + request_rec *r, int flags, apr_bucket_brigade *bb); /** @@ -588,7 +619,6 @@ AP_DECLARE(const char *) ap_method_name_of(apr_pool_t *p, int methnum); * modules to make decisions based upon the input header fields * @param r The current request * @return OK or DECLINED - * @deffunc ap_run_post_read_request(request_rec *r) */ AP_DECLARE_HOOK(int,post_read_request,(request_rec *r)) @@ -597,7 +627,6 @@ AP_DECLARE_HOOK(int,post_read_request,(request_rec *r)) * over and above the normal server things. * @param r The current request * @return OK, DECLINED, or HTTP_... - * @deffunc int ap_run_log_transaction(request_rec *r) */ AP_DECLARE_HOOK(int,log_transaction,(request_rec *r)) @@ -606,7 +635,6 @@ AP_DECLARE_HOOK(int,log_transaction,(request_rec *r)) * allows Apache modules to easily extend the schemes that Apache understands * @param r The current request * @return The http scheme from the request - * @deffunc const char *ap_run_http_scheme(const request_rec *r) */ AP_DECLARE_HOOK(const char *,http_scheme,(const request_rec *r)) @@ -614,14 +642,16 @@ AP_DECLARE_HOOK(const char *,http_scheme,(const request_rec *r)) * Return the default port from the current request * @param r The current request * @return The current port - * @deffunc apr_port_t ap_run_default_port(const request_rec *r) */ AP_DECLARE_HOOK(apr_port_t,default_port,(const request_rec *r)) +/** @see ap_bucket_type_error */ typedef struct ap_bucket_error ap_bucket_error; /** - * A bucket referring to an HTTP error + * @struct ap_bucket_error + * @brief A bucket referring to an HTTP error + * * This bucket can be passed down the filter stack to indicate that an * HTTP error occurred while running a filter. In order for this bucket * to be used successfully, it MUST be sent as the first bucket in the @@ -636,6 +666,7 @@ struct ap_bucket_error { const char *data; }; +/** @see ap_bucket_type_error */ AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_error; /** @@ -652,7 +683,6 @@ AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_error; * @param buf An optional error string to put in the bucket. * @param p A pool to allocate out of. * @return The new bucket, or NULL if allocation failed - * @deffunc apr_bucket *ap_bucket_error_make(apr_bucket *b, int error, const char *buf, apr_pool_t *p) */ AP_DECLARE(apr_bucket *) ap_bucket_error_make(apr_bucket *b, int error, const char *buf, apr_pool_t *p); @@ -664,7 +694,6 @@ AP_DECLARE(apr_bucket *) ap_bucket_error_make(apr_bucket *b, int error, * @param p A pool to allocate the error string out of. * @param list The bucket allocator from which to allocate the bucket * @return The new bucket, or NULL if allocation failed - * @deffunc apr_bucket *ap_bucket_error_create(int error, const char *buf, apr_pool_t *p, apr_bucket_alloc_t *list) */ AP_DECLARE(apr_bucket *) ap_bucket_error_create(int error, const char *buf, apr_pool_t *p, @@ -676,15 +705,30 @@ AP_DECLARE_NONSTD(apr_status_t) ap_content_length_filter(ap_filter_t *, apr_bucket_brigade *); AP_DECLARE_NONSTD(apr_status_t) ap_old_write_filter(ap_filter_t *f, apr_bucket_brigade *b); -/* - * Setting up the protocol fields for subsidiary requests... - * Also, a wrapup function to keep the internal accounting straight. +/** + * Sett up the protocol fields for subsidiary requests + * @param rnew New Sub Request + * @param r current request */ AP_DECLARE(void) ap_set_sub_req_protocol(request_rec *rnew, const request_rec *r); + +/** + * A wrapup function to keep the internal accounting straight. + * Indicates that there is no more content coming. + * @param sub_r Subrequest that is now compete + */ AP_DECLARE(void) ap_finalize_sub_req_protocol(request_rec *sub_r); + +/** + * Send an interim (HTTP 1xx) response immediately. + * @param r The request + * @param send_headers Whether to send&clear headers in r->headers_out + */ +AP_DECLARE(void) ap_send_interim_response(request_rec *r, int send_headers); #ifdef __cplusplus } #endif #endif /* !APACHE_HTTP_PROTOCOL_H */ +/** @} */ diff --git a/include/http_request.h b/include/http_request.h index f5651388e72..f6ff55f116a 100644 --- a/include/http_request.h +++ b/include/http_request.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,25 +14,11 @@ * limitations under the License. */ -#ifndef APACHE_HTTP_REQUEST_H -#define APACHE_HTTP_REQUEST_H - -#include "apr_hooks.h" -#include "util_filter.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define AP_SUBREQ_NO_ARGS 0 -#define AP_SUBREQ_MERGE_ARGS 1 - /** * @file http_request.h * @brief Apache Request library - */ - -/* http_request.c is the code which handles the main line of request + * + * request.c is the code which handles the main line of request * processing, once a request has been read in (finding the right per- * directory configuration, building it if necessary, and calling all * the module dispatch functions in the right order). @@ -52,6 +38,19 @@ extern "C" { * about which was allocated in its apr_pool_t elsewhere before doing this. */ +#ifndef APACHE_HTTP_REQUEST_H +#define APACHE_HTTP_REQUEST_H + +#include "apr_hooks.h" +#include "util_filter.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define AP_SUBREQ_NO_ARGS 0 +#define AP_SUBREQ_MERGE_ARGS 1 + /** * An internal handler used by the ap_process_request, all subrequest mechanisms * and the redirect mechanism. @@ -68,7 +67,6 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r); * @param next_filter The first filter the sub_request should use. If this is * NULL, it defaults to the first filter for the main request * @return The new request record - * @deffunc request_rec * ap_sub_req_lookup_uri(const char *new_uri, const request_rec *r) */ AP_DECLARE(request_rec *) ap_sub_req_lookup_uri(const char *new_uri, const request_rec *r, @@ -82,7 +80,6 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_uri(const char *new_uri, * @param next_filter The first filter the sub_request should use. If this is * NULL, it defaults to the first filter for the main request * @return The new request record - * @deffunc request_rec * ap_sub_req_lookup_file(const char *new_file, const request_rec *r) */ AP_DECLARE(request_rec *) ap_sub_req_lookup_file(const char *new_file, const request_rec *r, @@ -100,8 +97,7 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_file(const char *new_file, * @param next_filter The first filter the sub_request should use. If this is * NULL, it defaults to the first filter for the main request * @return The new request record - * @deffunc request_rec * ap_sub_req_lookup_dirent(apr_finfo_t *finfo, int subtype, const request_rec *r) - * @tip The apr_dir_read flags value APR_FINFO_MIN|APR_FINFO_NAME flag is the + * @note The apr_dir_read flags value APR_FINFO_MIN|APR_FINFO_NAME flag is the * minimum recommended query if the results will be passed to apr_dir_read. * The file info passed must include the name, and must have the same relative * directory as the current request. @@ -119,7 +115,6 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *finfo, * @param next_filter The first filter the sub_request should use. If this is * NULL, it defaults to the first filter for the main request * @return The new request record - * @deffunc request_rec * ap_sub_req_method_uri(const char *method, const char *new_uri, const request_rec *r) */ AP_DECLARE(request_rec *) ap_sub_req_method_uri(const char *method, const char *new_uri, @@ -130,7 +125,7 @@ AP_DECLARE(request_rec *) ap_sub_req_method_uri(const char *method, * has to be inserted at the end of a sub-requests filter stack. * @param f The current filter * @param bb The brigade to filter - * @deffunc apr_status_t ap_sub_req_output_filter(ap_filter_t *f, apr_bucket_brigade *bb) + * @return status code */ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_sub_req_output_filter(ap_filter_t *f, apr_bucket_brigade *bb); @@ -139,14 +134,12 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_sub_req_output_filter(ap_filter_t *f, * Run the handler for the subrequest * @param r The subrequest to run * @return The return code for the subrequest - * @deffunc int ap_run_sub_req(request_rec *r) */ AP_DECLARE(int) ap_run_sub_req(request_rec *r); /** * Free the memory associated with a subrequest * @param r The subrequest to finish - * @deffunc void ap_destroy_sub_req(request_rec *r) */ AP_DECLARE(void) ap_destroy_sub_req(request_rec *r); @@ -160,7 +153,6 @@ AP_DECLARE(void) ap_destroy_sub_req(request_rec *r); * Redirect the current request to some other uri * @param new_uri The URI to replace the current request with * @param r The current request - * @deffunc void ap_internal_redirect(const char *new_uri, request_rec *r) */ AP_DECLARE(void) ap_internal_redirect(const char *new_uri, request_rec *r); @@ -170,7 +162,6 @@ AP_DECLARE(void) ap_internal_redirect(const char *new_uri, request_rec *r); * an internal redirect. * @param new_uri The URI to replace the current request with. * @param r The current request - * @deffunc void ap_internal_redirect_handler(const char *new_uri, request_rec *r) */ AP_DECLARE(void) ap_internal_redirect_handler(const char *new_uri, request_rec *r); @@ -178,8 +169,7 @@ AP_DECLARE(void) ap_internal_redirect_handler(const char *new_uri, request_rec * * Redirect the current request to a sub_req, merging the pools * @param sub_req A subrequest created from this request * @param r The current request - * @deffunc void ap_internal_fast_redirect(request_rec *sub_req, request_rec *r) - * @tip the sub_req's pool will be merged into r's pool, be very careful + * @note the sub_req's pool will be merged into r's pool, be very careful * not to destroy this subrequest, it will be destroyed with the main request! */ AP_DECLARE(void) ap_internal_fast_redirect(request_rec *sub_req, request_rec *r); @@ -189,7 +179,6 @@ AP_DECLARE(void) ap_internal_fast_redirect(request_rec *sub_req, request_rec *r) * is required for the current request * @param r The current request * @return 1 if authentication is required, 0 otherwise - * @deffunc int ap_some_auth_required(request_rec *r) */ AP_DECLARE(int) ap_some_auth_required(request_rec *r); @@ -197,7 +186,6 @@ AP_DECLARE(int) ap_some_auth_required(request_rec *r); * Determine if the current request is the main request or a subrequest * @param r The current request * @return 1 if this is the main request, 0 otherwise - * @deffunc int ap_is_initial_req(request_rec *r) */ AP_DECLARE(int) ap_is_initial_req(request_rec *r); @@ -205,8 +193,7 @@ AP_DECLARE(int) ap_is_initial_req(request_rec *r); * Function to set the r->mtime field to the specified value if it's later * than what's already there. * @param r The current request - * @param dependency_time Time to set the mtime to - * @deffunc void ap_update_mtime(request_rec *r, apr_time_t dependency_mtime) + * @param dependency_mtime Time to set the mtime to */ AP_DECLARE(void) ap_update_mtime(request_rec *r, apr_time_t dependency_mtime); @@ -224,7 +211,6 @@ AP_DECLARE(void) ap_update_mtime(request_rec *r, apr_time_t dependency_mtime); * @param ... A NULL-terminated list of strings, each identifying a * method name to add. * @return None. - * @deffunc void ap_allow_methods(request_rec *r, int reset, ...) */ AP_DECLARE(void) ap_allow_methods(request_rec *r, int reset, ...); @@ -243,7 +229,6 @@ AP_DECLARE(void) ap_allow_methods(request_rec *r, int reset, ...); * defined in httpd.h, terminated with a value of -1 * (e.g., "M_GET, M_POST, M_OPTIONS, -1") * @return None. - * @deffunc void ap_allow_standard_methods(request_rec *r, int reset, ...) */ AP_DECLARE(void) ap_allow_standard_methods(request_rec *r, int reset, ...); @@ -251,13 +236,16 @@ AP_DECLARE(void) ap_allow_standard_methods(request_rec *r, int reset, ...); #define REPLACE_ALLOW 1 #ifdef CORE_PRIVATE -/* Function called by main.c to handle first-level request */ +/** + * Function called by main.c to handle first-level request + * @param r The current request + */ void ap_process_request(request_rec *); + /** * Kill the current request * @param type Why the request is dieing * @param r The current request - * @deffunc void ap_die(int type, request_rec *r) */ AP_DECLARE(void) ap_die(int type, request_rec *r); #endif @@ -284,7 +272,7 @@ AP_DECLARE_HOOK(int,translate_name,(request_rec *r)) /** * This hook allow modules to set the per_dir_config based on their own - * context (such as sections) and responds to contextless requests + * context (such as "" sections) and responds to contextless requests * such as TRACE that need no security or filesystem mapping. * based on the filesystem. * @param r The current request diff --git a/include/http_vhost.h b/include/http_vhost.h index 14594412468..c157c216eb5 100644 --- a/include/http_vhost.h +++ b/include/http_vhost.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file http_vhost.h + * @brief Virtual Host package + * + * @defgroup APACHE_CORE_VHOST Virtual Host Package + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_HTTP_VHOST_H #define APACHE_HTTP_VHOST_H @@ -21,10 +30,6 @@ extern "C" { #endif -/** - * @package Virtual Host package - */ - /** * called before any config is read * @param p Pool to allocate out of @@ -36,19 +41,23 @@ AP_DECLARE(void) ap_init_vhost_config(apr_pool_t *p); * the run-time vhost lookups * @param p The pool to allocate out of * @param main_server The start of the virtual host list - * @deffunc ap_fini_vhost_config(apr_pool_t *p, server_rec *main_server) */ AP_DECLARE(void) ap_fini_vhost_config(apr_pool_t *p, server_rec *main_server); /** - * handle addresses in statement + * handle addresses in "" statement * @param p The pool to allocate out of * @param hostname The hostname in the VirtualHost statement * @param s The list of Virtual Hosts. */ const char *ap_parse_vhost_addrs(apr_pool_t *p, const char *hostname, server_rec *s); -/* handle NameVirtualHost directive */ +/** + * handle NameVirtualHost directive + * @param cmd Command Parameters structure + * @param dummy NOT USED + * @param arg a host of the form "
    [:port]" + */ const char *ap_set_name_virtual_host (cmd_parms *cmd, void *dummy, const char *arg); @@ -97,7 +106,6 @@ AP_DECLARE(void) ap_update_vhost_from_headers(request_rec *r); * @param port The port from the headers * @return return 1 if the host:port matches any of the aliases of r->server, * return 0 otherwise - * @deffunc int ap_matches_request_vhost(request_rec *r, const char *host, apr_port_t port) */ AP_DECLARE(int) ap_matches_request_vhost(request_rec *r, const char *host, apr_port_t port); @@ -107,3 +115,4 @@ AP_DECLARE(int) ap_matches_request_vhost(request_rec *r, const char *host, #endif #endif /* !APACHE_HTTP_VHOST_H */ +/** @} */ diff --git a/include/httpd.h b/include/httpd.h index 761a612b6a3..55da87a0971 100644 --- a/include/httpd.h +++ b/include/httpd.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,14 +14,27 @@ * limitations under the License. */ -#ifndef APACHE_HTTPD_H -#define APACHE_HTTPD_H - /** * @file httpd.h * @brief HTTP Daemon routines + * + * @defgroup APACHE Apache + * + * Top level group of which all other groups are a member + * @{ + * + * @defgroup APACHE_MODS Apache Modules + * Top level group for Apache Modules + * @defgroup APACHE_OS Operating System Specific + * @defgroup APACHE_CORE Apache Core + * @{ + * @defgroup APACHE_CORE_DAEMON HTTP Daemon Routine + * @{ */ +#ifndef APACHE_HTTPD_H +#define APACHE_HTTPD_H + /* XXX - We need to push more stuff to other .h files, or even .c files, to * make this file smaller */ @@ -59,23 +72,24 @@ extern "C" { /* ----------------------------- config dir ------------------------------ */ -/* Define this to be the default server home dir. Most things later in this +/** Define this to be the default server home dir. Most things later in this * file with a relative pathname will have this added. */ #ifndef HTTPD_ROOT #ifdef OS2 -/* Set default for OS/2 file system */ +/** Set default for OS/2 file system */ #define HTTPD_ROOT "/os2httpd" #elif defined(WIN32) -/* Set default for Windows file system */ +/** Set default for Windows file system */ #define HTTPD_ROOT "/apache" #elif defined (BEOS) -/* Set the default for BeOS */ +/** Set the default for BeOS */ #define HTTPD_ROOT "/boot/home/apache" #elif defined (NETWARE) -/* Set the default for NetWare */ +/** Set the default for NetWare */ #define HTTPD_ROOT "/apache" #else +/** Set for all other OSs */ #define HTTPD_ROOT "/usr/local/apache" #endif #endif /* HTTPD_ROOT */ @@ -88,7 +102,8 @@ extern "C" { * */ -/* Default location of documents. Can be overridden by the DocumentRoot +/** + * Default location of documents. Can be overridden by the DocumentRoot * directive. */ #ifndef DOCUMENT_LOCATION @@ -96,19 +111,20 @@ extern "C" { /* Set default for OS/2 file system */ #define DOCUMENT_LOCATION HTTPD_ROOT "/docs" #else +/* Set default for non OS/2 file system */ #define DOCUMENT_LOCATION HTTPD_ROOT "/htdocs" #endif #endif /* DOCUMENT_LOCATION */ -/* Maximum number of dynamically loaded modules */ +/** Maximum number of dynamically loaded modules */ #ifndef DYNAMIC_MODULE_LIMIT #define DYNAMIC_MODULE_LIMIT 128 #endif -/* Default administrator's address */ +/** Default administrator's address */ #define DEFAULT_ADMIN "[no address given]" -/* The name of the log files */ +/** The name of the log files */ #ifndef DEFAULT_ERRORLOG #if defined(OS2) || defined(WIN32) #define DEFAULT_ERRORLOG "logs/error.log" @@ -117,7 +133,7 @@ extern "C" { #endif #endif /* DEFAULT_ERRORLOG */ -/* Define this to be what your per-directory security files are called */ +/** Define this to be what your per-directory security files are called */ #ifndef DEFAULT_ACCESS_FNAME #ifdef OS2 /* Set default for OS/2 file system */ @@ -127,37 +143,40 @@ extern "C" { #endif #endif /* DEFAULT_ACCESS_FNAME */ -/* The name of the server config file */ +/** The name of the server config file */ #ifndef SERVER_CONFIG_FILE #define SERVER_CONFIG_FILE "conf/httpd.conf" #endif -/* The default path for CGI scripts if none is currently set */ +/** The default path for CGI scripts if none is currently set */ #ifndef DEFAULT_PATH #define DEFAULT_PATH "/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin" #endif -/* The path to the suExec wrapper, can be overridden in Configuration */ +/** The path to the suExec wrapper, can be overridden in Configuration */ +#if !defined(NETWARE) && !defined(WIN32) #ifndef SUEXEC_BIN #define SUEXEC_BIN HTTPD_ROOT "/bin/suexec" #endif +#endif -/* The timeout for waiting for messages */ +/** The timeout for waiting for messages */ #ifndef DEFAULT_TIMEOUT #define DEFAULT_TIMEOUT 300 #endif -/* The timeout for waiting for keepalive timeout until next request */ +/** The timeout for waiting for keepalive timeout until next request */ #ifndef DEFAULT_KEEPALIVE_TIMEOUT #define DEFAULT_KEEPALIVE_TIMEOUT 5 #endif -/* The number of requests to entertain per connection */ +/** The number of requests to entertain per connection */ #ifndef DEFAULT_KEEPALIVE #define DEFAULT_KEEPALIVE 100 #endif -/* Limits on the size of various request items. These limits primarily +/* + * Limits on the size of various request items. These limits primarily * exist to prevent simple denial-of-service attacks on a server based * on misuse of the protocol. The recommended values will depend on the * nature of the server resources -- CGI scripts and database backends @@ -167,22 +186,29 @@ extern "C" { * * Internal buffer sizes are two bytes more than the DEFAULT_LIMIT_REQUEST_LINE * and DEFAULT_LIMIT_REQUEST_FIELDSIZE below, which explains the 8190. - * These two limits can be lowered (but not raised) by the server config + * These two limits can be lowered or raised by the server config * directives LimitRequestLine and LimitRequestFieldsize, respectively. * * DEFAULT_LIMIT_REQUEST_FIELDS can be modified or disabled (set = 0) by * the server config directive LimitRequestFields. */ + +/** default limit on bytes in Request-Line (Method+URI+HTTP-version) */ #ifndef DEFAULT_LIMIT_REQUEST_LINE #define DEFAULT_LIMIT_REQUEST_LINE 8190 -#endif /* default limit on bytes in Request-Line (Method+URI+HTTP-version) */ +#endif +/** default limit on bytes in any one header field */ #ifndef DEFAULT_LIMIT_REQUEST_FIELDSIZE #define DEFAULT_LIMIT_REQUEST_FIELDSIZE 8190 -#endif /* default limit on bytes in any one header field */ +#endif +/** default limit on number of request header fields */ #ifndef DEFAULT_LIMIT_REQUEST_FIELDS #define DEFAULT_LIMIT_REQUEST_FIELDS 100 -#endif /* default limit on number of request header fields */ - +#endif +/** default/hard limit on number of leading/trailing empty lines */ +#ifndef DEFAULT_LIMIT_BLANK_LINES +#define DEFAULT_LIMIT_BLANK_LINES 10 +#endif /** * The default default character set name to add if AddDefaultCharset is @@ -213,6 +239,14 @@ extern "C" { #define DEFAULT_CONTENT_TYPE "text/plain" #endif +/** + * NO_CONTENT_TYPE is an alternative DefaultType value that suppresses + * setting any default type when there's no information (e.g. a proxy). + */ +#ifndef NO_CONTENT_TYPE +#define NO_CONTENT_TYPE "none" +#endif + /** The name of the MIME types file */ #ifndef AP_TYPES_CONFIG_FILE #define AP_TYPES_CONFIG_FILE "conf/mime.types" @@ -256,7 +290,6 @@ extern "C" { "xhtml1-frameset.dtd\">" /** Internal representation for a HTTP protocol number, e.g., HTTP/1.1 */ - #define HTTP_VERSION(major,minor) (1000*(major)+(minor)) /** Major part of HTTP protocol */ #define HTTP_VERSION_MAJOR(number) ((number)/1000) @@ -287,8 +320,10 @@ extern "C" { */ #define ap_http_scheme(r) ap_run_http_scheme(r) -/** The default string lengths */ +/** The default string length */ #define MAX_STRING_LEN HUGE_STRING_LEN + +/** The length of a Huge string */ #define HUGE_STRING_LEN 8192 /** The size of the server's internal read-write buffers */ @@ -306,9 +341,9 @@ extern "C" { #define AP_MAX_SENDFILE 16777216 /* 2^24 */ /** - * Special Apache error codes. These are basically used - * in http_main.c so we can keep track of various errors. - * + * MPM child process exit status values + * The MPM parent process may check the status to see if special + * error handling is required. */ /** a normal exit */ #define APEXIT_OK 0x0 @@ -364,14 +399,15 @@ extern "C" { /** * @internal - * modules should not used functions marked AP_CORE_DECLARE + * modules should not use functions marked AP_CORE_DECLARE */ #ifndef AP_CORE_DECLARE # define AP_CORE_DECLARE AP_DECLARE #endif + /** * @internal - * modules should not used functions marked AP_CORE_DECLARE_NONSTD + * modules should not use functions marked AP_CORE_DECLARE_NONSTD */ #ifndef AP_CORE_DECLARE_NONSTD @@ -379,7 +415,7 @@ extern "C" { #endif /** - * The numeric version information is broken out into fields within this + * @brief The numeric version information is broken out into fields within this * structure. */ typedef struct { @@ -398,13 +434,33 @@ typedef struct { AP_DECLARE(void) ap_get_server_revision(ap_version_t *version); /** - * Get the server version string + * Get the server version string, as controlled by the ServerTokens directive * @return The server version string + * @deprecated @see ap_get_server_banner() and ap_get_server_description() */ AP_DECLARE(const char *) ap_get_server_version(void); /** - * Add a component to the version string + * Get the server banner in a form suitable for sending over the + * network, with the level of information controlled by the + * ServerTokens directive. + * @return The server banner + */ +AP_DECLARE(const char *) ap_get_server_banner(void); + +/** + * Get the server description in a form suitable for local displays, + * status reports, or logging. This includes the detailed server + * version and information about some modules. It is not affected + * by the ServerTokens directive. + * @return The server description + */ +AP_DECLARE(const char *) ap_get_server_description(void); + +/** + * Add a component to the server description and banner strings + * (The latter is returned by the deprecated function + * ap_get_server_version().) * @param pconf The pool to allocate the component from * @param component The string to add */ @@ -496,6 +552,8 @@ AP_DECLARE(const char *) ap_get_server_built(void); #define ap_is_HTTP_CLIENT_ERROR(x) (((x) >= 400)&&((x) < 500)) /** is the status code a server error */ #define ap_is_HTTP_SERVER_ERROR(x) (((x) >= 500)&&((x) < 600)) +/** is the status code a (potentially) valid response code? */ +#define ap_is_HTTP_VALID_RESPONSE(x) (((x) >= 100)&&((x) < 600)) /** should the status code drop the connection */ #define ap_status_drops_connection(x) \ @@ -508,33 +566,37 @@ AP_DECLARE(const char *) ap_get_server_built(void); ((x) == HTTP_SERVICE_UNAVAILABLE) || \ ((x) == HTTP_NOT_IMPLEMENTED)) /** @} */ + /** * @defgroup Methods List of Methods recognized by the server + * @ingroup APACHE_CORE_DAEMON * @{ - */ -/** - * Methods recognized (but not necessarily handled) by the server. + * + * @brief Methods recognized (but not necessarily handled) by the server. + * * These constants are used in bit shifting masks of size int, so it is * unsafe to have more methods than bits in an int. HEAD == M_GET. * This list must be tracked by the list in http_protocol.c in routine * ap_method_name_of(). + * */ -#define M_GET 0 /* RFC 2616: HTTP */ + +#define M_GET 0 /** RFC 2616: HTTP */ #define M_PUT 1 /* : */ #define M_POST 2 #define M_DELETE 3 #define M_CONNECT 4 #define M_OPTIONS 5 -#define M_TRACE 6 /* RFC 2616: HTTP */ -#define M_PATCH 7 /* no rfc(!) ### remove this one? */ -#define M_PROPFIND 8 /* RFC 2518: WebDAV */ +#define M_TRACE 6 /** RFC 2616: HTTP */ +#define M_PATCH 7 /** no rfc(!) ### remove this one? */ +#define M_PROPFIND 8 /** RFC 2518: WebDAV */ #define M_PROPPATCH 9 /* : */ #define M_MKCOL 10 #define M_COPY 11 #define M_MOVE 12 #define M_LOCK 13 -#define M_UNLOCK 14 /* RFC 2518: WebDAV */ -#define M_VERSION_CONTROL 15 /* RFC 3253: WebDAV Versioning */ +#define M_UNLOCK 14 /** RFC 2518: WebDAV */ +#define M_VERSION_CONTROL 15 /** RFC 3253: WebDAV Versioning */ #define M_CHECKOUT 16 /* : */ #define M_UNCHECKOUT 17 #define M_CHECKIN 18 @@ -545,7 +607,7 @@ AP_DECLARE(const char *) ap_get_server_built(void); #define M_MKACTIVITY 23 #define M_BASELINE_CONTROL 24 #define M_MERGE 25 -#define M_INVALID 26 /* RFC 3253: WebDAV Versioning */ +#define M_INVALID 26 /** RFC 3253: WebDAV Versioning */ /** * METHODS needs to be equal to the number of bits @@ -560,18 +622,23 @@ AP_DECLARE(const char *) ap_get_server_built(void); /** @} */ +/** @see ap_method_list_t */ +typedef struct ap_method_list_t ap_method_list_t; + /** - * Structure for handling HTTP methods. Methods known to the server are - * accessed via a bitmask shortcut; extension methods are handled by - * an array. + * @struct ap_method_list_t + * @brief Structure for handling HTTP methods. + * + * Methods known to the server are accessed via a bitmask shortcut; + * extension methods are handled by an array. */ -typedef struct ap_method_list_t ap_method_list_t; struct ap_method_list_t { - /* The bitmask used for known methods */ + /** The bitmask used for known methods */ apr_int64_t method_mask; - /* the array used for extension methods */ + /** the array used for extension methods */ apr_array_header_t *method_list; }; + /** * @defgroup module_magic Module Magic mime types * @{ @@ -605,6 +672,8 @@ struct ap_method_list_t { #define LF '\n' #define CRLF "\r\n" #endif /* APR_CHARSET_EBCDIC */ +/** Useful for common code with either platform charset. */ +#define CRLF_ASCII "\015\012" /** * @defgroup values_request_rec_body Possible values for request_rec.read_body @@ -618,10 +687,11 @@ struct ap_method_list_t { #define REQUEST_CHUNKED_ERROR 1 /** If chunked, remove the chunks for me. */ #define REQUEST_CHUNKED_DECHUNK 2 -/** @} */ +/** @} // values_request_rec_body */ /** * @defgroup values_request_rec_used_path_info Possible values for request_rec.used_path_info + * @ingroup APACHE_CORE_DAEMON * @{ * Possible values for request_rec.used_path_info: */ @@ -632,7 +702,9 @@ struct ap_method_list_t { #define AP_REQ_REJECT_PATH_INFO 1 /** Module may chose to use the given path_info */ #define AP_REQ_DEFAULT_PATH_INFO 2 -/** @} */ + +/** @} // values_request_rec_used_path_info */ + /* * Things which may vary per file-lookup WITHIN a request --- @@ -649,7 +721,7 @@ struct ap_method_list_t { */ /** - * This represents the result of calling htaccess; these are cached for + * @brief This represents the result of calling htaccess; these are cached for * each request. */ struct htaccess_result { @@ -688,7 +760,9 @@ typedef struct conn_state_t conn_state_t; /* This comes after we have defined the request_rec type */ #include "apr_uri.h" -/** A structure that represents one process */ +/** + * @brief A structure that represents one process + */ struct process_rec { /** Global pool. Cleared upon normal exit */ apr_pool_t *pool; @@ -702,7 +776,9 @@ struct process_rec { const char *short_name; }; -/** A structure that represents the current request */ +/** + * @brief A structure that represents the current request + */ struct request_rec { /** The pool associated with the request */ apr_pool_t *pool; @@ -870,7 +946,7 @@ struct request_rec { /** The URI without any parsing performed */ char *unparsed_uri; - /** The path portion of the URI */ + /** The path portion of the URI, or "/" if no path provided */ char *uri; /** The filename on disk corresponding to this response */ char *filename; @@ -934,6 +1010,11 @@ struct request_rec { * record to improve 64bit alignment the next time we need to break * binary compatibility for some other reason. */ + + /** MIME trailer environment from the request */ + apr_table_t *trailers_in; + /** MIME trailer environment from the response */ + apr_table_t *trailers_out; }; /** @@ -953,13 +1034,18 @@ struct request_rec { /* @} */ +/** + * @brief Enumeration of connection keepalive options + */ typedef enum { AP_CONN_UNKNOWN, AP_CONN_CLOSE, AP_CONN_KEEPALIVE } ap_conn_keepalive_e; -/** Structure to store things which are per connection */ +/** + * @brief Structure to store things which are per connection + */ struct conn_rec { /** Pool associated with this connection */ apr_pool_t *pool; @@ -1023,21 +1109,39 @@ struct conn_rec { conn_state_t *cs; /** Is there data pending in the input filters? */ int data_in_input_filters; + + /** Are there any filters that clogg/buffer the input stream, breaking + * the event mpm. + */ + int clogging_input_filters; }; +/** + * Enumeration of connection states + */ typedef enum { CONN_STATE_CHECK_REQUEST_LINE_READABLE, CONN_STATE_READ_REQUEST_LINE, - CONN_STATE_LINGER, + CONN_STATE_LINGER } conn_state_e; +/** + * @brief A structure to contain connection state information + */ struct conn_state_t { - APR_RING_ENTRY(conn_state_t) timeout_list; - apr_time_t expiration_time; + /** APR_RING of expiration timeouts */ + APR_RING_ENTRY(conn_state_t) timeout_list; + /** the expiration time of the next keepalive timeout */ + apr_time_t expiration_time; + /** Current state of the connection */ conn_state_e state; + /** connection record this struct refers to */ conn_rec *c; + /** memory pool to allocate from */ apr_pool_t *p; + /** bucket allocator */ apr_bucket_alloc_t *bucket_alloc; + /** poll file decriptor information */ apr_pollfd_t pfd; }; @@ -1050,7 +1154,10 @@ struct conn_state_t { #define DEFAULT_VHOST_ADDR 0xfffffffful -/** A structure to be used for Per-vhost config */ +/** + * @struct server_addr_rec + * @brief A structure to be used for Per-vhost config + */ typedef struct server_addr_rec server_addr_rec; struct server_addr_rec { /** The next server in the list */ @@ -1059,11 +1166,13 @@ struct server_addr_rec { apr_sockaddr_t *host_addr; /** The bound port, for this server */ apr_port_t host_port; - /** The name given in */ + /** The name given in "" */ char *virthost; }; -/** A structure to store information for each virtual server */ +/** + * @brief A structure to store information for each virtual server + */ struct server_rec { /** The process this server is running in */ process_rec *process; @@ -1132,13 +1241,17 @@ struct server_rec { int limit_req_fieldsize; /** limit on number of request header fields */ int limit_req_fields; + + /** The server request scheme for redirect responses */ + const char *server_scheme; }; typedef struct core_output_filter_ctx { apr_bucket_brigade *b; - apr_pool_t *deferred_write_pool; /* subpool of c->pool used for resources - * which may outlive the request - */ + /** subpool of c->pool used for resources + * which may outlive the request + */ + apr_pool_t *deferred_write_pool; } core_output_filter_ctx_t; typedef struct core_filter_ctx { @@ -1188,6 +1301,7 @@ AP_DECLARE(char *) ap_ht_time(apr_pool_t *p, apr_time_t t, const char *fmt, int * @return A copy of the characters up to the first stop character */ AP_DECLARE(char *) ap_getword(apr_pool_t *p, const char **line, char stop); + /** * Get the characters until the first occurance of a specified character * @param p The pool to allocate memory from @@ -1206,18 +1320,19 @@ AP_DECLARE(char *) ap_getword_nc(apr_pool_t *p, char **line, char stop); * @return The first word in the line */ AP_DECLARE(char *) ap_getword_white(apr_pool_t *p, const char **line); + /** * Get the first word from a given string. A word is defined as all characters * up to the first whitespace. * @param p The pool to allocate memory from * @param line The string to traverse * @return The first word in the line - * @note The same as ap_getword_white(), except it doesn't use const char **. + * @note The same as ap_getword_white(), except it doesn't use const char** */ AP_DECLARE(char *) ap_getword_white_nc(apr_pool_t *p, char **line); /** - * Get all characters from the first occurance of @a stop to the first '\0' + * Get all characters from the first occurance of @a stop to the first "\0" * @param p The pool to allocate memory from * @param line The line to traverse * @param stop The character to start at @@ -1226,8 +1341,9 @@ AP_DECLARE(char *) ap_getword_white_nc(apr_pool_t *p, char **line); */ AP_DECLARE(char *) ap_getword_nulls(apr_pool_t *p, const char **line, char stop); + /** - * Get all characters from the first occurance of @a stop to the first '\0' + * Get all characters from the first occurance of @a stop to the first "\0" * @param p The pool to allocate memory from * @param line The line to traverse * @param stop The character to start at @@ -1244,6 +1360,7 @@ AP_DECLARE(char *) ap_getword_nulls_nc(apr_pool_t *p, char **line, char stop); * @return A copy of the string */ AP_DECLARE(char *) ap_getword_conf(apr_pool_t *p, const char **line); + /** * Get the second word in the string paying attention to quoting * @param p The pool to allocate from @@ -1297,6 +1414,28 @@ AP_DECLARE(char *) ap_get_list_item(apr_pool_t *p, const char **field); */ AP_DECLARE(int) ap_find_list_item(apr_pool_t *p, const char *line, const char *tok); +/* Scan a string for field content chars, as defined by RFC7230 section 3.2 + * including VCHAR/obs-text, as well as HT and SP + * @param ptr The string to scan + * @return A pointer to the first (non-HT) ASCII ctrl character. + * @note lws and trailing whitespace are scanned, the caller is responsible + * for trimming leading and trailing whitespace + */ +AP_DECLARE(const char *) ap_scan_http_field_content(const char *ptr); + +/* Scan a string for token characters, as defined by RFC7230 section 3.2.6 + * @param ptr The string to scan + * @return A pointer to the first non-token character. + */ +AP_DECLARE(const char *) ap_scan_http_token(const char *ptr); + +/* Scan a string for visible ASCII (0x21-0x7E) or obstext (0x80+) + * and return a pointer to the first SP/CTL/NUL character encountered. + * @param ptr The string to scan + * @return A pointer to the first SP/CTL character. + */ +AP_DECLARE(const char *) ap_scan_vchar_obstext(const char *ptr); + /** * Retrieve a token, spacing over it and adjusting the pointer to * the first non-white byte afterwards. Note that these tokens @@ -1340,12 +1479,22 @@ AP_DECLARE(int) ap_is_url(const char *u); * @return 0 on success, non-zero otherwise */ AP_DECLARE(int) ap_unescape_url(char *url); + /** - * Unescape a URL, but leaving %2f (slashes) escaped + * Unescape a URL, including encoded slashes. * @param url The url to unescape * @return 0 on success, non-zero otherwise */ AP_DECLARE(int) ap_unescape_url_keep2f(char *url); + +/** + * Unescape a URL, including encoded slashes. + * @param url The url to unescape + * @param decode_slashes Whether or not slashes should be decoded or not + * @return 0 on success, non-zero otherwise + */ +AP_DECLARE(int) ap_unescape_url_keep2f_ex(char *url, int decode_slashes); + /** * Convert all double slashes to single slashes * @param name The string to convert @@ -1366,6 +1515,7 @@ AP_DECLARE(void) ap_getparents(char *name); * @return The converted URL */ AP_DECLARE(char *) ap_escape_path_segment(apr_pool_t *p, const char *s); + /** * convert an OS path to a URL in an OS dependant way. * @param p The pool to allocate from @@ -1375,6 +1525,7 @@ AP_DECLARE(char *) ap_escape_path_segment(apr_pool_t *p, const char *s); * @return The converted URL */ AP_DECLARE(char *) ap_os_escape_path(apr_pool_t *p, const char *path, int partial); + /** @see ap_os_escape_path */ #define ap_escape_uri(ppool,path) ap_os_escape_path(ppool,path,1) @@ -1385,6 +1536,14 @@ AP_DECLARE(char *) ap_os_escape_path(apr_pool_t *p, const char *path, int partia * @return The escaped string */ AP_DECLARE(char *) ap_escape_html(apr_pool_t *p, const char *s); +/** + * Escape an html string + * @param p The pool to allocate from + * @param s The html to escape + * @param toasc Whether to escape all non-ASCII chars to &#nnn; + * @return The escaped string + */ +AP_DECLARE(char *) ap_escape_html2(apr_pool_t *p, const char *s, int toasc); /** * Escape a string for logging @@ -1398,7 +1557,7 @@ AP_DECLARE(char *) ap_escape_logitem(apr_pool_t *p, const char *str); * Escape a string for logging into the error log (without a pool) * @param dest The buffer to write to * @param source The string to escape - * @param buflen The buffer size for the escaped string (including \0) + * @param buflen The buffer size for the escaped string (including "\0") * @return The len of the escaped string (always < maxlen) */ AP_DECLARE(apr_size_t) ap_escape_errorlog_item(char *dest, const char *source, @@ -1414,6 +1573,7 @@ AP_DECLARE(apr_size_t) ap_escape_errorlog_item(char *dest, const char *source, */ AP_DECLARE(char *) ap_construct_server(apr_pool_t *p, const char *hostname, apr_port_t port, const request_rec *r); + /** * Escape a shell command * @param p The pool to allocate from @@ -1436,7 +1596,7 @@ AP_DECLARE(int) ap_count_dirs(const char *path); * @param d The location to copy to * @param s The location to copy from * @param n The number of directories to copy - * @return value is the ever useful pointer to the trailing \0 of d + * @return value is the ever useful pointer to the trailing "\0" of d * @note on platforms with drive letters, n = 0 returns the "/" root, * whereas n = 1 returns the "d:/" root. On all other platforms, n = 0 * returns the empty string. */ @@ -1453,13 +1613,13 @@ AP_DECLARE(char *) ap_make_dirstr_parent(apr_pool_t *p, const char *s); /** * Given a directory and filename, create a single path from them. This - * function is smart enough to ensure that there is a sinlge '/' between the + * function is smart enough to ensure that there is a single '/' between the * directory and file names * @param a The pool to allocate from * @param dir The directory name * @param f The filename * @return A copy of the full path - * @tip Never consider using this function if you are dealing with filesystem + * @note Never consider using this function if you are dealing with filesystem * names that need to remain canonical, unless you are merging an apr_dir_read * path and returned filename. Otherwise, the result is not canonical. */ @@ -1469,7 +1629,7 @@ AP_DECLARE(char *) ap_make_full_path(apr_pool_t *a, const char *dir, const char * Test if the given path has an an absolute path. * @param p The pool to allocate from * @param dir The directory name - * @tip The converse is not necessarily true, some OS's (Win32/OS2/Netware) have + * @note The converse is not necessarily true, some OS's (Win32/OS2/Netware) have * multiple forms of absolute paths. This only reports if the path is absolute * in a canonical sense. */ @@ -1485,14 +1645,15 @@ AP_DECLARE(int) ap_os_is_path_absolute(apr_pool_t *p, const char *dir); AP_DECLARE(int) ap_is_matchexp(const char *str); /** - * Determine if a string matches a patterm containing the wildcards '?' or '*' + * Determine if a string matches a pattern containing the wildcards '?' or '*' * @param str The string to check * @param expected The pattern to match against * @return 1 if the two strings match, 0 otherwise */ AP_DECLARE(int) ap_strcmp_match(const char *str, const char *expected); + /** - * Determine if a string matches a patterm containing the wildcards '?' or '*', + * Determine if a string matches a pattern containing the wildcards '?' or '*', * ignoring case * @param str The string to check * @param expected The pattern to match against @@ -1529,27 +1690,26 @@ AP_DECLARE(char *) ap_pbase64decode(apr_pool_t *p, const char *bufcoded); /** * Encode a string into memory allocated from a pool in base 64 format * @param p The pool to allocate from - * @param strin The plaintext string + * @param string The plaintext string * @return The encoded string */ AP_DECLARE(char *) ap_pbase64encode(apr_pool_t *p, char *string); - /** * Compile a regular expression to be used later * @param p The pool to allocate from * @param pattern the regular expression to compile * @param cflags The bitwise or of one or more of the following: - * @li #REG_EXTENDED - Use POSIX extended Regular Expressions - * @li #REG_ICASE - Ignore case - * @li #REG_NOSUB - Support for substring addressing of matches + * @li REG_EXTENDED - Use POSIX extended Regular Expressions + * @li REG_ICASE - Ignore case + * @li REG_NOSUB - Support for substring addressing of matches * not required - * @li #REG_NEWLINE - Match-any-character operators don't match new-line + * @li REG_NEWLINE - Match-any-character operators don't match new-line * @return The compiled regular expression */ AP_DECLARE(ap_regex_t *) ap_pregcomp(apr_pool_t *p, const char *pattern, int cflags); - + /** * Free the memory associated with a compiled regular expression * @param p The pool the regex was allocated from @@ -1571,6 +1731,26 @@ AP_DECLARE(void) ap_pregfree(apr_pool_t *p, ap_regex_t *reg); AP_DECLARE(char *) ap_pregsub(apr_pool_t *p, const char *input, const char *source, size_t nmatch, ap_regmatch_t pmatch[]); +/** + * After performing a successful regex match, you may use this function to + * perform a series of string substitutions based on subexpressions that were + * matched during the call to ap_regexec + * @param p The pool to allocate from + * @param result where to store the result, will be set to NULL on error + * @param input An arbitrary string containing $1 through $9. These are + * replaced with the corresponding matched sub-expressions + * @param source The string that was originally matched to the regex + * @param nmatch the nmatch returned from ap_pregex + * @param pmatch the pmatch array returned from ap_pregex + * @param maxlen the maximum string length to return, 0 for unlimited + * @return APR_SUCCESS if successful, APR_ENOMEM or other error code otherwise. + */ +AP_DECLARE(apr_status_t) ap_pregsub_ex(apr_pool_t *p, char **result, + const char *input, const char *source, + apr_size_t nmatch, + ap_regmatch_t pmatch[], + apr_size_t maxlen); + /** * We want to downcase the type/subtype for comparison purposes * but nothing else because ;parameter=foo values are case sensitive. @@ -1610,6 +1790,42 @@ AP_DECLARE(int) ap_rind(const char *str, char c); */ AP_DECLARE(char *) ap_escape_quotes(apr_pool_t *p, const char *instring); +/** + * Given a string, append the PID deliminated by delim. + * Usually used to create a pid-appended filepath name + * (eg: /a/b/foo -> /a/b/foo.6726). A function, and not + * a macro, to avoid unistd.h dependency + * @param p The pool to allocate memory from + * @param string The string to append the PID to + * @param delim The string to use to deliminate the string from the PID + * @return A copy of the string with the PID appended + */ +AP_DECLARE(char *) ap_append_pid(apr_pool_t *p, const char *string, + const char *delim); + +/** + * Parse a given timeout parameter string into an apr_interval_time_t value. + * The unit of the time interval is given as postfix string to the numeric + * string. Currently the following units are understood: + * + * ms : milliseconds + * s : seconds + * mi[n] : minutes + * h : hours + * + * If no unit is contained in the given timeout parameter the default_time_unit + * will be used instead. + * @param timeout_parameter The string containing the timeout parameter. + * @param timeout The timeout value to be returned. + * @param default_time_unit The default time unit to use if none is specified + * in timeout_parameter. + * @return Status value indicating whether the parsing was successful or not. + */ +AP_DECLARE(apr_status_t) ap_timeout_parameter_parse( + const char *timeout_parameter, + apr_interval_time_t *timeout, + const char *default_time_unit); + /* Misc system hackery */ /** * Given the name of an object in the file system determine if it is a directory @@ -1647,7 +1863,9 @@ char *ap_get_local_host(apr_pool_t *p); AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine) __attribute__((noreturn)); -/** @internal */ +/** + * @internal Internal Assert function + */ #define ap_assert(exp) ((exp) ? (void)0 : ap_log_assert(#exp,__FILE__,__LINE__)) /** @@ -1657,7 +1875,6 @@ AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine) * Use AP_DEBUG_ASSERT() if the condition should only be checked when AP_DEBUG * is defined. */ - #ifdef AP_DEBUG #define AP_DEBUG_ASSERT(exp) ap_assert(exp) #else @@ -1665,7 +1882,7 @@ AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine) #endif /** - * @defgroup stopsignal flags which indicate places where the sever should stop for debugging. + * @defgroup stopsignal Flags which indicate places where the sever should stop for debugging. * @{ * A set of flags which indicate places where the server should raise(SIGSTOP). * This is useful for debugging, because you can then attach to that process @@ -1701,6 +1918,19 @@ extern int raise_sigstop_flags; */ AP_DECLARE(const char *) ap_psignature(const char *prefix, request_rec *r); + +/** + * Short function to execute a command and return the first line of + * output minus \r \n. Useful for "obscuring" passwords via exec calls + * @param p the pool to allocate from + * @param cmd the command to execute + * @param argv the arguments to pass to the cmd + * @return ptr to characters or NULL on any error + */ +AP_DECLARE(char *) ap_get_exec_line(apr_pool_t *p, + const char *cmd, + const char * const *argv); + /** strtoul does not exist on sunos4. */ #ifdef strtoul #undef strtoul @@ -1756,3 +1986,8 @@ AP_DECLARE(const char *) ap_strstr_c(const char *s, const char *c); #endif #endif /* !APACHE_HTTPD_H */ + +/** @} //APACHE Daemon */ +/** @} //APACHE Core */ +/** @} //APACHE super group */ + diff --git a/include/mpm_common.h b/include/mpm_common.h index a36b926ff57..125fe809382 100644 --- a/include/mpm_common.h +++ b/include/mpm_common.h @@ -1,9 +1,9 @@ -/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -25,6 +25,15 @@ * does not belong in src/os/unix */ +/** + * @file mpm_common.h + * @brief Multi-Processing Modules functions + * + * @defgroup APACHE_MPM Multi-Processing Modules + * @ingroup APACHE + * @{ + */ + #ifndef APACHE_MPM_COMMON_H #define APACHE_MPM_COMMON_H @@ -40,10 +49,6 @@ extern "C" { #endif -/** - * @package Multi-Processing Modules functions - */ - /* The maximum length of the queue of pending connections, as defined * by listen(2). Under some systems, it should be increased if you * are experiencing a heavy TCP SYN flood attack. @@ -56,6 +61,24 @@ extern "C" { #define DEFAULT_LISTENBACKLOG 511 #endif +/* Signal used to gracefully restart */ +#define AP_SIG_GRACEFUL SIGUSR1 + +/* Signal used to gracefully restart (without SIG prefix) */ +#define AP_SIG_GRACEFUL_SHORT USR1 + +/* Signal used to gracefully restart (as a quoted string) */ +#define AP_SIG_GRACEFUL_STRING "SIGUSR1" + +/* Signal used to gracefully stop */ +#define AP_SIG_GRACEFUL_STOP SIGWINCH + +/* Signal used to gracefully stop (without SIG prefix) */ +#define AP_SIG_GRACEFUL_STOP_SHORT WINCH + +/* Signal used to gracefully stop (as a quoted string) */ +#define AP_SIG_GRACEFUL_STOP_STRING "SIGWINCH" + /** * Make sure all child processes that have been spawned by the parent process * have died. This includes process registered as "other_children". @@ -77,8 +100,25 @@ void ap_reclaim_child_processes(int terminate); #endif /** - * Tell ap_reclaim_child_processes() about an MPM child process which has no - * entry in the scoreboard. + * Catch any child processes that have been spawned by the parent process + * which have exited. This includes processes registered as "other_children". + * @warning This is only defined if the MPM defines + * AP_MPM_WANT_RECLAIM_CHILD_PROCESSES + * @tip This function requires that some macros are defined by the MPM:
    + *  MPM_CHILD_PID -- Get the pid from the specified spot in the scoreboard
    + *  MPM_NOTE_CHILD_KILLED -- Note the child died in the scoreboard
    + * 
    + * @tip The MPM child processes which are relieved are those listed + * in the scoreboard as well as those currently registered via + * ap_register_extra_mpm_process(). + */ +#ifdef AP_MPM_WANT_RECLAIM_CHILD_PROCESSES +void ap_relieve_child_processes(void); +#endif + +/** + * Tell ap_reclaim_child_processes() and ap_relieve_child_processes() about + * an MPM child process which has no entry in the scoreboard. * @warning This is only defined if the MPM defines * AP_MPM_WANT_RECLAIM_CHILD_PROCESSES * @param pid The process id of an MPM child process which should be @@ -104,6 +144,19 @@ void ap_register_extra_mpm_process(pid_t pid); int ap_unregister_extra_mpm_process(pid_t pid); #endif +/** + * Safely signal an MPM child process, if the process is in the + * current process group. Otherwise fail. + * @param pid the process id of a child process to signal + * @param sig the signal number to send + * @return APR_SUCCESS if signal is sent, otherwise an error as per kill(3); + * APR_EINVAL is returned if passed either an invalid (< 1) pid, or if + * the pid is not in the current process group + */ +#ifdef AP_MPM_WANT_RECLAIM_CHILD_PROCESSES +apr_status_t ap_mpm_safe_kill(pid_t pid, int sig); +#endif + /** * Determine if any child process has died. If no child process died, then * this process sleeps for the amount of time specified by the MPM defined @@ -163,6 +216,19 @@ AP_DECLARE(gid_t) ap_gname2id(const char *name); #define AP_MPM_HARD_LIMITS_FILE APACHE_MPM_DIR "/mpm_default.h" +#ifndef HAVE_INITGROUPS +/** + * The initgroups() function initializes the group access list by reading the + * group database /etc/group and using all groups of which user is a member. + * The additional group basegid is also added to the list. + * @param name The user name - must be non-NULL + * @param basegid The basegid to add + * @return returns 0 on success + * @fn int initgroups(const char *name, gid_t basegid) + */ +int initgroups(const char *name, gid_t basegid); +#endif + #ifdef AP_MPM_USES_POD typedef struct ap_pod_t ap_pod_t; @@ -269,6 +335,20 @@ const char *ap_mpm_set_coredumpdir(cmd_parms *cmd, void *dummy, const char *arg); #endif +/** + * Set the timeout period for a graceful shutdown. + */ +#ifdef AP_MPM_WANT_SET_GRACEFUL_SHUTDOWN +extern int ap_graceful_shutdown_timeout; +const char *ap_mpm_set_graceful_shutdown(cmd_parms *cmd, void *dummy, + const char *arg); +#define AP_GRACEFUL_SHUTDOWN_TIMEOUT_COMMAND \ +AP_INIT_TAKE1("GracefulShutdownTimeout", ap_mpm_set_graceful_shutdown, NULL, \ + RSRC_CONF, "Maximum time in seconds to wait for child " \ + "processes to complete transactions during shutdown") +#endif + + #ifdef AP_MPM_WANT_SIGNAL_SERVER int ap_signal_server(int *, apr_pool_t *); void ap_mpm_rewrite_args(process_rec *); @@ -303,3 +383,4 @@ AP_DECLARE_HOOK(int,monitor,(apr_pool_t *p)) #endif #endif /* !APACHE_MPM_COMMON_H */ +/** @} */ diff --git a/include/scoreboard.h b/include/scoreboard.h index 726ee1ee19b..b8840733540 100644 --- a/include/scoreboard.h +++ b/include/scoreboard.h @@ -1,9 +1,9 @@ -/* Copyright 2001-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * @file scoreboard.h + * @brief Apache scoreboard library + */ + #ifndef APACHE_SCOREBOARD_H #define APACHE_SCOREBOARD_H @@ -184,7 +189,24 @@ AP_DECLARE(int) ap_update_child_status_from_indexes(int child_num, int thread_nu int status, request_rec *r); void ap_time_process_request(ap_sb_handle_t *sbh, int status); +/** Return a pointer to the worker_score for a given child, thread pair. + * @param child_num The child number. + * @param thread_num The thread number. + * @return A pointer to the worker_score structure. + * @deprecated This function is deprecated, use ap_copy_scoreboard_worker instead. + */ AP_DECLARE(worker_score *) ap_get_scoreboard_worker(int x, int y); + +/** Copy the contents of a worker's scoreboard entry. The contents of + * the worker_score structure are copied verbatim into the dest + * structure. + * @param dest Output parameter. + * @param child_num The child number. + * @param thread_num The thread number. + */ +AP_DECLARE(void) ap_copy_scoreboard_worker(worker_score *dest, + int child_num, int thread_num); + AP_DECLARE(process_score *) ap_get_scoreboard_process(int x); AP_DECLARE(global_score *) ap_get_scoreboard_global(void); AP_DECLARE(lb_score *) ap_get_scoreboard_lb(int lb_num); @@ -192,6 +214,7 @@ AP_DECLARE(lb_score *) ap_get_scoreboard_lb(int lb_num); AP_DECLARE_DATA extern scoreboard *ap_scoreboard_image; AP_DECLARE_DATA extern const char *ap_scoreboard_fname; AP_DECLARE_DATA extern int ap_extended_status; +AP_DECLARE_DATA extern int ap_mod_status_reqtail; AP_DECLARE_DATA extern ap_generation_t volatile ap_my_generation; diff --git a/include/util_cfgtree.h b/include/util_cfgtree.h index 4257e3605bd..58673f6e01c 100644 --- a/include/util_cfgtree.h +++ b/include/util_cfgtree.h @@ -1,9 +1,9 @@ -/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,19 +14,30 @@ * limitations under the License. */ +/** + * @file util_cfgtree.h + * @brief Config Tree Package + * + * @defgroup APACHE_CORE_CONFIG_TREE Config Tree Package + * @ingroup APACHE_CORE_CONFIG + * @{ + */ + #ifndef AP_CONFTREE_H #define AP_CONFTREE_H #include "ap_config.h" -/** - * @package Config Tree Package - */ +#ifdef __cplusplus +extern "C" { +#endif typedef struct ap_directive_t ap_directive_t; /** - * Structure used to build the config tree. The config tree only stores + * @brief Structure used to build the config tree. + * + * The config tree only stores * the directives that will be active in the running server. Directives * that contain other directions, such as cause a sub-level * to be created, where the included directives are stored. The closing @@ -76,4 +87,9 @@ AP_DECLARE_DATA extern ap_directive_t *ap_conftree; ap_directive_t *ap_add_node(ap_directive_t **parent, ap_directive_t *current, ap_directive_t *toadd, int child); +#ifdef __cplusplus +} +#endif + #endif +/** @} */ diff --git a/include/util_charset.h b/include/util_charset.h index bfc743b0c5d..7b92a0c57a0 100644 --- a/include/util_charset.h +++ b/include/util_charset.h @@ -1,9 +1,9 @@ -/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file util_charset.h + * @brief charset conversion + * + * @defgroup APACHE_CORE_CHARSET Charset Conversion + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_UTIL_CHARSET_H #define APACHE_UTIL_CHARSET_H @@ -21,9 +30,6 @@ extern "C" { #endif -/** - * @package charset conversion - */ #include "apr.h" #if APR_CHARSET_EBCDIC @@ -46,3 +52,4 @@ extern apr_xlate_t *ap_hdrs_from_ascii; #endif #endif /* !APACHE_UTIL_CHARSET_H */ +/** @} */ diff --git a/include/util_ebcdic.h b/include/util_ebcdic.h index 70dbd2ee00d..fe35e418ad7 100644 --- a/include/util_ebcdic.h +++ b/include/util_ebcdic.h @@ -1,9 +1,9 @@ -/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file util_ebcdic.h + * @brief Utilities for EBCDIC conversion + * + * @defgroup APACHE_CORE_EBCDIC Utilities for EBCDIC conversion + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_UTIL_EBCDIC_H #define APACHE_UTIL_EBCDIC_H @@ -26,10 +35,6 @@ extern "C" { #include "httpd.h" #include "util_charset.h" -/** - * @package Utilities for EBCDIC conversion - */ - #if APR_CHARSET_EBCDIC /** @@ -76,3 +81,4 @@ int ap_rvputs_proto_in_ascii(request_rec *r, ...); #endif #endif /* !APACHE_UTIL_EBCDIC_H */ +/** @} */ diff --git a/include/util_filter.h b/include/util_filter.h index 81f86fe985c..dbcb43701b2 100644 --- a/include/util_filter.h +++ b/include/util_filter.h @@ -1,9 +1,9 @@ -/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * @file util_filter.h + * @brief Apache filter library + */ + #ifndef AP_FILTER_H #define AP_FILTER_H @@ -30,11 +35,6 @@ extern "C" { #endif -/** - * @file util_filter.h - * @brief Apache filter library - */ - /** Returned by the bottom-most filter if no data was written. * @see ap_pass_brigade(). */ #define AP_NOBODY_WROTE -1 @@ -45,7 +45,7 @@ extern "C" { #define AP_FILTER_ERROR -3 /** - * input filtering modes + * @brief input filtering modes */ typedef enum { /** The filter should return at most readbytes data. */ @@ -72,7 +72,8 @@ typedef enum { } ap_input_mode_t; /** - * @defgroup filter FILTER CHAIN + * @defgroup APACHE_CORE_FILTER Filter Chain + * @ingroup APACHE_CORE * * Filters operate using a "chaining" mechanism. The filters are chained * together into a sequence. When output is generated, it is passed through @@ -201,7 +202,7 @@ typedef struct ap_filter_rec_t ap_filter_rec_t; typedef struct ap_filter_provider_t ap_filter_provider_t; /** - * This structure is used for recording information about the + * @brief This structure is used for recording information about the * registered filters. It associates a name with the filter's callback * and filter type. * @@ -220,10 +221,13 @@ struct ap_filter_rec_t { /** The function to call when this filter is invoked. */ ap_filter_func filter_func; - /** The function to call before the handlers are invoked. Notice - * that this function is called only for filters participating in - * the http protocol. Filters for other protocols are to be - * initialized by the protocols themselves. + /** The function to call directly before the handlers are invoked + * for a request. The init function is called once directly + * before running the handlers for a request or subrequest. The + * init function is never called for a connection filter (with + * ftype >= AP_FTYPE_CONNECTION). Any use of this function for + * filters for protocols other than HTTP is specified by the + * module supported that protocol. */ ap_init_filter_func filter_init_func; @@ -248,7 +252,9 @@ struct ap_filter_rec_t { }; /** - * The representation of a filter chain. Each request has a list + * @brief The representation of a filter chain. + * + * Each request has a list * of these structures which are called in turn to filter the data. Sub * requests get an exact copy of the main requests filter chain. */ diff --git a/include/util_ldap.h b/include/util_ldap.h index ad8013adcd9..49de93eee1b 100644 --- a/include/util_ldap.h +++ b/include/util_ldap.h @@ -1,9 +1,9 @@ -/* Copyright 2001-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,11 @@ * limitations under the License. */ +/** + * @file util_ldap.h + * @brief Apache LDAP library + */ + #ifndef UTIL_LDAP_H #define UTIL_LDAP_H @@ -25,6 +30,13 @@ #include "apr_time.h" #include "apr_ldap.h" +#if defined(LDAP_UNAVAILABLE) || APR_HAS_MICROSOFT_LDAPSDK +#define AP_LDAP_IS_SERVER_DOWN(s) ((s) == LDAP_SERVER_DOWN \ + ||(s) == LDAP_UNAVAILABLE) +#else +#define AP_LDAP_IS_SERVER_DOWN(s) ((s) == LDAP_SERVER_DOWN) +#endif + #if APR_HAS_SHARED_MEMORY #include "apr_rmm.h" #include "apr_shm.h" @@ -64,6 +76,10 @@ #define LDAP_DECLARE_DATA __declspec(dllimport) #endif +#ifdef __cplusplus +extern "C" { +#endif + /* * LDAP Connections */ @@ -318,6 +334,8 @@ apr_status_t util_ldap_cache_init(apr_pool_t *pool, util_ldap_state_t *st); * @deffunc char *util_ald_cache_display(apr_pool_t *pool, util_ldap_state_t *st) */ char *util_ald_cache_display(request_rec *r, util_ldap_state_t *st); - +#ifdef __cplusplus +} +#endif #endif /* APR_HAS_LDAP */ #endif /* UTIL_LDAP_H */ diff --git a/include/util_md5.h b/include/util_md5.h index 16b0e0144c7..8d539c3effd 100644 --- a/include/util_md5.h +++ b/include/util_md5.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file util_md5.h + * @brief Apache MD5 library + * + * @defgroup APACHE_CORE_MD5 MD5 Package Library + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_UTIL_MD5_H #define APACHE_UTIL_MD5_H @@ -21,10 +30,6 @@ extern "C" { #endif -/** - * @package Apache MD5 library - */ - #include "apr_md5.h" /** @@ -68,3 +73,4 @@ AP_DECLARE(char *) ap_md5digest(apr_pool_t *p, apr_file_t *infile); #endif #endif /* !APACHE_UTIL_MD5_H */ +/** @} */ diff --git a/include/util_script.h b/include/util_script.h index 8ee1ea67225..bd5c7f267f9 100644 --- a/include/util_script.h +++ b/include/util_script.h @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file util_script.h + * @brief Apache script tools + * + * @defgroup APACHE_CORE_SCRIPT Script Tools + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_UTIL_SCRIPT_H #define APACHE_UTIL_SCRIPT_H @@ -23,10 +32,6 @@ extern "C" { #endif -/** - * @package Apache script tools - */ - #ifndef APACHE_ARG_MAX #ifdef _POSIX_ARG_MAX #define APACHE_ARG_MAX _POSIX_ARG_MAX @@ -140,3 +145,4 @@ AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer, #endif #endif /* !APACHE_UTIL_SCRIPT_H */ +/** @} */ diff --git a/include/util_time.h b/include/util_time.h index 2e34388d52c..c99602da948 100644 --- a/include/util_time.h +++ b/include/util_time.h @@ -1,9 +1,9 @@ -/* Copyright 2001-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file util_time.h + * @brief Apache date-time handling functions + * + * @defgroup APACHE_CORE_TIME Date-time handling functions + * @ingroup APACHE_CORE + * @{ + */ + #ifndef APACHE_UTIL_TIME_H #define APACHE_UTIL_TIME_H @@ -25,10 +34,6 @@ extern "C" { #endif -/** - * @package Apache date-time handling functions - */ - /* Maximum delta from the current time, in seconds, for a past time * to qualify as "recent" for use in the ap_explode_recent_*() functions: * (Must be a power of two minus one!) @@ -83,3 +88,4 @@ AP_DECLARE(apr_status_t) ap_recent_rfc822_date(char *date_str, apr_time_t t); #endif #endif /* !APACHE_UTIL_TIME_H */ +/** @} */ diff --git a/include/util_xml.h b/include/util_xml.h index b97da2c1e0f..5f71ce595fa 100644 --- a/include/util_xml.h +++ b/include/util_xml.h @@ -1,9 +1,9 @@ -/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,15 @@ * limitations under the License. */ +/** + * @file util_xml.h + * @brief Apache XML library + * + * @defgroup APACHE_CORE_XML XML Library + * @ingroup APACHE_CORE + * @{ + */ + #ifndef UTIL_XML_H #define UTIL_XML_H @@ -25,10 +34,6 @@ extern "C" { #endif -/** - * @package Apache XML library - */ - /** * Get XML post data and parse it * @param r The current request @@ -44,3 +49,4 @@ AP_DECLARE(int) ap_xml_parse_input(request_rec *r, apr_xml_doc **pdoc); #endif #endif /* UTIL_XML_H */ +/** @} */ diff --git a/libhttpd.dep b/libhttpd.dep new file mode 100644 index 00000000000..7877390006b --- /dev/null +++ b/libhttpd.dep @@ -0,0 +1,1058 @@ +# Microsoft Developer Studio Generated Dependency File, included by libhttpd.mak + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +.\modules\http\byterange_filter.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\include\util_time.h"\ + ".\modules\http\mod_core.h"\ + ".\srclib\apr-util\include\apr_date.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_signal.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\http\chunk_filter.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\modules\http\mod_core.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\config.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\mpm.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_fnmatch.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\connection.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\mpm_default.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\core.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_provider.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\mod_core.h"\ + ".\include\mod_proxy.h"\ + ".\include\mod_so.h"\ + ".\include\mpm.h"\ + ".\include\mpm_common.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\include\util_md5.h"\ + ".\srclib\apr-util\include\apr_date.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_md5.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_strmatch.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_fnmatch.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\core_filters.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_provider.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\mod_core.h"\ + ".\include\mod_proxy.h"\ + ".\include\mod_so.h"\ + ".\include\mpm.h"\ + ".\include\mpm_common.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\include\util_md5.h"\ + ".\srclib\apr-util\include\apr_date.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_md5.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_strmatch.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_fnmatch.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\http\http_core.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\modules\http\mod_core.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\http\http_etag.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\http\http_filters.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\include\util_time.h"\ + ".\modules\http\mod_core.h"\ + ".\srclib\apr-util\include\apr_date.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_signal.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\http\http_protocol.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\include\util_time.h"\ + ".\modules\http\mod_core.h"\ + ".\srclib\apr-util\include\apr_date.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_signal.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\http\http_request.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_filter.h"\ + ".\modules\http\mod_core.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_fnmatch.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\log.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\include\util_time.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_signal.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\protocol.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\mod_core.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_strmatch.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_signal.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\request.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\httpd.h"\ + ".\include\mod_core.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_filter.h"\ + ".\include\util_script.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_fnmatch.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\vhost.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_protocol.h"\ + ".\include\http_vhost.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\mappers\mod_so.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\modules\mappers\mod_so.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\modules\arch\win32\mod_win32.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_regkey.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\httpd.h"\ + ".\include\mod_cgi.h"\ + ".\include\mod_core.h"\ + ".\include\mod_include.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\include\util_script.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\os\win32\modules.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + + +.\server\eoc_bucket.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_connection.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + + +.\server\error_bucket.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_protocol.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\util.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\server\test_char.h"\ + ".\srclib\apr-util\include\apr_base64.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\util_cfgtree.c : \ + ".\include\ap_config.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + + +.\server\util_filter.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_log.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\util_md5.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_md5.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_md5.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\util_pcre.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_strings.h"\ + ".\srclib\pcre\pcre.h"\ + + +.\server\util_script.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\http_protocol.h"\ + ".\include\http_request.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_charset.h"\ + ".\include\util_ebcdic.h"\ + ".\include\util_filter.h"\ + ".\include\util_script.h"\ + ".\srclib\apr-util\include\apr_date.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\util_time.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_time.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + + +.\os\win32\util_win32.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_log.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_getopt.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + ".\srclib\apr\include\arch\win32\apr_arch_file_io.h"\ + ".\srclib\apr\include\arch\win32\apr_arch_utf8.h"\ + + +.\server\util_xml.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_protocol.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_charset.h"\ + ".\include\util_filter.h"\ + ".\include\util_xml.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr-util\include\apr_xml.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + + +.\os\win32\ap_regkey.c : \ + ".\include\ap_config.h"\ + ".\include\ap_regkey.h"\ + ".\include\os.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr\include\apr_getopt.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\arch\win32\apr_arch_file_io.h"\ + ".\srclib\apr\include\arch\win32\apr_arch_utf8.h"\ + + +.\server\mpm\winnt\child.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\httpd.h"\ + ".\include\mpm.h"\ + ".\include\mpm_common.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\server\mpm\winnt\mpm_default.h"\ + ".\server\mpm\winnt\mpm_winnt.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_atomic.h"\ + ".\srclib\apr\include\apr_getopt.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\listen.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\httpd.h"\ + ".\include\mpm.h"\ + ".\include\mpm_common.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +.\server\mpm_common.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\httpd.h"\ + ".\include\mpm.h"\ + ".\include\mpm_common.h"\ + ".\include\mpm_default.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_getopt.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_signal.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +.\server\mpm\winnt\mpm_winnt.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_connection.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\httpd.h"\ + ".\include\mpm.h"\ + ".\include\mpm_common.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\server\mpm\winnt\mpm_default.h"\ + ".\server\mpm\winnt\mpm_winnt.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_atomic.h"\ + ".\srclib\apr\include\apr_getopt.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\mpm\winnt\nt_eventlog.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_regkey.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_log.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\server\mpm\winnt\mpm_winnt.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\provider.c : \ + ".\include\ap_config.h"\ + ".\include\ap_provider.h"\ + ".\include\os.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\scoreboard.c : \ + ".\include\ap_config.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_mpm.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_core.h"\ + ".\include\http_log.h"\ + ".\include\http_main.h"\ + ".\include\httpd.h"\ + ".\include\mpm.h"\ + ".\include\os.h"\ + ".\include\scoreboard.h"\ + ".\include\util_cfgtree.h"\ + ".\include\util_filter.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_hash.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_portable.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +.\server\mpm\winnt\service.c : \ + ".\include\ap_config.h"\ + ".\include\ap_listen.h"\ + ".\include\ap_mmn.h"\ + ".\include\ap_regex.h"\ + ".\include\ap_regkey.h"\ + ".\include\ap_release.h"\ + ".\include\http_config.h"\ + ".\include\http_log.h"\ + ".\include\httpd.h"\ + ".\include\os.h"\ + ".\include\util_cfgtree.h"\ + ".\server\mpm\winnt\mpm_winnt.h"\ + ".\srclib\apr-util\include\apr_hooks.h"\ + ".\srclib\apr-util\include\apr_optional_hooks.h"\ + ".\srclib\apr-util\include\apr_uri.h"\ + ".\srclib\apr\include\apr_lib.h"\ + ".\srclib\apr\include\apr_mmap.h"\ + ".\srclib\apr\include\apr_poll.h"\ + ".\srclib\apr\include\apr_strings.h"\ + + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +!ENDIF + +.\build\win32\httpd.rc : \ + ".\include\ap_release.h"\ + diff --git a/libhttpd.dsp b/libhttpd.dsp index 796dc80b4b6..8da38374819 100644 --- a/libhttpd.dsp +++ b/libhttpd.dsp @@ -47,17 +47,20 @@ RSC=rc.exe # ADD BASE MTL /nologo /D "NDEBUG" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/libhttpd.res" /i "./include" /i "./srclib/apr/include" /d "NDEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Release\buildmark.obj" /nologo /subsystem:windows /dll /debug /machine:I386 /base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref +# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll +# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Release\buildmark.obj" /nologo /subsystem:windows /dll /debug /base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref # Begin Special Build Tool +TargetPath=.\Release\libhttpd.dll SOURCE="$(InputPath)" PreLink_Desc=Compiling buildmark -PreLink_Cmds=cl.exe /nologo /MD /W3 /O2 /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Release\libhttpd" /FD /c server\buildmark.c /Fo"Release\buildmark.obj" +PreLink_Cmds=cl.exe /nologo /MD /W3 /O2 /Oy- /Zi /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Release\libhttpd" /FD /c server\buildmark.c /Fo"Release\buildmark.obj" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 # End Special Build Tool !ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" @@ -73,22 +76,25 @@ PreLink_Cmds=cl.exe /nologo /MD /W3 /O2 /I "./include" /I "./srclib/apr/include" # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "AP_DECLARE_EXPORT" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Debug\libhttpd_cl" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "AP_DECLARE_EXPORT" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Debug\libhttpd_cl" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/libhttpd.res" /i "./include" /i "./srclib/apr/include" /d "_DEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Debug\buildmark.obj" /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /base:@"os\win32\BaseAddr.ref",libhttpd.dll +# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /debug +# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Debug\buildmark.obj" /nologo /subsystem:windows /dll /incremental:no /debug /base:@"os\win32\BaseAddr.ref",libhttpd.dll # Begin Special Build Tool +TargetPath=.\Debug\libhttpd.dll SOURCE="$(InputPath)" PreLink_Desc=Compiling buildmark -PreLink_Cmds=cl.exe /nologo /MDd /W3 /GX /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Debug\libhttpd" /FD /c server\buildmark.c /Fo"Debug\buildmark.obj" +PreLink_Cmds=cl.exe /nologo /MDd /W3 /EHsc /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Debug\libhttpd" /FD /c server\buildmark.c /Fo"Debug\buildmark.obj" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 # End Special Build Tool !ENDIF @@ -680,36 +686,7 @@ InputPath=.\server\gen_test_char.exe # End Source File # Begin Source File -SOURCE=.\build\win32\libhttpd.rc -# End Source File -# Begin Source File - -SOURCE=.\build\win32\win32ver.awk - -!IF "$(CFG)" == "libhttpd - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=.\build\win32\win32ver.awk - -".\build\win32\libhttpd.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ./build/win32/win32ver.awk libhttpd.dll "Apache HTTP Server Core" ./include/ap_release.h > .\build\win32\libhttpd.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=.\build\win32\win32ver.awk - -".\build\win32\libhttpd.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ./build/win32/win32ver.awk libhttpd.dll "Apache HTTP Server Core" ./include/ap_release.h > .\build\win32\libhttpd.rc - -# End Custom Build - -!ENDIF - +SOURCE=.\build\win32\httpd.rc # End Source File # End Target # End Project diff --git a/libhttpd.mak b/libhttpd.mak new file mode 100644 index 00000000000..bd59a6720df --- /dev/null +++ b/libhttpd.mak @@ -0,0 +1,1052 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on libhttpd.dsp +!IF "$(CFG)" == "" +CFG=libhttpd - Win32 Release +!MESSAGE No configuration specified. Defaulting to libhttpd - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "libhttpd - Win32 Release" && "$(CFG)" != "libhttpd - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "libhttpd.mak" CFG="libhttpd - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "libhttpd - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libhttpd - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\include\mod_dav.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "pcre - Win32 Release" "gen_test_char - Win32 Release" "libaprutil - Win32 Release" "libapriconv - Win32 Release" "libapr - Win32 Release" ".\include\mod_dav.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libapriconv - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "gen_test_char - Win32 ReleaseCLEAN" "pcre - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\ap_regkey.obj" + -@erase "$(INTDIR)\byterange_filter.obj" + -@erase "$(INTDIR)\child.obj" + -@erase "$(INTDIR)\chunk_filter.obj" + -@erase "$(INTDIR)\config.obj" + -@erase "$(INTDIR)\connection.obj" + -@erase "$(INTDIR)\core.obj" + -@erase "$(INTDIR)\core_filters.obj" + -@erase "$(INTDIR)\eoc_bucket.obj" + -@erase "$(INTDIR)\error_bucket.obj" + -@erase "$(INTDIR)\http_core.obj" + -@erase "$(INTDIR)\http_etag.obj" + -@erase "$(INTDIR)\http_filters.obj" + -@erase "$(INTDIR)\http_protocol.obj" + -@erase "$(INTDIR)\http_request.obj" + -@erase "$(INTDIR)\libhttpd.res" + -@erase "$(INTDIR)\libhttpd_cl.idb" + -@erase "$(INTDIR)\libhttpd_cl.pdb" + -@erase "$(INTDIR)\listen.obj" + -@erase "$(INTDIR)\log.obj" + -@erase "$(INTDIR)\mod_so.obj" + -@erase "$(INTDIR)\mod_win32.obj" + -@erase "$(INTDIR)\modules.obj" + -@erase "$(INTDIR)\mpm_common.obj" + -@erase "$(INTDIR)\mpm_winnt.obj" + -@erase "$(INTDIR)\nt_eventlog.obj" + -@erase "$(INTDIR)\protocol.obj" + -@erase "$(INTDIR)\provider.obj" + -@erase "$(INTDIR)\request.obj" + -@erase "$(INTDIR)\scoreboard.obj" + -@erase "$(INTDIR)\service.obj" + -@erase "$(INTDIR)\util.obj" + -@erase "$(INTDIR)\util_cfgtree.obj" + -@erase "$(INTDIR)\util_filter.obj" + -@erase "$(INTDIR)\util_md5.obj" + -@erase "$(INTDIR)\util_pcre.obj" + -@erase "$(INTDIR)\util_script.obj" + -@erase "$(INTDIR)\util_time.obj" + -@erase "$(INTDIR)\util_win32.obj" + -@erase "$(INTDIR)\util_xml.obj" + -@erase "$(INTDIR)\vhost.obj" + -@erase "$(OUTDIR)\libhttpd.dll" + -@erase "$(OUTDIR)\libhttpd.exp" + -@erase "$(OUTDIR)\libhttpd.lib" + -@erase "$(OUTDIR)\libhttpd.pdb" + -@erase ".\include\mod_dav.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libhttpd_cl" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /d "NDEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libhttpd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Release\buildmark.obj" /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libhttpd.pdb" /debug /out:"$(OUTDIR)\libhttpd.dll" /implib:"$(OUTDIR)\libhttpd.lib" /base:@"os\win32\BaseAddr.ref",libhttpd.dll /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\byterange_filter.obj" \ + "$(INTDIR)\chunk_filter.obj" \ + "$(INTDIR)\config.obj" \ + "$(INTDIR)\connection.obj" \ + "$(INTDIR)\core.obj" \ + "$(INTDIR)\core_filters.obj" \ + "$(INTDIR)\http_core.obj" \ + "$(INTDIR)\http_etag.obj" \ + "$(INTDIR)\http_filters.obj" \ + "$(INTDIR)\http_protocol.obj" \ + "$(INTDIR)\http_request.obj" \ + "$(INTDIR)\log.obj" \ + "$(INTDIR)\protocol.obj" \ + "$(INTDIR)\request.obj" \ + "$(INTDIR)\vhost.obj" \ + "$(INTDIR)\mod_so.obj" \ + "$(INTDIR)\mod_win32.obj" \ + "$(INTDIR)\modules.obj" \ + "$(INTDIR)\eoc_bucket.obj" \ + "$(INTDIR)\error_bucket.obj" \ + "$(INTDIR)\util.obj" \ + "$(INTDIR)\util_cfgtree.obj" \ + "$(INTDIR)\util_filter.obj" \ + "$(INTDIR)\util_md5.obj" \ + "$(INTDIR)\util_pcre.obj" \ + "$(INTDIR)\util_script.obj" \ + "$(INTDIR)\util_time.obj" \ + "$(INTDIR)\util_win32.obj" \ + "$(INTDIR)\util_xml.obj" \ + "$(INTDIR)\ap_regkey.obj" \ + "$(INTDIR)\child.obj" \ + "$(INTDIR)\listen.obj" \ + "$(INTDIR)\mpm_common.obj" \ + "$(INTDIR)\mpm_winnt.obj" \ + "$(INTDIR)\nt_eventlog.obj" \ + "$(INTDIR)\provider.obj" \ + "$(INTDIR)\scoreboard.obj" \ + "$(INTDIR)\service.obj" \ + "$(INTDIR)\libhttpd.res" \ + ".\srclib\apr\Release\libapr-1.lib" \ + ".\srclib\apr-iconv\Release\libapriconv-1.lib" \ + ".\srclib\apr-util\Release\libaprutil-1.lib" \ + ".\srclib\pcre\LibR\pcre.lib" + +"$(OUTDIR)\libhttpd.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + cl.exe /nologo /MD /W3 /O2 /Oy- /Zi /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Release\libhttpd" /FD /c server\buildmark.c /Fo"Release\buildmark.obj" + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\libhttpd.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libhttpd.dll" + if exist .\Release\libhttpd.dll.manifest mt.exe -manifest .\Release\libhttpd.dll.manifest -outputresource:.\Release\libhttpd.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : ".\server\test_char.h" ".\include\mpm_default.h" ".\include\mpm.h" ".\include\mod_so.h" ".\include\mod_proxy.h" ".\include\mod_include.h" ".\include\mod_dav.h" ".\include\mod_core.h" ".\include\mod_cgi.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "pcre - Win32 Debug" "gen_test_char - Win32 Debug" "libaprutil - Win32 Debug" "libapriconv - Win32 Debug" "libapr - Win32 Debug" ".\server\test_char.h" ".\include\mpm_default.h" ".\include\mpm.h" ".\include\mod_so.h" ".\include\mod_proxy.h" ".\include\mod_include.h" ".\include\mod_dav.h" ".\include\mod_core.h" ".\include\mod_cgi.h" "$(OUTDIR)\libhttpd.dll" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libapriconv - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "gen_test_char - Win32 DebugCLEAN" "pcre - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\ap_regkey.obj" + -@erase "$(INTDIR)\byterange_filter.obj" + -@erase "$(INTDIR)\child.obj" + -@erase "$(INTDIR)\chunk_filter.obj" + -@erase "$(INTDIR)\config.obj" + -@erase "$(INTDIR)\connection.obj" + -@erase "$(INTDIR)\core.obj" + -@erase "$(INTDIR)\core_filters.obj" + -@erase "$(INTDIR)\eoc_bucket.obj" + -@erase "$(INTDIR)\error_bucket.obj" + -@erase "$(INTDIR)\http_core.obj" + -@erase "$(INTDIR)\http_etag.obj" + -@erase "$(INTDIR)\http_filters.obj" + -@erase "$(INTDIR)\http_protocol.obj" + -@erase "$(INTDIR)\http_request.obj" + -@erase "$(INTDIR)\libhttpd.res" + -@erase "$(INTDIR)\libhttpd_cl.idb" + -@erase "$(INTDIR)\libhttpd_cl.pdb" + -@erase "$(INTDIR)\listen.obj" + -@erase "$(INTDIR)\log.obj" + -@erase "$(INTDIR)\mod_so.obj" + -@erase "$(INTDIR)\mod_win32.obj" + -@erase "$(INTDIR)\modules.obj" + -@erase "$(INTDIR)\mpm_common.obj" + -@erase "$(INTDIR)\mpm_winnt.obj" + -@erase "$(INTDIR)\nt_eventlog.obj" + -@erase "$(INTDIR)\protocol.obj" + -@erase "$(INTDIR)\provider.obj" + -@erase "$(INTDIR)\request.obj" + -@erase "$(INTDIR)\scoreboard.obj" + -@erase "$(INTDIR)\service.obj" + -@erase "$(INTDIR)\util.obj" + -@erase "$(INTDIR)\util_cfgtree.obj" + -@erase "$(INTDIR)\util_filter.obj" + -@erase "$(INTDIR)\util_md5.obj" + -@erase "$(INTDIR)\util_pcre.obj" + -@erase "$(INTDIR)\util_script.obj" + -@erase "$(INTDIR)\util_time.obj" + -@erase "$(INTDIR)\util_win32.obj" + -@erase "$(INTDIR)\util_xml.obj" + -@erase "$(INTDIR)\vhost.obj" + -@erase "$(OUTDIR)\libhttpd.dll" + -@erase "$(OUTDIR)\libhttpd.exp" + -@erase "$(OUTDIR)\libhttpd.lib" + -@erase "$(OUTDIR)\libhttpd.pdb" + -@erase ".\include\mod_cgi.h" + -@erase ".\include\mod_core.h" + -@erase ".\include\mod_dav.h" + -@erase ".\include\mod_include.h" + -@erase ".\include\mod_proxy.h" + -@erase ".\include\mod_so.h" + -@erase ".\include\mpm.h" + -@erase ".\include\mpm_default.h" + -@erase ".\server\test_char.h" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libhttpd_cl" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /d "_DEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\libhttpd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib "Debug\buildmark.obj" /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libhttpd.pdb" /debug /out:"$(OUTDIR)\libhttpd.dll" /implib:"$(OUTDIR)\libhttpd.lib" /base:@"os\win32\BaseAddr.ref",libhttpd.dll +LINK32_OBJS= \ + "$(INTDIR)\byterange_filter.obj" \ + "$(INTDIR)\chunk_filter.obj" \ + "$(INTDIR)\config.obj" \ + "$(INTDIR)\connection.obj" \ + "$(INTDIR)\core.obj" \ + "$(INTDIR)\core_filters.obj" \ + "$(INTDIR)\http_core.obj" \ + "$(INTDIR)\http_etag.obj" \ + "$(INTDIR)\http_filters.obj" \ + "$(INTDIR)\http_protocol.obj" \ + "$(INTDIR)\http_request.obj" \ + "$(INTDIR)\log.obj" \ + "$(INTDIR)\protocol.obj" \ + "$(INTDIR)\request.obj" \ + "$(INTDIR)\vhost.obj" \ + "$(INTDIR)\mod_so.obj" \ + "$(INTDIR)\mod_win32.obj" \ + "$(INTDIR)\modules.obj" \ + "$(INTDIR)\eoc_bucket.obj" \ + "$(INTDIR)\error_bucket.obj" \ + "$(INTDIR)\util.obj" \ + "$(INTDIR)\util_cfgtree.obj" \ + "$(INTDIR)\util_filter.obj" \ + "$(INTDIR)\util_md5.obj" \ + "$(INTDIR)\util_pcre.obj" \ + "$(INTDIR)\util_script.obj" \ + "$(INTDIR)\util_time.obj" \ + "$(INTDIR)\util_win32.obj" \ + "$(INTDIR)\util_xml.obj" \ + "$(INTDIR)\ap_regkey.obj" \ + "$(INTDIR)\child.obj" \ + "$(INTDIR)\listen.obj" \ + "$(INTDIR)\mpm_common.obj" \ + "$(INTDIR)\mpm_winnt.obj" \ + "$(INTDIR)\nt_eventlog.obj" \ + "$(INTDIR)\provider.obj" \ + "$(INTDIR)\scoreboard.obj" \ + "$(INTDIR)\service.obj" \ + "$(INTDIR)\libhttpd.res" \ + ".\srclib\apr\Debug\libapr-1.lib" \ + ".\srclib\apr-iconv\Debug\libapriconv-1.lib" \ + ".\srclib\apr-util\Debug\libaprutil-1.lib" \ + ".\srclib\pcre\LibD\pcre.lib" + +"$(OUTDIR)\libhttpd.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + cl.exe /nologo /MDd /W3 /EHsc /Zi /Od /I "./include" /I "./srclib/apr/include" /I "./srclib/apr-util/include" /I "./srclib/pcre" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "PCRE_STATIC" /D "AP_DECLARE_EXPORT" /Fd"Debug\libhttpd" /FD /c server\buildmark.c /Fo"Debug\buildmark.obj" + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\libhttpd.dll +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libhttpd.dll" + if exist .\Debug\libhttpd.dll.manifest mt.exe -manifest .\Debug\libhttpd.dll.manifest -outputresource:.\Debug\libhttpd.dll;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("libhttpd.dep") +!INCLUDE "libhttpd.dep" +!ELSE +!MESSAGE Warning: cannot find "libhttpd.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "libhttpd - Win32 Release" || "$(CFG)" == "libhttpd - Win32 Debug" +SOURCE=.\modules\generators\mod_cgi.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\generators\mod_cgi.h + +".\include\mod_cgi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_cgi.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\generators\mod_cgi.h + +".\include\mod_cgi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_cgi.h +<< + + +!ENDIF + +SOURCE=.\modules\http\mod_core.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\http\mod_core.h + +".\include\mod_core.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_core.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\http\mod_core.h + +".\include\mod_core.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_core.h +<< + + +!ENDIF + +SOURCE=.\modules\dav\main\mod_dav.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\dav\main\mod_dav.h + +".\include\mod_dav.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_dav.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\dav\main\mod_dav.h + +".\include\mod_dav.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_dav.h +<< + + +!ENDIF + +SOURCE=.\modules\filters\mod_include.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\filters\mod_include.h + +".\include\mod_include.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_include.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\filters\mod_include.h + +".\include\mod_include.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_include.h +<< + + +!ENDIF + +SOURCE=.\modules\proxy\mod_proxy.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\proxy\mod_proxy.h + +".\include\mod_proxy.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_proxy.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\proxy\mod_proxy.h + +".\include\mod_proxy.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_proxy.h +<< + + +!ENDIF + +SOURCE=.\modules\mappers\mod_so.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\modules\mappers\mod_so.h + +".\include\mod_so.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_so.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\modules\mappers\mod_so.h + +".\include\mod_so.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mod_so.h +<< + + +!ENDIF + +SOURCE=.\os\win32\os.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\os\win32\os.h + +".\include\os.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\os.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\os\win32\os.h + +".\include\os.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\os.h +<< + + +!ENDIF + +SOURCE=.\server\buildmark.c +SOURCE=.\modules\http\byterange_filter.c + +"$(INTDIR)\byterange_filter.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\chunk_filter.c + +"$(INTDIR)\chunk_filter.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\config.c + +"$(INTDIR)\config.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\connection.c + +"$(INTDIR)\connection.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm_default.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\core.c + +"$(INTDIR)\core.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\mod_core.h" ".\include\mod_proxy.h" ".\include\mod_so.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\core_filters.c + +"$(INTDIR)\core_filters.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\mod_core.h" ".\include\mod_proxy.h" ".\include\mod_so.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_core.c + +"$(INTDIR)\http_core.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_etag.c + +"$(INTDIR)\http_etag.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_filters.c + +"$(INTDIR)\http_filters.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_protocol.c + +"$(INTDIR)\http_protocol.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\http\http_request.c + +"$(INTDIR)\http_request.obj" : $(SOURCE) "$(INTDIR)" ".\modules\http\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\log.c + +"$(INTDIR)\log.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\protocol.c + +"$(INTDIR)\protocol.obj" : $(SOURCE) "$(INTDIR)" ".\include\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\request.c + +"$(INTDIR)\request.obj" : $(SOURCE) "$(INTDIR)" ".\include\mod_core.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\vhost.c + +"$(INTDIR)\vhost.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\mappers\mod_so.c + +"$(INTDIR)\mod_so.obj" : $(SOURCE) "$(INTDIR)" ".\modules\mappers\mod_so.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\modules\arch\win32\mod_win32.c + +"$(INTDIR)\mod_win32.obj" : $(SOURCE) "$(INTDIR)" ".\include\mod_core.h" ".\include\mod_cgi.h" ".\include\os.h" ".\include\mod_include.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\os\win32\modules.c + +"$(INTDIR)\modules.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\eoc_bucket.c + +"$(INTDIR)\eoc_bucket.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\error_bucket.c + +"$(INTDIR)\error_bucket.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util.c + +"$(INTDIR)\util.obj" : $(SOURCE) "$(INTDIR)" ".\server\test_char.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_cfgtree.c + +"$(INTDIR)\util_cfgtree.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_filter.c + +"$(INTDIR)\util_filter.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_md5.c + +"$(INTDIR)\util_md5.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_pcre.c + +"$(INTDIR)\util_pcre.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_script.c + +"$(INTDIR)\util_script.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_time.c + +"$(INTDIR)\util_time.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\os\win32\util_win32.c + +"$(INTDIR)\util_win32.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\util_xml.c + +"$(INTDIR)\util_xml.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\os\win32\ap_regkey.c + +"$(INTDIR)\ap_regkey.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\child.c + +"$(INTDIR)\child.obj" : $(SOURCE) "$(INTDIR)" ".\server\mpm\winnt\mpm_default.h" ".\include\os.h" ".\include\mpm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\listen.c + +"$(INTDIR)\listen.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\mpm.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\server\mpm\winnt\mpm.h + +".\include\mpm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\server\mpm\winnt\mpm.h + +".\include\mpm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm.h +<< + + +!ENDIF + +SOURCE=.\server\mpm_common.c + +"$(INTDIR)\mpm_common.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\mpm_default.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\mpm_default.h + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\server\mpm\winnt\mpm_default.h + +".\include\mpm_default.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm_default.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\server\mpm\winnt\mpm_default.h + +".\include\mpm_default.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\mpm_default.h +<< + + +!ENDIF + +SOURCE=.\server\mpm\winnt\mpm_winnt.c + +"$(INTDIR)\mpm_winnt.obj" : $(SOURCE) "$(INTDIR)" ".\server\mpm\winnt\mpm_default.h" ".\include\os.h" ".\include\mpm.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\nt_eventlog.c + +"$(INTDIR)\nt_eventlog.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\provider.c + +"$(INTDIR)\provider.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\scoreboard.c + +"$(INTDIR)\scoreboard.obj" : $(SOURCE) "$(INTDIR)" ".\include\mpm.h" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +SOURCE=.\server\mpm\winnt\service.c + +"$(INTDIR)\service.obj" : $(SOURCE) "$(INTDIR)" ".\include\os.h" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"libapr - Win32 Release" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\.." + +"libapr - Win32 ReleaseCLEAN" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\.." + +"libapr - Win32 DebugCLEAN" : + cd ".\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"libapriconv - Win32 Release" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" + cd "..\.." + +"libapriconv - Win32 ReleaseCLEAN" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"libapriconv - Win32 Debug" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" + cd "..\.." + +"libapriconv - Win32 DebugCLEAN" : + cd ".\srclib\apr-iconv" + $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\.." + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\.." + +"libaprutil - Win32 DebugCLEAN" : + cd ".\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"gen_test_char - Win32 Release" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Release" + cd ".." + +"gen_test_char - Win32 ReleaseCLEAN" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Release" RECURSE=1 CLEAN + cd ".." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"gen_test_char - Win32 Debug" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Debug" + cd ".." + +"gen_test_char - Win32 DebugCLEAN" : + cd ".\server" + $(MAKE) /$(MAKEFLAGS) /F ".\gen_test_char.mak" CFG="gen_test_char - Win32 Debug" RECURSE=1 CLEAN + cd ".." + +!ENDIF + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +"pcre - Win32 Release" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Release" + cd "..\.." + +"pcre - Win32 ReleaseCLEAN" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Release" RECURSE=1 CLEAN + cd "..\.." + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +"pcre - Win32 Debug" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Debug" + cd "..\.." + +"pcre - Win32 DebugCLEAN" : + cd ".\srclib\pcre" + $(MAKE) /$(MAKEFLAGS) /F ".\pcre.mak" CFG="pcre - Win32 Debug" RECURSE=1 CLEAN + cd "..\.." + +!ENDIF + +SOURCE=.\server\gen_test_char.exe + +!IF "$(CFG)" == "libhttpd - Win32 Release" + +InputPath=.\server\gen_test_char.exe +USERDEP__GEN_T=".\include\os.h" + +".\server\test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" $(USERDEP__GEN_T) + <.\server\test_char.h +<< + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + +InputPath=.\server\gen_test_char.exe +USERDEP__GEN_T=".\include\os.h" + +".\server\test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" $(USERDEP__GEN_T) + <.\server\test_char.h +<< + + +!ENDIF + +SOURCE=.\build\win32\httpd.rc + +!IF "$(CFG)" == "libhttpd - Win32 Release" + + +"$(INTDIR)\libhttpd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /i "build\win32" /d "NDEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" $(SOURCE) + + +!ELSEIF "$(CFG)" == "libhttpd - Win32 Debug" + + +"$(INTDIR)\libhttpd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\libhttpd.res" /i "./include" /i "./srclib/apr/include" /i "build\win32" /d "_DEBUG" /d BIN_NAME="libhttpd.dll" /d LONG_NAME="Apache HTTP Server Core" $(SOURCE) + + +!ENDIF + + +!ENDIF + diff --git a/modules/NWGNUmakefile b/modules/NWGNUmakefile index 57387949b23..c897d7ed88c 100644 --- a/modules/NWGNUmakefile +++ b/modules/NWGNUmakefile @@ -1,15 +1,39 @@ +# +# To build with exerimental modules set the environment +# variable WITH_EXPERIMENTAL=1 +# To build with the mod_ssl module set the environment +# variable WITH_SSL=1 + +# +# Check if LDAP is enabled in APR-UTIL +# +include $(AP_WORK)/build/NWGNUenvironment.inc +ifeq "$(wildcard $(APRUTIL)/include/apr_ldap.h)" "$(APRUTIL)/include/apr_ldap.h" +WITH_LDAP = $(shell $(AWK) '/^\#define APR_HAS_LDAP /{print $$3}' $(APRUTIL)/include/apr_ldap.h) +else +WITH_LDAP = 1 +ifneq "$(MAKECMDGOALS)" "clean" +ifneq "$(findstring clobber_,$(MAKECMDGOALS))" "clobber_" +WITH_LDAP = 0 +endif +endif +endif + +# If USE_STDSOCKETS is defined we allways build mod_ssl +ifdef USE_STDSOCKETS +WITH_SSL = 1 +endif + # # Declare the sub-directories to be built here # -# To build with exerimental modules set the environment -# variable EXPERIMENTAL=1 SUBDIRS = \ aaa \ cache \ - dav\main \ - dav\fs \ - dav\lock \ + dav/main \ + dav/fs \ + dav/lock \ echo \ generators \ loggers \ @@ -17,47 +41,44 @@ SUBDIRS = \ metadata \ proxy \ filters \ + database \ $(EOLIST) -# If LDAPSDK has been defined then build the util_ldap module +# If WITH_LDAP and LDAPSDK have been defined then build the util_ldap module +ifeq "$(WITH_LDAP)" "1" ifneq "$(LDAPSDK)" "" -SUBDIRS += ldap \ - $(EOLIST) +SUBDIRS += ldap +endif endif -# If OSSLSDK has been defined then build the mod_ssl module -ifndef USE_STDSOCKETS +# If WITH_SSL and OSSLSDK have been defined then build the mod_ssl module +ifeq "$(WITH_SSL)" "1" ifneq "$(OSSLSDK)" "" -SUBDIRS += ssl \ - $(EOLIST) +SUBDIRS += ssl endif endif -#If the mod_edir directory exists then build the mod_edir module -ifeq "$(wildcard $(AP_WORK)\modules\mod_edir)" "$(AP_WORK)\modules\mod_edir" -SUBDIRS += mod_edir \ - $(EOLIST) +# Allow the experimental modules to be built if WITH_EXPERIMENTAL is defined +ifeq "$(WITH_EXPERIMENTAL)" "1" +SUBDIRS += experimental endif -# Allow the experimental modules to be built if EXPERIMENTAL is defined -ifdef EXPERIMENTAL -SUBDIRS += experimental \ - $(EOLIST) +# Allow the debugging modules to be built if WITH_DEBUGGING is defined +ifeq "$(WITH_DEBUGGING)" "1" +SUBDIRS += debug endif -# Allow the experimental modules to be built if EXPERIMENTAL is defined -ifdef DEBUG -SUBDIRS += debug \ - $(EOLIST) +# If the mod_edir directory exists then build the mod_edir module +ifeq "$(wildcard $(AP_WORK)\modules\mod_edir)" "$(AP_WORK)\modules\mod_edir" +SUBDIRS += mod_edir endif - # # Get the 'head' of the build environment. This includes default targets and # paths to tools # -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc # # build this level's files @@ -71,4 +92,5 @@ endif # installation area # install :: nlms FORCE - + + diff --git a/modules/README b/modules/README index eab7067e0d0..f4d5549dbe3 100644 --- a/modules/README +++ b/modules/README @@ -10,6 +10,9 @@ cache/ This directory houses modules that implement file and data caching capability. +database/ + The apache DBD framework manages connections to SQL backends efficiently. + dav/ This directory houses modules that implement WebDAV functionality. diff --git a/modules/aaa/NWGNUauthbasc b/modules/aaa/NWGNUauthbasc index bc7e1ec92c9..60507845bf1 100644 --- a/modules/aaa/NWGNUauthbasc +++ b/modules/aaa/NWGNUauthbasc @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authbasc +NLM_NAME = authbasc # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = AuthBasic Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ auth_basic_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthdigt b/modules/aaa/NWGNUauthdigt index 3b594b29c33..32e243dcdd2 100644 --- a/modules/aaa/NWGNUauthdigt +++ b/modules/aaa/NWGNUauthdigt @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authdigt +NLM_NAME = authdigt # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = Digest Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ auth_digest_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthnalias b/modules/aaa/NWGNUauthnalias index 3c8449ab456..859e34fb735 100644 --- a/modules/aaa/NWGNUauthnalias +++ b/modules/aaa/NWGNUauthnalias @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authnalias +NLM_NAME = authnalias # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = AuthnAlias Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authn_alias_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthnano b/modules/aaa/NWGNUauthnano index 5bdd1c2f822..e7921c308c3 100644 --- a/modules/aaa/NWGNUauthnano +++ b/modules/aaa/NWGNUauthnano @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authnano +NLM_NAME = authnano # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = AuthAnon Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authn_anon_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthndbd b/modules/aaa/NWGNUauthndbd new file mode 100644 index 00000000000..efbbd27767a --- /dev/null +++ b/modules/aaa/NWGNUauthndbd @@ -0,0 +1,249 @@ +# +# Make sure all needed macro's are defined +# + +# +# Get the 'head' of the build environment if necessary. This includes default +# targets and paths to tools +# + +ifndef EnvironmentDefined +include $(AP_WORK)/build/NWGNUhead.inc +endif + +# +# These directories will be at the beginning of the include list, followed by +# INCDIRS +# +XINCDIRS += \ + $(APR)/include \ + $(APRUTIL)/include \ + $(AP_WORK)/include \ + $(NWOS) \ + $(STDMOD)/database \ + $(EOLIST) + +# +# These flags will come after CFLAGS +# +XCFLAGS += \ + $(EOLIST) + +# +# These defines will come after DEFINES +# +XDEFINES += \ + $(EOLIST) + +# +# These flags will be added to the link.opt file +# +XLFLAGS += \ + $(EOLIST) + +# +# These values will be appended to the correct variables based on the value of +# RELEASE +# +ifeq "$(RELEASE)" "debug" +XINCDIRS += \ + $(EOLIST) + +XCFLAGS += \ + $(EOLIST) + +XDEFINES += \ + $(EOLIST) + +XLFLAGS += \ + $(EOLIST) +endif + +ifeq "$(RELEASE)" "noopt" +XINCDIRS += \ + $(EOLIST) + +XCFLAGS += \ + $(EOLIST) + +XDEFINES += \ + $(EOLIST) + +XLFLAGS += \ + $(EOLIST) +endif + +ifeq "$(RELEASE)" "release" +XINCDIRS += \ + $(EOLIST) + +XCFLAGS += \ + $(EOLIST) + +XDEFINES += \ + $(EOLIST) + +XLFLAGS += \ + $(EOLIST) +endif + +# +# These are used by the link target if an NLM is being generated +# This is used by the link 'name' directive to name the nlm. If left blank +# TARGET_nlm (see below) will be used. +# +NLM_NAME = authndbd + +# +# This is used by the link '-desc ' directive. +# If left blank, NLM_NAME will be used. +# +NLM_DESCRIPTION = Apache $(VERSION_STR) SQL Database Authentication Module + +# +# This is used by the '-threadname' directive. If left blank, +# NLM_NAME Thread will be used. +# +NLM_THREAD_NAME = AuthnDBD Module + +# +# If this is specified, it will override VERSION value in +# $(AP_WORK)/build/NWGNUenvironment.inc +# +NLM_VERSION = + +# +# If this is specified, it will override the default of 64K +# +NLM_STACK_SIZE = 8192 + + +# +# If this is specified it will be used by the link '-entry' directive +# +NLM_ENTRY_SYM = + +# +# If this is specified it will be used by the link '-exit' directive +# +NLM_EXIT_SYM = + +# +# If this is specified it will be used by the link '-check' directive +# +NLM_CHECK_SYM = + +# +# If these are specified it will be used by the link '-flags' directive +# +NLM_FLAGS = + +# +# If this is specified it will be linked in with the XDCData option in the def +# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled +# by setting APACHE_UNIPROC in the environment +# +XDCDATA = + +# +# If there is an NLM target, put it here +# +TARGET_nlm = \ + $(OBJDIR)/authndbd.nlm \ + $(EOLIST) + +# +# If there is an LIB target, put it here +# +TARGET_lib = \ + $(EOLIST) + +# +# These are the OBJ files needed to create the NLM target above. +# Paths must all use the '/' character +# +FILES_nlm_objs = \ + $(OBJDIR)/mod_authn_dbd.o \ + $(EOLIST) + +# +# These are the LIB files needed to create the NLM target above. +# These will be added as a library command in the link.opt file. +# +FILES_nlm_libs = \ + $(PRELUDE) \ + $(EOLIST) + +# +# These are the modules that the above NLM target depends on to load. +# These will be added as a module command in the link.opt file. +# +FILES_nlm_modules = \ + aprlib \ + libc \ + $(EOLIST) + +# +# If the nlm has a msg file, put it's path here +# +FILE_nlm_msg = + +# +# If the nlm has a hlp file put it's path here +# +FILE_nlm_hlp = + +# +# If this is specified, it will override $(NWOS)\copyright.txt. +# +FILE_nlm_copyright = + +# +# Any additional imports go here +# +FILES_nlm_Ximports = \ + @aprlib.imp \ + @httpd.imp \ + @libc.imp \ + $(EOLIST) + +# +# Any symbols exported to here +# +FILES_nlm_exports = \ + authn_dbd_module \ + $(EOLIST) + +# +# These are the OBJ files needed to create the LIB target above. +# Paths must all use the '/' character +# +FILES_lib_objs = \ + $(EOLIST) + +# +# implement targets and dependancies (leave this section alone) +# + +libs :: $(OBJDIR) $(TARGET_lib) + +nlms :: libs $(TARGET_nlm) + +# +# Updated this target to create necessary directories and copy files to the +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) +# +install :: nlms FORCE + +# +# Any specialized rules here +# + +# +# Include the 'tail' makefile that has targets that depend on variables defined +# in this makefile +# + +include $(APBUILD)/NWGNUtail.inc + + diff --git a/modules/aaa/NWGNUauthndbm b/modules/aaa/NWGNUauthndbm index 9ebfd871a99..31f43d601bd 100644 --- a/modules/aaa/NWGNUauthndbm +++ b/modules/aaa/NWGNUauthndbm @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,12 +16,10 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # @@ -57,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -71,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -93,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authndbm +NLM_NAME = authndbm # # This is used by the link '-desc ' directive. @@ -109,9 +107,9 @@ NLM_THREAD_NAME = AuthnDBM Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -122,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -137,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -172,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -203,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -214,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authn_dbm_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -232,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -245,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthndef b/modules/aaa/NWGNUauthndef index e77d40dc337..ec272ab6e50 100644 --- a/modules/aaa/NWGNUauthndef +++ b/modules/aaa/NWGNUauthndef @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authndef +NLM_NAME = authndef # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = Authndef Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authn_default_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthnfil b/modules/aaa/NWGNUauthnfil index 1cfbb422733..5017c919d3d 100644 --- a/modules/aaa/NWGNUauthnfil +++ b/modules/aaa/NWGNUauthnfil @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authnfil +NLM_NAME = authnfil # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = AuthnFile Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authn_file_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthnzldap b/modules/aaa/NWGNUauthnzldap index b1e996df704..b260b73a9f3 100644 --- a/modules/aaa/NWGNUauthnzldap +++ b/modules/aaa/NWGNUauthnzldap @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,11 +16,10 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # @@ -64,7 +63,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -78,7 +77,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -100,7 +99,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authnzldap +NLM_NAME = authnzldap # # This is used by the link '-desc ' directive. @@ -116,9 +115,9 @@ NLM_THREAD_NAME = AuthnzLDAP Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -129,12 +128,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -144,14 +143,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -179,7 +178,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -217,10 +216,10 @@ FILES_nlm_Ximports = \ util_ldap_cache_getuserdn \ util_ldap_cache_compare \ util_ldap_cache_comparedn \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ - @$(LDAPSDK)/imports/lldapsdk.imp \ + @lldapsdk.imp \ $(EOLIST) # @@ -229,13 +228,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authnz_ldap_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -247,7 +246,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -260,5 +259,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthzdbm b/modules/aaa/NWGNUauthzdbm index 1b7bd137603..32bfff64bb7 100644 --- a/modules/aaa/NWGNUauthzdbm +++ b/modules/aaa/NWGNUauthzdbm @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authzdbm +NLM_NAME = authzdbm # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = AuthzDBM Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authz_dbm_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthzdef b/modules/aaa/NWGNUauthzdef index 348785b04dd..58b50cf68fb 100644 --- a/modules/aaa/NWGNUauthzdef +++ b/modules/aaa/NWGNUauthzdef @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authzdef +NLM_NAME = authzdef # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = Authzdef Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authz_default_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthzgrp b/modules/aaa/NWGNUauthzgrp index a104c4fd76f..24a96e5fdbe 100644 --- a/modules/aaa/NWGNUauthzgrp +++ b/modules/aaa/NWGNUauthzgrp @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authzgrp +NLM_NAME = authzgrp # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = AuthzGrp Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,13 +212,13 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authz_groupfile_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUauthzusr b/modules/aaa/NWGNUauthzusr index eb9e2c93c3d..aa5ebd7d1f2 100644 --- a/modules/aaa/NWGNUauthzusr +++ b/modules/aaa/NWGNUauthzusr @@ -8,7 +8,7 @@ # ifndef EnvironmentDefined -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc endif # @@ -16,19 +16,16 @@ endif # INCDIRS # XINCDIRS += \ - $(AP_WORK)/include \ - $(NWOS) \ - $(AP_WORK)/modules/arch/netware \ $(APR)/include \ $(APRUTIL)/include \ - $(APR) \ + $(AP_WORK)/include \ + $(NWOS) \ $(EOLIST) # # These flags will come after CFLAGS # XCFLAGS += \ - -prefix pre_nw.h \ $(EOLIST) # @@ -58,7 +55,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -72,7 +69,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -94,7 +91,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = authzusr +NLM_NAME = authzusr # # This is used by the link '-desc ' directive. @@ -110,9 +107,9 @@ NLM_THREAD_NAME = AuthzUser Module # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -123,12 +120,12 @@ NLM_STACK_SIZE = 8192 # # If this is specified it will be used by the link '-entry' directive # -NLM_ENTRY_SYM = _LibCPrelude +NLM_ENTRY_SYM = # # If this is specified it will be used by the link '-exit' directive # -NLM_EXIT_SYM = _LibCPostlude +NLM_EXIT_SYM = # # If this is specified it will be used by the link '-check' directive @@ -138,14 +135,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -173,7 +170,7 @@ FILES_nlm_objs = \ # These will be added as a library command in the link.opt file. # FILES_nlm_libs = \ - libcpre.o \ + $(PRELUDE) \ $(EOLIST) # @@ -204,8 +201,8 @@ FILE_nlm_copyright = # Any additional imports go here # FILES_nlm_Ximports = \ - @$(APR)/aprlib.imp \ - @$(NWOS)/httpd.imp \ + @aprlib.imp \ + @httpd.imp \ @libc.imp \ $(EOLIST) @@ -215,7 +212,7 @@ FILES_nlm_Ximports = \ FILES_nlm_exports = \ authz_user_module \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character @@ -233,7 +230,7 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE @@ -246,5 +243,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc +include $(APBUILD)/NWGNUtail.inc + diff --git a/modules/aaa/NWGNUmakefile b/modules/aaa/NWGNUmakefile index 302aec8cb37..f53d72bb72e 100644 --- a/modules/aaa/NWGNUmakefile +++ b/modules/aaa/NWGNUmakefile @@ -10,7 +10,7 @@ SUBDIRS = \ # paths to tools # -include $(AP_WORK)\build\NWGNUhead.inc +include $(AP_WORK)/build/NWGNUhead.inc # # build this level's files @@ -59,7 +59,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "noopt" @@ -73,7 +73,7 @@ XDEFINES += \ $(EOLIST) XLFLAGS += \ - $(EOLIST) + $(EOLIST) endif ifeq "$(RELEASE)" "release" @@ -95,7 +95,7 @@ endif # This is used by the link 'name' directive to name the nlm. If left blank # TARGET_nlm (see below) will be used. # -NLM_NAME = +NLM_NAME = # # This is used by the link '-desc ' directive. @@ -111,9 +111,9 @@ NLM_THREAD_NAME = # # If this is specified, it will override VERSION value in -# $(AP_WORK)\build\NWGNUenvironment.inc +# $(AP_WORK)/build/NWGNUenvironment.inc # -NLM_VERSION = +NLM_VERSION = # # If this is specified, it will override the default of 64K @@ -139,14 +139,14 @@ NLM_CHECK_SYM = # # If these are specified it will be used by the link '-flags' directive # -NLM_FLAGS = +NLM_FLAGS = # # If this is specified it will be linked in with the XDCData option in the def # file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled # by setting APACHE_UNIPROC in the environment # -XDCDATA = +XDCDATA = # # If there is an NLM target, put it here @@ -159,6 +159,7 @@ TARGET_nlm = \ $(OBJDIR)/authndbm.nlm \ $(OBJDIR)/authndef.nlm \ $(OBJDIR)/authnfil.nlm \ + $(OBJDIR)/authndbd.nlm \ $(OBJDIR)/authzdbm.nlm \ $(OBJDIR)/authzdef.nlm \ $(OBJDIR)/authzgrp.nlm \ @@ -225,13 +226,13 @@ FILES_nlm_Ximports = \ # FILES_nlm_exports = \ $(EOLIST) - + # # These are the OBJ files needed to create the LIB target above. # Paths must all use the '/' character # FILES_lib_objs = \ - $(EOLIST) + $(EOLIST) # # implement targets and dependancies (leave this section alone) @@ -243,10 +244,10 @@ nlms :: libs $(TARGET_nlm) # # Updated this target to create necessary directories and copy files to the -# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples) +# correct place. (See $(AP_WORK)/build/NWGNUhead.inc for examples) # install :: nlms FORCE - copy $(OBJDIR)\*.nlm $(INSTALL)\Apache2\modules\*.* + $(call COPY,$(OBJDIR)/*.nlm, $(INSTALLBASE)/modules/) # # Any specialized rules here @@ -257,5 +258,6 @@ install :: nlms FORCE # in this makefile # -include $(AP_WORK)\build\NWGNUtail.inc - +include $(APBUILD)/NWGNUtail.inc + + diff --git a/modules/aaa/config.m4 b/modules/aaa/config.m4 index 6a853d758a9..3cdd0a26c02 100644 --- a/modules/aaa/config.m4 +++ b/modules/aaa/config.m4 @@ -12,6 +12,7 @@ dnl APACHE_MODULE(authn_file, file-based authentication control, , , yes) APACHE_MODULE(authn_dbm, DBM-based authentication control, , , most) APACHE_MODULE(authn_anon, anonymous user authentication control, , , most) +APACHE_MODULE(authn_dbd, SQL-based authentication control, , , most) dnl - and just in case all of the above punt; a default handler to dnl keep the bad guys out. @@ -33,7 +34,10 @@ APACHE_MODULE(authz_owner, 'require file-owner' authorization control, , , most) dnl LDAP authentication module. This module has both the authn and authz dnl modules in one, so as to share the LDAP server config directives. -APACHE_MODULE(authnz_ldap, LDAP based authentication, , , no) +APACHE_MODULE(authnz_ldap, LDAP based authentication, , , no, [ + MOD_AUTHNZ_LDAP_LDADD="`$apu_config --ldap-libs`" || MOD_AUTHNZ_LDAP_LDADD="" + AC_SUBST(MOD_AUTHNZ_LDAP_LDADD) +]) dnl - and just in case all of the above punt; a default handler to dnl keep the bad guys out. diff --git a/modules/aaa/mod_auth.h b/modules/aaa/mod_auth.h index 7595f8b3934..1feefb3f278 100644 --- a/modules/aaa/mod_auth.h +++ b/modules/aaa/mod_auth.h @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -14,6 +14,14 @@ * limitations under the License. */ +/** + * @file mod_auth.h + * @brief uthentication Extension Module for Apache + * + * @defgroup MOD_AUTH mod_auth + * @ingroup APACHE_MODS + */ + #ifndef APACHE_MOD_AUTH_H #define APACHE_MOD_AUTH_H @@ -32,6 +40,8 @@ extern "C" { #define AUTHZ_GROUP_NOTE "authz_group_note" #define AUTHN_PROVIDER_NAME_NOTE "authn_provider_name" +#define AUTHN_PREFIX "AUTHENTICATE_" + typedef enum { AUTH_DENIED, AUTH_GRANTED, diff --git a/modules/aaa/mod_auth_basic.c b/modules/aaa/mod_auth_basic.c index ee296a44911..3e6491a2c54 100644 --- a/modules/aaa/mod_auth_basic.c +++ b/modules/aaa/mod_auth_basic.c @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -54,22 +54,9 @@ static const char *add_authn_provider(cmd_parms *cmd, void *config, { auth_basic_config_rec *conf = (auth_basic_config_rec*)config; authn_provider_list *newp; - const char *provider_name; - - if (strcasecmp(arg, "on") == 0) { - provider_name = AUTHN_DEFAULT_PROVIDER; - } - else if (strcasecmp(arg, "off") == 0) { - /* Clear all configured providers and return. */ - conf->providers = NULL; - return NULL; - } - else { - provider_name = apr_pstrdup(cmd->pool, arg); - } newp = apr_pcalloc(cmd->pool, sizeof(authn_provider_list)); - newp->provider_name = provider_name; + newp->provider_name = apr_pstrdup(cmd->pool, arg); /* lookup and cache the actual provider now */ newp->provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, @@ -87,7 +74,7 @@ static const char *add_authn_provider(cmd_parms *cmd, void *config, /* if it doesn't provide the appropriate function, reject it */ return apr_psprintf(cmd->pool, "The '%s' Authn provider doesn't support " - "Basic Authentication", provider_name); + "Basic Authentication", newp->provider_name); } /* Add it to the list now. */ @@ -256,7 +243,7 @@ static int authenticate_basic_user(request_rec *r) current_provider = current_provider->next; } while (current_provider); - + if (auth_result != AUTH_GRANTED) { int return_code; @@ -280,7 +267,7 @@ static int authenticate_basic_user(request_rec *r) break; case AUTH_GENERAL_ERROR: default: - /* We'll assume that the module has already said what its error + /* We'll assume that the module has already said what its error * was in the logs. */ return_code = HTTP_INTERNAL_SERVER_ERROR; diff --git a/modules/aaa/mod_auth_basic.dep b/modules/aaa/mod_auth_basic.dep new file mode 100644 index 00000000000..aab5f656fd4 --- /dev/null +++ b/modules/aaa/mod_auth_basic.dep @@ -0,0 +1,35 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_auth_basic.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_auth_basic.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_provider.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_log.h"\ + "..\..\include\http_protocol.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\include\util_filter.h"\ + "..\..\srclib\apr-util\include\apr_base64.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_md5.h"\ + "..\..\srclib\apr-util\include\apr_optional.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_lib.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_portable.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + ".\mod_auth.h"\ + diff --git a/modules/aaa/mod_auth_basic.dsp b/modules/aaa/mod_auth_basic.dsp index a79fc2fb48f..b45264ea5f4 100644 --- a/modules/aaa/mod_auth_basic.dsp +++ b/modules/aaa/mod_auth_basic.dsp @@ -47,13 +47,19 @@ RSC=rc.exe # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_auth_basic.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_auth_basic.so" /d LONG_NAME="auth_basic_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so /opt:ref +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_auth_basic.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ELSEIF "$(CFG)" == "mod_auth_basic - Win32 Debug" @@ -68,18 +74,24 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "AAA_DECLARE_EXPORT" /Fd"Debug\mod_auth_basic_src" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "AAA_DECLARE_EXPORT" /Fd"Debug\mod_auth_basic_src" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_auth_basic.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_auth_basic.so" /d LONG_NAME="auth_basic_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_auth_basic.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_auth_basic.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ENDIF @@ -93,36 +105,7 @@ SOURCE=.\mod_auth_basic.c # End Source File # Begin Source File -SOURCE=.\mod_auth_basic.rc -# End Source File -# Begin Source File - -SOURCE=..\..\build\win32\win32ver.awk - -!IF "$(CFG)" == "mod_auth_basic - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_auth_basic.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_auth_basic.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_auth_basic.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "mod_auth_basic - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_auth_basic.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_auth_basic.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_auth_basic.rc - -# End Custom Build - -!ENDIF - +SOURCE=..\..\build\win32\httpd.rc # End Source File # End Target # End Project diff --git a/modules/aaa/mod_auth_basic.mak b/modules/aaa/mod_auth_basic.mak new file mode 100644 index 00000000000..fb4224df79e --- /dev/null +++ b/modules/aaa/mod_auth_basic.mak @@ -0,0 +1,353 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_auth_basic.dsp +!IF "$(CFG)" == "" +CFG=mod_auth_basic - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_auth_basic - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_auth_basic - Win32 Release" && "$(CFG)" != "mod_auth_basic - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_auth_basic - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_auth_basic - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_auth_basic - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_auth_basic.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_auth_basic.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_auth_basic.obj" + -@erase "$(INTDIR)\mod_auth_basic.res" + -@erase "$(INTDIR)\mod_auth_basic_src.idb" + -@erase "$(INTDIR)\mod_auth_basic_src.pdb" + -@erase "$(OUTDIR)\mod_auth_basic.exp" + -@erase "$(OUTDIR)\mod_auth_basic.lib" + -@erase "$(OUTDIR)\mod_auth_basic.pdb" + -@erase "$(OUTDIR)\mod_auth_basic.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "AAA_DECLARE_EXPORT" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_basic_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_auth_basic.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_auth_basic.so" /d LONG_NAME="auth_basic_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_basic.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_basic.pdb" /debug /out:"$(OUTDIR)\mod_auth_basic.so" /implib:"$(OUTDIR)\mod_auth_basic.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_auth_basic.obj" \ + "$(INTDIR)\mod_auth_basic.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" + +"$(OUTDIR)\mod_auth_basic.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_auth_basic.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_auth_basic.so" + if exist .\Release\mod_auth_basic.so.manifest mt.exe -manifest .\Release\mod_auth_basic.so.manifest -outputresource:.\Release\mod_auth_basic.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_auth_basic - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_auth_basic.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_auth_basic.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_auth_basic.obj" + -@erase "$(INTDIR)\mod_auth_basic.res" + -@erase "$(INTDIR)\mod_auth_basic_src.idb" + -@erase "$(INTDIR)\mod_auth_basic_src.pdb" + -@erase "$(OUTDIR)\mod_auth_basic.exp" + -@erase "$(OUTDIR)\mod_auth_basic.lib" + -@erase "$(OUTDIR)\mod_auth_basic.pdb" + -@erase "$(OUTDIR)\mod_auth_basic.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "AAA_DECLARE_EXPORT" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_basic_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_auth_basic.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_auth_basic.so" /d LONG_NAME="auth_basic_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_basic.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_basic.pdb" /debug /out:"$(OUTDIR)\mod_auth_basic.so" /implib:"$(OUTDIR)\mod_auth_basic.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_basic.so +LINK32_OBJS= \ + "$(INTDIR)\mod_auth_basic.obj" \ + "$(INTDIR)\mod_auth_basic.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" + +"$(OUTDIR)\mod_auth_basic.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_auth_basic.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_auth_basic.so" + if exist .\Debug\mod_auth_basic.so.manifest mt.exe -manifest .\Debug\mod_auth_basic.so.manifest -outputresource:.\Debug\mod_auth_basic.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_auth_basic.dep") +!INCLUDE "mod_auth_basic.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_auth_basic.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_auth_basic - Win32 Release" || "$(CFG)" == "mod_auth_basic - Win32 Debug" + +!IF "$(CFG)" == "mod_auth_basic - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_auth_basic - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_auth_basic - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_auth_basic - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_auth_basic - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_auth_basic - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_auth_basic - Win32 Release" + + +"$(INTDIR)\mod_auth_basic.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_auth_basic.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_auth_basic.so" /d LONG_NAME="auth_basic_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_auth_basic - Win32 Debug" + + +"$(INTDIR)\mod_auth_basic.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_auth_basic.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_auth_basic.so" /d LONG_NAME="auth_basic_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_auth_basic.c + +"$(INTDIR)\mod_auth_basic.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_auth_digest.c b/modules/aaa/mod_auth_digest.c index 395fee0711a..cb409f125eb 100644 --- a/modules/aaa/mod_auth_digest.c +++ b/modules/aaa/mod_auth_digest.c @@ -1,9 +1,9 @@ -/* Copyright 1999-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -51,7 +51,7 @@ * The only problem is that it allows replay attacks when somebody * captures a packet sent to one server and sends it to another * one. Should we add "AuthDigestNcCheck Strict"? - * - expired nonces give amaya fits. + * - expired nonces give amaya fits. */ #include "apr_sha1.h" @@ -80,8 +80,8 @@ #include "mod_auth.h" -/* Disable shmem until pools/init gets sorted out - * remove following two lines when fixed +/* Disable shmem until pools/init gets sorted out + * remove following two lines when fixed */ #undef APR_HAS_SHARED_MEMORY #define APR_HAS_SHARED_MEMORY 0 @@ -200,7 +200,7 @@ module AP_MODULE_DECLARE_DATA auth_digest_module; static apr_status_t cleanup_tables(void *not_used) { - ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL, + ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL, "Digest: cleaning up shared memory"); fflush(stderr); @@ -238,7 +238,7 @@ static apr_status_t initialize_secret(server_rec *s) if (status != APR_SUCCESS) { char buf[120]; ap_log_error(APLOG_MARK, APLOG_CRIT, status, s, - "Digest: error generating secret: %s", + "Digest: error generating secret: %s", apr_strerror(status, buf, sizeof(buf))); return status; } @@ -446,22 +446,9 @@ static const char *add_authn_provider(cmd_parms *cmd, void *config, { digest_config_rec *conf = (digest_config_rec*)config; authn_provider_list *newp; - const char *provider_name; - - if (strcasecmp(arg, "on") == 0) { - provider_name = AUTHN_DEFAULT_PROVIDER; - } - else if (strcasecmp(arg, "off") == 0) { - /* Clear all configured providers and return. */ - conf->providers = NULL; - return NULL; - } - else { - provider_name = apr_pstrdup(cmd->pool, arg); - } newp = apr_pcalloc(cmd->pool, sizeof(authn_provider_list)); - newp->provider_name = provider_name; + newp->provider_name = apr_pstrdup(cmd->pool, arg); /* lookup and cache the actual provider now */ newp->provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, @@ -479,7 +466,7 @@ static const char *add_authn_provider(cmd_parms *cmd, void *config, /* if it doesn't provide the appropriate function, reject it */ return apr_psprintf(cmd->pool, "The '%s' Authn provider doesn't support " - "Digest Authentication", provider_name); + "Digest Authentication", newp->provider_name); } /* Add it to the list now. */ @@ -540,7 +527,7 @@ static const char *set_nonce_lifetime(cmd_parms *cmd, void *config, char *endptr; long lifetime; - lifetime = strtol(t, &endptr, 10); + lifetime = strtol(t, &endptr, 10); if (endptr < (t+strlen(t)) && !apr_isspace(*endptr)) { return apr_pstrcat(cmd->pool, "Invalid time in AuthDigestNonceLifetime: ", @@ -608,7 +595,7 @@ static const char *set_shmem_size(cmd_parms *cmd, void *config, char *endptr; long size, min; - size = strtol(size_str, &endptr, 10); + size = strtol(size_str, &endptr, 10); while (apr_isspace(*endptr)) endptr++; if (*endptr == '\0' || *endptr == 'b' || *endptr == 'B') { ; @@ -645,23 +632,23 @@ static const char *set_shmem_size(cmd_parms *cmd, void *config, static const command_rec digest_cmds[] = { - AP_INIT_TAKE1("AuthName", set_realm, NULL, OR_AUTHCFG, + AP_INIT_TAKE1("AuthName", set_realm, NULL, OR_AUTHCFG, "The authentication realm (e.g. \"Members Only\")"), AP_INIT_ITERATE("AuthDigestProvider", add_authn_provider, NULL, OR_AUTHCFG, "specify the auth providers for a directory or location"), - AP_INIT_ITERATE("AuthDigestQop", set_qop, NULL, OR_AUTHCFG, + AP_INIT_ITERATE("AuthDigestQop", set_qop, NULL, OR_AUTHCFG, "A list of quality-of-protection options"), - AP_INIT_TAKE1("AuthDigestNonceLifetime", set_nonce_lifetime, NULL, OR_AUTHCFG, + AP_INIT_TAKE1("AuthDigestNonceLifetime", set_nonce_lifetime, NULL, OR_AUTHCFG, "Maximum lifetime of the server nonce (seconds)"), - AP_INIT_TAKE1("AuthDigestNonceFormat", set_nonce_format, NULL, OR_AUTHCFG, + AP_INIT_TAKE1("AuthDigestNonceFormat", set_nonce_format, NULL, OR_AUTHCFG, "The format to use when generating the server nonce"), - AP_INIT_FLAG("AuthDigestNcCheck", set_nc_check, NULL, OR_AUTHCFG, + AP_INIT_FLAG("AuthDigestNcCheck", set_nc_check, NULL, OR_AUTHCFG, "Whether or not to check the nonce-count sent by the client"), - AP_INIT_TAKE1("AuthDigestAlgorithm", set_algorithm, NULL, OR_AUTHCFG, + AP_INIT_TAKE1("AuthDigestAlgorithm", set_algorithm, NULL, OR_AUTHCFG, "The algorithm used for the hash calculation"), - AP_INIT_ITERATE("AuthDigestDomain", set_uri_list, NULL, OR_AUTHCFG, + AP_INIT_ITERATE("AuthDigestDomain", set_uri_list, NULL, OR_AUTHCFG, "A list of URI's which belong to the same protection space as the current URI"), - AP_INIT_TAKE1("AuthDigestShmemSize", set_shmem_size, NULL, RSRC_CONF, + AP_INIT_TAKE1("AuthDigestShmemSize", set_shmem_size, NULL, RSRC_CONF, "The amount of shared memory to allocate for keeping track of clients"), {NULL} }; @@ -907,13 +894,13 @@ static int get_digest_rec(request_rec *r, digest_header_rec *resp) /* find value */ + vv = 0; if (auth_line[0] == '=') { auth_line++; while (apr_isspace(auth_line[0])) { auth_line++; } - vv = 0; if (auth_line[0] == '\"') { /* quoted string */ auth_line++; while (auth_line[0] != '\"' && auth_line[0] != '\0') { @@ -932,8 +919,8 @@ static int get_digest_rec(request_rec *r, digest_header_rec *resp) value[vv++] = *auth_line++; } } - value[vv] = '\0'; } + value[vv] = '\0'; while (auth_line[0] != ',' && auth_line[0] != '\0') { auth_line++; @@ -1063,7 +1050,6 @@ static const char *gen_nonce(apr_pool_t *p, apr_time_t now, const char *opaque, const digest_config_rec *conf) { char *nonce = apr_palloc(p, NONCE_LEN+1); - int len; time_rec t; if (conf->nonce_lifetime != 0) { @@ -1079,7 +1065,7 @@ static const char *gen_nonce(apr_pool_t *p, apr_time_t now, const char *opaque, /* XXX: WHAT IS THIS CONSTANT? */ t.time = 42; } - len = apr_base64_encode_binary(nonce, t.arr, sizeof(t.arr)); + apr_base64_encode_binary(nonce, t.arr, sizeof(t.arr)); gen_nonce_hash(nonce+NONCE_TIME_LEN, nonce, opaque, server, conf); return nonce; @@ -1300,13 +1286,13 @@ static void note_digest_auth_failure(request_rec *r, * unneccessarily (it's usually > 200 bytes!). */ - + /* don't send domain * - for proxy requests * - if it's no specified */ if (r->proxyreq || !conf->uri_list) { - domain = NULL; + domain = NULL; } else { domain = conf->uri_list; @@ -1424,7 +1410,6 @@ static int check_nonce(request_rec *r, digest_header_rec *resp, const digest_config_rec *conf) { apr_time_t dt; - int len; time_rec nonce_time; char tmp, hash[NONCE_HASH_LEN+1]; @@ -1438,7 +1423,7 @@ static int check_nonce(request_rec *r, digest_header_rec *resp, tmp = resp->nonce[NONCE_TIME_LEN]; resp->nonce[NONCE_TIME_LEN] = '\0'; - len = apr_base64_decode_binary(nonce_time.arr, resp->nonce); + apr_base64_decode_binary(nonce_time.arr, resp->nonce); gen_nonce_hash(hash, resp->nonce, resp->opaque, r->server, conf); resp->nonce[NONCE_TIME_LEN] = tmp; resp->nonce_time = nonce_time.time; @@ -1464,7 +1449,7 @@ static int check_nonce(request_rec *r, digest_header_rec *resp, if (dt > conf->nonce_lifetime) { ap_log_rerror(APLOG_MARK, APLOG_INFO, 0,r, "Digest: user %s: nonce expired (%.2f seconds old " - "- max lifetime %.2f) - sending new nonce", + "- max lifetime %.2f) - sending new nonce", r->user, (double)apr_time_sec(dt), (double)apr_time_sec(conf->nonce_lifetime)); note_digest_auth_failure(r, conf, resp, 1); @@ -1536,7 +1521,7 @@ static const char *new_digest(const request_rec *r, } -static void copy_uri_components(apr_uri_t *dst, +static void copy_uri_components(apr_uri_t *dst, apr_uri_t *src, request_rec *r) { if (src->scheme && src->scheme[0] != '\0') { dst->scheme = src->scheme; @@ -1684,30 +1669,30 @@ static int authenticate_digest_user(request_rec *r) ap_unescape_url(d_uri.query); } else if (r_uri.query) { - /* MSIE compatibility hack. MSIE has some RFC issues - doesn't + /* MSIE compatibility hack. MSIE has some RFC issues - doesn't * include the query string in the uri Authorization component * or when computing the response component. the second part * works out ok, since we can hash the header and get the same * result. however, the uri from the request line won't match - * the uri Authorization component since the header lacks the + * the uri Authorization component since the header lacks the * query string, leaving us incompatable with a (broken) MSIE. - * + * * the workaround is to fake a query string match if in the proper * environment - BrowserMatch MSIE, for example. the cool thing - * is that if MSIE ever fixes itself the simple match ought to + * is that if MSIE ever fixes itself the simple match ought to * work and this code won't be reached anyway, even if the * environment is set. */ - if (apr_table_get(r->subprocess_env, + if (apr_table_get(r->subprocess_env, "AuthDigestEnableQueryStringHack")) { - + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, "Digest: " "applying AuthDigestEnableQueryStringHack " "to uri <%s>", resp->raw_request_uri); d_uri.query = r_uri.query; - } + } } if (r->method_number == M_CONNECT) { @@ -1800,7 +1785,7 @@ static int authenticate_digest_user(request_rec *r) */ return HTTP_INTERNAL_SERVER_ERROR; } - + if (resp->message_qop == NULL) { /* old (rfc-2069) style digest */ if (strcmp(resp->digest, old_digest(r, resp, conf->ha1))) { diff --git a/modules/aaa/mod_auth_digest.dep b/modules/aaa/mod_auth_digest.dep new file mode 100644 index 00000000000..b10c17455f3 --- /dev/null +++ b/modules/aaa/mod_auth_digest.dep @@ -0,0 +1,39 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_auth_digest.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_auth_digest.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_provider.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_log.h"\ + "..\..\include\http_protocol.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\include\util_filter.h"\ + "..\..\include\util_md5.h"\ + "..\..\srclib\apr-util\include\apr_base64.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_md5.h"\ + "..\..\srclib\apr-util\include\apr_optional.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_rmm.h"\ + "..\..\srclib\apr-util\include\apr_sha1.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_lib.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_portable.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + "..\..\srclib\apr\include\apr_thread_rwlock.h"\ + ".\mod_auth.h"\ + diff --git a/modules/aaa/mod_auth_digest.dsp b/modules/aaa/mod_auth_digest.dsp index 60d887578af..9d1bee1f184 100644 --- a/modules/aaa/mod_auth_digest.dsp +++ b/modules/aaa/mod_auth_digest.dsp @@ -47,13 +47,19 @@ RSC=rc.exe # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_auth_digest.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_auth_digest.so" /d LONG_NAME="auth_digest_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so /opt:ref +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_auth_digest.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug" @@ -68,18 +74,24 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_auth_digest_src" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_auth_digest_src" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_auth_digest.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_auth_digest.so" /d LONG_NAME="auth_digest_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_auth_digest.so" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_auth_digest.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ENDIF @@ -93,36 +105,7 @@ SOURCE=.\mod_auth_digest.c # End Source File # Begin Source File -SOURCE=.\mod_auth_digest.rc -# End Source File -# Begin Source File - -SOURCE=..\..\build\win32\win32ver.awk - -!IF "$(CFG)" == "mod_auth_digest - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_auth_digest.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_auth_digest.so "auth_digest_module for Apache" ../../include/ap_release.h > .\mod_auth_digest.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_auth_digest.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_auth_digest.so "auth_digest_module for Apache" ../../include/ap_release.h > .\mod_auth_digest.rc - -# End Custom Build - -!ENDIF - +SOURCE=..\..\build\win32\httpd.rc # End Source File # End Target # End Project diff --git a/modules/aaa/mod_auth_digest.mak b/modules/aaa/mod_auth_digest.mak new file mode 100644 index 00000000000..db5a390e7b0 --- /dev/null +++ b/modules/aaa/mod_auth_digest.mak @@ -0,0 +1,353 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_auth_digest.dsp +!IF "$(CFG)" == "" +CFG=mod_auth_digest - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_auth_digest - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_auth_digest - Win32 Release" && "$(CFG)" != "mod_auth_digest - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_auth_digest.mak" CFG="mod_auth_digest - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_auth_digest - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_auth_digest - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_auth_digest - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_auth_digest.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_auth_digest.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_auth_digest.obj" + -@erase "$(INTDIR)\mod_auth_digest.res" + -@erase "$(INTDIR)\mod_auth_digest_src.idb" + -@erase "$(INTDIR)\mod_auth_digest_src.pdb" + -@erase "$(OUTDIR)\mod_auth_digest.exp" + -@erase "$(OUTDIR)\mod_auth_digest.lib" + -@erase "$(OUTDIR)\mod_auth_digest.pdb" + -@erase "$(OUTDIR)\mod_auth_digest.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_digest_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_auth_digest.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_auth_digest.so" /d LONG_NAME="auth_digest_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_digest.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_digest.pdb" /debug /out:"$(OUTDIR)\mod_auth_digest.so" /implib:"$(OUTDIR)\mod_auth_digest.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_auth_digest.obj" \ + "$(INTDIR)\mod_auth_digest.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" + +"$(OUTDIR)\mod_auth_digest.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_auth_digest.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_auth_digest.so" + if exist .\Release\mod_auth_digest.so.manifest mt.exe -manifest .\Release\mod_auth_digest.so.manifest -outputresource:.\Release\mod_auth_digest.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_auth_digest.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_auth_digest.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_auth_digest.obj" + -@erase "$(INTDIR)\mod_auth_digest.res" + -@erase "$(INTDIR)\mod_auth_digest_src.idb" + -@erase "$(INTDIR)\mod_auth_digest_src.pdb" + -@erase "$(OUTDIR)\mod_auth_digest.exp" + -@erase "$(OUTDIR)\mod_auth_digest.lib" + -@erase "$(OUTDIR)\mod_auth_digest.pdb" + -@erase "$(OUTDIR)\mod_auth_digest.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_digest_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_auth_digest.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_auth_digest.so" /d LONG_NAME="auth_digest_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_digest.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_digest.pdb" /debug /out:"$(OUTDIR)\mod_auth_digest.so" /implib:"$(OUTDIR)\mod_auth_digest.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_auth_digest.so +LINK32_OBJS= \ + "$(INTDIR)\mod_auth_digest.obj" \ + "$(INTDIR)\mod_auth_digest.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" + +"$(OUTDIR)\mod_auth_digest.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_auth_digest.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_auth_digest.so" + if exist .\Debug\mod_auth_digest.so.manifest mt.exe -manifest .\Debug\mod_auth_digest.so.manifest -outputresource:.\Debug\mod_auth_digest.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_auth_digest.dep") +!INCLUDE "mod_auth_digest.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_auth_digest.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_auth_digest - Win32 Release" || "$(CFG)" == "mod_auth_digest - Win32 Debug" + +!IF "$(CFG)" == "mod_auth_digest - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_auth_digest - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_auth_digest - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_auth_digest - Win32 Release" + + +"$(INTDIR)\mod_auth_digest.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_auth_digest.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_auth_digest.so" /d LONG_NAME="auth_digest_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug" + + +"$(INTDIR)\mod_auth_digest.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_auth_digest.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_auth_digest.so" /d LONG_NAME="auth_digest_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_auth_digest.c + +"$(INTDIR)\mod_auth_digest.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_authn_alias.c b/modules/aaa/mod_authn_alias.c index 83d067774fb..a3a35948b2f 100644 --- a/modules/aaa/mod_authn_alias.c +++ b/modules/aaa/mod_authn_alias.c @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -51,19 +51,19 @@ static authn_status authn_alias_check_password(request_rec *r, const char *user, const char *provider_name = apr_table_get(r->notes, AUTHN_PROVIDER_NAME_NOTE); authn_status ret = AUTH_USER_NOT_FOUND; - authn_alias_srv_conf *authcfg = - (authn_alias_srv_conf *)ap_get_module_config(r->server->module_config, + authn_alias_srv_conf *authcfg = + (authn_alias_srv_conf *)ap_get_module_config(r->server->module_config, &authn_alias_module); if (provider_name) { - provider_alias_rec *prvdraliasrec = apr_hash_get(authcfg->alias_rec, + provider_alias_rec *prvdraliasrec = apr_hash_get(authcfg->alias_rec, provider_name, APR_HASH_KEY_STRING); ap_conf_vector_t *orig_dir_config = r->per_dir_config; - /* If we found the alias provider in the list, then merge the directory + /* If we found the alias provider in the list, then merge the directory configurations and call the real provider */ if (prvdraliasrec) { - r->per_dir_config = ap_merge_per_dir_configs(r->pool, orig_dir_config, + r->per_dir_config = ap_merge_per_dir_configs(r->pool, orig_dir_config, prvdraliasrec->sec_auth); ret = prvdraliasrec->provider->check_password(r,user,password); r->per_dir_config = orig_dir_config; @@ -83,19 +83,19 @@ static authn_status authn_alias_get_realm_hash(request_rec *r, const char *user, const char *provider_name = apr_table_get(r->notes, AUTHN_PROVIDER_NAME_NOTE); authn_status ret = AUTH_USER_NOT_FOUND; - authn_alias_srv_conf *authcfg = - (authn_alias_srv_conf *)ap_get_module_config(r->server->module_config, + authn_alias_srv_conf *authcfg = + (authn_alias_srv_conf *)ap_get_module_config(r->server->module_config, &authn_alias_module); if (provider_name) { - provider_alias_rec *prvdraliasrec = apr_hash_get(authcfg->alias_rec, + provider_alias_rec *prvdraliasrec = apr_hash_get(authcfg->alias_rec, provider_name, APR_HASH_KEY_STRING); ap_conf_vector_t *orig_dir_config = r->per_dir_config; - /* If we found the alias provider in the list, then merge the directory + /* If we found the alias provider in the list, then merge the directory configurations and call the real provider */ if (prvdraliasrec) { - r->per_dir_config = ap_merge_per_dir_configs(r->pool, orig_dir_config, + r->per_dir_config = ap_merge_per_dir_configs(r->pool, orig_dir_config, prvdraliasrec->sec_auth); ret = prvdraliasrec->provider->get_realm_hash(r,user,realm,rethash); r->per_dir_config = orig_dir_config; @@ -122,6 +122,12 @@ static const authn_provider authn_alias_provider = &authn_alias_get_realm_hash, }; +static const authn_provider authn_alias_provider_nodigest = +{ + &authn_alias_check_password, + NULL, +}; + static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *arg) { int old_overrides = cmd->override; @@ -130,9 +136,10 @@ static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *a char *provider_alias; char *provider_name; const char *errmsg; + const authn_provider *provider = NULL; ap_conf_vector_t *new_auth_config = ap_create_per_dir_config(cmd->pool); - authn_alias_srv_conf *authcfg = - (authn_alias_srv_conf *)ap_get_module_config(cmd->server->module_config, + authn_alias_srv_conf *authcfg = + (authn_alias_srv_conf *)ap_get_module_config(cmd->server->module_config, &authn_alias_module); const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY); @@ -161,6 +168,19 @@ static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *a "> directive requires additional arguments", NULL); } + if (strcasecmp(provider_name, provider_alias) == 0) { + return apr_pstrcat(cmd->pool, + "The alias provider name must be different from the base provider name.", NULL); + } + + /* Look up the alias provider to make sure that it hasn't already been registered. */ + provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, provider_alias, "0"); + if (provider) { + return apr_pstrcat(cmd->pool, "The alias provider ", provider_alias, + " has already be registered previously as either a base provider or an alias provider.", + NULL); + } + /* walk the subsection configuration to get the per_dir config that we will merge just before the real provider is called. */ cmd->override = OR_ALL|ACCESS_CONF; @@ -168,9 +188,9 @@ static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *a if (!errmsg) { provider_alias_rec *prvdraliasrec = apr_pcalloc(cmd->pool, sizeof(provider_alias_rec)); - const authn_provider *provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, provider_name,"0"); + provider = ap_lookup_provider(AUTHN_PROVIDER_GROUP, provider_name, "0"); - /* Save off the new directory config along with the original provider name + /* Save off the new directory config along with the original provider name and function pointer data */ prvdraliasrec->sec_auth = new_auth_config; prvdraliasrec->provider_name = provider_name; @@ -180,7 +200,9 @@ static const char *authaliassection(cmd_parms *cmd, void *mconfig, const char *a /* Register the fake provider so that we get called first */ ap_register_provider(cmd->pool, AUTHN_PROVIDER_GROUP, provider_alias, "0", - &authn_alias_provider); + provider->get_realm_hash ? + &authn_alias_provider : + &authn_alias_provider_nodigest); } cmd->override = old_overrides; diff --git a/modules/aaa/mod_authn_alias.dep b/modules/aaa/mod_authn_alias.dep new file mode 100644 index 00000000000..8dcf9084a7c --- /dev/null +++ b/modules/aaa/mod_authn_alias.dep @@ -0,0 +1,29 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_authn_alias.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_authn_alias.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_provider.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\include\util_filter.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_optional.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + ".\mod_auth.h"\ + diff --git a/modules/aaa/mod_authn_alias.dsp b/modules/aaa/mod_authn_alias.dsp new file mode 100644 index 00000000000..238082f6619 --- /dev/null +++ b/modules/aaa/mod_authn_alias.dsp @@ -0,0 +1,111 @@ +# Microsoft Developer Studio Project File - Name="mod_authn_alias" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=mod_authn_alias - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_alias.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_alias.mak" CFG="mod_authn_alias - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_alias - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_alias - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_authn_alias_src" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_authn_alias.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_alias.so" /d LONG_NAME="authn_alias_module for Apache" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_authn_alias.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_alias.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_authn_alias.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_alias.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_authn_alias.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool + +!ELSEIF "$(CFG)" == "mod_authn_alias - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_alias_src" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_authn_alias.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_alias.so" /d LONG_NAME="authn_alias_module for Apache" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_alias.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_alias.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_alias.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_alias.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_authn_alias.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "mod_authn_alias - Win32 Release" +# Name "mod_authn_alias - Win32 Debug" +# Begin Source File + +SOURCE=.\mod_authn_alias.c +# End Source File +# Begin Source File + +SOURCE=..\..\build\win32\httpd.rc +# End Source File +# End Target +# End Project diff --git a/modules/aaa/mod_authn_alias.mak b/modules/aaa/mod_authn_alias.mak new file mode 100644 index 00000000000..f9a544074bf --- /dev/null +++ b/modules/aaa/mod_authn_alias.mak @@ -0,0 +1,381 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_authn_alias.dsp +!IF "$(CFG)" == "" +CFG=mod_authn_alias - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_authn_alias - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_authn_alias - Win32 Release" && "$(CFG)" != "mod_authn_alias - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_alias.mak" CFG="mod_authn_alias - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_alias - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_alias - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_alias.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Release" "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_authn_alias.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" "mod_auth_basic - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_alias.obj" + -@erase "$(INTDIR)\mod_authn_alias.res" + -@erase "$(INTDIR)\mod_authn_alias_src.idb" + -@erase "$(INTDIR)\mod_authn_alias_src.pdb" + -@erase "$(OUTDIR)\mod_authn_alias.exp" + -@erase "$(OUTDIR)\mod_authn_alias.lib" + -@erase "$(OUTDIR)\mod_authn_alias.pdb" + -@erase "$(OUTDIR)\mod_authn_alias.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_alias_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_alias.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_alias.so" /d LONG_NAME="authn_alias_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_alias.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_alias.pdb" /debug /out:"$(OUTDIR)\mod_authn_alias.so" /implib:"$(OUTDIR)\mod_authn_alias.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_alias.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_alias.obj" \ + "$(INTDIR)\mod_authn_alias.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_alias.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_authn_alias.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_alias.so" + if exist .\Release\mod_authn_alias.so.manifest mt.exe -manifest .\Release\mod_authn_alias.so.manifest -outputresource:.\Release\mod_authn_alias.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_authn_alias - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_alias.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Debug" "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_authn_alias.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" "mod_auth_basic - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_alias.obj" + -@erase "$(INTDIR)\mod_authn_alias.res" + -@erase "$(INTDIR)\mod_authn_alias_src.idb" + -@erase "$(INTDIR)\mod_authn_alias_src.pdb" + -@erase "$(OUTDIR)\mod_authn_alias.exp" + -@erase "$(OUTDIR)\mod_authn_alias.lib" + -@erase "$(OUTDIR)\mod_authn_alias.pdb" + -@erase "$(OUTDIR)\mod_authn_alias.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_alias_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_alias.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_alias.so" /d LONG_NAME="authn_alias_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_alias.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_alias.pdb" /debug /out:"$(OUTDIR)\mod_authn_alias.so" /implib:"$(OUTDIR)\mod_authn_alias.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_alias.so +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_alias.obj" \ + "$(INTDIR)\mod_authn_alias.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_alias.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_authn_alias.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_alias.so" + if exist .\Debug\mod_authn_alias.so.manifest mt.exe -manifest .\Debug\mod_authn_alias.so.manifest -outputresource:.\Debug\mod_authn_alias.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_authn_alias.dep") +!INCLUDE "mod_authn_alias.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_authn_alias.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" || "$(CFG)" == "mod_authn_alias - Win32 Debug" + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_alias - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_alias - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_alias - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" + +"mod_auth_basic - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" + cd "." + +"mod_auth_basic - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "mod_authn_alias - Win32 Debug" + +"mod_auth_basic - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" + cd "." + +"mod_auth_basic - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_authn_alias - Win32 Release" + + +"$(INTDIR)\mod_authn_alias.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_alias.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_authn_alias.so" /d LONG_NAME="authn_alias_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_authn_alias - Win32 Debug" + + +"$(INTDIR)\mod_authn_alias.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_alias.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_authn_alias.so" /d LONG_NAME="authn_alias_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_authn_alias.c + +"$(INTDIR)\mod_authn_alias.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_authn_anon.c b/modules/aaa/mod_authn_anon.c index b0e48fbbdd4..07f48b35b30 100644 --- a/modules/aaa/mod_authn_anon.c +++ b/modules/aaa/mod_authn_anon.c @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -20,7 +20,7 @@ * as the password. * * Just add the following tokes to your setup: - * + * * Anonymous magic-userid [magic-userid]... * * Anonymous_MustGiveEmail [ on | off ] default = on @@ -28,8 +28,8 @@ * Anonymous_VerifyEmail [ on | off ] default = off * Anonymous_NoUserId [ on | off ] default = off * - * The magic user id is something like 'anonymous', it is NOT case sensitive. - * + * The magic user id is something like 'anonymous', it is NOT case sensitive. + * * The MustGiveEmail flag can be used to force users to enter something * in the password field (like an email address). Default is on. * @@ -38,7 +38,7 @@ * in broken GUIs like W95 is often given by the user. The Default is off. * * Dirk.vanGulik@jrc.it; http://ewse.ceo.org; http://me-www.jrc.it/~dirkx - * + * */ #include "apr_strings.h" @@ -113,7 +113,7 @@ static const char *anon_set_string_slots(cmd_parms *cmd, static const command_rec authn_anon_cmds[] = { - AP_INIT_ITERATE("Anonymous", anon_set_string_slots, NULL, OR_AUTHCFG, + AP_INIT_ITERATE("Anonymous", anon_set_string_slots, NULL, OR_AUTHCFG, "a space-separated list of user IDs"), AP_INIT_FLAG("Anonymous_MustGiveEmail", ap_set_flag_slot, (void *)APR_OFFSETOF(authn_anon_config_rec, mustemail), diff --git a/modules/aaa/mod_authn_anon.dep b/modules/aaa/mod_authn_anon.dep new file mode 100644 index 00000000000..8b90313f018 --- /dev/null +++ b/modules/aaa/mod_authn_anon.dep @@ -0,0 +1,32 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_authn_anon.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_authn_anon.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_provider.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_log.h"\ + "..\..\include\http_protocol.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\include\util_filter.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_optional.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_portable.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + ".\mod_auth.h"\ + diff --git a/modules/aaa/mod_authn_anon.dsp b/modules/aaa/mod_authn_anon.dsp index a5546bfa548..be881045d17 100644 --- a/modules/aaa/mod_authn_anon.dsp +++ b/modules/aaa/mod_authn_anon.dsp @@ -47,13 +47,19 @@ RSC=rc.exe # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_authn_anon.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_anon.so" /d LONG_NAME="authn_anon_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so /opt:ref +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_authn_anon.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" @@ -68,18 +74,24 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_anon_src" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_anon_src" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_authn_anon.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_anon.so" /d LONG_NAME="authn_anon_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_anon.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_authn_anon.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ENDIF @@ -93,36 +105,7 @@ SOURCE=.\mod_authn_anon.c # End Source File # Begin Source File -SOURCE=.\mod_authn_anon.rc -# End Source File -# Begin Source File - -SOURCE=..\..\build\win32\win32ver.awk - -!IF "$(CFG)" == "mod_authn_anon - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_anon.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_anon.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_anon.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_anon.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_anon.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_anon.rc - -# End Custom Build - -!ENDIF - +SOURCE=..\..\build\win32\httpd.rc # End Source File # End Target # End Project diff --git a/modules/aaa/mod_authn_anon.mak b/modules/aaa/mod_authn_anon.mak new file mode 100644 index 00000000000..54737c5af5a --- /dev/null +++ b/modules/aaa/mod_authn_anon.mak @@ -0,0 +1,381 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_authn_anon.dsp +!IF "$(CFG)" == "" +CFG=mod_authn_anon - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_authn_anon - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_authn_anon - Win32 Release" && "$(CFG)" != "mod_authn_anon - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_anon.mak" CFG="mod_authn_anon - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_anon - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_anon - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_authn_anon - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_anon.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Release" "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_authn_anon.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" "mod_auth_basic - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_anon.obj" + -@erase "$(INTDIR)\mod_authn_anon.res" + -@erase "$(INTDIR)\mod_authn_anon_src.idb" + -@erase "$(INTDIR)\mod_authn_anon_src.pdb" + -@erase "$(OUTDIR)\mod_authn_anon.exp" + -@erase "$(OUTDIR)\mod_authn_anon.lib" + -@erase "$(OUTDIR)\mod_authn_anon.pdb" + -@erase "$(OUTDIR)\mod_authn_anon.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_anon_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_anon.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_anon.so" /d LONG_NAME="authn_anon_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_anon.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_anon.pdb" /debug /out:"$(OUTDIR)\mod_authn_anon.so" /implib:"$(OUTDIR)\mod_authn_anon.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_anon.obj" \ + "$(INTDIR)\mod_authn_anon.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_anon.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_authn_anon.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_anon.so" + if exist .\Release\mod_authn_anon.so.manifest mt.exe -manifest .\Release\mod_authn_anon.so.manifest -outputresource:.\Release\mod_authn_anon.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_anon.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Debug" "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_authn_anon.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" "mod_auth_basic - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_anon.obj" + -@erase "$(INTDIR)\mod_authn_anon.res" + -@erase "$(INTDIR)\mod_authn_anon_src.idb" + -@erase "$(INTDIR)\mod_authn_anon_src.pdb" + -@erase "$(OUTDIR)\mod_authn_anon.exp" + -@erase "$(OUTDIR)\mod_authn_anon.lib" + -@erase "$(OUTDIR)\mod_authn_anon.pdb" + -@erase "$(OUTDIR)\mod_authn_anon.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_anon_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_anon.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_anon.so" /d LONG_NAME="authn_anon_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_anon.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_anon.pdb" /debug /out:"$(OUTDIR)\mod_authn_anon.so" /implib:"$(OUTDIR)\mod_authn_anon.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_anon.so +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_anon.obj" \ + "$(INTDIR)\mod_authn_anon.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_anon.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_authn_anon.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_anon.so" + if exist .\Debug\mod_authn_anon.so.manifest mt.exe -manifest .\Debug\mod_authn_anon.so.manifest -outputresource:.\Debug\mod_authn_anon.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_authn_anon.dep") +!INCLUDE "mod_authn_anon.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_authn_anon.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_authn_anon - Win32 Release" || "$(CFG)" == "mod_authn_anon - Win32 Debug" + +!IF "$(CFG)" == "mod_authn_anon - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_anon - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_anon - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_anon - Win32 Release" + +"mod_auth_basic - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" + cd "." + +"mod_auth_basic - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" + +"mod_auth_basic - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" + cd "." + +"mod_auth_basic - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_authn_anon - Win32 Release" + + +"$(INTDIR)\mod_authn_anon.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_anon.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_authn_anon.so" /d LONG_NAME="authn_anon_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_authn_anon - Win32 Debug" + + +"$(INTDIR)\mod_authn_anon.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_anon.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_authn_anon.so" /d LONG_NAME="authn_anon_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_authn_anon.c + +"$(INTDIR)\mod_authn_anon.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_authn_dbd.c b/modules/aaa/mod_authn_dbd.c new file mode 100644 index 00000000000..1cc9c709e67 --- /dev/null +++ b/modules/aaa/mod_authn_dbd.c @@ -0,0 +1,284 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ap_provider.h" +#include "httpd.h" +#include "http_config.h" +#include "http_log.h" +#include "apr_lib.h" +#include "apr_dbd.h" +#include "mod_dbd.h" +#include "apr_strings.h" +#include "mod_auth.h" +#include "apr_md5.h" +#include "apu_version.h" + +module AP_MODULE_DECLARE_DATA authn_dbd_module; + +typedef struct { + const char *user; + const char *realm; +} authn_dbd_conf; +typedef struct { + const char *label; + const char *query; +} authn_dbd_rec; + +/* optional function - look it up once in post_config */ +static ap_dbd_t *(*authn_dbd_acquire_fn)(request_rec*) = NULL; +static void (*authn_dbd_prepare_fn)(server_rec*, const char*, const char*) = NULL; + +static void *authn_dbd_cr_conf(apr_pool_t *pool, char *dummy) +{ + authn_dbd_conf *ret = apr_pcalloc(pool, sizeof(authn_dbd_conf)); + return ret; +} +static void *authn_dbd_merge_conf(apr_pool_t *pool, void *BASE, void *ADD) +{ + authn_dbd_conf *add = ADD; + authn_dbd_conf *base = BASE; + authn_dbd_conf *ret = apr_palloc(pool, sizeof(authn_dbd_conf)); + ret->user = (add->user == NULL) ? base->user : add->user; + ret->realm = (add->realm == NULL) ? base->realm : add->realm; + return ret; +} +static const char *authn_dbd_prepare(cmd_parms *cmd, void *cfg, const char *query) +{ + static unsigned int label_num = 0; + char *label; + + if (authn_dbd_prepare_fn == NULL) { + authn_dbd_prepare_fn = APR_RETRIEVE_OPTIONAL_FN(ap_dbd_prepare); + if (authn_dbd_prepare_fn == NULL) { + return "You must load mod_dbd to enable AuthDBD functions"; + } + authn_dbd_acquire_fn = APR_RETRIEVE_OPTIONAL_FN(ap_dbd_acquire); + } + label = apr_psprintf(cmd->pool, "authn_dbd_%d", ++label_num); + + authn_dbd_prepare_fn(cmd->server, query, label); + + /* save the label here for our own use */ + return ap_set_string_slot(cmd, cfg, label); +} +static const command_rec authn_dbd_cmds[] = +{ + AP_INIT_TAKE1("AuthDBDUserPWQuery", authn_dbd_prepare, + (void *)APR_OFFSETOF(authn_dbd_conf, user), ACCESS_CONF, + "Query used to fetch password for user"), + AP_INIT_TAKE1("AuthDBDUserRealmQuery", authn_dbd_prepare, + (void *)APR_OFFSETOF(authn_dbd_conf, realm), ACCESS_CONF, + "Query used to fetch password for user+realm"), + {NULL} +}; +static authn_status authn_dbd_password(request_rec *r, const char *user, + const char *password) +{ + apr_status_t rv; + const char *dbd_password = NULL; + apr_dbd_prepared_t *statement; + apr_dbd_results_t *res = NULL; + apr_dbd_row_t *row = NULL; + + authn_dbd_conf *conf = ap_get_module_config(r->per_dir_config, + &authn_dbd_module); + ap_dbd_t *dbd = authn_dbd_acquire_fn(r); + if (dbd == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "Failed to acquire database connection to look up " + "user '%s'", user); + return AUTH_GENERAL_ERROR; + } + + if (conf->user == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "No AuthDBDUserPWQuery has been specified"); + return AUTH_GENERAL_ERROR; + } + + statement = apr_hash_get(dbd->prepared, conf->user, APR_HASH_KEY_STRING); + if (statement == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "A prepared statement could not be found for " + "AuthDBDUserPWQuery with the key '%s'", conf->user); + return AUTH_GENERAL_ERROR; + } + if (apr_dbd_pvselect(dbd->driver, r->pool, dbd->handle, &res, statement, + 0, user, NULL) != 0) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "Query execution error looking up '%s' " + "in database", user); + return AUTH_GENERAL_ERROR; + } + for (rv = apr_dbd_get_row(dbd->driver, r->pool, res, &row, -1); + rv != -1; + rv = apr_dbd_get_row(dbd->driver, r->pool, res, &row, -1)) { + if (rv != 0) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, + "Error retrieving results while looking up '%s' " + "in database", user); + return AUTH_GENERAL_ERROR; + } + if (dbd_password == NULL) { +#if APU_MAJOR_VERSION > 1 || (APU_MAJOR_VERSION == 1 && APU_MINOR_VERSION >= 3) + /* add the rest of the columns to the environment */ + int i = 1; + const char *name; + for (name = apr_dbd_get_name(dbd->driver, res, i); + name != NULL; + name = apr_dbd_get_name(dbd->driver, res, i)) { + + char *str = apr_pstrcat(r->pool, AUTHN_PREFIX, + name, + NULL); + int j = sizeof(AUTHN_PREFIX)-1; /* string length of "AUTHENTICATE_", excluding the trailing NIL */ + while (str[j]) { + if (!apr_isalnum(str[j])) { + str[j] = '_'; + } + else { + str[j] = apr_toupper(str[j]); + } + j++; + } + apr_table_set(r->subprocess_env, str, + apr_dbd_get_entry(dbd->driver, row, i)); + i++; + } +#endif + dbd_password = apr_pstrdup(r->pool, + apr_dbd_get_entry(dbd->driver, row, 0)); + } + /* we can't break out here or row won't get cleaned up */ + } + + if (!dbd_password) { + return AUTH_USER_NOT_FOUND; + } + + rv = apr_password_validate(password, dbd_password); + + if (rv != APR_SUCCESS) { + return AUTH_DENIED; + } + + return AUTH_GRANTED; +} +static authn_status authn_dbd_realm(request_rec *r, const char *user, + const char *realm, char **rethash) +{ + apr_status_t rv; + const char *dbd_hash = NULL; + apr_dbd_prepared_t *statement; + apr_dbd_results_t *res = NULL; + apr_dbd_row_t *row = NULL; + + authn_dbd_conf *conf = ap_get_module_config(r->per_dir_config, + &authn_dbd_module); + ap_dbd_t *dbd = authn_dbd_acquire_fn(r); + if (dbd == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "Failed to acquire database connection to look up " + "user '%s:%s'", user, realm); + return AUTH_GENERAL_ERROR; + } + if (conf->realm == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "No AuthDBDUserRealmQuery has been specified"); + return AUTH_GENERAL_ERROR; + } + statement = apr_hash_get(dbd->prepared, conf->realm, APR_HASH_KEY_STRING); + if (statement == NULL) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "A prepared statement could not be found for " + "AuthDBDUserRealmQuery with the key '%s'", conf->realm); + return AUTH_GENERAL_ERROR; + } + if (apr_dbd_pvselect(dbd->driver, r->pool, dbd->handle, &res, statement, + 0, user, realm, NULL) != 0) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "Query execution error looking up '%s:%s' " + "in database", user, realm); + return AUTH_GENERAL_ERROR; + } + for (rv = apr_dbd_get_row(dbd->driver, r->pool, res, &row, -1); + rv != -1; + rv = apr_dbd_get_row(dbd->driver, r->pool, res, &row, -1)) { + if (rv != 0) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, + "Error retrieving results while looking up '%s:%s' " + "in database", user, realm); + return AUTH_GENERAL_ERROR; + } + if (dbd_hash == NULL) { +#if APU_MAJOR_VERSION > 1 || (APU_MAJOR_VERSION == 1 && APU_MINOR_VERSION >= 3) + /* add the rest of the columns to the environment */ + int i = 1; + const char *name; + for (name = apr_dbd_get_name(dbd->driver, res, i); + name != NULL; + name = apr_dbd_get_name(dbd->driver, res, i)) { + + char *str = apr_pstrcat(r->pool, AUTHN_PREFIX, + name, + NULL); + int j = sizeof(AUTHN_PREFIX)-1; /* string length of "AUTHENTICATE_", excluding the trailing NIL */ + while (str[j]) { + if (!apr_isalnum(str[j])) { + str[j] = '_'; + } + else { + str[j] = apr_toupper(str[j]); + } + j++; + } + apr_table_set(r->subprocess_env, str, + apr_dbd_get_entry(dbd->driver, row, i)); + i++; + } +#endif + dbd_hash = apr_pstrdup(r->pool, + apr_dbd_get_entry(dbd->driver, row, 0)); + } + /* we can't break out here or row won't get cleaned up */ + } + + if (!dbd_hash) { + return AUTH_USER_NOT_FOUND; + } + + *rethash = apr_pstrdup(r->pool, dbd_hash); + return AUTH_USER_FOUND; +} +static void authn_dbd_hooks(apr_pool_t *p) +{ + static const authn_provider authn_dbd_provider = { + &authn_dbd_password, + &authn_dbd_realm + }; + + ap_register_provider(p, AUTHN_PROVIDER_GROUP, "dbd", "0", &authn_dbd_provider); +} +module AP_MODULE_DECLARE_DATA authn_dbd_module = +{ + STANDARD20_MODULE_STUFF, + authn_dbd_cr_conf, + authn_dbd_merge_conf, + NULL, + NULL, + authn_dbd_cmds, + authn_dbd_hooks +}; diff --git a/modules/aaa/mod_authn_dbd.dep b/modules/aaa/mod_authn_dbd.dep new file mode 100644 index 00000000000..19e5e958913 --- /dev/null +++ b/modules/aaa/mod_authn_dbd.dep @@ -0,0 +1,31 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_authn_dbd.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_authn_dbd.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_provider.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_log.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\srclib\apr-util\include\apr_dbd.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_md5.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr-util\include\apu_version.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_lib.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + "..\..\srclib\apr\include\apr_version.h"\ + ".\mod_auth.h"\ + diff --git a/modules/aaa/mod_authn_dbd.dsp b/modules/aaa/mod_authn_dbd.dsp new file mode 100644 index 00000000000..9094d3398bd --- /dev/null +++ b/modules/aaa/mod_authn_dbd.dsp @@ -0,0 +1,115 @@ +# Microsoft Developer Studio Project File - Name="mod_authn_dbd" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=mod_authn_dbd - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_dbd.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_dbd.mak" CFG="mod_authn_dbd - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_dbd - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_dbd - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /I ../database /D DBD_DECLARE_EXPORT /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Release\mod_authn_dbd_src" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_authn_dbd.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_dbd.so" /d LONG_NAME="authn_dbd_module for Apache" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_authn_dbd.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbd.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_authn_dbd.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbd.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_authn_dbd.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /I ../database /D DBD_DECLARE_EXPORT /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_dbd_src" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_authn_dbd.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_dbd.so" /d LONG_NAME="authn_dbd_module for Apache" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_dbd.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbd.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_dbd.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbd.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_authn_dbd.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "mod_authn_dbd - Win32 Release" +# Name "mod_authn_dbd - Win32 Debug" +# Begin Source File + +SOURCE=..\database\mod_dbd.h +# End Source File +# Begin Source File + +SOURCE=.\mod_authn_dbd.c +# End Source File +# Begin Source File + +SOURCE=..\..\build\win32\httpd.rc +# End Source File +# End Target +# End Project diff --git a/modules/aaa/mod_authn_dbd.mak b/modules/aaa/mod_authn_dbd.mak new file mode 100644 index 00000000000..0d287e3dbe2 --- /dev/null +++ b/modules/aaa/mod_authn_dbd.mak @@ -0,0 +1,409 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_authn_dbd.dsp +!IF "$(CFG)" == "" +CFG=mod_authn_dbd - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_authn_dbd - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_authn_dbd - Win32 Release" && "$(CFG)" != "mod_authn_dbd - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_dbd.mak" CFG="mod_authn_dbd - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_dbd - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_dbd - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_dbd.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_dbd - Win32 Release" "mod_auth_basic - Win32 Release" "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_authn_dbd.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" "mod_auth_basic - Win32 ReleaseCLEAN" "mod_dbd - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_dbd.obj" + -@erase "$(INTDIR)\mod_authn_dbd.res" + -@erase "$(INTDIR)\mod_authn_dbd_src.idb" + -@erase "$(INTDIR)\mod_authn_dbd_src.pdb" + -@erase "$(OUTDIR)\mod_authn_dbd.exp" + -@erase "$(OUTDIR)\mod_authn_dbd.lib" + -@erase "$(OUTDIR)\mod_authn_dbd.pdb" + -@erase "$(OUTDIR)\mod_authn_dbd.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "DBD_DECLARE_EXPORT" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_dbd_src" /FD /I ../database /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_dbd.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_dbd.so" /d LONG_NAME="authn_dbd_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_dbd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_dbd.pdb" /debug /out:"$(OUTDIR)\mod_authn_dbd.so" /implib:"$(OUTDIR)\mod_authn_dbd.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbd.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_dbd.obj" \ + "$(INTDIR)\mod_authn_dbd.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" \ + "..\database\Release\mod_dbd.lib" + +"$(OUTDIR)\mod_authn_dbd.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_authn_dbd.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_dbd.so" + if exist .\Release\mod_authn_dbd.so.manifest mt.exe -manifest .\Release\mod_authn_dbd.so.manifest -outputresource:.\Release\mod_authn_dbd.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_dbd.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_dbd - Win32 Debug" "mod_auth_basic - Win32 Debug" "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_authn_dbd.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" "mod_auth_basic - Win32 DebugCLEAN" "mod_dbd - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_dbd.obj" + -@erase "$(INTDIR)\mod_authn_dbd.res" + -@erase "$(INTDIR)\mod_authn_dbd_src.idb" + -@erase "$(INTDIR)\mod_authn_dbd_src.pdb" + -@erase "$(OUTDIR)\mod_authn_dbd.exp" + -@erase "$(OUTDIR)\mod_authn_dbd.lib" + -@erase "$(OUTDIR)\mod_authn_dbd.pdb" + -@erase "$(OUTDIR)\mod_authn_dbd.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "DBD_DECLARE_EXPORT" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_dbd_src" /FD /EHsc /I ../database /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_dbd.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_dbd.so" /d LONG_NAME="authn_dbd_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_dbd.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_dbd.pdb" /debug /out:"$(OUTDIR)\mod_authn_dbd.so" /implib:"$(OUTDIR)\mod_authn_dbd.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbd.so +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_dbd.obj" \ + "$(INTDIR)\mod_authn_dbd.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" \ + "..\database\Debug\mod_dbd.lib" + +"$(OUTDIR)\mod_authn_dbd.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_authn_dbd.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_dbd.so" + if exist .\Debug\mod_authn_dbd.so.manifest mt.exe -manifest .\Debug\mod_authn_dbd.so.manifest -outputresource:.\Debug\mod_authn_dbd.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_authn_dbd.dep") +!INCLUDE "mod_authn_dbd.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_authn_dbd.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" || "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + +"mod_auth_basic - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" + cd "." + +"mod_auth_basic - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +"mod_auth_basic - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" + cd "." + +"mod_auth_basic - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + +"mod_dbd - Win32 Release" : + cd ".\..\database" + $(MAKE) /$(MAKEFLAGS) /F ".\mod_dbd.mak" CFG="mod_dbd - Win32 Release" + cd "..\aaa" + +"mod_dbd - Win32 ReleaseCLEAN" : + cd ".\..\database" + $(MAKE) /$(MAKEFLAGS) /F ".\mod_dbd.mak" CFG="mod_dbd - Win32 Release" RECURSE=1 CLEAN + cd "..\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + +"mod_dbd - Win32 Debug" : + cd ".\..\database" + $(MAKE) /$(MAKEFLAGS) /F ".\mod_dbd.mak" CFG="mod_dbd - Win32 Debug" + cd "..\aaa" + +"mod_dbd - Win32 DebugCLEAN" : + cd ".\..\database" + $(MAKE) /$(MAKEFLAGS) /F ".\mod_dbd.mak" CFG="mod_dbd - Win32 Debug" RECURSE=1 CLEAN + cd "..\aaa" + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_authn_dbd - Win32 Release" + + +"$(INTDIR)\mod_authn_dbd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_dbd.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_authn_dbd.so" /d LONG_NAME="authn_dbd_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_authn_dbd - Win32 Debug" + + +"$(INTDIR)\mod_authn_dbd.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_dbd.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_authn_dbd.so" /d LONG_NAME="authn_dbd_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_authn_dbd.c + +"$(INTDIR)\mod_authn_dbd.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_authn_dbm.c b/modules/aaa/mod_authn_dbm.c index 2f66203212b..9221752fa21 100644 --- a/modules/aaa/mod_authn_dbm.c +++ b/modules/aaa/mod_authn_dbm.c @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -16,9 +16,9 @@ /* * http_auth: authentication - * + * * Rob McCool & Brian Behlendorf. - * + * * Adapted to Apache by rst. * */ @@ -54,12 +54,12 @@ static void *create_authn_dbm_dir_config(apr_pool_t *p, char *d) return conf; } -static const char *set_dbm_type(cmd_parms *cmd, - void *dir_config, +static const char *set_dbm_type(cmd_parms *cmd, + void *dir_config, const char *arg) { authn_dbm_config_rec *conf = dir_config; - + conf->dbmtype = apr_pstrdup(cmd->pool, arg); return NULL; } @@ -85,7 +85,7 @@ static apr_status_t fetch_dbm_value(const char *dbmtype, const char *dbmfile, apr_datum_t key, val; apr_status_t rv; - rv = apr_dbm_open_ex(&f, dbmtype, dbmfile, APR_DBM_READONLY, + rv = apr_dbm_open_ex(&f, dbmtype, dbmfile, APR_DBM_READONLY, APR_OS_DEFAULT, pool); if (rv != APR_SUCCESS) { @@ -106,7 +106,7 @@ static apr_status_t fetch_dbm_value(const char *dbmtype, const char *dbmfile, } apr_dbm_close(f); - + return rv; } diff --git a/modules/aaa/mod_authn_dbm.dep b/modules/aaa/mod_authn_dbm.dep new file mode 100644 index 00000000000..9a283fcce69 --- /dev/null +++ b/modules/aaa/mod_authn_dbm.dep @@ -0,0 +1,34 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_authn_dbm.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_authn_dbm.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_provider.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_log.h"\ + "..\..\include\http_protocol.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\include\util_filter.h"\ + "..\..\srclib\apr-util\include\apr_dbm.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_md5.h"\ + "..\..\srclib\apr-util\include\apr_optional.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_portable.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + ".\mod_auth.h"\ + diff --git a/modules/aaa/mod_authn_dbm.dsp b/modules/aaa/mod_authn_dbm.dsp index 47f01a1a21c..f2c3ff8275c 100644 --- a/modules/aaa/mod_authn_dbm.dsp +++ b/modules/aaa/mod_authn_dbm.dsp @@ -47,13 +47,19 @@ RSC=rc.exe # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_authn_dbm.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_dbm.so" /d LONG_NAME="authn_dbm_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so /opt:ref +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_authn_dbm.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" @@ -68,18 +74,24 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_dbm_src" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_dbm_src" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_authn_dbm.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_dbm.so" /d LONG_NAME="authn_dbm_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_dbm.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_authn_dbm.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ENDIF @@ -93,36 +105,7 @@ SOURCE=.\mod_authn_dbm.c # End Source File # Begin Source File -SOURCE=.\mod_authn_dbm.rc -# End Source File -# Begin Source File - -SOURCE=..\..\build\win32\win32ver.awk - -!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_dbm.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_dbm.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_dbm.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_dbm.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_dbm.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_dbm.rc - -# End Custom Build - -!ENDIF - +SOURCE=..\..\build\win32\httpd.rc # End Source File # End Target # End Project diff --git a/modules/aaa/mod_authn_dbm.mak b/modules/aaa/mod_authn_dbm.mak new file mode 100644 index 00000000000..9e61ed457bd --- /dev/null +++ b/modules/aaa/mod_authn_dbm.mak @@ -0,0 +1,381 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_authn_dbm.dsp +!IF "$(CFG)" == "" +CFG=mod_authn_dbm - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_authn_dbm - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_authn_dbm - Win32 Release" && "$(CFG)" != "mod_authn_dbm - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_dbm.mak" CFG="mod_authn_dbm - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_dbm - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_dbm - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_dbm.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Release" "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_authn_dbm.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" "mod_auth_basic - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_dbm.obj" + -@erase "$(INTDIR)\mod_authn_dbm.res" + -@erase "$(INTDIR)\mod_authn_dbm_src.idb" + -@erase "$(INTDIR)\mod_authn_dbm_src.pdb" + -@erase "$(OUTDIR)\mod_authn_dbm.exp" + -@erase "$(OUTDIR)\mod_authn_dbm.lib" + -@erase "$(OUTDIR)\mod_authn_dbm.pdb" + -@erase "$(OUTDIR)\mod_authn_dbm.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_dbm_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_dbm.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_dbm.so" /d LONG_NAME="authn_dbm_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_dbm.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_dbm.pdb" /debug /out:"$(OUTDIR)\mod_authn_dbm.so" /implib:"$(OUTDIR)\mod_authn_dbm.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_dbm.obj" \ + "$(INTDIR)\mod_authn_dbm.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_dbm.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_authn_dbm.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_dbm.so" + if exist .\Release\mod_authn_dbm.so.manifest mt.exe -manifest .\Release\mod_authn_dbm.so.manifest -outputresource:.\Release\mod_authn_dbm.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_dbm.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Debug" "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_authn_dbm.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" "mod_auth_basic - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_dbm.obj" + -@erase "$(INTDIR)\mod_authn_dbm.res" + -@erase "$(INTDIR)\mod_authn_dbm_src.idb" + -@erase "$(INTDIR)\mod_authn_dbm_src.pdb" + -@erase "$(OUTDIR)\mod_authn_dbm.exp" + -@erase "$(OUTDIR)\mod_authn_dbm.lib" + -@erase "$(OUTDIR)\mod_authn_dbm.pdb" + -@erase "$(OUTDIR)\mod_authn_dbm.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_dbm_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_dbm.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_dbm.so" /d LONG_NAME="authn_dbm_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_dbm.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_dbm.pdb" /debug /out:"$(OUTDIR)\mod_authn_dbm.so" /implib:"$(OUTDIR)\mod_authn_dbm.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_dbm.so +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_dbm.obj" \ + "$(INTDIR)\mod_authn_dbm.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_dbm.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_authn_dbm.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_dbm.so" + if exist .\Debug\mod_authn_dbm.so.manifest mt.exe -manifest .\Debug\mod_authn_dbm.so.manifest -outputresource:.\Debug\mod_authn_dbm.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_authn_dbm.dep") +!INCLUDE "mod_authn_dbm.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_authn_dbm.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" || "$(CFG)" == "mod_authn_dbm - Win32 Debug" + +!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" + +"mod_auth_basic - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" + cd "." + +"mod_auth_basic - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" + +"mod_auth_basic - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" + cd "." + +"mod_auth_basic - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_authn_dbm - Win32 Release" + + +"$(INTDIR)\mod_authn_dbm.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_dbm.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_authn_dbm.so" /d LONG_NAME="authn_dbm_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_authn_dbm - Win32 Debug" + + +"$(INTDIR)\mod_authn_dbm.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_dbm.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_authn_dbm.so" /d LONG_NAME="authn_dbm_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_authn_dbm.c + +"$(INTDIR)\mod_authn_dbm.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_authn_default.c b/modules/aaa/mod_authn_default.c index babeebd3e63..14d3879ed65 100644 --- a/modules/aaa/mod_authn_default.c +++ b/modules/aaa/mod_authn_default.c @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -46,7 +46,7 @@ static const command_rec authn_default_cmds[] = OR_AUTHCFG, "Set to 'Off' to allow access control to be passed along to " "lower modules if the UserID is not known to this module. " - "(default is On)."), + "(default is On)."), {NULL} }; @@ -60,7 +60,7 @@ static int authenticate_no_user(request_rec *r) const char *type; if (!(type = ap_auth_type(r))) { - return DECLINED; + return DECLINED; } /* fill in the r->user field */ @@ -74,7 +74,7 @@ static int authenticate_no_user(request_rec *r) } if (conf->authoritative == 0) { - return DECLINED; + return DECLINED; } ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, diff --git a/modules/aaa/mod_authn_default.dep b/modules/aaa/mod_authn_default.dep new file mode 100644 index 00000000000..ef61c579d08 --- /dev/null +++ b/modules/aaa/mod_authn_default.dep @@ -0,0 +1,30 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_authn_default.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_authn_default.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_log.h"\ + "..\..\include\http_protocol.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\include\util_filter.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_optional.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_portable.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + diff --git a/modules/aaa/mod_authn_default.dsp b/modules/aaa/mod_authn_default.dsp index db3fb60617c..89d55b0ff03 100644 --- a/modules/aaa/mod_authn_default.dsp +++ b/modules/aaa/mod_authn_default.dsp @@ -47,13 +47,19 @@ RSC=rc.exe # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_authn_default.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_default.so" /d LONG_NAME="authn_default_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so /opt:ref +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_authn_default.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" @@ -68,18 +74,24 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_default_src" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_default_src" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_authn_default.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_default.so" /d LONG_NAME="authn_default_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_default.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_authn_default.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ENDIF @@ -93,36 +105,7 @@ SOURCE=.\mod_authn_default.c # End Source File # Begin Source File -SOURCE=.\mod_authn_default.rc -# End Source File -# Begin Source File - -SOURCE=..\..\build\win32\win32ver.awk - -!IF "$(CFG)" == "mod_authn_default - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_default.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_default.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_default.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_default.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_default.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_default.rc - -# End Custom Build - -!ENDIF - +SOURCE=..\..\build\win32\httpd.rc # End Source File # End Target # End Project diff --git a/modules/aaa/mod_authn_default.mak b/modules/aaa/mod_authn_default.mak new file mode 100644 index 00000000000..c7d457fd3bc --- /dev/null +++ b/modules/aaa/mod_authn_default.mak @@ -0,0 +1,381 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_authn_default.dsp +!IF "$(CFG)" == "" +CFG=mod_authn_default - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_authn_default - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_authn_default - Win32 Release" && "$(CFG)" != "mod_authn_default - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_default.mak" CFG="mod_authn_default - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_default - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_default - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_authn_default - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_default.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Release" "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_authn_default.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" "mod_auth_basic - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_default.obj" + -@erase "$(INTDIR)\mod_authn_default.res" + -@erase "$(INTDIR)\mod_authn_default_src.idb" + -@erase "$(INTDIR)\mod_authn_default_src.pdb" + -@erase "$(OUTDIR)\mod_authn_default.exp" + -@erase "$(OUTDIR)\mod_authn_default.lib" + -@erase "$(OUTDIR)\mod_authn_default.pdb" + -@erase "$(OUTDIR)\mod_authn_default.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_default_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_default.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_default.so" /d LONG_NAME="authn_default_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_default.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_default.pdb" /debug /out:"$(OUTDIR)\mod_authn_default.so" /implib:"$(OUTDIR)\mod_authn_default.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_default.obj" \ + "$(INTDIR)\mod_authn_default.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_default.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_authn_default.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_default.so" + if exist .\Release\mod_authn_default.so.manifest mt.exe -manifest .\Release\mod_authn_default.so.manifest -outputresource:.\Release\mod_authn_default.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_default.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Debug" "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_authn_default.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" "mod_auth_basic - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_default.obj" + -@erase "$(INTDIR)\mod_authn_default.res" + -@erase "$(INTDIR)\mod_authn_default_src.idb" + -@erase "$(INTDIR)\mod_authn_default_src.pdb" + -@erase "$(OUTDIR)\mod_authn_default.exp" + -@erase "$(OUTDIR)\mod_authn_default.lib" + -@erase "$(OUTDIR)\mod_authn_default.pdb" + -@erase "$(OUTDIR)\mod_authn_default.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_default_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_default.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_default.so" /d LONG_NAME="authn_default_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_default.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_default.pdb" /debug /out:"$(OUTDIR)\mod_authn_default.so" /implib:"$(OUTDIR)\mod_authn_default.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_default.so +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_default.obj" \ + "$(INTDIR)\mod_authn_default.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_default.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_authn_default.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_default.so" + if exist .\Debug\mod_authn_default.so.manifest mt.exe -manifest .\Debug\mod_authn_default.so.manifest -outputresource:.\Debug\mod_authn_default.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_authn_default.dep") +!INCLUDE "mod_authn_default.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_authn_default.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_authn_default - Win32 Release" || "$(CFG)" == "mod_authn_default - Win32 Debug" + +!IF "$(CFG)" == "mod_authn_default - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_default - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_default - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_default - Win32 Release" + +"mod_auth_basic - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" + cd "." + +"mod_auth_basic - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" + +"mod_auth_basic - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" + cd "." + +"mod_auth_basic - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_authn_default - Win32 Release" + + +"$(INTDIR)\mod_authn_default.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_default.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_authn_default.so" /d LONG_NAME="authn_default_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_authn_default - Win32 Debug" + + +"$(INTDIR)\mod_authn_default.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_default.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_authn_default.so" /d LONG_NAME="authn_default_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_authn_default.c + +"$(INTDIR)\mod_authn_default.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_authn_file.c b/modules/aaa/mod_authn_file.c index 726ed464944..f3b2b9db735 100644 --- a/modules/aaa/mod_authn_file.c +++ b/modules/aaa/mod_authn_file.c @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -70,6 +70,12 @@ static authn_status check_password(request_rec *r, const char *user, apr_status_t status; char *file_password = NULL; + if (!conf->pwfile) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "AuthUserFile not specified in the configuration"); + return AUTH_GENERAL_ERROR; + } + status = ap_pcfg_openfile(&f, r->pool, conf->pwfile); if (status != APR_SUCCESS) { @@ -118,6 +124,12 @@ static authn_status get_realm_hash(request_rec *r, const char *user, apr_status_t status; char *file_hash = NULL; + if (!conf->pwfile) { + ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, + "AuthUserFile not specified in the configuration"); + return AUTH_GENERAL_ERROR; + } + status = ap_pcfg_openfile(&f, r->pool, conf->pwfile); if (status != APR_SUCCESS) { diff --git a/modules/aaa/mod_authn_file.dep b/modules/aaa/mod_authn_file.dep new file mode 100644 index 00000000000..963946b6781 --- /dev/null +++ b/modules/aaa/mod_authn_file.dep @@ -0,0 +1,33 @@ +# Microsoft Developer Studio Generated Dependency File, included by mod_authn_file.mak + +..\..\build\win32\httpd.rc : \ + "..\..\include\ap_release.h"\ + + +.\mod_authn_file.c : \ + "..\..\include\ap_config.h"\ + "..\..\include\ap_mmn.h"\ + "..\..\include\ap_provider.h"\ + "..\..\include\ap_regex.h"\ + "..\..\include\ap_release.h"\ + "..\..\include\http_config.h"\ + "..\..\include\http_core.h"\ + "..\..\include\http_log.h"\ + "..\..\include\http_protocol.h"\ + "..\..\include\http_request.h"\ + "..\..\include\httpd.h"\ + "..\..\include\os.h"\ + "..\..\include\util_cfgtree.h"\ + "..\..\include\util_filter.h"\ + "..\..\srclib\apr-util\include\apr_hooks.h"\ + "..\..\srclib\apr-util\include\apr_md5.h"\ + "..\..\srclib\apr-util\include\apr_optional.h"\ + "..\..\srclib\apr-util\include\apr_optional_hooks.h"\ + "..\..\srclib\apr-util\include\apr_uri.h"\ + "..\..\srclib\apr\include\apr_hash.h"\ + "..\..\srclib\apr\include\apr_mmap.h"\ + "..\..\srclib\apr\include\apr_poll.h"\ + "..\..\srclib\apr\include\apr_portable.h"\ + "..\..\srclib\apr\include\apr_strings.h"\ + ".\mod_auth.h"\ + diff --git a/modules/aaa/mod_authn_file.dsp b/modules/aaa/mod_authn_file.dsp index 0a5c13146e2..4dc03d508a7 100644 --- a/modules/aaa/mod_authn_file.dsp +++ b/modules/aaa/mod_authn_file.dsp @@ -47,13 +47,19 @@ RSC=rc.exe # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /fo"Release/mod_authn_file.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_file.so" /d LONG_NAME="authn_file_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"Release/mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so /opt:ref +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so /opt:ref +# Begin Special Build Tool +TargetPath=.\Release\mod_authn_file.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" @@ -68,18 +74,24 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_file_src" /FD /c +# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c +# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fd"Debug\mod_authn_file_src" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" # ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /fo"Debug/mod_authn_file.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_file.so" /d LONG_NAME="authn_file_module for Apache" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so -# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so +# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so +# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_authn_file.so" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so +# Begin Special Build Tool +TargetPath=.\Debug\mod_authn_file.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2 +# End Special Build Tool !ENDIF @@ -93,36 +105,7 @@ SOURCE=.\mod_authn_file.c # End Source File # Begin Source File -SOURCE=.\mod_authn_file.rc -# End Source File -# Begin Source File - -SOURCE=..\..\build\win32\win32ver.awk - -!IF "$(CFG)" == "mod_authn_file - Win32 Release" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_file.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_file.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_file.rc - -# End Custom Build - -!ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" - -# PROP Ignore_Default_Tool 1 -# Begin Custom Build - Creating Version Resource -InputPath=..\..\build\win32\win32ver.awk - -".\mod_authn_file.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - awk -f ../../build/win32/win32ver.awk mod_authn_file.so "auth_basic_module for Apache" ../../include/ap_release.h > .\mod_authn_file.rc - -# End Custom Build - -!ENDIF - +SOURCE=..\..\build\win32\httpd.rc # End Source File # End Target # End Project diff --git a/modules/aaa/mod_authn_file.mak b/modules/aaa/mod_authn_file.mak new file mode 100644 index 00000000000..f8a6c855bc2 --- /dev/null +++ b/modules/aaa/mod_authn_file.mak @@ -0,0 +1,381 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on mod_authn_file.dsp +!IF "$(CFG)" == "" +CFG=mod_authn_file - Win32 Debug +!MESSAGE No configuration specified. Defaulting to mod_authn_file - Win32 Debug. +!ENDIF + +!IF "$(CFG)" != "mod_authn_file - Win32 Release" && "$(CFG)" != "mod_authn_file - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "mod_authn_file.mak" CFG="mod_authn_file - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "mod_authn_file - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "mod_authn_file - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +!IF "$(CFG)" == "mod_authn_file - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_file.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Release" "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_authn_file.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" "mod_auth_basic - Win32 ReleaseCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_file.obj" + -@erase "$(INTDIR)\mod_authn_file.res" + -@erase "$(INTDIR)\mod_authn_file_src.idb" + -@erase "$(INTDIR)\mod_authn_file_src.pdb" + -@erase "$(OUTDIR)\mod_authn_file.exp" + -@erase "$(OUTDIR)\mod_authn_file.lib" + -@erase "$(OUTDIR)\mod_authn_file.pdb" + -@erase "$(OUTDIR)\mod_authn_file.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_file_src" /FD /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_file.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_authn_file.so" /d LONG_NAME="authn_file_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_file.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_file.pdb" /debug /out:"$(OUTDIR)\mod_authn_file.so" /implib:"$(OUTDIR)\mod_authn_file.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so /opt:ref +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_file.obj" \ + "$(INTDIR)\mod_authn_file.res" \ + "..\..\srclib\apr\Release\libapr-1.lib" \ + "..\..\srclib\apr-util\Release\libaprutil-1.lib" \ + "..\..\Release\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_file.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Release\mod_authn_file.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_file.so" + if exist .\Release\mod_authn_file.so.manifest mt.exe -manifest .\Release\mod_authn_file.so.manifest -outputresource:.\Release\mod_authn_file.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +!IF "$(RECURSE)" == "0" + +ALL : "$(OUTDIR)\mod_authn_file.so" "$(DS_POSTBUILD_DEP)" + +!ELSE + +ALL : "mod_auth_basic - Win32 Debug" "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_authn_file.so" "$(DS_POSTBUILD_DEP)" + +!ENDIF + +!IF "$(RECURSE)" == "1" +CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" "mod_auth_basic - Win32 DebugCLEAN" +!ELSE +CLEAN : +!ENDIF + -@erase "$(INTDIR)\mod_authn_file.obj" + -@erase "$(INTDIR)\mod_authn_file.res" + -@erase "$(INTDIR)\mod_authn_file_src.idb" + -@erase "$(INTDIR)\mod_authn_file_src.pdb" + -@erase "$(OUTDIR)\mod_authn_file.exp" + -@erase "$(OUTDIR)\mod_authn_file.lib" + -@erase "$(OUTDIR)\mod_authn_file.pdb" + -@erase "$(OUTDIR)\mod_authn_file.so" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP=cl.exe +CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_authn_file_src" /FD /EHsc /c + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +MTL=midl.exe +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" +RSC=rc.exe +RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_authn_file.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_authn_file.so" /d LONG_NAME="authn_file_module for Apache" +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_authn_file.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_authn_file.pdb" /debug /out:"$(OUTDIR)\mod_authn_file.so" /implib:"$(OUTDIR)\mod_authn_file.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_authn_file.so +LINK32_OBJS= \ + "$(INTDIR)\mod_authn_file.obj" \ + "$(INTDIR)\mod_authn_file.res" \ + "..\..\srclib\apr\Debug\libapr-1.lib" \ + "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \ + "..\..\Debug\libhttpd.lib" \ + "$(OUTDIR)\mod_auth_basic.lib" + +"$(OUTDIR)\mod_authn_file.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +TargetPath=.\Debug\mod_authn_file.so +SOURCE="$(InputPath)" +PostBuild_Desc=Embed .manifest +DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep + +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_authn_file.so" + if exist .\Debug\mod_authn_file.so.manifest mt.exe -manifest .\Debug\mod_authn_file.so.manifest -outputresource:.\Debug\mod_authn_file.so;2 + echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)" + +!ENDIF + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("mod_authn_file.dep") +!INCLUDE "mod_authn_file.dep" +!ELSE +!MESSAGE Warning: cannot find "mod_authn_file.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "mod_authn_file - Win32 Release" || "$(CFG)" == "mod_authn_file - Win32 Debug" + +!IF "$(CFG)" == "mod_authn_file - Win32 Release" + +"libapr - Win32 Release" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" + cd "..\..\modules\aaa" + +"libapr - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" + +"libapr - Win32 Debug" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" + cd "..\..\modules\aaa" + +"libapr - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr" + $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_file - Win32 Release" + +"libaprutil - Win32 Release" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" + cd "..\..\modules\aaa" + +"libaprutil - Win32 ReleaseCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" + +"libaprutil - Win32 Debug" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" + cd "..\..\modules\aaa" + +"libaprutil - Win32 DebugCLEAN" : + cd ".\..\..\srclib\apr-util" + $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN + cd "..\..\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_file - Win32 Release" + +"libhttpd - Win32 Release" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" + cd ".\modules\aaa" + +"libhttpd - Win32 ReleaseCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" + +"libhttpd - Win32 Debug" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" + cd ".\modules\aaa" + +"libhttpd - Win32 DebugCLEAN" : + cd ".\..\.." + $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN + cd ".\modules\aaa" + +!ENDIF + +!IF "$(CFG)" == "mod_authn_file - Win32 Release" + +"mod_auth_basic - Win32 Release" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" + cd "." + +"mod_auth_basic - Win32 ReleaseCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Release" RECURSE=1 CLEAN + cd "." + +!ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" + +"mod_auth_basic - Win32 Debug" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" + cd "." + +"mod_auth_basic - Win32 DebugCLEAN" : + cd "." + $(MAKE) /$(MAKEFLAGS) /F ".\mod_auth_basic.mak" CFG="mod_auth_basic - Win32 Debug" RECURSE=1 CLEAN + cd "." + +!ENDIF + +SOURCE=..\..\build\win32\httpd.rc + +!IF "$(CFG)" == "mod_authn_file - Win32 Release" + + +"$(INTDIR)\mod_authn_file.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_file.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "NDEBUG" /d BIN_NAME="mod_authn_file.so" /d LONG_NAME="authn_file_module for Apache" $(SOURCE) + + +!ELSEIF "$(CFG)" == "mod_authn_file - Win32 Debug" + + +"$(INTDIR)\mod_authn_file.res" : $(SOURCE) "$(INTDIR)" + $(RSC) /l 0x409 /fo"$(INTDIR)\mod_authn_file.res" /i "../../include" /i "../../srclib/apr/include" /i ".\..\..\build\win32" /d "_DEBUG" /d BIN_NAME="mod_authn_file.so" /d LONG_NAME="authn_file_module for Apache" $(SOURCE) + + +!ENDIF + +SOURCE=.\mod_authn_file.c + +"$(INTDIR)\mod_authn_file.obj" : $(SOURCE) "$(INTDIR)" + + + +!ENDIF + diff --git a/modules/aaa/mod_authnz_ldap.c b/modules/aaa/mod_authnz_ldap.c index e9d34cfafa9..534c16f788c 100644 --- a/modules/aaa/mod_authnz_ldap.c +++ b/modules/aaa/mod_authnz_ldap.c @@ -1,9 +1,9 @@ -/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as - * applicable. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -29,6 +29,7 @@ #include "apr_xlate.h" #define APR_WANT_STRFUNC #include "apr_want.h" +#include "apr_lib.h" #if APR_HAVE_UNISTD_H /* for getpid() */ @@ -62,14 +63,16 @@ typedef struct { deref_options deref; /* how to handle alias dereferening */ char *binddn; /* DN to bind to server (can be NULL) */ char *bindpw; /* Password to bind to server (can be NULL) */ + int bind_authoritative; /* If true, will return errors when bind fails */ int user_is_dn; /* If true, connection->user is DN instead of userid */ + char *remote_user_attribute; /* If set, connection->user is this attribute instead of userid */ int compare_dn_on_server; /* If true, will use server to do DN compare */ int have_ldap_url; /* Set if we have found an LDAP url */ - + apr_array_header_t *groupattr; /* List of Group attributes */ - int group_attrib_is_dn; /* If true, the group attribute is the DN, otherwise, + int group_attrib_is_dn; /* If true, the group attribute is the DN, otherwise, it's the exact string passed by the HTTP client */ int secure; /* True if SSL connections are requested */ @@ -106,12 +109,12 @@ static char* derive_codepage_from_lang (apr_pool_t *p, char *language) { int lang_len; char *charset; - + if (!language) /* our default codepage */ return apr_pstrdup(p, "ISO-8859-1"); else lang_len = strlen(language); - + charset = (char*) apr_hash_get(charset_conversions, language, APR_HASH_KEY_STRING); if (!charset) { @@ -151,6 +154,29 @@ static apr_xlate_t* get_conv_set (request_rec *r) } +static const char* authn_ldap_xlate_password(request_rec *r, + const char* sent_password) +{ + apr_xlate_t *convset = NULL; + apr_size_t inbytes; + apr_size_t outbytes; + char *outbuf; + + if (charset_conversions && (convset = get_conv_set(r)) ) { + inbytes = strlen(sent_password); + outbytes = (inbytes+1)*3; + outbuf = apr_pcalloc(r->pool, outbytes); + + /* Convert the password to UTF-8. */ + if (apr_xlate_conv_buffer(convset, sent_password, &inbytes, outbuf, + &outbytes) == APR_SUCCESS) + return outbuf; + } + + return sent_password; +} + + /* * Build the search filter, or at least as much of the search filter that * will fit in the buffer. We don't worry about the buffer not being able @@ -163,14 +189,14 @@ static apr_xlate_t* get_conv_set (request_rec *r) * combined with a filter made up of the attribute provided with the URL, * and the actual username passed by the HTTP client. For example, assume * that the LDAP URL is - * + * * ldap://ldap.airius.com/ou=People, o=Airius?uid??(posixid=*) * * Further, assume that the userid passed by the client was `userj'. The * search filter will be (&(posixid=*)(uid=userj)). */ #define FILTER_LENGTH MAX_STRING_LEN -static void authn_ldap_build_filter(char *filtbuf, +static void authn_ldap_build_filter(char *filtbuf, request_rec *r, const char* sent_user, const char* sent_filter, @@ -210,13 +236,13 @@ static void authn_ldap_build_filter(char *filtbuf, } } - /* - * Create the first part of the filter, which consists of the + /* + * Create the first part of the filter, which consists of the * config-supplied portions. */ apr_snprintf(filtbuf, FILTER_LENGTH, "(&(%s)(%s=", filter, sec->attribute); - /* + /* * Now add the client-supplied username to the filter, ensuring that any * LDAP filter metachars are escaped. */ @@ -246,7 +272,7 @@ static void authn_ldap_build_filter(char *filtbuf, *q++ = '5'; *q++ = 'c'; break; - } + } } else *q++ = *p++; @@ -264,8 +290,8 @@ static void authn_ldap_build_filter(char *filtbuf, #endif *q = '\0'; - /* - * Append the closing parens of the filter, unless doing so would + /* + * Append the closing parens of the filter, unless doing so would * overrun the buffer. */ if (q + 2 <= filtbuf_end) @@ -274,7 +300,7 @@ static void authn_ldap_build_filter(char *filtbuf, static void *create_authnz_ldap_dir_config(apr_pool_t *p, char *d) { - authn_ldap_config_t *sec = + authn_ldap_config_t *sec = (authn_ldap_config_t *)apr_pcalloc(p, sizeof(authn_ldap_config_t)); sec->pool = p; @@ -284,7 +310,7 @@ static void *create_authnz_ldap_dir_config(apr_pool_t *p, char *d) /* sec->authz_enabled = 1; */ - sec->groupattr = apr_array_make(p, GROUPATTR_MAX_ELTS, + sec->groupattr = apr_array_make(p, GROUPATTR_MAX_ELTS, sizeof(struct mod_auth_ldap_groupattr_entry_t)); sec->have_ldap_url = 0; @@ -292,6 +318,7 @@ static void *create_authnz_ldap_dir_config(apr_pool_t *p, char *d) sec->host = NULL; sec->binddn = NULL; sec->bindpw = NULL; + sec->bind_authoritative = 1; sec->deref = always; sec->group_attrib_is_dn = 1; sec->auth_authoritative = 1; @@ -303,6 +330,7 @@ static void *create_authnz_ldap_dir_config(apr_pool_t *p, char *d) sec->secure = -1; /*Initialize to unset*/ sec->user_is_dn = 0; + sec->remote_user_attribute = NULL; sec->compare_dn_on_server = 0; return sec; @@ -337,7 +365,9 @@ static authn_status authn_ldap_check_password(request_rec *r, const char *user, util_ldap_connection_t *ldc = NULL; int result = 0; + int remote_user_attribute_set = 0; const char *dn = NULL; + const char *utfpassword; authn_ldap_request_t *req = (authn_ldap_request_t *)apr_pcalloc(r->pool, sizeof(authn_ldap_request_t)); @@ -347,9 +377,9 @@ static authn_status authn_ldap_check_password(request_rec *r, const char *user, if (!sec->enabled) { return AUTH_USER_NOT_FOUND; } -*/ +*/ - /* + /* * Basic sanity checks before any LDAP operations even happen. */ if (!sec->have_ldap_url) { @@ -365,25 +395,25 @@ static authn_status authn_ldap_check_password(request_rec *r, const char *user, sec->secure); } else { - ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, - "[%d] auth_ldap authenticate: no sec->host - weird...?", getpid()); + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authenticate: no sec->host - weird...?", getpid()); return AUTH_GENERAL_ERROR; } ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authenticate: using URL %s", getpid(), sec->url); + "[%" APR_PID_T_FMT "] auth_ldap authenticate: using URL %s", getpid(), sec->url); /* Get the password that the client sent */ if (password == NULL) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authenticate: no password specified", getpid()); + "[%" APR_PID_T_FMT "] auth_ldap authenticate: no password specified", getpid()); util_ldap_connection_close(ldc); return AUTH_GENERAL_ERROR; } if (user == NULL) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authenticate: no user specified", getpid()); + "[%" APR_PID_T_FMT "] auth_ldap authenticate: no user specified", getpid()); util_ldap_connection_close(ldc); return AUTH_GENERAL_ERROR; } @@ -391,13 +421,17 @@ static authn_status authn_ldap_check_password(request_rec *r, const char *user, /* build the username filter */ authn_ldap_build_filter(filtbuf, r, user, NULL, sec); + /* convert password to utf-8 */ + utfpassword = authn_ldap_xlate_password(r, password); + /* do the user search */ result = util_ldap_cache_checkuserid(r, ldc, sec->url, sec->basedn, sec->scope, - sec->attributes, filtbuf, password, &dn, &vals); + sec->attributes, filtbuf, utfpassword, + &dn, &vals); util_ldap_connection_close(ldc); /* sanity check - if server is down, retry it up to 5 times */ - if (result == LDAP_SERVER_DOWN) { + if (AP_LDAP_IS_SERVER_DOWN(result)) { if (failures++ <= 5) { goto start_over; } @@ -405,14 +439,37 @@ static authn_status authn_ldap_check_password(request_rec *r, const char *user, /* handle bind failure */ if (result != LDAP_SUCCESS) { - ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, - "[%d] auth_ldap authenticate: " + if (!sec->bind_authoritative) { + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authenticate: " + "user %s authentication failed; URI %s [%s][%s] (not authoritative)", + getpid(), user, r->uri, ldc->reason, ldap_err2string(result)); + return AUTH_USER_NOT_FOUND; + } + + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authenticate: " "user %s authentication failed; URI %s [%s][%s]", getpid(), user, r->uri, ldc->reason, ldap_err2string(result)); return (LDAP_NO_SUCH_OBJECT == result) ? AUTH_USER_NOT_FOUND #ifdef LDAP_SECURITY_ERROR : (LDAP_SECURITY_ERROR(result)) ? AUTH_DENIED +#else + : (LDAP_INAPPROPRIATE_AUTH == result) ? AUTH_DENIED + : (LDAP_INVALID_CREDENTIALS == result) ? AUTH_DENIED +#ifdef LDAP_INSUFFICIENT_ACCESS + : (LDAP_INSUFFICIENT_ACCESS == result) ? AUTH_DENIED +#endif +#ifdef LDAP_INSUFFICIENT_RIGHTS + : (LDAP_INSUFFICIENT_RIGHTS == result) ? AUTH_DENIED +#endif +#endif +#ifdef LDAP_CONSTRAINT_VIOLATION + /* At least Sun Directory Server sends this if a user is + * locked. This is not covered by LDAP_SECURITY_ERROR. + */ + : (LDAP_CONSTRAINT_VIOLATION == result) ? AUTH_DENIED #endif : AUTH_GENERAL_ERROR; } @@ -429,21 +486,37 @@ static authn_status authn_ldap_check_password(request_rec *r, const char *user, apr_table_t *e = r->subprocess_env; int i = 0; while (sec->attributes[i]) { - char *str = apr_pstrcat(r->pool, "AUTHENTICATE_", sec->attributes[i], NULL); - int j = 13; + char *str = apr_pstrcat(r->pool, AUTHN_PREFIX, sec->attributes[i], NULL); + int j = sizeof(AUTHN_PREFIX)-1; /* string length of "AUTHENTICATE_", excluding the trailing NIL */ while (str[j]) { - if (str[j] >= 'a' && str[j] <= 'z') { - str[j] = str[j] - ('a' - 'A'); - } + str[j] = apr_toupper(str[j]); j++; } apr_table_setn(e, str, vals[i]); + + /* handle remote_user_attribute, if set */ + if (sec->remote_user_attribute && + !strcmp(sec->remote_user_attribute, sec->attributes[i])) { + r->user = (char *)apr_pstrdup(r->pool, vals[i]); + remote_user_attribute_set = 1; + } i++; } } - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authenticate: accepting %s", getpid(), user); + /* sanity check */ + if (sec->remote_user_attribute && !remote_user_attribute_set) { + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authenticate: " + "REMOTE_USER was to be set with attribute '%s', " + "but this attribute was not requested for in the " + "LDAP query for the user. REMOTE_USER will fall " + "back to username or DN as appropriate.", getpid(), + sec->remote_user_attribute); + } + + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authenticate: accepting %s", getpid(), user); return AUTH_GRANTED; } @@ -482,6 +555,7 @@ static int authz_ldap_check_user_access(request_rec *r) const char *t; char *w, *value; int method_restricted = 0; + int required_ldap = 0; char filtbuf[FILTER_LENGTH]; const char *dn = NULL; @@ -491,12 +565,35 @@ static int authz_ldap_check_user_access(request_rec *r) if (!sec->enabled) { return DECLINED; } -*/ +*/ if (!sec->have_ldap_url) { return DECLINED; } + /* pre-scan for ldap-* requirements so we can get out of the way early */ + for(x=0; x < reqs_arr->nelts; x++) { + if (! (reqs[x].method_mask & (AP_METHOD_BIT << m))) { + continue; + } + + t = reqs[x].requirement; + w = ap_getword_white(r->pool, &t); + + if (strncmp(w, "ldap-",5) == 0) { + required_ldap = 1; + break; + } + } + + if (!required_ldap) { + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: declining to authorise (no ldap requirements)", getpid()); + return DECLINED; + } + + + if (sec->host) { ldc = util_ldap_connection_find(r, sec->host, sec->port, sec->binddn, sec->bindpw, sec->deref, @@ -506,12 +603,12 @@ static int authz_ldap_check_user_access(request_rec *r) apr_pool_cleanup_null); } else { - ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, - "[%d] auth_ldap authorise: no sec->host - weird...?", getpid()); + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: no sec->host - weird...?", getpid()); return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED; } - /* + /* * If there are no elements in the group attribute array, the default should be * member and uniquemember; populate the array now. */ @@ -529,12 +626,6 @@ static int authz_ldap_check_user_access(request_rec *r) #endif } - if (!reqs_arr) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: no requirements array", getpid()); - return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED; - } - /* * If we have been authenticated by some other module than mod_auth_ldap, * the req structure needed for authorization needs to be created @@ -576,57 +667,57 @@ static int authz_ldap_check_user_access(request_rec *r) /* Loop through the requirements array until there's no elements * left, or something causes a return from inside the loop */ for(x=0; x < reqs_arr->nelts; x++) { - if (! (reqs[x].method_mask & (1 << m))) { + if (! (reqs[x].method_mask & (AP_METHOD_BIT << m))) { continue; } method_restricted = 1; t = reqs[x].requirement; w = ap_getword_white(r->pool, &t); - + if (strcmp(w, "ldap-user") == 0) { if (req->dn == NULL || strlen(req->dn) == 0) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " - "require user: user's DN has not been defined; failing authorisation", + "[%" APR_PID_T_FMT "] auth_ldap authorise: " + "require user: user's DN has not been defined; failing authorisation", getpid()); return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED; } - /* + /* * First do a whole-line compare, in case it's something like * require user Babs Jensen */ result = util_ldap_cache_compare(r, ldc, sec->url, req->dn, sec->attribute, t); switch(result) { case LDAP_COMPARE_TRUE: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require user: authorisation successful", getpid()); return OK; } default: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: require user: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: require user: " "authorisation failed [%s][%s]", getpid(), ldc->reason, ldap_err2string(result)); } } - /* - * Now break apart the line and compare each word on it + /* + * Now break apart the line and compare each word on it */ while (t[0]) { w = ap_getword_conf(r->pool, &t); result = util_ldap_cache_compare(r, ldc, sec->url, req->dn, sec->attribute, w); switch(result) { case LDAP_COMPARE_TRUE: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require user: authorisation successful", getpid()); return OK; } default: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require user: authorisation failed [%s][%s]", getpid(), ldc->reason, ldap_err2string(result)); } @@ -636,8 +727,8 @@ static int authz_ldap_check_user_access(request_rec *r) else if (strcmp(w, "ldap-dn") == 0) { if (req->dn == NULL || strlen(req->dn) == 0) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " - "require dn: user's DN has not been defined; failing authorisation", + "[%" APR_PID_T_FMT "] auth_ldap authorise: " + "require dn: user's DN has not been defined; failing authorisation", getpid()); return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED; } @@ -645,14 +736,14 @@ static int authz_ldap_check_user_access(request_rec *r) result = util_ldap_cache_comparedn(r, ldc, sec->url, req->dn, t, sec->compare_dn_on_server); switch(result) { case LDAP_COMPARE_TRUE: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require dn: authorisation successful", getpid()); return OK; } default: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require dn \"%s\": LDAP error [%s][%s]", getpid(), t, ldc->reason, ldap_err2string(result)); } @@ -665,41 +756,44 @@ static int authz_ldap_check_user_access(request_rec *r) if (sec->group_attrib_is_dn) { if (req->dn == NULL || strlen(req->dn) == 0) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: require group: user's DN has not been defined; failing authorisation", + "[%" APR_PID_T_FMT "] auth_ldap authorise: require group: " + "user's DN has not been defined; failing authorisation", getpid()); return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED; } } else { if (req->user == NULL || strlen(req->user) == 0) { - /* We weren't called in the authentication phase, so we didn't have a + /* We weren't called in the authentication phase, so we didn't have a * chance to set the user field. Do so now. */ req->user = r->user; } } - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: require group: testing for group membership in \"%s\"", + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: require group: " + "testing for group membership in \"%s\"", getpid(), t); for (i = 0; i < sec->groupattr->nelts; i++) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: require group: testing for %s: %s (%s)", getpid(), + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: require group: " + "testing for %s: %s (%s)", getpid(), ent[i].name, sec->group_attrib_is_dn ? req->dn : req->user, t); - result = util_ldap_cache_compare(r, ldc, sec->url, t, ent[i].name, + result = util_ldap_cache_compare(r, ldc, sec->url, t, ent[i].name, sec->group_attrib_is_dn ? req->dn : req->user); switch(result) { case LDAP_COMPARE_TRUE: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: require group: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: require group: " "authorisation successful (attribute %s) [%s][%s]", getpid(), ent[i].name, ldc->reason, ldap_err2string(result)); return OK; } default: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: require group \"%s\": " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: require group \"%s\": " "authorisation failed [%s][%s]", getpid(), t, ldc->reason, ldap_err2string(result)); } @@ -709,8 +803,8 @@ static int authz_ldap_check_user_access(request_rec *r) else if (strcmp(w, "ldap-attribute") == 0) { if (req->dn == NULL || strlen(req->dn) == 0) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " - "require ldap-attribute: user's DN has not been defined; failing authorisation", + "[%" APR_PID_T_FMT "] auth_ldap authorise: " + "require ldap-attribute: user's DN has not been defined; failing authorisation", getpid()); return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED; } @@ -719,23 +813,23 @@ static int authz_ldap_check_user_access(request_rec *r) value = ap_getword_conf(r->pool, &t); ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: checking attribute" + "[%" APR_PID_T_FMT "] auth_ldap authorise: checking attribute" " %s has value %s", getpid(), w, value); result = util_ldap_cache_compare(r, ldc, sec->url, req->dn, w, value); switch(result) { case LDAP_COMPARE_TRUE: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, - 0, r, "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, + 0, r, "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require attribute: authorisation " "successful", getpid()); return OK; } default: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, - 0, r, "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, + 0, r, "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require attribute: authorisation " - "failed [%s][%s]", getpid(), + "failed [%s][%s]", getpid(), ldc->reason, ldap_err2string(result)); } } @@ -744,14 +838,14 @@ static int authz_ldap_check_user_access(request_rec *r) else if (strcmp(w, "ldap-filter") == 0) { if (req->dn == NULL || strlen(req->dn) == 0) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: " - "require ldap-filter: user's DN has not been defined; failing authorisation", + "[%" APR_PID_T_FMT "] auth_ldap authorise: " + "require ldap-filter: user's DN has not been defined; failing authorisation", getpid()); return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED; } if (t[0]) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: checking filter %s", + "[%" APR_PID_T_FMT "] auth_ldap authorise: checking filter %s", getpid(), t); /* Build the username filter */ @@ -764,33 +858,33 @@ static int authz_ldap_check_user_access(request_rec *r) /* Make sure that the filtered search returned the correct user dn */ if (result == LDAP_SUCCESS) { ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: checking dn match %s", + "[%" APR_PID_T_FMT "] auth_ldap authorise: checking dn match %s", getpid(), dn); - result = util_ldap_cache_comparedn(r, ldc, sec->url, req->dn, dn, + result = util_ldap_cache_comparedn(r, ldc, sec->url, req->dn, dn, sec->compare_dn_on_server); } switch(result) { case LDAP_COMPARE_TRUE: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, - 0, r, "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, + 0, r, "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require ldap-filter: authorisation " "successful", getpid()); return OK; } case LDAP_FILTER_ERROR: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, - 0, r, "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, + 0, r, "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require ldap-filter: %s authorisation " - "failed [%s][%s]", getpid(), + "failed [%s][%s]", getpid(), filtbuf, ldc->reason, ldap_err2string(result)); break; } default: { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, - 0, r, "[%d] auth_ldap authorise: " + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, + 0, r, "[%" APR_PID_T_FMT "] auth_ldap authorise: " "require ldap-filter: authorisation " - "failed [%s][%s]", getpid(), + "failed [%s][%s]", getpid(), ldc->reason, ldap_err2string(result)); } } @@ -799,31 +893,31 @@ static int authz_ldap_check_user_access(request_rec *r) } if (!method_restricted) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: agreeing because non-restricted", + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: agreeing because non-restricted", getpid()); return OK; } if (!sec->auth_authoritative) { - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: declining to authorise", getpid()); + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: declining to authorise (not authoritative)", getpid()); return DECLINED; } - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "[%d] auth_ldap authorise: authorisation denied", getpid()); + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "[%" APR_PID_T_FMT "] auth_ldap authorise: authorisation denied", getpid()); ap_note_basic_auth_failure (r); return HTTP_UNAUTHORIZED; } -/* +/* * Use the ldap url parsing routines to break up the ldap url into * host and port. */ -static const char *mod_auth_ldap_parse_url(cmd_parms *cmd, +static const char *mod_auth_ldap_parse_url(cmd_parms *cmd, void *config, const char *url, const char *mode) @@ -834,31 +928,12 @@ static const char *mod_auth_ldap_parse_url(cmd_parms *cmd, authn_ldap_config_t *sec = config; - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, - cmd->server, "[%d] auth_ldap url parse: `%s'", getpid(), url); - rc = apr_ldap_url_parse(cmd->pool, url, &(urld), &(result)); if (rc != APR_SUCCESS) { return result->reason; } sec->url = apr_pstrdup(cmd->pool, url); - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, - cmd->server, "[%d] auth_ldap url parse: Host: %s", getpid(), urld->lud_host); - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, - cmd->server, "[%d] auth_ldap url parse: Port: %d", getpid(), urld->lud_port); - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, - cmd->server, "[%d] auth_ldap url parse: DN: %s", getpid(), urld->lud_dn); - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, - cmd->server, "[%d] auth_ldap url parse: attrib: %s", getpid(), urld->lud_attrs? urld->lud_attrs[0] : "(null)"); - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, - cmd->server, "[%d] auth_ldap url parse: scope: %s", getpid(), - (urld->lud_scope == LDAP_SCOPE_SUBTREE? "subtree" : - urld->lud_scope == LDAP_SCOPE_BASE? "base" : - urld->lud_scope == LDAP_SCOPE_ONELEVEL? "onelevel" : "unknown")); - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, - cmd->server, "[%d] auth_ldap url parse: filter: %s", getpid(), urld->lud_filter); - /* Set all the values, or at least some sane defaults */ if (sec->host) { char *p = apr_palloc(cmd->pool, strlen(sec->host) + strlen(urld->lud_host) + 2); @@ -893,7 +968,7 @@ static const char *mod_auth_ldap_parse_url(cmd_parms *cmd, if (urld->lud_filter) { if (urld->lud_filter[0] == '(') { - /* + /* * Get rid of the surrounding parens; later on when generating the * filter, they'll be put back. */ @@ -930,18 +1005,29 @@ static const char *mod_auth_ldap_parse_url(cmd_parms *cmd, { sec->secure = APR_LDAP_SSL; sec->port = urld->lud_port? urld->lud_port : LDAPS_PORT; - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, cmd->server, - "LDAP: auth_ldap using SSL connections"); } else { sec->port = urld->lud_port? urld->lud_port : LDAP_PORT; - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, cmd->server, - "LDAP: auth_ldap not using SSL connections"); } sec->have_ldap_url = 1; + ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, + cmd->server, "[%" APR_PID_T_FMT "] auth_ldap url parse: `%s', Host: %s, Port: %d, DN: %s, attrib: %s, scope: %s, filter: %s, connection mode: %s", + getpid(), + url, + urld->lud_host, + urld->lud_port, + urld->lud_dn, + urld->lud_attrs? urld->lud_attrs[0] : "(null)", + (urld->lud_scope == LDAP_SCOPE_SUBTREE? "subtree" : + urld->lud_scope == LDAP_SCOPE_BASE? "base" : + urld->lud_scope == LDAP_SCOPE_ONELEVEL? "onelevel" : "unknown"), + urld->lud_filter, + sec->secure == APR_LDAP_SSL ? "using SSL": "not using SSL" + ); + return NULL; } @@ -962,7 +1048,7 @@ static const char *mod_auth_ldap_set_deref(cmd_parms *cmd, void *config, const c sec->deref = always; } else { - return "Unrecognized value for AuthLDAPAliasDereference directive"; + return "Unrecognized value for AuthLDAPDereferenceAliases directive"; } return NULL; } @@ -978,7 +1064,7 @@ static const char *mod_auth_ldap_add_group_attribute(cmd_parms *cmd, void *confi new = apr_array_push(sec->groupattr); new->name = apr_pstrdup(cmd->pool, arg); - + return NULL; } @@ -989,9 +1075,46 @@ static const char *set_charset_config(cmd_parms *cmd, void *config, const char * return NULL; } +static const char *set_bind_password(cmd_parms *cmd, void *_cfg, const char *arg) +{ + authn_ldap_config_t *sec = _cfg; + int arglen = strlen(arg); + char **argv; + char *result; + + if ((arglen > 5) && strncmp(arg, "exec:", 5) == 0) { + if (apr_tokenize_to_argv(arg+5, &argv, cmd->temp_pool) != APR_SUCCESS) { + return apr_pstrcat(cmd->pool, + "Unable to parse exec arguments from ", + arg+5, NULL); + } + argv[0] = ap_server_root_relative(cmd->temp_pool, argv[0]); + + if (!argv[0]) { + return apr_pstrcat(cmd->pool, + "Invalid AuthLDAPBindPassword exec location:", + arg+5, NULL); + } + result = ap_get_exec_line(cmd->pool, + (const char*)argv[0], (const char * const *)argv); + + if(!result) { + return apr_pstrcat(cmd->pool, + "Unable to get bind password from exec of ", + arg+5, NULL); + } + sec->bindpw = result; + } + else { + sec->bindpw = (char *)arg; + } + + return NULL; +} + static const command_rec authnz_ldap_cmds[] = { - AP_INIT_TAKE12("AuthLDAPURL", mod_auth_ldap_parse_url, NULL, OR_AUTHCFG, + AP_INIT_TAKE12("AuthLDAPURL", mod_auth_ldap_parse_url, NULL, OR_AUTHCFG, "URL to define LDAP connection. This should be an RFC 2255 complaint\n" "URL of the form ldap://host[:port]/basedn[?attrib[?scope[?filter]]].\n" "
    -     start-tag before the HTML preamble, rather than after the preamble
    -     but before the header file contents.  [John Van Essen ]
    -     PR#1667
    -
    -  *) SECURITY: Fix a possible buffer overflow in logresolve.  This is
    -     only an issue on systems without a MAXDNAME define or where
    -     the resolver returns domain names longer than MAXDNAME.  [Marc Slemko]
    -
    -  *) SECURITY: Eliminate possible buffer overflow in cfg_getline, which
    -     is used to read various types of files such as htaccess and
    -     htpasswd files.  [Marc Slemko]
    -
    -  *) SECURITY: Ensure that the buffer returned by ht_time is always
    -     properly null terminated.  [Marc Slemko]
    -
    -  *) The "Connection" header could be sent back with multiple "close"
    -     tokens.  Not an error, but a waste.
    -     [] PR#1683
    -
    -  *) mod_rewrite's RewriteLog should behave like mod_log_config, it
    -     shouldn't force hostname lookups.  [Dean Gaudet] PR#1684
    -
    -  *) "basic" auth needs a case-insensitive comparison.
    -     [] PR#1666
    -
    -  *) For maximum portability, the environment passed to CGIs should
    -     only contain variables whose names match the regex
    -     /[a-zA-Z][a-zA-Z0-9_]*/.  This is now enforced by stamping
    -     underscores over any character outside the regex.  This
    -     affects HTTP_* variables, in a way that should be backward
    -     compatible for all the standard headers; and affects variables
    -     set with SetEnv/BrowserMatch and similar directives.
    -     [Dean Gaudet]
    -
    -  *) mod_speling returned incorrect HREF's when an ambigous match
    -     was found. Noticed by  (Soeren Ziehe)
    -     [Soeren Ziehe , Martin Kraemer]
    -
    -  *) PORT: Apache now compiles & runs on an EBCDIC mainframe
    -     (the Siemens BS2000/OSD family) in the POSIX subsystem
    -     [Martin Kraemer]
    -
    -  *) PORT: Fix problem killing children when terminating.  Allow ^C
    -     to shut down the server.  [Brian Havard]
    +  *) Example configuration: Fix entry for MaxRanges (use "unlimited" instead
    +     of "0").  [Rainer Jung]
     
    -  *) pstrdup() is implicit in calls to table_* functions, so there's
    -     no need to do it before calling.  Clean up a few cases.
    -     [Marc Slemko, Dean Gaudet]
    +  *) mod_substitute: Fix buffer overrun.  [Ruediger Pluem, Rainer Jung]
     
    -  *) new -C and -c command line arguments
    -     usage:
    -     -C "directive" : process directive before reading config files
    -     -c "directive" : process directive after reading config files
    -     example:
    -     httpd -C "PerlModule Apache::httpd_conf"
    -     [Doug MacEachern, Martin Kraemer]
    +Changes with Apache 2.2.21
     
    -  *) WIN32: Fix the execution of CGIs that are scripts and called 
    -     with path info that does not have an '=' in.
    -     (eg. http://server/cgi-bin/printenv?foobar)  
    -     [Marc Slemko] PR#1591
    +  *) SECURITY: CVE-2011-3348 (cve.mitre.org)
    +     mod_proxy_ajp: Respond with HTTP_NOT_IMPLEMENTED when the method is not
    +     recognized.  [Jean-Frederic Clere]
     
    -  *) WIN32: Fix a call to os_canonical_filename so it doesn't try to 
    -     mess with fake filenames.  This fixes proxy caching on 
    -     win32. PR#1265
    +  *) Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20.
    +     PR 51748. []
     
    -  *) SECURITY: General mod_include cleanup, including fixing several
    -     possible buffer overflows and a possible infinite loop.
    -     [Dean Gaudet, Marc Slemko]
    +  *) mod_filter: Instead of dropping the Accept-Ranges header when a filter
    +     registered with AP_FILTER_PROTO_NO_BYTERANGE is present,
    +     set the header value to "none". [Eric Covener, Ruediger Pluem]
     
    -  *) SECURITY: Numerous changes to mod_imap in a general cleanup
    -     including fixing a possible buffer overflow.  [Dean Gaudet]
    +  *) mod_proxy_ajp: Ignore flushing if headers have not been sent.
    +     PR 51608 [Ruediger Pluem]
     
    -  *) WIN32: overhaul of multithreading code. Shutdowns are now graceful
    -     (connections are not dropped). Code can handle graceful restarts
    -     (but there is as yet no way to signal this to Apache). Various
    -     other cleanups. [Paul Sutton]
    +  *) mod_dav_fs: Fix segfault if apr DBM driver cannot be loaded. PR 51751.
    +     [Stefan Fritsch]
     
    -  *) The aplog_error changes specific to 1.3 introduced a buffer
    -     overrun in the (now legacy) log_printf function.  Fixed.
    -     [Dean Gaudet]
    +  *) mod_alias: Adjust log severity of "incomplete redirection target"
    +     message. PR 44020.
     
    -  *) mod_digest didn't properly deal with proxy authentication.  It
    -     also lacked a case-insensitive comparision of the "Digest"
    -     token.  [Ronald Tschalaer ] PR#1599
    +  *) mod_rewrite: Check validity of each internal (int:) RewriteMap even if the
    +     RewriteEngine is disabled in server context, avoiding a crash while
    +     referencing the invalid int: map at runtime. PR 50994.
    +     [Ben Noordhuis ]
     
    -  *) A few cleanups in mod_status for efficiency.  [Dean Gaudet]
    +  *) core: Allow MaxRanges none|unlimited|default and set 'Accept-Ranges: none'
    +     in the case Ranges are being ignored with MaxRanges none.
    +     [Eric Covener]
     
    -  *) A few cleanups in mod_info to make it thread-safe, and remove an
    -     off-by-5 bug that could hammer \0 on the stack. [Dean Gaudet]
    +  *) mod_proxy_ajp: Respect "reuse" flag in END_REPONSE packets.
    +     [Rainer Jung]
     
    -  *) no2slash() was O(n^2) in the length of the input.  Make it O(n).
    -     [Dean Gaudet]
    +Changes with Apache 2.2.20
     
    -  *) API: migration from strncpy() to our "enhanced" version called
    -     ap_cpystrn() for performance and functionality reasons.
    -     Located in libap.a.  [Jim Jagielski]
    +  *) SECURITY: CVE-2011-3192 (cve.mitre.org)
    +     core: Fix handling of byte-range requests to use less memory, to avoid
    +     denial of service. If the sum of all ranges in a request is larger than
    +     the original file, ignore the ranges and send the complete file.
    +     PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener]
     
    -  *) table_set() and table_unset() did not deal correctly with
    -     multiple occurrences of the same key.
    -     [Stephen Scheck , Ben Laurie] PR#1604
    +  *) mod_authnz_ldap: If the LDAP server returns constraint violation,
    +     don't treat this as an error but as "auth denied". [Stefan Fritsch]
     
    -  *) The AuthName must now be enclosed in quotes if it is to contain
    -     spaces.  [Ken Coar] PR#1195
    +  *) mod_filter: Fix FilterProvider conditions of type "resp=" (response
    +     headers) for CGI. [Joe Orton, Rainer Jung]
     
    -  *) API: new function: ap_escape_quotes(). [Ken Coar] PR#1195
    +  *) mod_reqtimeout: Fix a timed out connection going into the keep-alive
    +     state after a timeout when discarding a request body. PR 51103.
    +     [Stefan Fritsch]
     
    -  *) WIN32: Work around optimiser bug that killed ISAPI in release
    -     versions. [Ben Laurie] PR#1533
    +  *) core: Do the hook sorting earlier so that the hooks are properly sorted
    +     for the pre_config hook and during parsing the config. [Stefan Fritsch]
     
    -  *) PORT: Update the MPE port [Mark Bixby, Jim Jagielski]
    +Changes with Apache 2.2.19
     
    -  *) Interim (slow) fix for p->sub_pool critical sections in
    -     alloc.c (affects win32 only).  [Ben Hyde]
    +  *) Revert ABI breakage in 2.2.18 caused by the function signature change
    +     of ap_unescape_url_keep2f().  This release restores the signature from
    +     2.2.17 and prior, and introduces ap_unescape_url_keep2f_ex().
    +     [Eric Covener]
     
    -  *) non-WIN32 was missing destroy_mutex definition.  [Ben Hyde]
    +Changes with Apache 2.2.18
     
    -  *) send_fd_length() did not calculate total_bytes_sent properly.
    -     [Ben Reser ] PR#1366
    +  *) Log an error for failures to read a chunk-size, and return 408 instead
    +     413 when this is due to a read timeout.  This change also fixes some cases
    +     of two error documents being sent in the response for the same scenario.
    +     [Eric Covener] PR49167
     
    -  *) The bputc() macro was not properly integrated with the chunking
    -     code; in many cases modules using bputc() could cause completely
    -     bogus chunked output.  (Typically this will show up as problems
    -     with Internet Explorer 4.0 reading a page, but other browsers
    -     having no problem.) [Dean Gaudet]
    +  *) core: Only log a 408 if it is no keepalive timeout. PR 39785
    +     [Ruediger Pluem,  Mark Montague ]
     
    -  *) Create LARGE_WRITE_THRESHOLD define which determines how many
    -     bytes have to be supplied to bwrite() before it will consider
    -     doing a writev() to assemble multiple buffers in one system
    -     call.  This is critical for modules such as mod_include,
    -     mod_autoindex, mod_php3 which all use bputc()/bputs() of smaller
    -     strings in some cases.  The result would be extra effort
    -     setting up writev(), and in many cases extra effort building
    -     chunks.  The default is 31, it can be overriden at compile
    -     time. [Dean Gaudet]
    +  *) core: Treat timeout reading request as 408 error, not 400.
    +     Log 408 errors in access log as was done in Apache 1.3.x.
    +     PR 39785 [Nobutaka Mantani , Stefan Fritsch,
    +     Dan Poirier]
     
    -  *) Move the gid switching code into the child so that log files
    -     and pid files are opened with the root gid.
    -     [Gregory A Lundberg ]
    +  *) Core HTTP: disable keepalive when the Client has sent
    +     Expect: 100-continue
    +     but we respond directly with a non-100 response.  Keepalive here led
    +     to data from clients continuing being treated as a new request.
    +     PR 47087.  [Nick Kew]
     
    -  *) WIN32: Check for binaries by looking for the executable header
    -     instead of counting control characters.
    -     [Jim Patterson ] PR#1340
    +  *) htpasswd: Change the default algorithm for htpasswd to MD5 on all
    +     platforms. Crypt with its 8 character limit is not useful anymore;
    +     improve out of disk space handling (PR 30877); print a warning if
    +     a password is truncated by crypt. [Stefan Fritsch]
     
    -  *) ap_snprintf() moved from main/util_snprintf.c to ap/ap_snprintf.c
    -     so the functionality is available to applications other than the
    -     server itself (like the src/support tools).  [Ken Coar]
    +  *) mod_win32: Added shebang check for '! so that .vbs scripts work as CGI.
    +     Win32's cscript interpreter can only use a single quote as comment char.
    +     [Guenter Knauf]
     
    -  *) ap_slack() moved out of main/util.c into ap/ap_slack.c as part of
    -     the libap consolidation work.  [Ken Coar]
    +  *) configure: Fix htpasswd/htdbm libcrypt link errors with some newer
    +     linkers. [Stefan Fritsch]
     
    -  *) ap_snprintf() with a len of 0 behaved like sprintf().  This is not
    -     useful, and isn't what the standards require.  Now it returns 0
    -     and writes nothing.  [Dean Gaudet]
    +  *) MinGW build improvements.  PR 49535.  [John Vandenberg
    +     , Jeff Trawick]
     
    -  *) When an error occurs in fcntl() locking suggest the user look up
    -     the docs for LockFile.  [Dean Gaudet]
    +  *) mod_ssl, ab: Support OpenSSL compiled without SSLv2 support.
    +     [Stefan Fritsch]
     
    -  *) Eliminate some dead code from writev_it_all().
    -     [Igor Tatarinov ]
    +  *) core: AllowEncodedSlashes new option NoDecode to allow encoded slashes
    +     in request URL path info but not decode them. PR 35256,
    +     PR 46830.  [Dan Poirier]
     
    -  *) mod_autoindex had an fread() without checking the result code.
    -     It also wouldn't handle "AddIconByType (TXT,/icons/text.gif text/*"
    -     (note the missing closing paren) properly.  [Dean Gaudet]
    +  *) mod_rewrite: Allow to unset environment variables. PR 50746.
    +     [Rainer Jung]
     
    -  *) It appears the "257th byte" bug (see
    -     htdocs/manual/misc/known_client_problems.html#257th-byte) can happen
    -     at the 256th byte as well.  Fixed.  [Dean Gaudet]
    +  *) suEXEC: Add Suexec directive to disable suEXEC without renaming the
    +     binary (Suexec Off), or force startup failure if suEXEC is required
    +     but not supported (Suexec On).  [Jeff Trawick]
     
    -  *) PORT: Fix mod_mime_magic under OS/2, no support for block devices.
    -     [Brian Havard]
    +  *) mod_proxy: Put the worker in error state if the SSL handshake with the
    +     backend fails. PR 50332.
    +     [Daniel Ruggeri , Ruediger Pluem]
     
    -  *) Fix memory corruption caused by allocating auth usernames in the
    -     wrong pool.  [Dean Gaudet] PR#1500
    +  *) prefork: Update MPM state in children during a graceful restart.
    +     Allow the HTTP connection handling loop to terminate early
    +     during a graceful restart.  PR 41743.
    +     [Andrew Punch ]
     
    -  *) Fix an off-by-1, and an unterminated string error in
    -     mod_mime_magic.  [Dean Gaudet]
    +  *) mod_ssl: Correctly read full lines in input filter when the line is
    +     incomplete during first read. PR 50481. [Ruediger Pluem]
     
    -  *) Fix a potential SEGV problem in mod_negotiation when dealing
    -     with type-maps.  [Dean Gaudet]
    +  *) mod_autoindex: Merge IndexOptions from server to directory context when
    +     the directory has no mod_autoindex directives. PR 47766. [Eric Covener]
     
    -  *) Better glibc support under Linux.  [Dean Gaudet] PR#1542
    +  *) mod_cache: Make sure that we never allow a 304 Not Modified response
    +     that we asked for to leak to the client should the 304 response be
    +     uncacheable. PR45341 [Graham Leggett]
     
    -  *) "RedirectMatch gone /" would cause a SIGSEGV. [Dean Gaudet] PR#1319
    +  *) mod_dav: Send 400 error if malformed Content-Range header is received for
    +     a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
     
    -  *) WIN32: avoid overflows during file canonicalisations.
    -     [] PR#1378
    +  *) mod_userdir: Add merging of enable, disable, and filename arguments
    +     to UserDir directive, leaving enable/disable of userlists unmerged.
    +     PR 44076 [Eric Covener]
     
    -  *) WIN32: set_file_slot() didn't detect absolute paths. [Ben Laurie]
    -     PR#1511, 1508
    +  *) core: Honor 'AcceptPathInfo OFF' during internal redirects,
    +     such as per-directory mod_rewrite substitutions.  PR 50349.
    +     [Eric Covener]
     
    -  *) WIN32: mod_status display header didn't match fields. [Ben Laurie]
    +  *) mod_cache: Check the request to determine whether we are allowed
    +     to return cached content at all, and respect a "Cache-Control:
    +     no-cache" header from a client. Previously, "no-cache" would
    +     behave like "max-age=0". [Graham Leggett]
     
    -  *) The pthread_mutex_* functions return an error code, and don't
    -     set errno.  [Igor Tatarinov ]
    +  *) mod_mem_cache: Add a debug msg when a streaming response exceeds
    +     MCacheMaxStreamingBuffer, since mod_cache will follow up with a scary
    +     'memory allocation failed' debug message. PR 49604. [Eric Covener]
     
    -  *) WIN32: Allow spaces to prefix the interpreter in #! lines.
    -     [Ben Laurie] PR#1101
    +  *) proxy_connect: Don't give up in the middle of a CONNECT tunnel
    +     when the child process is starting to exit.  PR50220. [Eric Covener]
     
    -  *) WIN32: Cure file leak in CGIs. [Peter Tillemans ] PR#1523
    +Changes with Apache 2.2.17
     
    -  *) proxy_ftp: the directory listings generated by the proxy ftp module
    -     now have a title in which the path components are clickable and allow
    -     quick navigation to the clicked-on directory on the currently listed
    -     ftp server. This also fixes a bug where the ".." directory links would
    -     sometimes refer to the wrong directory.  [Martin Kraemer]
    +  *) prefork MPM: Run cleanups for final request when process exits gracefully
    +     to work around a flaw in apr-util.  PR 43857.  [Tom Donovan]
     
    -  *) WIN32: Allocate the correct amount of memory for the scoreboard.
    -     [Ben Hyde] PR#1387
    +  *) mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend
    +     connections and other protocol handlers (like mod_ftp). Enforce the
    +     timeout for AP_MODE_GETLINE. If there is a timeout, shorten the lingering
    +     close time from 30 to 2 seconds. [Stefan Fritsch]
     
    -  *) WIN32: Only lowercase the part of the path that is real. [Ben Laurie]
    -     PR#1505
    +  *) Proxy balancer: support setting error status according to HTTP response
    +     code from a backend.  PR 48939.  [Daniel Ruggeri ]
     
    -  *) Fix problems with timeouts in inetd mode and -X mode.  [Dean Gaudet]
    +  *) mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the
    +     password to UTF-8. PR 45318.
    +     [Johannes Müller , Stefan Fritsch]
     
    -  *) Fix the spurious "(0)unknown error: mmap_handler: mmap failed"
    -     error messages. [Ben Hyde]
    +  *) core: check symlink ownership if both FollowSymlinks and
    +     SymlinksIfOwnerMatch are set [Nick Kew]
     
    -Changes with Apache 1.3b3
    +  *) core: fix origin checking in SymlinksIfOwnerMatch
    +     PR 36783 [Robert L Mathews ]
     
    -  *) WIN32: Work around brain-damaged spawn calls that can't deal
    -     with spaces and slashes.  [Ben Laurie]
    +  *) mod_headers: Enable multi-match-and-replace edit option
    +     PR 46594 [Nick Kew]
     
    -  *) WIN32: Fix the code so CGIs can use socket calls on Windows.  
    -     The problem was that certain undocumented environment variables
    -     needed for sockets to work under Win32 were not being passed.
    -     [Frank Faubert ]
    +  *) mod_log_config: Make ${cookie}C correctly match whole cookie names
    +     instead of substrings. PR 28037. [Dan Franklin ,
    +     Stefan Fritsch]
     
    -  *) Add a "-V" command line flag to the httpd binary.  This 
    -     flag shows some of the defines that Apache was compiled with.
    -     It is useful for debugging purposes.  [Martin Kraemer]
    +  *) mod_dir, mod_negotiation: Pass the output filter information
    +     to newly created sub requests; as these are later on used
    +     as true requests with an internal redirect. This allows for
    +     mod_cache et.al. to trap the results of the redirect.
    +     PR 17629, 43939
    +     [Dirk-Willem van Gulik, Jim Jagielski, Joe Orton, Ruediger Pluem]
     
    -  *) Start separating the ap_*() routines into their own library, so they
    -     can be used by items in src/support among other things.  
    -     [Ken Coar] PR#512, 905, 1252, 1308 
    +  *) rotatelogs: Fix possible buffer overflow if admin configures a
    +     mongo log file path. [Jeff Trawick]
     
    -  *) Give a more informative error when no AuthType is set.
    -     [Lars Eilebrecht]
    -
    -  *) Remove strtoul() use from mod_proxy because it isn't available
    -     on all platforms.   [Marc Slemko] PR#1214
    -
    -  *) WIN32: Some Win32 systems terminated all responses after 16 kB. 
    -     This turns out to be a bug in Winsock - select() doesn't always 
    -     return the correct status.  [Ben Laurie]
    -
    -  *) Directives owned by http_core can now use the new check_cmd_context()
    -     routine to ensure that they're not being used within a container
    -     (e.g., ) where they're invalid.  [Martin Kraemer]
    -
    -  *) PORT: Recent changes made it necessary to add explicit prototype
    -     for fgetc() and fgets() on SunOS 4.x.  [Martin Kraemer, Ben Hyde]
    -
    -  *) It was necessary to distinguish between resources which are
    -     allocated in the parent, for cleanup in the parent, and resources
    -     which are allocated in each child, for cleanup in each child.
    -     A new pool was created which is passed to the module child_init
    -     and child_exit functions; modules are free to register per-child
    -     cleanups there.  This fixes a bug with reliable piped logs.
    -     [Dean Gaudet]
    -
    -  *) mod_autoindex wasn't displaying the ReadmeName file at the bottom
    -     unless it was also doing FancyIndexes, but it displayed the
    -     HeaderName file at the top under all circumstances.  It now shows
    -     the ReadmeName file for simple indices, too, as it should.  
    -     [Ken Coar] PR#1373
    -
    -  *) http_core was mmap()ing even in cases where it wasn't going to
    -     read the file.  [Ben Hyde ]
    -
    -  *) Complete rewrite ;-) of mod_rewrite's URL rewriting engine:
    -     Now the rewriting engine (the heart of mod_rewrite) is organized more
    -     straight-forward, first time well documented and reduced to the really
    -     essential parts. All redundant cases were stripped off and processing now
    -     is the same for both per-server and per-directory context with only a
    -     minimum difference (the prefix stripping in per-dir context). As a
    -     side-effect some subtle restrictions and two recently discovered problems
    -     are gone: Wrong escaping of QUERY_STRING on redirects in per-directory
    -     context and restrictions on the substitution URL on redirects.
    -     Additionally some minor source cleanups were done. 
    -     [Ralf S. Engelschall] 
    -
    -  *) Lars Eilebrecht wrote a whole new set of Apache Vhost Internals
    -     documentation, examples, explanations and caveats. They live in a new
    -     subdirectory htdocs/manual/vhost/. [Lars Eilebrecht ]
    +  *) mod_ssl: Do not do overlapping memcpy. PR 45444 [Joe Orton]
     
    -  *) If ap_slack fails to allocate above the low slack line it's a good
    -     indication that further problems will occur; it's a better indication
    -     than many external libraries give us when we actually run out of
    -     descriptors.  So report it to the user once per restart.
    -     [Dean Gaudet] PR#1181
    +  *) vhost: A purely-numeric Host: header should not be treated as a port.
    +     PR 44979 [Nick Kew]
     
    -  *) Change mod_include and mod_autoindex to use Y2K-safe date formats
    -     by default.  [Ken Coar]
    +  *) core: (re)-introduce -T commandline option to suppress documentroot
    +     check at startup.
    +     PR 41887 [Jan van den Berg ]
     
    -  *) Add a "SuppressColumnSorting" option to the IndexOptions list,
    -     which will keep the column heading from being links for sorting
    -     the display.  [Ken Coar, suggested by Brian Tiemann ]
    -     PR #1261
    +Changes with Apache 2.2.16
     
    -  *) PORT: Update the LynxOS port.  [Marius Groeger ]
    +  *) SECURITY: CVE-2010-1452 (cve.mitre.org)
    +     mod_dav, mod_cache: Fix Handling of requests without a path segment.
    +     PR: 49246 [Mark Drayton, Jeff Trawick]
     
    -  *) Fix logic error when issuing a mmap() failed message
    -     with a non-zero MMAP_THRESHOLD.
    -     [David Chambers ] PR#1294
    +  *) SECURITY: CVE-2010-2068 (cve.mitre.org)
    +     mod_proxy_ajp, mod_proxy_http, mod_reqtimeout: Fix timeout detection
    +     for platforms Windows, Netware and OS2.  PR: 49417. [Rainer Jung]
     
    -  *) Preserve handler value on ProxyPass'ed requests by not
    -     calling find_types on a proxy'd request; fixes problems
    -     where some ProxyPass'ed URLs weren't actually passed
    -     to the proxy.
    -     [Lars Eilebrecht] PR#870
    +  *) core: Filter init functions are now run strictly once per request
    +     before handler invocation.  The init functions are no longer run
    +     for connection filters.  PR 49328.  [Joe Orton]
     
    -  *) Fix a byte ordering problem in mod_access which prevented
    -     the old-style syntax (i.e. "a.b.c." to match a class C)
    -     from working properly. [Dean Gaudet] PR#1248, 1328, 1384
    +  *) mod_filter: enable it to act on non-200 responses.
    +     PR 48377 [Nick Kew]
     
    -  *) Fix problem with USE_FLOCK_SERIALIZED_ACCEPT not working
    -     properly. Each child needs to open the lockfile instead
    -     of using the passed file-descriptor from the parent. 
    -     [Jim Jagielski] PR#1056
    +  *) mod_ldap: LDAP caching was suppressed (and ldap-status handler returns
    +     title page only) when any mod_ldap directives were used in VirtualHost
    +     context.  [Eric Covener]
     
    -  *) Fix the error logging in mod_cgi; the recent error log changes
    -     introduced a bug that prevented it from working correctly.
    -     [M.D.Parker] PR#1352
    +  *) mod_ssl: Fix segfault at startup if proxy client certs are shared
    +     across multiple vhosts.  PR 39915.  [Joe Orton]
     
    -  *) Default to USE_FCNTL_SERIALIZED_ACCEPT on HPUX to properly 
    -     handle multiple Listen directives.  [Marc Slemko] PR#872
    +  *) mod_proxy_http: Log the port of the remote server in various messages.
    +     PR 48812. [Igor Galić ]
     
    -  *) Inherit a bugfix to fnmatch.c from FreeBSD sources.
    -     [Андрей Чернов ] PR#1311
    +  *) apxs: Fix -A and -a options to ignore whitespace in httpd.conf
    +     [Philip M. Gollucci]
     
    -  *) When a configuration parse complained about a bad directive,
    -     the logger would use whatever (unrelated) value was in errno.
    -     errno is now forced to EINVAL first in this case.  [Ken Coar]
    +  *) mod_dir: add FallbackResource directive, to enable admin to specify
    +     an action to happen when a URL maps to no file, without resorting
    +     to ErrorDocument or mod_rewrite.  PR 47184 [Nick Kew]
     
    -  *) A sed command in the Configure script pushed the edge of POSIXness,
    -     breaking on some systems.  [Bhaba R.Misra ] PR#1368
    +  *) mod_rewrite: Allow to set environment variables without explicitly
    +     giving a value. [Rainer Jung]
     
    -  *) Solaris >= 2.5 was totally broken due to a mess up using pthread
    -     mutexes.  [Roy Fielding, Dean Gaudet]
    +Changes with Apache 2.2.15
     
    -  *) OS/2 Port updated; it should be possible to build OS/2 from the same
    -     sources as Unix now.  [Brian Havard ]
    +  *) SECURITY: CVE-2009-3555 (cve.mitre.org)
    +     mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection
    +     attack when compiled against OpenSSL version 0.9.8m or later. Introduces
    +     the 'SSLInsecureRenegotiation' directive to reopen this vulnerability
    +     and offer unsafe legacy renegotiation with clients which do not yet
    +     support the new secure renegotiation protocol, RFC 5746.
    +     [Joe Orton, and with thanks to the OpenSSL Team]
     
    -  *) Fix a year formatting bug in mod_usertrack.
    -     [Paul Eggert ] PR#1342
    +  *) SECURITY: CVE-2009-3555 (cve.mitre.org)
    +     mod_ssl: A partial fix for the TLS renegotiation prefix injection attack
    +     for OpenSSL versions prior to 0.9.8l; reject any client-initiated
    +     renegotiations. Forcibly disable keepalive for the connection if there
    +     is any buffered data readable. Any configuration which requires
    +     renegotiation for per-directory/location access control is still
    +     vulnerable, unless using openssl 0.9.8l or later.
    +     [Joe Orton, Ruediger Pluem, Hartmut Keil ]
     
    -  *) A mild SIGTERM/SIGALRM race condition was eliminated.
    -     [Dean Gaudet] PR#1211
    +  *) SECURITY: CVE-2010-0408 (cve.mitre.org)
    +     mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent
    +     when request headers indicate a request body is incoming; not a case of
    +     HTTP_INTERNAL_SERVER_ERROR.  [Niku Toivola ]
     
    -  *) Warn user that default path has changed if /usr/local/etc/httpd
    -     is found on the system.  [Lars Eilebrecht]
    +  *) SECURITY: CVE-2010-0425 (cve.mitre.org)
    +     mod_isapi: Do not unload an isapi .dll module until the request
    +     processing is completed, avoiding orphaned callback pointers.
    +     [Brett Gervasoni , Jeff Trawick]
     
    -  *) Various mod_mime_magic bug fixes and cleanups: Uncompression
    -     should work, it should work on WIN32, and a few resource
    -     leaks and abort conditions are fixed.
    -     [Dean Gaudet] PR#1205
    +  *) SECURITY: CVE-2010-0434 (cve.mitre.org)
    +     Ensure each subrequest has a shallow copy of headers_in so that the
    +     parent request headers are not corrupted.  Eliminates a problematic
    +     optimization in the case of no request body.  PR 48359.
    +     [Jake Scott, William Rowe, Ruediger Pluem]
     
    -  *) PORT: On AIX 1.x files can't be named '@', fix the proxy cache
    -     to use '%' instead of '@' in its encodings.
    -     [David Schuler ] PR#1317
    +  *) mod_reqtimeout: New module to set timeouts and minimum data rates for
    +     receiving requests from the client. [Stefan Fritsch]
     
    -  *) Improve the warning message generated when the "server is busy".
    -     [Dean Gaudet] PR#1293
    +  *) mod_proxy_ajp: Really regard the operation a success, when the client
    +     aborted the connection. In addition adjust the log message if the client
    +     aborted the connection. [Ruediger Pluem]
     
    -  *) PORT: All ports which don't otherwise define DEF_WANTHSREGEX will
    -     get Spencer regex by default.  This is to avoid having to
    -     discover bugs in operating system libraries.  [Dean Gaudet]
    +  *) mod_negotiation: Preserve query string over multiviews negotiation.
    +     This buglet was fixed for type maps in 2.2.6, but the same issue
    +     affected multiviews and was overlooked.
    +     PR 33112.  [Joergen Thomsen ]
     
    -  *) PORT: "Fix" PR#467 by generating warnings on systems which we have
    -     not been able to get working USE_*_SERIALIZED_ACCEPT settings for.
    -     Document this a bit more in src/PORTING.  [Dean Gaudet] PR#467
    +  *) mod_cache: Introduce the thundering herd lock, a mechanism to keep
    +     the flood of requests at bay that strike a backend webserver as
    +     a cached entity goes stale. [Graham Leggett]
     
    -  *) Ensure that one copy of config warnings makes it to the
    -     error_log.  [Dean Gaudet]
    +  *) mod_proxy_http: Make sure that when an ErrorDocument is served
    +     from a reverse proxied URL, that the subrequest respects the status
    +     of the original request. This brings the behaviour of proxy_handler
    +     in line with default_handler. PR 47106. [Graham Leggett]
     
    -  *) Invent new structure and associated methods to handle config file
    -     reading. Add "custom" hook to use config file cfg_getline() on
    -     something which is not a FILE*  [Martin Kraemer]
    +  *) mod_log_config: Add the R option to log the handler used within the
    +     request. [Christian Folini ]
     
    -  *) Make single-exe Windows install. [Ben Laurie and Eric Esselink]
    +  *) mod_include: Allow fine control over the removal of Last-Modified and
    +     ETag headers within the INCLUDES filter, making it possible to cache
    +     responses if desired. Fix the default value of the SSIAccessEnable
    +     directive. [Graham Leggett]
     
    -  *) WIN32: Make CGI work under Win95. [Ben Laurie and Paul Sutton]
    +  *) mod_ssl: Fix a potential I/O hang if a long list of trusted CAs
    +     is configured for client cert auth. PR 46952.  [Joe Orton]
     
    -  *) WIN32: Make index.html and friends work under Win95. [Ben Laurie]
    +  *) core: Fix potential memory leaks by making sure to not destroy
    +     bucket brigades that have been created by earlier filters.
    +     [Stefan Fritsch]
     
    -  *) PORT: Solaris 2.4 needs Spencer regex, the system regex is broken.
    -     [John Line ] PR#1321
    +  *) mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to
    +     try other providers in the case of an LDAP bind failure.
    +     PR 46608.  [Justin Erenkrantz, Joe Schaefer, Tony Stevenson]
     
    -  *) Default pathname has been changed everywhere to /usr/local/apache
    -     [Sameer ]
    +  *) mod_proxy, mod_proxy_http: Support remote https proxies
    +     by using HTTP CONNECT.
    +     PR 19188.  [Philippe Dutrueux , Rainer Jung]
     
    -  *) PORT: AIX now uses USE_FCNTL_SERIALIZED_ACCEPT.
    -     [David Bronder ] PR#849
    +  *) worker: Don't report server has reached MaxClients until it has.
    +     Add message when server gets within MinSpareThreads of MaxClients.
    +     PR 46996.  [Dan Poirier]
     
    -  *) PORT: i386 AIX does not have memmove.
    -     [David Schuler ] PR#1267
    +  *) mod_ssl: When extracting certificate subject/issuer names to the
    +     SSL_*_DN_* variables, handle RDNs with duplicate tags by
    +     exporting multiple varialables with an "_n" integer suffix.
    +     PR 45875.  [Joe Orton, Peter Sylvester ]
     
    -  *) PORT: HPUX now defaults to using Spencer regex.
    -     [Philippe Vanhaesendonck ,
    -     Omar Del Rio ] PR#482, 1246
    +  *) mod_authnz_ldap: Failures to map a username to a DN, or to check a user
    +     password now result in an informational level log entry instead of
    +     warning level.  [Eric Covener]
     
    -  *) PORT: Some versions of NetBSD don't automatically define
    -     __NetBSD__.  Workaround by defining NETBSD.
    -     [Chris Craft ] PR#977
    +  *) core: Preserve Port information over internal redirects
    +     PR 35999.  [Jonas Ringh ]
     
    -  *) PORT: UnixWare 2.x requires -lgen for syslog.
    -     [Hans Snijder ] PR#1249
    +  *) mod_filter: fix FilterProvider matching where "dispatch" string
    +     doesn't exist.
    +     PR 48054.  []
     
    -  *) PORT: ULTRIX appears to not have syslog.
    -     [Lars Eilebrecht ]
    +  *) Build: fix --with-module to work as documented
    +     PR 43881.  [Gez Saunders ]
     
    -  *) PORT: Basic Gemini port (treat it like unixware212).
    -     ["Pavel Yakovlev (Paul McHacker)" ]
    +  *) mod_mime: Make RemoveType override the info from TypesConfig.
    +     PR 38330.  [Stefan Fritsch]
     
    -  *) PORT: All SVR4 systems now use NET_SIZE_T = size_t, and
    -     use USE_SHMGET_SCOREBOARD.
    -     [Martin Kraemer]
    +  *) mod_proxy: unable to connect to a backend is SERVICE_UNAVAILABLE,
    +     rather than BAD_GATEWAY or (especially) NOT_FOUND.
    +     PR 46971.  [Evan Champion ]
     
    -  *) Various improvements in detecting config file errors (missing closing
    -     directives for ,  etc. blocks, prohibiting global
    -     server settings in  blocks, flagging unhandled multiple
    -     arguments to ,  etc.)
    -     [Martin Kraemer]
    +  *) mod_charset_lite: Honor 'CharsetOptions NoImplicitAdd'.
    +     [Eric Covener]
     
    -  *) Add support to suexec wrapper program for mod_unique_id's UNIQUE_ID
    -     variable to provide this one to suexec'd CGIs, too.
    -     [M.D.Parker ] PR#1284
    +  *) mod_ldap: If LDAPSharedCacheSize is too small, try harder to purge
    +     some cache entries and log a warning. Also increase the default
    +     LDAPSharedCacheSize to 500000. This is a more realistic size suitable
    +     for the default values of 1024 for LdapCacheEntries/LdapOpCacheEntries.
    +     PR 46749.  [Stefan Fritsch]
     
    -  *) New support tool: src/support/split-logfile, a sample Perl script which
    -     splits up a combined access log into separate files based on the
    -     name of the virtual host (listed first in the log records by "%v").
    -     [Ken Coar]
    +  *) mod_disk_cache, mod_mem_cache: don't cache incomplete responses,
    +     per RFC 2616, 13.8.  PR15866.  [Dan Poirier]
     
    -Changes with Apache 1.3b2 (there is no 1.3b1)
    +  *) mod_rewrite: Make sure that a hostname:port isn't fully qualified if
    +     the request is a CONNECT request.  PR 47928.
    +     [Bill Zajac ]
     
    -  *) TestCompile was not passing $LIBS [Dean Gaudet]
    +  *) mod_cache: correctly consider s-maxage in cacheability
    +     decisions.  [Dan Poirier]
     
    -  *) Makefile.tmpl was not using $CFLAGS in the link phase. 
    -     [Martin Kraemer]
    +  *) core: Return APR_EOF if request body is shorter than the length announced
    +     by the client. PR 33098.  [Stefan Fritsch]
     
    -  *) Add debugging code to alloc.c.  Defining ALLOC_DEBUG provides a
    -     rudimentary memory debugger which can be used on live servers with
    -     low impact -- it sets all allocated and freed memory bytes to 0xa5.
    -     Defining ALLOC_USE_MALLOC will cause the alloc code to use malloc()
    -     and free() for each object.  This is far more expensive and should
    -     only be used for testing with tools such as Electric Fence and
    -     Purify.  See main/alloc.c for more details.  [Dean Gaudet]
    -
    -  *) Configure uses a sh trap and didn't set its exitcode properly.
    -     [Dean Gaudet] PR#1159
    -
    -  *) Yet another vhost revamp.  Add the NameVirtualHost directive which
    -     explicitly lists the ip:port pairs that are to be used for name-vhosts.
    -     From a given ip:port, regardless what the Host: header is, you can
    -     only reach the vhosts defined on that ip:port.  The precedence of
    -     vhosts was reversed to match other precedences in the config --
    -     the earlier vhosts override the later vhosts.  All vhost matching was
    -     moved into http_vhost.[ch].  [Dean Gaudet]
    -
    -  *) ap_inline can be used to force inlining.  GNUC __attribute__() can
    -     be used for whatever reason is appropriate (i.e. format() warnings
    -     for printf style functions).  Both are enabled only with
    -     gcc >= 2.7.x (so that we have fewer support issues with older
    -     versions).  [Dean Gaudet]
    -
    -  *) Fix support for Proxy Authentication (we were testing the response
    -     status too early). [Marc Slemko]
    -
    -  *) CoreDumpDirectory directive directs where the core file is
    -     written when a SIGSEGV, SIGBUS, SIGABORT or SIGABRT are
    -     received.  [Marc Slemko, Dean Gaudet]
    -
    -  *) PORT: Support for Atari MINT.
    -     [Jan Paul Schmidt ]
    -
    -  *) When booting, apache will now detach itself from stdin, stdout,
    -     and stderr.  stderr will not be detached until after the config
    -     files have been read so you will be able to see initial error
    -     messages.  After that all errors are logged in the error_log.
    -     This makes it more convenient to start apache via rsh, ssh,
    -     or crontabs.  [Dean Gaudet] PR#523
    -
    -  *) mod_proxy was sending HTTP/1.1 responses to ftp requests by mistake.
    -     Also removed the auto-generated link to www.apache.org that was the
    -     source of so many misdirected bug reports.  [Roy Fielding, Marc Slemko]
    -
    -  *) send_fb would not detect aborted connections in some situations.
    -     [Dean Gaudet]
    -
    -  *) mod_include would use uninitialized data when parsing certain
    -     expressions involving && and ||. [Brian Slesinsky] PR#1139
    -
    -  *) mod_imap should only handle GET methods.  [Jay Bloodworth]
    -
    -  *) suexec.c wouldn't build without -DLOG_EXEC. [Jason A. Dour]
    -
    -  *) mod_autoindex improperly counted &escapes; as more than one
    -     character in the description.  It also improperly truncated
    -     descriptions that were exactly the maximum length.
    -     [Martin Kraemer]
    +  *) mod_rewrite: Add scgi scheme detection.  [André Malo]
     
    -  *) RedirectMatch was not properly escaping the result (PR#1155).  Also
    -     "RedirectMatch /advertiser/(.*) $1" is now permitted.
    -     [Dean Gaudet]
    -
    -  *) mod_include now uses symbolic names to check for request success
    -     and return HTTP errors, and correctly handles all types of
    -     redirections (previously it only did temporary redirect correctly).
    -     [Ken Coar, Roy Fielding]
    -
    -  *) mod_userdir was modifying r->finfo in cases where it wasn't setting
    -     r->filename.  Since those two are meant to be in sync with each other
    -     this is a bug.  ["Paul B. Henson" ]
    -
    -  *) PORT: Support Unisys SVR4, whose uname returns mostly useless data.
    -     ["Kaufman, Steven E" ]
    -
    -  *) Inetd mode (which is buggy) uses timeouts without having setup the
    -     jmpbuffer. [Dean Gaudet] PR#1064
    -
    -  *) Work around problem under Linux where a child will start looping
    -     reporting a select error over and over.
    -     [Rick Franchuk ] PR#1107, 987, 588
    -
    -  *) Fixed error in proxy_util.c when looping through multiple host IP
    -     addresses. [Lars Eilebrecht] PR#974
    -
    -  *) If BUFFERED_LOGS is defined then mod_log_config will do atomic
    -     buffered writes -- that is, it will buffer up to PIPE_BUF (i.e. 4k)
    -     bytes before writing, but it will never split a log entry across a
    -     buffer boundary.  [Dean Gaudet]
    -
    -  *) API: the short_score record has been split into two pieces, one which
    -     the parent writes on, and one which the child writes on.  As part of
    -     this change the get_scoreboard_info() function was removed, and
    -     scoreboard_image was exported.  This change fixes a race condition
    -     in file based scoreboard systems, and speeds up changes involving the
    -     scoreboard in earlier 1.3 development.  [Dean Gaudet]
    -
    -  *) API: New register_other_child() API (see http_main.h) which allows
    -     modules to register children with the parent for maintenance.  It
    -     is disabled by defining NO_OTHER_CHILD.  [Dean Gaudet]
    -
    -  *) API: New piped_log API (see http_log.h) which implements piped logs,
    -     and will use register_other_child to implement reliable piped logs
    -     when it is available.  The reliable piped logs part can be disabled
    -     by defining NO_RELIABLE_PIPED_LOGS.  At the moment reliable piped
    -     logs is only available on Unix. [Dean Gaudet]
    -
    -  *) API: set_last_modified() broken into set_last_modified(), set_etag(), and
    -     meets_conditions().  This allows conditional HTTP selection to be
    -     handled separately from the storing of the header fields, and provides
    -     the ability for CGIs to set their own ETags for conditional checking.
    -     [Ken Coar, Roy Fielding]  PR#895
    -
    -  *) Changes to mod_log_config to allow naming of format strings.
    -     Format nicknames are defined with "LogFormat fmt nickname", and can
    -     be used with "LogFormat nickname" and "CustomLog logtarget nickname".
    -     [Ken Coar]
    -
    -  *) New module, "mod_speling", which can help find files even when 
    -     the URL is slightly misspelled. [Martin Kraemer, Alexei Kosut]
    -
    -  *) API: New function child_terminate() triggers the child process to
    -     exit, while allowing the child finish what it needs to for the
    -     current request first.  
    -     [Doug MacEachern, Alexei Kosut]
    -
    -  *) Windows now defaults to using full status reports with mod_status.
    -     [Alexei Kosut] PR #1094
    -
    -  *) *Really* disable all mod_rewrite operations if the engine is off.
    -     Some things (like RewriteMaps) were checked/performed even if they
    -     weren't supposed to be.  [Ken Coar] PR #991
    -
    -  *) Implement a new timer scheme which eliminates the need to call alarm() all
    -     the time.  Instead a counter in the scoreboard for each child is used to
    -     show when the child has made forward progress.  The parent samples this
    -     counter every scoreboard maintenance cycle, and issues SIGALRM if no
    -     progress has been made in the timeout period.  This reduces the static
    -     request best-case syscall count to 22 from 29.  This scheme is only
    -     used by systems with memory-based scoreboards.  [Dean Gaudet]
    -
    -  *) The proxy now properly handles CONNECT requests which are sent
    -     to proxy servers when using ProxyRemote.  [Marc Slemko] PR#1024
    -
    -  *) A script called apachectl has been added to the support 
    -     directory.  This script allows you to do things such as 
    -     "apachectl start" and "apachectl restart" from the command
    -     line.  [Marc Slemko]
    -
    -  *) Modules and core routines are now put into libraries, which
    -     simplifies the link line tremendously (among other advantages).
    -     [Paul Sutton]
    -
    -  *) Some of the MD5 names defined in Apache have been renamed to have
    -     an `ap_' prefix to avoid conflicts with routines supplied by
    -     external libraries.  [Ken Coar]
    -
    -  *) Removal of mod_auth_msql.c from the distribution. There are many
    -     other options for databases today. Rather than offer one option,
    -     offer none at this time. mod_auth_msql and other SQL database
    -     authentication modules can be found at the Apache Module Registry.
    -     http://modules.apache.org/ It would be nice to offer a generic
    -     mod_auth_sql option in the near future.
    -
    -  *) PORT: BeOS support added [Alexei Kosut]
    -
    -  *) Configure no longer accepts the -make option, since it creates
    -     Makefile on the fly based on Makefile.tmpl and Configuration.
    -
    -  *) Apache now gracefully shuts down when it receives a SIGTERM, instead
    -     of forcibly killing off all its processes and exiting without
    -     cleaning up. [Alexei Kosut]
    -
    -  *) API: A new field in the request_rec, r->mtime, has been added to
    -     avoid gratuitous parsing of date strings.  It is intended to hold
    -     the last-modified date of the resource (if applicable).  An
    -     update_mtime() routine has also been added to advance it if
    -     appropriate.  [Roy Fielding, Ken Coar]
    -
    -  *) SECURITY: If a htaccess file can not be read due to bad permissions,
    -     deny access to the directory with a HTTP_FORBIDDEN.  The previous
    -     behavior was to ignore the htaccess file if it could not be read.
    -     This change may make some setups with unreadable htaccess files
    -     stop working.  [Marc Slemko] PR#817
    -
    -  *) Add aplog_error() providing a mechanism to define levels of
    -     verbosity to the server error logging. This addition also provides
    -     the ability to log errors using syslogd. Error logging is configurable
    -     on a per-server basis using the LogLevel directive. Conversion
    -     of log_*() in progress. [Randy Terbush]
    -
    -  *) Further enhance aplog_error() to not log filename, line number, and
    -     errno information when it isn't applicable. [Ken Coar, Dean Gaudet]
    -
    -  *) WIN32: Canonicalise filenames under Win32. Short filenames are
    -     converted to long ones. Backslashes are converted to forward
    -     slashes. Case is converted to lower. Parts of URLs that do not
    -     correspond to files are left completely alone. [Ben Laurie]
    -
    -  *) PORT: 2 new OSs added to the list of ports:
    -      Encore's UMAX V: Arieh Markel 
    -      Acorn RISCiX: Stephen Borrill 
    -
    -  *) Add the server version (SERVER_VERSION macro) to the "server
    -     configured and running" entry in the error_log.  Also build an
    -     object file at link-time that contains the current time
    -     (SERVER_BUILT global const char[]), and include that in the
    -     message.  [Ken Coar]
    -
    -  *) Set r->headers_out when sending responses from the proxy.
    -     This fixes things such as the logging of headers sent from
    -     the proxy.  [Marc Slemko] PR#659
    -
    -  *) support/httpd_monitor is no longer distributed because the 
    -     scoreboard should not be file based if at all possible. Use
    -     mod_status to see current server snapshot.
    -
    -  *) (set_file_slot): New function, allowing auth directives to be
    -     independent of the server root, so the server documents can be
    -     moved to a different directory or machine more easily.
    -     [David J. MacKenzie]
    -
    -  *) If no TransferLog is given explicitly, decline
    -     to log.  This supports coexistence with other logging modules,
    -     such as the custom one that UUNET uses. [David J. MacKenzie]
    -
    -  *) Check for titles in server-parsed HTML files.
    -     Ignore leading newlines and returns in titles.  The old behavior
    -     of replacing a newline after  with a space causes the
    -     title to be misaligned in the listing. [David J. MacKenzie]
    -
    -  *) Change mod_cern_meta to be configurable on a per-directory basis.
    -     [David J. MacKenzie]
    -
    -  *) Add 'Include' directive to allow inclusion of configuration
    -     files within configuration files. [Randy Terbush]
    -
    -  *) Proxy errors on connect() are logged to the error_log (nothing
    -     new); now they include the IP address and port that failed
    -     (*that's* new).   [Ken Coar, Marc Slemko] PR#352
    -
    -  *) Various architectures now define USE_MMAP_FILES which causes
    -     the server to use mmap() for static files.  There are two
    -     compile-time tunables MMAP_THRESHOLD (minimum number of bytes
    -     required to use mmap(), default is 0), and MMAP_SEGMENT_SIZE (maximum
    -     number of bytes written in one cycle from a single mmap()d object,
    -     default 32768).  [Dean Gaudet]
    -
    -  *) API: Added post_read_request API phase which is run right after reading
    -     the request from a client, or right after an internal redirect.  It is
    -     useful for modules setting environment variables that depend only on
    -     the headers/contents of the request.  It does not run during subrequests
    -     because subrequests inherit pretty much everything from the main
    -     request. [Dean Gaudet]
    -
    -  *) Added mod_unique_id which is used to generate a unique identifier for
    -     each hit, available in the environment variable UNIQUE_ID.
    -     [Dean Gaudet]
    -
    -  *) init_modules is now called after the error logs have been opened.  This
    -     allows modules to emit information messages into the error logs.
    -     [Dean Gaudet]
    -
    -  *) Fixed proxy-pass-through feature of mod_rewrite; Added error logging
    -     information for case where proxy module is not available. [Marc Slemko]
    -
    -  *) PORT: Apache has need for mutexes to serialize its children around
    -     accept.  In prior versions either fcntl file locking or flock file
    -     locking were used.  The method is chosen by the definition of
    -     USE_xxx_SERIALIZED_ACCEPT in conf.h.  xxx is FCNTL for fcntl(),
    -     and FLOCK for flock().  New options have been added:
    -        - SYSVSEM to use System V style semaphores
    -        - PTHREAD to use POSIX threads (appears to work on Solaris only)
    -        - USLOCK to use IRIX uslock
    -     Based on timing various techniques, the following changes were made
    -     to the defaults:
    -        - Linux 2.x uses flock instead of fcntl
    -        - Solaris 2.x uses pthreads
    -        - IRIX uses SysV semaphores -- however multiprocessor IRIX boxes
    -          work far faster if you -DUSE_USLOCK_SERIALIZED_ACCEPT
    -     [Dean Gaudet, Pierre-Yves Kerembellec <Pierre-Yves.Kerembellec vtcom.fr>,
    -     Martijn Koster <m.koster pobox.com>]
    -
    -  *) PORT: The semantics of accept/select make it very desirable to use
    -     mutexes to serialize accept when multiple Listens are in use.  But
    -     in the case where only a single socket is open it is sometimes
    -     redundant to serialize accept().  Not all unixes do a good job with
    -     potentially dozens of children blocked on accept() on the same
    -     socket.  It's now possible to define SINGLE_LISTEN_UNSERIALIZED_ACCEPT and
    -     the server will avoid serialization when listening on only one socket,
    -     and use serialization when listening on multiple sockets.
    -     [Dean Gaudet] PR#467
    -
    -  *) Configure changes: TestLib replaced by TestCompile, which has
    -     some additional capability (such as doing a sanity check of
    -     the compiler and flags selected); the version of Solaris is now
    -     available via the #define value of SOLARIS2; IRIX n32bit libs
    -     now supported and selectable by new Configuration Rule: IRIXN32;
    -     We no longer default to -O2 optimization.  [Jim Jagielski]
    -
    -  *) Updated Configure: Configuration now uses AddModule to specify
    -     module source or binary file location, relative to src directory.
    -     Modules can be dropped into modules/extra, or in their own 
    -     directory, and modules can come with a Makefile or Configure can 
    -     create one.  Modules can add compiler or library information to 
    -     generated Makefiles. [Paul Sutton]
    -
    -  *) Source core re-organisation: distributed modules are now in 
    -     modules/standard. All other source code is in main. OS-specific
    -     code is in os/{unix,emx,win32} directories. [Paul Sutton]
    -
    -  *) mod_browser has been removed, since it's replaced by mod_setenvif.
    -     [Ken Coar]
    -
    -  *) Fix another long-standing bug in sub_req_lookup_file where it would
    -     happily skip past access checks on subdirectories looked up with
    -     relative paths.  (It's used by mod_dir, mod_negotiation,
    -     and mod_include.) [Dean Gaudet]
    -
    -  *) directory_walk optimization to reduce an O(N*M) loop to O(N+M) where
    -     N is the number of <Directory> sections, and M is the number of
    -     components in the filename of an object.
    -
    -     To achieve this optimization the following config changes were made:
    -        - Wildcards (* and ?, not the regex forms) in <Directory>s,
    -          <Files>s, and <Location>s now treat a slash as a special
    -          character.  For example "/home/*/public_html" previously would
    -          match "/home/a/andrew/public_html", now it only matches things
    -          like "/home/bob/public_html".  This mimics /bin/sh behaviour.
    -        - It's possible now to use [] wildcarding in <Directory>, <Files>
    -          or <Location>.
    -        - Regex <Directory>s are applied after all non-regex <Directory>s.
    -
    -    [Dean Gaudet]
    -
    -  *) Fix a bug introduced in 1.3a1 directory_walk regarding .htaccess files
    -     and corrupted paths.  [Dean Gaudet]
    -
    -  *) Enhanced and cleaned up the URL rewriting engine of mod_rewrite:
    -     First the grouped parts of RewriteRule pattern matches (parenthesis!) can
    -     be accessed now via backreferences $1..$9 in RewriteConds test-against
    -     strings in addition to RewriteRules subst string. Second the grouped
    -     parts of RewriteCond pattern matches (parenthesis!) can be accessed now
    -     via backreferences %1..%9 both in following RewriteCond test-against
    -     strings and RewriteRules subst string. This provides maximum flexibility
    -     through the use of backreferences.
    -     Additionally the rewriting engine was cleaned up by putting common
    -     code to the new expand_backrefs_inbuffer() function. 
    -     [Ralf S. Engelschall]
    -
    -  *) When merging the main server's <Directory> and <Location> sections into
    -     a vhost, put the main server's first and the vhost's second.  Otherwise
    -     the vhost can't override the main server.  [Dean Gaudet] PR#717
    -
    -  *) The <Directory> code would merge and re-merge the same section after
    -     a match was found, possibly causing problems with some modules.
    -     [Dean Gaudet]
    -
    -  *) ip-based vhosts are stored and queried using a hashing function, which
    -     has been shown to improve performance on servers with many ip-vhosts.
    -     Some other changes had to be made to accommodate this:
    -        - the * address for vhosts now behaves like _default_
    -        - the matching process now is:
    -            - match an ip-vhost directly via hash (possibly matches main
    -              server)
    -            - if that fails, just pretend it matched the main server
    -            - if so far only the main server has been matched, perform
    -              name-based lookups (ServerName, ServerAlias, ServerPath)
    -              *only on name-based vhosts*
    -            - if they fail, look for _default_ vhosts
    -     [Dean Gaudet, Dave Hankins <dhankins sugarat.net>]
    -
    -  *) dbmmanage overhaul:
    -     - merge dbmmanage and dbmmanage.new functionality, remove dbmmanage.new 
    -     - tie() to AnyDBM_File which will use one of DB_File, NDBM_File or
    -       GDBM_File (-ldb, -lndbm, -lgdbm) (trying each in that order)
    -     - provide better seed for rand
    -     - prompt for password as per getpass(3) (turn off echo, read from
    -       /dev/tty, etc.)
    -     - use "newstyle" crypt based on $Config{osname} ($^O)
    -     - will not add a user if already in database, use new `update' command
    -       instead
    -     - added `check' command to check a users' password
    -     - added `import' command to convert existing password text-files or 
    -       dbm files exported with `view'
    -     - more descriptive usage, general cleanup, 'use strict' clean, etc.
    -     [Doug MacEachern]
    -
    -  *) Added psocket() which is a pool form of socket(), various places within
    -     the proxy weren't properly blocking alarms while registering the cleanup
    -     for its sockets.  bclose() now uses pclose() and pclosesocket().  There
    -     was a bug where the client socket was being close()d twice due a still
    -     registered cleanup.  [Dean Gaudet]
    -
    -  *) A few cleanups were made to reduce time(), getpid(), and signal() calls.
    -     [Dean Gaudet]
    -
    -  *) PORT: AIX >= 4.2 requires -lm due to libc changes.
    -     [Jason Venner <jason idiom.com>] PR#667
    -
    -  *) Enable ``=""'' for RewriteCond directives to match against
    -     the empty string. This is the preferred way instead of ``^$''.
    -     [Ralf S. Engelschall]
    -
    -  *) Fixed an infinite loop in mod_imap for references above the server root
    -     [Dean Gaudet] PR#748
    -
    -  *) mod_proxy now has a ReceiveBufferSize directive, similar to
    -     SendBufferSize, so that the TCP window can be set appropriately
    -     for LFNs. [Phillip A. Prindeville]
    -
    -  *) mod_browser has been replaced by the more general mod_setenvif
    -     (courtesy of Paul Sutton).  BrowserMatch* directives are still
    -     available, but are now joined by SetEnvIf*, UnSetEnvIf*, and
    -     UnSetEnvIfZero directives.  [Ken Coar]
    -
    -  *) "HostnameLookups double" forces double-reverse DNS to succeed in
    -     order for remote_host to be set (for logging, or for the env var
    -     REMOTE_HOST).  The old define MAXIMUM_DNS has been deprecated.
    -     [Dean Gaudet]
    -
    -  *) mod_access overhaul:
    -     - Now understands network/netmask syntax (i.e.  10.1.0.0/255.255.0.0)
    -       and cidr syntax (i.e. 10.1.0.0/16).  PR#762
    -     - Critical path was sped up by pre-computing a few things at config time.
    -     - The undocumented syntax "allow user-agents" was removed,
    -       the replacement is "allow from env=foobar" combined with mod_browser.
    -     - When used with hostnames it now forces a double-reverse lookup
    -       no matter what the directory settings are.  This double-reverse
    -       doesn't affect any of the other routines that use the remote
    -       hostname.  In particular it's still passed to CGIs and the log
    -       without the double-reverse check.  Related PR#860.
    -     [Dean Gaudet]
    -
    -  *) When a large bwrite() occurs (larger than the internal buffer size),
    -     while there is already something in the buffer, apache will combine
    -     the large write and the buffer into a single writev().  (This is
    -     in anticipation of using mmap() for reading files.)
    -     [Dean Gaudet]
    -
    -  *) In obscure cases where a partial socket write occurred while chunking,
    -     Apache would omit the chunk header/footer on the next block.  Cleaned
    -     up other bugs/inconsistencies in error conditions in buff.c.  Fixed
    -     a bug where a long pause in DNS lookups could cause the last packet
    -     of a response to be unduly delayed.  [Roy Fielding, Dean Gaudet]
    -
    -  *) API: Added child_exit function to module structure.  This is called
    -     once per "heavy-weight process" just before a server child exit()'s 
    -     e.g. when max_requests_per_child is reached, etc.
    -     [Doug MacEachern, Dean Gaudet]
    -
    -  *) mod_include cleanup showed that handle_else was being used to handle
    -     endif.  It didn't cause problems, but it was cleaned up too.
    -     [Howard Fear]
    -
    -  *) mod_cern_meta would attempt to find meta files for the directory itself
    -     in some cases, but not in others.  It now avoids it in all cases.
    -     [Dean Gaudet]
    -
    -  *) mod_mime_magic would core dump if there was a decompression error.
    -     [Martin Kraemer <Martin.Kraemer mch.sni.de>] PR#904
    -
    -  *) PORT: some variants of DGUX require -lsocket -lnsl
    -     [Alexander L Jones <alex systems-options.co.uk>] PR#732
    -
    -  *) mod_autoindex now allows sorting of FancyIndexed directory listings
    -     by the various fields (name, size, et cetera), either in ascending
    -     or descending order.  Just click on the column header.  [Ken Coar]
    -
    -  *) PORT: Various tweaks to eliminate pointer-int casting warnings on 64-bit
    -     CPUs like the Alpha.  Apache still stores ints in pointers, but that's
    -     the relatively safe direction.  [Dean Gaudet] PR#344
    -
    -  *) PORT: QNX mmap() support for faster/more reliable scoreboard handling.
    -     [Igor N Kovalenko <infoh mail.wplus.net>] PR#683
    -
    -  *) child_main avoids an unneeded call to select() when there is only one
    -     listening socket.  [Dean Gaudet]
    -
    -  *) In the event that the server is starved for idle servers it will
    -     spawn 1, then 2, then 4, ..., then 32 servers each second,
    -     doubling each second.  It'll also give a warning in the errorlog
    -     since the most common reason for this is a poor StartServers
    -     setting.  The define MAX_SPAWN_RATE can be used to raise/lower
    -     the maximum.  [Dean Gaudet]
    -
    -  *) Apache now provides an effectively unbuffered connection for
    -     CGI scripts.  This means that data will be sent to the client
    -     as soon as the CGI pauses or stops output; previously, Apache would
    -     buffer the output up to a fixed buffer size before sending, which
    -     could result in the user viewing an empty page until the CGI finished
    -     or output a complete buffer.  It is no longer necessary to use an
    -     "nph-" CGI to get unbuffered output.  Given that most CGIs are written
    -     in a language that by default does buffering (e.g. perl) this
    -     shouldn't have a detrimental effect on performance.
    -
    -     "nph-" CGIs, which formerly provided a direct socket to the client
    -     without any server post-processing, were not fully compatible with
    -     HTTP/1.1 or SSL support.  As such they would have had to implement
    -     the transport details, such as encryption or chunking, in order
    -     to work properly in certain situations.  Now, the only difference
    -     between nph and non-nph scripts is "non-parsed headers".
    -     [Dean Gaudet, Sameer Parekh, Roy Fielding]
    -
    -  *) If a BUFF is switched from buffered to unbuffered reading the first
    -     bread() will return whatever remained in the buffer prior to the
    -     switch. [Dean Gaudet]
    -
    -Changes with Apache 1.3a1
    -
    -  *) Added another Configure helper script: TestLib. It determines
    -     if a specified library exists.  [Jim Jagielski]
    -
    -  *) PORT: Allow for use of n32bit libraries under IRIX 6.x
    -     [derived from patch from Jeff Hayes <jhayes aw.sgi.com>]
    -     PR#721
    -
    -  *) PORT: Some architectures use size_t for various lengths in network
    -     functions such as accept(), and getsockname().  The definition
    -     NET_SIZE_T is used to control this. [Dean Gaudet]
    -
    -  *) PORT: Linux: Attempt to detect glibc based systems and include crypt.h
    -     and -lcrypt.  Test for various db libraries (dbm, ndbm, db) when
    -     mod_auth_dbm or mod_auth_db are included.  [Dean Gaudet]
    -
    -  *) PORT: QNX doesn't have initgroups() which support/suexec.c uses.
    -     [Igor N Kovalenko <infoh mail.wplus.net>]
    -
    -  *) "force-response-1.0" now only applies to requests which are HTTP/1.0 to
    -     begin with.  "nokeepalive" now works for HTTP/1.1 clients.  Added
    -     "downgrade-1.0" which causes Apache to pretend it received a 1.0.
    -     [Dean Gaudet] related PR#875
    -
    -  *) API: Correct child_init() slot declaration from int to void, to
    -     match the init() declaration.  Update mod_example to use the new
    -     hook.  [Ken Coar]
    -
    -  *) added transport handle slot (t_handle) to the BUFF structure
    -     [Doug MacEachern]
    -
    -  *) get_client_block() returns wrong length if policy is
    -     REQUEST_CHUNKED_DECHUNK.
    -     [Kenichi Hori <ken d2.bs1.fc.nec.co.jp>] PR#815
    -
    -  *) Support the image map format of FrontPage.  For example:
    -        rect /url.hrm 10 20 30 40
    -     ["Chris O'Byrne" <obyrne iol.ie>] PR#807
    -
    -  *) PORT: -lresolv and -lsocks were in the wrong order for Solaris.
    -     ["Darren O'Shaughnessy" <darren aaii.oz.au>] PR#846
    -
    -  *) AddModuleInfo directive for mod_info which allows you to annotate
    -     the output of mod_info.  ["Lou D. Langholtz" <ldl usi.utah.edu>]
    -
    -  *) Added NoProxy directive to avoid using ProxyRemote for selected
    -     addresses.  Added ProxyDomain directive to cause unqualified
    -     names to be qualified by redirection.
    -     [Martin Kraemer <Martin.Kraemer mch.sni.de>]
    -
    -  *) Support Proxy Authentication, and don't pass the Proxy-Authorize
    -     header to the remote host in the proxy. [Sameer Parekh and
    -     Wallace]
    -
    -  *) Upgraded mod_rewrite from 3.0.6+ to latest officially available version
    -     3.0.9. This upgrade includes: fixed deadlooping on rewriting to same
    -     URLs, fixed rewritelog(), fixed forced response code handling on
    -     redirects from within .htaccess files, disabled pipe locking under
    -     braindead SunOS 4.1.x, allow env variables to be set even on rules with
    -     no substitution, bugfixed situations where HostnameLookups is off, made
    -     mod_rewrite more thread-safe for NT port and fixed problem when creating
    -     an empty query string via "xxx?".
    -         This update also removes the copyright of Ralf S. Engelschall,
    -     i.e. now mod_rewrite no longer has a shared copyright. Instead is is
    -     exclusively copyrighted by the Apache Group now. This happened because
    -     the author now has gifted mod_rewrite exclusively to the Apache Group and 
    -     no longer maintains an external version.
    -     [Ralf S. Engelschall]
    -
    -  *) API: Added child_init function to module structure.  This is called
    -     once per "heavy-weight process" before any requests are handled.
    -     See http_config.h for more details.  [Dean Gaudet]
    -
    -  *) Anonymous_LogEmail was logging on each subrequest.
    -     [Dean Gaudet] PR#421, 868
    -
    -  *) API: Added is_initial_req() which tests if the request being
    -     processed is the initial request, or a subrequest.
    -     [Doug MacEachern]
    -
    -  *) Extended SSI (mod_include) now handles additional relops for
    -     string comparisons (<, >, <=, and >=).  [Bruno Wolff III] PR#41
    -
    -  *) Configure fixed to correctly propagate user-selected options and
    -     settings (such as CC and OPTIM) to Makefiles other than
    -     src/Makefile (notably support/Makefile).  [Ken Coar] PR#666, #834
    -
    -  *) IndexOptions SuppressHTMLPreamble now causes the actual HTML of
    -     directory indices to start with the contents of the HeaderName file
    -     if there is one.  If there isn't one, the behaviour is unchanged.
    -     [Ken Coar, Roy Fielding, Andrey A. Chernov]
    -
    -  *) WIN32: Modules can now be dynamically loaded DLLs using the
    -     LoadModule/LoadFile directives. Note that module DLLs must be
    -     compiled with the multithreaded DLL version of the runtime library.
    -     [Alexei Kosut and Ben Laurie]
    -
    -  *) Automatic indexing removed from mod_dir and placed into mod_autoindex.
    -     This allows the admin to completely remove automatic indexing
    -     from the server, while still supporting the basic functions of
    -     trailing-slash redirects and DirectoryIndex files.  Note that if
    -     you're carrying over an old Configuration file and you use directory
    -     indexing then you'll want to add:
    -
    -     Module autoindex_module    mod_autoindex.o
    -
    -     before mod_dir in your Configuration.  [Dean Gaudet]
    -
    -  *) popendir/pclosedir created to properly protect directory scanning.
    -     [Dean Gaudet] PR#525
    -
    -  *) AliasMatch, ScriptAliasMatch and RedirectMatch directives added,
    -     giving regex support to mod_alias. <DirectoryMatch>, <LocationMatch>
    -     and <FilesMatch> sections added to succeed <DirectoryMatch ~>, etc...
    -     [Alexei Kosut]
    +  *) mod_mime: Detect invalid use of MultiviewsMatch inside Location and
    +     LocationMatch sections.  PR 47754.  [Dan Poirier]
     
    -  *) The AccessFileName directive can now take more than one filename.
    -     ["Lou D. Langholtz" <ldl usi.utah.edu>]
    +  *) ab, mod_ssl: Restore compatibility with OpenSSL < 0.9.7g.
    +     [Guenter Knauf]
     
    -  *) The new mod_mime_magic can be used to "magically" determine the type
    -     of a file if the extension is unknown.  Based on the unix file(1)
    -     command.  [Ian Kluft <ikluft cisco.com>]
    +Changes with Apache 2.2.14
     
    -  *) We now determine and display the time spent processing a
    -     request if desired.  [Jim Jagielski]
    +  *) SECURITY: CVE-2009-2699 (cve.mitre.org)
    +     Fixed in APR 1.3.9.  Faulty error handling in the Solaris pollset support
    +     (Event Port backend) which could trigger hangs in the prefork and event
    +     MPMs on that platform.  PR 47645.  [Jeff Trawick]
     
    -  *) mod_status: PID field of "dead" child slots no longer displays
    -     main httpd process's PID.  [Jim Jagielski]
    +  *) SECURITY: CVE-2009-3095 (cve.mitre.org)
    +     mod_proxy_ftp: sanity check authn credentials.
    +     [Stefan Fritsch <sf fritsch.de>, Joe Orton]
     
    -  *) Makefile.nt added - to build all the bits from the command line:
    -        nmake -f Makefile.nt
    -         Doesn't yet work properly. [Ben Laurie]
    +  *) SECURITY: CVE-2009-3094 (cve.mitre.org)
    +     mod_proxy_ftp: NULL pointer dereference on error paths.
    +     [Stefan Fritsch <sf fritsch.de>, Joe Orton]
     
    -  *) Default text of 404 error is now "Not Found" rather than the
    -     potentially misleading "File Not Found".  [Ken Coar]
    +  *) mod_proxy_scgi: Backport from trunk. [André Malo]
     
    -  *) CONFIG: "HostnameLookups" now defaults to off because it is far better
    -     for the net if we require people that actually need this data to
    -     enable it.  [Linus Torvalds]
    +  *) mod_ldap: Don't try to resolve file-based user ids to a DN when AuthLDAPURL
    +     has been defined at a very high level.  PR 45946.  [Eric Covener]
     
    -  *) directory_walk() is an expensive function, keep a little more state to
    -     avoid needless string counting.  Add two new functions make_dirstr_parent
    -     and make_dirstr_prefix which replace all existing uses of make_dirstr.
    -     The new functions are a little less general than make_dirstr, but
    -     work more efficiently (less memory, less string counting).
    -     [Dean Gaudet]
    +  *) htcacheclean: 19 ways to fail, 1 error message. Fixed. [Graham Leggett]
     
    -  *) EXTRA_LFLAGS was changed to EXTRA_LDFLAGS (and LFLAGS was changed
    -     to LDFLAGS) to avoid complications with lex rules in make files.
    -     [Dean Gaudet] PR#372
    +  *) mod_ldap: Bring the LDAPCacheEntries and LDAPOpCacheEntries
    +     usage() in synch with the manual and the implementation (0 and -1
    +     both disable the cache). [Eric Covener]
     
    -  *) run_method optimized to avoid needless scanning over NULLs in the
    -     module list.  [Dean Gaudet]
    +  *) mod_ssl: The error message when SSLCertificateFile is missing should
    +     at least give the name or position of the problematic virtual host
    +     definition. [Stefan Fritsch sf sfritsch.de]
     
    -  *) Revamp of (unix) scoreboard management code such that it avoids
    -     unnecessary traversals of the scoreboard on each hit.  This is
    -     particularly important for high volume sites with a large
    -     HARD_SERVER_LIMIT.  Some of the previous operations were O(n^2),
    -     and are now O(n).  See also SCOREBOARD_MAINTENANCE_INTERVAL in
    -     httpd.h. [Dean Gaudet]
    +  *) htdbm: Fix possible buffer overflow if dbm database has very
    +     long values.  PR 30586 [Dan Poirier]
     
    -  *) In configurations using multiple Listen statements it was possible for
    -     busy sockets to starve other sockets of service.  [Dean Gaudet]
    +  *) Add support for HTTP PUT to ab. [Jeff Barnes <jbarnesweb yahoo.com>]
     
    -  *) Added hook so standalone_main can be replaced at compile time
    -     (define STANDALONE_MAIN)
    -     [Doug MacEachern]
    +  *) mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute
    +     type.  PR 45107.  [Michael Ströder <michael stroeder.com>,
    +     Peter Sylvester <peter.sylvester edelweb.fr>]
     
    -  *) Lowest-level read/write functions in buff.c will be replaced with
    -     the SFIO library calls sfread/sfwrite if B_SFIO is defined at
    -     compile time.  The default sfio discipline will behave as apache
    -     would without sfio compiled in.
    -     [Doug MacEachern]
    +  *) mod_cache: Add CacheIgnoreURLSessionIdentifiers directive to ignore
    +     defined session identifiers encoded in the URL when caching.
    +     [Ruediger Pluem]
     
    -  *) Enhance UserDir directive (mod_userdir) to accept a list of
    -     usernames for the 'disable' keyword, and add 'enable user...' to
    -     selectively *en*able userdirs if they're globally disabled.
    -     [Ken Coar]
    +  *) mod_mem_cache: fix seg fault under load due to pool concurrency problem
    +     PR: 47672 [Dan Poirier <poirier pobox.com>]
     
    -  *) If NETSCAPE_DBM_COMPAT is defined in EXTRA_CFLAGS then Apache
    -     will work with Netscape dbm files.  (dbmmanage will probably not
    -     work however.) [Alexander Spohr <aspohr netmatic.com>] PR#444
    +  *) mod_autoindex: Correctly create an empty cell if the description
    +     for a file is missing. PR 47682 [Peter Poeml <poeml suse.de>]
     
    -  *) Add a ListenBacklog directive to control the backlog parameter
    -     passed to listen().  Also change the default to 511 from 512.
    -     [Marc Slemko]
    +Changes with Apache 2.2.13
     
    -  *) API: A new handler response DONE which informs apache that the
    -     request has been handled and it can finish off quickly, similar to
    -     how it handles errors. [Rob Hartill]
    +  *) SECURITY: CVE-2009-2412 (cve.mitre.org)
    +     Distributed with APR 1.3.8 and APR-util 1.3.9 to fix potential overflow
    +     in pools and rmm, where size alignment was taking place.
    +     [Matt Lewis <mattlewis@google.com>, Sander Striker]
     
    -  *) Turn off chunked encoding after sending terminating chunk/footer
    -     so that we can't do it twice by accident. [Roy Fielding]
    +  *) mod_ssl, ab: improve compatibility with OpenSSL 1.0.0 betas.  Report
    +     warnings compiling mod_ssl against OpenSSL to the httpd developers.
    +     [Guenter Knauf]
     
    -  *) mod_expire also issues Cache-Control: max-age headers.
    -     [Rob Hartill]
    +  *) mod_cgid: Do not add an empty argument when calling the CGI script.
    +     PR 46380 [Ruediger Pluem]
     
    -  *) API: Added kill_only_once option for free_proc_chain so that it won't
    -     aggressively try to kill off specific children.  For fastcgi.
    -     [Stanley Gambarin <gambarin OpenMarket.com>]
    +  *) Fix potential segfaults with use of the legacy ap_rputs() etc
    +     interfaces, in cases where an output filter fails.  PR 36780.
    +     [Joe Orton]
     
    -  *) mod_auth deals with extra ':' delimited fields.  [Marc Slemko]
    +Changes with Apache 2.2.12
     
    -  *) Added IconHeight and IconWidth to mod_dir's IndexOptions directive.
    -     When used together, these cause mod_dir to emit HEIGHT and WIDTH
    -     attributes in the FancyIndexing IMG tags.  [Ken Coar]
    +  *) SECURITY: CVE-2009-1891 (cve.mitre.org)
    +     Fix a potential Denial-of-Service attack against mod_deflate or other
    +     modules, by forcing the server to consume CPU time in compressing a
    +     large file after a client disconnects.  PR 39605.
    +     [Joe Orton, Ruediger Pluem]
     
    -  *) PORT: Sequent and SONY NEWS-OS support added.  [Jim Jagielski]
    +  *) SECURITY: CVE-2009-1195 (cve.mitre.org)
    +     Prevent the "Includes" Option from being enabled in an .htaccess
    +     file if the AllowOverride restrictions do not permit it.
    +     [Jonathan Peatfield <j.s.peatfield damtp.cam.ac.uk>, Joe Orton,
    +      Ruediger Pluem, Jeff Trawick]
     
    -  *) PORT: Added Windows NT support
    -     [Ben Laurie and Ambarish Malpani <ambarish valicert.com>]
    +  *) SECURITY: CVE-2009-1890 (cve.mitre.org)
    +     Fix a potential Denial-of-Service attack against mod_proxy in a
    +     reverse proxy configuration, where a remote attacker can force a
    +     proxy process to consume CPU time indefinitely.  [Nick Kew, Joe Orton]
     
    -Changes with Apache 1.2.6
    +  *) SECURITY: CVE-2009-1191 (cve.mitre.org)
    +     mod_proxy_ajp: Avoid delivering content from a previous request which
    +     failed to send a request body. PR 46949 [Ruediger Pluem]
     
    -  *) mod_include when using XBitHack Full would send ETags in addition to
    -     sending Last-Modifieds.  This is incorrect HTTP/1.1 behaviour.
    -     [Dean Gaudet] PR#1133
    +  *) SECURITY: CVE-2009-0023, CVE-2009-1955, CVE-2009-1956 (cve.mitre.org)
    +     The bundled copy of the APR-util library has been updated, fixing three
    +     different security issues which may affect particular configurations
    +     and third-party modules.
     
    -  *) SECURITY: When a client connects to a particular port/addr, and
    -     gives a Host: header ensure that the virtual host requested can
    -     actually be reached via that port/addr.  [Ed Korthof <ed organic.com>]
    +  *) mod_headers: Make 'Header set Content-Type' effective on responses
    +     that already have a Content-Type.  [Issac Goldstand]
     
    -  *) Support virtual hosts with wildcard port and/or multiple ports
    -     properly.  [Ed Korthof <ed organic.com>]
    +  *) mod_include: fix potential segfault when handling back references
    +     on an empty SSI variable. [Ruediger Pluem, Lars Eilebrecht, Nick Kew]
     
    -  *) Fixed some case-sensitivity issues according to RFC2068.
    -     [Dean Gaudet]
    +  *) mod_alias: check sanity in Redirect arguments.
    +     PR 44729 [Sönke Tesch <st kino-fahrplan.de>, Jim Jagielski]
     
    -  *) Set r->allowed properly in mod_asis.c, mod_dir.c, mod_info.c,
    -     and mod_include.c.  [Dean Gaudet]
    +  *) mod_proxy_http: fix Host: header for literal IPv6 addresses.
    +     PR 47177 [Carlos Garcia Braschi <cgbraschi gmail.com>]
     
    -  *) Variable 'cwd' was being used pointlessly before being set.
    -     [Ken Coar] PR#1738
    +  *) mod_rewrite: Remove locking for writing to the rewritelog.
    +     PR 46942
     
    -  *) SIGURG doesn't exist on all platforms.
    -     [Mark Andrew Heinrich <heinrich tinderbox.Stanford.EDU>]
    +  *) mod_alias: Ensure Redirect emits HTTP-compliant URLs.
    +     PR 44020
     
    -  *) When an error occurs during a POST, or other operation with a
    -     request body, the body has to be read from the net before allowing
    -     a keepalive session to continue.  [Roy Fielding] PR#1399
    +  *) mod_proxy_http: fix case sensitivity checking transfer encoding
    +     PR 47383 [Ryuzo Yamamoto <ryuzo.yamamoto gmail.com>]
     
    -  *) When an error occurs in fcntl() locking suggest the user look up
    -     the docs for LockFile.  [Dean Gaudet]
    +  *) mod_rewrite: Fix the error string returned by RewriteRule.
    +     RewriteRule returned "RewriteCond: bad flag delimiters" when the 3rd
    +     argument of RewriteRule was not started with "[" or not ended with "]".
    +     PR 45082 [Vitaly Polonetsky <m_vitaly topixoft.com>]
     
    -  *) table_set() and table_unset() did not deal correctly with
    -     multiple occurrences of the same key. [Stephen Scheck
    -     <sscheck infonex.net>, Ben Laurie] PR#1604
    +  *) mod_proxy: Complete ProxyPassReverse to handle balancer URL's.  Given;
    +       BalancerMember balancer://alias http://example.com/foo
    +       ProxyPassReverse /bash balancer://alias/bar
    +     backend url http://example.com/foo/bar/that is now translated /bash/that
    +     [William Rowe]
     
    -  *) send_fd_length() did not calculate total_bytes_sent properly in error
    -     cases.  [Ben Reser <breser regnow.com>] PR#1366
    +  *) New piped log syntax: Use "||process args" to launch the given process
    +     without invoking the shell/command interpreter.  Use "|$command line"
    +     (the default behavior of "|command line" in 2.2) to invoke using shell,
    +     consuming an additional shell process for the lifetime of the logging
    +     pipe program but granting additional process invocation flexibility.
    +     [William Rowe]
     
    -  *) r->connection->user was allocated in the wrong pool causing corruption
    -     in some cases when used with mod_cern_meta.  [Dean Gaudet] PR#1500
    +  *) mod_ssl: Add server name indication support (RFC 4366) and better
    +     support for name based virtual hosts with SSL. PR 34607
    +     [Peter Sylvester <peter.sylvester edelweb.fr>,
    +      Kaspar Brand <asfbugz velox.ch>, Guenter Knauf, Joe Orton,
    +      Ruediger Pluem]
     
    -  *) mod_proxy was sending HTTP/1.1 responses to ftp requests by mistake.
    -     Also removed the auto-generated link to www.apache.org that was the
    -     source of so many misdirected bug reports.  [Roy Fielding, Marc Slemko]
    +  *) mod_negotiation: Escape pathes of filenames in 406 responses to avoid
    +     HTML injections and HTTP response splitting.  PR 46837.
    +     [Geoff Keating <geoffk apple.com>]
     
    -  *) Multiple "close" tokens may have been set in the "Connection"
    -     header, not an error, but a waste.
    -     [<Ronald.Tschalaer psi.ch>] PR#1683
    +  *) mod_include: Prevent a case of SSI timefmt-smashing with filter chains
    +     including multiple INCLUDES filters. PR 39369 [Joe Orton]
     
    -  *) "basic" and "digest" auth tokens should be tested case-insensitive.
    -     [<Ronald.Tschalaer psi.ch>] PR#1599, PR#1666
    +  *) mod_rewrite: When evaluating a proxy rule in directory context, do
    +     escape the filename by default. PR 46428 [Joe Orton]
     
    -  *) It appears the "257th byte" bug (see
    -     htdocs/manual/misc/known_client_problems.html#257th-byte) can happen
    -     at the 256th byte as well.  Fixed.  [Dean Gaudet]
    +  *) mod_proxy_ajp: Check more strictly that the backend follows the AJP
    +     protocol. [Mladen Turk]
     
    -  *) mod_rewrite would not handle %3f properly in some situations.
    -     [Ralf Engelschall]
    +  *) mod_ssl: Add SSLProxyCheckPeerExpire and SSLProxyCheckPeerCN directives
    +     to enable stricter checking of remote server certificates.
    +     [Ruediger Pluem]
     
    -  *) Apache could generate improperly chunked HTTP/1.1 responses when
    -     the bputc() or rputc() functions were used by modules (such as
    -     mod_include).  [Dean Gaudet]
    +  *) mod_substitute: Fix a memory leak. PR 44948
    +     [Dan Poirier <poirier pobox.com>]
     
    -  *) #ifdef wrap a few #defines in httpd.h to make life easier on
    -     some ports.  [Ralf Engelschall]
    +  *) mod_proxy_ajp: Forward remote port information by default.
    +     [Rainer Jung]
     
    -  *) Fix MPE compilation error in mod_usertrack.c.  [Mark Bixby]
    +  *) mod_disk_cache/mod_mem_cache: Fix handling of CacheIgnoreHeaders
    +     directive to correctly remove headers before storing them.
    +     [Lars Eilebrecht]
     
    -  *) Quote CC='$(CC)' to improve recurse make calls.  [Martin Kraemer]
    +  *) mod_deflate: revert changes in 2.2.8 that caused an invalid
    +     etag to be emitted for on-the-fly gzip content-encoding.
    +     PR 39727 will require larger fixes and this fix was far more
    +     harmful than the original code. PR 45023. [Roy T. Fielding]
     
    -  *) Avoid B_ERROR redeclaration on sysvr4 systems.  [Martin Kraemer]
    +  *) mod_disk_cache: The module now turns off sendfile support if
    +     'EnableSendfile off' is defined globally. PR 41218.
    +     [Lars Eilebrecht, Issac Goldstand]
     
    -Changes with Apache 1.2.5
    +  *) prefork: Fix child process hang during graceful restart/stop in
    +     configurations with multiple listening sockets.  PR 42829.  [Joe Orton,
    +     Jeff Trawick]
     
    -  *) SECURITY: Fix a possible buffer overflow in logresolve.  This is
    -     only an issue on systems without a MAXDNAME define or where 
    -     the resolver returns domain names longer than MAXDNAME.  [Marc Slemko]
    +  *) mod_ssl: Add SSLRenegBufferSize directive to allow changing the
    +     size of the buffer used for the request-body where necessary
    +     during a per-dir renegotiation.  PR 39243.  [Joe Orton]
     
    -  *) Fix an improper length in an ap_snprintf call in proxy_date_canon().
    -     [Marc Slemko]
    +  *) mod_rewrite: Introduce DiscardPathInfo|DPI flag to stop the troublesome
    +     way that per-directory rewrites append the previous notion of PATH_INFO
    +     to each substitution before evaluating subsequent rules.
    +     PR38642 [Eric Covener]
     
    -  *) Fix core dump in the ftp proxy when reading incorrectly formatted
    -     directory listings.  [Marc Slemko]
    +  *) mod_authnz_ldap: Reduce number of initialization debug messages and make
    +     information more clear. PR 46342 [Dan Poirier]
     
    -  *) SECURITY: Fix possible minor buffer overflow in the proxy cache.
    -     [Marc Slemko]
    +  *) mod_cache: Introduce 'no-cache' per-request environment variable
    +     to prevent the saving of an otherwise cacheable response.
    +     [Eric Covener]
     
    -  *) SECURITY: Eliminate possible buffer overflow in cfg_getline, which
    -     is used to read various types of files such as htaccess and 
    -     htpasswd files.  [Marc Slemko]
    +  *) core: Translate the status line to ASCII on EBCDIC platforms in
    +     ap_send_interim_response() and for locally generated "100 Continue"
    +     responses.  [Eric Covener]
     
    -  *) SECURITY: Ensure that the buffer returned by ht_time is always
    -     properly null terminated.  [Marc Slemko]
    +  *) CGI: return 504 (Gateway timeout) rather than 500 when a script
    +     times out before returning status line/headers.
    +     PR 42190 [Nick Kew]
     
    -  *) SECURITY: General mod_include cleanup, including fixing several
    -     possible buffer overflows and a possible infinite loop.  This cleanup
    -     was done against 1.3 code and then backported to 1.2, the result
    -     is a large difference (due to indentation cleanup in 1.3 code).
    -     Users interested in seeing a smaller set of relevant differences
    -     should consider comparing against src/modules/standard/mod_include.c
    -     from the 1.3b3 release.  Non-indentation changes to mod_include
    -     between 1.2 and 1.3 were minimal.  [Dean Gaudet, Marc Slemko]
    +  *) prefork: Log an error instead of segfaulting when child startup fails
    +     due to pollset creation failures.  PR 46467.  [Jeff Trawick]
     
    -  *) SECURITY: Numerous changes to mod_imap in a general cleanup
    -     including fixing a possible buffer overflow.  This cleanup also
    -     was done with 1.3 code as a basis, see the previous note
    -     about mod_include.  [Dean Gaudet]
    +  *) mod_ext_filter: fix error handling when the filter prog fails to start,
    +     and introduce an onfail configuration option to abort the request
    +     or to remove the broken filter and continue.
    +     PR 41120 [Nick Kew]
     
    -  *) SECURITY: If a htaccess file can not be read due to bad 
    -     permissions, deny access to the directory with a HTTP_FORBIDDEN.  
    -     The previous behavior was to ignore the htaccess file if it could not
    -     be read.  This change may make some setups with unreadable
    -     htaccess files stop working.  PR#817  [Marc Slemko]
    +  *) mod_include: support generating non-ASCII characters as entities in SSI
    +     PR 25202 [Nick Kew]
     
    -  *) SECURITY: no2slash() was O(n^2) in the length of the input.  
    -     Make it O(n).  This inefficiency could be used to mount a denial 
    -     of service attack against the Apache server.  Thanks to 
    -     Michal Zalewski <lcamtuf boss.staszic.waw.pl> for reporting
    -     this.  [Dean Gaudet]
    +  *) core/utils: Enhance ap_escape_html API to support escaping non-ASCII
    +     chars [Nick Kew]
     
    -  *) mod_include used uninitialized data for some uses of && and ||.
    -     [Brian Slesinsky <bslesins wired.com>] PR#1139
    +  *) mod_rewrite: fix "B" flag breakage by reverting r589343
    +     PR 45529 [Bob Ionescu <bobsiegen googlemail.com>]
     
    -  *) mod_imap should decline all non-GET methods.
    -     [Jay Bloodworth <jay pathways.sde.state.sc.us>]
    +  *) mod_cgid: fix segfault problem on solaris.
    +     PR 39332 [Masaoki Kobayashi <masaoki techfirm.co.jp>, Jeff Trawick]
     
    -  *) suexec.c wouldn't build without -DLOG_EXEC. [Jason A. Dour]
    +  *) mod_ldap: Avoid a segfault when result->rc is checked in
    +     uldap_connection_init when result is NULL. This could happen if LDAP
    +     initialization failed.  PR 45994. [Dan Poirier <poirier pobox.com>]
     
    -  *) mod_userdir was modifying r->finfo in cases where it wasn't setting
    -     r->filename.  Since those two are meant to be in sync with each other
    -     this is a bug.  ["Paul B. Henson" <henson intranet.csupomona.edu>]
    +  *) Set Listen protocol to "https" if port is set to 443 and no proto is
    +     specified (as documented but not implemented). PR 46066
    +     [Dan Poirier <poirier pobox.com>]
     
    -  *) mod_include did not properly handle all possible redirects from sub-
    -     requests.  [Ken Coar]
    +  *) mod_cache: Correctly save Content-Encoding of cachable entity. PR 46401
    +     [Dan Poirier <poirier pobox.com>]
     
    -  *) Inetd mode (which is buggy) uses timeouts without having setup the
    -     jmpbuffer. [Dean Gaudet] PR#1064
    +  *) Output -M and -S dumps (modules and vhosts) to stdout instead of stderr.
    +     PR 42571 and PR 44266 (dup).  [Dan Poirier <poirier pobox.com>]
     
    -  *) Work around problem under Linux where a child will start looping
    -     reporting a select error over and over.
    -     [Rick Franchuk <rickf transpect.net>] PR#1107
    +  *) mod_cache: When an explicit Expires or Cache-Control header is set, cache
    +     normally non-cacheable response statuses. PR 46346.
    +     [Alex Polvi <alex polvi.net>]
     
    -Changes with Apache 1.2.4
    +Changes with Apache 2.2.11
     
    -  *) The ProxyRemote change in 1.2.3 introduced a bug resulting in the proxy
    -     always making requests with the full-URI instead of just the URI path.
    -     [Marc Slemko, Roy Fielding]
    +  *) core: When the ap_http_header_filter processes an error bucket, cleanup
    +     the passed brigade before returning AP_FILTER_ERROR down the filter
    +     chain. This unambiguously ensures the same error bucket isn't revisited
    +     [Ruediger Pluem]
     
    -  *) Add -lm for AIX versions >= 4.2 to allow Apache to link properly
    -     on this platform.  [Marc Slemko]
    +  *) core: Error responses set by filters were being coerced into 500 errors,
    +     sometimes appended to the original error response. Log entry of:
    +     'Handler for (null) returned invalid result code -3'
    +     [Eric Covener]
     
    -Changes with Apache 1.2.3
    +  *) configure: Don't reject libtool 2.x
    +     PR 44817 [Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA gmail.com>]
     
    -  *) The request to a remote proxy was mangled if it was generated as the
    -     result of a ProxyPass directive. URL schemes other than http:// were not
    -     supported when ProxyRemote was used. PR#260, PR#656, PR#699, PR#713,
    -     PR#812 [Lars Eilebrecht]
    +  *) mod_autoindex: add configuration option to insert string
    +     in HTML HEAD (IndexHeadInsert). [Nick Kew]
     
    -  *) Fixed proxy-pass-through feature of mod_rewrite; Added error logging
    -     information for case where proxy module is not available. [Marc Slemko]
    +  *) Add new LogFormat parameter, %k, which logs the number of
    +     keepalive requests on this connection for this request.
    +     PR 45762 [Dan Poirier <poirier pobox.com>, Jim Jagielski]
     
    -  *) Force proxy to always respond as HTTP/1.0, which it was failing to
    -     do for errors and cached responses.  [Roy Fielding]
    +  *) Export and install the mod_rewrite.h header to ensure the optional
    +     rewrite_mapfunc_t and ap_register_rewrite_mapfunc functions are
    +     available to third party modules. [Graham Leggett]
     
    -  *) PORT: Improved support for ConvexOS 11.  [Jeff Venters]
    +  *) mod_cache: Convert age of cached object to seconds before comparing it to
    +     age supplied by the request when checking whether to send a Warning
    +     header for a stale response. PR 39713. [Owen Taylor <otaylor redhat.com>]
     
    -Changes with Apache 1.2.2 [not released]
    +  *) Build: Correctly set SSL_LIBS during openssl detection if pkgconfig is
    +     not available. PR 46018 [Ruediger Pluem]
     
    -  *) Fixed another long-standing bug in sub_req_lookup_file where it would
    -     happily skip past access checks on subdirectories looked up with relative
    -     paths.  (It's used by mod_dir, mod_negotiation, and mod_include.)
    -     [Dean Gaudet]
    -
    -  *) Add lockfile name to error message printed out when
    -     USE_FLOCK_SERIALIZED_ACCEPT is defined.
    -     [Marc Slemko]
    -
    -  *) Enhanced the chunking and error handling inside the buffer functions.
    -     [Dean Gaudet, Roy Fielding]
    -
    -  *) When merging the main server's <Directory> and <Location> sections into
    -     a vhost, put the main server's first and the vhost's second.  Otherwise
    -     the vhost can't override the main server.  [Dean Gaudet] PR#717
    -
    -  *) The <Directory> code would merge and re-merge the same section after
    -     a match was found, possibly causing problems with some modules.
    -     [Dean Gaudet]
    -
    -  *) Fixed an infinite loop in mod_imap for references above the server root.
    -     [Dean Gaudet] PR#748
    -
    -  *) mod_include cleanup showed that handle_else was being used to handle
    -     endif.  It didn't cause problems, but it was cleaned up too.
    -     [Howard Fear]
    -
    -  *) Last official synchronization of mod_rewrite with author version (because
    -     mod_rewrite is now directly developed by the author at the Apache Group):
    -     o added diff between mod_rewrite 3.0.6+ and 3.0.9
    -       minus WIN32/NT stuff, but plus copyright removement.
    -       In detail:
    -       - workaround for detecting infinite rewriting loops
    -       - fixed setting of env vars when "-" is used as subst string
    -       - fixed forced response code on redirects (PR#777)
    -       - fixed cases where r->args is ""
    -       - kludge to disable locking on pipes under braindead SunOS
    -       - fix for rewritelog in cases where remote hostname is unknown
    -       - fixed totally damaged request_rec walk-back loop
    -     o remove static from local data and add static to global ones.
    -     o replaced ugly proxy finding stuff by simple
    -       find_linked_module("mod_proxy") call.
    -     o added missing negation char on rewritelog()
    -     o fixed a few comment typos
    -     [Ralf S. Engelschall]
    -
    -  *) Anonymous_LogEmail was logging on each subrequest.
    -     [Dean Gaudet] PR#421, PR#868
    -
    -  *) "force-response-1.0" now only applies to requests which are HTTP/1.0 to
    -     begin with.  "nokeepalive" now works for HTTP/1.1 clients.  Added
    -     "downgrade-1.0" which causes Apache to pretend it received a 1.0.
    -     Additionally mod_browser now triggers during translate_name to workaround
    -     a deficiency in the header_parse phase.
    -     [Dean Gaudet] PR#875
    -
    -  *) get_client_block() returns wrong length if policy is 
    -     REQUEST_CHUNKED_DECHUNK.
    -     [Kenichi Hori <ken d2.bs1.fc.nec.co.jp>] PR#815
    -
    -  *) Properly treat <files> container like other containers in mod_info.
    -     [Marc Slemko] PR#848
    -
    -  *) The proxy didn't treat the "Host:" keyword of the host header as case-
    -     insensitive.  The proxy would corrupt the first line of a response from
    -     an HTTP/0.9 server.  [Kenichi Hori <ken d2.bs1.fc.nec.co.jp>] PR#813,814
    -
    -  *) mod_include would log some bogus values occasionally.
    -     [Skip Montanaro <skip calendar.com>, Marc Slemko] PR#797
    +  *) mod_proxy_ajp: Do not fail if response data is sent before all request
    +     data is read. PR 45911 [Ruediger Pluem]
     
    -  *) PORT: The slack fd changes in 1.2.1 introduced a problem with SIGHUP
    -     under Solaris 2.x (up through 2.5.1).  It has been fixed.
    -     [Dean Gaudet] PR#832
    +  *) mod_proxy_balancer: Add in forced recovery for balancer members if
    +     all are in error state. [Mladen Turk]
     
    -  *) API: In HTTP/1.1, whether or not a request message contains a body
    -     is independent of the request method and based solely on the presence
    -     of a Content-Length or Transfer-Encoding.  Therefore, our default
    -     handlers need to be prepared to read a body even if they don't know
    -     what to do with it; otherwise, the body would be mistaken for the
    -     next request on a persistent connection.  discard_request_body()
    -     has been added to take care of that.  [Roy Fielding] PR#378
    +  *) mod_proxy: Prevent segmentation faults by correctly adjusting the
    +     lifetime of the buckets read from the proxy backend. PR 45792
    +     [Ruediger Pluem]
     
    -  *) API: Symbol APACHE_RELEASE provides a numeric form of the Apache
    -     release version number, such that it always increases along the
    -     same lines as our source code branching.  [Roy Fielding]
    +  *) mod_expires: Do not sets negative max-age / Expires header in the past.
    +     PR 39774 [Jim Jagielski]
     
    -  *) Minor oversight on multiple variants fixed.  [Paul Sutton] PR#94
    +  *) mod_info: Was displaying the wrong value for the KeepAliveTimeout
    +     value. [Jim Jagielski]
     
    -Changes with Apache 1.2.1
    +  *) mod_proxy_ajp: Fix wrongly formatted requests where client
    +     sets Content-Length header, but doesn't provide a body.
    +     Servlet container always expects that next packet is
    +     body whenever C-L is present in the headers. This can lead
    +     to wrong interpretation of the packets. In this case
    +     send the empty body packet, so container can deal with
    +     that. [Mladen Turk]
     
    -  *) SECURITY: Don't serve file system objects unless they are plain files,
    -     symlinks, or directories.  This prevents local users from using pipes
    -     or named sockets to invoke programs for an extremely crude form of
    -     CGI.  [Dean Gaudet]
    +  *) core: Add ap_timeout_parameter_parse to public API. [Ruediger Pluem]
     
    -  *) SECURITY: HeaderName and ReadmeName were settable in .htaccess and
    -     could contain "../" allowing a local user to "publish" any file on
    -     the system.  No slashes are allowed now.  [Dean Gaudet]
    +  *) mod_proxy: Add the possibility to set the worker parameters
    +     connectiontimeout and ping in milliseconds. [Ruediger Pluem]
     
    -  *) SECURITY: It was possible to violate the symlink Options using mod_dir
    -     (headers, readmes, titles), mod_negotiation (type maps), or
    -     mod_cern_meta (meta files).  [Dean Gaudet]
    +  *) Worker MPM: Crosscheck that idle workers are still available before using
    +     them and thus preventing an overflow of the worker queue which causes
    +     a SegFault. PR 45605 [Denis Ustimenko <denusk gmail.com>]
     
    -  *) SECURITY: Apache will refuse to run as "User root" unless
    -     BIG_SECURITY_HOLE is defined at compile time.  [Dean Gaudet]
    +  *) Windows: Always build the odbc dbd driver on windows, to be consistent
    +     with the apr-util default. [Tom Donovan]
     
    -  *) CONFIG: If a symlink pointed to a directory then it would be disallowed
    -     if it contained a .htaccess disallowing symlinks.  This is contrary
    -     to the rule that symlink permissions are tested with the symlink
    -     options of the parent directory.  [Dean Gaudet] PR#353
    +Changes with Apache 2.2.10
     
    -  *) CONFIG: The LockFile directive can be used to place the serializing
    -     lockfile in any location.  It previously defaulted to /usr/tmp/htlock.
    -     [Somehow it took four of us: Randy Terbush, Jim Jagielski, Dean Gaudet,
    -     Marc Slemko]
    +  *) SECURITY: CVE-2008-2939 (cve.mitre.org)
    +     mod_proxy_ftp: Prevent XSS attacks when using wildcards in the path of
    +     the FTP URL. Discovered by Marc Bevand of Rapid7. [Ruediger Pluem]
     
    -  *) Request processing now retains state of whether or not the request
    -     body has been read, so that internal redirects and subrequests will
    -     not try to read it twice (and block). [Roy Fielding]
    +  *) mod_authz_host: Add support for env=!envvar [Jim Jagielski]
     
    -  *) Add a placeholder in modules/Makefile to avoid errors with certain
    -     makes. [Marc Slemko]
    +  *) Allow for smax to be 0 for balancer members so that all idle
    +     connections are able to be dropped should they exceed ttl.
    +     PR 43371 [Phil Endecott <spam_from_apache_bugzilla chezphil.org>,
    +     Jim Jagielski]
     
    -  *) QUERY_STRING was unescaped in mod_include, it shouldn't be.
    -     [Dean Gaudet] PR#644
    +  *) mod_proxy_http: Don't trigger a retry by the client if a failure to
    +     read the response line was the result of a timeout.
    +     [Adam Woodworth <mirkperl gmail.com>]
     
    -  *) mod_include was not properly changing the current directory.
    -     [Marc Slemko] PR#742
    +  *) Support chroot on Unix-family platforms
    +     PR 43596 [Dimitar Pashev <mitko banksoft-bg.com>]
     
    -  *) Attempt to work around problems with third party libraries that do not
    -     handle high numbered descriptors (examples include bind, and
    -     solaris libc).  On all systems apache attempts to keep all permanent
    -     descriptors above 15 (called the low slack line).  Solaris users
    -     can also benefit from adding -DHIGH_SLACK_LINE=256 to EXTRA_CFLAGS
    -     which keeps all non-FILE * descriptors above 255.  On all systems
    -     this should make supporting large numbers of vhosts with many open
    -     log files more feasible.  If this causes trouble please report it,
    -     you can disable this workaround by adding -DNO_SLACK to EXTRA_CFLAGS.
    -     [Dean Gaudet] various PRs
    +  *) mod_ssl: implement dynamic mutex callbacks for the benefit of
    +     OpenSSL.  [Sander Temme]
     
    -  *) Related to the last entry, network sockets are now opened before
    -     log files are opened.  The only known case where this can cause
    -     problems is under Solaris with many virtualhosts and many Listen
    -     directives.  But using -DHIGH_SLACK_LINE=256 described above will
    -     work around this problem.  [Dean Gaudet]
    +  *) mod_proxy_balancer: Add 'bybusyness' load balance method.
    +     [Joel Gluth <joelgluth yahoo.com.au>, Jim Jagielski]
     
    -  *) USE_FLOCK_SERIALIZED_ACCEPT is now default for FreeBSD, A/UX, and
    -     SunOS 4.
    +  *) mod_authn_alias: Detect during startup when AuthDigestProvider
    +     is configured to use an incompatible provider via AuthnProviderAlias.
    +     PR 45196 [Eric Covener]
     
    -  *) Improved unix error response logging.  [Marc Slemko]
    +  *) mod_proxy: Add 'scolonpathdelim' parameter to allow for ';' to also be
    +     used as a session path separator/delim  PR 45158. [Jim Jagielski]
     
    -  *) Update mod_rewrite from 3.0.5 to 3.0.6.  New ruleflag
    -     QSA=query_string_append.  Also fixed a nasty bug in per-dir context:
    -     when a URL http://... was used in conjunction with a special
    -     redirect flag, e.g. R=permanent, the permanent status was lost.
    -     [Ronald Tschalaer <Ronald.Tschalaer psi.ch>, Ralf S. Engelschall]
    +  *) mod_charset_lite: Avoid dropping error responses by handling meta buckets
    +     correctly. PR 45687 [Dan Poirier <poirier pobox.com>]
     
    -  *) If an object has multiple variants that are otherwise equal Apache
    -     would prefer the last listed variant rather than the first.
    -     [Paul Sutton] PR#94
    +  *) mod_proxy_http: Introduce environment variable proxy-initial-not-pooled
    +     to avoid reusing pooled connections if the client connection is an
    +     initial connection. PR 37770. [Ruediger Pluem]
     
    -  *) "make clean" at the top level now removes *.o.  [Dean Gaudet] PR#752
    +  *) mod_rewrite: Allow Cookie option to set secure and HttpOnly flags.
    +     PR 44799 [Christian Wenz <christian wenz.org>]
     
    -  *) mod_status dumps core in inetd mode.  [Marc Slemko and Roy Fielding]
    -     PR#566
    +  *) mod_ssl: Rewrite shmcb to avoid memory alignment issues.  PR 42101.
    +     [Geoff Thorpe]
     
    -  *) pregsub had an off-by-1 in its error checking code. [Alexei Kosut]
    +  *) mod_proxy: Add connectiontimeout parameter for proxy workers in order to
    +     be able to set the timeout for connecting to the backend separately.
    +     PR 45445. [Ruediger Pluem, rahul <rahul sun.com>]
     
    -  *) PORT: fix rlim_t problems with AIX 4.2. [Marc Slemko] PR#333
    +  *) mod_dav_fs: Retrieve minimal system information about directory
    +     entries when walking a DAV fs, resolving a performance degradation on
    +     Windows.  PR 45464.  [Joe Orton, Jeff Trawick]
     
    -  *) PORT: Update UnixWare support for 2.1.2.
    -     [Lawrence Rosenman <ler lerctr.org>] PR#511
    +  *) mod_cgid: Pass along empty command line arguments from an ISINDEX
    +     query that has consecutive '+' characters in the QUERY_STRING,
    +     matching the behavior of mod_cgi.
    +     [Eric Covener]
     
    -  *) PORT: NonStop-UX [Joachim Schmitz <schmitz_joachim tandem.com>] PR#327
    +  *) mod_headers: Prevent Header edit from processing only the first header
    +     of possibly multiple headers with the same name and deleting the
    +     remaining ones. PR 45333.  [Ruediger Pluem]
     
    -  *) PORT: Update ConvexOS support for 11.5.
    -     [David DeSimone <fox convex.com>] PR#399
    +  *) mod_proxy_balancer: Move nonce field in the balancer manager page inside
    +     the html form where it belongs. PR 45578. [Ruediger Pluem]
     
    -  *) PORT: Support for DEC cc compiler under ULTRIX.
    -     ["P. Alejandro Lopez-Valencia" <alejolo ideam.gov.co>] PR#388
    +  *) mod_proxy_http: Do not forward requests with 'Expect: 100-continue' to
    +     known HTTP/1.0 servers. Return 'Expectation failed' (417) instead.
    +     [Ruediger Pluem]
     
    -  *) PORT: Support for Maxion/OS SVR4.2 Real Time Unix. [no name given] PR#383
    +  *) mod_rewrite: Preserve the query string when [proxy,noescape]. PR 45247.
    +     [Tom Donovan]
     
    -  *) PORT: Workaround for AIX 3.x compiler bug in http_bprintf.c.  
    -     [Marc Slemko] PR#725
    +Changes with Apache 2.2.9
     
    -  *) PORT: fix problem compiling http_bprintf.c with gcc under SCO
    -     [Marc Slemko] PR#695
    +  *) SECURITY: CVE-2008-2364 (cve.mitre.org)
    +     mod_proxy_http: Better handling of excessive interim responses
    +     from origin server to prevent potential denial of service and high
    +     memory usage. Reported by Ryujiro Shibuya. [Ruediger Pluem,
    +     Joe Orton, Jim Jagielski]
     
    -Changes with Apache 1.2
    +  *) SECURITY: CVE-2007-6420 (cve.mitre.org)
    +     mod_proxy_balancer: Prevent CSRF attacks against the balancer-manager
    +     interface.  [Joe Orton]
     
    -Changes with Apache 1.2b11
    +  *) core: Fix address-in-use startup failure on some platforms caused
    +     by creating an IPv4 listener which overlaps with an existing IPv6
    +     listener.  [Jeff Trawick]
     
    -  *) Fixed open timestamp fd in proxy_cache.c [Chuck Murcko]
    +  *) mod_proxy: Make all proxy modules nocanon aware and do not add the
    +     query string again in this case. PR 44803.
    +     [Jim Jagielski, Ruediger Pluem]
     
    -  *) Added undocumented perl SSI mechanism for -DUSE_PERL_SSI and mod_perl.
    -     [Doug MacEachern, Rob Hartill]
    +  *) mod_unique_id: Fix timestamp value in UNIQUE_ID.
    +     PR 37064 [Kobayashi <kobayashi firstserver.co.jp>]
     
    -  *) Proxy needs to use hard_timeout instead of soft_timeout when it is
    -     reading from one buffer and writing to another, at least until it has
    -     a custom timeout handler.  [Roy Fielding and Petr Lampa]
    +  *) htpasswd: Fix salt generation weakness. PR 31440
    +     [Andreas Krennmair <ak synflood.at>, Peter Watkins <peterw tux.org>,
    +     Paul Querna]
     
    -  *) Fixed problem on IRIX with servers hanging in IdentityCheck,
    -     apparently due to a mismatch between sigaction and setjmp.
    -     [Roy Fielding] PR#502
    +  *) core: Add the filename of the configuration file to the warning message
    +     about the useless use of AllowOverride. PR 39992.
    +     [Darryl Miles <darryl darrylmiles.org>]
     
    -  *) Log correct status code if we timeout before receiving a request (408)
    -     or if we received a request-line that was too long to process (414).
    -     [Ed Korthof and Roy Fielding] PR#601
    +  *) scoreboard: Remove unused proxy load balancer elements from scoreboard
    +     image (not scoreboard memory itself).  [Chris Darroch]
     
    -  *) Virtual hosts with the same ServerName, but on different ports, were
    -     not being selected properly.  [Ed Korthof]
    +  *) mod_proxy: Support environment variable interpolation in reverse
    +     proxying directives. [Nick Kew]
     
    -  *) Added code to return the requested IP address from proxy_host2addr()
    -     if gethostbyaddr() fails due to reverse DNS lookup problems. Original
    -     change submitted by Jozsef Hollosi <hollosi sbcm.com>.
    -     [Chuck Murcko] PR#614
    +  *) suexec: When group is given as a numeric gid, validate it by looking up
    +     the actual group name such that the name can be used in log entries.
    +     PR 7862 [<y-koga apache.or.jp>, Leif W <warp-9.9 usa.net>]
     
    -  *) If multiple requests on a single connection are used to retrieve
    -     data from different virtual hosts, the virtual host list would be
    -     scanned starting with the most recently used VH instead of the first,
    -     causing most virtual hosts to be ignored.
    -     [Paul Sutton and Martin Mares] PR#610
    +  *) Fix garbled TRACE response on EBCDIC platforms.
    +     [David Jones <oscaremma gmail.com>]
     
    -  *) The OS/2 handling of process group was broken by a porting patch for
    -     MPE, so restored prior code for OS/2.  [Roy Fielding and Garey Smiley]
    +  *) ab: Include <limits.h> earlier if available since we may need
    +     INT_MAX (defined there on Windows) for the definition of MAX_REQUESTS.
    +     PR 45024 [Ruediger Pluem]
     
    -  *) Inherit virtual server port from main server if none (or "*") is
    -     given for VirtualHost.  [Dean Gaudet] PR#576
    +  *) ab: Improve client performance by clearing connection pool instead
    +     of destroying it. PR 40054 [Brad Roberts <braddr puremagic.com>]
     
    -  *) If the lookup for a DirectoryIndex name with content negotiation
    -     has found matching variants, but none are acceptable, return the
    -     negotiation result if there are no more DirectoryIndex names to lookup.
    -     [Petr Lampa and Roy Fielding]
    +  *) ab: Don't stop sending a request if EAGAIN is returned, which
    +     will only happen if both the write and subsequent wait are
    +     returning EAGAIN, and count posted bytes correctly when the initial
    +     write of a request is not complete. PR 10038, 38861, 39679
    +     [Patrick McManus <mcmanus datapower.com>,
    +      Stefan Fleiter <stefan.fleiter web.de>,
    +      Davanum Srinivas, Roy T. Fielding]
     
    -  *) If a soft_timeout occurs after keepalive is set, then the main child
    -     loop would try to read another request even though the connection
    -     has been aborted.  [Roy Fielding]
    +  *) ab: Overhaul stats collection and reporting to avoid integer
    +     truncation and time divisions within the test loop, retain
    +     native time resolution until output, remove unused data,
    +     consistently round milliseconds, and generally avoid losing
    +     accuracy of calculation due to type casts. PR 44878, 44931.
    +     [Roy T. Fielding]
     
    -  *) Configure changes: Allow for whitespace at the start of a
    -     Module declaration. Also, be more understanding about the
    -     CC=/OPTIM= format in Configuration. Finally, fix compiler
    -     flags if using HP-UX's cc compiler. [Jim Jagielski]
    +  *) ab: Add -r option to continue after socket receive errors.
    +     [Filip Hanik <devlist hanik.com>]
     
    -  *) Subrequests and internal redirects now inherit the_request from the
    -     original request-line. [Roy Fielding]
    +  *) core: Do not allow Options ALL if not all options are allowed to be
    +     overwritten. PR 44262 [Michał Grzędzicki <lazy iq.pl>]
     
    -  *) Test for error conditions before creating output header fields, since
    -     we don't want the error message to include those fields.  Likewise,
    -     reset the content_language(s) and content_encoding of the response
    -     before generating or redirecting to an error message, since the new
    -     message will have its own Content-* definitions. [Dean Gaudet]
    +  *) mod_cache: Handle If-Range correctly if the cached resource was stale.
    +     PR 44579 [Ruediger Pluem]
     
    -  *) Restored the semantics of headers_out (headers sent only with 200..299
    -     and 304 responses) and err_headers_out (headers sent with all responses).
    -     Avoid the overhead of copying tables if err_headers_out is empty
    -     (the usual case).  [Roy Fielding]
    +  *) mod_proxy: Do not try a direct connection if the connection via a
    +     remote proxy failed before and the request has a request body.
    +     [Ruediger Pluem]
     
    -  *) Fixed a couple places where a check for the default Content-Type was
    -     not properly checking both the value configured by the DefaultType
    -     directive and the DEFAULT_TYPE symbol in httpd.h.  Changed the value
    -     of DEFAULT_TYPE to match the documented default (text/plain).
    -     [Dean Gaudet] PR#506
    +  *) mod_proxy_ajp: Do not retry request in the case that we either failed to
    +     sent a part of the request body or if the request is not idempotent.
    +     PR 44334 [Ruediger Pluem]
     
    -  *) Escape the HTML-sensitive characters in the Request-URI that is
    -     output for each child by mod_status. [Dean Gaudet and Ken Coar] PR#501
    +  *) mod_rewrite: Initialize hash needed by ap_register_rewrite_mapfunc early
    +     enough. PR 44641 [Daniel Lescohier <daniel.lescohier cnet.com>]
     
    -  *) Properly initialize the flock structures used by the mutex locking
    -     around accept() when USE_FCNTL_SERIALIZED_ACCEPT is defined.
    -     [Marc Slemko]
    +  *) mod_dav: Return "method not allowed" if the destination URI of a WebDAV
    +     copy / move operation is no DAV resource. PR 44734 [Ruediger Pluem]
     
    -  *) The method for determining PATH_INFO has been restored to the pre-1.2b
    -     (and NCSA httpd) definition wherein it was the extra path info beyond
    -     the CGI script filename.  The environment variable FILEPATH_INFO has
    -     been removed, and instead we supply the original REQUEST_URI to any
    -     script that wants to be Apache-specific and needs the real URI path.
    -     This solves a problem with existing scripts that use extra path info
    -     in the ScriptAlias directive to pass options to the CGI script.
    -     [Roy Fielding]
    +  *) http_filters: Don't return 100-continue on redirects. PR 43711
    +     [Ruediger Pluem]
     
    -  *) The _default_ change in 1.2b10 will change the behaviour on configs
    -     that use multiple Listen statements for listening on multiple ports.
    -     But that change is necessary to make _default_ consistent with other
    -     forms of <VirtualHost>.  It requires such configs to be modified
    -     to use <VirtualHost _default_:*>.  The documentation has been
    -     updated.  [Dean Gaudet] PR#530
    +  *) mod_ssl: Fix a memory leak with connections that have zlib compression
    +     turned on. PR 44975 [Joe Orton, Amund Elstad <Amund.Elstad ist.com>,
    +     Dr Stephen Henson <steve openssl.org>]
     
    -  *) If an ErrorDocument CGI script is used to respond to an error
    -     generated by another CGI script which has already read the message
    -     body of the request, the server would block trying to read the
    -     message body again.  [Rob Hartill]
    +  *) mod_proxy: Trigger a retry by the client in the case we fail to read the
    +     response line from the backend by closing the connection to the client.
    +     PR 37770 [Ruediger Pluem]
     
    -  *) signal() replacement conflicted with a define on QNX (and potentially
    -     other platforms). Fixed. [Ben Laurie] PR#512
    +  *) gen_test_char: add double-quote to the list of T_HTTP_TOKEN_STOP.
    +     PR 9727 [Ville Skytt <ville.skytta iki.fi>]
     
    -Changes with Apache 1.2b10
    -
    -  *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH
    -     to be configured via -D in Configuration.  [Dean Gaudet] PR#449
    -
    -  *) <VirtualHost _default_:portnum> didn't work properly.  [Dean Gaudet]
    -
    -  *) Added prototype for mktemp() for SUNOS4 [Marc Slemko]
    -
    -  *) In mod_proxy.c, check return values for proxy_host2addr() when reading
    -     config, in case the hostent struct returned is trash.
    -     [Chuck Murcko] PR #491
    -
    -  *) Fixed the fix in 1.2b9 for parsing URL query info into args for CGI
    -     scripts.  [Dean Gaudet, Roy Fielding, Marc Slemko]
    +  *) core: reinstate location walk to fix config for subrequests
    +     PR 41960 [Jose Kahan <jose w3.org>]
     
    -Changes with Apache 1.2b9  [never announced]
    +  *) rotatelogs: Log the current file size and error code/description
    +     when failing to write to the log file.  [Jeff Trawick]
     
    -  *) Reset the MODULE_MAGIC_NUMBER to account for the unsigned port
    -     changes and in anticipation of 1.2 final release.  [Roy Fielding]
    +  *) rotatelogs: Added '-f' option to force rotatelogs to create the
    +     logfile as soon as started, and not wait until it reads the
    +     first entry. [Jim Jagielski]
     
    -  *) Fix problem with scripts not receiving a SIGPIPE when client drops
    -     the connection (e.g., when user presses Stop).  Apache will now stop
    -     trying to send a message body immediately after an error from write.
    -     [Roy Fielding and Nathan Kurz] PR#335
    +  *) rotatelogs: Don't leak memory when reopening the logfile.
    +     PR 40183 [Ruediger Pluem, Takashi Sato <serai lans-tv.com>]
     
    -  *) Rearrange Configuration.tmpl so that mod_rewrite has higher priority
    -     than mod_alias, and mod_alias has higher priority than mod_proxy;
    -     rearranged other modules to enhance understanding of their purpose
    -     and relative order (and maybe even reduce some overhead).
    -     [Roy Fielding and Sameer Parekh]
    +  *) rotatelogs: Improve atomicity when using -l and cleaup code.
    +     PR 44004 [Rainer Jung]
     
    -  *) Fix graceful restart.  Eliminate many signal-related race
    -     conditions in both forms of restart, and in SIGTERM.  See
    -     htdocs/manual/stopping.html for details on stopping and
    -     restarting the parent.  [Dean Gaudet]
    +  *) mod_authn_dbd: Disambiguate and tidy database authentication
    +     error messages.  PR 43210.  [Chris Darroch, Phil Endecott
    +     <spam_from_apache_bugzilla chezphil.org>]
     
    -  *) Fix memory leaks in mod_rewrite, mod_browser, mod_include.  Tune
    -     memory allocator to avoid a behaviour that required extra blocks to
    -     be allocated.  [Dean Gaudet]
    +  *) mod_headers: Add 'merge' option to avoid duplicate values within
    +     the same header. [Chris Darroch]
     
    -  *) Allow suexec to access files relative to current directory but not
    -     above.  (Excluding leading / or any .. directory.)  [Ken Coar]
    -     PR#269, 319, 395
    +  *) mod_cgid: Explicitly set permissions of the socket (ScriptSock) shared by
    +     mod_cgid and request processing threads, for OS'es such as HPUX and AIX
    +     that do not use umask for AF_UNIX socket permissions.
    +     [Eric Covener, Jeff Trawick]
     
    -  *) Fix suexec segfault when group doesn't exist. [Gregory Neil Shapiro]
    -     PR#367, 368, 354, 453
    +  *) mod_cgid: Don't try to restart the daemon if it fails to initialize
    +     the socket.  [Jeff Trawick]
     
    -  *) Fix the above fix: if suexec is enabled, avoid destroying r->url
    -     while obtaining the /~user and save the username in a separate data
    -     area so that it won't be overwritten by the call to getgrgid(), and
    -     fix some misuse of the pool string allocation functions.  Also fixes
    -     a general problem with parsing URL query info into args for CGI scripts.
    -     [Roy Fielding] PR#339, 367, 354, 453
    +  *) mod_log_config: Add format options for %p so that the actual local
    +     or remote port can be logged.  PR 43415.  [Adam Hasselbalch Hansen
    +     <ahh@one.com>, Ruediger Pluem, Jeff Trawick]
     
    -  *) Fix IRIX warning about bzero undefined. [Marc Slemko]
    +  *) Added 'disablereuse' option for ProxyPass which, essentially,
    +     disables connection pooling for the backend servers.
    +     [Jim Jagielski]
     
    -  *) Fix problem with <Directory proxy:...>. [Martin Kraemer] PR#271
    +  *) mod_speling: remove regression from 1.3/2.0 behavior and
    +     drop dependency between mod_speling and AcceptPathInfo.
    +     PR 43562 [Jose Kahan <jose w3.org>]
     
    -  *) Corrected spelling of "authoritative".  AuthDBAuthoratative became
    -     AuthDBAuthoritative. [Marc Slemko] PR#420
    +  *) mod_substitute: The default is now flattening the buckets after
    +     each substitution. The newly added 'q' flag allows for the
    +     quicker, more efficient bucket-splitting if the user so
    +     desires. [Jim Jagielski]
     
    -  *) MaxClients should be at least 1. [Lars Eilebrecht] PR#375
    +  *) http_filters: Don't spin if get an error when reading the
    +     next chunk. PR 44381 [Ruediger Pluem]
     
    -  *) The default handler now logs invalid methods or URIs (i.e. PUT on an
    -     object that can't be PUT, or FOOBAR for some method FOOBAR that
    -     apache doesn't know about at all).  Log 404s that occur in mod_include.
    -     [Paul Sutton, John Van Essen]
    +  *) ab: Do not try to read non existing response bodies of HEAD requests.
    +     PR 34275 [Takashi Sato <serai lans-tv.com>]
     
    -  *) If a soft timeout (or lingerout) occurs while trying to flush a
    -     buffer or write inside buff.c or fread'ing from a CGI's output,
    -     then the timeout would be ignored. [Roy Fielding] PR#373
    +  *) ab: Use a 64 bit unsigned int instead of a signed long to count the
    +     bytes transferred to avoid integer overflows. PR 44346 [Ruediger Pluem]
     
    -  *) Work around a bug in Netscape Navigator versions 2.x, 3.x and 4.0b2's
    -     parsing of headers.  If the terminating empty-line CRLF occurs starting
    -     at the 256th or 257th byte of output, then Navigator will think a normal
    -     image is invalid.  We are guessing that this is because their initial
    -     read of a new request uses a 256 byte buffer. We check the bytes written
    -     so far and, if we are about to tickle the bug, we instead insert a
    -     padding header of eminent bogosity. [Roy Fielding and Dean Gaudet] PR#232
    +  *) ProxyPassReverse is now balancer aware. [Jim Jagielski]
     
    -  *) Fixed SIGSEGV problem when a DirectoryIndex file is also the source
    -     of an external redirection.  [Roy Fielding and Paul Sutton]
    +  *) mod_include: Correctly handle SSI directives split over multiple filter
    +     passes.  PR 44447 [Harald Niesche <harald brokenerror.de>]
     
    -  *) Configure would create a broken Makefile if the configuration file
    -     contained a commented-out Rule.  [Roy Fielding]
    +  *) mod_cache: Revalidate cache entities which have Cache-Control: no-cache
    +     set in their response headers. PR 44511 [Ruediger Pluem]
     
    -  *) Promote per_dir_config and subprocess_env from the subrequest to the
    -     main request in mod_negotiation.  In particular this fixes a bug
    -     where <Files> sections wouldn't properly apply to negotiated content.
    -     [Dean Gaudet]
    +  *) mod_rewrite: Check all files used by DBM maps for freshness, mod_rewrite
    +     didn't pick up on updated sdbm maps due to this.
    +     PR41190 [Niklas Edmundsson]
     
    -  *) Fix a potential deadlock in mod_cgi script_err handling.
    -     [Ralf S. Engelschall]
    +  *) mod_proxy: Lower memory consumption for short lived connections.
    +     PR 44026. [Ruediger Pluem]
     
    -  *) rotatelogs zero-pads the logfile names to improve alphabetic sorting.
    -     [Mitchell Blank Jr]
    +  *) mod_proxy: Keep connections to the backend persistent in the HTTPS case.
    +     [Ruediger Pluem]
     
    -  *) Updated mod_rewrite to 3.0.4: Fixes HTTP redirects from within
    -     .htaccess files because the RewriteBase was not replaced correctly.
    -     Updated mod_rewrite to 3.0.5: Fixes problem with rewriting inside
    -     <Directory> sections missing a trailing /.  [Ralf S. Engelschall]
    +  *) Don't add bogus duplicate Content-Language entries
    +     PR 11035 [Davi Arnaut]
     
    -  *) Clean up Linux settings in conf.h by detecting 2.x versus 1.x.  For
    -     1.x the settings are those of pre-1.2b8.  For 2.x we include
    -     USE_SHMGET_SCOREBOARD (scoreboard in shared memory rather than file) and
    -     HAVE_SYS_RESOURCE_H (enable the RLimit commands).
    -     [Dean Gaudet] PR#336, PR#340
    +  *) Worker / Event MPM: Fix race condition in pool recycling that leads to
    +     segmentation faults under load.  PR 44402
    +     [Basant Kumar Kukreja <basant.kukreja sun.com>]
     
    -  *) Redirect did not preserve ?query_strings when present in the client's
    -     request.  [Dean Gaudet]
    +  *) mod_proxy_ftp: Fix base for directory listings.
    +     PR 27834 [Nick Kew]
     
    -  *) Configure was finding non-modules on EXTRA_LIBS. [Frank Cringle] PR#380
    +  *) mod_logio: Provide optional function to allow modules to adjust the
    +     bytes_in count [Eric Covener]
     
    -  *) Use /bin/sh5 on ULTRIX.  [P. Alejandro Lopez-Valencia] PR#369
    +  *) http_filters: Don't return 100-continue on client error
    +     PR 43711 [Chetan Reddy <chetanreddy gmail.com>]
     
    -  *) Add UnixWare compile/install instructions.  [Chuck Murcko]
    +  *) mod_charset_lite: Add TranslateAllMimeTypes sub-option to
    +     CharsetOptions, allowing the administrator to skip the
    +     mimetype checking that precedes translation.
    +     PR 44458 [Eric Covener]
     
    -  *) Add mod_example (illustration of API techniques).  [Ken Coar]
    +  *) mod_proxy_http: Fix processing of chunked responses if
    +     Connection: Transfer-Encoding is set in the response of the proxied
    +     system. PR 44311 [Ruediger Pluem]
     
    -  *) Add macro for memmove to conf.h for SUNOS4. [Marc Slemko]
    +  *) mod_proxy_http: Return HTTP status codes instead of apr_status_t
    +     values for errors encountered while forwarding the request body
    +     PR 44165 [Eric Covener]
     
    -  *) Improve handling of directories when filenames have spaces in them.
    -     [Chuck Murcko]
    +  *) mod_rewrite: Don't canonicalise URLs with [P,NE]
    +     PR 43319 [<rahul sun.com>]
     
    -  *) For hosts with multiple IP addresses, try all additional addresses if
    -     necessary to get a connect. Fail only if hostent address list is
    -     exhausted. [Chuck Murcko]
    +Changes with Apache 2.2.8
     
    -  *) More signed/unsigned port fixes.  [Dean Gaudet]
    +  *) core: Fix regression in 2.2.7 in chunk filtering with massively
    +     chunked requests.  [Ruediger Pluem, Nick Kew]
     
    -  *) HARD_SERVER_LIMIT can be defined in the Configuration file now.
    -     [Dean Gaudet]
    +  *) winnt_mpm: Resolve modperl issues by redirecting console mode stdout
    +     to /Device/Nul as the server is starting up, mirroring unix MPM's.
    +     PR: 43534  [Tom Donovan <Tom.Donovan acm.org>, William Rowe]
     
    -Changes with Apache 1.2b8
    +  *) winnt_mpm: Restore Win32DisableAcceptEx On directive and Win9x platform
    +     by recreating the bucket allocator each time the trans pool is cleared.
    +     PR: 11427 #16 (follow-on)  [Tom Donovan <Tom.Donovan acm.org>]
     
    -  *) suexec.c doesn't close the log file, allowing CGIs to continue writing
    -     to it.  [Marc Slemko]
    +  *) mod_dav: Fix evaluation of If-Match * and If-None-Match * conditionals.
    +     PR 38034 [Paritosh Shah <shah.paritosh gmail.com>]
     
    -  *) The addition of <Location> and <File> directives made the
    -     sub_req_lookup_simple() function bogus, so we now handle
    -     the special cases directly.  [Dean Gaudet]
    +Changes with Apache 2.2.7 (not released)
     
    -  *) We now try to log where the server is dumping core when a fatal
    -     signal is received.  [Ken Coar]
    +  *) SECURITY: CVE-2007-6421 (cve.mitre.org)
    +     mod_proxy_balancer: Correctly escape the worker route and the worker
    +     redirect string in the HTML output of the balancer manager.
    +     Reported by SecurityReason. [Ruediger Pluem]
     
    -  *) Improved lingering_close by adding a special timeout, removing the
    -     spurious log messages, removing the nonblocking settings (they
    -     are not needed with the better timeout), and adding commentary
    -     about the NO_LINGCLOSE and USE_SO_LINGER issues.  NO_LINGCLOSE is
    -     now the default for SunOS4, UnixWare, NeXT, and IRIX.  [Roy Fielding]
    +  *) SECURITY: CVE-2007-6422 (cve.mitre.org)
    +     Prevent crash in balancer manager if invalid balancer name is passed
    +     as parameter. Reported by SecurityReason. [Ruediger Pluem]
     
    -  *) Send error messages about setsockopt failures to the server error
    -     log instead of stderr.  [Roy Fielding]
    +  *) SECURITY: CVE-2007-6388 (cve.mitre.org)
    +     mod_status: Ensure refresh parameter is numeric to prevent
    +     a possible XSS attack caused by redirecting to other URLs.
    +     Reported by SecurityReason.  [Mark Cox, Joe Orton]
     
    -  *) Fix loopholes in proxy cache expiry vis a vis alarms. [Brian Moore]
    +  *) SECURITY: CVE-2007-5000 (cve.mitre.org)
    +     mod_imagemap: Fix a cross-site scripting issue.  Reported by JPCERT.
    +     [Joe Orton]
     
    -  *) Stopgap solution for CGI 3-second delay with server-side includes: if
    -     processing a subrequest, allocate memory from r->main->pool instead
    -     of r->pool so that we can avoid waiting for free_proc_chain to cleanup
    -     in the middle of an SSI request.  [Dean Gaudet] PR #122
    +  *) SECURITY: CVE-2008-0005 (cve.mitre.org)
    +     Introduce the ProxyFtpDirCharset directive, allowing the administrator
    +     to identify a default, or specific servers or paths which list their
    +     contents in other-than ISO-8859-1 charset (e.g. utf-8). [Ruediger Pluem]
     
    -  *) Fixed status of response when POST is received for a nonexistent URL
    -     (was sending 405, now 404) and when any method is sent with a
    -     full-URI that doesn't match the server and the server is not acting
    -     as a proxy (was sending 501, now 403).  [Roy Fielding]
    +  *) mod_dav: Adjust etag generation to produce identical results on 32-bit
    +     and 64-bit platforms and avoid a regression with conditional PUT's on
    +     lock and etag. PR 44152.
    +     [Michael Clark <michael metaparadigm.com>, Ruediger Pluem]
     
    -  *) Host port changed to unsigned short. [Ken Coar] PR #276
    +  *) mod_ssl: Fix handling of the buffered request body during a per-location
    +     renegotiation, when an internal redirect occurs.  PR 43738.
    +     [Joe Orton]
     
    -  *) Fix typo in command definition of AuthAuthoritative. [Ken Coar] PR #246
    +  *) mod_ldap: Try to establish a new backend LDAP connection when the
    +     Microsoft LDAP client library returns LDAP_UNAVAILABLE, e.g. after the
    +     LDAP server has closed the connection due to a timeout.
    +     PR 39095 [Eric Covener]
     
    -  *) Defined USE_SHMGET_SCOREBOARD for shared memory on Linux.  [Dean Gaudet]
    +  *) log.c: Ensure Win32 resurrects its lost robust logger processes.
    +     [William Rowe]
     
    -  *) Report extra info from errno with many errors that cause httpd to exit.
    -     spawn_child, popenf, and pclosef now have valid errno returns in the
    -     event of an error.  Correct problems where errno was stomped on
    -     before being reported.  [Dean Gaudet]
    +  *) mod_disk_cache: Delete temporary files if they cannot be renamed to their
    +     final name. [Davi Arnaut <davi haxent.com.br>]
     
    -  *) In the proxy, if the cache filesystem was full, garbage_coll() was
    -     never called, and thus the filesystem would remain full indefinitely.
    -     We now also remove incomplete cache files left if the origin server
    -     didn't send a Content-Length header and either the client has aborted
    -     transfer or bwrite() to client has failed. [Petr Lampa]
    +  *) Add explicit charset to the output of various modules to work around
    +     possible cross-site scripting flaws affecting web browsers that do not
    +     derive the response character set as required by  RFC2616.  One of these
    +     reported by SecurityReason [Joe Orton]
     
    -  *) Fixed the handling of module and script-added header fields.
    -     Improved the interface for sending header fields and reduced
    -     the duplication of code between sending okay responses and errors.
    -     We now always send both headers_out and err_headers_out, and
    -     ensure that the server-reserved fields are not being overridden,
    -     while not overriding those that are not reserved.  [Roy Fielding]
    +  *) http_protocol: Escape request method in 405 error reporting.
    +     This has no security impact since the browser cannot be tricked
    +     into sending arbitrary method strings.  [Jeff Trawick]
     
    -  *) Moved transparent content negotiation fields to err_headers_out
    -     to reflect above changes.  [Petr Lampa]
    +  *) mod_ssl: Fix SSL client certificate extensions parsing bug. PR 44073.
    +     [yl <yl bee-ware.net>]
     
    -  *) Fixed the determination of whether or not we should make the
    -     connection persistent for all of the cases where some other part
    -     of the server has already indicated that we should not.  Also
    -     improved the ordering of the test so that chunked encoding will
    -     be set whenever it is desired instead of only when KeepAlive
    -     is enabled. Added persistent connection capability for most error
    -     responses (those that do not indicate a bad input stream) when
    -     accessed by an HTTP/1.1 client. [Roy Fielding]
    +  *) mod_proxy_ajp: Use 64K as maximum AJP packet size. This is the maximum
    +     length we can squeeze inside the AJP message packet.
    +     [Mladen Turk]
     
    -  *) Added missing timeouts for sending header fields, error responses,
    -     and the last chunk of chunked encoding, each of which could have
    -     resulted in a process being stuck in write forever.  Using soft_timeout
    -     requires that the sender check for an aborted connection rather than
    -     continuing after an EINTR.  Timeouts that used to be initiated before
    -     send_http_header (and never killed) are now initiated only within or
    -     around the routines that actually do the sending, and not allowed to
    -     propagate above the caller.  [Roy Fielding]
    +  *) core: Lower memory consumption of ap_r* functions by reusing the brigade
    +     instead of recreating it during each filter pass.
    +     [Stefan Fritsch <sf sfritsch.de>]
     
    -  *) mod_auth_anon required an @ or a . in the email address, not both.
    -     [Dirk vanGulik]
    +  *) core: Lower memory consumption in case that flush buckets are passed thru
    +     the chunk filter as last bucket of a brigade. PR 23567.
    +     [Stefan Fritsch <sf sfritsch.de>]
     
    -  *) per_dir_defaults weren't set correctly until directory_walk for
    -     name-based vhosts.  This fixes an obscure bug with the wrong config
    -     info being used for vhosts that share the same ip as the server.
    -     [Dean Gaudet]
    +  *) core: Fix broken chunk filtering that causes all non blocking reads to be
    +     converted into blocking reads.  PR 19954, 41056.
    +     [Jean-Frederic Clere, Jim Jagielski]
     
    -  *) Improved generation of modules/Makefile to be more generic for
    -     new module directories. [Ken Coar, Chuck Murcko, Roy Fielding]
    +  *) mod_rewrite: Add the novary flag to RewriteCond.
    +     [Ruediger Pluem]
     
    -  *) Generate makefile dependency for Configuration based on the actual
    -     name given when running the Configure process.  [Dean Gaudet]
    +  *) core: Change etag generation to produce identical results on
    +     32-bit and 64-bit platforms.  PR 40064.  [Joe Orton]
     
    -  *) Fixed problem with vhost error log not being set prior to
    -     initializing virtual hosts. [Dean Gaudet]
    +  *) http_protocol: Escape request method in 413 error reporting.
    +     Determined to be not generally exploitable, but a flaw in any case.
    +     PR 44014 [Victor Stinner <victor.stinner inl.fr>]
     
    -  *) Fixed infinite loop when a trailing slash is included after a type map
    -     file URL (extra path info). [Petr Lampa]
    +  *) mod_filter: Don't segfault on (unsupported) chained FilterProvider usage.
    +     PR 43956 [Nick Kew, Ruediger Pluem]
     
    -  *) Fixed server status updating of per-connection counters. [Roy Fielding]
    +  *) core: Handle unrecognised transfer-encodings.
    +     PR 43882 [Nick Kew, Jeff Trawick]
     
    -  *) Add documentation for DNS issues (reliability and security), and try
    -     to explain the virtual host matching process.  [Dean Gaudet]
    +  *) mod_include: Add an "if" directive syntax to test whether an URL
    +     is accessible, and if so, conditionally display content. This
    +     allows a webmaster to hide a link to a private page when the user
    +     has no access to that page. [Graham Leggett]
     
    -  *) Try to continue gracefully by disabling the vhost if a DNS lookup
    -     fails while parsing the configuration file.  [Dean Gaudet]
    +  *) Various code cleanups. PR 38699, 39518, 42005, 42006, 42007, 42008, 42009
    +     [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
     
    -  *) Improved calls to setsockopt.  [Roy Fielding]
    +  *) mod_proxy_http: Correctly forward unexpected interim (HTTP 1xx)
    +     responses from the backend according to RFC2616.  But make it
    +     configurable in case something breaks on it.
    +     PR 16518 [Nick Kew]
     
    -  *) Negotiation changes: Don't output empty content-type in variant list;
    -     Output charset in variant list; Return sooner from handle_multi() if
    -     no variants found; Add handling of '*' wildcard in Accept-Charset.
    -     [Petr Lampa and Paul Sutton]
    +  *) mod_substitute: Added a new output filter, which performs
    +     inline response content pattern matching (including regex)
    +     and substitution.  [Jim Jagielski, Ruediger Pluem]
     
    -  *) Fixed overlaying of request/sub-request notes and headers in
    -     mod_negotiation.  [Dean Gaudet]
    +  *) rotatelogs: Change command-line parsing to report more types
    +     of errors.  Allow local timestamps to be used when rotating based
    +     on file size.  [Jeff Trawick]
     
    -  *) If two variants' charset quality are equal and one is the default
    -     charset (iso-8859-1), then prefer the variant that was specifically
    -     listed in Accept-Charset instead of the default.  [Petr Lampa]
    +  *) mod_proxy: Canonicalisation improvements. Add "nocanon" keyword to
    +     ProxyPass, to suppress URI-canonicalisation in a reverse proxy. Also,
    +     don't escape/unescape forward-proxied URLs.
    +     PR 41798, 42592 [Nick Kew, Ruediger Pluem, Roy Fielding, Jim Jagielski]
     
    -  *) Memory allocation problem in push_array() -- it would corrupt memory
    -     when nalloc==0.  [Kai Risku <krisku tf.hut.fi> and Roy Fielding]
    +  *) mod_status: Add SeeRequestTail directive, which determines if
    +     ExtendedStatus displays the 1st 63 characters of the request
    +     or the last 63. Useful for those requests with large string
    +     lengths and which only vary with the last several characters.
    +     [Jim Jagielski]
     
    -  *) invoke_handler() doesn't handle mime arguments in content-type
    -     [Petr Lampa] PR#160
    +  *) mod_ssl: Prevent memory corruption of version string.
    +     PR 43865, 43334 [William Rowe, Joe Orton]
     
    -  *) Reduced IdentityCheck timeout to 30 seconds, as per RFC 1413 minimum.
    -     [Ken Coar]
    +  *) core: Avoid some unexpected connection closes by telling the client
    +     that the connection is not persistent if the MPM process handling
    +     the request is already exiting when the response header is built.
    +     [Jeff Trawick]
     
    -  *) Fixed problem with ErrorDocument not working for virtual hosts
    -     due to one of the performance changes in 1.2b7. [Dean Gaudet]
    +  *) mod_autoindex: Generate valid XHTML output by adding the xhtml
    +     namespace. PR 43649 [Jose Kahan <jose w3.org>]
     
    -  *) Log an error message if we get a request header that is too long,
    -     since it may indicate a buffer overflow attack. [Marc Slemko]
    +  *) mod_ldap: Give callers a reference to data copied into the request
    +     pool instead of references directly into the cache
    +     PR 43786 [Eric Covener]
     
    -  *) Made is_url() allow "[-.+a-zA-Z0-9]+:" as a valid scheme and
    -     not reject URLs without a double-slash, as per RFC2068 section 3.2.
    -     [Ken Coar] PR #146, #187
    +  *) mod_ldap: Stop passing a reference to pconf around for
    +     (limited) use during request processing, avoiding possible
    +     memory corruption and crashes.  [Eric Covener]
     
    -  *) Added table entry placeholder for new header_parser callback
    -     in all of the distributed modules. [Ken Coar] PR #191
    +  *) Event MPM: Add support for running under mod_ssl, by reverting to the
    +     Worker MPM behaviors, when run under an input filter that buffers
    +     its own data. [Paul Querna]
     
    -  *) Allow for cgi files without the .EXE extension on them under OS/2.
    -     [Garey Smiley] PR #59
    -
    -  *) Fixed error message when resource is not found and URL contains
    -     path info. [Petr Lampa and Dean Gaudet] PR #40
    +  *) mod_charset_lite: Don't crash when the request has no associated
    +     filename.  [Jeff Trawick]
     
    -  *) Fixed user and server confusion over what should be a virtual host
    -     and what is the main server, resulting in access to something
    -     other than the name defined in the virtualhost directive (but
    -     with the same IP address) failing. [Dean Gaudet]
    +  *) Core: fix possible crash at startup in case of nonexistent DocumentRoot.
    +     PR 39722 [Adrian Buckley <adrian.buckley ntlworld.com>]
     
    -  *) Updated mod_rewrite to version 3.0.2, which: fixes compile error on
    -     AIX; improves the redirection stuff to enable the users to generally
    -     redirect to http, https, gopher and ftp; added TIME variable for
    -     RewriteCond which expands to YYYYMMDDHHMMSS strings and added the
    -     special patterns >STRING, <STRING and =STRING to RewriteCond, which
    -     can be used in conjunction with %{TIME} or other variables to create
    -     time-dependent rewriting rules. [Ralf S. Engelschall]
    +  *) HTTP protocol: Add "DefaultType none" option.
    +     PR 13986 and PR 16139 [Nick Kew]
     
    -  *) bpushfd() no longer notes cleanups for the file descriptors it is handed.
    -     Module authors may need to adjust their code for proper cleanup to take
    -     place (that is, call note_cleanups_for_fd()). This change fixes problems
    -     with file descriptors being erroneously closed when the proxy module was
    -     in use. [Ben Laurie]
    +  *) mod_rewrite: Add option to suppress URL unescaping
    +     PR 34602 [Guenther Gsenger <guenther.gsenger gmail.com>]
     
    -  *) Fix bug in suexec reintroduced by changes in 1.2b7 which allows
    -     initgroups() to hose the group information needed for later
    -     comparisons. [Randy Terbush]
    +  *) mpm_winnt: Eliminate wait_for_many_objects.  Allows the clean
    +     shutdown of the server when the MaxClients is higher then 257,
    +     in a more responsive manner [Mladen Turk, William Rowe]
     
    -  *) Remove unnecessary call to va_end() in create_argv() which
    -     caused a SEGV on some systems.
    +  *) mod_proxy_http: Remove Warning headers with wrong date
    +     PR 16138 [Nick Kew]
     
    -  *) Use proper MAXHOSTNAMELEN symbol for limiting length of server name.
    -     [Dean Gaudet]
    +  *) mod_proxy_http: Correctly parse all Connection headers in proxy.
    +     PR 43509 [Nick Kew]
     
    -  *) Clear memory allocated for listeners. [Randy Terbush]
    +  *) mod_proxy_http: add Via header correctly (if enabled) to
    +     response, even where other Via headers exist.
    +     PR 19439 [Nick Kew]
     
    -  *) Improved handling of IP address as a virtualhost address and
    -     introduced "_default_" as a synonym for the default vhost config.
    -     [Dean Gaudet] PR #212
    +  *) http_core: OPTIONS * no longer maps to local storage or URI
    +     space. Note that unlike previous versions, OPTIONS * no
    +     longer returns an Allow: header. PR 43519 [Jim Jagielski]
     
    -Changes with Apache 1.2b7
    +  *) mod_proxy_http: strip hop-by-hop response headers
    +     PR 43455 [Nick Kew]
     
    -  *) Port to  UXP/DS(V20) [Toshiaki Nomura <nom yk.fujitsu.co.jp>]
    +  *) mod_proxy: Don't by default violate RFC2616 by setting
    +     Max-Forwards when the client didn't send it to us.
    +     Leave that as a configuration option.
    +     PR 16137 [Nick Kew]
     
    -  *) unset Content-Length if chunked (RFC-2068) [Petr Lampa]
    +  *) scoreboard: improve error message on apr_shm_create failure
    +     PR 40037 [Nick Kew]
     
    -  *) mod_negotiation fixes [Petr Lampa] PR#157, PR#158, PR#159
    -     - replace protocol response numbers with symbols
    -     - save variant-list into main request notes
    -     - free allocated memory from subrequests
    -     - merge notes, headers_out and err_headers_out
    +  *) proxy: Fix persistent backend connections.
    +     PR 43472 [Ruediger Pluem]
     
    -  *) changed status check mask in proxy_http.c from "HTTP/#.# ### *" to
    -     "HTTP/#.# ###*" to be more lenient about what we accept.
    -     [Chuck Murcko]
    +  *) mod_deflate: initialise inflate-out filter correctly when the
    +     first brigade contains no data buckets.
    +     PR 43512 [Nick Kew]
     
    -  *) more proxy FTP bug fixes:
    -     - Changed send_dir() to remove user/passwd from displayed URL.
    -     - Changed login error messages to be more descriptive.
    -     - remove setting of SO_DEBUG socket option
    -     - Make ftp_getrc() more lenient about multiline responses,
    -       specifically, 230 responses which don't have continuation 230-
    -       on each line). These seem to be all NT FTP servers, and while
    -       perhaps questionable, they appear to be legal by RFC 959.
    -     - Add missing kill_timeout() after transfer to user completes.
    -     [Chuck Murcko]
    +  *) mod_proxy_ajp: Ignore any ajp13 flush packets received before
    +     we send the response headers. See Tomcat PR 43478.
    +     [Jim Jagielski]
     
    -  *) Fixed problem where a busy server could hang when restarting
    -     after being sent a SIGHUP due to child processes not exiting.
    -     [Marc Slemko]
    +  *) mod_proxy_balancer: Do not reset lbstatus, lbfactor and lbset when
    +     starting a new child.
    +     PR 39907 [Vinicius Petrucci <vpetrucci gmail.com>, Ruediger Pluem]
     
    -  *) Modify mod_include escaping so a '\' only signifies an escaped
    -     character if the next character is one that needs
    -     escaping.  [Ben Laurie]
    +  *) mod_proxy_http: Propagate Proxy-Authorization header correctly.
    +     PR 25947 [Nick Kew]
     
    -  *) Eliminated possible infinite loop in mod_imap when relative URLs are
    -     used with a 'base' directive that does not have a '/' in it.
    -     [Marc Slemko, reported by Onno Witvliet <onno tc.hsa.nl>]
    +  *) mod_proxy_ajp: Differentiate within AJP between GET and HEAD
    +     requests. PR 43060 [Jim Jagielski]
     
    -  *) Reduced the default timeout from 1200 seconds to 300, and the
    -     one in the sample configfile from 400 to 300.  [Marc Slemko]
    +  *) Don't send spurious "100 Continue" response lines.
    +     PR 38014 [Basant Kumar Kukreja <basant.kukreja sun.com>]
     
    -  *) Stop vbprintf from crashing if given a NULL string pointer;
    -     print (null) instead.  [Ken Coar]
    +  *) mod_proxy_ftp: Don't segfault on bad line in FTP listing
    +     PR 40733 [Ulf Harnhammar <metaur telia.com>]
     
    -  *) Don't disable Nagle algorithm if system doesn't have TCP_NODELAY.
    -     [Marc Slemko and Roy Fielding]
    +  *) mod_proxy: escape error-notes correctly
    +     PR 40952 [Thijs Kinkhorst <thijs debian.org>]
     
    -  *) Fixed problem with mod_cgi-generated internal redirects trying to
    -     read the request message-body twice. [Archie Cobbs and Roy Fielding]
    +  *) mod_proxy: check ProxyBlock for all blocked addresses
    +     PR 36987 [Timo Viipuri <timo.viipuri f-secure.com>]
     
    -  *) Reduced timeout on lingering close, removed possibility of a blocked
    -     read causing the child to hang, and stopped logging of errors if
    -     the socket is not connected (reset by client).  [Roy Fielding]
    +  *) mod_proxy: Don't lose bytes when a response line arrives in small chunks.
    +     PR 40894 [Andrew Rucker Jones <arjones simultan.dyndns.org>]
     
    -  *) Rearranged main child loop to remove duplication of code in
    -     select/accept and keep-alive requests, fixed several bugs regarding
    -     checking scoreboard_image for exit indication and failure to
    -     account for all success conditions and trap all error conditions,
    -     prevented multiple flushes before closing the socket; close the entire
    -     socket buffer instead of just one descriptor, prevent logging of
    -     EPROTO and ECONNABORTED on platforms where supported, and generally
    -     improved readability.  [Roy Fielding]
    +Changes with Apache 2.2.6
     
    -  *) Extensive performance improvements. Cleaned up inefficient use of
    -     auto initializers, multiple is_matchexp calls on a static string,
    -     and excessive merging of response_code_strings. [Dean Gaudet]
    +  *) SECURITY: CVE-2007-3847 (cve.mitre.org)
    +     mod_proxy: Prevent reading past the end of a buffer when parsing
    +     date-related headers.  PR 41144.
    +     [Davi Arnaut, Nick Kew]
     
    -  *) Added double-buffering to mod_include to improve performance on
    -     server-side includes. [Marc Slemko]
    +  *) SECURITY: CVE-2007-1863 (cve.mitre.org)
    +     mod_cache: Prevent a segmentation fault if attributes are listed in a
    +     Cache-Control header without any value.
    +     [Niklas Edmundsson <nikke acc.umu.se>]
     
    -  *) Several fixes for suexec wrapper. [Randy Terbush]
    -     - Make wrapper work for files on NFS filesystem.
    -     - Fix portability problem of MAXPATHLEN.
    -     - Fix array overrun problem in clean_env().
    -     - Fix allocation of PATH environment variable
    +  *) SECURITY: CVE-2007-3304 (cve.mitre.org)
    +     prefork, worker, event MPMs: Ensure that the parent process cannot
    +     be forced to kill processes outside its process group.
    +     [Joe Orton, Jim Jagielski]
     
    -  *) Removed extraneous blank line is description of mod_status chars.
    -     [Kurt Kohler]
    +  *) SECURITY: CVE-2006-5752 (cve.mitre.org)
    +     mod_status: Fix a possible XSS attack against a site with a public
    +     server-status page and ExtendedStatus enabled, for browsers which
    +     perform charset "detection".  Reported by Stefan Esser.  [Joe Orton]
     
    -  *) Logging of errors from the call_exec routine simply went nowhere,
    -     since the logfile fd has been closed, so now we send them to stderr.
    -     [Harald T. Alvestrand]
    +  *) SECURITY: CVE-2007-1862 (cve.mitre.org)
    +     mod_mem_cache: Copy headers into longer lived storage; header names and
    +     values could previously point to cleaned up storage.  PR 41551.
    +     [Davi Arnaut <davi haxent.com.br>]
     
    -  *) Fixed core dump when DocumentRoot is a CGI.
    -     [Ben Laurie, reported by <geddis tesserae.com>]
    +  *) mod_info: mod_info outputs invalid XHTML 1.0 transitional.
    +     PR 42847 [Rici Lake <rici ricilake.net>]
     
    -  *) Fixed potential file descriptor leak in mod_asis; updated it and
    -     http_core to use pfopen/pfclose instead of fopen/fclose.
    -     [Randy Terbush and Roy Fielding]
    +  *) mod_ssl: Fix spurious hostname mismatch warning for valid
    +     wildcard certificates.  PR 37911.  [Nick Burch <nick torchbox.com>]
     
    -  *) Fixed handling of unsigned ints in ap_snprintf() on some chips such
    -     as the DEC Alpha which is 64-bit but uses 32-bit ints.
    -     [Dean Gaudet and Ken Coar]
    +  *) mod_mem_cache: Increase the minimum and default value for
    +     MCacheMinObjectSize from 0 to 1, as a MCacheMinObjectSize of 0 does not
    +     make sense and leads to a division by zero.  PR 40576.
    +     [Xuekun Hu <xuekun.hu gmail.com>]
     
    -  *) Return a 302 response code to the client when sending a redirect
    -     due to a missing trailing '/' on a directory instead of a 301; now
    -     it is cacheable. [Markus Gyger]
    +  *) mod_cache: Remove expired content from cache that cannot be revalidated.
    +     PR 30370. [Ruediger Pluem]
     
    -  *) Fix condition where, if a bad directive occurs in .htaccess, and
    -     sub_request() goes first to this directory, then log_reason() will
    -     SIGSEGV because it doesn't have initialized r->per_dir_config.
    -     [PR#162 from Petr Lampa, fix by Marc Slemko and Dean Gaudet]
    +  *) mod_proxy_http: accept proxy-sendchunked/proxy-sendchunks as synonymous.
    +     PR 43183 [Brian Rectanus <Brian.Rectanus breach.com>, Vincent Bray]
     
    -  *) Fix handling of lang_index in is_variant_better().  This was
    -     causing problems which resulted in the server sending the
    -     wrong language document in some cases. [Petr Lampa]
    +  *) mod_proxy: Ensure that at least scheme://hostname[:port] matches between
    +     worker and URL when searching for the best fitting worker for a given
    +     URL.  PR 40910 [Ruediger Pluem]
     
    -  *) Remove free() from clean_env() in suexec wrapper. This was nuking
    -     the clean environment on some systems.
    +  *) mod_proxy: Improve network performance by setting APR_TCP_NODELAY
    +     (disable Nagle algorithm) on sockets if implemented.
    +     PR 42871 [Christian BOITEL <christian_boitel yahoo.fr>, Jim Jagielski]
     
    -  *) Tweak byteserving code (e.g. serving PDF files) to work around
    -     bugs in Netscape Navigator and Microsoft Internet Explorer.
    -     Emit Content-Length header when sending multipart/byteranges.
    -     [Alexei Kosut]
    +  *) core: Do not replace a Date header set by a proxied backend server.
    +     PR 40232 [Ruediger Pluem]
     
    -  *) Port to HI-UX/WE2. [Nick Maclaren]
    +  *) mod_proxy: Add a missing assignment in an error checking code path.
    +     PR 40865 [Andrew Rucker Jones <arjones simultan.dyndns.org>]
     
    -  *) Port to HP MPE operating system for HP 3000 machines
    -     [Mark Bixby <markb cccd.edu>]
    +  *) mod_proxy_connect: avoid segfault on DNS lookup failure.
    +     PR 40756 [Trevin Beattie <tbeattie boingo.com>]
     
    -  *) Fixed bug which caused a segmentation fault if only one argument
    -     given to RLimit* directives. [Ed Korthof]
    +  *) mod_proxy: enable Ignore Errors option on ProxyPass Status.
    +     PR 43167 [Francisco Gimeno <kikov kikov.org>
     
    -  *) Continue persistent connection after 204 or 304 response. [Dean Gaudet]
    +  *) mod_proxy_http: Don't try to read body of a HEAD request before
    +     responding.  PR 41644 [Stuart Children <stuart terminus.co.uk>]
     
    -  *) Improved buffered output to the client by delaying the flush decision
    -     until the BUFF code is actually about to read the next request.
    -     This fixes a problem introduced in 1.2b5 with clients that send
    -     an extra CRLF after a POST request. Also improved chunked output
    -     performance by combining writes using writev() and removing as
    -     many bflush() calls as possible.  NOTE: Platforms without writev()
    -     must add -DNO_WRITEV to the compiler CFLAGS, either in Configuration
    -     or Configure, unless we have already done so.  [Dean Gaudet]
    +  *) mod_authnz_ldap: Don't return HTTP_UNAUTHORIZED during authorization when
    +     LDAP authentication is configured but we haven't seen any
    +     'Require ldap-*' directives, allowing authorization to be passed to lower
    +     level modules (e.g. Require valid-user)
    +     PR 43281 [Eric Covener]
     
    -  *) Fixed mod_rewrite bug which truncated the rewritten URL [Marc Slemko]
    +  *) mod_proxy: don't URLencode tilde in path component
    +     PR 38448 [Stijn Hoop <stijn sandcat.nl>]
     
    -  *) Fixed mod_info output corruption bug introduced by buffer overflow
    -     fixes. [Dean Gaudet]
    +  *) proxy/ajp_header.c: Fixed header token string comparisons
    +     Matching of header tokens failed to include the trailing NIL byte
    +     and could misinterpret a longer header token for a shorter.
    +     Additionally, a "Content-Type" comparison was made case insensitive.
    +     [Martin Kraemer]
     
    -  *) Fixed http_protocol to correctly output all HTTP/1.1 headers, including
    -     for the special case of a 304 response.  [Paul Sutton]
    +  *) proxy/ajp_header.c: Backport of an AJP protocol fix for EBCDIC
    +     On EBCDIC machines, the status_line string was incorrectly converted
    +     twice. [Jean-Frederic Clere, Martin Kraemer]
    +
    +  *) mod_dumpio: Fix for correct dumping of traffic on EBCDIC hosts
    +     Data had been incorrectly converted twice, resulting in
    +     garbled log output. [Martin Kraemer]
    +
    +  *) mod_autoindex: Add in Type and Charset options to IndexOptions
    +     directive. This allows the admin to explicitly set the
    +     content-type and charset of the generated page and is therefore
    +     a viable workaround for buggy browsers affected by CVE-2007-4465
    +     (cve.mitre.org). [Jim Jagielski]
     
    -  *) Improved handling of TRACE method by bypassing normal method handling
    -     and header parsing routines; fixed Allow response to always allow TRACE.
    -     [Dean Gaudet]
    +  *) log core: ensure we use a special pool for stderr logging, so that
    +     the stderr channel remains valid from the time plog is destroyed,
    +     until the time the open_logs hook is called again.  [William Rowe]
     
    -  *) Fixed compiler warnings in the regex library. [Dean Gaudet]
    +  *) mod_negotiation: preserve Query String in resolving a type map
    +     PR 33112 [Jørgen Thomsen <apache jth.net>, Nick Kew]
     
    -  *) Cleaned-up some of the generated HTML. [Ken Coar]
    +  *) mod_ssl: Version reporting update; displays 'compiled against'
    +     Apache and build-time SSL Library versions at loglevel [info],
    +     while reporting the run-time SSL Library version in the server
    +     info tags.  Helps to identify a mod_ssl built against one flavor
    +     of OpenSSL but running against another (also adds SSL-C version
    +     number reporting.)  [William Rowe]
     
    -Changes with Apache 1.2b6
    +  *) mime.types: Many updates to sync with IANA registry and common
    +     unregistered types that the owners refuse to register.  Admins
    +     are encouraged to update their installed mime.types file.
    +     PR: 35550, 37798, 39317, 31483 [Roy T. Fielding]
     
    -  *) Allow whitespace in imagemap mapfile coordinates. [Marc Slemko]
    +  *) mod_expires: don't crash on bad configuration data
    +     PR 43213 [Julien Perez <julien.perez epsylonia.net>]
     
    -  *) Fix typo introduced in fix for potential infinite loop around
    -     accept() in child_main(). This change caused the rev to 1.2b6.
    -     1.2b5 was never a public beta.
    +  *) mod_dbd: Introduce configuration groups to allow inheritance by virtual
    +     hosts of database configurations from the main server.  Determine the
    +     minimal set of distinct configurations and share connection pools
    +     whenever possible.  Allow virtual hosts to override inherited SQL
    +     statements.  PR 41302.  [Chris Darroch]
     
    -Changes with Apache 1.2b5
    +  *) mod_dbd: Create memory sub-pools for each DB connection and close
    +     DB connections in a pool cleanup function.  Ensure prepared statements
    +     are destroyed before DB connection is closed.  When using reslists,
    +     prevent segfaults when child processes exit, and stop memory leakage
    +     of ap_dbd_t structures.  Avoid use of global s->process->pool, which
    +     isn't destroyed by exiting child processes in most multi-process MPMs.
    +     PR 39985.  [Chris Darroch, Nick Kew]
     
    -  *) Change KeepAlive semantics (On|Off instead of a number), add
    -     MaxKeepAliveRequests directive. [Alexei Kosut]
    +  *) mod_dbd: Handle error conditions in dbd_construct() properly.
    +     Simplify ap_dbd_open() and use correct arguments to apr_dbd_error()
    +     when non-threaded.  Register correct cleanup data in non-threaded
    +     ap_dbd_acquire() and ap_dbd_cacquire().  Clean up configuration data
    +     and merge function.  Use ap_log_error() wherever possible.
    +     [Chris Darroch, Nick Kew]
     
    -  *) Various NeXT compilation patches, as well as a change in
    -     regex/regcomp.c since that file also used a NEXT define.
    -     [Andreas Koenig]
    +  *) mod_dbd: Stash DBD connections in request_config of initial request
    +     only, or else sub-requests and internal redirections may cause
    +     entire DBD pool to be stashed in a single HTTP request.  [Chris Darroch]
     
    -  *) Allow * to terminate the end of a directory match in mod_dir.
    -     Allows /~* to match for both /~joe and /~joe/. [David Bronder]
    +  *) main core: Emit errors during the initial apr_app_initialize()
    +     or apr_pool_create() (when apr-based error reporting is not ready).
    +     [William Rowe, Jeff Trawick]
     
    -  *) Don't call can_exec() if suexec_enabled. Calling this requires
    -     scripts executed by the suexec wrapper to be world executable, which
    -     defeats one of the advantages of running the wrapper. [Randy Terbush]
    +  *) log core: fix the new piped logger case where we couldn't connect
    +     the replacement stderr logger's stderr to the NULL stdout stream.
    +     Continue in this case, since the previous alternative of no error
    +     logging at all (/dev/null) is far worse. [William Rowe]
     
    -  *) Portability Fix: IRIX complained with 'make clean' about *pure* (removed)
    -     [Jim Jagielski]
    +  *) mpm_winnt: Prevent the parent-child pipe from leaking into other
    +     spawned processes, and ensure we have a /Device/null handle for
    +     stdout when running as-a-service.  [William Rowe]
     
    -  *) Migration from sprintf() to snprintf() to avoid buffer
    -     overflows. [Marc Slemko]
    +  *) mod_ldap: Avoid possible crashes, hangs, and busy loops due to
    +     improper merging of the cache lock in vhost config
    +     PR 43164 [Eric Covener]
     
    -  *) Provide portable snprintf() implementation (ap_snprintf)
    -     as well as *cvt family. [Jim Jagielski]
    +  *) ApacheMonitor: Fix Windows Vista detection. [Mladen Turk]
     
    -  *) Portability Fix: NeXT lacks unistd.h so we wrap it's inclusion
    -     [Jim Jagielski]
    +  *) mod_deflate: fix protocol handling in deflate input filter
    +     PR 23287 [Nick Kew]
     
    -  *) Remove mod_fastcgi.c from the distribution. This module appears
    -     to be maintained more through the Open Market channels and should
    -     continue to be easily available at http://www.fastcgi.com/
    +  *) mime.types: add Registered Javascript/ECMAScript MIME types (RFC4329)
    +     PR 40299 [Dave Hodder <dmh dmh.org.uk>]
     
    -  *) Fixed bug in modules/Makefile that wouldn't allow building in more
    -     than one subdirectory (or cleaning, either). [Jeremy Laidman]
    +  *) mod_filter: fix integer comparisons in dispatch rules
    +     PR 41835 [Nick Kew]
     
    -  *) mod_info assumed that the config files were relative to ServerRoot.
    -     [Ken the Rodent]
    +  *) mod_filter: fix merging of ! and = in FilterChain
    +     PR 42186 [Issac Goldstand <margol beamartyr.net>]
     
    -  *) CGI scripts called as an error document resulting from failed
    -     CGI execution would hang waiting for POST'ed data. [Rob Hartill]
    +  *) mod_deflate: don't try to process metadata buckets as data.  what should
    +     have been a 413 error was logged as a 500 and a blank screen appeared
    +     at the browser.
    +     [Greg Ames, Ruediger Pluem]
     
    -  *) Log reason when mod_dir returns access HTTP_FORBIDDEN
    -     [Ken the Rodent]
    +  *) mod_cgi, mod_cgid: Fix use of CGI scripts as ErrorDocuments.
    +     PR 39710.  [Paul Querna, Ruediger Pluem]
     
    -  *) Properly check errno to prevent display of a directory index
    -     when server receives a long enough URL to confuse stat().
    -     [Marc Slemko]
    +  *) mod_proxy: Allow to use different values for sessionid
    +     in url encoded id and cookies. PR 41897. [Jean-Frederic Clere]
     
    -  *) Several security enhancements to suexec wrapper. It is _highly_
    -     recommended that previously installed versions of the wrapper
    -     be replaced with this version.  [Randy Terbush, Jason Dour]
    +  *) mod_proxy: Fix the 503 returned when session route does
    +     not match any of the balancer members. [Mladen Turk]
     
    -        - ~user execution now properly restricted to ~user's home
    -          directory and below.
    -        - execution restricted to UID/GID > 100
    -        - restrict passed environment to known variables
    -        - call setgid() before initgroups() (portability fix)
    -        - remove use of setenv() (portability fix)
    +  *) mod_proxy: Added ProxyPassMatch directive, which is similar
    +     to ProxyPass but takes a regex local path prefix. [Jim Jagielski]
     
    -  *) Add HTTP/1.0 response forcing. [Ben Laurie]
    +  *) mod_cache: Do not set Date or Expires when they are missing from
    +     the original response or are invalid.  [Justin Erenkrantz]
     
    -  *) Add access control via environment variables. [Ben Laurie]
    +  *) mod_cache: Correctly handle HEAD requests on expired cache content.
    +     PR 41230.  [Niklas Edmundsson <nikke acc.umu.se>]
     
    -  *) Add rflush() function. [Alexei Kosut]
    +  *) mod_cache: Let Cache-Control max-age set the expiration of the cached
    +     representation if Expires is not set.  [Justin Erenkrantz]
     
    -  *) remove duplicate pcalloc() call in new_connection().
    +  *) mod_cache: Allow caching of requests with query arguments when
    +     Cache-Control max-age is explicitly specified.  [Justin Erenkrantz]
     
    -  *) Fix incorrect comparison which could allow number of children =
    -     MaxClients + 1 if less than HARD_SERVER_LIMIT. Also fix potential
    -     problem if StartServers > HARD_SERVER_LIMIT. [Ed Korthof]
    +  *) mod_disk_cache: Allow Vary'd responses to be refreshed properly.
    +     [Justin Erenkrantz]
     
    -  *) Updated support for OSes (MachTen, ULTRIX, Paragon, ISC, OpenBSD
    -     AIX PS/2, CONVEXOS. [Jim Jagielski]
    +  *) mod_proxy: Print the correct error message for erroneous configured
    +     ProxyPass directives. PR 40439.  [Takashi Sato <serai lans-tv.com>]
     
    -  *) Replace instances of inet_ntoa() with inet_addr() for ProxyBlock.
    -     It's more portable. [Martin Kraemer]
    +  *) mod_so: Provide more helpful LoadModule feedback when an error occurs.
    +     [William Rowe]
     
    -  *) Replace references to make in Makefile.tmpl with $(MAKE).
    -     [Chuck Murcko]
    +  *) mod_alias: Accept path components (URL part) in Redirects. PR 35314.
    +     [Nick Kew]
     
    -  *) Add ProxyBlock directive w/IP address caching. Add IP address
    -     caching to NoCache directive as well. ProxyBlock works with all
    -     handlers; NoCache now also works with FTP for anonymous logins.
    -     Still more code cleanup. [Chuck Murcko]
    +  *) mod_headers: Allow % at the end of a Header value. PR 36609.
    +     [Nick Kew, Ruediger Pluem]
     
    -  *) Add "header parse" API hook [Ben Laurie]
    +  *) mod_cache: Use the same cache key throughout the whole request processing
    +     to handle escaped URLs correctly.  PR 41475.  [Ruediger Pluem]
     
    -  *) Fix byte ordering problems for REMOTE_PORT [Chuck Murcko]
    +  *) mod_cache: Add CacheIgnoreQueryString directive. PR 41484.
    +     [Fredrik Widlund <fredrik.widlund qbrick.com>]
     
    -  *) suEXEC wrapper was freeing memory that had not been malloc'ed.
    +  *) mod_cache: While serving a cached entity ensure that filters that have
    +     been applied to this cached entity before saving it to the cache are not
    +     applied again. PR 40090.  [Ruediger Pluem]
     
    -  *) Correctly allow access and auth directives in <Files> sections in
    -     server config files. [Alexei Kosut]
    +  *) mod_cache: Correctly cache objects whose URL query string has been
    +     modified by mod_rewrite. PR 40805.  [Ruediger Pluem]
     
    -  *) Fix bug with ServerPath that could cause certain files to be not
    -     found by the server. [Alexei Kosut]
    +  *) HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone.  Only
    +     processing of error responses (4xx, 5xx) will be altered. PR 39245.
    +     [Jeff Trawick, Bart van der Schans <schans hippo.nl>]
     
    -  *) Fix handling of ErrorDocument so that it doesn't remove a trailing
    -     double-quote from text and so that it properly checks for unsupported
    -     status codes using the new index_of_response interface. [Roy Fielding]
    +  *) htdbm: Enable crypt support on platforms with crypt() but not
    +     <crypt.h>, such as z/OS.  [David Jones <oscaremma gmail.com>]
     
    -  *) Multiple fixes to the lingering_close code in order to avoid being
    -     interrupted by a stray timeout, to avoid lingering on a connection
    -     that has already been aborted or never really existed, to ensure that
    -     we stop lingering as soon as any error condition is received, and to
    -     prevent being stuck indefinitely if the read blocks.  Also improves
    -     reporting of error conditions.  [Marc Slemko and Roy Fielding]
    +  *) mod_ssl: initialize thread locks before initializing the hardware
    +     acceleration library, so the latter can make use of the former.
    +     PR 20951.  [<adunn at ncipher.com>]
     
    -  *) Fixed initialization of parameter structure for sigaction.
    -     [<mgyger itr.ch>, Adrian Filipi-Martin]
    +  *) ab.c: Correct behavior of HTTP request headers sent by ab
    +     in presence of -H command-line overrides. PR 31268, 26554.
    +     [Arvind Srinivasan <arvind.srinivasan  sun.com>]
     
    -  *) Fixed reinitializing the parameters before each call to accept and
    -     select, and removed potential for infinite loop in accept.
    -     [Roy Fielding, after useful PR from <adrian virginia.edu>]
    +  *) ab.c: The apr_port_t type is unsigned, but ab was using a
    +     signed format code in its reports. PR 42070.
    +     [Takashi Sato <serai  lans-tv.com>]
     
    -  *) Fixed condition where, if a child fails to fork, the scoreboard would
    -     continue to say SERVER_STARTING forever. Eventually, the main process
    -     would refuse to start new children because count_idle_servers() will
    -     count those SERVER_STARTING entries and will always report that there
    -     are enough idle servers. [Phillip Vandry]
    +  *) mod_ldap: Remove the hardcoded size limit parameter for
    +     ldap_search_ext_s and replace it with an APR_ defined value that
    +     is set according to the LDAP SDK being used, resolving a problem
    +     with SDKs that define LDAP_NO_LIMIT to something other than -1.
    +     [David Jones <oscaremma gmail com>]
     
    -  *) Fixed bug in bcwrite regarding failure to account for partial writes.
    -     Avoided calling bflush() when the client is pipelining requests.
    -     Removed unnecessary flushes from http_protocol. [Dean Gaudet]
    +  *) core: Correct a regression since 2.0.x in the handling of AllowOverride
    +     Options. PR 41829.  [Torsten Förtsch <torsten.foertsch gmx.net>]
     
    -  *) Added description of "." mode in server-status [Jim Jagielski]
    +  *) mod_proxy_http: Handle request bodies larger than 2 GB by converting
    +     the Content-Length header of the request correctly. PR 40883.
    +     [Ruediger Pluem, toadie <toadie643 gmail.com>]
     
    -Changes with Apache 1.2b4
    +  *) mod_proxy: Fix some proxy setting inheritance problems (eg:
    +     ProxyTimeout). PR 11540.  [Stuart Children <stuart terminus.co.uk>]
     
    -  *) Fix possible race condition in accept_mutex_init() that
    -     could leave a small security hole open allowing files to be
    -     overwritten in cases where the server UID has write permissions.
    -     [Marc Slemko]
    +  *) Unix MPMs: Catch SIGFPE so that exception hooks and CoreDumpDirectory
    +     can work after that terminating signal.
    +     [Eric Covener]
     
    -  *) Fix awk compatibilty problem in Configure. [Jim Jagielski]
    +  *) Win32: Makefile.win will now build with MS VC 8 (Visual Studio 2005)
    +     including embedding the .manifest information into each binary.
    +     [William Rowe]
     
    -  *) Fix portablity problem in util_script where ARG_MAX may not be
    -     defined for some systems.
    +There was no Apache 2.2.5
     
    -  *) Add changes to allow compilation on Machten 4.0.3 for PowerPC.
    -     [Randal Schwartz]
    +Changes with Apache 2.2.4
     
    -  *) OS/2 changes to support an MMAP style scoreboard file and UNIX
    -     style magic #! token for better script portability. [Garey Smiley]
    +  *) mod_isapi: Correctly present SERVER_PORT_SECURE.
    +     PR: 40573.  [Matt Eaton <asf divinehawk.com>]
     
    -  *) Fix bug in suexec wrapper introduced in b3 that would cause failed
    -     execution for ~userdir CGI. [Jason Dour]
    +  *) Allow htcacheclean, httxt2dbm, and fcgistarter to link apr/apr-util
    +     statically like the older support programs.
    +     [Eric Covener <covener gmail.com>]
     
    -  *) Fix initgroups() business in suexec wrapper. [Jason Dour]
    +  *) core: Fix NONBLOCK status of listening sockets on restart/graceful
    +     PR 37680.  [Darius Davis <darius-abz free-range.com.au>]
     
    -  *) Fix month off by one in suexec wrapper logging.
    +  *) mod_deflate: Rework inflate output and deflate output filter to fix
    +     several issues: Incorrect handling of flush buckets, potential memory
    +     leaks, excessive memory usage in inflate output filter for large
    +     compressed content. PR 39854.
    +     [Ruediger Pluem, Nick Kew, Justin Erenkrantz]
     
    -Changes with Apache 1.2b3:
    +  *) mod_mem_cache: Memory leak fix: Unconditionally free the buffer.
    +     [Davi Arnaut <davi haxent.com.br>]
     
    -  *) Fix error in mod_cgi which could cause resources not to be properly
    -     freed, or worse. [Dean Gaudet]
    +  *) Allow mod_dumpio to log at other than DEBUG levels via
    +     the new DumpIOLogLevel directive. [Jim Jagielski]
     
    -  *) Fix find_string() NULL pointer dereference. [Howard Fear]
    +  *) rotatelogs: Improve error message for open failures.  PR 39487.
    +     [Joe Orton]
     
    -  *) Add set_flag_slot() at the request of Dirk and others.
    -     [Dirk vanGulik]
    +  *) mod_dbd: share per-request database handles across subrequests
    +     and internal redirects [Chris Darroch]
    +
    +  *) mod_dbd: key connection pools to virtual hosts correctly even when
    +     ServerName is unset/unavailable [Graham Leggett]
    +
    +  *) Better detection and clean up of ldap connection that has been
    +     terminated by the ldap server.  PR 40878.
    +     [Rob Baily <rbaily servicebench com>]
    +
    +  *) mod_mem_cache: Convert mod_mem_cache to use APR memory pool functions
    +     by creating a root pool for object persistence across requests. This
    +     also eliminates the need for custom serialization code.
    +     [Davi Arnaut <davi haxent.com.br>]
    +
    +  *) mod_authnz_ldap: Add an AuthLDAPRemoteUserAttribute directive. If
    +     set, REMOTE_USER will be set to this attribute, rather than the
    +     username supplied by the user. Useful for example when you want users
    +     to log in using an email address, but need to supply a userid instead
    +     to the backend.  [Graham Leggett]
    +
    +  *) mod_cgi and mod_cgid: Don't use apr_status_t error return
    +     from input filters as HTTP return value from the handler.
    +     PR 31759.  [Nick Kew]
    +
    +  *) mod_cache: Eliminate a bogus error in the log when a filter returns
    +     AP_FILTER_ERROR.  [Niklas Edmundsson <nikke acc.umu.se>]
    +
    +  *) core: Fix issue which could cause piped loggers to be orphaned and never
    +     terminate after a graceful restart.  PR 40651.
    +     [Joe Orton, Ruediger Pluem]
    +
    +  *) core: Fix address-in-use startup failure caused by corruption of the list
    +     of listen sockets in some configurations with multiple generic Listen
    +     directives.  [Jeff Trawick]
    +
    +  *) mod_headers: Support regexp-based editing of HTTP headers.  [Nick Kew]
    +
    +  *) mod_proxy: Add explicit flushing feature. When Servlet container sends
    +     AJP body message with size 0, this means that Servlet container has asked
    +     for an explicit flush. Create flush bucket in that case. This feature has
    +     been added to the recent Tomcat versions without breaking the AJP
    +     protocol.  [Mladen Turk]
    +
    +  *) mod_proxy_balancer: Set the new environment variable
    +     BALANCER_ROUTE_CHANGED if a worker with a route different from the one
    +     supplied by the client had been chosen or if the client supplied no
    +     routing information for a balancer with sticky sessions.
    +     [Ruediger Pluem]
    +
    +  *) mod_proxy_balancer: Add information about the route, the sticky session
    +     and the worker used during a request as environment variables. PR 39806.
    +     [Brian <brectanu gmail.com>]
    +
    +  *) mod_proxy: Don't try to use dead backend connection. PR 37770.
    +     [Olivier BOEL <ob dorrboel.com>]
    +
    +  *) mod_proxy_balancer: Extract stickysession routing information contained
    +     as parameter in the URL correctly. PR 40400.
    +     [Ruediger Pluem, Tomokazu Harada <harada sysrdc.ns-sol.co.jp>]
    +
    +  *) mod_proxy_ajp: Added cping/cpong support for the AJP protocol.
    +     A new worker directive ping=timeout will cause CPING packet
    +     to be send expecting CPONG packet within defined timeout.
    +     In case the backend is too busy this will fail instead
    +     sending the full header.  [Mladen Turk]
    +
    +  *) mod_disk_cache: Make sure that only positive integers are accepted
    +     for the CacheMaxFileSize and CacheMinFileSize parameters in the
    +     config file. PR39380.  [Niklas Edmundsson <nikke acc.umu.se>]
    +
    +  *) mod_cache: From RFC3986 (section 6.2.3.) if a URI contains an
    +     authority component and an empty path, the empty path is to be equivalent
    +     to "/". It explicitly cites the following four URIs as equivalents:
    +       http://example.com
    +       http://example.com/
    +       http://example.com:/
    +       http://example.com:80/
    +     [Davi Arnaut <davi haxent.com.br>]
    +
    +  *) mod_cache: Don't cache requests with a expires date in the past;
    +     otherwise mod_cache will always try to cache the URL. This bug
    +     might lead to numerous rename() errors on win32 if the URL was
    +     previously cached. [Davi Arnaut <davi haxent.com.br>]
     
    -  *) Sync mod_rewrite with patch level 10. [Ralf Engelschall]
    +  *) core: Deal with the widespread use of apr_status_t return values
    +     as HTTP status codes, as documented in PR#31759 (a bug shared by
    +     the default handler, mod_cgi, mod_cgid, mod_proxy, and probably
    +     others). PR31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
     
    -  *) Add changes to improve the error message given for invalid
    -     ServerName parameters. [Dirk vanGulik]
    +  *) mod_ext_filter: Handle filter names which include capital letters.
    +     PR 40323.  [Jeff Trawick]
     
    -  *) Add "Authoritative" directive for Auth modules that don't
    -     currently have it. This gives admin control to assign authoritative
    -     control to an authentication scheme and allow "fall through" for
    -     those authentication modules that aren't "Authoritative" thereby
    -     allowing multiple authentication mechanisms to be chained.
    -     [Dirk vanGulik]
    +  *) mod_isapi: Avoid double trailing slashes in HSE_REQ_MAP_URL_TO_PATH
    +     support.  Also corrects the slashes for Windows.
    +     PR 15993.  [William Rowe]
     
    -  *) Remove requirement for ResourceConfig/AccessConfig if not using
    -     the three config file layout. [Randy Terbush]
    +  *) mod_isapi: Handle "HTTP/1.1 200 OK" style status lines correctly, the
    +     token parser worked while the resulting length was misinterpreted.
    +     PR 29098.  [Brock Bland <bbland serena.com>]
     
    -  *) Add PASV mode to mod_proxy FTP handler. [Chuck Murcko]
    +  *) mod_isapi: Return 0 (failure) for more of the various ap_pass_brigade
    +     attempts to stream the response at the client.  Log these as well.
    +     PR 30022, 40470.  [William Rowe, Matt Eaton <asf divinehawk.com>]
     
    -  *) Changes to suexec wrapper to fix the following problems:
    -     1.  symlinked homedirs will kill ~userdirs.
    -     2.  initgroups() on Linux 2.0.x clobbers gr->grid.
    -     3.  CGI command lines paramters problems
    -     4.  pw-pwdir for "docroot check" still the httpd user's pw record.
    -    [Randy Terbush, Jason Dour]
    +  *) mod_isapi: Ensure we walk through all the methods the developer may have
    +     employed to report their HTTP status result code.  PR 16637 30033 28089
    +     [Matt Lewandowsky <matt iamcode.net>, William Rowe]
     
    -  *) Change create_argv() to accept variable arguments. This fixes
    -     a problem where arguments were not getting passed to the CGI via
    -     argv[] when the suexec wrapper was active. [Randy Terbush, Jake Buchholz]
    +  *) mod_echo: Fix precedence problem in if statement. PR 40658.
    +     [Larry Cipriani <lvc lucent.com>]
     
    -  *) Collapse multiple slashes in path URLs to properly apply
    -     handlers defined by <Location>. [Alexei Kosut]
    +  *) mod_mime_magic: Fix precedence problem in if statement. PR 40656.
    +     [Larry Cipriani <lvc lucent.com>]
     
    -  *) Define a sane set of DEFAULT_USER and DEFAULT_GROUP values for AIX.
    +  *) The full server version information is now included in the error log at
    +     startup as well as server status reports, irrespective of the setting
    +     of the ServerTokens directive.  ap_get_server_version() is now
    +     deprecated, and is replaced by ap_get_server_banner() and
    +     ap_get_server_description().  [Jeff Trawick]
     
    -  *) Improve the accuracy of request duration timings by setting
    -     r->request_time in read_request_line() instead of read_request().
    -     [Dean Gaudet]
    +  *) mod_proxy_balancer: Workers can now be defined as part of
    +     a balancer cluster "set" in which members of a lower-numbered set
    +     are preferred over higher numbered ones.  [Jim Jagielski]
     
    -  *) Reset timeout while reading via get_client_block() in mod_cgi.c
    -     Fixes problem with timed out transfers of large files. [Rasmus Lerdorf]
    +  *) mod_proxy_balancer: Workers can now be defined as "hot standby" which
    +     will only be used if all other workers are unusable (eg: in
    +     error or disabled). Also, the balancer-manager displays the election
    +     count and I/O counts of all workers.  [Jim Jagielski]
     
    -  *) Add the ability to pass different Makefile.tmpl files to Configure
    -     using the -make flag. [Rob Hartill]
    +  *) mod_proxy_ajp: Close connection to backend if reading of request body
    +     fails. PR 40310.  [Ian Abel <ianabel mxtelecom.com>]
     
    -  *) Fix coredump triggered when sending a SIGHUP to the server caused
    -     by an assertion failure, in turn caused by an uninitialised field in a
    -     listen_rec.
    -     [Ben Laurie]
    +  *) mod_proxy_balancer: Retry worker chosen by route / redirect worker if
    +     it is in error state before sending "Service Temporarily Unavailable".
    +     PR 38962.  [Christian Boitel <cboitel lfdj.com>]
     
    -  *) Add FILEPATH_INFO variable to CGI environment, which is equal to
    -     PATH_INFO from previous versions of Apache (in certain situations,
    -     Apache 1.2's PATH_INFO will be different than 1.1's). [Alexei Kosut]
    -     [later removed in 1.2b11]
    +Changes with Apache 2.2.3
     
    -  *) Add rwrite() function to API to allow for sending strings of
    -     arbitrary length. [Doug MacEachern]
    +  *) SECURITY: CVE-2006-3747 (cve.mitre.org)
    +     mod_rewrite: Fix an off-by-one security problem in the ldap scheme
    +     handling.  For some RewriteRules this could lead to a pointer being
    +     written out of bounds.  Reported by Mark Dowd of McAfee.
    +     [Mark Cox]
     
    -  *) Remove rlim_t typedef for NetBSD. Do older versions need this?
    +  *) Win32: Minor fixes to build more cleanly under Visual Studio 2005
    +     with command line builds.  [William Rowe]
     
    -  *) Defined rlim_t and WANTHSREGEX=yes and fixed waitpid() substitute for
    -     NeXT. [Jim Jagielski]
    +  *) mod_authn_alias: Add a check to make sure that the base provider and the
    +     alias names are different and also that the alias has not been registered
    +     before. PR 40051. [Brad Nicholes]
     
    -  *) Removed recent modification to promote the status code on internal
    -     redirects, since the correct fix was to change the default log format
    -     in mod_log_config so that it outputs the original status. [Rob Hartill]
    +  *) mod_authnz_ldap: Fix a problem with invalid auth error detection for LDAP
    +     client SDKs that don't support the LDAP_SECURITY_ERROR macro. PR 39529.
    +     [Ray Price <dohrayme yahoo.com>, Josh Fenlason <jfenlason ptc.com>]
     
    -Changes with Apache 1.2b2:
    +  *) mod_cache: Do not overwrite the Content-Type in the cache, for
    +     successfully revalidated cached objects. PR 39647. [Ruediger Pluem]
     
    -  *) Update set_signals() to use sigaction() for setting handlers.
    -     This appears to fix a re-entrant problem in the seg_fault()
    -     bus_error() handlers. [Randy Terbush]
    +  *) mod_speling: Add directive to deal with case corrections only
    +     and ignore other misspellings [Olivier Thereaux  <ot w3.org>]
     
    -  *) Changes to allow mod_status compile for OS/2 [Garey Smiley]
    +  *) mod_dbd: Fix dependence on virtualhost configuration in
    +     defining prepared statements (possible segfault at startup
    +     in user modules such as mod_authn_dbd).  [Nick Kew]
     
    -  *) changes for DEC AXP running OSF/1 v3.0. [Marc Evans]
    +  *) Add optional 'scheme://' prefix to ServerName directive,
    +     allowing correct determination of the canonical server URL
    +     for use behind a proxy or offload device handling SSL; fixing
    +     redirect generation in those cases. PR 33398. [Sander Temme]
     
    -  *) proxy_http.c bugfixes:  [Chuck Murcko]
    -        1) fixes possible NULL pointer reference w/NoCache
    -        2) fixes NoCache behavior when using ProxyRemote (ProxyRemote
    -           host would cache nothing if it was in the local domain,
    -           and the local domain was in the NoCache list)
    -        3) Adds Host: header when not available
    -        4) Some code cleanup and clarification
    +  *) Added server_scheme field to server_rec for above. Minor MMN bump.
    +     [Sander Temme]
     
    -  *) mod_include.c bugfixes:
    -        1) Fixed an ommission that caused include variables to not
    -           be parsed in config errmsg directives [Howard Fear]
    -        2) Remove HAVE_POSIX_REGEX cruft [Alexei Kosut]
    -        3) Patch to fix compiler warnings [<perrot lal.in2p3.fr>]
    -        4) Allow backslash-escaping to all quoted text
    -           [Ben Yoshino <ben wiliki.eng.hawaii.edu>]
    -        5) Pass variable to command line if not set in XSSI's env
    -           [Howard Fear]
    +  *) mod_cache: Make caching of reverse SSL proxies possible again. PR 39593.
    +     [Ruediger Pluem, Joe Orton]
     
    -  *) Fix infinite loop when processing Content-language lines in
    -     type-map files. [Alexei Kosut]
    +  *) Worker MPM: On graceless shutdown or restart, send signals to
    +     each worker thread to wake them up if they're polling on a
    +     Keep-Alive connection.  PR 38737.  [Chris Darroch]
     
    -  *) Closed file-globbing hole in test-cgi script. [Brian Behlendorf]
    +  *) worker and event MPMs: fix excessive forking if fork() or child_init
    +     take a long time.  PR 39275.
    +     [Greg Ames, Jeff Trawick, Chris Darroch <chrisd pearsoncmg.com> ]
     
    -  *) Fixed problem in set_[user|group] that prevented CGI execution
    -     for non-virtualhosts when suEXEC was enabled. [Randy Terbush]
    +  *) configure: Add "--with-included-apr" flag to force use of the
    +     bundled version of APR at build time.  [Joe Orton]
     
    -  *) Added PORTING information file.  [Jim Jagielski]
    +  *) Respect GracefulShutdownTimeout in the worker and event MPMs.
    +     [Chris Darroch, Garrett Rooney]
     
    -  *) Added definitions for S_IWGRP and S_IWOTH to conf.h [Ben Laurie]
    +  *) mod_mem_cache: Set content type correctly when delivering data from
    +     cache. PR 39266. [Ruediger Pluem]
     
    -  *) Changed default group to "nogroup" instead of "nobody" [Randy Terbush]
    +  *) mod_autoindex: Fix filename escaping with FancyIndexing disabled.
    +     PR 38910.  [Robby Griffin <rmg terc.edu>]
     
    -  *) Fixed define typo of FCNTL_SERIALIZED_ACCEPT where
    -     USE_FCNTL_SERIALIZED_ACCEPT was intended.
    +  *) mod_charset_lite: Bypass translation when the source and dest charsets
    +     are the same. [Jeff Trawick]
     
    -  *) Fixed additional uses of 0xffffffff where INADDR_NONE was intended,
    -     which caused problems of systems where socket s_addr is >32bits.
    +Changes with Apache 2.2.2
     
    -  *) Added comment to explain (r->chunked = 1) side-effect in
    -     http_protocol.c [Roy Fielding]
    +  *) mod_deflate: work correctly in an internal redirect
    +     [Brian J. France <list firehawksystems com>]
     
    -  *) Replaced use of index() in mod_expires.c with more appropriate
    -     and portable isdigit() test.  [Ben Laurie]
    +  *) mod_proxy_balancer: Initialize members of a balancer correctly.
    +     PR 38227. [James A. Robinson <jim.robinson stanford.edu>]
     
    -  *) Updated Configure for ...
    -        OS/2          (DEF_WANTHSREGEX=yes, other code changes)
    -        *-dg-dgux*    (bad pattern match)
    -        QNX           (DEF_WANTHSREGEX=yes)
    -        *-sunos4*     (DEF_WANTHSREGEX=yes, -DUSEBCOPY)
    -        *-ultrix      (new)
    -        *-unixware211 (new)
    -     and added some user diagnostic info.  [Ben Laurie]
    +  *) mod_proxy: Do not release connections from connection pool twice.
    +     PR 38793. [Ruediger Pluem, matthias <mk-asf gigacodes.de>]
     
    -  *) In helpers/CutRule, replaced "cut" invocation with "awk" invocation
    -     for better portability. [Jim Jagielski]
    +  *) core: Prevent reading uninitialized memory while reading a line of
    +     protocol input.  PR 39282. [Davi Arnaut <davi haxent com br>]
     
    -  *) Updated helpers/GuessOS for ...
    -        SCO 5            (recognize minor releases)
    -        SCO UnixWare     (braindamaged uname, whatever-whatever-unixware2)
    -        SCO UnixWare 2.1.1      (requires a separate set of #defines in conf.h)
    -        IRIX64           (-sgi-irix64)
    -        ULTRIX           (-unknown-ultrix)
    -        SINIX            (-whatever-sysv4)
    -        NCR Unix         (-ncr-sysv4)
    -     and fixed something in helpers/PrintPath  [Ben Laurie]
    +  *) mod_dbd: Update defaults, improve error reporting.
    +     [Chris Darroch <chrisd pearsoncmg com>, Nick Kew]
     
    -Changes with Apache 1.2b1
    +  *) mod_dbd: Create own pool and mutex to avoid problem use of
    +     process pool in request processing.
    +     [Chris Darroch <chrisd pearsoncmg com>]
     
    -  *) Not listed. See <http://www.apache.org/docs/new_features_1_2.html>
    +  *) HTML-escape the Expect error message.  Not classed as security as
    +     an attacker has no way to influence the Expect header a victim will
    +     send to a target site.  Reported by Thiago Zaninotti
    +     <thiango nstalker.com>. [Mark Cox]
     
    -Changes with Apache 1.1.1
    +  *) htdbm: Fix crash processing -d option in 64-bit mode on HP-UX.
    +     [Jeff Trawick]
     
    -  *) Fixed bug where Cookie module would make two entries in the
    -     logfile for each access [Mark Cox]
    +  *) htdbm: Warn the user when adding a plaintext password on a platform
    +     where it wouldn't work with the server (i.e., anywhere that has
    +     crypt()).  [Jeff Trawick]
     
    -  *) Fixed bug where Redirect in .htaccess files would cause memory
    -     leak. [Nathan Neulinger]
    +  *) mod_proxy: don't reuse a connection that may be to the wrong backend
    +     PR 39253 [Ruediger Pluem]
     
    -  *) MultiViews now works correctly with AddHandler [Alexei Kosut]
    +  *) Default handler: Don't return output filter apr_status_t values.
    +     PR 31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
     
    -  *) Problems with mod_auth_msql fixed [Dirk vanGulik]
    +Changes with Apache 2.2.1 (not released)
     
    -  *) Fix misspelling of "Anonymous_Authorative" directive in mod_auth_anon.
    +  *) SECURITY: CVE-2005-3357 (cve.mitre.org)
    +     mod_ssl: Fix a possible crash during access control checks if a
    +     non-SSL request is processed for an SSL vhost (such as the
    +     "HTTP request received on SSL port" error message when an 400
    +     ErrorDocument is configured, or if using "SSLEngine optional").
    +     PR 37791.  [Rüdiger Plüm, Joe Orton]
     
    -Changes with Apache 1.1.0
    +  *) SECURITY: CVE-2005-3352 (cve.mitre.org)
    +     mod_imagemap: Escape untrusted referer header before outputting
    +     in HTML to avoid potential cross-site scripting.  Change also
    +     made to ap_escape_html so we escape quotes.  Reported by JPCERT.
    +     [Mark Cox]
     
    -  *) Bring NeXT support up to date. [Takaaki Matsumoto]
    +  *) mod_proxy_ajp: Flushing of the output after each AJP chunk is now
    +     configurable at runtime via the 'flushpackets' and 'flushwait' worker
    +     params. Minor MMN bump. [Jim Jagielski]
     
    -  *) Bring QNX support up to date. [Ben Laurie]
    +  *) mod_proxy: Fix incorrect usage of local and shared worker init.
    +     PR 38403. [Jim Jagielski]
     
    -  *) Make virtual hosts default to main server keepalive parameters.
    -     [Alexei Kosut, Ben Laurie]
    +  *) mod_isapi: Fix compiler errors on Unix platforms.
    +     [William Rowe]
     
    -  *) Allow ScanHTMLTitles to work with lowercase <title> tags. [Alexei Kosut]
    +  *) mod_proxy_http: Do send keep-alive header if the client sent
    +     connection: keep-alive and do not close backend connection if the client
    +     sent connection: close. PR 38524. [Ruediger Pluem, Joe Orton]
     
    -  *) Fix missing address family for connect, also remove unreachable statement
    -     in mod_proxy. [Ben Laurie]
    +  *) mod_disk_cache: Return the correct error codes from bucket read
    +     failures, instead of APR_EGENERAL.
    +     [Brian Akins <brian.akins turner.com>]
     
    -  *) mod_env now turned on by default in Configuration.tmpl.
    +  *) Add APR/APR-Util Compiled and Runtime Version numbers to the
    +     output of 'httpd -V'. [William Rowe]
     
    -  *) Bugs which were fixed:
    -        a) yet more mod_proxy bugs [Ben Laurie]
    -        b) CGI works again with inetd [Alexei Kosut]
    -        c) Leading colons were stripped from passwords [<osm interguide.com>]
    -        d) Another fix to multi-method Limit problem [<jk tools.de>]
    +  *) http: If a connection is aborted while waiting for a chunked line,
    +     flag the connection as errored out.  [Justin Erenkrantz]
     
    -Changes with Apache 1.1b4
    +  *) core: Reject invalid Expect header immediately. PR 38123.
    +     [Ruediger Pluem]
     
    -  *) r->bytes_sent variable restored. [Robert Thau]
    +  *) Fix mis-shifted 32 bit scope, masked to 64 bits as a method.
    +     [Will Rowe, Joe Orton]
     
    -  *) Previously broken multi-method <Limit> parsing fixed. [Robert Thau]
    +  *) mod_proxy: Fix KeepAlives not being allowed and set to
    +     backend servers. PR 38602. [Ruediger Pluem, Jim Jagielski]
     
    -  *) More possibly unsecure programs removed from the support directory.
    +  *) Fix instdso.sh "sed syntax error" installation issue on some
    +     platforms.  PR 38108.  [Masaoki Kobayashi <masaoki techfirm.co.jp>]
     
    -  *) More mod_auth_msql authentication improvements.
    +  *) mod_ssl: Fix possible crashes in shmcb with gcc 4 on platforms
    +     requiring word-aligned pointers.  PR 38838.  [Joe Orton]
     
    -  *) VirtualHosts based on Host: headers no longer conflict with the
    -     Listen directive.
    +  *) mod_proxy: If we get an error reading the upstream response,
    +     close the connection.  [Justin Erenkrantz, Roy T. Fielding,
    +     Jim Jagielski, Ruediger Pluem]
     
    -  *) OS/2 compatibility enhancements. [Gary Smiley]
    +  *) mod_proxy_ajp: Support common headers of the AJP protocol in responses.
    +     PR 38340. [Aleksey Pesternikov <apesternikov yahoo.com>]
     
    -  *) POST now allowed to directory index CGI scripts.
    +  *) mod_proxy_balancer: Do not overwrite the status of initialized workers
    +     and respect the configured status of uninitilized workers when creating
    +     a new child process. [Ruediger Pluem]
     
    -  *) Actions now work with files of the default type.
    +  *) mod_proxy_ajp: Crosscheck the length of the body chunk with the length of
    +     the ajp message to prevent mod_proxy_ajp from reading beyond the buffer
    +     boundaries and thus revealing possibly sensitive memory contents to the
    +     client. [Ruediger Pluem]
     
    -  *) Bugs which were fixed:
    -        a) more mod_proxy bugs
    -        b) early termination of inetd requests
    -        c) compile warnings on several systems
    -        d) problems when scripts stop reading output early
    +  *) Ensure that the proper status line is written to the client, fixing
    +     incorrect status lines caused by filters which modify r->status without
    +     resetting r->status_line, such as the built-in byterange filter.
    +     [Jeff Trawick]
     
    -Changes with Apache 1.1b3
    +  *) mod_speling: Stop crashing with certain non-file requests.
    +     [Jeff Trawick]
     
    -  *) Much of cgi-bin and all of cgi-src has been removed, due to
    -     various security holes found and that we could no longer support
    -     them.
    +  *) mod_cache: Make caching of reverse proxies possible again. PR 38017.
    +     [Ruediger Pluem]
     
    -  *) The "Set-Cookie" header is now special-cased to not merge multiple
    -     instances, since certain popular browsers can not handle multiple
    -     Set-Cookie instructions in a single header. [Paul Sutton]
    +  *) Modify apr[util] .h detection to avoid breakage on VPATH builds
    +     using Solaris make (amoung others) and avoid breakage in ./buildconf
    +     when srclib/apr[-util] are symlinks rather than directories proper.
    +     [William Rowe]
     
    -  *) rprintf() added to buffer code, occurrences of sprintf removed.
    -     [Ben Laurie]
    +  *) Avoid Server-driven negotiation when a script has emitted an
    +     explicit Status: header.  PR 38070.  [Nick Kew]
     
    -  *) CONNECT method for proxy module, which means tunneling SSL should work.
    -     (No crypto needed)  Also a NoCache config directive.
    +  *) Fix to avoid feeding C99 to C++ compilers.  [Joe Orton]
     
    -  *) Several API additions: pstrndup(), table_unset() and get_token()
    -     functions now available to modules.
    +  *) Chunk filter: Fix chunk filter to create correct chunks in the case that
    +     a flush bucket is surrounded by data buckets. [Ruediger Pluem]
     
    -  *) mod_imap fixups, in particular Location: headers are now complete
    -     URL's.
    +  *) Fix syntax error in httpd.h with strict compilers.  PR 37840.
    +     [Per Olausson <pao darkheim.freeserve.co.uk>]
     
    -  *) New "info" module which reports on installed module set through a
    -     special URL, a la mod_status.
    +  *) Fix recursive ErrorDocument handling.  PR 36090.
    +     [Chris Darroch <chrisd pearsoncmg.com>]
     
    -  *) "ServerPath" directive added - allows for graceful transition
    -     for Host:-header-based virtual hosts.
    +  *) Don't hang on error return from post_read_request.  PR 37790.
    +     [Nick Kew]
     
    -  *) Anonymous authentication module improvements.
    +  *) Fix off-by-one error in proxy_balancer.  PR 37753.
    +     [Kazuhiro Osawa <ko yappo ne jp>]
     
    -  *) MSQL authentication module improvements.
    +Changes with Apache 2.2.0
     
    -  *) Status module design improved - output now table-based. [Ben Laurie]
    +  *) mod_negotiation: Minor performance tweak by reusing already calculated
    +     strlen.
    +     [Ruediger Pluem, Christophe Jaillet <christophe.jaillet wanadoo.fr>]
     
    -  *) htdigest utility included for use with digest authentication
    -     module.
    +  *) Remove support for 'On' and 'Off' for AuthBasicProvider and
    +     AuthDigestProvider.  [Joshua Slive, Justin Erenkrantz]
     
    -  *) mod_negotiation: Accept values with wildcards to be treated with
    -     less priority than those without wildcards at the same quality
    -     value. [Alexei Kosut]
    +  *) Add in new UseCanonicalPhysicalPort directive, which controls
    +     whether or not Apache will ever use the actual physical port
    +     when constructing the canonical port number. [Jim Jagielski]
     
    -  *) Bugs which were fixed:
    -        a) numerous mod_proxy bugs
    -        b) CGI early-termination bug [Ben Laurie]
    -        c) Keepalives not working with virtual hosts
    -        d) RefererIgnore problems
    -        e) closing fd's twice in mod_include (causing core dumps on
    -           Linux and elsewhere).
    +  *) mod_dav: Fix a null pointer dereference in an error code path during the
    +     handling of MKCOL.
    +     [Ruediger Pluem, Ghassan Misherghi <ghassanm ucdavis.edu>]
     
    -Changes with Apache 1.1b2
    +  *) mod_proxy_balancer: When finding best worker, use case insensitive
    +     match for scheme and host, but case sensitive for the rest of
    +     the path. [Jim Jagielski, Ruediger Pluem]
     
    -  *) Bugfixes:
    -        a) core dumps in mod_digest
    -        b) truncated hostnames/ip address in the logs
    -        c) relative URL's in mod_imap map files
    +  *) Require use of APR >= 1.2.0 and APR-util >= 1.2.0 when configured
    +     to use external copies of the libraries.  [Joe Orton]
     
    -Changes with Apache 1.1b1
    +  *) Fix DESTDIR=... installation when using bundled copy of APR.
    +     [Torsten Foertsch <torsten.foertsch gmx.net>]
     
    -  *) Not listed. See <http://www.apache.org/docs/new_features_1_1.html>
    +  *) mod_dav: Fix handling of unknown state tokens in If: headers.
    +     PR: 37288.  [Joe Orton]
     
    -Changes with Apache 1.0.3
    +  *) Strip out Experimental MPMs that have gone nowhere since 2.0
    +     (perchild, threadpool, leader).  [Nick Kew]
     
    -  *) Internal redirects which occur in mod_dir.c now preserve the
    -     query portion of a request (the bit after the question mark).
    -     [Adam Sussman]
    +Changes with Apache 2.1.9
     
    -  *) Escape active characters '<', '>' and '&' in html output in
    -     directory listings, error messages and redirection links.
    -     [David Robinson]
    +  *) Add mod_authn_dbd (SQL-based  authentication) [Nick Kew]
     
    -  *) Apache will now work with LynxOS 2.3 and later [Steven Watt]
    +  *) mod_proxy_ajp: Do not spool the entire response from AJP backend before
    +     sending it up the filter chain.  PR 37100.  [Ruediger Pluem]
     
    -  *) Fix for POSIX compliance in waiting for processes in alloc.c.
    -     [Nick Williams]
    +  *) mod_cache: Create new filters CACHE_OUT_SUBREQ / CACHE_SAVE_SUBREQ which
    +     only differ by the type from CACHE_OUT / CACHE_SAVE to ensure that
    +     subrequests to non-local resources work again.  [Ruediger Pluem]
     
    -  *) setsockopt no longer takes a const declared argument [Martijn Koster]
    +  *) mod_proxy: Do not lowercase the entire worker name of a BalancerMember
    +     since this breaks case sensitive URI's.  PR 36906.  [Ruediger Pluem]
     
    -  *) Reset timeout timer after each successful fwrite() to the network.
    -     This patch adds a reset_timeout() procedure that is called by
    -     send_fd() to reset the timeout ever time data is written to the net.
    -     [Nathan Schrenk]
    +  *) core: AddOutputFilterByType is ignored for proxied requests. PR 31226.
    +     [Joe Orton, Ruediger Pluem]
     
    -  *) timeout() signal handler now checks for SIGPIPE and reports
    -     lost connections in a more user friendly way. [Rob Hartill]
    +  *) mod_proxy_http: Prevent data corruption of POST request bodies when
    +     client accesses proxied resources with SSL.  PR 37145.
    +     [Ruediger Pluem, William Rowe]
     
    -  *) Location of the "scoreboard" file which used to live in /tmp is
    -     now configurable (for OSes that can't use mmap) via ScoreBoardFile
    -     which works similar to PidFile (in httpd.conf) [Rob Hartill]
    +  *) mod_ssl: Fix issue which could cause spurious warnings about use
    +     of name-based vhosts.  PR 37051.  [Joe Orton]
     
    -  *) Include sys/resource.h in the correct place for SunOS4 [Sameer Parekh]
    +  *) ab: Fix to ensure that only the expected number of requests are run.
    +     PR 36966.  [Joe Orton]
     
    -  *) the pstrcat call in mod_cookies.c didn't have an ending NULL,
    -     which caused a SEGV with cookies enabled
    +  *) mod_proxy_balancer: BalancerManager and proxies correctly handle
    +     member workers with paths.  PR 36816. [Ruediger Pluem, Jim Jagielski]
     
    -  *) Output warning when MinSpareServers is set to <= 0 and change it to 1
    -     [Rob Hartill]
    +  *) mod_log_config: %{hextid}P will log the thread id in hex with APR
    +     versions 1.2.0 or higher.  [Jeff Trawick]
     
    -  *) Log the UNIX textual error returned by some system calls, in
    -     particular errors from accept() [David Robinson]
    +  *) httpd.exe/apachectl -V: display the DYNAMIC_MODULE_LIMIT setting, as
    +     in 1.3.  [Jeff Trawick]
     
    -  *) Add strerror function to util.c for SunOS4 [Randy Terbush]
    +  *) Support dbd connection tied to conn_rec in mod_dbd.  [Nick Kew]
     
    -Changes with Apache 1.0.2
    +  *) Fix use of pools in mod_dbd.  [Brian J France, Nick Kew]
     
    -  *) patch to get Apache compiled on UnixWare 2.x, recommended as
    -     a temporary measure, pending rewrite of rfc931.c. [Chuck Murcko]
    +  *) Promote modules from "experimental": mod_dbd, mod_filter,
    +     mod_charset_lite.  [Nick Kew]
     
    -  *) Fix get_basic_auth_pw() to set the auth_type of the request.
    -     [David Robinson]
    +  *) mod_proxy_ajp: mod_proxy_ajp sends empty SSL attributes for non SSL
    +     connections.  PR 36883.
    +     [William Barker <william.barker wilshire.com>, Ruediger Pluem]
     
    -  *) past changes to http_config.c to only use the
    -     setrlimit function on systems defining RLIMIT_NOFILE
    -     broke the feature on SUNOS4. Now defines HAVE_RESOURCE
    -     for SUNOS and prototypes the needed functions.
    +  *) Eliminated the NET_TIME filter, restructuring the timeout logic.
    +     This provides a working mod_echo on all platforms, and ensures any
    +     custom protocol module is at least given an initial timeout value
    +     based on the <VirtualHost > context's Timeout directive.
    +     [William Rowe]
     
    -  *) Remove uses of MAX_STRING_LEN/HUGE_STRING_LEN from several routines.
    -     [David Robinson]
    +  *) mod_proxy: Run the request_status hook also if there are no free workers
    +     or all workers are in error state.
    +     [Ruediger Pluem, Brian Akins <brian.akins turner.com>]
     
    -  *) Fix use of pointer to scratch memory. [Cliff Skolnick]
    +  *) mod_proxy_connect: Fix high CPU loop on systems like UnixWare which
    +     trigger POLL_ERR or POLL_HUP on a terminated connection.  PR 36951.
    +     [Jeff Trawick, Ruediger Pluem]
     
    -  *) Merge multiple headers from CGI scripts instead of taking last
    -     one. [David Robinson]
    +  *) mod_proxy_balancer: Fix handling of sticky sessions with Tomcat.
    +     PR 36507.  [Ruediger Pluem]
     
    -  *) Add support for SCO 5. [Ben Laurie]
    +  *) SECURITY: CVE-2005-2970 (cve.mitre.org)
    +     worker MPM: Fix a memory leak which can occur after an aborted
    +     connection in some limited circumstances.  [Greg Ames]
     
    -Changes with Apache 1.0.1
    +  *) Doxygen fixups.  [Neale Ranns <neale ranns.org>, Ian Holsman]
     
    -  *) Silence mod_log_referer and mod_log_agent if not configured
    -     [Randy Terbush]
    +  *) mod_cache/mod_dir: Correct a subrequest lookup bug which was preventing
    +     mod_dir from serving indexes correctly with mod_cache enabled.
    +     [Colm MacCarthaigh]
     
    -  *) Recursive includes can occur if the client supplies PATH_INFO data
    -     and the server provider uses relative links; as file.html
    -     relative to /doc.shtml/pathinfo is /doc.shtml/file.html. [David Robinson]
    +Changes with Apache 2.1.8
     
    -  *) The replacement for initgroups() did not call {set,end}grent(). This
    -     had two implications: if anything else used getgrent(), then
    -     initgroups() would fail, and it was consuming a file descriptor.
    -     [Ben Laurie]
    +  *) Fix lingering close implementation to match 1.3.x behaviour.
    +     PR 35292.  [Joe Orton]
     
    -  *) On heavily loaded servers it was possible for the scoreboard to get
    -     out of sync with reality, as a result of a race condition.
    -     The observed symptoms are far more Apaches running than should
    -     be, and heavy system loads, generally followed by catastrophic
    -     system failure. [Ben Laurie]
    +  *) mod_ssl: Support limited buffering of request bodies to allow
    +     per-location renegotiation to proceed.  PR 12355.  [Joe Orton]
     
    -  *) Fix typo in license. [David Robinson]
    +  *) Fix regression since 2.0.x in AllowOverride Options handling.
    +     PR 35330.  [kabe <kabe sra-tohoku.co.jp>]
     
    -Changes with Apache 1.0.0                                        23 Nov 1995
    +  *) mod_ssl: Fix memory leak in ssl_util_algotypeof().
    +     PR 25659.  [David Blake <dblake hp com>, Martin Kraemer]
     
    -  *) Not listed. See <http://www.apache.org/docs/new_features_1_0.html>
    +  *) prefork, worker and event MPMs: Support a graceful-stop procedure:
    +     Server will wait until existing requests are finished or until
    +     "GracefulShutdownTimeout" number of seconds before exiting.
    +     [Colm MacCarthaigh, Ken Coar, Bill Stoddard]
     
    -Changes with Apache 0.8.16                                       05 Nov 1995
    +  *) prefork, worker and event MPMs: Prevent children from holding open
    +     listening ports upon graceful restart or stop. PR 28167.
    +     [Colm MacCarthaigh, Brian Pinkerton <bp thinkpink.com>]
     
    -  *) New man page for 'httpd' added to support directory [David Robinson]
    +  *) SECURITY: CVE-2005-2700 (cve.mitre.org)
    +     mod_ssl: Fix a security issue where "SSLVerifyClient" was not
    +     enforced in per-location context if "SSLVerifyClient optional"
    +     was configured in the vhost configuration.  [Joe Orton]
     
    -  *) .htgroup files can have more than one line giving members for a
    -     given group (each must have the group name in front), for NCSA
    -     back-compatibility [Robert Thau]
    +  *) mod_ssl: Catch parse errors from misconfigured or malformed
    +     CRLs.  PR 36438.  [Joe Orton]
     
    -  *) Mutual exclusion around accept() is on by default for SVR4 systems
    -     generally, since they generally can't handle multiple processes in
    -     accept() on the same socket.  This should cure flaky behavior on
    -     a lot of those systems.  [David Robinson]
    +  *) mod_proxy/mod_proxy_balancer: lbmethods now implemented as
    +     providers. Prevent problems when no Vhost containers were
    +     configured with proxy balancers. [Jim Jagielski]
     
    -  *) AddType, AddEncoding, and AddLanguage directives take multiple
    -     extensions on a single command line [David Robinson]
    +  *) New provider function to list all available provider names in a
    +     specific group and version (ap_list_provider_names). [Jim Jagielski]
     
    -  *) UserDir can be disabled for a given virtual host by saying
    -     "UserDir disabled" in the <VirtualHost> section --- it was a bug
    -     that this didn't work.  [David Robinson]
    +  *) mod_cache: Enhance CacheEnable/CacheDisable to control caching on a
    +     per-protocol, per-host and per-path basis. Intended for proxy
    +     configurations. [Colm MacCarthaigh]
     
    -  *) Compiles on QNX [Ben Laurie]
    +  *) mod_disk_cache: Canonicalise the storage key, for improved hit/miss
    +     ratio. [Colm MacCarthaigh]
     
    -  *) Corrected parsing of ctime time format [David Robinson]
    +  *) mod_cgid: Append .PID to the script socket filename and remove the
    +     script socket on exit. [Colm MacCarthaigh, Jim Jagielski]
     
    -  *) httpd does a perror() before exiting if it can't log its pid
    -     to the PidFile, to make diagnosing the error a bit easier.
    -     [David Robinson]
    +  *) mod_cgid: run the get_suexec_identity hook within the request-handler
    +     instead of within cgid. PR 36410. [Colm MacCarthaigh]
     
    -  *) <!--#include file="..."--> can no longer include files in the
    -     parent directory, for NCSA back-compatibility.  [David Robinson]
    +  *) Linux 2.0: remove support for threaded MPM's due to linuxthreads use
    +     of SIGUSR1 clashing with graceful restart signal. [Colm MacCarthaigh]
     
    -  *) '~' is *not* escaped in URIs generated for directory listings
    -     [Roy Fielding]
    +Changes with Apache 2.1.7
     
    -  *) Eliminated compiler warning in the imagemap module [Randy Terbush]
    +  *) SECURITY: CVE-2005-2491 (cve.mitre.org):
    +     Fix integer overflows in PCRE in quantifier parsing which could
    +     be triggered by a local user through use of a carefully-crafted
    +     regex in an .htaccess file.  [Philip Hazel]
     
    -  *) Fixed bug involving handling URIs with escaped %-characters
    -     in redirects [David Robinson]
    +  *) mod_proxy/mod_proxy_balancer: Provide a simple, functional
    +     interface to add additional balancer lb selection methods
    +     without requiring code changes to mod_proxy/mod_proxy_balancer;
    +     these can be implemented via sub-modules now. [Jim Jagielski]
     
    -Changes with Apache 0.8.15                                       14 Oct 1995
    +  *) mod_cache: Fix incorrectly served 304 responses when expired cache
    +     entity is valid, but cache is unwritable and headers cannot be
    +     updated.  [Colm MacCarthaigh <colm stdlib.net>]
     
    -  *) Switched to new, simpler license
    +  *) mod_cache: Remove entities from the cache when re-validation
    +     receives a 404 or other content-no-longer-present error.
    +     [Rüdiger Plüm ruediger.pluem vodafone.com]
     
    -  *) Eliminated core dumps with improperly formatted DBM group files [Mark Cox]
    +  *) mod_disk_cache: Properly remove files from cache when needed.
    +     [Rüdiger Plüm ruediger.pluem vodafone.com]
     
    -  *) Don't allow requests for ordinary files to have PATH_INFO [Ben Laurie]
    +  *) mod_disk_cache: Support htcacheclean removing directories.
    +     [Andreas Steinmetz]
     
    -  *) Reject paths containing %-escaped '%' or null characters [David Robinson]
    +  *) htcacheclean: Add -t option to remove empty directories.
    +     [Colm MacCarthaigh <colm stdlib.net>]
     
    -  *) Correctly handles internal redirects to files with names containing '%'
    -     [David Robinson]
    +  *) Remove the base href tag from mod_proxy_ftp, as it breaks relative
    +     links for clients not using an Authorization header. [Graham Leggett,
    +     Jon Snow <jsnow27 gatesec.net>]
     
    -  *) Repunctuated some error messages [Aram Mirzadeh, Andrew Wilson]
    +  *) mod_cache: Restore the HTTP status of cached responses.
    +     [Hansjoerg Pehofer <hansjoerg.pehofer uibk.ac.at>]
     
    -  *) Use geteuid() rather than getuid() to see if we have root privilege,
    -     so that server correctly resets privilege if run setuid root.  [Andrew
    -     Wilson]
    +  *) mod_cache: Store varied contents all in the same prefix for a varied URI.
    +     [Paul Querna]
     
    -  *) Handle ftp: and telnet: URLs correctly in imagemaps (built-in module)
    -     [Randy Terbush]
    +  *) mod_cache: Run the CACHE_SAVE and CACHE_OUT Filters after other content
    +     filters. [Paul Querna]
     
    -  *) Fix relative URLs in imagemap files [Randy Terbush]
    +  *) mod_negotiation: Correctly report 404 instead of 403 for missing files.
    +     [Paul Querna]
     
    -  *) Somewhat better fix for the old "Alias /foo/ /bar/" business
    -     [David Robinson]
    +  *) new hook (request_status) that gets ran in proxy_handler just before
    +     the final return.  This gives modules an opportunity to do something
    +     based on the proxy status. (minor MMN bump)
    +     [Brian Akins <bakins turner.com>, Ian Holsman]
     
    -  *) Don't repeatedly open the ErrorLog if a bunch of <VirtualHost>
    -     entries all name the same one. [David Robinson]
    +  *) Add additional SSLSessionCache option, 'nonenotnull', which is
    +     similar to 'none' (disabling any external shared cache) but forces
    +     OpenSSL to provide a non-null session ID.  [Jim Jagielski]
     
    -  *) Fix directory listings with filenames containing unusual characters
    -     [David Robinson]
    +  *) Add httxt2dbm to support/ for creating RewriteMap DBM Files.
    +     [Paul Querna]
     
    -  *) Better URI-escaping for generated URIs in directories with filenames
    -     containing unusual characters [Ben Laurie]
    +  *) Add SSL_COMPRESS_METHOD variable (included in +StdEnvVars) to note
    +     the negotiated compression.  [Georg v. Zezschwitz <gvz 2scale.de>]
     
    -  *) Fixed potential FILE* leak in http_main.c [Ben Laurie]
    +  *) Fixed complaints about unpackaged files within the RPM build
    +     after changes to the config files. [Graham Leggett]
     
    -  *) Unblock alarms on error return from spawn_child() [David Robinson]
    +  *) Fix shutdown for the Worker MPM when an Accept Filter is used. Instead of
    +     just closing the socket, a HTTP request is made, to make sure the child is
    +     always awakened. [Paul Querna]
     
    -  *) Sample Config files have extra note for SCO users [Ben Laurie]
    +Changes with Apache 2.1.6
     
    -  *) Configuration has note for HP-UX users [Rob Hartill]
    +  *) Fix htdbm password validation for records which included comments.
    +     [Eric Covener <covener gmail.com>]
     
    -  *) Eliminated some bogus Linux-only #defines in conf.h [Aram Mirzadeh]
    +  *) mod_cgid: Fix buffer overflow processing ScriptSock directive.
    +     [Steve Kemp <steve steve.org.uk>]
     
    -  *) Nuked bogus #define in httpd.h [David Robinson]
    +Changes with Apache 2.1.5
     
    -  *) Better test for whether a system has setrlimit() [David Robinson]
    +  *) mod_ssl: Setting the Protocol to 'https' can replace the use of the
    +     'SSLEngine on' command. [Paul Querna]
     
    -  *) Calls update_child_status() after reopen_scoreboard() [David Robinson]
    +  *) core: Refactor the mapping of Accept Filters to Sockets. Add the
    +     AcceptFilter and Protocol directives to aid in mapping filter types.
    +     Extend the Listen directive to optionally take a protocol name.
    +     [Paul Querna]
     
    -  *) Doesn't send itself SIGHUP on startup when run in the -X debug-only mode
    -     [Ben Laurie]
    +  *) mod_disk_cache: Support storing multiple variations of one URL. PR 35211.
    +     [Paul Querna]
     
    -Changes with Apache 0.8.14                                       19 Sep 1995
    +  *) mod_disk_cache: Atomically create the header data file. [Paul Querna]
     
    -  *) Compiles on SCO ODT 3.0 [Ben Laurie]
    +  *) mod_cache: Fix 'Vary: *' behavior to be RFC compliant. PR 16125.
    +     [Paul Querna]
     
    -  *) AddDescription works (better) [Ben Laurie]
    +  *) mod_cache: Rename 'generate_name' to 'ap_cache_generate_name'.
    +     [Paul Querna]
     
    -  *) Leaves an intelligible error diagnostic when it can't set group
    -     privileges on standalone startup [Andrew Wilson]
    +  *) mod_mime_magic: Handle CRLF-format magic files so that it works with
    +     the default installation on Windows.  [Jeff Trawick]
     
    -  *) Compiles on NeXT again --- the 0.8.13 RLIMIT patch was failing on
    -     that machine, which claims to be BSD but does not support RLIMIT.
    -     [Randy Terbush]
    +  *) core: Allow multiple modules to register interest in a single
    +     configuration command. [Paul Querna]
     
    -  *) gcc -Wall no longer complains about an unused variable when util.c
    -     is compiled with -DMINIMAL_DNS [Andrew Wilson]
    +  *) authn_provider_alias: Adds the configuration block tag
    +     <AuthnProviderAlias baseProvider Alias>
    +     Authentication directives contained within this block can be
    +     referenced as a new authProvider using the AuthBasicProvider or
    +     AuthDigestProvider directive.  These directives will be merged in to
    +     the per_dir configuration just before the base provider is called.
    +     [Brad Nicholes]
     
    -  *) Nuked another compiler warning for -Wall on Linux [Aram Mirzadeh]
    +  *) ap_getword_conf: Fix backslashes at the end of configuration directives.
    +     PR 34834. [Timo Viipuri <viipuri dlc.fi>]
     
    -Changes with Apache 0.8.13                                       07 Sep 1995
    +  *) mod_dbd: New additions: mod_dbd.c, mod_dbd.h, mod_dbd.xml
    +     Provide module hooks for apr_dbd; optimise for httpd
    +     threaded and non-threaded arch [Nick Kew]
     
    -  *) Make IndexIgnore *work* (ooops) [Jarkko Torppa]
    +  *) ab: SSL support rewritten, improved, and enabled if SSL is enabled
    +     during the build; -f and -Z arguments added to specify SSL protocol
    +     options.  [Masaoki Kobayashi <masaoki techfirm.co.jp>]
     
    -  *) Have built-in imagemap code recognize & honor Point directive [James
    -     Cloos]
    +  *) mod_info: Show the Quick Handler [Paul Querna]
     
    -  *) Generate cleaner directory listings in directories with a mix of
    -     long and short filenames [Rob Hartill]
    +  *) mod_ldap: Add the directive LDAPVerifyServerCert to specify
    +     whether to force verification of the server certificate when
    +     establishing an SSL connection to the LDAP server.
    +     [Brad Nicholes]
     
    -  *) Properly initialize dynamically loaded modules [Royston Shufflebotham]
    +  *) mod_proxy: Run mod_rewrite before mod_proxy in the translate_name
    +     hook. [Paul Querna]
     
    -  *) Properly default ServerName for virtual servers [Robert Thau]
    +  *) Add AP_INIT_TAKE_ARGV for configuration commands. (minor MMN bump)
    +     [Paul Querna]
     
    -  *) Rationalize handling of BSD in conf.h and elsewhere [Randy Terbush,
    -     Paul Richards and a cast of thousands...]
    +  *) ap_get_local_host() rewritten for APR. [Jim Jagielski]
     
    -  *) On self-identified BSD systems (we don't try to guess any more),
    -     allocate a few extra file descriptors per virtual host with setrlimit,
    -     if we can, to avoid running out. [Randy Terbush]
    +  *) Add the ap_vhost_iterate_given_conn function to expose the information
    +     used in Name Based Virtual Hosting. (minor MMN bump)
    +     [Paul Querna]
     
    -  *) Write 22-character lock file name into buffer with enough space
    -     on startup [Konstantin Olchanski]
    +  *) Remove the never working ap_method_list_do and ap_method_list_vdo.
    +     [Paul Querna]
     
    -  *) Use archaic setpgrp() interface on NeXT, which requires it [Brian
    -     Pinkerton]
    +  *) Added makefile and doc for building mod_ssl on the NetWare
    +     platform. [Guenter Knauf, Brad Nicholes]
     
    -  *) Suppress -Wall warning by casting const away in util.c [Aram Mirzadeh]
    +  *) mod_deflate: Merge the Vary header, isntead of Setting it. Fixes
    +     applications that send the Vary Header themselves, and also apply
    +     mod_deflate as an output filter. [Paul Querna]
     
    -  *) Suppress -Wall warning by initializing variable in negotiation code
    -     [Tobias Weingartner]
    +  *) Change the default (when not present in the config file) setting
    +     for UseCanonicalName to Off.
    +     [Joshua Slive]
     
    -Changes with Apache 0.8.12                                       31 Aug 1995
    +  *) mod_userdir: The module no longer does any remapping unless the
    +     UserDir directive is present in the config file.
    +     [Joshua Slive]
     
    -  *) Doesn't pause three seconds after including a CGI script which is
    -     too slow to die off (this is done by not even trying to kill off
    -     subprocesses, including the SIGTERM/pause/SIGKILL routine, until
    -     after the entire document has been processed).  [Robert Thau]
    +  *) Massively simplify the distributed httpd.conf by removing
    +     many features and many directives that are at their default
    +     setting.  Add a selection of example config excerpts for adding
    +     extra features in the conf/extra/ directory.  Install the
    +     distributed config and the extra config examples in the
    +     conf/original/ directory during make install.
    +     [Joshua Slive, Justin Erenkrantz]
     
    -  *) Doesn't do SSI if Options Includes is off.  (Ooops).  [David Robinson]
    +  *) NetWare: Reposition mod_asis, mod_actions, mod_cgi, mod_imagemap,
    +     mod_userdir and mod_autoindex as shared modules rather than
    +     built-in modules within the NetWare build.
    +     [Brad Nicholes]
     
    -  *) Options IncludesNoExec allows inclusion of at least text/* [Roy Fielding]
    +  *) Rename mod_imap to mod_imagemap.
    +     [Paul Querna]
     
    -  *) Allows .htaccess files to override <Directory> sections naming the
    -     same directory [David Robinson]
    +  *) util_ldap: Eliminate the load ordering of mod_ldap and mod_authnz_ldap
    +     by changing the mod_ldap exported functions to optional functions.
    +     [Brad Nicholes]
     
    -  *) Removed an efficiency hack in sub_req_lookup_uri which was
    -     causing certain extremely marginal cases (e.g., ScriptAlias of a
    -     *particular* index.html file) to fail.  [David Robinson]
    +Changes with Apache 2.1.4
     
    -  *) Doesn't log an error when the requested URI requires
    -     authentication, but no auth header line was supplied by the
    -     client; this is a normal condition (the client doesn't no auth is
    -     needed here yet).  [Robert Thau]
    +  *) Don't let a subrequest inherit headers describing the original request's
    +     body.  [Greg Ames]
     
    -  *) Behaves more sanely when the name server loses its mind [Sean Welch]
    +  *) Fix Windows CompContext buff size miscalculation
    +     [Allan Edwards]
     
    -  *) RFC931 code compiles cleanly on old BSDI releases [Randy Terbush]
    +  *) Add ReceiveBufferSize directive to control the TCP receive buffer.
    +     [Eric Covener <covener gmail.com>]
     
    -  *) RFC931 code no longer passes out name of prior clients on current
    -     requests if the current request came from a server that doesn't
    -     do RFC931.  [David Robinson]
    +  *) mod_proxy: Add proxy-sendextracrlf option to send an extra CRLF at the
    +     end of the request body to work with really old HTTP servers.
    +     [Justin Erenkrantz]
     
    -  *) Configuration script accepts "Module" lines with trailing whitespace.
    -     [Robert Thau]
    +  *) util_ldap: Keep track of the number of attributes retrieved from
    +     LDAP so that all the values can be properly cached even if the
    +     value is NULL. PR 33901 [Brad Nicholes]
     
    -  *) Cleaned up compiler warning from mod_access.c [Robert Thau]
    +  *) mod_cache: Fix error where incoming Cache-Control would be ignored.
    +     [Justin Erenkrantz]
     
    -  *) Cleaned up comments in mod_cgi.c [Robert Thau]
    +  *) mod_cache: Correctly handle originally conditional requests.
    +     [Sander Striker]
     
    -Changes with Apache 0.8.11                                       24 Aug 1995
    +  *) mod_disk_cache: Correctly update cached headers on revalidated responses.
    +     [Sander Striker, Justin Erenkrantz]
     
    -  *) Wildcard <Directory> specifications work.  [Robert Thau]
    +  *) worker MPM/mod_status: Support per-worker tracking of pid and
    +     generation in the scoreboard so that mod_status can accurately
    +     represent workers in processes which are gracefully terminating.
    +     (major MMN bump)
    +     [Jeff Trawick]
     
    -  *) Doesn't loop for buggy CGI on Solaris [Cliff Skolnick]
    +  *) Correctly export all mod_dav public functions.
    +     [Branko Čibej <brane xbc.nu>]
     
    -  *) Symlink checks (FollowSymLinks off, or SymLinkIfOwnerMatch) always check
    -     the file being requested itself, in addition to the directories leading
    -     up to it. [Robert Thau]
    +Changes with Apache 2.1.3
     
    -  *) Logs access failures due to symlink checks or invalid client address
    -     in the error log [Roy Fielding, Robert Thau]
    +  *) mod_ssl: Add ssl_ext_lookup optional function for accessing
    +     certificate extensions.   [David Reid, Joe Orton]
     
    -  *) Symlink checks deal correctly with systems where lstat of
    -     "/path/to/some/link/" follows the link.  [Thau, Fielding]
    +  *) Add support for use of an external PCRE library; pass the
    +     --with-pcre flag to configure.  PR 27550.  [Joe Orton,
    +     Andres Salomon <dilinger voxel.net>]
     
    -  *) Doesn't reset DirectoryIndex to 'index.html' when
    -     other directory options are set in a .htaccess file.  [Robert Thau]
    +  *) Renamed regex interfaces to be namespace-safe, and moved from
    +     pcreposix.h header to ap_regex.h: regex_t->ap_regex_t,
    +     regmatch_t->ap_regmatch_t; REG_*->AP_REG_*; functions
    +     reg*->ap_reg*.  PR 27550.  [Andres Salomon <dilinger voxel.net>,
    +     Joe Orton]
     
    -  *) Clarified init code and nuked bogus warning in mod_access.c
    -     [Florent Guillaume]
    +  *) Only recompile buildmark.c when we have to relink httpd.
    +     [Justin Erenkrantz]
     
    -  *) Corrected several directives in sample srm.conf
    -     --- includes corrections to directory indexing icon-related directives
    -     (using unknown.gif rather than unknown.xbm as the DefaultIcon, doing
    -     icons for encodings right, and turning on AddEncoding by default).
    -     [Roy Fielding]
    +  *) mod_cache: Fix up handling of revalidated responses.
    +     [Justin Erenkrantz]
     
    -  *) Corrected descriptions of args to AddIcon and AddAlt in command table
    -     [James Cloos]
    +  *) mod_disk_cache: Properly load cached ETag from on-disk structures.
    +     [Justin Erenkrantz]
     
    -  *) INSTALL & README mention "contributed modules" directory [Brian
    -     Behlendorf]
    +  *) mod_authnz_ldap: Added an optional second parameter to AuthLDAPURL
    +     to allow it to override the connection type set in mod_ldap. This
    +     parameter can be set to NONE, SSL or TLS | STARTTLS.
    +     [Brad Nicholes]
     
    -  *) Fixed English in the license language...  "for for" --> "for".
    -     [Roy Fielding]
    +  *) Fix --with-apr=/usr and/or --with-apr-util=/usr.  PR 29740.
    +     [Max Bowsher <maxb ukf.net>]
     
    -  *) Fixed ScriptAlias/Alias interaction by moving ScriptAlias handling to
    -     mod_alias.c, merging it almost completely with handling of Alias, and
    -     adding a 'notes' field to the request_rec which allows the CGI module
    -     to discover whether the Alias module has put this request through
    -     ScriptAlias (which it needs to know for back-compatibility, as the old
    -     NCSA code did not check Options ExecCGI in ScriptAlias directories).
    -     [Robert Thau]
    +  *) mod_proxy: Fix ProxyRemoteMatch directive.  PR 33170.
    +     [Rici Lake <rici ricilake.net>]
     
    -Changes with Apache 0.8.10                                       18 Aug 1995
    +  *) mod_proxy: Fix ap_proxy_canonenc API.
    +     PR 32459. [Jim Jagielski]
     
    -  *) AllowOverride applies to the named directory, and not just
    -     subdirectories.  [David Robinson]
    +  *) mod_cache: Add CacheStorePrivate and CacheStoreNoStore directive.
    +     [Justin Erenkrantz]
     
    -  *) Do locking for accept() exclusion (on systems that need it)
    -     using a special file created for the purpose in /usr/tmp, and
    -     not the error log; using the error log causes real problems
    -     if it's NFS-mounted; this is known to be the cause of a whole
    -     lot of "server hang" problems with Solaris.  [David Robinson;
    -     thanks to Merten Schumann for help diagnosing the problem].
    +  *) Add --enable-pie flag to configure, to build httpd as a Position
    +     Independent Executable where supported (GCC/binutils).
    +     [Joe Orton]
     
    -Changes with Apache 0.8.9                                        12 Aug 1995
    +  *) proxy_balancer: Add in load-balancing via weighted traffic
    +     byte count. [Jim Jagielski]
     
    -  *) Compiles with -DMAXIMUM_DNS ---- ooops! [Henrik Mortensen]
    +  *) mod_disk_cache: Cache r->err_headers_out headers.  This allows CGI
    +     scripts to be properly cached.  [Justin Erenkrantz, Sander Striker]
     
    -  *) Nested includes see environment variables of the including document,
    -     for NCSA bug-compatibility (some sites have standard footer includes
    -     which try to print out the last-modified date).  [Eric Hagberg/Robert
    -     Thau]
    +  *) mod_ldap: Updated to use the new apr-util v1.1 apr_ldap_*_option()
    +     API for the setting of server and client SSL certificates. Replaced
    +     LDAPTrustedCA directive with LDAPTrustedGlobalCert and
    +     LDAPTrustedClientCert directives to correctly support global certs
    +     (CA certs / Netware client certs) and per connection client certs
    +     as supported by Netware, OpenLDAP and Netscape/Mozilla.
    +     [Graham Leggett]
     
    -  *) <!--exec cgi="/some/uri/here"--> always treats the item named by the
    -     URI as a CGI script, even if it would have been treated as something
    -     else if requested directly, for NCSA back-compatibility.  (Note that
    -     this means that people who know the name of the script can see the
    -     code just by asking for it).  [Robert Thau]
    +  *) mod_cache: Remove unimplemented CacheForceCompletion directive.
    +     [Justin Erenkrantz]
     
    -  *) New version of dbmmanage script included in support directory as
    -     dbmmanage.new.
    +  *) support/check_forensic: Fix temp file usage
    +     [Javier Fernandez-Sanguino Pen~a <jfs computer.org>]
     
    -  *) Check if scoreboard file couldn't be opened, and say so, rather
    -     then going insane [David Robinson]
    +  *) mod_ssl: Add SSLCADNRequestFile and SSLCADNRequestPath directives
    +     which can be used to configure a specific list of CA names to send
    +     in a client certificate request.  PR 32848.
    +     [Tim Taylor <tim.taylor dfas.mil>]
     
    -  *) POST to CGI works on A/UX [Jim Jagielski]
    +  *) --with-module can now take more than one module to be statically
    +     linked: --with-module=<modtype>:<modfile>,<modtype>:<modfile>,...
    +     If the <modtype>-subdirectory doesn't exist it will be created and
    +     populated with a standard Makefile.in.  [Erik Abele]
     
    -  *) AddIcon and AddAlt commands work properly [Rob Hartill]
    +  *) Remove some compiler warnings within the LDAP modules [Graham Leggett]
     
    -  *) NCSA server push works properly --- the Arena bug compatibility
    -     workaround, which broke it, is gone (use -DARENA_BUG_WORKAROUND
    -     if you still want the workaround).  [Rob Hartill]
    +  *) Add a build script to create a solaris package. [Graham Leggett]
     
    -  *) If client didn't submit any Accept-encodings, ignore encodings in
    -     content negotiation.  (NB this will all have to be reworked anyway
    -     for the new HTTP draft).  [Florent Guillaume]
    +  *) ap_http_scheme() replaced with ap_http_method() - this function
    +     returns the scheme (http v.s. https).
    +     [William Rowe]
     
    -  *) Don't dump core when trying to log timed-out requests [Jim Jagielski]
    +  *) mod_proxy: Fix a request corruption problem and a buffering problem
    +     which sometimes prevented proxy-sendchunks from working.
    +     [Jeff Trawick]
     
    -  *) Really honor CacheNegotiatedDocs [Florent Guillaume]
    +  *) Fix the RPM spec file so that an RPM build now works. An RPM
    +     build now requires system installations of APR and APR-util.
    +     [Graham Leggett]
     
    -  *) Give Redirect priority over Alias, for NCSA bug compatibility
    -     [David Robinson]
    +  *) Significantly simplify the load balancer scheduling algorithm
    +     for the proxy BalancerMember weighting. loadfactors (lbfactors)
    +     are now normalized with respect to each other. [Jim Jagielski]
     
    -  *) Correctly set PATH_TRANSLATED in all cases from <!--#exec cmd=""-->,
    -     paralleling earlier bug fix for CGI [David Robinson]
    +  *) mod_dumpio: Added to the available module suite; it is an
    +     I/O logging/dumping module. Placed in the (new) debug module
    +     subdirectory. mod_bucketeer moved to that directory as well.
    +     [Jim Jagielski]
     
    -  *) If DBM auth is improperly configured, report a server error and don't
    -     dump core.
    +  *) core: Add support for APR_TCP_DEFER_ACCEPT to defer accepting
    +     of a connection until data is available.
    +     [Paul Querna]
     
    -  *) Deleted FCNTL_SERIALIZED_ACCEPTS from conf.h entry for A/UX;
    -     it seems to work well enough without it (even in a 10 hits/sec
    -     workout), and the overhead for the locking under A/UX is
    -     alarmingly high (though it is very low on other systems).
    -     [Eric Hagberg, Jim Jagielski]
    +Changes with Apache 2.1.2
     
    -  *) Fixed portability problems with mod_cookies.c [Cliff Skolnick]
    +  *) mod_proxy: Respect errors reported by pre_connection hooks.
    +     [Jeff Trawick]
     
    -  *) Further de-Berklize mod_cookies.c; change the bogus #include.  [Brian
    -     Behlendorf/Eric Hagberg]
    +  *) core: Error out on sections that are missing an argument instead of
    +     silently consuming the section. PR 25460.
    +     [Geoffrey Young, Paul Querna]
     
    -  *) More improvements to default Configuration for A/UX [Jim Jagielski]
    +  *) mod_cache/mod_mem_cache/mod_disk_cache: Move out of experimental.
     
    -  *) Compiles clean on NEXT [Rob Hartill]
    +  *) Upgraded PCRE to version 5.0. [Brian Pane]
     
    -  *) Compiles clean on SGI [Robert Thau]
    +  *) mod_cgid: Catch configuration problem where two web server instances
    +     share same ServerRoot but admin forgot to use ScriptSock.
    +     [Jeff Trawick]
     
    -Changes with Apache 0.8.8                                        08 Aug 1995
    +  *) mod_cgi: Ensure that all stderr is logged for a script which returns
    +     a Location header to generate a non-local redirect.  PR 20111.
    +     [Joe Orton]
     
    -  *) SunOS library prototypes now never included unless explicitly
    -     requested in the configuration (via -DSUNOS_LIB_PROTOTYPES);
    -     people using GNU libc on SunOS are screwed by prototypes for the
    -     standard library.
    +  *) Added the Event MPM to more efficiently handle clients during a
    +     Keep Alive request.
    +     [Paul Querna, Greg Ames]
     
    -     (Those who wish to compile clean with gcc -Wall on a standard
    -     SunOS setup need the prototypes, and may obtain them using
    -     -DSUNOS_LIB_PROTOTYPES.  Those wishing to use -Wall on a system
    -     with nonstandard libraries are presumably competent to make their
    -     own arrangements).
    +Changes with Apache 2.1.1
     
    -  *) Strips trailing '/' characters off both args to the Alias command,
    -     to make 'Alias /foo/ /bar/' work.
    +  *) mod_proxy_http: Stream content better - always flush buffered data to
    +     the client before blocking waiting for new data.  PR 19954.
    +     [Joe Orton]
     
    -Changes with Apache 0.8.7                                        03 Aug 1995
    +  *) mod_ssl: Add support for command-line option "-t -DDUMP_CERTS" which
    +     will dump the filenames of all configured SSL certificates to stdout.
    +     [Joe Orton]
     
    -  *) Don't hang when restarting with a child from 'TransferLog "|..."' running
    -     [reported by David Robinson]
    +  *) mod_disk_cache: Remove a bunch of non-implemented garbage collection
    +     and cache size directives that are now available through htcacheclean.
    +     [Justin Erenkrantz]
     
    -  *) Compiles clean on OSF/1 [David Robinson]
    +  *) Add htcacheclean to support/ for assistance with mod_disk_cache.
    +     [Andreas Steinmetz]
     
    -  *) Added some of the more recent significant changes (AddLanguage stuff,
    -     experimental LogFormat support) to CHANGES file in distribution root
    -     directory
    +  *) mod_authnz_ldap: Added the directive "Requires ldap-filter" that
    +     allows the module to authorize a user based on a complex LDAP
    +     search filter.  [Brad Nicholes]
     
    -Changes with Apache 0.8.6                                        02 Aug 1995
    +  *) mod_usertrack: Run the fixups hook before other modules.
    +     PR 29755.  [Paul Querna]
     
    -  *) Deleted Netscape reload workaround --- it's in violation of HTTP specs.
    -     (If you actually wanted a conditional GET which bypassed the cache, you
    -     couldn't get it). [Reported by Roy Fielding]
    +  *) Allow mod_authnz_ldap authorization functionality to be used
    +     without requiring the user to also be authenticated through
    +     mod_authnz_ldap. This allows other authentication modules to
    +     take advantage of LDAP authorization only [PR 28253]
    +     [Jari Ahonen jah progress.com, Brad Nicholes]
     
    -  *) Properly terminate headers on '304 Not Modified' replies to conditional
    -     GETs --- no browser we can find cares much, but the CERN proxy chokes.
    -     [Reported by Cliff Skolnick; fix discovered independently by Rob Hartill]
    +  *) Log the client IP address when an error occurs disabling nagle on a
    +     connection, but log at a severity of debug since this error
    +     generally means that the connection was dropped before data was
    +     sent.  Log the client IP address when reporting errors in the core
    +     output filter.  [Jeff Trawick]
     
    -  *) httpd -v doesn't call itself "Shambhala".  [Reported by Chuck Murcko]
    +  *) core: Add a warning message if the request line read fails.
    +     [Paul Querna]
     
    -  *) SunOS lib-function prototypes in conf.h conditionalized on __GNUC__,
    -     not __SUNPRO_C (they're needed to quiet gcc -Wall, but acc chokes on 'em,
    -     and older versions don't set the __SUNPRO_C preprocessor variable).  On
    -     all other systems, these are never used anyway.  [Reported by Mark Cox].
    +  *) mod_rewrite: Removed the MaxRedirects option in favor of the
    +     core LimitInternalRecursion directive.  [André Malo]
     
    -  *) Scoreboard file (/tmp/htstatus.*) no longer publically writable.
    +  *) mod_info: Added listing of the Request Hooks and added more build
    +     information like 'httpd -V' contains. Changed output to XHTML.
    +     [Paul Querna]
     
    -Changes with Apache 0.8.5                                        01 Aug 1995
    +  *) mod_info: Rewrote config tree walk using a recursive function.
    +     Added ?config option. Added printout of config filename and line numbers.
    +     [Rici Lake <rici ricilake.net>, Paul Querna]
     
    -  *) Added last-minute configurable log experiment, as optional module
    +  *) mod_proxy: Fix type error that prevents proxy-sendchunks from working.
    +     [Justin Erenkrantz]
     
    -  *) Correctly set r->bytes_sent for HTTP/0.9 requests, so they get logged
    -     properly.  (One-line fix to http_protocol.c).
    +  *) mod_proxy: Fix data corruption by properly setting aside buckets.
    +     [Justin Erenkrantz]
     
    -  *) Work around bogus behavior when reloading from Netscape.
    -     It's Netscape's bug --- for some reason they expect a request with
    -     If-modified-since: to not function as a conditional GET if it also
    -     comes with Pragma: no-cache, which is way out of line with the HTTP
    -     spec (according to Roy Fielding, the redactor).
    +  *) mod_proxy: If a request has a blank body and has a 0 Content-Length
    +     headers, pass that to the proxy.  [Justin Erenkrantz]
     
    -  *) Added parameter to set maximum number of server processes.
    +  *) Recognize QSA flag in mod_rewrite again.
    +     [Jan Kratochvil <rcpt-dev.AT.httpd.apache.org jankratochvil.net>]
     
    -  *) Added patches to make it work on A/UX.  A/UX is *weird*.  [Eric Hagberg,
    -     Jim Jagielski]
    +  *) Restructured mod_auth_ldap to fit the new authentication model.
    +     The module is now called authnz_ldap and has been moved out of
    +     the modules/experimental area and into modules/aaa with the other
    +     auth modules.  Both the authn_ldap provider and the authz_ldap
    +     handler are contained within the authnz_ldap module.  The
    +     authz_ldap handler introduces 3 new "requires" values for handling
    +     authorization.  These handlers are ldap-user, ldap-group and
    +     ldap-dn. [Brad Nicholes]
     
    -  *) IdentityCheck bugfix [Chuck Murcko].
    +  *) Fix some compiler warnings in proxy
    +     [Geoffrey Young <geoff@modperlcookbook.org>]
     
    -  *) Corrected cgi-src/Makefile entry for new imagemap script.  [Alexei Kosut]
    +  *) mod_ssl: Add SSL_CLIENT_V_REMAIN variable, representing the
    +     number of days until the client cert expires.  [Joe Orton]
     
    -  *) More sample config file corrections; add extension to AddType for
    -     *.asis, move AddType generic description to its proper place, and
    -     fix miscellaneous typos. [ Alexei Kosut ]
    +  *) Add test_config hook, run only if httpd is invoked using -t.
    +     [Joe Orton]
     
    -  *) Deleted the *other* reference to the regents from the Berkeley
    -     legal disclaimer (everyplace).
    +  *) Improve error handling for corrupted pid files.  [Jeff Trawick]
     
    -  *) Nuked Shambhala name from src/README; had already cleaned it out
    -     of everywhere else.
    +  *) mod_proxy.c and proxy_util.c: Enable compiling on 2.0-HEAD
    +     (for backwards compatibility):
    +     Avoids mod_ssl.h (not included in 2.0-HEAD) and
    +     use apr_socket_create_ex for 0.9.x
    +     [Mladen Turk]
     
    -Changes with Apache 0.8.4
    +  *) Added proxy_ajp.c module for proxy support to ajp:// backends.
    +     [Jean Frederic Clere]
     
    -  *) Changes to server-pool management parms --- renamed current
    -     StartServers to MinSpareServers, created separate StartServers
    -     parameter which means what it says, and renamed MaxServers to
    -     MaxSpareServers (though the old name still works, for NCSA 1.4
    -     back-compatibility).  The old names were generally regarded as
    -     too confusing.  Also altered "docs" in sample config files.
    +  *) Fixes the build of proxy on Windows. Since the proxy_module is declared
    +     as extern using AP_MODULE_DECLARE_DATA that expands to dllexport, there
    +     is a LNK2001 error when building proxy_http. [Mladen Turk]
     
    -  *) More improvements to default config files ---
    -     sample directives (commented out) for XBitHack, BindAddress,
    -     CacheNegotiatedDocs, VirtualHost; decent set of AddLanguage
    -     defaults, AddTypes for send-as-is and imagemap magic types, and
    -     improvements to samples for DirectoryIndex [Alexei Kosut]
    +  *) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap.
    +     [Graham Leggett]
     
    -  *) Yet more improvements to default config files --- changes to
    -     Alexei's sample AddLanguage directives, and sample LanguagePriority
    -     [ Florent Guillaume ]
    +  *) Remove deprecated/removed APR_STATUS_IS_SUCCESS().  [Justin Erenkrantz]
     
    -  *) Set config file locations properly if not set in httpd.conf
    -     [ David Robinson ]
    +  *) perchild MPM: Fix thread safety problem in the use of longjmp().
    +     [Tsuyoshi SASAMOTO <nazonazo super.win.ne.jp>]
     
    -  *) Don't escape URIs in internal redirects multiple times; don't
    -     do that when translating PATH_INFO to PATH_TRANSLATED either.
    -     [ David Robinson ]
    +  *) Add load balancer support to the scoreboard in preparation for
    +     load balancing support in mod_proxy. [Mladen Turk]
     
    -  *) Corrected spelling of "Required" in 401 error reports [Andrew Wilson]
    +  *) mod_nw_ssl: Added the directive NWSSLUpgradeable to mod_nw_ssl to
    +     allow a non-secure connection to be upgraded to secure connections
    +     [Brad Nicholes]
     
    -Changes with Apache 0.8.3
    +  *) core: Add Options= syntax to AllowOverride to specify which options
    +     may be overridden in .htaccess files. PR 29310.
    +     [Tom Alsberg <alsbergt cs.huji.ac.il>, Paul Querna]
     
    -  *) Edited distribution README to *briefly* summarize installation
    -     procedures, and give a pointer to the INSTALL file in the src/
    -     directory.
    +  *) ab: Handle long URLs with an error instead of an buffer overflow.
    +     PR 28204. [Erik Weide <erik.weidel mplus-technologies.de>, Paul Querna]
     
    -  *) Upgraded imagemap script in cgi-bin to 1.8 version from more
    -     recent NCSA distributions.
    +  *) mod_so, core: Add new command line options to print all loaded
    +     modules. '-t -D DUMP_MODULES' and '-M' will show all static
    +     and shared modules as loaded from the configuration file.
    +     [Paul Querna]
     
    -  *) Bug fix to previous bug fix --- if .htaccess file and <Directory>
    -     exist for the same directory, use both and don't segfault.  [Reported
    -     by David Robinson]
    +  *) mod_autoindex: Add ShowForbidden to IndexOptions to list files
    +     that are not shown because the subrequest returned 401 or 403.
    +     PR 10575.  [Paul Querna]
     
    -  *) Proper makefile dependencies [David Robinson]
    +  *) mod_headers: implement "Early" processing option in post_read_request
    +     to enable Header and RequestHeader directives to be used to set up
    +     testcases for pre-fixups request phases [Nick Kew]
     
    -  *) Note (re)starts in error log --- reported by Rob Hartill.
    +  *) mod_proxy: multiple bugfixes, principally support cookies in
    +     ProxyPassReverse, and don't canonicalise URL passed to backend.
    +     Documentation correspondingly updated. [Nick Kew <nick webthing.com>]
     
    -  *) Only call no2slash() after get_path_info() has been done, to
    -     preserve multiple slashes in the PATH_INFO [NCSA compatibility,
    -     reported by Andrew Wilson, though this one is probably a real bug]
    +  *) mod_deflate: support gzip flags in inflate_out_filter
    +     [Nick Kew <nick webthing.com>]
     
    -  *) Fixed mod_imap.c --- relative paths with base_uri referer don't
    -     dump core when Referer is not supplied. [Randy Terbush]
    +  *) Drop the ErrorHeader directive which turned out to be a misnomer.
    +     Instead there's a new optional flag for the Header directive
    +     ('always'), which keeps the former ErrorHeader functionality.
    +     [André Malo]
     
    -  *) Lightly edited sample config files to refer people to our documentation
    -     instead of NCSA's, and to list Rob McCool as *original* author (also
    -     deleted his old, and no doubt non-functional email address).  Would be
    -     nice to have examples of new features...
    +  *) mod_deflate: Don't deflate responses with zero length
    +     e.g. proxied 304's [Allan Edwards]
     
    -Changes with Apache 0.8.2                                        19 Jul 1995
    +  *) <IfModule> now recognizes the module identifier in addition to the
    +     file name. PR 29003.  [Edward Rudd <eddie omegaware.com>, André Malo]
     
    -  *) Added AddLanuage code [Florent Guillaume]
    +  *) mod_ssl: Add "SSLHonorCipherOrder" directive to enable the
    +     OpenSSL 0.9.7 flag which uses the server's cipher order rather
    +     than the client's.  PR 28665.
    +     [Jim Schneider <jschneid netilla.com>]
     
    -  *) Don't say "access forbidden" when a CGI script is not found.  [Mark Cox]
    +  *) mod_ssl: Drop support for the CompatEnvVars argument to
    +     SSLOptions, which was never actually implemented in 2.0.
    +     [Joe Orton]
     
    -  *) All sorts of problems when MultiViews finds a directory.  It would
    -     be nice if mod_dir.c was robust enough to handle that, but for now,
    -     just punt.  [reported by Brian Behlendorf]
    +  *) Fix bug in mod_deflate that unconditionally sent deflate'd output
    +     even when Accept-Encoding is not present.  [Justin Erenkrantz]
     
    -  *) Wait for all children on restart, to make sure that the old socket
    -     is gone and we can reopen it.  [reported by Randy Terbush]
    +  *) Pass environment variables through to piped loggers and start
    +     them via the shell, resolving regressions since 1.3.  PR 28815
    +     [Ken Coar, Jeff Trawick]
     
    -  *) Imagemap module is enabled in default Configuration
    +  *) External rewrite map responses are no longer limited to 2048
    +     bytes.  [André Malo]
     
    -  *) RefererLog and UserAgentLog modules properly default the logfile
    -     [Randy Terbush]
    +  *) Proxy server was deleting cookies that Apache had already
    +     assigned if the origin server had set any cookies. PR 27023.
    +     [Jim Jagielski]
     
    -  *) Mark Cox's mod_cookies added to the distribution as an optional
    -     module (commented out in the default Configuration, and noted as
    -     an experiment, along with mod_dld). [Mark Cox]
    +  *) Removed old and unmaintained ap_add_named_module API and changed
    +     the following APIs to return an error instead of hard exiting:
    +     ap_add_module, ap_add_loaded_module, ap_setup_prelinked_modules,
    +     and ap_process_resource_config.  [André Malo]
     
    -  *) Compiles on ULTRIX (a continuing battle...). [Robert Thau]
    +  *) mod_headers: Allow %% in header values to represent a literal %.
    +     [André Malo]
     
    -  *) Fixed nasty bug in SIGTERM handling [reported by Randy Terbush]
    +  *) mod_headers: Allow env clauses also for 'echo' and 'unset' actions.
    +     [André Malo]
     
    -  *) Changed "Shambhala" to "Apache" in API docs. [Robert Thau]
    +  *) mod_headers: Allow 'echo' also for ErrorHeaders.  [André Malo]
     
    -  *) Added new, toothier legal disclaimer. [Robert Thau; copied from BSD
    -     license]
    +  *) mod_deflate: New option for DEFLATE output file (force-gzip),
    +     new output filter 'INFLATE' for uncompressing responses.
    +     [Nick Kew <Nick at WebThing dot com>, Ian Holsman]
     
    -Changes with Apache 0.8.1
    +  *) Added new module mod_version, which provides version dependent
    +     configuration containers.  [André Malo]
     
    -  *) New imagemap module [Randy Terbush]
    +  *) mod_log_config now logs all Set-Cookie headers if the %{Set-Cookie}o
    +     format is used.  PR 27787.  [André Malo]
     
    -  *) Replacement referer log module with NCSA-compatible RefererIgnore
    -     [Matthew Gray again]
    +  *) Allow Digest providers to return AUTH_DENIED to propagate a 401
    +     status and terminate the provider chain prior to checking the password.
    +     [Geoffrey Young]
     
    -  *) Don't mung directory listings with very long filenames.
    -     [Florent Guillaume]
    +  *) mod_cgid: Don't allow Scriptsock to be specified inside VirtualHost;
    +     Don't place script socket inside default server root instead of
    +     actual server root.  PR 27886.  [Jeff Trawick]
     
    -Changes with Apache 0.8.0 (nee Shambhala 0.6.2)                  16 Jul 1995
    +  *) mod_proxy: Fix handling of non-200 success status codes when
    +     "ProxyErrorOverride On" is configured.  PR 20183.
    +     [Marcus Janson <marcus.janson tre.se>, Joe Orton]
     
    -  *) New config script.  See INSTALL for info.  [Robert Thau]
    +  *) Threaded MPMs for Unix and Win32: Add support for ThreadStackSize
    +     directive (previously NetWare-only) to override default thread
    +     stack size for threads which handle client connections.  Required
    +     for some third-party modules on platforms with small default
    +     thread stack size.  [Jeff Trawick]
     
    -  *) Scoreboard mechanism for regulating the number of extant server
    -     processes.  MaxServers and StartServers defaults are the same as
    -     for NCSA, but the meanings are slightly different.  (Actually,
    -     I should probably lower the MaxServers default to 10).
    +  *) minor mod_auth_basic and mod_auth_digest sync.  mod_auth_basic
    +     now populates r->user with the (possibly unauthenticated) user,
    +     and mod_auth_digest returns 500 when a provider returns
    +     AUTH_GENERAL_ERROR.
    +     [Geoffrey Young]
     
    -     Before asking for a new connection, each server process checks
    -     the number of other servers which are also waiting for a
    -     connection.  If there are more than MaxServers, it quietly dies
    -     off.  Conversely, every second, the root, or caretaker, process
    -     looks to see how many servers are waiting for a new connection;
    -     if there are fewer than StartServers, it starts a new one.  This
    -     does not depend on the number of server processes already extant.
    -     The accounting is arranged through a "scoreboard" file, named
    -     /tmp/htstatus.*, on which each process has an independent file
    -     descriptor (they need to seek without interference).
    +  *) The whole codebase was relicensed and is now available under
    +     the Apache License, Version 2.0 (http://www.apache.org/licenses).
    +     [Apache Software Foundation]
     
    -     The end effect is that MaxServers is the maximum number of
    -     servers on an *inactive* server machine, but more will be forked
    -     off to handle unusually heavy loads (or unusually slow clients);
    -     these will die off when they are no longer needed --- without
    -     reverting to the overhead of full forking operation.  There is a
    -     hard maximum of 150 server processes compiled in, largely to
    -     avoid forking out of control and dragging the machine down.
    -     (This is arguably too high).
    +  *) Delete some make-generated files in the server directory during
    +     "make clean" processing.  PR 26552.  [Jeff Trawick]
     
    -     In my server endurance tests, this mechanism did not appear to
    -     impose any significant overhead, even after I forced it to put the
    -     scoreboard file on a normal filesystem (which might have more
    -     overhead than tmpfs).  [Robert Thau]
    +  *) Add core version query function (ap_get_server_revision) and
    +     accompanying ap_version_t structure (minor MMN bump).
    +     [André Malo]
     
    -  *) Set HTTP_FOO variables for SSI <!--#exec cmd-->s, not just CGI scripts.
    -     [Cliff Skolnick]
    +  *) mod_rewrite: EOLs sent by external rewritemaps are now consumed
    +     as whole. That way, on systems with more than one EOL character
    +     rewritemap programs no longer need to switch stdout to binary
    +     mode. PR 25635.  [André Malo]
     
    -  *) Read .htaccess files even in directory with <Directory> section.
    -     (Former incompatibility noted on mailing list, now fixed). [Robert
    -     Thau]
    +  *) mod_rewrite: Introduce the ability to force a content handler via
    +     the [handler=...] flag.  [André Malo]
     
    -  *) "HEAD /" gives the client a "Bad Request" error message, rather
    -     than trying to send no body *and* no headers.  [Cliff Skolnick].
    +  *) mod_rewrite: Introduce the RewriteCond -x check, which returns
    +     true if the pattern is a file with execution permissions.
    +     [André Malo]
     
    -  *) Don't produce double error reports for some very obscure cases
    -     mainly involving auth configuration (the "all modules decline to
    -     handle" case which is a sure sign of a server bug in most cases,
    -     but also happens when authentication is badly misconfigured).
    -     [Robert Thau]
    +  *) mod_rewrite: Allow proxying and RewriteRules in directory context
    +     for subrequests.  PR 14648, 15114.  [André Malo]
     
    -  *) Moved FCNTL_SERIALIZED_ACCEPT defines into conf.h (that's what
    -     it's *for*, and this sort of thing really shouldn't be cluttering
    -     up the Makefile). [Robert Thau]
    +  *) mod_rewrite: Allow setting of any valid HTTP response code.
    +     PR 25917.  [André Malo]
     
    -  *) Incidental code cleanups in http_main.c --- stop dragging
    -     sa_client around; just declare it where used.  [Robert Thau]
    +  *) mod_rewrite: Cookie creation now works locale independent.
    +     [André Malo]
     
    -  *) Another acc-related fix.  (It doesn't like const char
    -     in some places...). [Mark Cox]
    +  *) mod_ssl: Add support for distributed session cache using 'distcache'.
    +     [Geoff Thorpe <geoff geoffthorpe.net>]
     
    -Changes with Shambhala 0.6.1                                     13 Jul 1995
    +  *) mod_dav: Disallow requests with an unescaped hash character in
    +     the Request-URI.  PR 21779.  [Amit Athavale <amit_athavale lycos.com>]
     
    -  *) Fixed auth_name-related typos in http_core.c [Brian Behlendorf]
    -     Also, fixed auth typo in http_protocol.c unmasked by this fix.
    +  *) mod_proxy with ProxyErrorOverride On in a reverse-proxy configuration
    +     attaches a body to the 302 response and a wrong Content-Length header.
    +     PR: 22951 [Ermanno Scaglione scaglione ..at.. starnetone.de]
     
    -  *) Compiles clean with acc on SunOS [Paul Sutton]
    +  *) Bring ErrorHeader concept forward from 1.3, so that response
    +     header fields can be set for return even on errors or external
    +     redirects.  [Ken Coar]
     
    -  *) Reordered modules in modules.c so that Redirect takes priority
    -     over ScriptAlias, for NCSA bug-compatibility [Rob Hartill] ---
    -     believe it or not, he has an actual site with a ScriptAlias and
    -     a Redirect declared for the *exact same directory*.  Even *my*
    -     compatibility fetish wouldn't motivate me to fix this if the fix
    -     required any effort, but it doesn't, so what the hey.
    +  *) Fix <Limit> and <LimitExcept> parsing to require a closing '>'
    +     in the initial container.  PR 25414.
    +     [Geoffrey Young <geoff apache.org>]
     
    -  *) Fixed to properly default several server_rec fields for virtual
    -     servers from the corresponding fields in the main server_rec.
    -     [Cliff Skolnick --- 'port' was a particular irritant].
    +  *) Clean up httpd -V output: Instead of displaying the MPM source
    +     directory, display the MPM name and some MPM properties.
    +     [Geoffrey Young <geoff apache.org>]
     
    -  *) No longer kills off nph- child processes before they are
    -     finished sending output. [Matthew Gray]
    +  *) mod_ssl/mod_status: Re-enable support for output of SSL session
    +     cache information in server-status page.  [Joe Orton]
     
    -Changes with Shambhala 0.6.0                                     10 Jul 1995
    +  *) mod_ssl: Remove the shmht session cache, shmcb should be used
    +     instead.  [Joe Orton]
     
    -  *) Two styles of timeout --- hard and soft.  soft_timeout()s just put
    -     the connection to the client in an "aborted" state, but otherwise
    -     allow whatever handlers are running to clean up.  hard_timeout()s
    -     abort the request in progress completely; anything not tied to some
    -     resource pool cleanup will leak.  They're still around because I
    -     haven't yet come up with a more elegant way of handling
    -     timeouts when talking to something that isn't the client.  The
    -     default_handler and the dir_handler now use soft timeouts, largely
    -     so I can test the feature.  [Robert Thau]
    +  *) mod_logio: Account for some bytes handed to the network layer prior to
    +     dropped connections.  [Jeff Trawick]
     
    -  *) TransferLog "| my_postprocessor ..." seems to be there.  Note that
    -     the case of log handlers dying prematurely is probably handled VERY
    -     gracelessly at this point, and if the logger stops reading input,
    -     the server will hang.  (It is known to correctly restart the
    -     logging process on server restart; this is (should be!) going through
    -     the same SIGTERM/pause/SIGKILL routine used to ding an errant CGI
    -     script).  [Robert Thau]
    +  *) mod_autoindex: new directive IndexStyleSheet
    +    [Tyler Riddle <triddle_1999 yahoo.com>, Paul Querna <chip force-elite.com>]
     
    -  *) asis files supported (new module).  [Robert Thau]
    +  *) Fix uninitialized gprof directory name in prefork MPM.  PR 24450.
    +     [Chris Knight <Christopher.D.Knight nasa.gov>]
     
    -  *) IdentityCheck code is compiled in, but has not been tested.  (I
    -     don't know anyone who runs identd). [Robert Thau]
    -
    -  *) PATH_INFO and PATH_TRANSLATED are not set unless some real PATH_INFO
    -     came in with the request, for NCSA bug-compatibility. [Robert Thau]
    +  *) Log an error when requests for URIs which fail to map to a valid
    +     filesystem name are rejected with 403.  [Jeff Trawick]
     
    -  *) Don't leak the DIR * on HEAD request for a directory. [Robert Thau]
    +  *) Switch to APR 1.0 API.
     
    -  *) Deleted the block_alarms() stuff from dbm_auth; no longer necessary,
    -     as timeouts are not in scope. [Robert Thau]
    +  *) Major overhaul of mod_include's filter parser. The new parser code
    +     is expected to be more robust and should catch all of the edge cases
    +     that were not handled by the previous one. This includes a binary
    +     incompatible change of mod_include's external API.  [André Malo]
     
    -  *) quoted-string args in config files now handled correctly (doesn't drop
    -     the last character). [Robert Thau; reported by Randy Terbush]
    +  *) mod_rewrite: Allow forced mimetypes [T=...] to get expanded.
    +     PR 14223.  [André Malo]
     
    -  *) Fixed silly typo in http_main.c which was suddenly fatal in HP-UX.
    -     How the hell did it ever work? [Robert Thau; reported by Rob Hartill]
    +  *) mod_rewrite: Fix LA-U and LA-F lookups in directory context. Previously
    +     the current rewrite state was just used as lookup path, which lead to
    +     strange and often useless results. Related to PR 8493.  [André Malo]
     
    -  *) mod_core.c --- default_type returns DEFAULT_TYPE (the compile-time
    -     default default type); the former default default behavior when all
    -     type-checkers defaulted had been a core dump.  [Paul Sutton]
    +  *) Change Listen directive to bind to all addresses when a hostname is
    +     not specified.  [Justin Erenkrantz]
     
    -  *) Copy filenames out of the struct dirent when indexing
    -     directories.  (On Linux, readdir() returns a pointer to the same
    -     memory area every time).  Fix is in mod_dir.c.  [Paul Sutton]
    +  *) Correct failure with Listen directives on machines with IPv6 enabled.
    +     [Colm MacCárthaigh <colm stdlib.net>, Justin Erenkrantz]
     
    -Changes with Shambhala 0.5.3 [not released]
    +  *) Fix a link failure in mod_ssl when the OpenSSL libraries contain
    +     the ENGINE functions but the engine header files are missing.
    +     [Cliff Woolley]
     
    -  *) Default response handler notes "file not found" in the error log,
    -     if the file was not found.  [Cliff Skolnick].
    +  *) mod_rewrite: RewriteRules in server context using the force
    +     type feature [T=...] no longer disable MultiViews.  [André Malo]
     
    -  *) Another Cliff bug --- "GET /~user" now properly redirects (the userdir
    -     code no longer sets up bogus PATH_INFO which fakes out the directory
    -     handler). [Cliff Skolnick]
    +  *) mod_rewrite: Allow piped rewrite logs to be relative to ServerRoot.
    +     [André Malo]
     
    -Changes with Shambhala 0.5.2                                     06 Jul 1995
    +  *) mod_authz_groupfile: Strip trailing spaces of group names. This
    +     hopefully saves some hours of searching for typos. PR 12863.
    +     [André Malo]
     
    -  *) Changes to http_main.c --- root server no longer plays silly
    -     games with SIGCHLD, and so now detects and replaces dying
    -     children.  Child processes just die on SIGTERM, without taking
    -     the whole process group with them.  Potential problem --- if any
    -     child process refuses to die, we hang in restart.
    -     MaxRequestsPerChild may still not work, but it certainly works
    -     better than it did before this!  [Robert Thau]
    +  *) mod_actions: Propagate the handler name to the action script via
    +     the REDIRECT_HANDLER environment variable.  [André Malo]
     
    -  *) mod_dir.c bug fixes: ReadmeName and HeaderName
    -     work (or work better, at least); over-long description lines
    -     properly terminated. [Mark Cox]
    +  *) mod_actions: Introduce the "virtual" modifier to the Action directive,
    +     which allows the use of handlers for virtual locations. PR 8431.
    +     [André Malo]
     
    -  *) http_request.c now calls unescape_url() more places where it
    -     should [Paul Sutton].
    +  *) mod_speling: Recognize AcceptPathInfo setting for the particular
    +     location. Default is to reject path information. PR 21059.
    +     [André Malo]
     
    -  *) More directory handling bugs (reported by Cox)
    -     Parent Directory link is now set correctly. [Robert Thau]
    +  *) mod_ext_filter: Add the ability to filter request bodies.
    +     [Philipp Reisner <philipp.reisner linbit.com>]
     
    -Changes with Shambhala 0.5.1                                     04 Jul 1995
    +  *) Fix some broken log messages in WinNT MPM.
    +     [Juan Rivera <Juan.Rivera citrix.com>]
     
    -  *) Generalized cleanup interface in alloc.c --- any function can be
    -     registered with alloc.c as a cleanup for a resource pool;
    -     tracking of files and file descriptors has been reimplemented in
    -     terms of this interface, so I can give it some sort of a test.
    -     [Robert Thau]
    +  *) prefork MPM: Use the right permissions for the directory created
    +     for gprof support.  [Jim Carlson <jcarlson jnous.com>]
     
    -  *) More changes in alloc.c --- new cleanup_for_exec() function,
    -     which tracks down and closes all file descriptors which have been
    -     registered with the alloc.c machinery before the server exec()s a
    -     child process for CGI or <!--#exec-->.  CGI children now get
    -     started with exactly three file descriptors open.  Hopefully,
    -     this cures the problem Rob H. was having with overly persistent
    -     CGI connections. [Robert Thau]
    +  *) Fix a compile failure with recent OpenSSL and picky compilers
    +     (e.g., OpenSSL 0.9.7a and xlc_r on AIX).  [Jeff Trawick]
     
    -  *) Mutual exclusion around the accept() in child_main() --- this is
    -     required on at least SGI, Solaris and Linux, and is #ifdef'ed in
    -     by default on those systems only (-DFCNTL_SERIALIZED_ACCEPT).
    -     This uses fcntl(F_SETLK,...) on the error log descriptor because
    -     flock() on that descriptor won't work on systems which have BSD
    -     flock() semantics, including (I think) Linux 1.3 and Solaris.
    +  *) OpenSSL headers should be included as "openssl/ssl.h", and not rely on
    +     the INCLUDE path to be defined properly.
    +     PR 11310. [Geoff Thorpe <geoff geoffthorpe.net>]
     
    -     This does work on SunOS (when the server is idle, only one
    -     process in the pool is waiting on accept()); it *ought* to work
    -     on the other systems. [Robert Thau]
    -
    -  *) FreeBSD and BSDI portability tweaks [Chuck Murcko]
    -
    -  *) sizeof(*sa_client) bugfix from [Rob Hartill]
    -
    -  *) pstrdup(..., NULL) returns NULL, [Randy Terbush]
    +  *) Modify APACHE_CHECK_SSL_TOOLKIT to detect SSL-C. [Madhusudan Mathihalli]
     
    -  *) block_alarms() to avoid leaking the DBM* in dbm auth (this should
    -     be unnecessary if I go to the revised timeout-handling scheme).
    -     [Robert Thau]
    +  *) Replace the APACHE_CHECK_SSL_TOOLKIT method with a cleaner one, using
    +     autoconf tools (AC_CHECK_HEADER, AC_CHECK_LIB etc).
    +     [Geoff Thorpe <geoff geoffthorpe.net>]
     
    -  *) For NCSA bug-compatibility, set QUERY_STRING env var (to a null
    -     string) even if none came in with the request.  [Robert Thau]
    +  *) change directive name from 'compressionlevel' to 'deflatecompressionlevel'
    +     [Ian Holsman, André Malo]
     
    -  *) CHANGES file added to distribution ;-).
    +  *) mod_negotiation: quality values are now parsed independent from
    +     the current locale. level values are now really parsed as integers.
    +     PR 17564.  [André Malo]
     
    -Changes with Shambhala 0.4.5
    +  *) Extend mod_negotiation to evaluate the environment variables
    +     no-gzip and gzip-only-text/html the same way as mod_deflate does.
    +     [André Malo]
     
    -  *) mod_dld --- early dynamic loading support [rst]
    -  *) Add wildcard content handlers for XBITHACK; default_hander now
    -     invoked with that mechanism (as a handler hanging off mod_core) [rst]
    -  *) XBITHACK supported as a wildcard content-handler, and 
    -     configurable at run-time (not just at compile time, as in the
    -     "patchy server" releases) [rst]
    -
    -Changes with Shambhala 0.4.4                                     30 Jun 1995
    -
    -  *) Fixed basic thinkos in mod_dbm_auth.c [rst, reported by Mark Cox]
    -  *) Handle Addtype x/y .z [rst, reported by Cox]
    -
    -Changes with Shambhala 0.4.3
    -
    -  *) Fixed very dumb bug in mod_alias; "Alias" and "Redirect" are not
    -     synonymous [rst, terbush]
    -
    -Changes with Shambhala 0.4.1                                     28 Jun 1995
    -
    -  *) First-cut virtual host implementation; some refit in the config
    -     reading code, and log management, was necessary to support this [rst]
    -  *) Sub-pool machinery, originally added to avoid excessive storage
    -     allocation on listings of large directories (which turned out to
    -     be the problem that the 0.3 storage accounting was added to
    -     find).  Subrequests and mod_dir changed to use subpools.  [rst]
    -  *) More memory debugging --- free list consistency checks. [rst]
    -  *) Added err_headers to request_rec, with support elsewhere [rst]
    -  *) Other fixes to minor bugs in mod_dir and mod_includes [rst, terbush]
    -
    -Changes with Shambhala 0.3                                       19 Jun 1995
    -
    -  *) Switch ONE_PROCESS to a runtime command-line option (-X)
    -  *) Don't compile in mod_ai_backcompat by default
    -  *) Switch name of server from Apache to Shambhala in Makefile
    -  *) Add some accounting routines to track memory usage in the pools,
    -     for debugging
    -
    -Changes with Shambhala 0.2
    -
    -  *) Set DOCUMENT_ROOT CGI variable
    -  *) Add single-process debugging, as a compile-time option (ONE_PROCESS)
    -  *) Add critical section protection to handling of cleanup structures 
    -     in alloc.c [rst]
    -  *) Significant code reorg within the server core to group related
    -     functions together [rst]
    -  *) Correctly handle clients that hang up before sending any request
    -     [rst]
    -  *) Replace dying child processes. [rst]
    +  *) mod_rewrite: Fix some problems reporting errors with mapping
    +     programs (RewriteMap prg:/something).  [Jeff Trawick]
     
    -Changes with Shambhala 0.1                                       12 Jun 1995
    +  *) Return 413 if chunk-ext-header is too long rather than reading from
    +     the truncated line.  PR 15857.  [Justin Erenkrantz]
     
    -   Major rewrite of the pre-existing "patchy server" codebase, by
    -   Robert Thau (rst).  Significant portions of the server code, such
    -   as configuration-file handling and HTTP authentication support,
    -   were ripped out and rewritten from scratch.  Code that was not
    -   completely rewritten was significantly altered.
    +  *) Allow restart of httpd to occur even with syntax errors in the config
    +     file.  PR 16813.  [Justin Erenkrantz]
     
    -   Major changes with this release include:
    +  *) Use APR_LAYOUT instead of APACHE_LAYOUT in configure.  PR 15679.
    +     [Justin Erenkrantz]
     
    -   *) Introduction of the module API; in request handling, the central 
    -      machinery just dispatches to various modules, which actually do
    -      most of the work.  Configuration handling is similar --- modules
    -      declare their own commands, and the central machinery just
    -      dispatches to them.  
    +  *) Remove files on 'make distclean' that should be.  PR 15592.
    +     [Justin Erenkrantz]
     
    -      API features from shambhala/0.1 were substantially unchanged in
    -      Apache 1.0 and 1.1.  (1.0 API features not yet present in this
    -      release, such as wildcard handlers and subpools, were added in
    -      subsequent Shambhala releases, and were also generally rst's
    -      work). 
    +  *) Allow apachectl to perform status with links and elinks as well.
    +     [Justin Erenkrantz]
     
    -   *) This release included the following modules:
    +  *) mod_log_config change optional hook to return previous handler
    +     [Ian Holsman]
     
    -      mod_access      (access control --- allow and deny directives),
    -      mod_alias       (Alias and Redirect commands),
    -      mod_auth        (straight HTTP authentication, based on flat-files)
    -      mod_auth_dbm    (same, with dbm files)
    -      mod_cgi         (CGI scripts and, in this release, ScriptAlias)
    -      mod_common_log  (CLF access logs; later renamed mod_log_common)
    -      mod_dir         (directory indexing)
    -      mod_include     (server-side includes)
    -      mod_mime        (AddType directives)
    -      mod_negotiation (content negotiation)
    -      mod_userdir     (support for users' public_html directories)
    +  *) Forward port of mod_actions' ability to handle arbitrary methods
    +     with the Script directive.  [André Malo]
     
    -      It also included a mod_ai_backcompat, which was a private hack
    -      for back-compatibility with rst's own AI-lab servers.
    +  *) Let suexec send a message to stderr, if it failed or its policy
    +     was violated. This message appears in the error log and allows
    +     for easier debugging. PR 5381, 7638, 8255, 10773.  [André Malo]
     
    -      All of these modules were substantially complete, and functional 
    -      or nearly so (a few, which implemented features not in use at
    -      Thau's site, required patches of a few lines).
    +  *) Modify buildconf to copy all required files into httpd's tree.
    +     [Thom May <thom planetarytramp.net>]
     
    -   *) sub-request machinery, to allow modules to determine how other
    -      modules would assign MIME types to a given file, or optionally
    -      serve its content (this is heavily used by mod_dir, mod_include
    -      and mod_negotiation).
    +  *) Allow mod_dav to do weak entity comparison functions.
    +     [Justin Erenkrantz]
     
    -   *) Resource pool system for keeping track of memory allocated and
    -      files opened in service of a particular request.  Much of the
    -      code in the modules (when they weren't rewrites) was adjusted to 
    -      replace a pervasive convention of using fixed-size buffers on
    -      the stack with an equally pervasive convention of using memory
    -      allocated with palloc().
    +  *) Move RFC 1413 ident requests from core to new module mod_ident.
    +     [André Malo]
     
    -   *) Reorganization of data structures associated with a given
    -      request to eliminate use of global variables and the troublesome 
    -      unmunge_name function (used in NCSA and early Apache releases to 
    -      attempt to determine the URI which mapped to a given filename
    -      --- a difficult proposition, given that it is easy to produce
    -      setups in which multiple URIs map to the same file).
    +  *) Add mod_authz_owner - a forward port of "Require file-owner"
    +     and "Require file-group", which was already present in version
    +     1.3.21.  [André Malo]
     
    -   *) Source files renamed and rearranged
    +  *) Add mod_dav_lock - a generic subset of the DAV locking implementation.
    +     [Justin Erenkrantz]
     
    -   *) Very simple pre-forking behavior --- parent process forked off a 
    -      fixed number of children, and then just waited for SIGHUP.
    -
    -   *) Other more minor changes too numerous to list.
    -
    -   This release included modified versions of a lot of code from the
    -   Apache 0.6.4 public release, plus an early pre-forking patch
    -   codeveloped by Robert Thau and Rob Hartill.
    -
    -Changes with Apache 0.7.3                                        20 Jun 1995
    -
    -   *) There were a bunch of changes between Apache 0.6.4 and 0.7.3 that
    -      were incorporated by Rob Hartill on the main branch while Robert Thau
    -      worked on the Shambhala rewrite above.  Most were merged into the
    -      Shambala architecture after Apache 0.8.0.
    +  *) Replace some of the mutex locking in the worker MPM with
    +     atomic operations for higher concurrency.  [Brian Pane]
     
    -Changes with Apache 0.6.4                                        13 May 1995
    +  *) Allow 'make depend' to work with non-GCC compilers.
    +     [Justin Erenkrantz]
     
    -   *) Patches by Rob Hartill, Cliff Skolnick, Randy Terbush, Robert Thau,
    -      and others.
    +  *) If an httpd.conf has commented out AddModule directives,
    +     apxs -i -a will add an un-commented AddModule directive for
    +     the new module, which breaks the config.
    +     PR: 11212 [Joe Orton]
     
    -Changes with Apache 0.5.1                                        10 Apr 1995
    +  *) Fix mod_proxy handling of filtered input bodies.  [Justin Erenkrantz]
     
    -Changes with Apache 0.4                                          02 Apr 1995
    +  *) Move the check of the Expect request header field after the hook
    +     for ap_post_read_request, since that is the only opportunity for
    +     modules to handle Expect extensions.  [Justin Erenkrantz]
     
    -  *) Patches by Brian Behlendorf, Andrew Wilson, Robert Thau,
    -     and Rob Hartill.
    +  *) Rewrite of aaa modules to an authn/authz model.
    +     [Dirk-Willem van Gulik, Justin Erenkrantz]
     
    -Changes with Apache 0.3                                          24 Mar 1995
    +  [Apache 2.1.0-dev includes those bug fixes and changes with the
    +   Apache 2.0.xx tree as documented, and except as noted, below.]
     
    -  *) Patches by Robert Thau, David Robinson, Rob Hartill, and
    -     Carlos Varela.
    +Changes with Apache 2.0.x and later:
     
    -Changes with Apache 0.2                                          18 Mar 1995
    +  *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
     
    -  *) Based on NCSA httpd 1.3 by Rob McCool and patches by CERT,
    -     Roy Fielding, Robert Thau, Nicolas Pioch, David Robinson,
    -     Brian Behlendorf, Rob Hartill, and Cliff Skolnick.
    diff --git a/INSTALL b/INSTALL
    index 7a17d3675be..66d57637dc6 100644
    --- a/INSTALL
    +++ b/INSTALL
    @@ -1,11 +1,29 @@
     
       APACHE INSTALLATION OVERVIEW
     
    +  CAUTION
    +  -------
    +
    +  This package represents a legacy version of the Apache HTTP Server software
    +  and is not current.
    +
    +  Please note that Apache Web Server Project will only provide maintenance
    +  releases of the 2.2.x flavor through June of 2017, and will provide some
    +  security patches beyond this date through at least December of 2017.
    +  Minimal maintenance patches of 2.2.x are expected throughout this period,
    +  and users are strongly discouraged from deploying this legacy release.
    +
    +  Also note, this package includes very stale and known-vulnerable versions
    +  of the Expat [http://expat.sourceforge.net/] and PCRE [http://www.pcre.org/]
    +  packages. Users are strongly encouraged to first install the most recent
    +  versions of these components.
    +
    +
       Quick Start - Unix
       ------------------
     
       For complete installation documentation, see [ht]docs/manual/install.html or
    -  http://httpd.apache.org/docs-2.1/install.html
    +  http://httpd.apache.org/docs/2.2/install.html
     
          $ ./configure --prefix=PREFIX
          $ make
    @@ -17,17 +35,32 @@
                   might use "/usr/local/apache2" for PREFIX (without the
                   quotes).
     
    -            * If you are building on FreeBSD, be aware that threads will
    -              be disabled and the prefork MPM will be used by default,
    -              as threads do not work well with Apache on FreeBSD.  If
    -              you wish to try a threaded Apache on FreeBSD anyway, use
    -              "./configure --enable-threads".
    -
    -            * If you are building on Mac OS X (Darwin), make sure to
    -              use libtool 1.4.2 or newer.
    -
    -            * If you are a developer building Apache directly from CVS,
    -              you will need to run ./buildconf before running configure.
    +            * If you are a developer who will be linking your code with
    +              Apache or using a debugger to step through server code,
    +              ./configure's --with-included-apr option may be advantageous,
    +              as it removes the possibility of version or compile-option
    +              mismatches with APR and APR-util code.  (Many OSes now
    +              include their own version of APR and APR-util.)
    +
    +            * If you are a developer building Apache directly from
    +              Subversion, you will need to run ./buildconf before running
    +              configure. This script bootstraps the build environment and
    +              requires Python as well as GNU autoconf and libtool. If you
    +              build Apache from a release tarball, you don't have to run
    +              buildconf.
    +
    +            * If you want to build a threaded MPM (for instance worker)
    +              on  FreeBSD, be aware that threads do not work well with
    +              Apache on FreeBSD versions before 5.4-RELEASE. If you wish
    +              to try a threaded Apache on an earlier version of FreeBSD,
    +              use the --enable-threads parameter to ./configure in
    +              addition to the --with-mpm parameter.
    +
    +            * If you are building directly from Subversion on Mac OS X
    +              (Darwin), make sure to use GNU Libtool 1.4.2 or newer. All
    +              recent versions of the developer tools on this platform
    +              include a sufficiently recent version of GNU Libtool (named
    +              glibtool, but buildconf knows where to find it).
     
       For a short impression of what possibilities you have, here is a
       typical example which configures Apache for the installation tree
    @@ -40,38 +73,30 @@
          --enable-rewrite=shared \
          --enable-speling=shared 
     
    -  The easiest way to find all of the configuration flags for Apache 2.1
    +  The easiest way to find all of the configuration flags for Apache 2.2
       is to run ./configure --help.
     
     
       Quick Start - Windows
       ---------------------
     
    -  For complete documentation, see [ht]docs/manual/platform/windows.html or
    -  http://httpd.apache.org/docs-2.1/platform/windows.html.
    +  For complete documentation, see manual/platform/windows.html.en or
    +  http://httpd.apache.org/docs/2.2/platform/windows.html.
     
    -  The Apache/Win32 binaries are primarily distributed as a Windows Installer 
    -  package (.msi), and may be available as a .zip file as well.  These packages 
    -  are named apache-2.1.xx-win32-x86.msi and apache-2.1.xx-win32-x86.zip.  
    -  Please choose the .msi package if at all possible.
    +  The Apache/Win32 binaries are distributed as Windows Installer packages 
    +  (.msi) named httpd-2.2.xx-win32-x86-no_ssl.msi for a version without mod_ssl
    +  and httpd-2.2.xx-win32-x86-openssl-0.9.8x.msi for a version including the
    +  mod_ssl plus the openssl library and command line utility.  These packages
    +  may be unpacked without "installing" them by using the msiexec /a option.
     
    -  If you have unpacked a source distribution (named httpd-2.1-xx.zip, without
    -  any -win32-x86 notation) you must compile the package yourself, see the links
    +  If you have unpacked a source distribution (named httpd-2.2.x-win32-src.zip, 
    +  without any -x86 notation) you must compile the package yourself, see the links
       mentioned above.  Unless you intended to do this, please look again for the 
       binary package from http://www.apache.org/dist/httpd/binaries/win32/ and
    -  install that .msi (or .zip package, if you must.)
    -
    -  If you have unpacked this binary distribution from the .zip package, you 
    -  _must_ edit the conf/httpd.conf file (with notepad or another text editor) 
    -  to reflect the correct ServerName, Domain, and directory paths.  Search for 
    -  the text "@@" to discover what you must edit.  To install and start the 
    -  service after you have corrected the httpd.conf file, use the command
    -
    -    bin\Apache -k install
    -    bin\Apache -k start
    +  install the desired .msi package.
     
       The .msi package configures the httpd.conf file, and installs and starts 
    -  the Apache2 service for you.  It also installs plenty of useful shortcuts
    +  the Apache2.2 service for you.  It also installs plenty of useful shortcuts
       and the taskbar ApacheMonitor.  We strongly encourage you to use it.
     
     
    @@ -85,7 +110,7 @@
       comp.infosystems.www.servers.unix or
       comp.infosystems.www.servers.ms-windows.
     
    -  Thanks for using the Apache HTTP Server, version 2.1.
    +  Thanks for using the Apache HTTP Server, version 2.2.
     
                                          The Apache Software Foundation
                                          http://www.apache.org/
    diff --git a/InstallBin.dsp b/InstallBin.dsp
    index 258b88cafef..daac205210d 100644
    --- a/InstallBin.dsp
    +++ b/InstallBin.dsp
    @@ -33,15 +33,15 @@ CFG=InstallBin - Win32 Debug
     # PROP BASE Intermediate_Dir "Release"
     # PROP BASE Cmd_Line "NMAKE /f InstallBin.mak"
     # PROP BASE Rebuild_Opt "/a"
    -# PROP BASE Target_File "\Apache21\bin\httpd.exe"
    +# PROP BASE Target_File "\Apache22\bin\httpd.exe"
     # PROP BASE Bsc_Name "InstallBin.bsc"
     # PROP BASE Target_Dir ""
     # PROP Use_Debug_Libraries 0
     # PROP Output_Dir "Release"
     # PROP Intermediate_Dir "Release"
    -# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache21" SHORT=R LONG=Release _install"
    +# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache22" SHORT=R LONG=Release _install"
     # PROP Rebuild_Opt ""
    -# PROP Target_File "\Apache21\bin\httpd.exe"
    +# PROP Target_File "\Apache22\bin\httpd.exe"
     # PROP Bsc_Name "Browse\httpd.bsc"
     # PROP Target_Dir ""
     
    @@ -52,15 +52,15 @@ CFG=InstallBin - Win32 Debug
     # PROP BASE Intermediate_Dir "Debug"
     # PROP BASE Cmd_Line "NMAKE /f InstallBin.mak"
     # PROP BASE Rebuild_Opt "/a"
    -# PROP BASE Target_File "\Apache21\bin\httpd.exe"
    +# PROP BASE Target_File "\Apache22\bin\httpd.exe"
     # PROP BASE Bsc_Name "InstallBin.bsc"
     # PROP BASE Target_Dir ""
     # PROP Use_Debug_Libraries 1
     # PROP Output_Dir "Debug"
     # PROP Intermediate_Dir "Debug"
    -# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache21" SHORT=D LONG=Debug _install"
    +# PROP Cmd_Line "NMAKE /f makefile.win INSTDIR="\Apache22" SHORT=D LONG=Debug _install"
     # PROP Rebuild_Opt ""
    -# PROP Target_File "\Apache21\bin\httpd.exe"
    +# PROP Target_File "\Apache22\bin\httpd.exe"
     # PROP Bsc_Name ""
     # PROP Target_Dir ""
     
    diff --git a/LAYOUT b/LAYOUT
    index 8385e67f0f4..8c4db897b26 100644
    --- a/LAYOUT
    +++ b/LAYOUT
    @@ -1,7 +1,7 @@
    -The httpd-2.1 Source Tree LAYOUT
    +The httpd-2.2 Source Tree LAYOUT
     --------------------------------
     
    -./ .................... Top-Level httpd-2.1 Root Directory
    +./ .................... Top-Level httpd-2.2 Root Directory
     
       ABOUT_APACHE .......... Overview of the Apache HTTP Server
       LAYOUT ................ This file describing the source tree
    @@ -163,11 +163,7 @@ server/ .................
     
         experimental/ ........... 
     
    -      leader/ ................. 
    -
    -      perchild/ ............... 
    -
    -      threadpool/ ............. 
    +      event/ ................. 
     
         mpmt_os2/ ............... 
     
    diff --git a/LICENSE b/LICENSE
    index c47d2d99c73..3007bca2e12 100644
    --- a/LICENSE
    +++ b/LICENSE
    @@ -250,7 +250,7 @@ For the mod_mime_magic component:
      */
     
     
    -For the  modules\mappers\mod_imap.c component:
    +For the  modules\mappers\mod_imagemap.c component:
     
       "macmartinized" polygon code copyright 1992 by Eric Haines, erich@eye.com
     
    @@ -454,68 +454,6 @@ For the srclib\apr-util\include\apr_md4.h component:
      */
     
     
    -For the srclib\apr-util\test\testdbm.c component:
    -
    -/* ====================================================================
    - * The Apache Software License, Version 1.1
    - *
    - * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
    - * reserved.
    - *
    - * Redistribution and use in source and binary forms, with or without
    - * modification, are permitted provided that the following conditions
    - * are met:
    - *
    - * 1. Redistributions of source code must retain the above copyright
    - *    notice, this list of conditions and the following disclaimer.
    - *
    - * 2. Redistributions in binary form must reproduce the above copyright
    - *    notice, this list of conditions and the following disclaimer in
    - *    the documentation and/or other materials provided with the
    - *    distribution.
    - *
    - * 3. The end-user documentation included with the redistribution,
    - *    if any, must include the following acknowledgment:
    - *       "This product includes software developed by the
    - *        Apache Software Foundation (http://www.apache.org/)."
    - *    Alternately, this acknowledgment may appear in the software itself,
    - *    if and wherever such third-party acknowledgments normally appear.
    - *
    - * 4. The names "Apache" and "Apache Software Foundation" must
    - *    not be used to endorse or promote products derived from this
    - *    software without prior written permission. For written
    - *    permission, please contact apache@apache.org.
    - *
    - * 5. Products derived from this software may not be called "Apache",
    - *    nor may "Apache" appear in their name, without prior written
    - *    permission of the Apache Software Foundation.
    - *
    - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
    - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    - * SUCH DAMAGE.
    - * ====================================================================
    - *
    - * This software consists of voluntary contributions made by many
    - * individuals on behalf of the Apache Software Foundation.  For more
    - * information on the Apache Software Foundation, please see
    - * <http://www.apache.org/>.
    - *
    - * This file came from the SDBM package (written by oz@nexus.yorku.ca).
    - * That package was under public domain. This file has been ported to
    - * APR, updated to ANSI C and other, newer idioms, and added to the Apache
    - * codebase under the above copyright and license.
    - */
    -
    -
     For the srclib\apr-util\test\testmd4.c component:
     
      *
    diff --git a/Makefile.in b/Makefile.in
    index c5652549275..c2346c32396 100644
    --- a/Makefile.in
    +++ b/Makefile.in
    @@ -47,12 +47,14 @@ install-conf:
     	    		if test $$n_lm -eq 0 -o "x$(DSO_MODULES)" = "x"; then \
     	    			sed -e 's#@@ServerRoot@@#$(prefix)#g' \
     	    				-e 's#@@Port@@#$(PORT)#g' \
    +	    				-e 's#@@SSLPort@@#$(SSLPORT)#g' \
     	    				-e '/@@LoadModule@@/d' \
     	    				< $$i; \
     	    		else \
     	    			sed -n -e '/@@LoadModule@@/q' \
     	    				-e 's#@@ServerRoot@@#$(prefix)#g' \
     	    				-e 's#@@Port@@#$(PORT)#g' \
    +	    				-e 's#@@SSLPort@@#$(SSLPORT)#g' \
     	    				-e 'p' \
     	    				< $$i; \
     	    			for j in $(DSO_MODULES) "^EOL^"; do \
    @@ -64,6 +66,7 @@ install-conf:
     	    				-e '/@@LoadModule@@/d' \
     	    				-e 's#@@ServerRoot@@#$(prefix)#g' \
     	    				-e 's#@@Port@@#$(PORT)#g' \
    +	    				-e 's#@@SSLPort@@#$(SSLPORT)#g' \
     	    				< $$i; \
     	    		fi \
     	    	) > $(DESTDIR)$(sysconfdir)/original/$$i; \
    @@ -105,11 +108,15 @@ install-build: build/config_vars.out
     
     htdocs-srcdir = $(top_srcdir)/docs/docroot
     
    -docs::
    -	mkdir -p ./docs/api
    -	srclib/apr/build/scandoc.pl -i./build/default.pl -p./docs/api/ ./include/*.h
    +docs:
    +	@if test -d $(top_srcdir)/docs/manual/build; then \
    +	    cd $(top_srcdir)/docs/manual/build && ./build.sh all; \
    +	else \
    +	    echo 'For details on generating the docs, please read:'; \
    +	    echo '  http://httpd.apache.org/docs-project/docsformat.html'; \
    +	fi
     
    -dox::
    +dox:
     	doxygen $(top_srcdir)/docs/doxygen.conf
     
     install-htdocs:
    @@ -118,8 +125,12 @@ install-htdocs:
             else \
     	    echo Installing HTML documents ; \
     	    $(MKINSTALLDIRS) $(DESTDIR)$(htdocsdir) ; \
    -	    test -d $(htdocs-srcdir) && (cd $(htdocs-srcdir) && cp -rp * $(DESTDIR)$(htdocsdir)) ; \
    -	    cd $(DESTDIR)$(htdocsdir) && find . -name ".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \
    +	    if test -d $(htdocs-srcdir) && test "x$(RSYNC)" != "x" && test -x $(RSYNC) ; then \
    +		$(RSYNC) --exclude .svn -rlpt --numeric-ids $(htdocs-srcdir)/ $(DESTDIR)$(htdocsdir)/; \
    +	    else \
    +		test -d $(htdocs-srcdir) && (cd $(htdocs-srcdir) && cp -rp * $(DESTDIR)$(htdocsdir)) ; \
    +		cd $(DESTDIR)$(htdocsdir) && find . -name ".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \
    +	    fi; \
     	fi
     
     install-error:
    @@ -172,12 +183,14 @@ INSTALL_HEADERS = \
     	$(srcdir)/os/$(OS_DIR)/os.h \
     	$(srcdir)/server/mpm/$(MPM_SUBDIR_NAME)/*.h \
     	$(srcdir)/modules/aaa/mod_auth.h \
    +	$(srcdir)/modules/database/mod_dbd.h \
     	$(srcdir)/modules/dav/main/mod_dav.h \
     	$(srcdir)/modules/filters/mod_include.h \
     	$(srcdir)/modules/generators/mod_cgi.h \
     	$(srcdir)/modules/generators/mod_status.h \
     	$(srcdir)/modules/loggers/mod_log_config.h \
     	$(srcdir)/modules/http/mod_core.h \
    +	$(srcdir)/modules/mappers/mod_rewrite.h \
     	$(srcdir)/modules/proxy/mod_proxy.h \
     	$(srcdir)/modules/ssl/mod_ssl.h \
     	$(srcdir)/os/$(OS_DIR)/*.h
    @@ -197,8 +210,12 @@ install-man:
     	@test -d $(DESTDIR)$(manualdir)   || $(MKINSTALLDIRS) $(DESTDIR)$(manualdir)
     	@cp -p $(top_srcdir)/docs/man/*.1 $(DESTDIR)$(mandir)/man1
     	@cp -p $(top_srcdir)/docs/man/*.8 $(DESTDIR)$(mandir)/man8
    -	@(cd $(top_srcdir)/docs/manual && cp -rp * $(DESTDIR)$(manualdir))
    -	@(cd $(DESTDIR)$(manualdir) && find . -name ".svn" -type d -print | xargs rm -rf 2>/dev/null ) || true
    +	@if test "x$(RSYNC)" != "x" && test -x $(RSYNC) ; then \
    +	  $(RSYNC) --exclude .svn -rlpt --numeric-ids $(top_srcdir)/docs/manual/ $(DESTDIR)$(manualdir)/; \
    +	else \
    +	  cd $(top_srcdir)/docs/manual && cp -rp * $(DESTDIR)$(manualdir); \
    +	  cd $(DESTDIR)$(manualdir) && find . -name ".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \
    +	fi
     
     install-suexec:
     	@if test -f $(builddir)/support/suexec; then \
    diff --git a/Makefile.win b/Makefile.win
    index c6b090cee98..7962d2a13d0 100644
    --- a/Makefile.win
    +++ b/Makefile.win
    @@ -13,51 +13,83 @@
     # The following install defaults may be customized;
     #
     #   Option      Default
    -#   INSTDIR     \Apache2
    +#   INSTDIR     /Apache22
     #   PORT        80
    -#   SERVERNAME  localhost
    +#   SSLPORT     443
    +#   DOMAINNAME  example.com
    +#   SERVERNAME  www.example.com
    +#   SERVERNAME  admin@example.com
    +#
    +#   ALL         (unset)     Includes additional modules for build testing
    +#
    +# Provide a DBD_LIST argument after configuring LIB and INCLUDE with
    +# the SDK paths of the corresponding client support libraries.
    +# The ODBC driver is always built on Windows.
    +#
    +#     DBD_LIST="sqlite3 pgsql oracle mysql freetds"
    +#
    +# Provide a DBM_LIST argument after configuring LIB and INCLUDE with
    +# the SDK paths of the corresponding client support libraries.
    +# The sdbm driver is always built in.
    +#
    +#     DBM_LIST="db gdbm"
     #
     # For example;
     #
    -#   nmake /f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
    +#   nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
     #
    -# Be aware that certain awk's will not accept backslahed names,
    +# Be aware that certain awk's will not accept backslashed names,
     # so the server root should be given in forward slashes (quoted),
     # preferably with the drive designation!
     
    +!IF EXIST("httpd.vcproj") && ([devenv /help > NUL 2>&1] == 0) \
    +    && !defined(USEMAK) && !defined(USEDSW)
    +USESLN=1
    +USEMAK=0
    +USEDSW=0
    +!ELSEIF EXIST("httpd.mak") && !defined(USEDSW)
    +USESLN=0
    +USEMAK=1
    +USEDSW=0
    +!ELSE
    +USESLN=0
    +USEMAK=0
    +USEDSW=1
    +!ENDIF
    +
     default: _apacher
     
    -!IF ("$(CTARGET)" == "") && EXIST("Apache.sln")
    +!IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
     CTARGET=/build
     !ENDIF
     
     !IF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
     !MESSAGE Please check out or download and unpack the Apache Portability Runtime
    -!MESSAGE sources (apr, apr-iconv and apr-util) into your $(INSTDIR)\srclib dir.
    +!MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
     !MESSAGE Apache cannot build without these libraries!
     !MESSAGE 
    -!ERROR Need $(INSTDIR)\srclib\  apr, apr-iconv and apr-util
    +!ERROR Need srclib\  apr, apr-iconv and apr-util
     !ENDIF
     
     # Note; _tryssl: is only used by the msvc developer studio environment to 'fix up'
     #	the build, since conditional dependencies aren't supported.
     #
     !IF EXIST("srclib\openssl")
    -!IF "$(LONG)" == "Debug"
    +!IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
     SSLBIN=out32dll.dbg
     !ELSE
     SSLBIN=out32dll
     !ENDIF
     
     _tryssl:
    -!IF EXIST("modules\ssl\mod_ssl.mak")
    +!IF $(USEMAK) == 1
     	cd modules\ssl
    -	$(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 .\$(LONG)\mod_ssl.so
    +	$(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
     	cd support
    -	$(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 .\$(LONG)\abs.exe
    +	$(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..
    -!ELSEIF EXIST("Apache.sln")
    +!ELSEIF $(USESLN) == 1
     	devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
     	devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
     !ELSE
    @@ -74,18 +106,18 @@ _tryssl:
     	@echo mod_ssl and ab/ssl will not build unless openssl is installed
     	@echo in srclib\openssl.  They must be precompiled using the 
     	@echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32.  The most
    -	@echo recent version confirmed to build with mod_ssl and ab is 0.9.6h.
    +	@echo recent version confirmed to build with mod_ssl and ab is 0.9.8d.
     	@echo Available from http://www.openssl.org/
     !ENDIF
     
     !IF EXIST("srclib\zlib")
     
     _tryzlib:
    -!IF EXIST("modules\filters\mod_deflate.mak")
    +!IF $(USEMAK) == 1
     	cd modules\filters
    -	$(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 .\$(LONG)\mod_deflate.so
    +	$(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
    -!ELSEIF EXIST("Apache.sln")
    +!ELSEIF $(USESLN) == 1
     	devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
     !ELSE
     	@msdev Apache.dsw /USEENV /MAKE \
    @@ -103,34 +135,73 @@ _tryzlib:
     
     !ENDIF
     
    +
    +_trydb:
    +!IF $(USEMAK) == 1
    +	cd srclib\apr-util\dbd
    +	for %d in (odbc $(DBD_LIST)) do \
    +	  $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ..\dbm
    +	for %d in ($(DBM_LIST) x) do if not %d == x \
    +	  $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ..\..\..
    +!ELSEIF $(USESLN) == 1
    +	for %d in (odbc $(DBD_LIST)) do \
    +	  devenv Apache.sln /useenv $(CTARGET) $(LONG) /project apr_dbd_%d
    +	for %d in ($(DBM_LIST) x) do if not %d == x \
    +	  devenv Apache.sln /useenv $(CTARGET) $(LONG) /project apr_dbm_%d
    +!ELSE
    +	@for %d in (odbc $(DBD_LIST)) do \
    +	  msdev Apache.dsw /USEENV /MAKE \
    +		"apr_dbd_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
    +	@for %d in ($(DBM_LIST) x) do if not %d == x \
    +	  msdev Apache.dsw /USEENV /MAKE \
    +		"apr_dbm_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
    +!ENDIF
    +
    +
     !IF "$(INSTDIR)" == ""
    -INSTDIR=\Apache2
    +INSTDIR=\Apache22
     !ENDIF
    +!IF "$(DOMAINNAME)" == ""
    +DOMAINNAME=example.com
    +!ENDIF 
     !IF "$(SERVERNAME)" == ""
    -SERVERNAME=localhost
    +SERVERNAME=www.$(DOMAINNAME)
    +!ENDIF
    +!IF "$(SERVERADMIN)" == ""
    +SERVERADMIN=admin@$(DOMAINNAME)
     !ENDIF
     !IF "$(PORT)" == ""
     PORT=80
     !ENDIF 
    +!IF "$(SSLPORT)" == ""
    +SSLPORT=443
    +!ENDIF 
     
     !IF "$(LONG)" == ""
     !MESSAGE
    -!MESSAGE INSTDIR    = $(INSTDIR)
    -!MESSAGE SERVERNAME = $(SERVERNAME)
    -!MESSAGE PORT       = $(PORT)
    +!MESSAGE INSTDIR     = $(INSTDIR)
    +!MESSAGE DOMAINNAME  = $(DOMAINNAME)
    +!MESSAGE SERVERNAME  = $(SERVERNAME)
    +!MESSAGE SERVERADMIN = $(SERVERADMIN)
    +!MESSAGE PORT        = $(PORT)
    +!IF EXIST("srclib\openssl")
    +!MESSAGE SSLPORT     = $(SSLPORT)
    +!ENDIF
     !MESSAGE
    -!MESSAGE To change these options use 'nmake /f Makefile.win [option=value]'
    -!MESSAGE Example: nmake /f Makefile.win PORT=8080
    +!MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
    +!MESSAGE Example: nmake -f Makefile.win PORT=8080
     !MESSAGE
     !MESSAGE
     !ENDIF
     
     !IFNDEF MAKEOPT
     # Only default the behavior if MAKEOPT= is omitted
    -!IF "$(MAKE)" == "NMAKE"
    +!IFDEF _NMAKE_VER
     # Microsoft NMake options
     MAKEOPT=-nologo
    -!ELSEIF "($MAKE)" == "make"
    +!ELSEIF "$(MAKE)" == "make"
     # Borland make options?  Not really supported (yet)
     MAKEOPT=-s -N
     !ENDIF
    @@ -160,7 +231,7 @@ clean:	_cleanr _cleand
     y
     <<
     
    -!IF EXIST("httpd.mak")
    +!IF $(USEMAK) == 1
     
     _cleanr:
     	$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
    @@ -178,26 +249,34 @@ _build:
     	 $(MAKE) $(MAKEOPT) -f apriconv.mak  CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f libapriconv.mak  CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     !IF "$(CTARGET)" == "CLEAN"
    -	$(MAKE) $(MAKEOPT) /f build\modules.mk.win clean \
    +	$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
     		BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
     !ELSE
     	cd ccs
    -	$(MAKE) /nologo /f Makefile.win all \
    +	$(MAKE) $(MAKEOPT) -f Makefile.win all \
     		BUILD_MODE=$(LONG) BIND_MODE=shared
     	cd ..\ces
    -	$(MAKE) /nologo /f Makefile.win all \
    +	$(MAKE) $(MAKEOPT) -f Makefile.win all \
     		BUILD_MODE=$(LONG) BIND_MODE=shared
     	cd ..
     !ENDIF
     	cd ..\..
    -	cd srclib\apr-util\uri
    -	 $(MAKE) $(MAKEOPT) -f gen_uri_delims.mak  CFG="gen_uri_delims - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    -	cd ..\..\..
     	cd srclib\apr-util\xml\expat\lib
     	 $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..\..
     	 $(MAKE) $(MAKEOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ldap
    +	 $(MAKE) $(MAKEOPT) -f apr_ldap.mak        CFG="apr_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ..
    +	cd dbd
    +	  for %d in (odbc $(DBD_LIST)) do \
    +	    $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak   CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ..
    +	cd dbm
    +	  for %d in ($(DBM_LIST) x) do if not %d == x \
    +	    $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak   CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ..
     	cd ..\..
     	cd srclib\pcre
     	 $(MAKE) $(MAKEOPT) -f dftables.mak        CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    @@ -212,19 +291,25 @@ _build:
     	cd modules\ldap
     	 $(MAKE) $(MAKEOPT) -f mod_ldap.mak        CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
    +	cd modules\database
    +	 $(MAKE) $(MAKEOPT) -f mod_dbd.mak         CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ..\..
     	cd modules\aaa
     	 $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_authn_alias.mak CFG="mod_authn_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak  CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak   CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak   CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authn_default.mak CFG="mod_authn_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authn_file.mak  CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak   CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authz_default.mak CFG="mod_authz_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authz_host.mak  CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    -	 $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
     	cd modules\arch\win32
     	 $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    @@ -241,19 +326,37 @@ _build:
     	cd modules\dav\fs
     	 $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak      CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..\..
    +	cd modules\dav\lock
    +	 $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak    CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	cd ..\..\..
     	cd modules\debug
    +!IFDEF ALL
     	 $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak   CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +!ENDIF
     	 $(MAKE) $(MAKEOPT) -f mod_dumpio.mak      CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
    +	cd modules\echo
    +!IFDEF ALL
    +	 $(MAKE) $(MAKEOPT) -f mod_echo.mak        CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +!ENDIF
    +	cd ..\..
     	cd modules\experimental
    -	 $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +!IFDEF ALL
    +	 $(MAKE) $(MAKEOPT) -f mod_case_filter.mak CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_example.mak     CFG="mod_example - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +!ENDIF
     	cd ..\..
     	cd modules\filters
    +	 $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     !IF EXIST("srclib\zlib")
     	 $(MAKE) $(MAKEOPT) -f mod_deflate.mak     CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     !ENDIF
     	 $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_filter.mak      CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_include.mak     CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_reqtimeout.mak  CFG="mod_reqtimeout - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_substitute.mak  CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
     	cd modules\generators
     	 $(MAKE) $(MAKEOPT) -f mod_asis.mak        CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    @@ -300,10 +403,11 @@ _build:
     	 $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak  CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
     !IF EXIST("srclib\openssl")
     	cd modules\ssl
    -	 $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET) .\$(LONG)\mod_ssl.so
    +	 $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
     	cd support
     	 $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    @@ -311,9 +415,11 @@ _build:
     !ENDIF
     	cd support
     	 $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
    +	 $(MAKE) $(MAKEOPT) -f httxt2dbm.mak       CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	 $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..
    @@ -322,7 +428,7 @@ _build:
     	 $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
     	cd ..\..
     
    -!ELSEIF EXIST("Apache.sln")
    +!ELSEIF $(USESLN) == 1
     
     _cleanr:  
     	$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
    @@ -332,7 +438,11 @@ _cleand:
     
     _build:
     	echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
    +!IFDEF ALL
    +	devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildAll
    +!ELSE
     	devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
    +!ENDIF
     !IF EXIST("srclib\openssl")
     	devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
     	devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
    @@ -351,11 +461,16 @@ _cleand:
     
     _build:
     	@echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
    +!IFDEF ALL
    +	@msdev Apache.dsw /USEENV /MAKE \
    +		"BuildAll - Win32 $(LONG)" $(CTARGET)
    +!ELSE
     	@msdev Apache.dsw /USEENV /MAKE \
     		"BuildBin - Win32 $(LONG)" $(CTARGET)
    +!ENDIF
     !IF "$(CTARGET)" == "/CLEAN"
     	@cd srclib\apr-iconv
    -	@$(MAKE) $(MAKEOPT) /f build\modules.mk.win clean \
    +	@$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
     		BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
     	@cd ..\..
     !ENDIF
    @@ -378,28 +493,48 @@ _copybin:
     	copy srclib\apr\$(LONG)\libapr-1.$(src_dll) 		"$(inst_dll)" <.y
     	copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll) 	"$(inst_dll)" <.y
     	copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll) 	"$(inst_dll)" <.y
    +	copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
    +	for %d in (odbc $(DBD_LIST)) do ( \
    +	  copy srclib\apr-util\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
    +	)
    +	for %d in ($(DBM_LIST) x) do if not %d == x ( \
    +	  copy srclib\apr-util\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
    +	)
     	copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\aaa\$(LONG)\mod_authn_alias.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authn_default.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authn_file.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authz_default.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authz_host.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so) 	"$(inst_so)" <.y
     	copy modules\aaa\$(LONG)\mod_authz_user.$(src_so) 	"$(inst_so)" <.y
    -	copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)	"$(inst_so)" <.y
     	copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so) 	"$(inst_so)" <.y
     	copy modules\cache\$(LONG)\mod_cache.$(src_so)		"$(inst_so)" <.y
     	copy modules\cache\$(LONG)\mod_file_cache.$(src_so) 	"$(inst_so)" <.y
     	copy modules\cache\$(LONG)\mod_mem_cache.$(src_so)	"$(inst_so)" <.y
     	copy modules\cache\$(LONG)\mod_disk_cache.$(src_so)	"$(inst_so)" <.y
    +	copy modules\database\$(LONG)\mod_dbd.$(src_so)		"$(inst_so)" <.y
     	copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so) 	"$(inst_so)" <.y
     	copy modules\dav\main\$(LONG)\mod_dav.$(src_so)		"$(inst_so)" <.y
    +!IFDEF ALL
     	copy modules\debug\$(LONG)\mod_bucketeer.$(src_so)	"$(inst_so)" <.y
    +!ENDIF
     	copy modules\debug\$(LONG)\mod_dumpio.$(src_so)		"$(inst_so)" <.y
    -	copy modules\experimental\$(LONG)\mod_charset_lite.$(src_so)	"$(inst_so)" <.y
    +!IFDEF ALL
    +	copy modules\echo\$(LONG)\mod_echo.$(src_so)		"$(inst_so)" <.y
    +	copy modules\experimental\$(LONG)\mod_case_filter.$(src_so)	"$(inst_so)" <.y
    +	copy modules\experimental\$(LONG)\mod_case_filter_in.$(src_so)	"$(inst_so)" <.y
    +	copy modules\experimental\$(LONG)\mod_example.$(src_so)	"$(inst_so)" <.y
    +!ENDIF
    +	copy modules\filters\$(LONG)\mod_charset_lite.$(src_so)	"$(inst_so)" <.y
     !IF EXIST("srclib\zlib")
     	copy modules\filters\$(LONG)\mod_deflate.$(src_so) 	"$(inst_so)" <.y
     !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
    @@ -407,7 +542,10 @@ _copybin:
     !ENDIF
     !ENDIF
     	copy modules\filters\$(LONG)\mod_ext_filter.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\filters\$(LONG)\mod_filter.$(src_so) 	"$(inst_so)" <.y
     	copy modules\filters\$(LONG)\mod_include.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\filters\$(LONG)\mod_reqtimeout.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\filters\$(LONG)\mod_substitute.$(src_so)	"$(inst_so)" <.y
     	copy modules\generators\$(LONG)\mod_asis.$(src_so) 	"$(inst_so)" <.y
     	copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
     	copy modules\generators\$(LONG)\mod_cgi.$(src_so) 	"$(inst_so)" <.y
    @@ -443,23 +581,26 @@ _copybin:
     	copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so) 	"$(inst_so)" <.y
     	copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so) 	"$(inst_so)" <.y
     	copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) 	"$(inst_so)" <.y
    +	copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so) 	"$(inst_so)" <.y
     !IF EXIST("srclib\openssl")
    -	copy modules\ssl\$(LONG)\mod_ssl.$(src_so) 			"$(inst_so)" <.y
    -	$(quiet)copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) 	"$(inst_exe)" <.y
    -	$(quiet)copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) 	"$(inst_dll)" <.y
    -	$(quiet)copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) 	"$(inst_dll)" <.y
    -	copy support\$(LONG)\abs.$(src_exe) 	"$(inst_exe)\ab.$(src_exe)" <.y
    -!ELSE
    -	copy support\$(LONG)\ab.$(src_exe) 				"$(inst_exe)" <.y
    +	copy modules\ssl\$(LONG)\mod_ssl.$(src_so) 		"$(inst_so)" <.y
    +	-copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) 	"$(inst_dll)" <.y
    +	-copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) 	"$(inst_dll)" <.y
    +	-copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) 	"$(inst_exe)" <.y
    +	copy support\$(LONG)\abs.$(src_exe) 			"$(inst_exe)" <.y
     !ENDIF
    +	copy support\$(LONG)\ab.$(src_exe) 			"$(inst_exe)" <.y
    +	copy support\$(LONG)\htcacheclean.$(src_exe)		"$(inst_exe)" <.y
     	copy support\$(LONG)\htdbm.$(src_exe) 			"$(inst_exe)" <.y
     	copy support\$(LONG)\htdigest.$(src_exe) 		"$(inst_exe)" <.y
     	copy support\$(LONG)\htpasswd.$(src_exe) 		"$(inst_exe)" <.y
    +	copy support\$(LONG)\httxt2dbm.$(src_exe)		"$(inst_exe)" <.y
     	copy support\$(LONG)\logresolve.$(src_exe) 		"$(inst_exe)" <.y
     	copy support\$(LONG)\rotatelogs.$(src_exe) 		"$(inst_exe)" <.y
     	copy support\win32\$(LONG)\ApacheMonitor.$(src_exe) 	"$(inst_exe)" <.y
     	copy support\win32\$(LONG)\wintty.$(src_exe) 		"$(inst_exe)" <.y
     
    +
     # First we create the tree and populate the README so that 
     # whatever happens, all licensing has already propagated.  
     # Then repeatedly invoke the _copybin build to copy the
    @@ -486,18 +627,16 @@ _install:
     	-mkdir "$(INSTDIR)\lib"
     	-mkdir "$(INSTDIR)\logs"
     	-mkdir "$(INSTDIR)\modules"
    -	-mkdir "$(INSTDIR)\proxy"
    -	-mkdir "$(INSTDIR)\symbols"
    -	-mkdir "$(INSTDIR)\symbols\exe"
    -	-mkdir "$(INSTDIR)\symbols\dll"
    -	-mkdir "$(INSTDIR)\symbols\so"
     	copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
     	copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
     	copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
     	copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
    +	copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
     	copy README       "$(INSTDIR)\README.txt" <.y
    +	copy README-win32.txt "$(INSTDIR)\README-win32.txt" <.y
     !IF EXIST("srclib\openssl")
    -	type << >> "$(INSTDIR)\README.txt"
    +	-copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
    +	type << >> "$(INSTDIR)\NOTICE.txt"
     
       This binary distribution includes cryptographic software written by
       Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
    @@ -507,19 +646,19 @@ _install:
     	-awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
     BEGIN {
         print "";
    -    print "For the libeay32.dll, ssleay32.dll and certtool.exe components:";
    +    print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
         print "";
         while ( getline > 0 ) {
     	print $$0;
        }
     }
     <<
    -	copy << + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
    +	copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
     
    - Apache HTTP Server 2.0 Limited OpenSSL Distribution
    + Apache HTTP Server 2.2 Limited OpenSSL Distribution
     
      This binary distribution includes the minimal components of OpenSSL required
    - to support mod_ssl for Apache HTTP Server version 2.0 (details are listed 
    + to support mod_ssl for Apache HTTP Server version 2.2 (details are listed 
      in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
      versions of OpenSSL, please refer to the definative source,
      <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
    @@ -529,20 +668,27 @@ BEGIN {
      support for the patented encryption methods IDEA, MDC-2 or RC5.
     
     --------------------------------------------------------------------------------
    +
     <<
    -	copy << + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt" <.y
    +	-copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
    +	    + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
    +	copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
     
    - Apache HTTP Server 2.0 Limited OpenSSL Distribution
    + Apache HTTP Server 2.2 Limited OpenSSL Distribution
     
    - This binary installation of OpenSSL is a limited distribution of the documents
    - OPENSSL-LICENSE.txt, OPENSSL-NEWS.txt and OPENSSL-README.txt, and the binaries
    + This binary installation of OpenSSL is a limited distribution of the
    + files derived from the OpenSSL project:
     
    -   libeay32.dll
    -   ssleay32.dll
    -   openssl.exe
    +   LICENSE.txt (includes openssl LICENSE)
    +   OPENSSL-NEWS.txt
    +   OPENSSL-README.txt
    +   conf\openssl.cnf
    +   bin\libeay32.dll
    +   bin\ssleay32.dll
    +   bin\openssl.exe
     
      These are the minimal libraries and tools required to use mod_ssl as 
    - distributed with Apache HTTP Server version 2.0.  No library link files, 
    + distributed with Apache HTTP Server version 2.2.  No library link files, 
      headers or sources are distributed with this binary distribution.  Please 
      refer to the <http://www.openssl.org/> site for complete source or binary 
      distributions.
    @@ -559,10 +705,13 @@ BEGIN {
      OpenSSL support page.
     
     --------------------------------------------------------------------------------
    +
     <<
    +	-copy "$(INSTDIR)\OPENSSL-README.txt" \
    +	    + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
     !ENDIF
     !IF EXIST("srclib\zlib")
    -	type << >> "$(INSTDIR)\README.txt"
    +	type << >> "$(INSTDIR)\NOTICE.txt"
     
       This binary distribution of mod_deflate.so includes zlib compression code
       <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
    @@ -576,9 +725,9 @@ BEGIN {
     	    print "For the mod_deflate zlib compression component:";
     	    while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
     		print $$0;
    -            }
    -            exit 0;
    -        }
    +	    }
    +	    exit 0;
    +	}
         }
         exit 1;
     }
    @@ -590,7 +739,7 @@ BEGIN {
     		inst_dll="$(INSTDIR)\bin"                              \
     		inst_so="$(INSTDIR)\modules"
     	$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
    -		_copybin src_exe=pdb src_dll=pdb src_so=pdb quiet="-"  \
    +		_copybin src_exe=pdb src_dll=pdb src_so=pdb            \
     		inst_exe="$(INSTDIR)\bin"                              \
     		inst_dll="$(INSTDIR)\bin"                              \
     		inst_so="$(INSTDIR)\modules"
    @@ -617,16 +766,31 @@ BEGIN {
     	xcopy docs\docroot 	"$(INSTDIR)\htdocs" /d < .a
     	xcopy docs\icons 	"$(INSTDIR)\icons" /s /d < .a
     	xcopy docs\manual 	"$(INSTDIR)\manual" /s /d < .a
    -	xcopy srclib\apr-util\xml\expat\lib\expat.h 	"$(INSTDIR)\include" /d < .a
    -	xcopy srclib\apr\include\*.h 			"$(INSTDIR)\include" /d < .a
    -	xcopy srclib\apr-util\include\*.h 		"$(INSTDIR)\include" /d < .a
    -	xcopy include\*.h 				"$(INSTDIR)\include" /d < .a
    -	copy srclib\apr\Lib$(SHORT)\apr-1.lib 		"$(INSTDIR)\lib" <.y
    -	copy srclib\apr\Lib$(SHORT)\apr_src.pdb 	"$(INSTDIR)\lib" <.y
    -	copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib 	"$(INSTDIR)\lib" <.y
    -	copy srclib\apr-util\Lib$(SHORT)\aprutil_src.pdb "$(INSTDIR)\lib" <.y
    +	for %f in ( \
    +		srclib\apr-util\xml\expat\lib\expat.h \
    +		srclib\apr\include\*.h \
    +		srclib\apr-util\include\*.h \
    +		include\*.h \
    +		os\win32\os.h \
    +		server\mpm\winnt\mpm*.h \
    +		modules\aaa\mod_auth.h \
    +		modules\database\mod_dbd.h \
    +		modules\dav\main\mod_dav.h \
    +		modules\filters\mod_include.h \
    +		modules\generators\mod_cgi.h \
    +		modules\generators\mod_status.h \
    +		modules\loggers\mod_log_config.h \
    +		modules\http\mod_core.h \
    +		modules\mappers\mod_rewrite.h \
    +		modules\proxy\mod_proxy.h \
    +		modules\ssl\mod_ssl.h ) do \
    +	    @copy %f "$(INSTDIR)\include" < .y > nul
    +	copy srclib\apr\Lib$(SHORT)\apr-1.lib		"$(INSTDIR)\lib" <.y
    +	copy srclib\apr\Lib$(SHORT)\apr-1.pdb		"$(INSTDIR)\lib" <.y
    +	copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib	"$(INSTDIR)\lib" <.y
    +	copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb	"$(INSTDIR)\lib" <.y
     	copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
    -	copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml_src.pdb "$(INSTDIR)\lib" <.y
    +	copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
     	copy srclib\apr\$(LONG)\libapr-1.lib 		"$(INSTDIR)\lib" <.y
     	copy srclib\apr\$(LONG)\libapr-1.exp 		"$(INSTDIR)\lib" <.y
     	copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib	"$(INSTDIR)\lib" <.y
    @@ -637,161 +801,11 @@ BEGIN {
     	copy $(LONG)\libhttpd.lib 			"$(INSTDIR)\lib" <.y
     	copy modules\dav\main\$(LONG)\mod_dav.exp 	"$(INSTDIR)\lib" <.y
     	copy modules\dav\main\$(LONG)\mod_dav.lib 	"$(INSTDIR)\lib" <.y
    -	copy docs\conf\magic "$(INSTDIR)\conf\original\magic" <.y
    -	if not exist "$(INSTDIR)\conf\magic" \
    -	    copy "$(INSTDIR)\conf\original\magic" "$(INSTDIR)\conf\magic"
    -	copy docs\conf\mime.types "$(INSTDIR)\conf\original\mime.types" <.y
    -	if not exist "$(INSTDIR)\conf\mime.types" \
    -	    copy "$(INSTDIR)\conf\original\mime.types" "$(INSTDIR)\conf\mime.types"
    -	copy docs\conf\httpd-win.conf "$(INSTDIR)\conf\original\httpd.conf" <.y
    -	-awk -f <<script.awk "docs/conf/httpd-win.conf" "$(INSTDIR)" > "$(INSTDIR)\conf\original\httpd.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /@@ServerRoot@@/, serverroot );
    -	gsub( /@@ServerName@@/, "$(SERVERNAME)" );
    -	gsub( /@@Port@@/, "$(PORT)" );
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\httpd.conf" \
    -	    copy "$(INSTDIR)\conf\original\httpd.conf" "$(INSTDIR)\conf\httpd.conf"
    -	copy docs\conf\extra\httpd-autoindex.conf.in "$(INSTDIR)\conf\original\httpd-autoindex.conf" <.y
    -	-awk -f <<script.awk "docs/conf/extra/httpd-autoindex.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\original\extra\httpd-autoindex.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /@exp_iconsdir@/, serverroot "/icons" );
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\extra\httpd-autoindex.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-autoindex.conf" "$(INSTDIR)\conf\extra\httpd-autoindex.conf"
    -	copy docs\conf\extra\httpd-dav.conf.in "$(INSTDIR)\conf\original\httpd-dav.conf" <.y
    -	-awk -f <<script.awk "docs/conf/extra/httpd-dav.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\original\extra\httpd-dav.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /@@ServerRoot@@/, serverroot );
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\extra\httpd-dav.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-dav.conf" "$(INSTDIR)\conf\extra\httpd-dav.conf"
    -	copy docs\conf\extra\httpd-manual.conf.in "$(INSTDIR)\conf\original\httpd-manual.conf" <.y
    -	-awk -f <<script.awk "docs/conf/extra/httpd-manual.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\original\extra\httpd-manual.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /@exp_manualdir@/, serverroot "/manual" );
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\extra\httpd-manual.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-manual.conf" "$(INSTDIR)\conf\extra\httpd-manual.conf"
    -	copy docs\conf\extra\httpd-multilang-errordoc.conf.in "$(INSTDIR)\conf\original\httpd-multilang-errordoc.conf" <.y
    -	-awk -f <<script.awk "docs/conf/extra/httpd-multilang-errordoc.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\original\extra\httpd-multilang-errordoc.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /@exp_errordir@/, serverroot "/error" );
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\extra\httpd-multilang-errordoc.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-multilang-errordoc.conf" "$(INSTDIR)\conf\extra\httpd-multilang-errordoc.conf"
    -	copy docs\conf\extra\httpd-ssl.conf.in "$(INSTDIR)\conf\original\httpd-ssl.conf" <.y
    -	-awk -f <<script.awk "docs/conf/extra/httpd-ssl.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\original\extra\httpd-ssl.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /@@ServerRoot@@/, serverroot );
    -	gsub( /@exp_runtimedir@/, "logs" );
    -	gsub( /@exp_htdocsdir@/, serverroot "/htdocs" );
    -	gsub( /@exp_logfiledir@/, "logs" );
    -	gsub( /@exp_sysconfdir@/, "conf" );
    -	gsub( /@exp_cgidir@/, serverroot "/cgi-bin" );
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\extra\httpd-ssl.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-ssl.conf" "$(INSTDIR)\conf\extra\httpd-ssl.conf"
    -	copy docs\conf\extra\httpd-userdir.conf.in "$(INSTDIR)\conf\original\httpd-userdir.conf" <.y
    -	-awk -f <<script.awk "docs/conf/extra/httpd-userdir.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\original\extra\httpd-userdir.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /public_html/, "\"My Documents/My Website\"" );
    -	gsub( /\/home/, "C:/WinNT/profiles" ); 
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\extra\httpd-userdir.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-userdir.conf" "$(INSTDIR)\conf\extra\httpd-userdir.conf"
    -	copy docs\conf\extra\httpd-mpm.conf.in "$(INSTDIR)\conf\original\httpd-mpm.conf" <.y
    -	-awk -f <<script.awk "docs/conf/extra/httpd-mpm.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\original\extra\httpd-mpm.conf"
    -    BEGIN { 
    -	serverroot = ARGV[2];
    -	delete ARGV[2];
    -	gsub( /\\/, "/", serverroot );
    -	"cd" | getline root;
    -	gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
    -    }
    -    {
    -	gsub( /@rel_runtimedir@/, "logs/" );
    -	gsub( /\/home/, "C:/WinNT/profiles" ); 
    -	print $$0;
    -    }
    -<<
    -	if not exist "$(INSTDIR)\conf\extra\httpd-mpm.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-mpm.conf" "$(INSTDIR)\conf\extra\httpd-mpm.conf"
    -	copy docs\conf\extra\httpd-default.conf.in "$(INSTDIR)\conf\original\extra\httpd-default.conf" <.y
    -	if not exist "$(INSTDIR)\conf\extra\httpd-default.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-default.conf" "$(INSTDIR)\conf\extra\httpd-default.conf"
    -	copy docs\conf\extra\httpd-info.conf.in "$(INSTDIR)\conf\original\extra\httpd-info.conf" <.y
    -	if not exist "$(INSTDIR)\conf\extra\httpd-info.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-info.conf" "$(INSTDIR)\conf\extra\httpd-info.conf"
    -	copy docs\conf\extra\httpd-languages.conf.in "$(INSTDIR)\conf\original\extra\httpd-languages.conf" <.y
    -	if not exist "$(INSTDIR)\conf\extra\httpd-languages.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-languages.conf" "$(INSTDIR)\conf\extra\httpd-languages.conf"
    -	copy docs\conf\extra\httpd-vhosts.conf.in "$(INSTDIR)\conf\original\extra\httpd-vhosts.conf" <.y
    -	if not exist "$(INSTDIR)\conf\extra\httpd-vhosts.conf" \
    -	    copy "$(INSTDIR)\conf\original\extra\httpd-vhosts.conf" "$(INSTDIR)\conf\extra\httpd-vhosts.conf"
    +	for %f in ( charset.conv magic mime.types ) do ( \
    +	  copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
    +	awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
    +	    $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/ 
    +	copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
     	-awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
         { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
     	  sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
    diff --git a/NOTICE b/NOTICE
    index f074dd2219b..6efb9a5c448 100644
    --- a/NOTICE
    +++ b/NOTICE
    @@ -1,4 +1,7 @@
    -This product includes software developed by
    +Apache HTTP Server
    +Copyright 2018 The Apache Software Foundation.
    +
    +This product includes software developed at
     The Apache Software Foundation (http://www.apache.org/).
     
     Portions of this software were developed at the National Center
    diff --git a/NWGNUmakefile b/NWGNUmakefile
    index 06c0fc9456c..6965ef0d087 100644
    --- a/NWGNUmakefile
    +++ b/NWGNUmakefile
    @@ -1,3 +1,34 @@
    +#
    +# Define our required macro's if not already done.
    +#
    +
    +ifndef AP_WORK
    +export AP_WORK = $(CURDIR)
    +endif
    +
    +ifndef APR_WORK
    +ifeq "$(wildcard $(AP_WORK)/srclib/apr)" "$(AP_WORK)/srclib/apr"
    +export APR_WORK = $(AP_WORK)/srclib/apr
    +endif
    +endif
    +ifneq "$(wildcard $(APR_WORK)/include/apr_version.h)" "$(APR_WORK)/include/apr_version.h"
    +$(error APR_WORK does not point to a valid APR source tree) 
    +endif
    +
    +ifndef APU_WORK
    +ifeq "$(wildcard $(AP_WORK)/srclib/apr-util)" "$(AP_WORK)/srclib/apr-util"
    +export APU_WORK = $(AP_WORK)/srclib/apr-util
    +endif
    +endif
    +ifndef APU_WORK
    +ifeq "$(wildcard $(APR_WORK)/include/apu_version.h)" "$(APR_WORK)/include/apu_version.h"
    +export APU_WORK = $(APR_WORK)
    +endif
    +endif
    +ifneq "$(wildcard $(APU_WORK)/include/apu_version.h)" "$(APU_WORK)/include/apu_version.h"
    +$(error APU_WORK does not point to a valid APU source tree) 
    +endif
    +
     #
     # Declare the sub-directories to be built here
     #
    @@ -7,14 +38,14 @@ SUBDIRS = \
     	build \
     	support \
     	modules \
    -	$(EOLIST) 
    +	$(EOLIST)
     
     #
     # Get the 'head' of the build environment.  This includes default targets and
     # paths to tools
     #
     
    -include $(AP_WORK)\build\NWGNUhead.inc
    +include $(AP_WORK)/build/NWGNUhead.inc
     
     #
     # build this level's files
    @@ -31,17 +62,15 @@ XINCDIRS	+= \
     			$(APR)/include \
     			$(APRUTIL)/include \
     			$(AP_WORK)/include \
    -			$(AP_WORK)/modules/filters/ \
    -			$(AP_WORK)/modules/generators/ \
    -			$(AP_WORK)/modules/http/ \
    -			$(AP_WORK)/modules/loggers/ \
    -			$(AP_WORK)/modules/mappers/ \
    -			$(AP_WORK)/modules/proxy/ \
    -			$(AP_WORK)/os/NetWare \
    -			$(AP_WORK)/server/mpm/NetWare \
    -			$(AP_WORK)/srclib/pcre \
    +			$(HTTPD) \
    +			$(STDMOD)/filters \
    +			$(STDMOD)/generators \
    +			$(STDMOD)/loggers \
    +			$(STDMOD)/mappers \
    +			$(STDMOD)/proxy \
    +			$(SERVER)/mpm/NetWare \
    +			$(PCRE) \
     			$(NWOS) \
    -			$(AP_WORK)/modules/ssl \
     			$(EOLIST)
     
     #
    @@ -77,7 +106,7 @@ XDEFINES	+= \
     			$(EOLIST)
     
     XLFLAGS		+= \
    -		   	$(EOLIST)
    +			$(EOLIST)
     endif
     
     ifeq "$(RELEASE)" "noopt"
    @@ -91,7 +120,7 @@ XDEFINES	+= \
     			$(EOLIST)
     
     XLFLAGS		+= \
    -		   	$(EOLIST)
    +			$(EOLIST)
     endif
     
     ifeq "$(RELEASE)" "release"
    @@ -113,13 +142,13 @@ endif
     # This is used by the link 'name' directive to name the nlm.  If left blank
     # TARGET_nlm (see below) will be used.
     #
    -NLM_NAME		= Apache2
    +NLM_NAME	= Apache2
     
     #
    -# This is used by the link '-desc ' directive. 
    +# This is used by the link '-desc ' directive.
     # If left blank, NLM_NAME will be used.
     #
    -NLM_DESCRIPTION	= Apache Web Server $(VERSION_STR)
    +NLM_DESCRIPTION	= Apache Web Server $(VERSION_STR) $(VERSION_SKT)
     
     #
     # This is used by the '-threadname' directive.  If left blank,
    @@ -135,26 +164,26 @@ NLM_SCREEN_NAME = Apache $(VERSION_STR) for NetWare
     
     
     #
    -# If this is specified, it will override VERSION value in 
    -# $(AP_WORK)\build\NWGNUenvironment.inc
    +# If this is specified, it will override VERSION value in
    +# $(AP_WORK)/build/NWGNUenvironment.inc
     #
    -NLM_VERSION		=
    +NLM_VERSION	=
     
     #
     # If this is specified, it will override the default of 64K
     #
     NLM_STACK_SIZE	= 65536
    - 
    +
     
     #
     # If this is specified it will be used by the link '-entry' directive
     #
    -NLM_ENTRY_SYM	= _LibCPrelude
    +NLM_ENTRY_SYM	=
     
     #
     # If this is specified it will be used by the link '-exit' directive
     #
    -NLM_EXIT_SYM	= _LibCPostlude
    +NLM_EXIT_SYM	=
     
     #
     # If this is specified it will be used by the link '-check' directive
    @@ -164,14 +193,14 @@ NLM_CHECK_SYM	= _LibCCheckUnload
     #
     # If these are specified it will be used by the link '-flags' directive
     #
    -NLM_FLAGS		=  PSEUDOPREEMPTION
    +NLM_FLAGS	= PSEUDOPREEMPTION
     
     #
    -# If this is specified it will be linked in with the XDCData option in the def 
    +# If this is specified it will be linked in with the XDCData option in the def
     # file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled
     # by setting APACHE_UNIPROC in the environment
     #
    -XDCDATA         = 
    +XDCDATA		=
     
     #
     # If there is an NLM target, put it here
    @@ -184,6 +213,7 @@ TARGET_nlm = \
     # If there is an LIB target, put it here
     #
     TARGET_lib = \
    +	$(PCRELIB) \
     	$(EOLIST)
     
     #
    @@ -222,7 +252,6 @@ FILES_nlm_objs = \
     	$(OBJDIR)/modules.o \
     	$(OBJDIR)/mpm_common.o \
     	$(OBJDIR)/mpm_netware.o \
    -	$(OBJDIR)/pcre.o \
     	$(OBJDIR)/protocol.o \
     	$(OBJDIR)/provider.o \
     	$(OBJDIR)/request.o \
    @@ -244,7 +273,7 @@ FILES_nlm_objs = \
     # Build in mod_nw_ssl if Winsock is being used
     ifndef USE_STDSOCKETS
     FILES_nlm_objs += $(OBJDIR)/mod_nw_ssl.o \
    -	       $(EOLIST)
    +	$(EOLIST)
     endif
     
     #
    @@ -252,7 +281,8 @@ endif
     # These will be added as a library command in the link.opt file.
     #
     FILES_nlm_libs = \
    -   	libcpre.o \
    +	$(PCRELIB) \
    +	$(PRELUDE) \
     	$(EOLIST)
     
     #
    @@ -268,7 +298,7 @@ FILES_nlm_modules = \
     # If the nlm has a msg file, put it's path here
     #
     FILE_nlm_msg =
    - 
    +
     #
     # If the nlm has a hlp file put it's path here
     #
    @@ -284,7 +314,7 @@ FILE_nlm_copyright =
     #
     FILES_nlm_Ximports = \
     	@netware.imp \
    -	@$(APR)/aprlib.imp \
    +	@aprlib.imp \
     	@libc.imp \
     	GetCurrentAddressSpace \
     	$(EOLIST)
    @@ -292,22 +322,47 @@ FILES_nlm_Ximports = \
     # Don't link with Winsock if standard sockets are being used
     ifndef USE_STDSOCKETS
     FILES_nlm_Ximports += @ws2nlm.imp \
    -	       $(EOLIST)
    +	$(EOLIST)
     endif
    - 
    -#   
    +
    +#
     # Any symbols exported to here
     #
     FILES_nlm_exports = \
    -	@$(NWOS)/httpd.imp \
    +	@httpd.imp \
     	$(EOLIST)
    -	
    -#   
    +
    +#
     # These are the OBJ files needed to create the LIB target above.
     # Paths must all use the '/' character
     #
    +ifeq "$(wildcard $(PCRE)/pcre.c)" "$(PCRE)/pcre.c"
    +
    +FILES_lib_objs = \
    +	$(OBJDIR)/pcre.o \
    +	$(EOLIST)
    +
    +else
    +
     FILES_lib_objs = \
    -		$(EOLIST)
    +	$(OBJDIR)/chartables.o \
    +	$(OBJDIR)/pcre_compile.o \
    +	$(OBJDIR)/pcre_exec.o \
    +	$(OBJDIR)/pcre_fullinfo.o \
    +	$(OBJDIR)/pcre_globals.o \
    +	$(OBJDIR)/pcre_newline.o \
    +	$(OBJDIR)/pcre_tables.o \
    +	$(OBJDIR)/pcre_version.o \
    +	$(EOLIST)
    +ifeq "$(wildcard $(PCRE)/pcre_try_flipped.c)" "$(PCRE)/pcre_try_flipped.c"
    +FILES_lib_objs += \
    +	$(OBJDIR)/pcre_try_flipped.o \
    +	$(EOLIST)
    +endif 
    +
    +XDEFINES += -DHAVE_CONFIG_H
    +
    +endif
     
     #
     # implement targets and dependancies (leave this section alone)
    @@ -318,68 +373,71 @@ libs :: $(OBJDIR) $(TARGET_lib)
     nlms :: libs $(TARGET_nlm)
     
     #
    -# Updated this target to create necessary directories and copy files to the 
    -# correct place.  (See $(AP_WORK)\build\NWGNUhead.inc for examples)
    -#
    -install :: nlms FORCE
    -	-copy $(OBJDIR)\Apache2.nlm     $(INSTALL)\Apache2\*.*
    -	-copy ABOUT_APACHE              $(INSTALL)\Apache2\*.*
    -	-copy README                    $(INSTALL)\Apache2\*.*
    -	-copy STATUS                    $(INSTALL)\Apache2\*.*
    -	-copy LICENSE                   $(INSTALL)\Apache2\*.*
    -	-copy CHANGES                   $(INSTALL)\Apache2\*.*
    -	-copy support\dbmmanage.in      $(INSTALL)\Apache2\bin\dbmmanage.pl
    -	-copy support\logresolve.pl.in  $(INSTALL)\Apache2\bin\logresolve.pl
    -ifdef USE_STDSOCKETS	
    -	-awk  -f build\mkconfnw.awk docs\conf\httpd.conf.in >$(INSTALL)\Apache2\conf\httpd.conf
    -else
    -	-awk  -v SSL=1 -f build\mkconfnw.awk docs\conf\httpd.conf.in >$(INSTALL)\Apache2\conf\httpd.conf
    -endif	
    -	$(CHKNOT) $(INSTALL)\Apache2\conf\extra\nul mkdir $(INSTALL)\Apache2\conf\extra
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-autoindex.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-autoindex.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-dav.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-dav.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-default.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-default.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-info.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-info.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-languages.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-languages.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-manual.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-manual.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-mpm.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-mpm.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-multilang-errordoc.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-multilang-errordoc.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-ssl.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-ssl.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-userdir.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-userdir.conf
    -	-awk  -f build\mkconfnw.awk docs\conf\extra\httpd-vhosts.conf.in >$(INSTALL)\Apache2\conf\extra\httpd-vhosts.conf
    -	-copy docs\conf\magic           $(INSTALL)\Apache2\conf\magic
    -	-copy docs\conf\mime.types      $(INSTALL)\Apache2\conf\mime.types
    -	-copy docs\conf\charset.conv    $(INSTALL)\Apache2\conf\charset.conv
    -	-copy docs\cgi-examples\printenv $(INSTALL)\Apache2\cgi-bin\printenv.pl
    -	@echo rem copying the docs directories > xc.bat
    -	@echo xcopy docs\error $(INSTALL)\Apache2\error $(XCOPYSW) >> xc.bat
    -	@echo xcopy docs\docroot $(INSTALL)\Apache2\htdocs $(XCOPYSW) >> xc.bat
    -	@echo xcopy docs\icons $(INSTALL)\Apache2\icons $(XCOPYSW) >> xc.bat
    -	@echo xcopy docs\man $(INSTALL)\Apache2\man $(XCOPYSW) >> xc.bat
    -	@echo xcopy docs\manual $(INSTALL)\Apache2\manual $(XCOPYSW) >> xc.bat
    -	$(CMD) xc.bat
    -	$(DEL) xc.bat
    -
    -
    -    
    +# Updated this target to create necessary directories and copy files to the
    +# correct place.  (See $(AP_WORK)/build/NWGNUhead.inc for examples)
    +#
    +MKCNF	= $(AWK) -v BDIR=$(BASEDIR) -v PORT=$(PORT) -v SSLPORT=$(SSLPORT) -v MODSSL=$(WITH_MOD_SSL) -v BSDSKT=$(USE_STDSOCKETS) -f build/mkconfNW.awk $1 > $2
    +
    +install :: nlms instscripts FORCE
    +	$(call COPY,$(OBJDIR)/$(NLM_NAME).nlm,                         $(INSTALLBASE)/)
    +	$(call COPY,ABOUT_APACHE,                                      $(INSTALLBASE)/)
    +	$(call COPY,CHANGES,                                           $(INSTALLBASE)/)
    +	$(call COPY,LICENSE,                                           $(INSTALLBASE)/)
    +	$(call COPY,README,                                            $(INSTALLBASE)/)
    +	$(call COPY,VERSIONING,                                        $(INSTALLBASE)/)
    +	$(call COPY,STATUS,                                            $(INSTALLBASE)/)
    +	$(call COPY,support/dbmmanage.in,                              $(INSTALLBASE)/bin/dbmmanage.pl)
    +	$(call COPY,support/logresolve.pl.in,                          $(INSTALLBASE)/bin/logresolve.pl)
    +	$(call COPY,support/split-logfile.in,                          $(INSTALLBASE)/bin/split-logfile.pl)
    +	$(call COPY,support/check_forensic,                            $(INSTALLBASE)/bin/check_forensic.sh)
    +	$(call COPY,docs/conf/magic,                                   $(INSTALLBASE)/conf/)
    +	$(call COPY,docs/conf/mime.types,                              $(INSTALLBASE)/conf/)
    +	$(call COPY,docs/conf/charset.conv,                            $(INSTALLBASE)/conf/)
    +	$(call COPY,docs/cgi-examples/printenv,                        $(INSTALLBASE)/cgi-bin/printenv.pl)
    +	$(call MKCNF,docs/conf/httpd.conf.in,                          $(INSTALLBASE)/conf/httpd.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-autoindex.conf.in,          $(INSTALLBASE)/conf/extra/httpd-autoindex.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-dav.conf.in,                $(INSTALLBASE)/conf/extra/httpd-dav.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-default.conf.in,            $(INSTALLBASE)/conf/extra/httpd-default.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-info.conf.in,               $(INSTALLBASE)/conf/extra/httpd-info.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-languages.conf.in,          $(INSTALLBASE)/conf/extra/httpd-languages.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-manual.conf.in,             $(INSTALLBASE)/conf/extra/httpd-manual.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-mpm.conf.in,                $(INSTALLBASE)/conf/extra/httpd-mpm.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-multilang-errordoc.conf.in, $(INSTALLBASE)/conf/extra/httpd-multilang-errordoc.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-userdir.conf.in,            $(INSTALLBASE)/conf/extra/httpd-userdir.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-vhosts.conf.in,             $(INSTALLBASE)/conf/extra/httpd-vhosts.conf)
    +	$(call MKCNF,docs/conf/extra/httpd-ssl.conf.in,                $(INSTALLBASE)/conf/extra/httpd-ssl.conf)
    +	$(call COPYR,docs/docroot,                                     $(INSTALLBASE)/htdocs)
    +	$(call COPYR,docs/error,                                       $(INSTALLBASE)/error)
    +	$(call COPYR,docs/icons,                                       $(INSTALLBASE)/icons)
    +	$(call COPYR,docs/man,                                         $(INSTALLBASE)/man)
    +	$(call COPYR,docs/manual,                                      $(INSTALLBASE)/manual)
    +
     installdev :: FORCE
    -	-copy $(subst /,\,$(AP_WORK))\include\*.h           $(INSTALL)\Apache2\include\*.*
    -	-copy $(subst /,\,$(AP_WORK))\os\netware\*.h        $(INSTALL)\Apache2\include\*.*
    -	-copy $(subst /,\,$(NWOS))\*.imp                    $(INSTALL)\Apache2\lib\*.*
    -	-copy $(subst /,\,$(APR))\include\*.h               $(INSTALL)\Apache2\include\*.*
    -	-copy $(subst /,\,$(APRUTIL))\include\*.h           $(INSTALL)\Apache2\include\*.*
    -	-copy $(subst /,\,$(APR))\*.imp                     $(INSTALL)\Apache2\lib\*.*
    -	-copy $(subst /,\,$(NWOS))\*.xdc                    $(INSTALL)\Apache2\lib\*.*
    -    
    -prebuild :: FORCE
    -	$(MAKE) -C server -f NWGNUMakefile
    -	$(MAKE) -C srclib/pcre -f NWGNUMakefile
    -	$(MAKE) -C $(APU_WORK)/uri -f NWGNUMakefile
    -	$(CHKNOT) $(PREBUILD_INST)\nul          mkdir $(PREBUILD_INST)
    -	-copy $(AP_WORK)\server\$(OBJDIR)\*.nlm $(PREBUILD_INST)\*.*
    -	-copy $(AP_WORK)\srclib\pcre\$(basename $(OBJDIR))\*.nlm $(PREBUILD_INST)\*.*
    -	-copy $(APU_WORK)\uri\$(basename $(OBJDIR))\*.nlm $(PREBUILD_INST)\*.*
    +	$(call COPY,$(SRC)/include/*.h,                                $(INSTALLBASE)/include/)
    +	$(call COPY,$(NWOS)/*.h,                                       $(INSTALLBASE)/include/)
    +	$(call COPY,$(APR)/include/*.h,                                $(INSTALLBASE)/include/)
    +	$(call COPY,$(APRUTIL)/include/*.h,                            $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/cache/mod_cache.h,                       $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/database/mod_dbd.h,                      $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/dav/main/mod_dav.h,                      $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/filters/mod_include.h,                   $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/generators/mod_cgi.h,                    $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/generators/mod_status.h,                 $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/loggers/mod_log_config.h,                $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/mappers/mod_rewrite.h,                   $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/proxy/mod_proxy.h,                       $(INSTALLBASE)/include/)
    +	$(call COPY,$(STDMOD)/ssl/mod_ssl.h,                           $(INSTALLBASE)/include/)
    +	$(call COPY,$(APR)/*.imp,                                      $(INSTALLBASE)/lib/)
    +	$(call COPY,$(NWOS)/*.imp,                                     $(INSTALLBASE)/lib/)
    +	$(call COPY,$(NWOS)/*.xdc,                                     $(INSTALLBASE)/lib/)
    +	$(call COPY,$(APBUILD)/NWGNU*.inc,                             $(INSTALLBASE)/build/)
     
    +prebuild :: FORCE
    +	$(MAKE) -C $(SERVER) -f NWGNUmakefile
    +	$(MAKE) -C $(PCRE) -f NWGNUmakefile
    +	$(call MKDIR,$(PREBUILD_INST))
    +	$(call COPY,$(SERVER)/$(OBJDIR)/*.nlm,                         $(PREBUILD_INST)/)
    +	$(call COPY,$(PCRE)/$(OBJDIR)/*.nlm,                           $(PREBUILD_INST)/)
     
     #
     # Any specialized rules here
    @@ -387,12 +445,15 @@ prebuild :: FORCE
     
     vpath %.c server:modules/arch/netware:modules/http:modules/aaa:modules/mappers
     vpath %.c modules/generators:modules/metadata:modules/filters:modules/loggers
    -vpath %.c os/netware:server/mpm/netware:srclib/pcre
    +vpath %.c os/netware:server/mpm/netware:$(PCRE)
     
     #
     # Include the 'tail' makefile that has targets that depend on variables defined
     # in this makefile
     #
     
    -include $(AP_WORK)\build\NWGNUtail.inc
    +include $(APBUILD)/NWGNUtail.inc
    +
    +include $(AP_WORK)/build/NWGNUscripts.inc
    +
     
    diff --git a/README b/README
    index 59217a37d9b..33855184426 100644
    --- a/README
    +++ b/README
    @@ -16,15 +16,15 @@
       ------------------
     
       Details of the latest version can be found on the Apache HTTP
    -  server project page under http://httpd.apache.org/.
    +  server project page under <http://httpd.apache.org/>.
     
       Documentation
       -------------
     
       The documentation available as of the date of this release is
       included in HTML format in the docs/manual/ directory.  The most
    -  up-to-date documentation can be found at
    -  http://httpd.apache.org/docs-2.1/.
    +  up-to-date documentation for the 2.2.x releases can be found at
    +  <http://httpd.apache.org/docs/2.2/>.
     
       Installation
       ------------
    @@ -37,34 +37,84 @@
     
       Please see the file called LICENSE.
     
    +  Cryptographic Software Notice
    +  -----------------------------
    +
    +  This distribution may include software that has been designed for use
    +  with cryptographic software.  The country in which you currently reside
    +  may have restrictions on the import, possession, use, and/or re-export
    +  to another country, of encryption software.  BEFORE using any encryption
    +  software, please check your country's laws, regulations and policies
    +  concerning the import, possession, or use, and re-export of encryption
    +  software, to see if this is permitted.  See <http://www.wassenaar.org/>
    +  for more information.
    +
    +  The U.S. Government Department of Commerce, Bureau of Industry and
    +  Security (BIS), has classified this software as Export Commodity 
    +  Control Number (ECCN) 5D002.C.1, which includes information security
    +  software using or performing cryptographic functions with asymmetric
    +  algorithms.  The form and manner of this Apache Software Foundation
    +  distribution makes it eligible for export under the License Exception
    +  ENC Technology Software Unrestricted (TSU) exception (see the BIS 
    +  Export Administration Regulations, Section 740.13) for both object 
    +  code and source code.
    +
    +  The following provides more details on the included files that
    +  may be subject to export controls on cryptographic software:
    +
    +    Apache httpd 2.0 and later versions include the mod_ssl module under
    +       modules/ssl/
    +    for configuring and listening to connections over SSL encrypted
    +    network sockets by performing calls to a general-purpose encryption
    +    library, such as OpenSSL or the operating system's platform-specific
    +    SSL facilities.
    +
    +    In addition, some versions of apr-util provide an abstract interface
    +    for SSL encrypted network sockets in the files under the directory
    +       srclib/apr-util/ssl/
    +    that makes use of a general-purpose encryption library, such as
    +    OpenSSL or the operating system's platform-specific SSL facilities.
    +    Apache httpd currently does not use that apr-util interface.
    +
    +    Some object code distributions of Apache httpd, indicated with the
    +    word "crypto" in the package name, may include object code for the
    +    OpenSSL encryption library as distributed in open source form from
    +    <http://www.openssl.org/source/>.
    +
    +  The above files are optional and may be removed if the cryptographic
    +  functionality is not desired or needs to be excluded from redistribution.
    +  Distribution packages of Apache httpd that include the word "nossl"
    +  in the package name have been created without the above files and are
    +  therefore not subject to this notice.
    +
       Contacts
       --------
     
          o If you want to be informed about new code releases, bug fixes,
            security fixes, general news and information about the Apache server
            subscribe to the apache-announce mailing list as described under
    -       http://httpd.apache.org/lists.html#http-announce
    +       <http://httpd.apache.org/lists.html#http-announce>
     
          o If you want freely available support for running Apache please join the
            Apache user community by subscribing to Users Mailing List at
    -       http://httpd.apache.org/userslist.html or one of the following USENET
    -       newsgroups:
    -       comp.infosystems.www.servers.unix
    -       comp.infosystems.www.servers.ms-windows
    +       <http://httpd.apache.org/userslist.html> or one of the following
    +       USENET newsgroups:
    +         comp.infosystems.www.servers.unix
    +         comp.infosystems.www.servers.ms-windows
            Also available at: 
    -       http://groups.google.com/groups?group=comp.infosystems.www.servers
    +         <http://groups.google.com/groups?group=comp.infosystems.www.servers>
     
          o If you want commercial support for running Apache please contact
            one of the companies and contractors which are listed at
    -       http://www.apache.org/info/support.cgi
    +       <http://www.apache.org/info/support.cgi>
     
          o If you have a concrete bug report for Apache please go to the
            Apache Group Bug Database and submit your report:
    -       http://httpd.apache.org/bug_report.html
    +       <http://httpd.apache.org/bug_report.html>
     
          o If you want to participate in actively developing Apache please
            subscribe to the `dev@httpd.apache.org' mailing list as described at
    -       http://www.apache.org/lists.html#http-dev
    +       <http://httpd.apache.org/lists.html#http-dev>
     
       Acknowledgments
       ----------------
    diff --git a/README-win32.txt b/README-win32.txt
    new file mode 100644
    index 00000000000..86e232b7d4a
    --- /dev/null
    +++ b/README-win32.txt
    @@ -0,0 +1,55 @@
    +New version of APR
    +------------------
    +
    +Note that the included APR is now version 1.3, which adds several
    +subtle changes in the behavior of file handling, pipes and process
    +creation.  Most importantly, there is finer control over the handles
    +inherited by processes, so the mod_fastcgi or mod_fcgid modules must 
    +be updated for httpd-2.2.9 to run correctly on Windows.
    +
    +Most other third party modules are unaffected by this change.
    +
    +
    +Connecting to databases
    +-----------------------
    +
    +Five SQL driver connectors (dbd) are provided in the binary distribution, 
    +for MySQL, SQLite3, PostgreSQL, Oracle and ODBC.  Two keyed database
    +connectors are provided, SDBM and Oracle Berkeley DB.  All but SDBM will
    +require you to install the corresponding client driver libraries.
    +
    +The sqlitedll.zip binary (containing sqlite3.dll) can be obtained from
    +  http://www.sqlite.org/download.html
    +note that this binary was built with version 3.6.16 (earlier and later
    +version 3.6 driver .dll's may work.)  The lib binding is created using
    +LIB /DEF:sqlite3.def and using the .h files from the _amalgamation zip.
    +
    +The Oracle Instant Client - Basic driver can be obtained from
    +  http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
    +and note that this binary was built against version 11.1.0.6.0,
    +other version 11.1 drivers may work.
    +
    +The PostgreSQL client binaries may be obtained from
    +  http://www.postgresql.org/ftp/binary/v8.3.1/win32/
    +and note that this binary was built against version 8.3.1-1, and
    +again it may work with other 8.1 version .dll's.
    +
    +The MySQL client binaries ("Essentials" is sufficient) is obtained from 
    +  http://dev.mysql.com/downloads/mysql/5.1.html#win32
    +but note that once using the MySQL database, the applicable exception 
    +clause demands copy-left terms on the resulting combination.
    +
    +The Oracle Berkeley DB binaries may be obtained from 
    +  http://www.oracle.com/technology/software/products/berkeley-db/index.html
    +but note that once using the Berkeley DB code, the Oracle license
    +demands copy-left terms on the resulting combination.
    +
    +NOTE: For whichever database backend(s) you configure, the corresponding
    +driver .dll's must be in your PATH to test from console mode, and in the 
    +systemwide path if used for a service such as Apache httpd.
    +
    +The FreeTDS driver is not built on Windows, since the Microsoft ODBC is 
    +provided instead.  The sqlite2 and ndbm drivers are not used on Windows, 
    +as there is no point in legacy support of these old versions.  The ASF
    +does not distribute binary builds of the gdbm binding.
    +
    diff --git a/README.platforms b/README.platforms
    index 5307c104e11..6299f5a2fbb 100644
    --- a/README.platforms
    +++ b/README.platforms
    @@ -18,28 +18,9 @@
        well as the fact that the bundled versions are up-to-date: 
        autoconf 2.52 and (g)libtool 1.4.2.
     
    -   Earlier versions of OS X are not so fortunate, and the bundled tools
    -   are not only older versions, but also, for the most part, do not work
    -   well.  If you are interested in developing under Darwin, we
    -   recommend that you obtain and install replacement versions of what
    -   are normally installed on Darwin (and OS X, as of v10.1.5).  If
    -   you build your own versions of autoconf 2.52 and libtool 1.4.2, be
    -   aware that there are some Darwin specific patches to the official
    -   code that still must be applied for them to fully work.  A useful
    -   page to check out is:
    -
    -      http://fink.sourceforge.net/doc/porting/libtool.php
    -
    -   Pier Fumagalli also provides pre-built Darwin packages of the
    -   patched autoconf and libtool suites, available at:
    -
    -      http://www.apache.org/~pier/macosx/
    -
        You will note that GNU libtool should actually be installed as
        glibtool, to avoid conflict with a Darwin program of the same
    -   name.  Pier's packages have this change already.  All files are
    -   installed under /usr/local/ so to use these versions, and be sure
    -   that /usr/local/bin is earlier in your PATH.
    +   name.
     
        There have been some reports that autoconf 2.52 prevents Apache's
        build system from correctly handling passing multi-value envvars
    @@ -48,6 +29,18 @@
        this affects you, downgrading to autoconf 2.13 (which is installed
        on Darwin) will help.
     
    +   With Leopard (at least up to 10.5.2), when running configure
    +   you will likely see errors such as:
    +
    +      rm: conftest.dSYM: is a directory
    +
    +   This is a known issue and will be fixed in a later version of the
    +   autoconf suite. These errors can be safely ignored.
    +
    +   For later versions of OS X, (10.8 and 10.9), be sure to have Xcode
    +   AND Xcode Command Line Tools installed. httpd will built both with
    +   gcc and clang.
    +   
     ==========
       FreeBSD:
        autoconf 2.52 creates scripts that are incompatible with the Posix
    @@ -96,3 +89,17 @@
     
         (That patch works with many recent levels of Apache 2+.)
     
    +================
    +  Solaris:
    +
    +    On Solaris, better performance may be achieved by using the Sun Studio
    +    compiler instead of gcc.  As of version 11, it is now free (registration
    +    required).  Download the compiler from:
    +
    +    http://developers.sun.com/prodtech/cc/downloads/index.jsp
    +
    +    If you use Sun Studio, the following compiler flags (CFLAGS) are
    +    recommended:
    +
    +      -XO4 -xchip=generic
    +
    diff --git a/STATUS b/STATUS
    index b61dd335ae1..a9b2fb1faf5 100644
    --- a/STATUS
    +++ b/STATUS
    @@ -1,510 +1,274 @@
    -APACHE 2.1 STATUS:                                              -*-text-*-
    +APACHE 2.2 STATUS:                                              -*-text-*-
     Last modified at [$Date$]
     
    -The current version of this file can be found at:
    -
    -  * http://svn.apache.org/repos/asf/httpd/httpd/trunk/STATUS
    -
    -Documentation status is maintained seperately and can be found at:
    -
    -  * docs/STATUS in this source tree, or
    -  * http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/STATUS
    -
    -Consult the following STATUS files for information on related projects:
    -
    -  * http://svn.apache.org/repos/asf/apr/apr/trunk/STATUS
    -  * http://svn.apache.org/repos/asf/apr/apr-util/trunk/STATUS
    -
    -Patches considered for backport are noted in their branches' STATUS:
    -
    -  * http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/STATUS
    -  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/STATUS
    -
     
     Release history:
    -    [NOTE that only Alpha/Beta releases occur in 2.1 development]
     
    -    2.1.7   : in development
    -    2.1.6   : Released on  6/27/2005 as alpha.
    -    2.1.5   : Tagged on 6/17/2005. 
    +    2.2.34  : Released and Retired July 11, 2017
    +    2.2.33  : Tagged June 23, 2017. Not released.
    +    2.2.32  : Released January 13, 2017
    +    2.2.31  : Released July 16, 2015
    +    2.2.30  : Tagged July 10, 2015. Not released.
    +    2.2.29  : Released September 3, 2014
    +    2.2.28  : Tagged August 22, 2014. Not released.
    +    2.2.27  : Released March 26, 2014
    +    2.2.26  : Released November 18, 2013
    +    2.2.25  : Released July 9, 2013
    +    2.2.24  : Released February 25, 2013
    +    2.2.23  : Released September 13, 2012
    +    2.2.22  : Released January 31, 2012.
    +    2.2.21  : Released September 13, 2011.
    +    2.2.20  : Released August 30, 2011.
    +    2.2.19  : Released May 21, 2011. ABI restored.
    +    2.2.18  : Released May 11, 2011. ABI broken.
    +    2.2.17  : Released October 19, 2010.
    +    2.2.16  : Released July 25, 2010.
    +    2.2.15  : Released March 6, 2010.
    +    2.2.14  : Released October 3, 2009.
    +    2.2.13  : Released August 8, 2009.
    +    2.2.12  : Released July 28, 2009.
    +    2.2.11  : Released December 14, 2008.
    +    2.2.10  : Released October 14, 2008.
    +    2.2.9   : Released June 14, 2008.
    +    2.2.8   : Released January 19, 2008.
    +    2.2.7   : Tagged January 4, 2008. Not released.
    +    2.2.6   : Released September 7, 2007.
    +    2.2.5   : Tagged August 10, 2007, not released.
    +    2.2.4   : Released on January 9, 2007 as GA.
    +    2.2.3   : Released on July 28, 2006 as GA.
    +    2.2.2   : Released on May 1, 2006 as GA.
    +    2.2.1   : Tagged on April 1, 2006, not released.
    +    2.2.0   : Released on December 1, 2005 as GA.
    +    2.1.10  : Tagged on November 19, 2005, not released.
    +    2.1.9   : Released on November 5, 2005 as beta.
    +    2.1.8   : Released on October 1, 2005 as beta.
    +    2.1.7   : Released on September 12, 2005 as beta.
    +    2.1.6   : Released on June 27, 2005 as alpha.
    +    2.1.5   : Tagged on June 17, 2005.
         2.1.4   : not released.
    -    2.1.3   : Released on  2/22/2005 as alpha.
    -    2.1.2   : Released on 12/08/2004 as alpha.
    -    2.1.1   : Released on 11/19/2004 as alpha.
    +    2.1.3   : Released on  February 22, 2005 as alpha.
    +    2.1.2   : Released on December 8, 2004 as alpha.
    +    2.1.1   : Released on November 19, 2004 as alpha.
         2.1.0   : not released.
     
     
    -Contributors looking for a mission:
    -
    -    * Just do an egrep on "TODO" or "XXX" in the source.
    -
    -    * Review the bug database at: http://issues.apache.org/bugzilla/
    -
    -    * Review the "PatchAvailable" bugs in the bug database:
    -
    -      http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2.0&keywords=PatchAvailable
    -
    -      After testing, you can append a comment saying "Reviewed and tested".
    -
    -    * Open bugs in the bug database.
    -
    -
     CURRENT RELEASE NOTES:
     
    +  ** THIS BRANCH IS CLOSED TO DEVELOPMENT AND MAINTENANCE **
    + 
    +  * Refer to the development trunk and maintained/stable branches for current
    +    activity;
    + 
    +      http://svn.apache.org/repos/asf/httpd/httpd/trunk/STATUS
     
    -RELEASE SHOWSTOPPERS:
    -
    -    * Handling of non-trailing / config by non-default handler is broken
    -      http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105451701628081&w=2
    -      jerenkrantz asks: Why should this block a release?
    -      wsanchez agrees: this may be a change in behavior, but isn't
    -        clearly wrong, and even if so, it doesn't seem like a
    -        showstopper.
    -
    -    * the edge connection filter cannot be removed 
    -      http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105366252619530&w=2
    -
    -      jerenkrantz asks: Why should this block a release?
    -
    -      stas replies: because it requires a rewrite of the filters stack
    -            implementation (you have suggested that) and once 2.2 is
    -            released you can't do that anymore. 
    -
    -
    -CURRENT VOTES:
    -
    -    * httpd-std.conf and friends
    -
    -      a) httpd-std.conf should be tailored by install (from src or
    -         binbuild) even if user has existing httpd.conf
    -         +1:   trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim, nd,
    -               erikabele
    -           wrowe - prefer httpd.default.conf to avoid ambiguity with cvs
    -
    -      b) tailored httpd-std.conf should be copied by install to
    -         sysconfdir/examples
    -         -0:   striker
    -
    -      c) tailored httpd-std.conf should be installed to
    -         sysconfdir/examples or manualdir/exampleconf/
    -         +1:   slive, trawick, Ken, nd (prefer the latter), erikabele
    -         +1:   wsanchez (propose sysconfdir/examples/<version> for diffiness)
    -
    -      d) Installing a set of default config files when upgrading a server
    -         doesn't make ANY sense at all.
    -         +1:   ianh - medium/big sites don't use 'standard config' anyway, as it
    -                      usually needs major customizations
    -         -1:   Ken, wrowe, jwoolley, jim, nd, erikabele
    -           wrowe - diff is wonderful when comparing old/new default configs,
    -                   even for customized sites that ianh mentions
    -           jim - ... assuming that the default configs have been updated
    -                     with the required inline docs to explain the
    -                     changes
    -
    -    * If the parent process dies, should the remaining child processes
    -      "gracefully" self-terminate. Or maybe we should make it a runtime
    -      option, or have a concept of 2 parent processes (one being a 
    -      "hot spare").
    -      See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
    -
    -      Self-destruct: Ken, Martin, Lars
    -      Not self-destruct: BrianP, Ian, Cliff, BillS
    -      Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj, nd
    -
    -      /* The below was a concept on *how* to handle the problem */
    -      Have 2 parents: +1: jim
    -                      -1: Justin, wrowe, rederpj, nd
    -                      +0: Lars, Martin (while standing by, could it do
    -                                        something useful?)
    -
    -    * Make the worker MPM the default MPM for threaded Unix boxes.
    -      +1:   Justin, Ian, Cliff, BillS, striker, wrowe, nd
    -      +0:   BrianP, Aaron (mutex contention is looking better with the
    -            latest code, let's continue tuning and testing), rederpj, jim
    -      -0:   Lars
    -
    -      pquerna: Do we want to change this for 2.2?
    -
    -
    -RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
    -
    -    * Patches submitted to the bug database:
    -      http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2.0&keywords=PatchAvailable
    -
    -    * Filter stacks and subrequests, redirects and fast redirects.
    -      There's at least one PR that suffers from the current unclean behaviour
    -      (which lets the server send garbage): PR 17629
    -      nd says: Every subrequest should get its own filter stack with the
    -               subreq_core filter as bottom-most. That filter does two things:
    -                 - swallow EOS buckets
    -                 - redirect the data stream to the upper request's (rr->main)
    -                   filter chain directly after the subrequest's starting
    -                   point.
    -               Once we have a clean solution, we can try to optimize
    -               it, so that the server won't be slow down too much.
    -
    -    * RFC 2616 violations.
    -      Closed PRs: 15857.
    -      Open PRs: 15852, 15859, 15861, 15864, 15865, 15866, 15868, 15869,
    -                15870, 16120, 16125, 16126, 16133, 16135, 16136, 16137,
    -                16138, 16139, 16140, 16142, 16518, 16520, 16521, 
    -      jerenkrantz says: need to decide how many we need to backport and/or
    -                        if these rise to showstopper status.
    -      wrowe suggests: it would be nice to see "MUST" v.s. "SHOULD" v.s. "MAY"
    -                      out of this list, without reviewing them individually.
    -
    -    * There is a bug in how we sort some hooks, at least the pre-config
    -      hook.  The first time we call the hooks, they are in the correct 
    -      order, but the second time, we don't sort them correctly.  Currently,
    -      the modules/http/config.m4 file has been renamed to 
    -      modules/http/config2.m4 to work around this problem, it should moved
    -      back when this is fixed.
    -
    -        OtherBill offers that this is a SERIOUS problem.  We do not sort
    -        correctly by the ordering arguments passed to the register hook
    -        functions.  This was proven when I reordered the open_logs hook
    -        to attempt to open the error logs prior to the access logs.  Possibly
    -        the entire sorting code needs to be refactored.
    -
    -    * pipes deadlock on all platforms with limited pipe buffers (e.g. both
    -      Linux and Win32, as opposed to only Win32 on 1.3).  The right solution
    -      is either GStein's proposal for a "CGI Brigade", or OtherBill's proposal
    -      for "Poll Buckets" for "Polling Filter Chains".  Or maybe both :-)
    -
    -    * All handlers should always send content down even if r->header_only
    -      is set.  If not, it means that the HEAD requests don't generate the
    -      same headers as a GET which is wrong.
    -
    -    * exec cmd and suexec arg-passing enhancements
    -      Status: Patches proposed
    -      Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
    -      (see the "proc.patch" and "suexec-shell.patch" links in this message)
    -
    -    * The 2.0.36 worker MPM graceless shutdown changes work but are
    -      a bit clunky on some platforms; eg, on Linux, the loop to
    -      join each worker thread seems to hang, and the parent ends up
    -      killing off the child with SIGKILL.  But at least it shuts down.
    -
    -    * --enable-mods-shared="foo1 foo2" is busted on Darwin.  Pier
    -        posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
    -
    -    * We do not properly substitute the prefix-variables in the configuration
    -      scripts or generated-configs.  (i.e. if sysconfdir is etc,
    -      httpd-std.conf points to conf.)
    -
    -    * If any request gets through ap_process_request_internal() and is
    -      scheduled to be served by the core handler, without a flag that this 
    -      r->filename was tested by dir/file_walk, we need to 500 at the very 
    -      end of the ap_process_request_internal() processing so sub_req-esters
    -      know this request cannot be run.  This provides authors of older 
    -      modules better compatibility, while still improving the security and 
    -      robustness of 2.0. 
    -
    -        Status: still need to decide where this goes, OtherBill comments...
    -        Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
    -        [Deleted comments regarding the ap_run_handler phase, as irrelevant
    -            as BillS points out that "common case will be caught in
    -  	    default_handler already (with the r->finfo.filetype == 0 check)"
    -            and the issue is detecting this -before- we try to run the req.]
    -
    -	gregames says: can this happen somehow without a broken module
    -            being involved?  If not, why waste cycles trying to defend against
    -            potential broken modules?  It seems futile.
    -        wrowe counters: no, it shouldn't happen unless the module is broken.
    -            But the right answer is to fail the request up-front in dir/file
    -            walk if the path was entirely invalid; and we can't do that either
    -            UNTIL 2.1 or we break modules that haven't hooked map_to_storage.
    -
    -    * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
    -      how the Perchild MPM should be re-written.  It hasn't worked
    -      correctly since filters were added because it wasn't possible to
    -      get the content that had already been written and the socket at
    -      the same time.  This mode lets us do that, so the MPM can be
    -      fixed.
    -
    -    * Can a static httpd be built reliably?
    -        Message-ID: <20020207142751.T31582@clove.org>
    -
    -    * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
    -      removed if possible.
    -        Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
    -        Jeff wonders if we still care about this.  It is no longer an
    -        API issue but simply an extra trip through the brigade.
    -
    -    * Get perchild to work on platforms other than Linux. This
    -      will require a portable mechanism to pass data and file/socket
    -      descriptors between vhost child groups. An API was proposed
    -      on dev@apr:
    -        Message-ID: <20020111115006.K1529@clove.org>
    -
    -    * Try to get libtool inter-library dependency code working on AIX.
    -        Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
     
    -      Justin says: If we get it working on AIX, we can enable this
    -                   on all platforms and clean up our build system
    -                   somewhat.
    -      Jeff says:   I thought I tested a patch for you sometime in
    -                   January that you were going to commit within a few
    -                   days.
    -
    -    * Handling of %2f in URIs.  Currently both 1.3 and 2.0
    -      completely disallow %2f in the request URI path (see
    -      ap_unescape_url() in util.c).  It's permitted and passed
    -      through in the query string, however.  Roy says the
    -      original reason for disallowing it, from five years ago,
    -      was to protect CGI scripts that applied PATH_INFO to
    -      a filesystem location and which might be tricked by
    -      ..%2f..%2f(...).  We *should* allow path-info of the
    -      form 'http://foo.com/index.cgi/path/to/path%2finfo'.
    -      Since we've revamped a lot of our processing of path
    -      segments, it would be nice to allow this, or at least
    -      allow it conditionally with a directive.
    -
    -        OtherBill adds that %2f as the SECOND character of a multibyte
    -        sequence causes the request to fail!  This happens notably in
    -        the ja-jis encoding.
    -
    -    * FreeBSD, threads, and worker MPM.  All seems to work fine 
    -      if you only have one worker process with many threads.  Add 
    -      a second worker process and the accept lock seems to be
    -      lost.  This might be an APR issue with how it deals with
    -      the child_init hook (i.e. the fcntl lock needs to be resynced).
    -      More examination and analysis is required.
    -        Status: Works with FreeBSD 5.3. Does not work in previous versions.
    -                This has also been reported on Cygwin.
    -
    -    * There is increasing demand from module writers for an API
    -      that will allow them to control the server à la apachectl.
    -      Reasons include sole-function servers that need to die if
    -      an external dependency (e.g., a database) fails, et cetera.
    -      Perhaps something in the (ever more abused) scoreboard?
    -        
    -             On the other hand, we already have a pipe that goes between parent
    -             and child for graceful shutdown events, along with an API that
    -             can be used to send a message down that pipe.  In threaded MPMs,
    -             it is easy enough to make that one pipe be used for graceful
    -             and graceless events, and it is also easy to open that pipe
    -             to both parent and child for writing.  Then we just need to
    -             figure out how to do graceless on non-threaded MPMs.
    -
    -    * Allow the DocumentRoot directive within <Location > scopes?  This
    -      allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
    -      by a <Directory /somepath/foo> to become simply 
    -      <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
    -      and in-your-face.)  DocumentRoot unset would be accepted [and would
    -      not permit content to be served, only virtual resources such as
    -      server-info or server-status.
    -      This proposed change would _not_ depricate Alias.
    -        striker: See the thread starting with Message-ID:
    -          JLEGKKNELMHCJPNMOKHOGEEJFBAA.striker@apache.org.
    -
    -    * Win32: Rotatelogs sometimes is not terminated when Apache
    -      goes down hard.  FirstBill was looking at possibly tracking the 
    -      child's-child processes in the parent process.
    -        stoddard: Shared scoreboard might offer a good way for the parent 
    -        to keep track of 'other child' processes and whack them if the child 
    -        goes down.
    -        Other thoughts on walking the process chain using the NT kernel
    -        have also been proposed on APR.
    -
    -    * Eliminate unnecessary creation of pipes in mod_cgid
    -
    -    * Combine log_child and piped_log_spawn. Clean up http_log.c.
    -      Common logging API.
    -
    -    * Platforms that do not support fork (primarily Win32 and AS/400)
    -      Architect start-up code that avoids initializing all the modules 
    -      in the parent process on platforms that do not support fork.
    -
    -    * There are still a number of places in the code where we are
    -      losing error status (i.e. throwing away the error returned by a
    -      system call and replacing it with a generic error code)
    -
    -    * Mass vhosting version of suEXEC.
    -
    -    * All DBMs suffer from confusion in support/dbmmanage (perl script) since 
    -      the dbmmanage employs the first-matched dbm format.  This is not
    -      necessarily the library that Apache was built with.  Aught to
    -      rewrite dbmmanage upon installation to bin/ with the proper library 
    -      for predictable mod_auth_dbm administration.
    -        Questions; htdbm exists, time to kill dbmmanage, or does it remain
    -                   useful as a perl dbm management example?  If we keep it,
    -                   do we address the issue above?
    -
    -    * Integrate mod_dav.
    -        Some additional items remaining:
    -        - case_preserved_filename stuff
    -            (use the new canonical name stuff?)
    -        - find a new home for ap_text(_header)
    -        - is it possible to remove the DAV: namespace stuff from util_xml?
    -
    -    * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
    -      are a bit wonky.  The function should probably be exposed as a utility 
    -      function (such as ap_translate_url2fs() or ap_validate_fs_url() or 
    -      something).  Another approach would be a new hook phase after
    -      "translate" which would allow the module to munge what the
    -      translation has decided to do.
    -        Status: Greg +1 (volunteers)
    -
    -    * Explore use of a post-config hook for the code in http_main.c which
    -      calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
    -      ap_sort_hooks()  [to reduce the logic in main()]
    -
    -    * read the config tree just once, and process N times (as necessary)
    -
    -    * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
    -
    -    * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
    -      into a VirtualHost container) to 2.0.
    -
    -    * shift stuff to mod_core.h
    -
    -    * callers of ap_run_create_request() should check the return value
    -      for failure (Doug volunteers)
    -
    -    * Win32: Get Apache working on Windows 95/98. The following work
    -        (at least) needs to be done:
    -        - Document warning that OSR2 is required (for Crypt functions, in
    -        rand.c, at least.)  This could be resolved with an SSL library, or
    -        randomization in APR itself.
    -        - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
    -        actually works) and add in a splash of Win9x service code.
    -
    -    * Fix the worker MPM to use POD to kill child processes instead
    -      of ap_os_killpg, regardless of how they should die.
    -
    -    * Scoreboard structures could be changed in the future such that
    -      proper alignment is not maintained, leading to segfaults on 
    -      some systems.  Cliff posted a patch to deal with this issue but
    -      later recanted. See this message to dev@apr.apache.org:
    -      Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
    -                  .cs.virginia.edu>
    -
    -    * APXS either needs to be fixed completely for use when apr is out of tree,
    -      or it should drop query mode altogether, and we just grow an 
    -      httpd-config or similar arrangement. 
    -      To quote a discussion in STATUS earlier:
    -
    -          thommay: this doesn't fix all the problems with apxs and out of
    -                   tree apr/apr-util, but it's a good start. There's still the 
    -                   query cases; but I'm beginning to think that in these cases 
    -                   the app should be querying ap{r,u}-config directly
    -          gstein: agreed. apxs should deprecate the -q flag
    -          pquerna: I vote for a httpd-config, and to deprecate the -q flag.
    -          minfrin: +1 for httpd-config, and to deprecate -q.
    -
    -
    -TODO ISSUES REMAINING IN MOD_SSL:
    -
    -    * In order to use a DSO version of mod_ssl we have to link with
    -      -lssl and -lcrypto. A workaround is in place right now where the
    -      entire EXTRA_LIBS macro is being appended to the objects list, but
    -      this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
    -      autoconf function or come up with some other autoconf checks to
    -      search for libssl and libcrypto and properly add them to mod_ssl's
    -      link flags.
    -
    -    * SSL renegotiations in combination with POST request
    -
    -    * Port or dispose all code inside #if 0...#endif blocks that remain
    -      from the porting effort.
    -
    -    * Do we need SSL_set_read_ahead()?
    -
    -    * the ssl_expr api is NOT THREAD SAFE.  race conditions exist:
    -       -in ssl_expr_comp() if SSLRequire is used in .htaccess
    -        (ssl_expr_info is global)
    -       -is ssl_expr_eval() if there is an error
    -        (ssl_expr_error is global)
    -
    -    * SSLRequire directive (parsing of) leaks memory
    -
    -    * Diffie-Hellman-Parameters for temporary keys are hardcoded in
    -      ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
    -      "it is suggested that keys be changed daily or every 500
    -      transactions, and more often if possible."
    -
    -    * ssl_var_lookup could be rewritten to be MUCH faster
    -
    -    * CRL callback should be pluggable
    -
    -    * session cache store should be pluggable
    -
    -    * init functions should return status code rather than ssl_die()
    -
    -    * ssl_engine_pphrase.c needs to be reworked so it is generic enough
    -      to also decrypt proxy keys
    -
    -    * the shmcb code should just align its memory segment rather than
    -      jumping through all the "safe" memcpy and memset hoops
    -
    -
    -WISH LIST
    -    * mod_proxy: Ability to run SSL over proxy gateway connections,
    -      encrypting (or reencrypting) at the proxy.
    -
    -    * mod_cache: Handle ESI tags.
    -
    -    * mod_cache: Resolve issue of how to cache page fragements (or perhaps
    -      -if- we want to cache page fragements). Today, mod_cache/mod_mem_cache
    -      will cache #include 'virtual' requests (but not #include 'file'
    -      requests). This was accomplished by making CACHE_IN a
    -      CONTENT_SET-1 filter to force it to run before the SUBREQ_CORE
    -      filter.  But now responses cannot be cached that include the
    -      effects of having been run through CONTENT_SET filters
    -      (mod_deflate, mod_expires, etc).  We could rerun all the
    -      CONTENT_SET filters on the cached response, but this will not
    -      work in all cases. For example, mod_expires relies on installing
    -      the EXPIRATION filter during fixups. Contents served out of
    -      mod_cache (out of the quick_handler) bypass -all- the request
    -      line server hooks (Ryan really hated this. It is great for
    -      performance, but bad because of the complications listed above).
    -
    -    mod_cache/mod_mem_cache/mod_disk_cache:
    -
    -    * mod_mem_cache: Consider adding a RevalidateTimeout directive to
    -      specify time at which local cached content is to be revalidated
    -      (ie, underlying file stat'ed to see if it has changed).
    -
    -    * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
    -      jerenkrantz says: Too slow.  Get regexs away from speedy caches by
    -                        default.  Introduce a new CacheEnableRegex if you want.
    -
    -    * mod_mem_cache/mod_disk_cache: Need to be able to query cache
    -      status (num of entries, cache object properties, etc.).
    -      mod_status could be extended to query optional hooks defined
    -      by modules for the purpose of reporting module status.
    -      mod_cache (et. al.) could define optional hooks that are called
    -      to collect status.  Status should be queryable by
    -      HTTP or SNMP?
    -      jerenkrantz says: Yawn.  Who cares.
    -
    -    * MaxRequestsPerChild measures connections, not requests.
    -        Until someone has a better way, we'll probably just rename it
    -        "MaxConnectionsPerChild".
    -    
    -    * Regex containers don't work in an intutive way
    -        Status: No one has come up with an efficient way to fix this
    -        behavior. Dean has suggested getting rid of regex containers
    -        completely.
    -        OtherBill suggests: We at least seem to agree on eliminating
    -                            the <Container ~ foo> forms, and using only
    -                            <ContainerMatch foo> semantics.
    -
    -    * orig_ct in the byterange/multipart handling may not be
    -      needed. Apache 1.3 just never stashed "multipart" into
    -      r->content_type. We should probably follow suit since the
    -      byterange stuff doesn't want the rest of the code to see the
    -      multipart content-type; the other code should still think it is
    -      dealing with the <orig_ct> stuff.
    -        Status: Greg volunteers to investigate (esp. since he was most 
    -                likely the one to break it :-)
    -
    -EXPERIMENTAL MODULES:
    -
    -    Experimental modules should eventually be be promoted to fully supported
    -    status or removed from the repository entirely (ie, the
    -    'experiment' failed). This section tracks what needs to happen to 
    -    get the modules promoted to fully supported status.
    +RELEASE SHOWSTOPPERS:
     
     
    +PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
    +  [ start all new proposals below, under PATCHES PROPOSED. ]
    +
    +
    +PATCHES PROPOSED TO BACKPORT FROM TRUNK:
    +  [ New proposals should be added at the end of the list ]
    +
    +
    +PATCHES/ISSUES THAT ARE STALLED:
    +
    +  *) mod_proxy_connect: The connect method doesn't work if the client is
    +     connecting to the apache proxy through an ssl socket. Fixed.
    +     [Brad Boyer, Mark Cave-Ayland, Julian Gilbey, Fabrice Durand,
    +     David Gence, Tim Dodge, Per Gunnar Hans, Emmanuel Elango,
    +     Kevin Croft, Rudolf Cardinal]
    +     PR: 29744
    +     Trunk Patch: https://svn.apache.org/r813178
    +                  https://svn.apache.org/r1642857
    +                  https://svn.apache.org/r1670324
    +                  [plus patch and changes noted above]
    +     This code has evolved in trunk/2.4.x (including fixes) since the original
    +     commit (r813178 in 2009), specifically r1642857 and r1670324 from 2.4.x.
    +     2.2.x old r813178 patch: https://bz.apache.org/bugzilla/attachment.cgi?id=30144
    +     Delta to proposed patch: http://home.apache.org/~ylavic/patches/mod_proxy_connect-id30144_vs_r1670324.diff
    +     2.2.x Proposed Patch:    http://home.apache.org/~ylavic/patches/httpd-2.2.x-mod_proxy_connect-transfer.patch
    +     +1: wrowe, ylavic
    +     covener: this is an awful lot of code for 2.2 for something that has just never worked.
    +     ylavic: well, if it never worked, we won't break it more :)
    +             the new code would be now very closed to 2.4.x's, might be
    +             worth it for (one of) the latest 2.2.x release, and RIP...
    +
    +   * mod_proxy_balancer: Always initialize the shared parameters of a load
    +     balancer member, even if it is already used as standalone.  PR 57067.
    +     2.2.x patch: http://people.apache.org/~ylavic/httpd-2.2.x-mod_proxy_balancer-lbfactor.patch
    +     ylavic: trunk/2.4.x not concerned, 2.2.x only.
    +     -1: ylavic
    +     ylavic: After some work on PR 44736, this patch seems to not be needed,
    +             each balancer has its own scorebord entry. Withdrawing for now,
    +             until I get a clear reproducer.
    +
    +  * mod_cache: Realign the cache_quick_handler() to behave identically
    +    to the default_handler() when reacting to errors when writing to the
    +    filter stack. Stops APR errors appearing in access_log as result codes.
    +    Trunk patches: http://svn.apache.org/viewvc?view=revision&revision=1003913
    +    2.2.x patch: http://people.apache.org/~minfrin/httpd-mod_cache-errorfix-22.patch
    +    +1: minfrin
    +    trawick: any reason it shouldn't be completely aligned with default_handler's
    +             choice to return OK vs. 500?
    +    rpluem: Agreed with trawick. They should behave the same.
    +
    +   * modules/ldap/util_ldap.c: Correct erroneous messages
    +     PR: 53402
    +     trunk and 2.4.x: Erroneous message about LDAPSharedCacheSize
    +       http://svn.apache.org/viewvc?view=revision&sortby=date&revision=1096577
    +     trunk and 2.4.x: Erroneous order for the parameters
    +       http://svn.apache.org/viewvc?view=revision&sortby=date&revision=627637
    +     2.2.x patch: attached in PR 53402 (https://issues.apache.org/bugzilla/attachment.cgi?id=29502)
    +     +1: jailletc36
    +     -1: rjung
    +     rjung: the proposed 2.2 patch also changes LDAPTrustedClientCert to OR_AUTHCFG.
    +            This change seems to come from PR46541 which needs a bigger backport (r915660)
    +            Note: covener commented it in the PR as "I don't think LDAPTrustedClientCert can
    +            really be made usable in 2.2.".
    +     rjung: I don't understand what was voted on, the backport of both revisions
    +            or only the PR attachment. The latter is only about r627637.
    +     covener: withdrawing my vote, I reviewed the attachment but missed the OR_AUTHCFG change.
    +    jailletc36: Sorry for confusion. OR_AUTHCFG changes was not intentional. This is linked to
    +                r915660 on trunk, before the 2.4 branch. I copy-pasted the AP_INIT block from
    +                trunk, without seeing this change.
    +
    +  * core: Support wildcards in both the directory and file components of
    +    the path specified by the Include directive.
    +    Trunk patch: http://svn.apache.org/viewvc?rev=909878&view=rev
    +                 http://svn.apache.org/viewvc?rev=917735&view=rev
    +                 http://svn.apache.org/viewvc?rev=917759&view=rev
    +    2.2.x patch: http://people.apache.org/~minfrin/httpd-wildcard+docs2.patch
    +    Submitted by: minfrin, poirier
    +    +1: minfrin, jim, poirier
    +    -1: wrowe [This introduces new invalid paths which do not resolve to any
    +               configuration file paths, increasing the probability of unreported
    +               syntax errors to further confuse the administrator.]
    +
    +  * srclib/pcre and vendor/pcre
    +    http://www.vuxml.org/freebsd/pkg-pcre.html
    +
    +    update to pcre-7.8
    +    outcome: remove from trunk, leave alone in branches/2.2.x and branches/2.0.x
    +
    + * core, authn/z: Avoid calling access control hooks for internal requests
    +   with configurations which match those of initial request.  Revert to
    +   original behaviour (call access control hooks for internal requests
    +   with URIs different from initial request) if any access control hooks or
    +   providers are not registered as permitting this optimization.
    +   Introduce wrappers for access control hook and provider registration
    +   which can accept additional mode and flag data.  Convert common
    +   provider version strings to macros.
    +   The core purpose of this pile of patches is to avoid unnecessary
    +   authn/z hooks when a single request spawns large numbers of internal
    +   requests to which an identical set of httpd configurations apply.
    +   This permits modules such as mod_authn_dbd and mod_dav to work together
    +   acceptably.
    +   Because certain external modules such as mod_authz_svn rely on the old
    +   behaviour, this optimization can be made only when all authn/z hooks and
    +   providers are registered with the appropriate flag.
    +   It would be excellent if Windows and NetWare people could ensure this
    +   builds correctly.
    +   In particular, mod_auth.h must be included into request.c and I've left
    +   mod_auth.h under modules/aaa rather than try to replicate wrowe's work
    +   in trunk moving all the include files around.
    +   I'm open to suggestions that this remain in trunk only, but in that case,
    +   it would be very helpful to know whether most people expect a 2.4 branch
    +   or just a 3.0 branch to be next.  If 3.0, some of the backwards
    +   compatibility work could potentially be ditched.
    +   Trunk version of patches:
    +     http://svn.apache.org/viewvc?view=rev&revision=644525
    +     http://svn.apache.org/viewvc?view=rev&revision=644562 (trunk MMN bump)
    +     http://svn.apache.org/viewvc?view=rev&revision=645395
    +     http://svn.apache.org/viewvc?view=rev&revision=645472
    +     http://svn.apache.org/viewvc?view=rev&revision=645540
    +     http://svn.apache.org/viewvc?view=rev&revision=646445 (reverted by r659160)
    +     http://svn.apache.org/viewvc?view=rev&revision=658046
    +     http://svn.apache.org/viewvc?view=rev&revision=659160
    +   Backport version for 2.2.x of patch:
    +     http://people.apache.org/~chrisd/patches/walk_cache/walk_cache-2.2.x.patch
    +   +1: chrisd
    +   -0: jim (would prefer to see in 2.4, and to push 2.4 out)
    +
    +   * beos MPM: Create pmain pool and run modules' child_init hooks when
    +     entering ap_mpm_run(), then destroy pmain when exiting ap_mpm_run().
    +     Otherwise modules' child_init hooks appear to never be executed.
    +     Also, destroying pmain ensures that cleanups registered in modules'
    +     child_init hooks are performed (e.g., mod_log_config and mod_dbd).
    +     Trunk version of patch:
    +       http://svn.apache.org/viewvc?view=rev&revision=491922
    +     2.2.x version of patch:
    +       http://people.apache.org/~chrisd/patches/mod_dbd_pools_groups/mpm_child_init-beos-2.2.x.patch
    +     +0: chrisd (abstaining; unable to test)
    +
    + * prefork MPM: simple patch to enable mod_privileges.
    +   trunk: N/A (this patch substitutes for the availability of
    +               drop_privileges hook).
    +   2.2.x patch:
    +      http://people.apache.org/~niq/patches/2.2mod_privileges-core-patch
    +   +1: niq, igalic
    +
    + * unixd: set suexec_enabled correctly when httpd is run by non-root
    +   PR 42175
    +   Trunk Patch: http://cvs.apache.org/viewvc?view=rev&revision=791337
    +   2.2.x Patch: https://issues.apache.org/bugzilla/attachment.cgi?id=20004
    +   +1: niq
    +   -0: wrowe; Please refer to man 'access' BUGS section about linux 2.4
    +              vs 2.6 kernels, potentially a suspect test for root.
    +   sf:        Couldn't the linux 2.4 bug be worked around by calling access
    +              twice? Once with R_OK and once with X_OK.
    +   wrowe:     It would seem we only need to test for X_OK?
    +
    + * mod_disk_cache: Decline the opportunity to cache if the response is
    +    a 206 Partial Content. This stops a reverse proxied partial response
    +    from becoming cached, and then being served in subsequent responses.
    +    Trunk patch: http://svn.apache.org/viewvc?rev=951222&view=rev
    +    2.2.x patch: http://people.apache.org/~minfrin/httpd-cache-partial-2.2.patch
    +    +1: minfrin
    +    niq asks: I can see the logic of not cacheing partial responses,
    +    but why should mod_disk_cache worry about them if mod_cache allows
    +    them, as in the following proposal?
    +    rpluem says: As poirier correctly mentions, the same must be done for mod_mem_cache
    +    as well.
    +
    +  *) mod_cache: Explicitly allow cache implementations to cache a 206 Partial
    +     Response if they so choose to do so. Previously an attempt to cache a 206
    +     was arbitrarily allowed if the response contained an Expires or
    +     Cache-Control header, and arbitrarily denied if both headers were missing.
    +     Trunk patch: http://svn.apache.org/viewvc?rev=952823&view=rev
    +     2.2.x Patch: http://people.apache.org/~minfrin/httpd-cache-partial2-2.2.patch
    +     +1: minfrin
    +     -1: rpluem: Until the patch proposal above for mod_disk_cache is backported
    +                 and a similar patch for mod_mem_cache is proposed (no backport
    +                 possible since mod_mem_cache is no longer in trunk) and
    +                 committed.
    +
    +   * mod_proxy: Release the backend connection as soon as EOS is detected,
    +     so the backend isn't forced to wait for the client to eventually
    +     acknowledge the data.
    +     Trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1026665
    +                  http://svn.apache.org/viewvc?view=revision&revision=1030850
    +                  http://svn.apache.org/viewvc?view=revision&revision=1030855
    +                  http://svn.apache.org/viewvc?view=revision&revision=1035605
    +     2.2.x patch: http://people.apache.org/~minfrin/httpd-mod_proxy-closeearly22-4.patch
    +     +1: minfrin
    +     +1: jim (requires mmn bump due to proxy_conn_rec)
    +     rpluem says: r1052224 r1052314 need to be added as well as the patch above
    +                  has a thread safety issue.
    +     minfrin: r1055246 needs to be added to r1052314 to ensure the cleanup
    +              isn't attempted twice.
    +     rpluem says: Mind to update the 2.2.x version of the patch with r1052224,
    +                  r1052314, r1055246 and r1055570 (Comment fix by Jim)?
    +
    +  * cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will be
    +    compiled by the build compiler instead of the host compiler.
    +    Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
    +    Since PCRE is included with 2.2.x this patch also takes care for dftables.
    +    Trunk patches: http://svn.apache.org/viewvc?view=revision&revision=1327907
    +                   http://svn.apache.org/viewvc?view=revision&revision=1328390
    +                   http://svn.apache.org/viewvc?view=revision&revision=1328714
    +    2.4 patch: http://people.apache.org/~fuankg/diffs/httpd-2.4.x-cross_compile.diff
    +    2.2 patch: http://people.apache.org/~fuankg/diffs/httpd-2.2.x-cross_compile.diff
    +    fuankg: on hold until we agree for a better and more simple solution ...
    diff --git a/THIS_BRANCH_IS_CLOSED_TO_DEVELOPMENT_AND_MAINTENANCE b/THIS_BRANCH_IS_CLOSED_TO_DEVELOPMENT_AND_MAINTENANCE
    new file mode 100644
    index 00000000000..e69de29bb2d
    diff --git a/VERSIONING b/VERSIONING
    index 3bfea278b1b..613f19ca7d7 100644
    --- a/VERSIONING
    +++ b/VERSIONING
    @@ -1,6 +1,6 @@
     APACHE 2.x VERSIONING
     =====================
    -Last modified at [$Date$]
    +[$LastChangedDate$]
     
     
     INTRODUCTION
    @@ -67,11 +67,11 @@ keeping the stable tree as safe as possible:
         to the 2.4-stable release if they cannot be incorporated in the current
         stable release due to API change requirements.
     
    -  * The stable CVS tree should not remain unstable at any time.  Atomic commits 
    -    aught be used to introduce code from the development version to the stable 
    -    tree.  At any given time a security release may be in preparation, 
    +  * The stable subversion tree should not remain unstable at any time.  Atomic 
    +    commits aught be used to introduce code from the development version to the 
    +    stable  tree.  At any given time a security release may be in preparation, 
         unbeknownst to other contributors.  At any given time, testers may be
    -    checking out CVS head to confirm that a bug has been corrected.  And as
    +    checking out SVN trunk to confirm that a bug has been corrected.  And as
         all code was well-tested in development prior to committing to the stable
         tree, there is really no reason for this tree to be broken for more than 
         a few minutes during a lengthy commit.
    diff --git a/acinclude.m4 b/acinclude.m4
    index 38d3993fd62..c750b82e67d 100644
    --- a/acinclude.m4
    +++ b/acinclude.m4
    @@ -75,9 +75,11 @@ AC_DEFUN(APACHE_GEN_CONFIG_VARS,[
       APACHE_SUBST(EXTRA_INCLUDES)
       APACHE_SUBST(LIBTOOL)
       APACHE_SUBST(SHELL)
    +  APACHE_SUBST(RSYNC)
       APACHE_SUBST(MODULE_DIRS)
       APACHE_SUBST(MODULE_CLEANDIRS)
       APACHE_SUBST(PORT)
    +  APACHE_SUBST(SSLPORT)
       APACHE_SUBST(nonssl_listen_stmt_1)
       APACHE_SUBST(nonssl_listen_stmt_2)
       APACHE_SUBST(CORE_IMPLIB_FILE)
    @@ -330,12 +332,11 @@ AC_DEFUN(APACHE_CHECK_SSL_TOOLKIT,[
     if test "x$ap_ssltk_configured" = "x"; then
       dnl initialise the variables we use
       ap_ssltk_base=""
    -  ap_ssltk_inc=""
    -  ap_ssltk_lib=""
    +  ap_ssltk_libs=""
       ap_ssltk_type=""
     
       dnl Determine the SSL/TLS toolkit's base directory, if any
    -  AC_MSG_CHECKING(for SSL/TLS toolkit base)
    +  AC_MSG_CHECKING([for SSL/TLS toolkit base])
       AC_ARG_WITH(sslc, APACHE_HELP_STRING(--with-sslc=DIR,RSA SSL-C SSL/TLS toolkit), [
         dnl If --with-sslc specifies a directory, we use that directory or fail
         if test "x$withval" != "xyes" -a "x$withval" != "x"; then
    @@ -358,14 +359,19 @@ if test "x$ap_ssltk_configured" = "x"; then
       fi
     
       dnl Run header and version checks
    -  saved_CPPFLAGS=$CPPFLAGS
    +  saved_CPPFLAGS="$CPPFLAGS"
    +  saved_LIBS="$LIBS"
       if test "x$ap_ssltk_base" != "x"; then
    -    ap_ssltk_inc="-I$ap_ssltk_base/include"
    -    CPPFLAGS="$CPPFLAGS $ap_ssltk_inc"
    +    APR_ADDTO(CPPFLAGS, [-I$ap_ssltk_base/include])
    +    APR_ADDTO(INCLUDES, [-I$ap_ssltk_base/include])
    +    APR_ADDTO(LDFLAGS, [-L$ap_ssltk_base/lib])
    +    if test "x$ap_platform_runtime_link_flag" != "x"; then
    +      APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_ssltk_base/lib])
    +    fi
       fi
       if test "x$ap_ssltk_type" = "x"; then
    -    AC_MSG_CHECKING(for OpenSSL version)
    -    dnl First check for manditory headers
    +    AC_MSG_CHECKING([for OpenSSL version])
    +    dnl First check for mandatory headers
         AC_CHECK_HEADERS([openssl/opensslv.h openssl/ssl.h], [ap_ssltk_type="openssl"], [])
         if test "$ap_ssltk_type" = "openssl"; then
           dnl so it's OpenSSL - test for a good version
    @@ -383,25 +389,17 @@ if test "x$ap_ssltk_configured" = "x"; then
            echo "WARNING: OpenSSL version may contain security vulnerabilities!"
            echo "         Ensure the latest security patches have been applied!"
           ])
    -      dnl Look for additional, possibly missing headers
    -      AC_CHECK_HEADERS(openssl/engine.h)
    -      if test -n "$PKGCONFIG"; then
    -        $PKGCONFIG openssl
    -        if test $? -eq 0; then
    -          ap_ssltk_inc="$ap_ssltk_inc `$PKGCONFIG --cflags-only-I openssl`"
    -          CPPFLAGS="$CPPFLAGS $ap_ssltk_inc"
    -        fi
    -      fi
         else
           AC_MSG_RESULT([no OpenSSL headers found])
         fi
       fi
       if test "$ap_ssltk_type" != "openssl"; then
         dnl Might be SSL-C - report, then test anything relevant
    -    AC_MSG_CHECKING(for SSL-C version)
    +    AC_MSG_CHECKING([for SSL-C version])
         AC_CHECK_HEADERS([sslc.h], [ap_ssltk_type="sslc"], [ap_ssltk_type=""])
         if test "$ap_ssltk_type" = "sslc"; then
    -      AC_MSG_CHECKING(for SSL-C version)
    +      ap_ssltk_libs="-lsslc"
    +      AC_MSG_CHECKING([for SSL-C version])
           AC_TRY_COMPILE([#include <sslc.h>],[
     #if !defined(SSLC_VERSION_NUMBER)
     #error "Missing SSL-C version"
    @@ -420,40 +418,51 @@ if test "x$ap_ssltk_configured" = "x"; then
           AC_MSG_RESULT([no SSL-C headers found])
         fi
       fi
    -  dnl restore
    -  CPPFLAGS=$saved_CPPFLAGS
       if test "x$ap_ssltk_type" = "x"; then
         AC_MSG_ERROR([...No recognized SSL/TLS toolkit detected])
       fi
     
    -  dnl Run library and function checks
    -  saved_LDFLAGS=$LDFLAGS
    -  saved_LIBS=$LIBS
    -  if test "x$ap_ssltk_base" != "x"; then
    -    if test -d "$ap_ssltk_base/lib"; then
    -      ap_ssltk_lib="$ap_ssltk_base/lib"
    +  if test "$ap_ssltk_type" = "openssl"; then
    +    if test "x$ap_ssltk_base" != "x" -a \
    +            -f "${ap_ssltk_base}/lib/pkgconfig/openssl.pc"; then
    +      dnl Ensure that the given path is used by pkg-config too, otherwise
    +      dnl the system openssl.pc might be picked up instead.
    +      PKG_CONFIG_PATH="${ap_ssltk_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}"
    +      export PKG_CONFIG_PATH
    +    fi
    +    if test -n "$PKGCONFIG"; then
    +      ap_ssltk_libs="`$PKGCONFIG --libs-only-l openssl`"
    +      if test $? -eq 0; then
    +        pkglookup="`$PKGCONFIG --cflags-only-I openssl`"
    +        APR_ADDTO(CPPFLAGS, [$pkglookup])
    +        APR_ADDTO(INCLUDES, [$pkglookup])
    +        pkglookup="`$PKGCONFIG --libs-only-L --libs-only-other openssl`"
    +        APR_ADDTO(LDFLAGS, [$pkglookup])
    +      else
    +        ap_ssltk_libs="-lssl -lcrypto `$apr_config --libs`"
    +      fi
         else
    -      ap_ssltk_lib="$ap_ssltk_base"
    +      ap_ssltk_libs="-lssl -lcrypto `$apr_config --libs`"
         fi
    -    LDFLAGS="$LDFLAGS -L$ap_ssltk_lib"
       fi
    -  dnl make sure "other" flags are available so libcrypto and libssl can link
    -  LIBS="$LIBS `$apr_config --libs`"
    +  APR_SETVAR(SSL_LIBS, [$ap_ssltk_libs])
    +  APR_ADDTO(LIBS, [$ap_ssltk_libs])
    +  APACHE_SUBST(SSL_LIBS)
    +
    +  dnl Run library and function checks
       liberrors=""
       if test "$ap_ssltk_type" = "openssl"; then
    -    AC_CHECK_LIB(crypto, SSLeay_version, [], [liberrors="yes"])
    -    AC_CHECK_LIB(ssl, SSL_CTX_new, [], [liberrors="yes"])
    -    AC_CHECK_FUNCS(ENGINE_init)
    -    AC_CHECK_FUNCS(ENGINE_load_builtin_engines)
    +    AC_CHECK_HEADERS([openssl/engine.h])
    +    AC_CHECK_FUNCS([SSLeay_version SSL_CTX_new], [], [liberrors="yes"])
    +    AC_CHECK_FUNCS([ENGINE_init ENGINE_load_builtin_engines])
       else
    -    AC_CHECK_LIB(sslc, SSLC_library_version, [], [liberrors="yes"])
    -    AC_CHECK_LIB(sslc, SSL_CTX_new, [], [liberrors="yes"])
    +    AC_CHECK_FUNCS([SSLC_library_version SSL_CTX_new], [], [liberrors="yes"])
         AC_CHECK_FUNCS(SSL_set_state)
       fi
       AC_CHECK_FUNCS(SSL_set_cert_store)
       dnl restore
    -  LDFLAGS=$saved_LDFLAGS
    -  LIBS=$saved_LIBS
    +  CPPFLAGS="$saved_CPPFLAGS"
    +  LIBS="$saved_LIBS"
       if test "x$liberrors" != "x"; then
         AC_MSG_ERROR([... Error, SSL/TLS libraries were missing or unusable])
       fi
    @@ -465,31 +474,6 @@ if test "x$ap_ssltk_configured" = "x"; then
       else
         AC_DEFINE(HAVE_SSLC, 1, [Define if SSL is supported using SSL-C])
       fi
    -  dnl (b) hook up include paths
    -  if test "x$ap_ssltk_inc" != "x"; then
    -    APR_ADDTO(INCLUDES, [$ap_ssltk_inc])
    -  fi
    -  dnl (c) hook up linker paths
    -  if test "x$ap_ssltk_lib" != "x"; then
    -    APR_ADDTO(LDFLAGS, ["-L$ap_ssltk_lib"])
    -    if test "x$ap_platform_runtime_link_flag" != "x"; then
    -      APR_ADDTO(LDFLAGS, ["$ap_platform_runtime_link_flag$ap_ssltk_lib"])
    -    fi
    -  fi
    -  # Put SSL libraries in SSL_LIBS.
    -  if test "$ap_ssltk_type" = "openssl"; then
    -    APR_SETVAR(SSL_LIBS, [-lssl -lcrypto])
    -    if test -n "$PKGCONFIG"; then
    -      $PKGCONFIG openssl
    -      if test $? -eq 0; then
    -        ap_ssltk_libdep=`$PKGCONFIG --libs openssl`
    -        APR_ADDTO(SSL_LIBS, $ap_ssltk_libdep)
    -      fi
    -    fi
    -  else
    -    APR_SETVAR(SSL_LIBS, [-lsslc])
    -  fi
    -  APACHE_SUBST(SSL_LIBS)
     fi
     ])
     
    @@ -528,3 +512,65 @@ AC_DEFUN(APACHE_EXPORT_ARGUMENTS,[
       APACHE_SUBST_EXPANDED_ARG(proxycachedir)
     ])
     
    +dnl 
    +dnl APACHE_CHECK_APxVER({apr|apu}, major, minor, 
    +dnl                     [actions-if-ok], [actions-if-not-ok])
    +dnl
    +dnl Checks for APR or APR-util of given major/minor version or later; 
    +dnl if so, runs actions-if-ok; otherwise runs actions-if-not-ok if given.
    +dnl If the version is not satisfactory and actions-if-not-ok is not
    +dnl given, then an error is printed and the configure script is aborted.
    +dnl
    +dnl The first argument must be [apr] or [apu].
    +dnl
    +AC_DEFUN([APACHE_CHECK_APxVER], [
    +define(ap_ckver_major, translit($1, [apru], [APRU])[_MAJOR_VERSION])
    +define(ap_ckver_minor, translit($1, [apru], [APRU])[_MINOR_VERSION])
    +define(ap_ckver_cvar, [ap_cv_$1ver$2$3])
    +define(ap_ckver_name, ifelse([$1],[apr],[APR],[APR-util]))
    +
    +ap_ckver_CPPFLAGS="$CPPFLAGS"
    +CPPFLAGS="$CPPFLAGS `$[$1]_config --includes`"
    +
    +AC_CACHE_CHECK([for ap_ckver_name version $2.$3.0 or later], ap_ckver_cvar, [
    +AC_EGREP_CPP([good], [
    +#include <$1_version.h>
    +#if ]ap_ckver_major[ > $2 || (]ap_ckver_major[ == $2 && ]ap_ckver_minor[ >= $3)
    +good
    +#endif
    +], [ap_ckver_cvar=yes], [ap_ckver_cvar=no])])
    +
    +if test "$ap_ckver_cvar" = "yes"; then
    +  ifelse([$4],[],[:],[$4])
    +else
    +  ifelse([$5],[],[AC_MSG_ERROR([ap_ckver_name version $2.$3.0 or later is required])], [$5])
    +fi
    +
    +CPPFLAGS="$ap_ckver_CPPFLAGS"
    +
    +undefine([ap_ckver_major])
    +undefine([ap_ckver_minor])
    +undefine([ap_ckver_cvar])
    +undefine([ap_ckver_name])
    +])
    +
    +dnl
    +dnl APACHE_CHECK_VOID_PTR_LEN
    +dnl
    +dnl Checks if the size of a void pointer is at least as big as a "long" 
    +dnl integer type.
    +dnl
    +AC_DEFUN([APACHE_CHECK_VOID_PTR_LEN], [
    +
    +AC_CACHE_CHECK([for void pointer length], [ap_cv_void_ptr_lt_long],
    +[AC_TRY_RUN([
    +int main(void)
    +{
    +    return sizeof(void *) < sizeof(long); 
    +}], [ap_cv_void_ptr_lt_long=no], [ap_cv_void_ptr_lt_long=yes], 
    +    [ap_cv_void_ptr_lt_long=yes])])
    +
    +if test "$ap_cv_void_ptr_lt_long" = "yes"; then
    +    AC_MSG_ERROR([Size of "void *" is less than size of "long"])
    +fi
    +])
    diff --git a/apachenw.mcp.zip b/apachenw.mcp.zip
    deleted file mode 100644
    index 6e7e7224b32..00000000000
    Binary files a/apachenw.mcp.zip and /dev/null differ
    diff --git a/build/NWGNUenvironment.inc b/build/NWGNUenvironment.inc
    index ea3ded6b129..bc1fee7927f 100644
    --- a/build/NWGNUenvironment.inc
    +++ b/build/NWGNUenvironment.inc
    @@ -2,9 +2,9 @@
     # Setup needed Tools and Libraries
     #
     
    -ifeq "$(wildcard $(AP_WORK)\NWGNUcustom.ini)" "$(AP_WORK)\NWGNUcustom.ini"
    -include $(AP_WORK)\NWGNUcustom.ini
    -CUSTOM_INI = $(AP_WORK)\NWGNUcustom.ini
    +ifeq "$(wildcard $(AP_WORK)/NWGNUcustom.ini)" "$(AP_WORK)/NWGNUcustom.ini"
    +include $(AP_WORK)/NWGNUcustom.ini
    +CUSTOM_INI = $(AP_WORK)/NWGNUcustom.ini
     endif
     
     ifndef VERBOSE
    @@ -38,11 +38,23 @@ endif
     ifndef NOVELLLIBC
     NOVELLLIBC = C:/novell/ndk/libc
     endif
    +ifneq "$(wildcard $(NOVELLLIBC)/include/ndkvers.h)" "$(NOVELLLIBC)/include/ndkvers.h"
    +$(error NOVELLLIBC does not point to a valid Novell LIBC SDK) 
    +endif
     
    -# This is a placeholder
    -# ifndef LDAPSDK
    -# LDAPSDK = C:/novell/ndk/cldapsdk
    -# endif
    +ifndef LDAPSDK
    +LDAPSDK = C:/novell/ndk/cldapsdk/NetWare/libc
    +endif
    +ifneq "$(wildcard $(LDAPSDK)/inc/ldap.h)" "$(LDAPSDK)/inc/ldap.h"
    +$(error LDAPSDK does not point to a valid Novell CLDAP SDK) 
    +endif
    +
    +ifndef PCRESRC
    +PCRESRC = $(AP_WORK)/srclib/pcre
    +endif
    +ifneq "$(wildcard $(PCRESRC)/pcre-config.in)" "$(PCRESRC)/pcre-config.in"
    +$(error PCRESRC does not point to a valid PCRE source tree) 
    +endif
     
     # This is a placeholder
     # ifndef ZLIBSDK
    @@ -50,7 +62,7 @@ endif
     # endif
     
     ifndef METROWERKS
    -METROWERKS = C:\Program Files\Metrowerks\CodeWarrior
    +METROWERKS = $(ProgramFiles)\Metrowerks\CodeWarrior
     endif
     
     # If LM_LICENSE_FILE isn't defined, define a variable that can be used to
    @@ -62,59 +74,99 @@ endif
     #
     # Set the Release type that you want to build, possible values are:
     #
    -#  debug		- full debug switches are set
    -#  noopt		- normal switches are set (default)
    -#  optimized	- optimization switches are set
    +#  debug	- full debug switches are set
    +#  noopt	- normal switches are set
    +#  release	- optimization switches are set (default)
     
     ifdef reltype
    -RELEASE=$(reltype)
    -endif
    +RELEASE = $(reltype)
    +endif    
     
     ifdef RELTYPE
    -RELEASE=$(RELTYPE)
    +RELEASE = $(RELTYPE)
     endif
     
     ifdef debug
    -RELEASE=debug
    +RELEASE = debug
     endif
     
     ifdef DEBUG
    -RELEASE=debug
    +RELEASE = debug
     endif
     
    -ifdef optimized
    -RELEASE=optimized
    +ifdef noopt
    +RELEASE = noopt
     endif
     
    -ifdef OPTIMIZED
    -RELEASE=optimized
    +ifdef NOOPT
    +RELEASE = noopt
     endif
     
    -ifndef RELEASE
    -RELEASE = optimized
    +ifdef optimized
    +RELEASE = release
     endif
     
    -ifeq "$(RELEASE)" "debug"
    -OBJDIR = Debug.o
    +ifdef OPTIMIZED
    +RELEASE = release
     endif
     
    -ifeq "$(RELEASE)" "noopt"
    -OBJDIR = Noopt
    +ifndef RELEASE
    +RELEASE = release
     endif
     
    -ifeq "$(RELEASE)" "optimized"
    -OBJDIR = Release.o
    -endif
    +OBJDIR = obj_$(RELEASE)
    +
    +# Define minimum APR version to check for
    +APR_WANTED = 1003000
     
     #
     # Setup compiler information
     #
     
     # MetroWerks NLM tools
    -CC		= mwccnlm
    -CPP		= mwccnlm
    +CC	= mwccnlm
    +CPP	= mwccnlm
     LINK	= mwldnlm
    -LIB		= mwldnlm -type library -w nocmdline
    +LIB	= mwldnlm -type library -w nocmdline
    +WIN_CC	= mwcc
    +
    +# Setup build tools
    +AWK	= awk
    +
    +# Setup distribution tools
    +ZIP	= zip -qr9
    +7ZA	= 7za >NUL a
    +
    +#
    +# Declare Command and tool macros here
    +#
    +
    +ifeq ($(findstring /sh,$(SHELL)),/sh)
    +DEL	= rm -f $1
    +RMDIR	= rm -fr $1
    +MKDIR	= mkdir -p $1
    +COPY	= -cp -afv $1 $2
    +#COPYR	= -cp -afr $1/* $2
    +COPYR	= -rsync -aC $1/* $2
    +TOUCH	= -touch $1
    +ECHONL	= echo ""
    +DL	= '
    +CAT	= cat
    +else
    +ifeq "$(OS)" "Windows_NT"
    +DEL	= $(shell if exist $(subst /,\,$1) del /q /f 2>NUL $(subst /,\,$1))
    +RMDIR	= $(shell if exist $(subst /,\,$1)\NUL rd /q /s 2>NUL $(subst /,\,$1))
    +else
    +DEL	= $(shell if exist $(subst /,\,$1) del 2>NUL $(subst /,\,$1))
    +RMDIR	= $(shell if exist $(subst /,\,$1)\NUL deltree /y 2>NUL $(subst /,\,$1))
    +endif
    +ECHONL	= $(ComSpec) /c echo.
    +MKDIR	= $(shell if not exist $(subst /,\,$1)\NUL md 2>NUL $(subst /,\,$1))
    +COPY	= -copy /y 2>NUL $(subst /,\,$1) $(subst /,\,$2)
    +COPYR	= -xcopy /q /y /e 2>NUL $(subst /,\,$1) $(subst /,\,$2)
    +TOUCH	= -copy /b 2>&1>NUL $(subst /,\,$1) +,,
    +CAT	= type
    +endif
     
     ifdef IPV6
     ifndef USE_STDSOCKETS
    @@ -122,30 +174,55 @@ USE_STDSOCKETS=1
     endif
     endif
     
    -NOVI	= $(NOVELLLIBC)\imports
    +NOVI	= $(NOVELLLIBC)/imports
    +PRELUDE	= $(NOVI)/libcpre.o
     
    -INCDIRS 	= $(NOVELLLIBC)\include;$(NOVELLLIBC)\include\nks;$(NOVELLLIBC)\include\winsock;
    +INCDIRS	= $(NOVELLLIBC)/include;
    +ifndef USE_STDSOCKETS
    +INCDIRS	+= $(NOVELLLIBC)/include/winsock;
    +endif
     ifneq "$(LDAPSDK)" ""
    -INCDIRS := $(INCDIRS);$(LDAPSDK)/inc
    +INCDIRS += $(LDAPSDK)/inc;
     endif
     ifneq "$(ZLIBSDK)" ""
    -INCDIRS := $(INCDIRS);$(ZLIBSDK)
    +INCDIRS += $(ZLIBSDK);
     endif
    +#ifneq "$(PCRESRC)" ""
    +#INCDIRS += $(PCRESRC);
    +#endif
     
    -DEFINES		= -DNETWARE 
    +DEFINES	= -DNETWARE 
     ifndef USE_STDSOCKETS
    -DEFINES += -DUSE_WINSOCK
    +DEFINES	+= -DUSE_WINSOCK
     endif
     ifndef DEBUG
    -DEFINES += -DNDEBUG
    +DEFINES	+= -DNDEBUG
     endif
     
    -#
    -# MetroWerks static Libraries
    +ifdef USE_STDSOCKETS
    +VERSION_SKT = (BSDSOCK)
    +else
    +VERSION_SKT = (WINSOCK)
    +endif
     
    -CLIB3S	= $(METROWERKS)\Novell Support\Metrowerks Support\Libraries\Runtime\mwcrtl.lib
    +# MetroWerks static Libraries
    +CLIB3S	= $(METROWERKS)/Novell Support/Metrowerks Support/Libraries/Runtime/mwcrtl.lib
     MATH3S	=
    -PLIB3S	= $(METROWERKS)\Novell Support\Metrowerks Support\Libraries\MSL C++\MWCPP.lib
    +PLIB3S	= $(METROWERKS)/Novell Support/Metrowerks Support/Libraries/MSL C++/MWCPP.lib
    +
    +ifeq "$(OS)" "Windows_NT"
    +# MetroWerks Win32 build flags to create build tools
    +MWCW_MSL         = "$(METROWERKS)/MSL"
    +MWCW_W32         = "$(METROWERKS)/Win32-x86 Support"
    +CC_FOR_BUILD     = $(WIN_CC)
    +CFLAGS_FOR_BUILD =  -O2 -gccinc -nodefaults -proc 586 -w off
    +CFLAGS_FOR_BUILD += -ir $(MWCW_MSL) -ir $(MWCW_W32) -lr $(MWCW_MSL) -lr $(MWCW_W32)
    +CFLAGS_FOR_BUILD += -lMSL_All_x86.lib -lkernel32.lib -luser32.lib
    +else
    +# GNUC build flags to create build tools
    +CC_FOR_BUILD     = gcc
    +CFLAGS_FOR_BUILD = -Wall -O2
    +endif
     
     # Base compile flags
     # and prefix or precompiled header added here.
    @@ -153,7 +230,7 @@ PLIB3S	= $(METROWERKS)\Novell Support\Metrowerks Support\Libraries\MSL C++\MWCPP
     # The default flags are as follows:
     #
     # -c                    compile only, no link
    -# -nosyspath            treat #include <...> like #include "..."
    +# -gccinc               search directory of referencing file first for #includes
     # -Cpp_exceptions off   disable C++ exceptions
     # -RTTI off             disable C++ run-time typing information
     # -align 4              align on 4 byte bounderies
    @@ -161,54 +238,82 @@ PLIB3S	= $(METROWERKS)\Novell Support\Metrowerks Support\Libraries\MSL C++\MWCPP
     # -proc PII             generate code base on Pentium II instruction set
     # -inst mmx             use MMX extensions (Not used)
     
    -CFLAGS = -c -nosyspath -Cpp_exceptions off -RTTI off -align 4 -w nocmdline -proc PII 
    +CFLAGS += -c -w nocmdline -gccinc -Cpp_exceptions off -RTTI off -align 4 -proc PII
    +
    +ifdef CC_MAX_ERRORS
    +CFLAGS += -maxerrors $(CC_MAX_ERRORS)
    +else
    +CFLAGS += -maxerrors 1
    +endif
    +
    +ifeq "$(REQUIRE_PROTOTYPES)" "1"
    +CFLAGS += -r
    +endif
     
     # -g                    generate debugging information
     # -O0                   level 0 optimizations
    -
     ifeq "$(RELEASE)" "debug"
     CFLAGS += -g -O0
     endif
     
     # -O4,p                 level 4 optimizations, optimize for speed
    -ifeq "$(RELEASE)" "optimized"
    +ifeq "$(RELEASE)" "release"
     CFLAGS += -O4,p
     endif
     
     # -prefix pre_nw.h      #include pre_nw.h for all files
    -
     CFLAGS += -prefix pre_nw.h
     
     
    +ifneq ($(findstring /sh,$(SHELL)),/sh)
     PATH:=$(PATH);$(METROWERKS)\bin;$(METROWERKS)\Other Metrowerks Tools\Command Line Tools
    +endif
     
     #
     # Declare major project deliverables output directories here
     #
     
    +ifndef PORT
    +PORT = 80
    +endif
    +
    +ifndef SSLPORT
    +SSLPORT = 443
    +endif
    +
     ifdef DEST
    -INSTALL = $(DEST)
    -ifeq (\, $(findstring \,$(INSTALL)))
    -INSTDIRS = $(DEST)
    +INSTALL = $(subst \,/,$(DEST))
    +ifeq (/, $(findstring /,$(INSTALL)))
    +INSTDIRS = $(INSTALL)
     endif
     endif
     
     ifdef dest
    -INSTALL = $(dest)
    -ifeq (\, $(findstring \,$(INSTALL)))
    -INSTDIRS = $(dest)
    +INSTALL = $(subst \,/,$(dest))
    +ifeq (/, $(findstring /,$(INSTALL)))
    +INSTDIRS = $(INSTALL)
     endif
     endif
     
     ifndef INSTALL
    -INSTALL = $(AP_WORK)\Dist
    -INSTDIRS = $(AP_WORK)\Dist
    +INSTALL = $(AP_WORK)/Dist
    +INSTDIRS = $(INSTALL)
    +endif
    +
    +ifeq ($(MAKECMDGOALS),installdev)
    +ifndef BASEDIR
    +export BASEDIR = apache_$(VERSION_STR)-sdk
    +endif
    +else
    +ifndef BASEDIR
    +export BASEDIR = Apache$(VERSION_MAJMIN)
    +endif
     endif
     
     # Add support for building IPV6 alongside
     ifneq "$(IPV6)" ""
     DEFINES += -DNW_BUILD_IPV6
    -INCDIRS := $(NOVELLLIBC)\include\winsock\IPV6;$(INCDIRS)
    +# INCDIRS := $(NOVELLLIBC)/include/winsock/IPV6;$(INCDIRS)
     
     ifneq "$(findstring IPV6,$(OBJDIR))" "IPV6"
     OBJDIR := $(OBJDIR)_IPV6
    @@ -224,72 +329,51 @@ endif
     
     endif
     
    -INSTDEVDIRS := \
    -    $(INSTDIRS) \
    -	$(INSTALL)\Apache2\include \
    -	$(INSTALL)\Apache2\lib \
    -
    -INSTDIRS += \
    -	$(INSTALL)\Apache2 \
    -	$(INSTALL)\Apache2\bin \
    -	$(INSTALL)\Apache2\cgi-bin \
    -	$(INSTALL)\Apache2\conf \
    -	$(INSTALL)\Apache2\error \
    -	$(INSTALL)\Apache2\htdocs \
    -	$(INSTALL)\Apache2\icons \
    -	$(INSTALL)\Apache2\logs \
    -	$(INSTALL)\Apache2\man \
    -	$(INSTALL)\Apache2\manual \
    -	$(INSTALL)\Apache2\modules \
    -
    -#
    -# Declare Command and tool macros here
    -#
    -
    -# Os2LibPath is an extra check to see if we are on NT
    -ifdef Os2LibPath
    -OS = Windows_NT
    -endif
    -
    -ifeq "$(OS)" "Windows_NT"
    -CMD=cmd /C
    -CHK=cmd /C if exist
    -CHKNOT=cmd /C if not exist
    -DEL = del /F
    -DELTREE = cmd /C rd /s/q
    -WINNT=1
    -XCOPYSW = /E
    -else
    -CMD=command /C
    -CHK=command /C if exist
    -CHKNOT=command /C if not exist
    -DEL = del
    -DELTREE = deltree /y
    -XCOPYSW = /E /Y
    -endif
    +INSTALLBASE = $(INSTALL)/$(BASEDIR)
     
    +INSTDEVDIRS = \
    +	$(INSTALL) \
    +	$(INSTALLBASE) \
    +	$(INSTALLBASE)/build \
    +	$(INSTALLBASE)/include \
    +	$(INSTALLBASE)/lib \
    +	$(EOLIST) 
     
    -#
    -# Setup base C compiler flags
    -#
    +INSTDIRS += \
    +	$(INSTALLBASE) \
    +	$(INSTALLBASE)/bin \
    +	$(INSTALLBASE)/cgi-bin \
    +	$(INSTALLBASE)/conf \
    +	$(INSTALLBASE)/conf/extra \
    +	$(INSTALLBASE)/error \
    +	$(INSTALLBASE)/htdocs \
    +	$(INSTALLBASE)/icons \
    +	$(INSTALLBASE)/logs \
    +	$(INSTALLBASE)/man \
    +	$(INSTALLBASE)/manual \
    +	$(INSTALLBASE)/modules \
    +	$(EOLIST) 
     
     #
     # Common directories
     #
     
    -STDMOD		= $(AP_WORK)/modules
    -NWOS		= $(AP_WORK)/os/netware
    -SERVER		= $(AP_WORK)/server
    -SRC		= $(AP_WORK)
    -APR		= $(APR_WORK)
    -APRUTIL		= $(APU_WORK)
    -APULDAP		= $(APU_WORK)/ldap
    -SUPMOD		= $(AP_WORK)/support
    -PCRE		= $(AP_WORK)/srclib/pcre
    -APRTEST		= $(APR_WORK)/test
    -HTTPD		= $(AP_WORK)/modules/http
    -XML		= $(APU_WORK)/xml
    -PREBUILD_INST   = $(AP_WORK)\nwprebuild
    +SRC		= $(subst \,/,$(AP_WORK))
    +APR		= $(subst \,/,$(APR_WORK))
    +APRUTIL		= $(subst \,/,$(APU_WORK))
    +APBUILD		= $(SRC)/build
    +STDMOD		= $(SRC)/modules
    +HTTPD		= $(SRC)/modules/http
    +DAV		= $(SRC)/modules/dav
    +NWOS		= $(SRC)/os/netware
    +SERVER		= $(SRC)/server
    +SUPMOD		= $(SRC)/support
    +APULDAP		= $(APRUTIL)/ldap
    +XML		= $(APRUTIL)/xml
    +APRTEST		= $(APR)/test
    +PCRE		= $(PCRESRC)
    +
    +PREBUILD_INST	= $(SRC)/nwprebuild
     
     #
     # Internal Libraries
    @@ -299,7 +383,7 @@ APRLIB		= $(APR)/$(OBJDIR)/aprlib.lib
     APRUTLIB	= $(APRUTIL)/$(OBJDIR)/aprutil.lib
     APULDAPLIB	= $(APULDAP)/$(OBJDIR)/apuldap.lib
     STMODLIB	= $(STDMOD)/$(OBJDIR)/stdmod.lib
    -PCRELIB		= $(PCRE)/$(OBJDIR)/pcre.lib
    +PCRELIB		= $(SRC)/$(OBJDIR)/pcre.lib
     NWOSLIB		= $(NWOS)/$(OBJDIR)/netware.lib
     SERVLIB		= $(SERVER)/$(OBJDIR)/server.lib
     HTTPDLIB	= $(HTTPD)/$(OBJDIR)/httpd.lib
    diff --git a/build/NWGNUhead.inc b/build/NWGNUhead.inc
    index cdbaf2728fd..2ef4dace6ab 100644
    --- a/build/NWGNUhead.inc
    +++ b/build/NWGNUhead.inc
    @@ -2,7 +2,7 @@
     # Obtain the global build environment
     #
     
    -include $(AP_WORK)\build\NWGNUenvironment.inc
    +include $(AP_WORK)/build/NWGNUenvironment.inc
     
     #
     # Define base targets and rules
    @@ -26,7 +26,7 @@ install :: NO_LICENSE_FILE
     installdev :: NO_LICENSE_FILE
     
     NO_LICENSE_FILE :
    -	$(MAKE) $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(METROWERKS)\license.dat"
    +	$(MAKE) $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(METROWERKS)/license.dat"
     
     else # LM_LICENSE_FILE must be defined so use the real targets
     
    @@ -41,41 +41,40 @@ install :: nlms $(INSTDIRS)
     installdev :: $(INSTDEVDIRS)
     
     $(INSTDIRS) ::
    -	$(CHKNOT) $@\NUL mkdir $@
    +	$(call MKDIR,$@)
     
     $(INSTDEVDIRS) ::
    -	$(CHKNOT) $@\NUL mkdir $@
    +	$(call MKDIR,$@)
     
     endif #NO_LICENSE_FILE check
     
     help :
    -	@echo targets for RELEASE=$(RELEASE):
    -	@echo (default) . . . . libs nlms
    -	@echo all . . . . . . . does everything (libs nlms install)
    -	@echo libs. . . . . . . builds all libs
    -	@echo nlms. . . . . . . builds all nlms
    -	@echo install . . . . . builds libs and nlms and copies install files to
    -	@echo                   "$(INSTALL)"
    -	@echo installdev. . . . copies headers and files needed for development to
    -	@echo                   "$(INSTALL)"
    -	@echo clean . . . . . . deletes $(OBJDIR) dirs, *.err, and *.map
    -	@echo clobber_all . . . deletes all possible output from the make
    -	@echo clobber_install . deletes all files in $(INSTALL)
    -	@$(CMD) echo.
    -	@echo Multiple targets can be used on a single nmake command line -
    -	@echo (i.e. $(MAKE) clean all)
    -	@$(CMD) echo.
    -	@echo You can also specify RELEASE=debug, RELEASE=noopt, or RELEASE=optimized
    -	@echo The default is RELEASE=optimized
    +	@echo $(DL)targets for RELEASE=$(RELEASE):$(DL)
    +	@echo $(DL)(default) . . . . libs nlms$(DL)
    +	@echo $(DL)all . . . . . . . does everything (libs nlms install)$(DL)
    +	@echo $(DL)libs. . . . . . . builds all libs$(DL)
    +	@echo $(DL)nlms. . . . . . . builds all nlms$(DL)
    +	@echo $(DL)install . . . . . builds libs and nlms and copies install files to$(DL)
    +	@echo $(DL)                  "$(INSTALL)"$(DL)
    +	@echo $(DL)installdev. . . . copies headers and files needed for development to$(DL)
    +	@echo $(DL)                  "$(INSTALL)"$(DL)
    +	@echo $(DL)clean . . . . . . deletes $(OBJDIR) dirs, *.err, and *.map$(DL)
    +	@echo $(DL)clobber_all . . . deletes all possible output from the make$(DL)
    +	@echo $(DL)clobber_install . deletes all files in $(INSTALL)$(DL)
    +	@$(ECHONL)
    +	@echo $(DL)Multiple targets can be used on a single nmake command line -$(DL)
    +	@echo $(DL)(i.e. $(MAKE) clean all)$(DL)
    +	@$(ECHONL)
    +	@echo $(DL)You can also specify RELEASE=debug, RELEASE=noopt, or RELEASE=optimized$(DL)
    +	@echo $(DL)The default is RELEASE=optimized$(DL)
     
     clobber_all :: clean clobber_install clobber_prebuild
     
     clobber_install ::
    -	-$(DELTREE) $(INSTALL) 2>NUL
    +	$(call RMDIR,$(INSTALL))
             
     clobber_prebuild ::
    -	$(CHK) $(PREBUILD_INST)\*.* $(DEL) $(PREBUILD_INST)\*.*
    -	-$(DELTREE) $(PREBUILD_INST) 2> NUL
    +	$(call RMDIR,$(PREBUILD_INST))
     
     #
     # build recursive targets
    @@ -83,11 +82,13 @@ clobber_prebuild ::
     
     $(SUBDIRS) : FORCE
     ifneq "$(MAKECMDGOALS)" "clean"
    -	$(CMD) echo.
    -	@echo Building $(CURDIR)/$@
    +ifneq "$(findstring clobber_,$(MAKECMDGOALS))" "clobber_"
    +	@$(ECHONL)
    +	@echo $(DL)Building $(CURDIR)/$@$(DL)
    +endif
     endif
     	$(MAKE) -C $@ $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(LM_LICENSE_FILE)"
    -	$(CMD) echo.
    +	@$(ECHONL)
     
     FORCE:
     
    @@ -96,15 +97,13 @@ FORCE:
     #
     
     clean :: $(SUBDIRS)
    -	@echo Cleaning up $(CURDIR)
    -	-$(DELTREE) $(OBJDIR) 2> NUL
    -	$(CHK) *.err $(DEL) *.err
    -	$(CHK) *.map $(DEL) *.map
    -	$(CHK) *.d $(DEL) *.d
    -	$(CHK) *.tmp $(DEL) *.tmp
    -	$(CHK) xc.bat $(DEL) xc.bat
    -	-$(DELTREE) $(OBJDIR) 2> NUL
    +	@echo $(DL)Cleaning up $(CURDIR)$(DL)
    +	$(call RMDIR,$(OBJDIR))
    +	$(call DEL,*.err)
    +	$(call DEL,*.map)
    +	$(call DEL,*.tmp)
    +#	$(call DEL,*.d)
     
     $(OBJDIR) ::
    -	$(CHKNOT) $(OBJDIR)\nul mkdir $(OBJDIR)
    +	$(call MKDIR,$@)
     
    diff --git a/build/NWGNUmakefile b/build/NWGNUmakefile
    index 582c2c93324..07d6cea590d 100644
    --- a/build/NWGNUmakefile
    +++ b/build/NWGNUmakefile
    @@ -3,6 +3,7 @@
     #
     
     SUBDIRS = \
    +	$(APR_WORK)/build \
     	$(EOLIST) 
     
     #
    @@ -10,73 +11,120 @@ SUBDIRS = \
     # paths to tools
     #
     
    -include $(AP_WORK)\build\NWGNUhead.inc
    +include $(AP_WORK)/build/NWGNUhead.inc
     
     #
     # build this level's files
     
     FILES_prebuild_headers = \
    -	$(APR)/include/apr.h \
    -	$(APRUTIL)/include/apu.h \
    -	$(APRUTIL)/include/apr_ldap.h \
    +	$(NWOS)/test_char.h \
     	$(PCRE)/config.h \
     	$(PCRE)/pcre.h \
     	$(EOLIST) 
         
    -nlms :: $(NWOS)/httpd.imp
    +nlms :: libs $(NWOS)/httpd.imp $(DAV)/main/dav.imp
    +
    +libs :: chkapr $(NWOS)/chartables.c
    +
    +$(DAV)/main/dav.imp : make_nw_export.awk $(DAV)/main/mod_dav.h
    +	@echo $(DL)GEN  $@$(DL)
    +	$(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@
     
     $(NWOS)/httpd.imp : make_nw_export.awk nw_export.i
    -	@echo Generating $(subst /,\,$@)
    -	awk -f make_nw_export.awk nw_export.i | sort >$(NWOS)/httpd.imp
    +	@echo $(DL)GEN  $@$(DL)
    +	$(AWK) -v EXPPREFIX=AP$(VERSION_MAJMIN) -f $^ >$@
         
     nw_export.i : nw_export.inc $(FILES_prebuild_headers) cc.opt
    -	@echo Generating $(subst /,\,$@)
    +	@echo $(DL)GEN  $@$(DL)
     	$(CC) $< @cc.opt
    -	
    -cc.opt : NWGNUmakefile $(AP_WORK)\build\NWGNUenvironment.inc $(AP_WORK)\build\NWGNUtail.inc $(AP_WORK)\build\NWGNUhead.inc
    -	$(CHK) $@ $(DEL) $@
    -	@echo -P >> $@
    -	@echo -EP >> $@
    -	@echo -nosyspath >> $@
    -	@echo -w nocmdline >> $@
    -	@echo $(DEFINES) >> $@
    -	@echo -DCORE_PRIVATE >> $@
    -	@echo -I..\include >> $@
    -	@echo -I..\modules\http >> $@
    -	@echo -I..\modules\aaa >> $@
    -	@echo -I..\os\netware >> $@
    -	@echo -I..\server\mpm\netware >> $@
    -	@echo -I$(APR)\include >> $@
    -	@echo -I$(APRUTIL)\include >> $@
    -	@echo -ir $(NOVELLLIBC) >> $@
    -
    -$(APR)/include/%.h: $(subst /,\,$(APR))\include\%.hnw
    -	@echo Creating $(subst /,\,$@)
    -	copy $< $(subst /,\,$(APR))\include\$(@F)
    -
    -$(APRUTIL)/include/%.h: $(subst /,\,$(APRUTIL))\include\%.hnw
    -	@echo Creating $(subst /,\,$@)
    -	copy $< $(subst /,\,$(APRUTIL))\include\$(@F)
    -
    -$(PCRE)/%.h: $(subst /,\,$(PCRE))\%.hw
    -	@echo Creating $(subst /,\,$@)
    -	copy $< $(subst /,\,$(PCRE))\$(@F)
    +
    +cc.opt : NWGNUmakefile $(APBUILD)/NWGNUenvironment.inc $(APBUILD)/NWGNUtail.inc $(APBUILD)/NWGNUhead.inc
    +	@echo $(DL)-P$(DL)> $@
    +	@echo $(DL)-EP$(DL)>> $@
    +	@echo $(DL)-nosyspath$(DL)>> $@
    +	@echo $(DL)-w nocmdline$(DL)>> $@
    +	@echo $(DL)$(DEFINES)$(DL)>> $@
    +	@echo $(DL)-DCORE_PRIVATE$(DL) >> $@
    +	@echo $(DL)-I$(SRC)/include$(DL)>> $@
    +	@echo $(DL)-I$(HTTPD)$(DL)>> $@
    +	@echo $(DL)-I$(STDMOD)/aaa$(DL)>> $@
    +	@echo $(DL)-I$(NWOS)$(DL)>> $@
    +	@echo $(DL)-I$(SERVER)/mpm/netware$(DL)>> $@
    +	@echo $(DL)-I$(APR)/include$(DL)>> $@
    +	@echo $(DL)-I$(APRUTIL)/include$(DL)>> $@
    +	@echo $(DL)-ir $(NOVELLLIBC)$(DL)>> $@
    +
    +$(PCRE)/%.h: $(PCRE)/%.h.generic
    +	@echo Creating $@
    +	$(call COPY,$<,$@)
    +
    +$(PCRE)/%.h: $(PCRE)/%.hw
    +	@echo Creating $@
    +	$(call COPY,$<,$@)
    +
    +ifneq "$(BUILDTOOL_AS_NLM)" "1"
    +
    +$(NWOS)/chartables.c: dftables.exe $(PCRE)/dftables.c
    +	@echo $(DL)GEN  $@$(DL)
    +	$< $@
    +
    +%.exe: $(PCRE)/%.c $(PCRE)/config.h $(PCRE)/pcre.h
    +	@echo $(DL)Creating Build Helper $@$(DL)
    +	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DHAVE_CONFIG_H $< -o $@
    +
    +$(NWOS)/test_char.h: gen_test_char.exe $(SERVER)/gen_test_char.c
    +	@echo $(DL)GEN  $@$(DL)
    +	$< > $@
    +
    +%.exe: $(SERVER)/%.c
    +	@echo $(DL)Creating Build Helper $@$(DL)
    +	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE $< -o $@
    +
    +else
    +
    +ifneq "$(wildcard $(NWOS)/chartables.c)" "$(NWOS)/chartables.c"
    +$(error Error: required source $(NWOS)/chartables.c not found!)
    +endif
    +
    +ifneq "$(wildcard $(NWOS)/test_char.h)" "$(NWOS)/test_char.h"
    +$(error Error: required header $(NWOS)/test_char.h not found!)
    +endif
    +
    +endif
    +
    +#
    +# Check for minimum APR version
    +#
    +chkapr: $(APR)/build/nw_ver.awk $(APR)/include/apr_version.h
    +	@echo $(DL)Checking for APR version...$(DL)
    +	$(AWK) -v WANTED=$(APR_WANTED) -f $^
     
     #
     # You can use this target if all that is needed is to copy files to the
     # installation area
     #
     install :: nlms FORCE
    -	
     
     clean ::
    -	$(CHK) nw_export.i                                  $(DEL) nw_export.i
    -	$(CHK) cc.opt                                       $(DEL) cc.opt
    -	$(CHK) NWGNUversion.inc                             $(DEL) NWGNUversion.inc
    -	$(CHK) $(subst /,\,$(APR))\include\apr.h            $(DEL) $(subst /,\,$(APR))\include\apr.h
    -	$(CHK) $(subst /,\,$(APRUTIL))\include\apu.h        $(DEL) $(subst /,\,$(APRUTIL))\include\apu.h
    -	$(CHK) $(subst /,\,$(APRUTIL))\include\apr_ldap.h   $(DEL) $(subst /,\,$(APRUTIL))\include\apr_ldap.h
    -	$(CHK) $(subst /,\,$(PCRE))\config.h                $(DEL) $(subst /,\,$(PCRE))\config.h
    -	$(CHK) $(subst /,\,$(PCRE))\pcre.h                  $(DEL) $(subst /,\,$(PCRE))\pcre.h
    -	$(CHK) $(subst /,\,$(NWOS))\httpd.imp               $(DEL) $(subst /,\,$(NWOS))\httpd.imp
    +	$(call DEL,$(SRC)/include/ap_config_layout.h)
    +	$(call DEL,$(PCRE)/config.h)
    +	$(call DEL,$(PCRE)/pcre.h)
    +	$(call DEL,$(DAV)/main/dav.imp)
    +	$(call DEL,$(NWOS)/httpd.imp)
    +	$(call DEL,nw_export.i)
    +	$(call DEL,cc.opt)
    +	$(call DEL,NWGNUversion.inc)
    +ifneq "$(BUILDTOOL_AS_NLM)" "1"
    +	$(call DEL,$(NWOS)/chartables.c)
    +	$(call DEL,$(NWOS)/test_char.h)
    +	$(call DEL,dftables.exe)
    +	$(call DEL,gen_test_char.exe)
    +endif
    +
    +#
    +# Include the 'tail' makefile that has targets that depend on variables defined
    +# in this makefile
    +#
    +
    +include $(APBUILD)/NWGNUtail.inc
         
    diff --git a/build/NWGNUscripts.inc b/build/NWGNUscripts.inc
    new file mode 100644
    index 00000000000..27029ebb744
    --- /dev/null
    +++ b/build/NWGNUscripts.inc
    @@ -0,0 +1,43 @@
    +# Include for creating start/stop/restart NCF scripts.
    +
    +instscripts:: FORCE $(INSTALLBASE)/ap2start.ncf $(INSTALLBASE)/ap2auto.ncf $(INSTALLBASE)/ap2rest.ncf $(INSTALLBASE)/ap2stop.ncf
    +
    +$(INSTALLBASE)/ap2start.ncf:
    +	@echo $(DL)# NCF to start Apache 2.x in own address space$(DL)> $@
    +	@echo $(DL)# Make sure that httpstk is not listening on 80$(DL)>> $@
    +	@echo $(DL)# httpcloseport 80 /silent$(DL)>> $@
    +	@echo $(DL)# search add SYS:/$(BASEDIR)$(DL)>> $@
    +	@echo $(DL)load address space = $(BASEDIR) SYS:/$(BASEDIR)/apache2$(DL)>> $@
    +	@echo $(DL)# If you have problems with 3rd-party modules try to load in OS space.$(DL)>> $@
    +	@echo $(DL)# load SYS:/$(BASEDIR)/apache2$(DL)>> $@
    +	@$(ECHONL)>> $@
    +
    +$(INSTALLBASE)/ap2auto.ncf:
    +	@echo $(DL)# NCF to start Apache 2.x in own address space$(DL)> $@
    +	@echo $(DL)# and let automatically restart in case it crashes$(DL)>> $@
    +	@echo $(DL)# Make sure that httpstk is not listening on 80$(DL)>> $@
    +	@echo $(DL)# httpcloseport 80 /silent$(DL)>> $@
    +	@echo $(DL)# search add SYS:/$(BASEDIR)$(DL)>> $@
    +	@echo $(DL)restart address space = $(BASEDIR) SYS:/$(BASEDIR)/apache2$(DL)>> $@
    +	@$(ECHONL)>> $@
    +
    +$(INSTALLBASE)/ap2rest.ncf:
    +	@echo $(DL)# NCF to restart Apache 2.x in own address space$(DL)> $@
    +	@echo $(DL)apache2 restart -p $(BASEDIR)$(DL)>> $@
    +	@echo $(DL)# If you have loaded Apache2.x in OS space use the line below.$(DL)>> $@
    +	@echo $(DL)# apache2 restart$(DL)>> $@
    +	@$(ECHONL)>> $@
    +
    +$(INSTALLBASE)/ap2stop.ncf:
    +	@echo $(DL)# NCF to stop Apache 2.x in own address space$(DL)> $@
    +	@echo $(DL)apache2 shutdown -p $(BASEDIR)$(DL)>> $@
    +	@echo $(DL)# If you have loaded Apache2.x in OS space use the line below.$(DL)>> $@
    +	@echo $(DL)# apache2 shutdown$(DL)>> $@
    +	@$(ECHONL)>> $@
    +
    +$(INSTALLBASE)/ap2prod.ncf:
    +	@echo $(DL)# NCF to create a product record for Apache 2.x in product database$(DL)> $@
    +	@echo $(DL)PRODSYNC DEL APACHE$(VERSION_MAJMIN)$(DL)>> $@
    +	@echo $(DL)PRODSYNC ADD APACHE$(VERSION_MAJMIN) ProductRecord "$(VERSION_STR)" "Apache $(VERSION_STR) Webserver"$(DL)>> $@
    +	@$(ECHONL)>> $@
    +
    diff --git a/build/NWGNUtail.inc b/build/NWGNUtail.inc
    index 3a44d646f32..d6d3070b2ca 100644
    --- a/build/NWGNUtail.inc
    +++ b/build/NWGNUtail.inc
    @@ -7,7 +7,6 @@
     # If we are going to create an nlm, make sure we have assigned variables to
     # use during the link.
     #
    -echo NLM_NAME=$(NLM_NAME)
     ifndef NLM_NAME
     NLM_NAME = $(TARGET_nlm)
     endif
    @@ -25,129 +24,153 @@ NLM_SCREEN_NAME = DEFAULT
     endif
     
     ifndef NLM_COPYRIGHT
    -NLM_COPYRIGHT = Copyright 2000-2005 The Apache Software Foundation or its licensors as applicable.  Licensed under the Apache License Version 2.0.
    +NLM_COPYRIGHT = Licensed under the Apache License, Version 2.0
    +endif
    +
    +ifeq "$(NLM_FLAGS)" ""
    +NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
    +endif
    +
    +ifeq "$(NLM_STACK_SIZE)" ""
    +NLM_STACK_SIZE = 65536
    +endif
    +
    +ifeq "$(NLM_ENTRY_SYM)" ""
    +NLM_ENTRY_SYM = _LibCPrelude
    +endif
    +
    +ifeq "$(NLM_EXIT_SYM)" ""
    +NLM_EXIT_SYM = _LibCPostlude
    +endif
    +
    +ifeq "$(NLM_VERSION)" ""
    +NLM_VERSION = $(VERSION)
     endif
     
     #
     # Create dependency lists based on the files available
     #
     
    -CCOPT_DEPENDS 	= \
    -				$(AP_WORK)\build\NWGNUhead.inc \
    -				$(AP_WORK)\build\NWGNUenvironment.inc \
    -				$(AP_WORK)\build\NWGNUtail.inc \
    -				NWGNUmakefile \
    +STANDARD_DEPENDS	= \
    +				$(APBUILD)/NWGNUhead.inc \
    +				$(APBUILD)/NWGNUenvironment.inc \
    +				$(APBUILD)/NWGNUtail.inc \
     				$(CUSTOM_INI) \
     				$(EOLIST)
     
    -CPPOPT_DEPENDS	= \
    -				$(AP_WORK)\build\NWGNUhead.inc \
    -				$(AP_WORK)\build\NWGNUenvironment.inc \
    -				$(AP_WORK)\build\NWGNUtail.inc \
    -				NWGNUmakefile \
    -				$(CUSTOM_INI) \
    -				$(EOLIST)
    +CCOPT_DEPENDS	= $(STANDARD_DEPENDS)
     
     $(NLM_NAME)_LINKOPT_DEPENDS	= \
     				$(TARGET_lib) \
    -				$(AP_WORK)\build\NWGNUenvironment.inc \
    -				NWGNUmakefile \
    -				$(AP_WORK)\build\NWGNUtail.inc \
    -				$(CUSTOM_INI) \
    +				$(STANDARD_DEPENDS) \
     				$(VERSION_INC) \
     				$(EOLIST)
     
     ifeq "$(words $(strip $(TARGET_lib)))" "1"
    -LIB_NAME					= $(basename $(notdir $(TARGET_lib)))
    +LIB_NAME			= $(basename $(notdir $(TARGET_lib)))
     $(LIB_NAME)_LIBLST_DEPENDS	= \
     				$(FILES_lib_objs) \
    -				$(AP_WORK)\build\NWGNUenvironment.inc \
    -				NWGNUmakefile \
    -				$(AP_WORK)\build\NWGNUtail.inc \
    +				$(STANDARD_DEPENDS) \
     				$(CUSTOM_INI) \
     				$(EOLIST)
     endif
     
     ifeq "$(wildcard NWGNU$(LIB_NAME))" "NWGNU$(LIB_NAME)"
     $(LIB_NAME)_LIBLST_DEPENDS	+= NWGNU$(LIB_NAME)
    +CCOPT_DEPENDS	+= NWGNU$(LIB_NAME)
    +else
    +CCOPT_DEPENDS	+= NWGNUmakefile
     endif
     
     ifeq "$(wildcard NWGNU$(NLM_NAME))" "NWGNU$(NLM_NAME)"
     $(NLM_NAME)_LINKOPT_DEPENDS	+= NWGNU$(NLM_NAME)
    -CCOPT_DEPENDS 	+= NWGNU$(NLM_NAME)
    -CPPOPT_DEPENDS 	+= NWGNU$(NLM_NAME)
    +CCOPT_DEPENDS	+= NWGNU$(NLM_NAME)
    +else
    +CCOPT_DEPENDS	+= NWGNUmakefile
     endif
     
    +CPPOPT_DEPENDS	= $(CCOPT_DEPENDS)
    +
     #
     # Generic compiler rules
     #
     
    -$(AP_WORK)\build\NWGNUversion.inc : $(AP_WORK)\include\ap_release.h $(AP_WORK)\build\nw_ver.awk
    -	@echo Generating $(subst /,\,$@)
    -	awk -f $(AP_WORK)\build\nw_ver.awk $(AP_WORK)\include\ap_release.h > $(AP_WORK)\build\NWGNUversion.inc
    +ifneq "$(MAKECMDGOALS)" "clean"
    +ifneq "$(findstring clobber_,$(MAKECMDGOALS))" "clobber_"
    +$(APBUILD)/NWGNUversion.inc: $(APBUILD)/nw_ver.awk $(SRC)/include/ap_release.h
    +	@echo $(DL)GEN  $@$(DL)
    +	$(AWK) -f $^ $(SRC)/.svn/all-wcprops > $@
     
    --include $(AP_WORK)\build\NWGNUversion.inc
    +-include $(APBUILD)/NWGNUversion.inc
     
     ifneq "$(strip $(VERSION_STR))" ""
    -VERSION_INC = $(AP_WORK)\build\NWGNUversion.inc
    +VERSION_INC = $(APBUILD)/NWGNUversion.inc
     else
    -VERSION		= 2,0,0
    -VERSION_STR	= 2.0.0
    +VERSION		= 2,2,0
    +VERSION_STR	= 2.2.0
    +VERSION_MAJMIN	= 22
    +endif
    +endif
    +endif
    +ifeq "$(USE_SVNREV)" "1"
    +ifneq "$(strip $(SVN_REVISION))" ""
    +CFLAGS	+= -DAP_SERVER_ADD_STRING=\"$(SVN_REVISION)\"
    +endif
     endif
     
     
     ifeq "$(words $(strip $(TARGET_nlm)))" "1"
     
    -$(OBJDIR)/%.o: %.c $(OBJDIR)\$(NLM_NAME)_cc.opt
    -	@echo Compiling $<
    -	$(CC) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\$(NLM_NAME)_cc.opt
    +$(OBJDIR)/%.o: %.c $(OBJDIR)/$(NLM_NAME)_cc.opt
    +	@echo $(DL)CC   $<$(DL)
    +	$(CC) -o $@ $< @$(word 2, $^)
     
    -$(OBJDIR)\$(NLM_NAME)_cc.opt: $(CCOPT_DEPENDS)
    -	$(CHK) $@ $(DEL) $@
    -	@echo Generating $@
    +$(OBJDIR)/$(NLM_NAME)_cc.opt: $(CCOPT_DEPENDS)
    +	$(call DEL,$@)
    +	@echo $(DL)GEN  $@$(DL)
     ifneq "$(strip $(CFLAGS))" ""
    -	@echo $(CFLAGS) >> $@
    +	@echo $(DL)$(CFLAGS)$(DL)>> $@
     endif
     ifneq "$(strip $(XCFLAGS))" ""
    -	@echo $(XCFLAGS) >> $@
    +	@echo $(DL)$(XCFLAGS)$(DL)>> $@
     endif
     ifneq "$(strip $(XINCDIRS))" ""
    -	@echo $(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir)) >> $@
    +	@echo $(DL)$(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir))$(DL)>> $@
     endif
     ifneq "$(strip $(INCDIRS))" ""
    -	@echo $(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir)) >> $@
    +	@echo $(DL)$(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir))$(DL)>> $@
     endif
     ifneq "$(strip $(DEFINES))" ""
    -	@echo $(DEFINES) >> $@
    +	@echo $(DL)$(DEFINES)$(DL)>> $@
     endif
     ifneq "$(strip $(XDEFINES))" ""
    -	@echo $(XDEFINES) >> $@
    +	@echo $(DL)$(XDEFINES)$(DL)>> $@
     endif
     
    -$(OBJDIR)/%.o: %.cpp $(OBJDIR)\cpp.opt
    -	@echo Compiling $<
    -	$(CPP) $< -o=$(OBJDIR)\$(@F) @$(OBJDIR)\cpp.opt
    +$(OBJDIR)/%.o: %.cpp $(OBJDIR)/$(NLM_NAME)_cpp.opt
    +	@echo $(DL)CC   $<$(DL)
    +	$(CC) -o $@ $< @$(word 2, $^)
     
    -$(OBJDIR)\cpp.opt: $(CPPOPT_DEPENDS)
    -	$(CHK) $@ $(DEL) $@
    -	@echo Generating $@
    +$(OBJDIR)/$(NLM_NAME)_cpp.opt: $(CPPOPT_DEPENDS)
    +	$(call DEL,$@)
    +	@echo $(DL)GEN  $@$(DL)
     ifneq "$(strip $(CFLAGS))" ""
    -	@echo $(CFLAGS) >> $@
    +	@echo $(DL)$(CFLAGS)$(DL)>> $@
     endif
     ifneq "$(strip $(XCFLAGS))" ""
    -	@echo $(XCFLAGS) >> $@
    +	@echo $(DL)$(XCFLAGS)$(DL)>> $@
     endif
     ifneq "$(strip $(XINCDIRS))" ""
    -	@echo $(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir)) >> $@
    +	@echo $(DL)$(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir))$(DL)>> $@
     endif
     ifneq "$(strip $(INCDIRS))" ""
    -	@echo $(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir)) >> $@
    +	@echo $(DL)$(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir))$(DL)>> $@
     endif
     ifneq "$(strip $(DEFINES))" ""
    -	@echo $(DEFINES) >> $@
    +	@echo $(DL)$(DEFINES)$(DL)>> $@
     endif
     ifneq "$(strip $(XDEFINES))" ""
    -	@echo $(XDEFINES) >> $@
    +	@echo $(DL)$(XDEFINES)$(DL)>> $@
     endif
     
     endif # one target nlm
    @@ -160,22 +183,22 @@ endif # one target nlm
     
     ifeq "$(words $(strip $(TARGET_lib)))" "1"
     
    -$(TARGET_lib) : $(OBJDIR)\$(LIB_NAME)_lib.lst
    -	@echo Generating $@
    -	$(CHK) $(OBJDIR)\$(@F) $(DEL) $(OBJDIR)\$(@F)
    -	$(LIB) -o $(OBJDIR)\$(@F) @$?
    +$(TARGET_lib) : $(OBJDIR)/$(LIB_NAME)_lib.lst
    +	$(call DEL,$@)
    +	@echo $(DL)AR   $@$(DL)
    +	$(LIB) -o $@ @$<
     
    -$(OBJDIR)\$(LIB_NAME)_lib.lst: $($(LIB_NAME)_LIBLST_DEPENDS)
    -	$(CHK) $@ $(DEL) $@
    -	@echo Generating $@
    +$(OBJDIR)/$(LIB_NAME)_lib.lst: $($(LIB_NAME)_LIBLST_DEPENDS)
    +	$(call DEL,$@)
     ifneq "$(strip $(FILES_lib_objs))" ""
    -	@echo $(foreach objfile,$(FILES_lib_objs),$(subst /,\,$(objfile)) ) >> $@
    +	@echo $(DL)GEN  $@$(DL)
    +	@echo $(DL)$(FILES_lib_objs)$(DL)>> $@
     endif
     
     else # We must have more than one target library so load the individual makefiles
     
    -$(OBJDIR)/%.lib: NWGNU% $(AP_WORK)\build\NWGNUhead.inc $(AP_WORK)\build\NWGNUtail.inc $(AP_WORK)\build\NWGNUenvironment.inc FORCE
    -	@echo Calling $<
    +$(OBJDIR)/%.lib: NWGNU% $(STANDARD_DEPENDS) FORCE
    +	@echo $(DL)Calling $<$(DL)
     	$(MAKE) -f $< $(MAKECMDGOALS) RELEASE=$(RELEASE)
     
     endif
    @@ -184,117 +207,106 @@ endif
     # Rules to build nlms.
     #
     
    -vpath libcpre.o $(NOVELLLIBC)\imports
    -
     # If we only have one target NLM then build it
     ifeq "$(words $(strip $(TARGET_nlm)))" "1"
     
    -$(TARGET_nlm) : $(FILES_nlm_objs) $(FILES_nlm_libs) $(OBJDIR)\$(NLM_NAME)_link.opt
    -	@echo Linking $@
    -	$(LINK) @$(OBJDIR)\$(NLM_NAME)_link.opt
    +$(TARGET_nlm) : $(FILES_nlm_objs) $(FILES_nlm_libs) $(OBJDIR)/$(NLM_NAME)_link.opt
    +	@echo $(DL)LINK $@$(DL)
    +	$(LINK) @$(OBJDIR)/$(NLM_NAME)_link.opt
     
     # This will force the link option file to be rebuilt if we change the
     # corresponding makefile
     
    -$(OBJDIR)\$(NLM_NAME)_link.opt : $($(NLM_NAME)_LINKOPT_DEPENDS)
    -	$(CHK) $(OBJDIR)\$(@F) $(DEL) $(OBJDIR)\$(@F)
    -	$(CHK) $(OBJDIR)\$(NLM_NAME)_link.def $(DEL) $(OBJDIR)\$(NLM_NAME)_link.def
    -	@echo Generating $@
    -	@echo -warnings off >> $@
    -	@echo -zerobss >> $@
    -	@echo -desc "$(NLM_DESCRIPTION)" >> $@
    -	@echo -o $(TARGET_nlm) >> $@
    +$(OBJDIR)/$(NLM_NAME)_link.opt : $($(NLM_NAME)_LINKOPT_DEPENDS)
    +	$(call DEL,$@)
    +	$(call DEL,$(@:.opt=.def))
    +	@echo $(DL)GEN  $@$(DL)
    +	@echo $(DL)-nlmversion=$(NLM_VERSION)$(DL)>> $@
    +	@echo $(DL)-warnings off$(DL)>> $@
    +	@echo $(DL)-zerobss$(DL)>> $@
    +	@echo $(DL)-o $(TARGET_nlm)$(DL)>> $@
     ifneq "$(FILE_nlm_copyright)" ""
    -	@-type $(FILE_nlm_copyright) >> $@
    -else
    -	@echo -copy "$(NLM_COPYRIGHT)" >> $@
    +	@$(CAT) $(FILE_nlm_copyright)>> $@
     endif
     ifeq "$(RELEASE)" "debug"
    -	@echo -g >> $@
    -	@echo -sym internal >> $@
    -	@echo -sym codeview4 >> $@
    -	@echo -osym $(OBJDIR)\$(NLM_NAME).sym >> $@
    -else
    -	@echo -sym internal >> $@
    -endif
    -	@echo -screenname "$(NLM_SCREEN_NAME)" >> $@
    -ifneq "$(NLM_VERSION)" ""
    -	@echo -nlmversion=$(NLM_VERSION) >> $@
    +	@echo $(DL)-g$(DL)>> $@
    +	@echo $(DL)-sym internal$(DL)>> $@
    +	@echo $(DL)-sym codeview4$(DL)>> $@
    +	@echo $(DL)-osym $(OBJDIR)/$(NLM_NAME).sym$(DL)>> $@
     else
    -	@echo -nlmversion=$(VERSION) >> $@
    -endif
    -	@echo -l $(NWOS) >> $@
    -	@echo -l $(AP)/$(OBJDIR) >> $@
    -	@echo -l $(APR)/$(OBJDIR) >> $@
    -	@echo -l $(APRUTIL)/$(OBJDIR) >> $@
    -	@echo -l $(PCRE)/$(OBJDIR) >> $@
    -	@echo -l $(HTTPD)/$(OBJDIR) >> $@
    -	@echo -l $(SERVER)/$(OBJDIR) >> $@
    -	@echo -l $(STDMOD)/$(OBJDIR) >> $@
    -	@echo -l $(NWOS)/$(OBJDIR) >> $@
    -	@echo -l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/Runtime" >> $@
    -	@echo -l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/MSL C++" >> $@
    +	@echo $(DL)-sym internal$(DL)>> $@
    +endif
    +	@echo $(DL)-l $(SRC)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(HTTPD)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(SERVER)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(STDMOD)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(NWOS)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(NWOS)$(DL)>> $@
    +	@echo $(DL)-l $(APR)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(APR)$(DL)>> $@
    +	@echo $(DL)-l $(APRUTIL)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(PCRE)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/Runtime"$(DL)>> $@
    +	@echo $(DL)-l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/MSL C++"$(DL)>> $@
     ifneq "$(IPV6)" ""
    -	@echo -l $(NOVELLLIBC)\include\winsock\IPV6 >> $@
    +	@echo $(DL)-l $(NOVELLLIBC)/include/winsock/IPV6$(DL)>> $@
     endif
    -	@echo -l $(NOVELLLIBC)/imports >> $@
    +	@echo $(DL)-l $(NOVELLLIBC)/imports$(DL)>> $@
     ifneq "$(LDAPSDK)" ""
    -	@echo -l $(LDAPSDK)/lib/nlm >> $@
    -endif
    -	@echo -l $(APULDAP)/$(OBJDIR) >> $@
    -	@echo -l $(XML)/$(OBJDIR) >> $@
    -	@echo -nodefaults >> $@
    -	@echo -map $(OBJDIR)\$(NLM_NAME).map>> $@
    -	@echo -threadname "$(NLM_THREAD_NAME)" >> $@
    -ifneq "$(NLM_STACK_SIZE)" ""
    -	@echo -stacksize $(subst K,000,$(subst k,K,$(strip $(NLM_STACK_SIZE)))) >> $@
    -else
    -	@echo -stacksize 64000 >> $@
    -endif
    -ifneq "$(NLM_ENTRY_SYM)" ""
    -	@echo -entry $(NLM_ENTRY_SYM) >> $@
    -endif
    -ifneq "$(NLM_EXIT_SYM)" ""
    -	@echo -exit $(NLM_EXIT_SYM) >> $@
    -endif
    -ifneq "$(NLM_CHECK_SYM)" ""
    -	@echo -check $(NLM_CHECK_SYM) >> $@
    -endif
    -ifneq "$(NLM_FLAGS)" ""
    -	@echo -flags $(NLM_FLAGS) >> $@
    +	@echo $(DL)-l $(LDAPSDK)/imports$(DL)>> $@
     endif
    +	@echo $(DL)-l $(APULDAP)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(XML)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-l $(SRC)/$(OBJDIR)$(DL)>> $@
    +	@echo $(DL)-nodefaults$(DL)>> $@
    +	@echo $(DL)-map $(OBJDIR)/$(NLM_NAME).map$(DL)>> $@
     ifneq "$(strip $(XLFLAGS))" ""
    -	@echo $(XLFLAGS) >> $@
    +	@echo $(DL)$(XLFLAGS)$(DL)>> $@
     endif
     ifneq "$(strip $(FILES_nlm_objs))" ""
    -	@echo $(foreach objfile,$(strip $(FILES_nlm_objs)),$(subst /,\,$(objfile))) >> $@
    +	@echo $(DL)$(foreach objfile,$(strip $(FILES_nlm_objs)),$(objfile))$(DL)>> $@
     endif
     ifneq "$(FILES_nlm_libs)" ""
    -	@echo $(foreach libfile, $(notdir $(strip $(FILES_nlm_libs))),-l$(subst /,\,$(libfile))) >> $@
    +	@echo $(DL)$(foreach libfile, $(notdir $(strip $(FILES_nlm_libs))),-l$(libfile))$(DL)>> $@
     endif
    -	@echo -commandfile $(OBJDIR)\$(NLM_NAME)_link.def >> $@
    +	@echo $(DL)-commandfile $(@:.opt=.def)$(DL)>> $@
    +	@echo $(DL)# Do not edit this file - it is created by make!$(DL)> $(@:.opt=.def) 
    +	@echo $(DL)# All your changes will be lost!!$(DL)>> $(@:.opt=.def) 
     ifneq "$(FILE_nlm_msg)" ""
    -	@echo Messages $(FILE_nlm_msg) >> $(OBJDIR)\$(NLM_NAME)_link.def
    +	@echo $(DL)Messages $(FILE_nlm_msg)$(DL)>> $(@:.opt=.def)
     endif
     ifneq "$(FILE_nlm_hlp)" ""
    -	@echo Help $(FILE_nlm_hlp) >> $(OBJDIR)\$(NLM_NAME)_link.def
    +	@echo $(DL)Help $(FILE_nlm_hlp)$(DL)>> $(@:.opt=.def)
    +endif
    +ifeq "$(FILE_nlm_copyright)" ""
    +	@echo $(DL)copyright "$(NLM_COPYRIGHT)"$(DL)>> $(@:.opt=.def)
    +endif
    +	@echo $(DL)description "$(NLM_DESCRIPTION)"$(DL)>> $(@:.opt=.def)
    +	@echo $(DL)threadname "$(NLM_THREAD_NAME)"$(DL)>> $(@:.opt=.def)
    +	@echo $(DL)screenname "$(NLM_SCREEN_NAME)"$(DL)>> $(@:.opt=.def)
    +	@echo $(DL)stacksize $(subst K,000,$(subst k,K,$(strip $(NLM_STACK_SIZE))))$(DL)>> $(@:.opt=.def)
    +#	@echo $(DL)version $(NLM_VERSION) $(DL)>> $(@:.opt=.def)
    +	@echo $(DL)start $(NLM_ENTRY_SYM)$(DL)>> $(@:.opt=.def)
    +	@echo $(DL)exit $(NLM_EXIT_SYM)$(DL)>> $(@:.opt=.def)
    +ifneq "$(NLM_CHECK_SYM)" ""
    +	@echo $(DL)check $(NLM_CHECK_SYM)$(DL)>> $(@:.opt=.def)
     endif
    +	@echo $(DL)$(strip $(NLM_FLAGS))$(DL)>> $(@:.opt=.def)
     ifneq "$(FILES_nlm_modules)" ""
    -	@echo module $(foreach module,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_modules))),$(subst /,\,$(module))) >> $(OBJDIR)\$(NLM_NAME)_link.def
    +	@echo $(DL)module $(foreach module,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_modules))),$(module))$(DL)>> $(@:.opt=.def)
     endif
     ifneq "$(FILES_nlm_Ximports)" ""
    -	@echo Import $(foreach import,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_Ximports))),$(subst /,\,$(import))) >> $(OBJDIR)\$(NLM_NAME)_link.def
    +	@echo $(DL)import $(foreach import,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_Ximports))),$(import))$(DL)>> $(@:.opt=.def)
     endif
     ifneq "$(FILES_nlm_exports)" ""
    -	@echo Export $(foreach export,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_exports))),$(subst /,\,$(export))) >> $(OBJDIR)\$(NLM_NAME)_link.def
    +	@echo $(DL)export $(foreach export,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_exports))),$(export))$(DL)>> $(@:.opt=.def)
     endif
    -
     # if APACHE_UNIPROC is defined, don't include XDCData
     ifndef APACHE_UNIPROC
     ifneq "$(string $(XDCDATA))" ""
    -	@echo XDCData $(XDCDATA) >> $(OBJDIR)\$(NLM_NAME)_link.def
    +	@echo $(DL)xdcdata $(XDCDATA)$(DL)>> $(@:.opt=.def)
     else
    -	@echo XDCData $(NWOS)\apache.xdc >> $(OBJDIR)\$(NLM_NAME)_link.def
    +	@echo $(DL)xdcdata apache.xdc$(DL)>> $(@:.opt=.def)
     endif
     endif
     
    @@ -305,10 +317,10 @@ else # more than one target so look for individual makefiles.
     
     ifndef NO_LICENSE_FILE
     
    -$(OBJDIR)/%.nlm: NWGNU% $(AP_WORK)\build\NWGNUhead.inc $(AP_WORK)\build\NWGNUtail.inc $(AP_WORK)\build\NWGNUenvironment.inc $(CUSTOM_INI) $(VERSION_INC) FORCE
    -	@echo Calling $<
    +$(OBJDIR)/%.nlm: NWGNU% $($(NLM_NAME)_LINKOPT_DEPENDS) FORCE
    +	@echo $(DL)Calling $<$(DL)
     	$(MAKE) -f $< $(MAKECMDGOALS) RELEASE=$(RELEASE)
    -	$(CMD) echo.
    +	@$(ECHONL)
     
     else
     
    diff --git a/build/aix/README b/build/aix/README
    new file mode 100644
    index 00000000000..470ce2be1c7
    --- /dev/null
    +++ b/build/aix/README
    @@ -0,0 +1,38 @@
    +The script buildaix.ksh will attempt to build a AIX installp fileset
    +out of a source tree for ASF project
    +
    +REQUIREMENTS:
    +  Fileset                      Level  State  Type  Description (Uninstaller)
    +  ----------------------------------------------------------------------------
    +  bos.adt.insttools          5.3.7.2    C     F    Tool to Create installp
    +                                                   Packages
    +  Fileset                      Level  State  Type  Description (Uninstaller)
    +  ----------------------------------------------------------------------------
    +  rpm.rte                   3.0.5.41    C     F    RPM Package Manager
    +
    +Additional:
    +Preferred: download zlib sources and copy zlib.h and zconf.h to /opt/include
    +and, if configure cannot find them directly, add symbolic links from /usr/include to /opt/include
    +
    +To build a package, make sure you are in the root of the source tree,
    +and run:
    +
    +build/aix/buildaix.ksh
    +
    +An AIX fileset named $PKG.$NAME.$ARCH.$VERSION.I will be
    +created in the build/aix directory. the .template file created is also there.
    +
    +KNOWN issues:
    +on AIX libtool is known to have issues with the install command.
    +Some of these issues have been resolved by extracting the apr/apu utilities
    +from the projects (i.e. NOT using the embedded version)
    +In case of problems I recommend that you install the GNU 'install' program (part of coreutils)
    +If make DESTDIR=$TEMPDIR install command continues to fail, try 'make install' and then run
    +the buildaix.ksh command again
    +
    +TODO
    +Add Copyright display/banner
    +Add Apache LICENSE to fileset and require acceptance
    +Add special instructions for TCB - to ignore /etc/* /var/httpd/htdocs/*
    +Add _config_i scripts to setup autostart
    +Add _pre_i scripts to verify pre-requisites, required users/groups, etc.
    diff --git a/build/aix/aixinfo b/build/aix/aixinfo
    new file mode 100644
    index 00000000000..58ac3a1d3e0
    --- /dev/null
    +++ b/build/aix/aixinfo
    @@ -0,0 +1,16 @@
    +
    +PKG="ASF"
    +NAME="httpd"
    +ARCH="powerpc"
    +VERSION="2.2.22"
    +CATEGORY="application"
    +VENDOR="Apache Software Foundation"
    +EMAIL="dev@httpd.apache.org"
    +VMMN=`build/get-version.sh mmn include/ap_mmn.h MODULE_MAGIC_NUMBER`
    +REVISION=`build/get-version.sh all include/ap_release.h AP_SERVER`
    +VERSION=`echo $REVISION | cut -d- -s -f1`
    +RELEASE=`echo $REVISION | cut -d- -s -f2`
    +if [ "x$VERSION" = "x" ]; then
    +      VERSION=$REVISION
    +      RELEASE=0
    +fi
    diff --git a/build/aix/buildaix.ksh b/build/aix/buildaix.ksh
    new file mode 100755
    index 00000000000..ec7c19eae90
    --- /dev/null
    +++ b/build/aix/buildaix.ksh
    @@ -0,0 +1,124 @@
    +#!/usr/bin/ksh
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +#
    +
    +# buildaix.ksh: This script builds an AIX fileset of Apache httpd
    +
    +# if arguments - try to run fast
    +cmd=$0
    +
    +export CFLAGS='-O2'
    +
    +lslpp -L bos.adt.insttools >/dev/null
    + [[ $? -ne 0 ]] && echo "must have bos.adt.insttools installed" && exit -1
    +
    +apr_config=`which apr-1-config`
    +apu_config=`which apu-1-config`
    +
    +if [[ -z ${apr_config} && -z ${apu_config} ]]
    +then
    +	export PATH=/opt/bin:${PATH}
    +	apr_config=`which apr-1-config`
    +	apu_config=`which apu-1-config`
    +fi
    +
    +while test $# -gt 0
    +do
    +  # Normalize
    +  case "$1" in
    +  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
    +  *) optarg= ;;
    +  esac
    +
    +  case "$1" in
    +  --with-apr=*)
    +  apr_config=$optarg
    +  ;;
    +  esac
    +
    +  case "$1" in
    +  --with-apr-util=*)
    +  apu_config=$optarg
    +  ;;
    +  esac
    +
    +  shift
    +  argc--
    +done
    +
    +if [ ! -f "$apr_config" -a ! -f "$apr_config/configure.in" ]; then
    +  echo "The apr source directory / apr-1-config could not be found"
    +  echo "If available, install the ASF.apu.rte and ASF.apr.rte filesets"
    +  echo "Usage: $cmd [--with-apr=[dir|file]] [--with-apr-util=[dir|file]]"
    +  exit 1
    +fi
    +
    +if [ ! -f "$apu_config" -a ! -f "$apu_config/configure.in" ]; then
    +  echo "The apu source directory / apu-1-config could not be found"
    +  echo "If available, install the ASF.apu.rte and ASF.apr.rte filesets"
    +  echo "Usage: $cmd [--with-apr=[dir|file]] [--with-apr-util=[dir|file]]"
    +  exit 1
    +fi
    +
    +. build/aix/aixinfo
    +LAYOUT=AIX
    +TEMPDIR=/var/tmp/$USER/${NAME}.${VERSION}
    +rm -rf $TEMPDIR
    +
    +if [[ ! -e ./Makefile ]] # if Makefile exists go faster
    +then
    +	echo "+ ./configure \n\
    +		--enable-layout=$LAYOUT \n\
    +		--with-apr=$apr_config \n\
    +		--with-apr-util=$apu_config \n\
    +		--with-mpm=worker \n\
    +		--enable-ssl \n\
    +		--enable-mods-shared=all > build/aix/configure.out"
    +	./configure \
    +		--enable-layout=$LAYOUT \
    +		--with-apr=$apr_config \
    +		--with-apr-util=$apu_config \
    +		--with-mpm=worker \
    +		--enable-ssl \
    +		--enable-mods-shared=all > build/aix/configure.out
    +		 [[ $? -ne 0 ]] && echo './configure' returned an error && exit -1
    +else
    +	echo $0: using existing Makefile
    +	echo $0: run make distclean to get a standard AIX configure
    +	echo
    +	ls -l ./Makefile config.*
    +	echo
    +fi
    +
    +echo "+ make > build/aix/make.out"
    +make > build/aix/make.out
    + [[ $? -ne 0 ]] && echo 'make' returned an error && exit -1
    +
    +echo "+ make install DESTDIR=$TEMPDIR > build/aix/install.out"
    +make install DESTDIR=$TEMPDIR > build/aix/install.out
    + [[ $? -ne 0 ]] && echo 'make install' returned an error && exit -1
    +
    +echo "+ build/aix/mkinstallp.ksh $TEMPDIR > build/aix/mkinstallp.out"
    +build/aix/mkinstallp.ksh $TEMPDIR > build/aix/mkinstallp.out
    + [[ $? -ne 0 ]] && echo mkinstallp.ksh returned an error && exit -1
    +
    +rm -rf $TEMPDIR
    +
    +# list installable fileset(s)
    +echo ========================
    +installp -d build/aix -L
    +echo ========================
    diff --git a/build/aix/mkinstallp.ksh b/build/aix/mkinstallp.ksh
    new file mode 100755
    index 00000000000..90e89ed5b7d
    --- /dev/null
    +++ b/build/aix/mkinstallp.ksh
    @@ -0,0 +1,200 @@
    +#!/usr/bin/ksh
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +#
    +
    +# minstallp.ksh # create an installp image of ${NAME} (defined in aixinfo)
    +# from TEMPDIR using mkinstallp (part of bos.adt.insttools)
    +
    +[[ $# == 0 ]] && echo $0: Syntax error && echo "Syntax: $0 <BaseDirectory>" && exit -1
    +
    +umask 022
    +TEMPDIR=$1
    +BASE=`pwd`
    +cd ${TEMPDIR}
    +[[ $? != 0 ]] && echo $0: ${TEMPDIR} -- bad directory && exit -1
    +
    +# clean up side-effects from DEBUG passes - usr/local might be there as
    +# a circular link i.e. usr/local points at /usr/local
    +# as we are not using /usr/local for ASF packaging, remove it!
    +# mkinstallp seems to make usr/local -> /usr/local 
    +[[ -f usr/local ]] && rm -f usr/local && echo removed unexpected usr/local !!
    +[[ -L usr/local ]] && rm -f usr/local && echo removed unexpected usr/local !!
    +[[ -d usr/local ]] && rm -rf usr/local && echo removed unexpected usr/local !!
    +
    +# use the aixinfo for PKG NAME VERSION etc labels
    +cd ${BASE}
    +. build/aix/aixinfo
    +# INFO=${BASE}/build/aix/.info
    +# mkdir -p $INFO
    +INFO=${BASE}/build/aix
    +template=${INFO}/${PKG}.${NAME}.${VERSION}.template
    +>$template
    +
    +# mkinstallp template definitions
    +# TODO: add AIX oslevel/uname information for package filename
    +package=$PKG
    +name=$NAME
    +vrmf=$VERSION
    +release=$RELEASE
    +descr="$NAME version ${VERSION} for $ARCH ${VENDOR}"
    +
    +# copy LICENSE information
    +# TODO: setup template so that license acceptance is required
    +# TODO: add Copyright Information for display during install
    +mkdir -p ${TEMPDIR}/usr/swlag/en_US
    +cp ${BASE}/LICENSE ${TEMPDIR}/usr/swlag/en_US/${PKG}.${NAME}.la
    +
    +cd ${TEMPDIR}
    +# remove files we do not want as "part" possibly
    +# left-over from a previous packaging
    +rm -rf .info lpp_name tmp usr/lpp
    +[[ $? -ne 0 ]] && echo $cmd: cleanup error && pwd && ls -ltr && exit -1
    +
    +#if we are going to add extra symbolic links - do it now
    +[[ -r build/aix/aixlinks ]] && ksh build/aix/aixlinks
    +
    +# get the directory sizes in blocks
    +for d in etc opt var
    +do
    +	if [[ -d $d/${NAME} ]]
    +	then
    +		set `du -s $d/${NAME}`
    +	else
    +		[[ -d $d ]] && set `du -s $d`
    +	fi
    +	# make sure the argument exists before using setting values
    +	if [[ -d $d ]]
    +	then
    +		eval nm$d=/"$2"
    +		let sz$d=$1
    +	fi
    +done
    +
    +files=./${NAME}.${VERSION}
    +cd ${TEMPDIR}/..
    +find ${files} -type d -exec chmod og+rx {} \;
    +chmod -R go+r ${files}
    +chown -R 0.0 ${files}
    +
    +cat - <<EOF >>$template
    +Package Name: ${PKG}.${NAME}
    +Package VRMF: ${VERSION}.${RELEASE}
    +Update: N
    +Fileset
    +  Fileset Name: ${PKG}.${NAME}.rte
    +  Fileset VRMF: ${VERSION}.${RELEASE}
    +  Fileset Description: ${descr}
    +  USRLIBLPPFiles
    +  EOUSRLIBLPPFiles
    +  Bosboot required: N
    +  License agreement acceptance required: N
    +  Name of license agreement: 
    +  Include license files in this package: N
    +  Requisites:
    +EOF
    +
    +[[ $szetc -ne 0 ]] && echo "        Upsize: ${nmetc} $szetc;" >> $template
    +[[ $szopt -ne 0 ]] && echo "        Upsize: ${nmopt} $szopt;" >> $template
    +[[ $szvar -ne 0 ]] && echo "        Upsize: ${nmvar} $szvar;" >> $template
    +echo "  USRFiles" >> $template
    +
    +# USR part -- i.e. files in /usr and /opt
    +cd ${TEMPDIR}/..
    +find ${files}/usr/swlag ${files}/opt \
    +	| sed -e s#^${files}## | sed -e "/^$/d" >>$template
    +echo "  EOUSRFiles" >> $template
    +
    +if [[ $szetc -gt 0 || $szvar -gt 0 ]]
    +then
    +INSTROOT=${TEMPDIR}/usr/lpp/${PKG}.${NAME}/inst_root
    +mkdir -p ${INSTROOT}
    +cd ${TEMPDIR}
    +[[ $szetc -gt 0 ]] && find ./etc -type d | backup -if - | (cd ${INSTROOT}; restore -xqf -) >/dev/null
    +[[ $szvar -gt 0 ]] && find ./var -type d | backup -if - | (cd ${INSTROOT}; restore -xqf -) >/dev/null
    +cat - <<EOF >>$template
    +  ROOT Part: Y
    +  ROOTFiles
    +EOF
    +
    +# ROOT part 
    +cd ${TEMPDIR}/..
    +find ${files}/etc ${files}/var \
    +	| sed -e s#^${files}## | sed -e "/^$/d" >>$template
    +else
    +# no ROOT parts to include
    +cat - <<EOF >>$template
    +  ROOT Part: N
    +  ROOTFiles
    +EOF
    +fi
    +cat - <<EOF >>$template
    +  EOROOTFiles
    +  Relocatable: N
    +EOFileset
    +EOF
    +# man pages as seperate fileset
    +cd ${TEMPDIR}
    +if [[ -d usr/share/man ]]
    +then
    +	# manual pages, space required calculation
    +	set `du -s usr/share/man`
    +	szman=$1
    +	descr="$NAME ${VERSION} man pages ${VENDOR}"
    +	cat - <<EOF >>$template
    +Fileset
    +  Fileset Name: ${PKG}.${NAME}.man.en_US
    +  Fileset VRMF: ${VERSION}.${RELEASE}
    +  Fileset Description: ${descr}
    +  USRLIBLPPFiles
    +  EOUSRLIBLPPFiles
    +  Bosboot required: N
    +  License agreement acceptance required: N
    +  Name of license agreement:
    +  Include license files in this package: N
    +  Requisites:
    +EOF
    +
    +	echo "        Upsize: /usr/share/man ${szman};" >> $template
    +	echo "  USRFiles" >> $template
    +	cd ${TEMPDIR}/..
    +	find ${files}/usr/share | sed -e s#^${files}## | sed -e "/^$/d" >>$template
    +	cat - <<EOF >>$template
    +  EOUSRFiles
    +  ROOT Part: N
    +  ROOTFiles
    +  EOROOTFiles
    +  Relocatable: N
    +EOFileset
    +EOF
    +fi
    +
    +# use mkinstallp to create the fileset. result is in ${TEMPDIR}/tmp
    +# must actually sit in TEMPDIR for ROOT part processing to succeed
    +# also - need "empty" directories to exist, as they do not get copied
    +# in the inst_root part
    +cd ${TEMPDIR}
    +mkinstallp -d ${TEMPDIR} -T ${template}
    +[[ $? -ne 0 ]] && echo mkinstallp returned error status && exit -1
    +
    +# copy package to build/aix
    +# create TOC
    +cp ${TEMPDIR}/tmp/$PKG.$NAME.$VERSION.0.bff ${BASE}/build/aix
    +cd ${BASE}/build/aix
    +rm -f $PKG.$NAME.$VERSION.$ARCH.I
    +mv $PKG.$NAME.$VERSION.0.bff $PKG.$NAME.$ARCH.$VERSION.I
    +rm -f .toc
    +inutoc .
    diff --git a/build/binbuild.sh b/build/binbuild.sh
    index 15ee27ea7a1..92fe0a723e9 100755
    --- a/build/binbuild.sh
    +++ b/build/binbuild.sh
    @@ -1,11 +1,11 @@
     #!/bin/sh
     # 	
    -# Copyright 1999-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/bsd_makefile b/build/bsd_makefile
    index d4e81fe7036..b8d8189b8b9 100755
    --- a/build/bsd_makefile
    +++ b/build/bsd_makefile
    @@ -1,11 +1,11 @@
     #! /bin/sh
     #
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/build-modules-c.awk b/build/build-modules-c.awk
    index b696a526809..01d0b333341 100644
    --- a/build/build-modules-c.awk
    +++ b/build/build-modules-c.awk
    @@ -1,9 +1,9 @@
    -# Copyright 1999-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/buildinfo.sh b/build/buildinfo.sh
    index 6de75fa476d..e18d0a83bc8 100755
    --- a/build/buildinfo.sh
    +++ b/build/buildinfo.sh
    @@ -1,11 +1,11 @@
     #!/bin/sh
     #
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/config_vars.sh.in b/build/config_vars.sh.in
    index 9c002f71b44..81bbd709692 100644
    --- a/build/config_vars.sh.in
    +++ b/build/config_vars.sh.in
    @@ -1,12 +1,12 @@
     #! @SHELL@
     # -*- sh -*-
     #
    -# Copyright 2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -21,8 +21,19 @@
     # installed.  Such a file cannot be generated at configure-time, since it
     # requires the output of the *installed* ap*-config scripts.
     
    -APR_CONFIG=@APR_CONFIG@
    -APU_CONFIG=@APU_CONFIG@
    +# For a DESTDIR=... installation using the bundled copies of 
    +# apr/apr-util, the installed ap?-config scripts must be found 
    +# in the DESTDIR-relocated install tree.  For a DESTDIR=... 
    +# installation when using *external* copies of apr/apr-util,
    +# the absolute path must be used, not DESTDIR-relocated.
    +
    +if test -f ${DESTDIR}@APR_CONFIG@; then
    +   APR_CONFIG=${DESTDIR}@APR_CONFIG@
    +   APU_CONFIG=${DESTDIR}@APU_CONFIG@
    +else
    +   APR_CONFIG=@APR_CONFIG@
    +   APU_CONFIG=@APU_CONFIG@
    +fi
     
     APR_LIBTOOL="`${APR_CONFIG} --apr-libtool`"
     APR_INCLUDEDIR="`${APR_CONFIG} --includedir`"
    @@ -38,6 +49,7 @@ exec sed "
     /^DSO_MODULES/d
     /^MODULE_/d
     /^PORT/d
    +/^SSLPORT/d
     /^nonssl_/d
     /^CORE_IMPLIB/d
     /^rel_/d
    diff --git a/build/fastgen.sh b/build/fastgen.sh
    index 28c6e57b2e7..87bce15e9fc 100755
    --- a/build/fastgen.sh
    +++ b/build/fastgen.sh
    @@ -1,11 +1,11 @@
     #! /bin/sh
     #
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/get-version.sh b/build/get-version.sh
    index e3ba69c513e..ddf175cebdd 100755
    --- a/build/get-version.sh
    +++ b/build/get-version.sh
    @@ -1,11 +1,11 @@
     #!/bin/sh
     #
    -# Copyright 2003-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/install-bindist.sh.in b/build/install-bindist.sh.in
    index ca6860417d6..f304ac7c808 100755
    --- a/build/install-bindist.sh.in
    +++ b/build/install-bindist.sh.in
    @@ -1,11 +1,11 @@
     #!/bin/sh
     #
    -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/install.sh b/build/install.sh
    index 6195768bd67..c5d20dac6b9 100755
    --- a/build/install.sh
    +++ b/build/install.sh
    @@ -1,11 +1,11 @@
     #!/bin/sh
     #
    -# Copyright 1999-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/installwinconf.awk b/build/installwinconf.awk
    new file mode 100644
    index 00000000000..4104fd30ef9
    --- /dev/null
    +++ b/build/installwinconf.awk
    @@ -0,0 +1,238 @@
    +#
    +# InstallConf.awk Apache HTTP 2.2 script to rewrite the @@ServerRoot@@
    +# tags in httpd.conf.in to original\httpd.conf - then duplicate the
    +# conf files to the 'live' configuration if they don't already exist.
    +#
    +# Note that we -don't- want the ARGV file list, so no additional {} blocks
    +# are coded.  Use explicit args (more reliable on Win32) and use the fact
    +# that ARGV[] params are -not- '\' escaped to process the C:\Foo\Bar Win32
    +# path format.  Note that awk var=path would not succeed, since it -does-
    +# escape backslashes in the assignment.  Note also, a trailing space is
    +# required for paths, or the trailing quote following the backslash is
    +# escaped, rather than parsed.
    +#
    +BEGIN {
    +    domainname = ARGV[1];
    +    servername = ARGV[2];
    +    serveradmin = ARGV[3];
    +    serverport = ARGV[4];
    +    serversslport = ARGV[5];
    +    serverroot = ARGV[6];
    +    sourceroot = ARGV[7];
    +
    +    delete ARGV[7];
    +    delete ARGV[6];
    +    delete ARGV[5];
    +    delete ARGV[4];
    +    delete ARGV[3];
    +    delete ARGV[2];
    +    delete ARGV[1];
    +
    +    gsub( /\\/, "/", serverroot );
    +    gsub( /[ \/]+$/, "", serverroot );
    +    tstfl = serverroot "/logs/install.log"
    +    confroot = serverroot "/conf/";
    +    confdefault = confroot "original/";
    +
    +    if ( sourceroot != "docs/conf/" ) {
    +        sourceroot = serverroot "/" sourceroot;
    +    }
    +
    +    usertree = ENVIRON["USERPROFILE"]
    +    if ( usertree > "" ) {
    +        gsub( /\\/, "/", usertree );
    +        gsub( /\/[^\/]+$/, "", usertree );
    +    } else {
    +        usertree = "C:/Documents and Settings";
    +    }
    +
    +    print "Installing Apache HTTP Server 2.x with" >tstfl;
    +    print " DomainName =    " domainname >tstfl;
    +    print " ServerName =    " servername >tstfl;
    +    print " ServerAdmin =   " serveradmin >tstfl;
    +    print " ServerPort =    " serverport >tstfl;
    +    print " ServerSslPort = " serversslport >tstfl;
    +    print " ServerRoot =    " serverroot >tstfl;
    +
    +    filelist["httpd.conf"] = "httpd.conf.in";
    +    filelist["httpd-autoindex.conf"] = "httpd-autoindex.conf.in";
    +    filelist["httpd-dav.conf"] = "httpd-dav.conf.in";
    +    filelist["httpd-default.conf"] = "httpd-default.conf.in";
    +    filelist["httpd-info.conf"] = "httpd-info.conf.in";
    +    filelist["httpd-languages.conf"] = "httpd-languages.conf.in";
    +    filelist["httpd-manual.conf"] = "httpd-manual.conf.in";
    +    filelist["httpd-mpm.conf"] = "httpd-mpm.conf.in";
    +    filelist["httpd-multilang-errordoc.conf"] = "httpd-multilang-errordoc.conf.in";
    +    filelist["httpd-ssl.conf"] = "httpd-ssl.conf.in";
    +    filelist["httpd-userdir.conf"] = "httpd-userdir.conf.in";
    +    filelist["httpd-vhosts.conf"] = "httpd-vhosts.conf.in";
    +
    +    for ( conffile in filelist ) {
    +
    +      if ( conffile == "httpd.conf" ) {
    +        srcfl = sourceroot filelist[conffile];
    +        dstfl = confdefault conffile;
    +        bswarning = 1;
    +      } else {
    +        srcfl = sourceroot "extra/" filelist[conffile];
    +        dstfl = confdefault "extra/" conffile;
    +        bswarning = 0;
    +      }
    +
    +      while ( ( getline < srcfl ) > 0 ) {
    +
    +        if ( bswarning && /^$/ ) {
    +          print "#" > dstfl;
    +          print "# NOTE: Where filenames are specified, you must use forward slashes" > dstfl;
    +          print "# instead of backslashes (e.g., \"c:/apache\" instead of \"c:\\apache\")." > dstfl;
    +          print "# If a drive letter is omitted, the drive on which httpd.exe is located" > dstfl;
    +          print "# will be used by default.  It is recommended that you always supply" > dstfl;
    +          print "# an explicit drive letter in absolute paths to avoid confusion." > dstfl;
    +          bswarning = 0;
    +        }
    +        if ( /@@LoadModule@@/ ) {
    +          print "LoadModule actions_module modules/mod_actions.so" > dstfl;
    +          print "LoadModule alias_module modules/mod_alias.so" > dstfl;
    +          print "LoadModule asis_module modules/mod_asis.so" > dstfl;
    +          print "LoadModule auth_basic_module modules/mod_auth_basic.so" > dstfl;
    +          print "#LoadModule auth_digest_module modules/mod_auth_digest.so" > dstfl;
    +          print "#LoadModule authn_alias_module modules/mod_authn_alias.so" > dstfl;
    +          print "#LoadModule authn_anon_module modules/mod_authn_anon.so" > dstfl;
    +          print "#LoadModule authn_dbd_module modules/mod_authn_dbd.so" > dstfl;
    +          print "#LoadModule authn_dbm_module modules/mod_authn_dbm.so" > dstfl;
    +          print "LoadModule authn_default_module modules/mod_authn_default.so" > dstfl;
    +          print "LoadModule authn_file_module modules/mod_authn_file.so" > dstfl;
    +          print "#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so" > dstfl;
    +          print "#LoadModule authz_dbm_module modules/mod_authz_dbm.so" > dstfl;
    +          print "LoadModule authz_default_module modules/mod_authz_default.so" > dstfl;
    +          print "LoadModule authz_groupfile_module modules/mod_authz_groupfile.so" > dstfl;
    +          print "LoadModule authz_host_module modules/mod_authz_host.so" > dstfl;
    +          print "#LoadModule authz_owner_module modules/mod_authz_owner.so" > dstfl;
    +          print "LoadModule authz_user_module modules/mod_authz_user.so" > dstfl;
    +          print "LoadModule autoindex_module modules/mod_autoindex.so" > dstfl;
    +          print "#LoadModule cache_module modules/mod_cache.so" > dstfl;
    +          print "#LoadModule cern_meta_module modules/mod_cern_meta.so" > dstfl;
    +          print "LoadModule cgi_module modules/mod_cgi.so" > dstfl;
    +          print "#LoadModule charset_lite_module modules/mod_charset_lite.so" > dstfl;
    +          print "#LoadModule dav_module modules/mod_dav.so" > dstfl;
    +          print "#LoadModule dav_fs_module modules/mod_dav_fs.so" > dstfl;
    +          print "#LoadModule dav_lock_module modules/mod_dav_lock.so" > dstfl;
    +          print "#LoadModule dbd_module modules/mod_dbd.so" > dstfl;
    +          print "#LoadModule deflate_module modules/mod_deflate.so" > dstfl;
    +          print "LoadModule dir_module modules/mod_dir.so" > dstfl;
    +          print "#LoadModule disk_cache_module modules/mod_disk_cache.so" > dstfl;
    +          print "#LoadModule dumpio_module modules/mod_dumpio.so" > dstfl;
    +          print "LoadModule env_module modules/mod_env.so" > dstfl;
    +          print "#LoadModule expires_module modules/mod_expires.so" > dstfl;
    +          print "#LoadModule ext_filter_module modules/mod_ext_filter.so" > dstfl;
    +          print "#LoadModule file_cache_module modules/mod_file_cache.so" > dstfl;
    +          print "#LoadModule filter_module modules/mod_filter.so" > dstfl;
    +          print "#LoadModule headers_module modules/mod_headers.so" > dstfl;
    +          print "#LoadModule ident_module modules/mod_ident.so" > dstfl;
    +          print "#LoadModule imagemap_module modules/mod_imagemap.so" > dstfl;
    +          print "LoadModule include_module modules/mod_include.so" > dstfl;
    +          print "#LoadModule info_module modules/mod_info.so" > dstfl;
    +          print "LoadModule isapi_module modules/mod_isapi.so" > dstfl;
    +          print "#LoadModule ldap_module modules/mod_ldap.so" > dstfl;
    +          print "#LoadModule logio_module modules/mod_logio.so" > dstfl;
    +          print "LoadModule log_config_module modules/mod_log_config.so" > dstfl;
    +          print "#LoadModule log_forensic_module modules/mod_log_forensic.so" > dstfl;
    +          print "#LoadModule mem_cache_module modules/mod_mem_cache.so" > dstfl;
    +          print "LoadModule mime_module modules/mod_mime.so" > dstfl;
    +          print "#LoadModule mime_magic_module modules/mod_mime_magic.so" > dstfl;
    +          print "LoadModule negotiation_module modules/mod_negotiation.so" > dstfl;
    +          print "#LoadModule proxy_module modules/mod_proxy.so" > dstfl;
    +          print "#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so" > dstfl;
    +          print "#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so" > dstfl;
    +          print "#LoadModule proxy_connect_module modules/mod_proxy_connect.so" > dstfl;
    +          print "#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so" > dstfl;
    +          print "#LoadModule proxy_http_module modules/mod_proxy_http.so" > dstfl;
    +          print "#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so" > dstfl;
    +          print "#LoadModule reqtimeout_module modules/mod_reqtimeout.so" > dstfl;
    +          print "#LoadModule rewrite_module modules/mod_rewrite.so" > dstfl;
    +          print "LoadModule setenvif_module modules/mod_setenvif.so" > dstfl;
    +          print "#LoadModule speling_module modules/mod_speling.so" > dstfl;
    +          print "#LoadModule ssl_module modules/mod_ssl.so" > dstfl;
    +          print "#LoadModule status_module modules/mod_status.so" > dstfl;
    +          print "#LoadModule substitute_module modules/mod_substitute.so" > dstfl;
    +          print "#LoadModule unique_id_module modules/mod_unique_id.so" > dstfl;
    +          print "#LoadModule userdir_module modules/mod_userdir.so" > dstfl;
    +          print "#LoadModule usertrack_module modules/mod_usertrack.so" > dstfl;
    +          print "#LoadModule version_module modules/mod_version.so" > dstfl;
    +          print "#LoadModule vhost_alias_module modules/mod_vhost_alias.so" > dstfl;
    +          continue;
    +        }
    +        gsub( /^SSLMutex.*/, "SSLMutex default" );
    +        gsub( /@@ServerRoot@@/,   serverroot );
    +        gsub( /@exp_cgidir@/,     serverroot "/cgi-bin" );
    +        gsub( /@exp_sysconfdir@/, serverroot "/conf" );
    +        gsub( /@exp_errordir@/,   serverroot "/error" );
    +        gsub( /@exp_htdocsdir@/,  serverroot "/htdocs" );
    +        gsub( /@exp_iconsdir@/,   serverroot "/icons" );
    +        gsub( /@exp_manualdir@/,  serverroot "/manual" );
    +        gsub( /@exp_runtimedir@/, serverroot "/logs" );
    +        if ( gsub( /@exp_logfiledir@/, serverroot "/logs" ) ||
    +             gsub( /@rel_logfiledir@/, "logs" ) ) {
    +          gsub( /_log"/, ".log\"" )
    +        }
    +        gsub( /@rel_runtimedir@/, "logs" );
    +        gsub( /@rel_sysconfdir@/, "conf" );
    +        gsub( /\/home\/\*\/public_html/, \
    +              usertree "/*/My Documents/My Website" );
    +        gsub( /UserDir public_html/, "UserDir \"My Documents/My Website\"" );
    +        gsub( /@@ServerName@@|www.example.com/,  servername );
    +        gsub( /@@ServerAdmin@@|you@example.com/, serveradmin );
    +        gsub( /@@DomainName@@|example.com/,      domainname );
    +        gsub( /@@Port@@/,                        serverport );
    +        gsub( /@@SSLPort@@|443/,                 serversslport );
    +        print $0 > dstfl;
    +      }
    +      close(srcfl);
    +
    +      if ( close(dstfl) >= 0 ) {
    +        print "Rewrote " srcfl "\n to " dstfl > tstfl;
    +        if ( sourceroot != "docs/conf/" ) {
    +          gsub(/\//, "\\", srcfl);
    +          if (system("del 2>NUL \"" srcfl "\"")) {
    +            print "Failed to remove " srcfl > tstfl;
    +          } else {
    +            print "Successfully removed " srcfl > tstfl;
    +          }
    +        }
    +      } else {
    +        print "Failed to rewrite " srcfl "\n to " dstfl > tstfl;
    +      }
    +      filelist[conffile] = "extra/";
    +    }
    +
    +    filelist["httpd.conf"] = "";
    +    filelist["charset.conv"] = "";
    +    filelist["magic"] = "";
    +    filelist["mime.types"] = "";
    +
    +    for ( conffile in filelist ) {
    +      srcfl = confdefault filelist[conffile] conffile;
    +      dstfl = confroot filelist[conffile] conffile;
    +      if ( ( getline < dstfl ) < 0 ) {
    +        while ( ( getline < srcfl ) > 0 ) {
    +          print $0 > dstfl;
    +        }
    +        print "Duplicated " srcfl "\n to " dstfl > tstfl;
    +      } else {
    +        print "Existing file " dstfl " preserved" > tstfl;
    +      }
    +      close(srcfl);
    +      close(dstfl);
    +    }
    +
    +    if ( sourceroot != "docs/conf/" ) {
    +      srcfl = confdefault "installwinconf.awk";
    +      gsub(/\//, "\\", srcfl);
    +      if (system("del 2>NUL \"" srcfl "\"")) {
    +        print "Failed to remove " srcfl > tstfl;
    +      } else {
    +        print "Successfully removed " srcfl > tstfl;
    +      }
    +    }
    +    close(tstfl);
    +}
    diff --git a/build/instdso.sh b/build/instdso.sh
    index 068419ad9d6..7e333ba58db 100755
    --- a/build/instdso.sh
    +++ b/build/instdso.sh
    @@ -1,11 +1,11 @@
     #!/bin/sh
     #
    -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -61,8 +61,8 @@ then
         exit 0
     fi
     
    -DLNAME=`sed -n "/^dlname=/{s/.*='\([^']*\)'/\1/;p}" $TARGETDIR/$DSOARCHIVE_BASENAME`
    -LIBRARY_NAMES=`sed -n "/^library_names/{s/library_names='\([^']*\)'/\1/;p}" $TARGETDIR/$DSOARCHIVE_BASENAME`
    +DLNAME=`sed -n "/^dlname=/{s/.*='\([^']*\)'/\1/;p;}" $TARGETDIR/$DSOARCHIVE_BASENAME`
    +LIBRARY_NAMES=`sed -n "/^library_names/{s/library_names='\([^']*\)'/\1/;p;}" $TARGETDIR/$DSOARCHIVE_BASENAME`
     LIBRARY_NAMES=`echo $LIBRARY_NAMES | sed -e "s/ *$DLNAME//g"`
     
     if test -z "$DLNAME"
    diff --git a/build/library.mk b/build/library.mk
    index 62e2d4816b6..f2c2e156a22 100644
    --- a/build/library.mk
    +++ b/build/library.mk
    @@ -1,9 +1,9 @@
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/ltlib.mk b/build/ltlib.mk
    index 51f5ad2cd13..3b87dd366c7 100644
    --- a/build/ltlib.mk
    +++ b/build/ltlib.mk
    @@ -1,9 +1,9 @@
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/make_exports.awk b/build/make_exports.awk
    index 2b1b1d4ea2c..c599058123e 100644
    --- a/build/make_exports.awk
    +++ b/build/make_exports.awk
    @@ -1,9 +1,9 @@
    -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/make_nw_export.awk b/build/make_nw_export.awk
    index ac7f97323ba..2461e815564 100644
    --- a/build/make_nw_export.awk
    +++ b/build/make_nw_export.awk
    @@ -1,9 +1,9 @@
    -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -13,35 +13,25 @@
     # See the License for the specific language governing permissions and
     # limitations under the License.
     #
    -#
     # Based on apr's make_export.awk, which is
     # based on Ryan Bloom's make_export.pl
    +#
     
     BEGIN {
    -    printf(" (APACHE2)\n")
    +}
    +
    +function add_symbol(sym_name) {
    +    sub(" ", "", sym_name)
    +    exports[++idx] = sym_name
     }
     
     # List of functions that we don't support, yet??
     #/ap_some_name/{next}
     
    -function add_symbol (sym_name) {
    -	if (count) {
    -		found++
    -	}
    -    gsub (/ /, "", sym_name)
    -	line = line sym_name ",\n"
    -
    -	if (count == 0) {
    -		printf(" %s", line)
    -		line = ""
    -	}
    -}
    -
    -/^[ \t]*AP([RU]|_CORE)?_DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
    -    sub("[ \t]*AP([RU]|_CORE)?_DECLARE[^(]*[(][^)]*[)][ \t]*", "")
    +/^[ \t]*(AP|DAV)([RU]|_CORE)?_DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
    +    sub("[ \t]*(AP|DAV)([RU]|_CORE)?_DECLARE[^(]*[(][^)]*[)][ \t]*", "")
         sub("[(].*", "")
         sub("([^ ]* (^([ \t]*[(])))+", "")
    -
         add_symbol($0)
         next
     }
    @@ -51,13 +41,25 @@ function add_symbol (sym_name) {
         symbol = args[2]
         sub("^[ \t]+", "", symbol)
         sub("[ \t]+$", "", symbol)
    -
         add_symbol("ap_hook_" symbol)
         add_symbol("ap_hook_get_" symbol)
         add_symbol("ap_run_" symbol)
         next
     }
     
    +/^[ \t]*AP[RU]?_DECLARE_EXTERNAL_HOOK[^(]*[(][^)]*/ {
    +    split($0, args, ",")
    +    prefix = args[1]
    +    sub("^.*[(]", "", prefix)
    +    symbol = args[4]
    +    sub("^[ \t]+", "", symbol)
    +    sub("[ \t]+$", "", symbol)
    +    add_symbol(prefix "_hook_" symbol)
    +    add_symbol(prefix "_hook_get_" symbol)
    +    add_symbol(prefix "_run_" symbol)
    +    next
    +}
    +
     /^[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(][^)]*[)]/ {
         sub("[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(]", "", $0)
         sub("[)].*$", "", $0)
    @@ -79,13 +81,37 @@ function add_symbol (sym_name) {
         next
     }
     
    -/^[ \t]*(extern[ \t]+)?AP[RU]?_DECLARE_DATA .*;$/ {
    -       varname = $NF;
    -       gsub( /[*;]/, "", varname);
    -       gsub( /\[.*\]/, "", varname);
    -       add_symbol(varname);
    +/^[ \t]*(extern[ \t]+)?AP[RU]?_DECLARE_DATA .*;/ {
    +    gsub(/[*;\n\r]/, "")
    +    gsub(/\[.*\]/, "")
    +    add_symbol($NF)
    +}
    +
    +
    +END {
    +    printf("Added %d symbols to export list.\n", idx) > "/dev/stderr"
    +    # sort symbols with shell sort
    +    increment = int(idx / 2)
    +    while (increment > 0) {
    +        for (i = increment+1; i <= idx; i++) {
    +            j = i
    +            temp = exports[i]
    +            while ((j >= increment+1) && (exports[j-increment] > temp)) {
    +                exports[j] = exports[j-increment]
    +                j -= increment
    +            }
    +            exports[j] = temp
    +        }
    +        if (increment == 2)
    +            increment = 1
    +        else
    +            increment = int(increment*5/11)
    +    }
    +    # print the array
    +    printf(" (%s)\n", EXPPREFIX)
    +    while (x < idx - 1) {
    +        printf(" %s,\n", exports[++x])
    +    }
    +    printf(" %s\n", exports[++x])
     }
     
    -#END {
    -#	printf(" %s", line)
    -#}
    diff --git a/build/make_var_export.awk b/build/make_var_export.awk
    index 374afa381ee..b28e20ea235 100644
    --- a/build/make_var_export.awk
    +++ b/build/make_var_export.awk
    @@ -1,9 +1,9 @@
    -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/mkconfNW.awk b/build/mkconfNW.awk
    index 9cd93890412..822181d1814 100644
    --- a/build/mkconfNW.awk
    +++ b/build/mkconfNW.awk
    @@ -1,9 +1,9 @@
    -# Copyright 2002-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -15,8 +15,9 @@
     
     BEGIN {
         
    -    A["ServerRoot"] = "SYS:/APACHE2"
    -    A["Port"] = "80"
    +    A["ServerRoot"] = "SYS:/"BDIR
    +    A["Port"] = PORT
    +    A["SSLPort"] = SSLPORT
         A["cgidir"] = "cgi-bin"
         A["logfiledir"] = "logs"
         A["htdocsdir"] = "htdocs"
    @@ -33,8 +34,9 @@ BEGIN {
         B["errordir"] = A["ServerRoot"]"/"A["errordir"]
         B["proxycachedir"] = A["ServerRoot"]"/"A["proxycachedir"]
         B["cgidir"] = A["ServerRoot"]"/"A["cgidir"]
    -    B["listen_stmt_1"] = "Listen "A["Port"]
    -    B["listen_stmt_2"] = ""
    +    B["logfiledir"] = A["logfiledir"]
    +    B["sysconfdir"] = A["sysconfdir"]
    +    B["runtimedir"] = A["runtimedir"]
     }
     
     /@@LoadModule@@/ {
    @@ -42,13 +44,17 @@ BEGIN {
         print "#LoadModule auth_basic_module modules/authbasc.nlm"
         print "#LoadModule auth_digest_module modules/authdigt.nlm"
         print "#LoadModule authn_anon_module modules/authnano.nlm"
    +    print "#LoadModule authn_dbd_module modules/authndbd.nlm"
         print "#LoadModule authn_dbm_module modules/authndbm.nlm"
         print "#LoadModule authn_default_module modules/authndef.nlm"
         print "#LoadModule authn_file_module modules/authnfil.nlm"
    +    print "#LoadModule authz_dbd_module modules/authzdbd.nlm"
         print "#LoadModule authz_dbm_module modules/authzdbm.nlm"
         print "#LoadModule authz_default_module modules/authzdef.nlm"
         print "#LoadModule authz_groupfile_module modules/authzgrp.nlm"
         print "#LoadModule authz_user_module modules/authzusr.nlm"
    +    print "#LoadModule authnz_ldap_module modules/authnzldap.nlm"
    +    print "#LoadModule ldap_module modules/utilldap.nlm"
         print "#LoadModule asis_module modules/mod_asis.nlm"
         print "LoadModule autoindex_module modules/autoindex.nlm"
         print "#LoadModule cern_meta_module modules/cernmeta.nlm"
    @@ -78,10 +84,25 @@ BEGIN {
         print "#LoadModule version_module modules/modversion.nlm"
         print "#LoadModule userdir_module modules/userdir.nlm"
         print "#LoadModule vhost_alias_module modules/vhost.nlm"
    +    if (MODSSL) {
    +       print "#LoadModule ssl_module modules/mod_ssl.nlm"
    +    }
         print ""
         next
     }
     
    +match ($0,/^#SSLSessionCache +"dbm:/) {
    +    sub(/^#/, "")
    +}
    +
    +match ($0,/^SSLSessionCache +"shmcb:/) {
    +    sub(/^SSLSessionCache/, "#SSLSessionCache")
    +}
    +
    +match ($0,/^SSLMutex +"file:@exp_runtimedir@\/ssl_mutex"/) {
    +    sub(/"file:@exp_runtimedir@\/ssl_mutex"/, "default")
    +}
    +
     match ($0,/@@.*@@/) {
         s=substr($0,RSTART+2,RLENGTH-4)
         sub(/@@.*@@/,A[s],$0)
    @@ -108,15 +129,16 @@ match ($0,/@nonssl_.*@/) {
     
     
     END {
    -    if (SSL) {
    -       print
    +    if ((ARGV[1] ~ /httpd.conf.in/) && !BSDSKT) { 
    +       print ""
            print "#"
            print "# SecureListen: Allows you to securely bind Apache to specific IP addresses "
    -       print "# and/or ports."
    +       print "# and/or ports (mod_nwssl)."
            print "#"
            print "# Change this to SecureListen on specific IP addresses as shown below to "
            print "# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)"
            print "#"
    -       print "#SecureListen 443 \"SSL CertificateDNS\""
    +       print "#SecureListen "SSLPORT" \"SSL CertificateDNS\""
    +       print ""
         }
     }
    diff --git a/build/mkdir.sh b/build/mkdir.sh
    index 889667b820f..e2d5bb6392a 100755
    --- a/build/mkdir.sh
    +++ b/build/mkdir.sh
    @@ -1,11 +1,11 @@
     #!/bin/sh
     #
    -# Copyright 1999-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/nw_export.inc b/build/nw_export.inc
    index 94d9a45a5ac..2643a871234 100644
    --- a/build/nw_export.inc
    +++ b/build/nw_export.inc
    @@ -7,11 +7,17 @@
         so that httpd.h will not mess with them. This allows 
         them to pass untouched so that the AWK script can pick 
         them out of the preprocessed result file. */
    +#undef  AP_DECLARE
     #define AP_DECLARE              AP_DECLARE
    +#undef  AP_CORE_DECLARE
     #define AP_CORE_DECLARE         AP_CORE_DECLARE
    +#undef  AP_DECLARE_NONSTD
     #define AP_DECLARE_NONSTD       AP_DECLARE_NONSTD
    +#undef  AP_CORE_DECLARE_NONSTD
     #define AP_CORE_DECLARE_NONSTD  AP_CORE_DECLARE_NONSTD
    +#undef  AP_DECLARE_HOOK
     #define AP_DECLARE_HOOK         AP_DECLARE_HOOK
    +#undef  AP_DECLARE_DATA
     #define AP_DECLARE_DATA         AP_DECLARE_DATA
     #undef  APACHE_OS_H
     
    diff --git a/build/nw_ver.awk b/build/nw_ver.awk
    index ba6d298f4c8..22c7bc431cd 100644
    --- a/build/nw_ver.awk
    +++ b/build/nw_ver.awk
    @@ -1,9 +1,9 @@
    -# Copyright 2002-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -14,11 +14,15 @@
     # limitations under the License.
     
     BEGIN {
    -
    -  # fetch Apache version numbers from input file and writes them to STDOUT
    +  # fetch Apache version numbers from input file and write them to STDOUT
     
       while ((getline < ARGV[1]) > 0) {
    -    if (match ($0, /^#define AP_SERVER_MAJORVERSION_NUMBER /)) {
    +    if (match ($0, /^#define AP_SERVER_COPYRIGHT \\/)) {
    +      if (((getline < ARGV[1]) > 0) && (split($0, c, "\"") == 3)) {
    +        copyright_str = c[2];
    +      }
    +    }
    +    else if (match ($0, /^#define AP_SERVER_MAJORVERSION_NUMBER /)) {
           ver_major = $3;
         }
         else if (match ($0, /^#define AP_SERVER_MINORVERSION_NUMBER /)) {
    @@ -27,14 +31,32 @@ BEGIN {
         else if (match ($0, /^#define AP_SERVER_PATCHLEVEL_NUMBER/)) {
           ver_patch = $3;
         }
    -    else if (match ($0, /^#define AP_SERVER_ADD_STRING /)) {
    -        ver_str_release = substr($3, 2, length($3) - 2);
    +    else if (match ($0, /^#define AP_SERVER_DEVBUILD_BOOLEAN/)) {
    +      ver_devbuild = $3;
         }
       }
    -  ver = ver_major "," ver_minor "," ver_patch;
    -  ver_str = ver_major "." ver_minor "." ver_patch ver_str_release;
     
    -  print "VERSION = " ver "";
    +  if (ver_devbuild) {
    +    ver_dev = "-dev"
    +    if (ARGV[2]) {
    +      while ((getline < ARGV[2]) > 0) {
    +        if (match ($0, /^\/repos\/asf\/!svn\/ver\/[0-9]+\/httpd\/httpd\/(trunk|branches\/[0-9]\.[0-9]\.x)$/)) {
    +          gsub(/^\/repos\/asf\/!svn\/ver\/|\/httpd\/httpd\/(trunk|branches\/[0-9]\.[0-9]\.x)$/, "", $0)
    +          ver_dev = svn_rev = "-r" $0
    +        }
    +      }
    +    }
    +  }
    +
    +  ver_nlm = ver_major "," ver_minor "," ver_patch;
    +  ver_str = ver_major "." ver_minor "." ver_patch ver_dev;
    +
    +  print "VERSION = " ver_nlm "";
       print "VERSION_STR = " ver_str "";
    +  print "VERSION_MAJMIN = " ver_major ver_minor "";
    +  print "COPYRIGHT_STR = " copyright_str "";
    +  print "SVN_REVISION = " svn_rev "";
     
     }
    +
    +
    diff --git a/build/pkg/buildpkg.sh b/build/pkg/buildpkg.sh
    index 4dd7d81756b..028124057b0 100755
    --- a/build/pkg/buildpkg.sh
    +++ b/build/pkg/buildpkg.sh
    @@ -1,10 +1,10 @@
     #!/bin/sh
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/prebuildNW.bat b/build/prebuildNW.bat
    deleted file mode 100755
    index 0ce59f1e660..00000000000
    --- a/build/prebuildNW.bat
    +++ /dev/null
    @@ -1,47 +0,0 @@
    -@echo off
    -
    -if not "%NovellLibC%" == "" goto CheckNDK
    -set NovellLibC=\novell\ndk\libc
    -@echo Could not find the NovellLibC environment variable
    -@echo Setting NovellLibC = %NovellLibC%
    -@echo ---------------------  
    -
    -:CheckNDK
    -if exist %NovellLibC%\include\netware.h goto NDKOK
    -@echo The path to the NDK "%NovellLibC%" is invalid.
    -@echo Please set then NovellLibC environment variable to the location of the NDK
    -@echo ---------------------  
    -goto Done
    -
    -:NDKOK
    -@echo # As part of the pre-build process, the utilities GenChars.NLM
    -@echo #  (Gen Test Chars) and DFTables.NLM (dftables) must be built, 
    -@echo #  copied to a NetWare server and run using the following commands:
    -@echo #
    -@echo # "sys:\genchars >sys:\test_char.h"
    -@echo # "sys:\dftables >sys:\chartables.c"
    -@echo #
    -@echo #  The files "sys:\test_chars.h" and "sys:\chartables.c" must be 
    -@echo #  copied to "httpd\os\netware" on the build machine.
    -
    -@echo Fixing up the APR headers
    -copy ..\srclib\apr\include\apr.hnw ..\srclib\apr\include\apr.h
    -
    -@echo Fixing up the APR-Util headers
    -copy ..\srclib\apr-util\include\apu.hnw ..\srclib\apr-util\include\apu.h
    -copy ..\srclib\apr-util\include\apr_ldap.hnw ..\srclib\apr-util\include\apr_ldap.h
    -
    -@echo Fixing up the pcre headers
    -copy ..\srclib\pcre\config.hw ..\srclib\pcre\config.h
    -copy ..\srclib\pcre\pcre.hw ..\srclib\pcre\pcre.h
    -
    -@echo Generating the import lists...
    -set MWCIncludes=..\include;..\modules\http;..\modules\aaa;..\os\netware;..\server\mpm\netware;..\srclib\apr\include;..\srclib\apr-util\include;+%NovellLibC%
    -mwccnlm -P nw_export.inc -d NETWARE -d CORE_PRIVATE -EP
    -awk -f make_nw_export.awk nw_export.i |sort >..\os\netware\httpd.imp
    -
    -rem cd ..\srclib\apr\build
    -rem call prebuildnw.bat
    -
    -:Done
    -pause
    diff --git a/build/program.mk b/build/program.mk
    index af376139ef5..565b51fd2ec 100644
    --- a/build/program.mk
    +++ b/build/program.mk
    @@ -1,9 +1,9 @@
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/rpm/htcacheclean.init b/build/rpm/htcacheclean.init
    new file mode 100644
    index 00000000000..5309b2af388
    --- /dev/null
    +++ b/build/rpm/htcacheclean.init
    @@ -0,0 +1,100 @@
    +#!/bin/bash
    +#
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +#
    +#
    +# htcacheclean    Startup script for the Apache cache cleaner
    +#
    +# chkconfig: - 85 15
    +# description: The Apache htcacheclean daemon maintains and prunes the
    +#              size of the mod_disk_cache cache directory.
    +# processname: htcacheclean
    +# pidfile: /var/log/httpd/htcacheclean.pid
    +# config: /etc/sysconfig/htcacheclean
    +#
    +### BEGIN INIT INFO
    +# Provides: htcacheclean
    +# Required-Start: $local_fs $remote_fs $network
    +# Required-Stop: $local_fs $remote_fs $network
    +# Should-Start: httpd
    +# Short-Description: start and stop Apache htcacheclean
    +# Description: The Apache htcacheclean daemon maintains a mod_disk_cache
    +### END INIT INFO
    +
    +# Source function library.
    +. /etc/rc.d/init.d/functions
    +
    +# What were we called? Multiple instances of the same daemon can be
    +# created by creating suitably named symlinks to this startup script
    +prog=$(basename $0 | sed -e 's/^[SK][0-9][0-9]//')
    +
    +if [ -f /etc/sysconfig/${prog} ]; then
    +        . /etc/sysconfig/${prog}
    +fi
    +
    +# Path to htcacheclean, server binary, and short-form for messages.
    +htcacheclean=${HTTPD-/usr/sbin/htcacheclean}
    +lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
    +pidfile=/var/log/httpd/${prog}.pid
    +interval=${INTERVAL-10}
    +cachepath=${CACHEPATH-/var/cache/httpd/cache-root}
    +limit=${LIMIT-100M}
    +RETVAL=0
    +
    +start() {
    +        echo -n $"Starting $prog: "
    +        daemon --pidfile=${pidfile} $htcacheclean -d "$interval" -p "$cachepath" -l "$limit" -P "$pidfile" $OPTIONS
    +        RETVAL=$?
    +        echo
    +        [ $RETVAL = 0 ] && touch ${lockfile}
    +        return $RETVAL
    +}
    +stop() {
    +	echo -n $"Stopping $prog: "
    +	killproc -p ${pidfile} $htcacheclean
    +	RETVAL=$?
    +	echo
    +	[ $RETVAL = 0 ] && rm -f ${lockfile}
    +}
    +
    +# See how we were called.
    +case "$1" in
    +  start)
    +	start
    +	;;
    +  stop)
    +	stop
    +	;;
    +  status)
    +        status -p ${pidfile} $htcacheclean
    +	RETVAL=$?
    +	;;
    +  restart)
    +	stop
    +	start
    +	;;
    +  condrestart)
    +	if status -p ${pidfile} $htcacheclean >&/dev/null; then
    +		stop
    +		start
    +	fi
    +	;;
    +  *)
    +	echo $"Usage: $prog {start|stop|restart|condrestart|status|help}"
    +	exit 1
    +esac
    +
    +exit $RETVAL
    diff --git a/build/rpm/httpd.init b/build/rpm/httpd.init
    index 38f2a92b529..86aabd36d04 100755
    --- a/build/rpm/httpd.init
    +++ b/build/rpm/httpd.init
    @@ -1,11 +1,11 @@
     #!/bin/bash
     #
    -# Copyright 2003-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -16,22 +16,39 @@
     # limitations under the License.
     #
     #
    -# Startup script for the Apache Web Server
    +# httpd        Startup script for the Apache Web Server
     #
     # chkconfig: - 85 15
    -# description: Apache is a World Wide Web server.  It is used to serve \
    -#	       HTML files and CGI.
    +# description: The Apache HTTP Server is an efficient and extensible  \
    +#             server implementing the current HTTP standards.
     # processname: httpd
    -# pidfile: /var/run/httpd.pid
    -# config: /etc/httpd/conf/httpd.conf
    +# pidfile: /var/log/httpd/httpd.pid
    +# config: /etc/sysconfig/httpd
    +#
    +### BEGIN INIT INFO
    +# Provides: httpd
    +# Required-Start: $local_fs $remote_fs $network $named
    +# Required-Stop: $local_fs $remote_fs $network
    +# Should-Start: distcache
    +# Short-Description: start and stop Apache HTTP Server
    +# Description: The Apache HTTP Server is an extensible server 
    +#  implementing the current HTTP standards.
    +### END INIT INFO
     
     # Source function library.
     . /etc/rc.d/init.d/functions
     
    -if [ -f /etc/sysconfig/httpd ]; then
    -        . /etc/sysconfig/httpd
    +# What were we called? Multiple instances of the same daemon can be
    +# created by creating suitably named symlinks to this startup script
    +prog=$(basename $0 | sed -e 's/^[SK][0-9][0-9]//')
    +
    +if [ -f /etc/sysconfig/${prog} ]; then
    +        . /etc/sysconfig/${prog}
     fi
     
    +# Start httpd in the C locale by default.
    +HTTPD_LANG=${HTTPD_LANG-"C"}
    +
     # This will prevent initlog from swallowing up a pass-phrase prompt if
     # mod_ssl needs a pass-phrase from the user.
     INITLOG_ARGS=""
    @@ -40,10 +57,9 @@ INITLOG_ARGS=""
     # with the thread-based "worker" MPM; BE WARNED that some modules may not
     # work correctly with a thread-based MPM; notably PHP will refuse to start.
     
    -# Path to the apachectl script, server binary, and short-form for messages.
    -apachectl=/usr/sbin/apachectl
     httpd=${HTTPD-/usr/sbin/httpd}
    -prog=httpd
    +pidfile=${PIDFILE-/var/log/httpd/${prog}.pid}
    +lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
     RETVAL=0
     
     # check for 1.3 configuration
    @@ -69,23 +85,23 @@ check13 () {
     start() {
             echo -n $"Starting $prog: "
             check13 || exit 1
    -        daemon $httpd $OPTIONS
    +        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
             RETVAL=$?
             echo
    -        [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
    +        [ $RETVAL = 0 ] && touch ${lockfile}
             return $RETVAL
     }
     stop() {
     	echo -n $"Stopping $prog: "
    -	killproc $httpd
    +	killproc -p ${pidfile} -d 10 $httpd
     	RETVAL=$?
     	echo
    -	[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
    +	[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
     }
     reload() {
     	echo -n $"Reloading $prog: "
     	check13 || exit 1
    -	killproc $httpd -HUP
    +	killproc -p ${pidfile} $httpd -HUP
     	RETVAL=$?
     	echo
     }
    @@ -99,15 +115,20 @@ case "$1" in
     	stop
     	;;
       status)
    -        status $httpd
    -	RETVAL=$?
    -	;;
    +        if ! test -f ${pidfile}; then
    +            echo $prog is stopped
    +            RETVAL=3
    +        else  
    +            status -p ${pidfile} $httpd
    +            RETVAL=$?
    +        fi
    +        ;;
       restart)
     	stop
     	start
     	;;
       condrestart)
    -	if [ -f /var/run/httpd.pid ] ; then
    +	if test -f ${pidfile} && status -p ${pidfile} $httpd >&/dev/null; then
     		stop
     		start
     	fi
    @@ -115,13 +136,20 @@ case "$1" in
       reload)
             reload
     	;;
    -  graceful|help|configtest|fullstatus)
    -	$apachectl $@
    +  configtest)
    +        LANG=$HTTPD_LANG $httpd $OPTIONS -t
    +        RETVAL=$?
    +        ;;
    +  graceful)
    +        echo -n $"Gracefully restarting $prog: "
    +	LANG=$HTTPD_LANG $httpd $OPTIONS -k $@
     	RETVAL=$?
    +        echo
     	;;
       *)
    -	echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
    +	echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|graceful|help|configtest}"
     	exit 1
     esac
     
     exit $RETVAL
    +
    diff --git a/build/rpm/httpd.logrotate b/build/rpm/httpd.logrotate
    index dd0ce1b9a96..1a03e85ec0d 100644
    --- a/build/rpm/httpd.logrotate
    +++ b/build/rpm/httpd.logrotate
    @@ -3,6 +3,6 @@
         notifempty
         sharedscripts
         postrotate
    -	/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
    +	/sbin/service httpd graceful 2> /dev/null || true
         endscript
     }
    diff --git a/build/rpm/httpd.spec.in b/build/rpm/httpd.spec.in
    index 834ae6fb3d9..240a93cb3ef 100644
    --- a/build/rpm/httpd.spec.in
    +++ b/build/rpm/httpd.spec.in
    @@ -1,11 +1,7 @@
     %define contentdir /var/www
     %define suexec_caller apache
     %define mmn APACHE_MMN
    -
    -%ifarch ia64
    -# disable debuginfo on IA64
    -%define debug_package %{nil}
    -%endif
    +%define mpms worker event
     
     Summary: Apache HTTP Server
     Name: httpd
    @@ -16,10 +12,10 @@ Vendor: Apache Software Foundation
     Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
     License: Apache License, Version 2.0
     Group: System Environment/Daemons
    -BuildRoot: %{_tmppath}/%{name}-root
    -BuildPrereq: apr-devel, apr-util-devel, openldap-devel, db4-devel, expat-devel, findutils, perl, pkgconfig
    +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
    +BuildPrereq: apr-devel, apr-util-devel, openldap-devel, db4-devel, expat-devel, findutils, perl, pkgconfig, pcre-devel >= 5.0
     BuildPrereq: /usr/bin/apr-1-config, /usr/bin/apu-1-config
    -Requires: apr >= 1.0.2, apr-util >= 1.0.2, gawk, /usr/share/magic.mime, /usr/bin/find, openldap
    +Requires: apr >= 1.4.2, apr-util >= 1.3.10, pcre >= 5.0, gawk, /usr/bin/find, openldap
     Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv
     Prereq: sh-utils, textutils, /usr/sbin/useradd
     Provides: webserver
    @@ -37,7 +33,7 @@ Group: Development/Libraries
     Summary: Development tools for the Apache HTTP server.
     Obsoletes: secureweb-devel, apache-devel
     Requires: libtool, httpd = %{version}
    -Requires: apr-devel >= 1.0.2, apr-util-devel >= 1.0.2
    +Requires: apr-devel >= 1.4.2, apr-util-devel >= 1.3.10
     
     %description devel
     The httpd-devel package contains the APXS binary and other files
    @@ -60,7 +56,6 @@ also be found at http://httpd.apache.org/docs/.
     %package -n mod_ssl
     Group: System Environment/Daemons
     Summary: SSL/TLS module for the Apache HTTP server
    -Serial: 1
     BuildPrereq: openssl-devel
     Prereq: openssl, dev, /bin/cat
     Requires: httpd, make, httpd-mmn = %{mmn}
    @@ -74,45 +69,31 @@ Security (TLS) protocols.
     %setup -q
     
     # Safety check: prevent build if defined MMN does not equal upstream MMN.
    -vmmn=`echo MODULE_MAGIC_NUMBER_MAJOR | cpp -include \`pwd\`/include/ap_mmn.h | grep -e '^[0-9]'`
    -if test x${vmmn} != x%{mmn}; then
    +vmmn=`echo MODULE_MAGIC_NUMBER_MAJOR | cpp -include include/ap_mmn.h | sed -n '
    +/^2/p'`
    +if test "x${vmmn}" != "x%{mmn}"; then
        : Error: Upstream MMN is now ${vmmn}, packaged MMN is %{mmn}.
        : Update the mmn macro and rebuild.
        exit 1
     fi
     
    -# regenerate configure scripts
    -./buildconf
    +%build
    +# forcibly prevent use of bundled apr, apr-util, pcre
    +rm -rf srclib/{apr,apr-util,pcre}
     
     # Before configure; fix location of build dir in generated apxs
     %{__perl} -pi -e "s:\@exp_installbuilddir\@:%{_libdir}/httpd/build:g" \
     	support/apxs.in
     
    -%build
    -
    -if pkg-config openssl ; then
    -	# configure -C barfs with trailing spaces in CFLAGS
    -	CFLAGS="$RPM_OPT_FLAGS `pkg-config --cflags openssl | sed 's/ *$//'`"
    -	AP_LIBS="$AP_LIBS `pkg-config --libs openssl`"
    -else
    -	CFLAGS="$RPM_OPT_FLAGS"
    -	AP_LIBS="-lssl -lcrypto"
    -fi
    -export CFLAGS
    -export AP_LIBS
    -
     function mpmbuild()
     {
     mpm=$1; shift
     mkdir $mpm; pushd $mpm
    -cat > config.cache <<EOF
    -ac_cv_func_pthread_mutexattr_setpshared=no
    -ac_cv_func_sem_open=no
    -EOF
    -../configure -C \
    +../configure \
      	--prefix=%{_sysconfdir}/httpd \
             --with-apr=/usr/bin/apr-1-config \
             --with-apr-util=/usr/bin/apu-1-config \
    +        --with-pcre=/usr/bin/pcre-config \
             --exec-prefix=%{_prefix} \
      	--bindir=%{_bindir} \
      	--sbindir=%{_sbindir} \
    @@ -122,6 +103,7 @@ EOF
     	--includedir=%{_includedir}/httpd \
     	--libexecdir=%{_libdir}/httpd/modules \
     	--datadir=%{contentdir} \
    +        --with-installbuilddir=%{_libdir}/httpd/build \
     	--with-mpm=$mpm \
     	--enable-suexec --with-suexec \
     	--with-suexec-caller=%{suexec_caller} \
    @@ -129,33 +111,30 @@ EOF
     	--with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
     	--with-suexec-bin=%{_sbindir}/suexec \
     	--with-suexec-uidmin=500 --with-suexec-gidmin=500 \
    -        --with-devrandom \
    -        --with-ldap --enable-ldap --enable-authnz-ldap \
    -        --enable-cache --enable-disk-cache --enable-mem-cache \
    -	--enable-ssl --with-ssl \
    -	--enable-deflate --enable-cgid \
    -	--enable-proxy --enable-proxy-connect \
    -	--enable-proxy-http --enable-proxy-ftp \
    +	--enable-pie \
    +	--with-pcre \
     	$*
     
     make %{?_smp_mflags}
     popd
     }
     
    -# Only bother enabling optional modules for main build.
    -mpmbuild prefork --enable-mods-shared=all
    -
    -# To prevent most modules being built statically into httpd.worker, 
    -# easiest way seems to be enable them shared.
    -mpmbuild worker --enable-mods-shared=all
    -
    -# Verify that the same modules were built into the two httpd binaries
    -./prefork/httpd -l | grep -v prefork > prefork.mods
    -./worker/httpd -l | grep -v worker > worker.mods
    -if ! diff -u prefork.mods worker.mods; then
    -  : Different modules built into httpd binaries, will not proceed
    -  exit 1
    -fi
    + # Build everything and the kitchen sink with the prefork build
    +mpmbuild prefork \
    +        --enable-mods-shared=all \
    +        --enable-ssl --with-ssl --enable-distcache \
    +        --enable-proxy \
    +        --enable-cache \
    +        --enable-disk-cache \
    +        --enable-ldap --enable-authnz-ldap \
    +        --enable-cgid \
    +        --enable-authn-anon --enable-authn-alias \
    +        --disable-imagemap
    +
    +# For the other MPMs, just build httpd and no optional modules
    +for f in %{mpms}; do
    +   mpmbuild $f --enable-mods-shared=all
    +done
     
     %install
     rm -rf $RPM_BUILD_ROOT
    @@ -163,21 +142,12 @@ rm -rf $RPM_BUILD_ROOT
     pushd prefork
     make DESTDIR=$RPM_BUILD_ROOT install
     popd
    -# install worker binary
    -install -m 755 worker/httpd $RPM_BUILD_ROOT%{_sbindir}/httpd.worker
     
    -# mod_ssl bits
    -for suffix in crl crt csr key prm; do
    -   mkdir $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf/ssl.${suffix}
    +# install alternative MPMs
    +for f in %{mpms}; do
    +  install -m 755 ${f}/httpd $RPM_BUILD_ROOT%{_sbindir}/httpd.${f}
     done
     
    -# Makefiles for certificate management
    -#for ext in crt crl; do 
    -#  install -m 644 ./build/rpm/mod_ssl-Makefile.${ext} \
    -#	$RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf/ssl.${ext}/Makefile.${ext}
    -#done
    -#ln -s ../../../usr/share/ssl/certs/Makefile $RPM_BUILD_ROOT/etc/httpd/conf
    -
     # for holding mod_dav lock database
     mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/dav
     
    @@ -188,39 +158,28 @@ touch $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_ssl/scache.{dir,pag,sem}
     # move the build directory to within the library directory
     mv $RPM_BUILD_ROOT%{contentdir}/build $RPM_BUILD_ROOT%{_libdir}/httpd/build
     
    -# fix up config_vars file: relocate the build directory into libdir;
    -# reference correct libtool from apr; remove references to RPM build root.
    -sed -e "s|%{contentdir}/build|%{_libdir}/httpd/build|g" \
    -    -e "/AP_LIBS/d" -e "/abs_srcdir/d" \
    -    -e "/^LIBTOOL/s|/[^ ]*/libtool|`/usr/bin/apr-1-config --apr-libtool`|" \
    -    -e "/^EXTRA_INCLUDES/s|-I$RPM_BUILD_DIR[^ ]* ||g" \
    -  < prefork/build/config_vars.mk \
    -  > $RPM_BUILD_ROOT%{_libdir}/httpd/build/config_vars.mk
    -
     # Make the MMN accessible to module packages
     echo %{mmn} > $RPM_BUILD_ROOT%{_includedir}/httpd/.mmn
     
     # docroot
     mkdir $RPM_BUILD_ROOT%{contentdir}/html
    -rm -r $RPM_BUILD_ROOT%{contentdir}/manual/style
    -rm $RPM_BUILD_ROOT%{contentdir}/manual/*/*.xml
     
    -# logs
    +# Set up /var directories
     rmdir $RPM_BUILD_ROOT%{_sysconfdir}/httpd/logs
     mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/httpd
    +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/httpd/cache-root
     
     # symlinks for /etc/httpd
     ln -s ../..%{_localstatedir}/log/httpd $RPM_BUILD_ROOT/etc/httpd/logs
     ln -s ../..%{_localstatedir}/run $RPM_BUILD_ROOT/etc/httpd/run
     ln -s ../..%{_libdir}/httpd/modules $RPM_BUILD_ROOT/etc/httpd/modules
    -ln -s ../..%{_libdir}/httpd/build $RPM_BUILD_ROOT/etc/httpd/build
     
     # install SYSV init stuff
     mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
     install -m755 ./build/rpm/httpd.init \
     	$RPM_BUILD_ROOT/etc/rc.d/init.d/httpd
    -%{__perl} -pi -e "s:\@docdir\@:%{_docdir}/%{name}-%{version}:g" \
    -	$RPM_BUILD_ROOT/etc/rc.d/init.d/httpd	
    +install -m755 ./build/rpm/htcacheclean.init \
    +        $RPM_BUILD_ROOT/etc/rc.d/init.d/htcacheclean
     
     # install log rotation stuff
     mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
    @@ -232,30 +191,32 @@ rm -rf $RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.exp \
            $RPM_BUILD_ROOT%{contentdir}/htdocs/* \
            $RPM_BUILD_ROOT%{contentdir}/cgi-bin/* 
     
    +# Make suexec a+rw so it can be stripped.  %%files lists real permissions
    +chmod 755 $RPM_BUILD_ROOT%{_sbindir}/suexec
    +
     %pre
     # Add the "apache" user
     /usr/sbin/useradd -c "Apache" -u 48 \
     	-s /sbin/nologin -r -d %{contentdir} apache 2> /dev/null || :
     
    -%triggerpostun -- apache < 2.0
    -/sbin/chkconfig --add httpd
    -
     %post
     # Register the httpd service
     /sbin/chkconfig --add httpd
    +/sbin/chkconfig --add htcacheclean
     
     %preun
     if [ $1 = 0 ]; then
     	/sbin/service httpd stop > /dev/null 2>&1
    +        /sbin/service htcacheclean stop > /dev/null 2>&1
     	/sbin/chkconfig --del httpd
    +        /sbin/chkconfig --del htcacheclean
     fi
     
     %post -n mod_ssl
    -/sbin/ldconfig ### is this needed?
     umask 077
     
    -if [ ! -f %{_sysconfdir}/httpd/conf/ssl.key/server.key ] ; then
    -%{_bindir}/openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 1024 > %{_sysconfdir}/httpd/conf/ssl.key/server.key 2> /dev/null
    +if [ ! -f %{_sysconfdir}/httpd/conf/server.key ] ; then
    +%{_bindir}/openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 1024 > %{_sysconfdir}/httpd/conf/server.key 2> /dev/null
     fi
     
     FQDN=`hostname`
    @@ -263,8 +224,8 @@ if [ "x${FQDN}" = "x" ]; then
        FQDN=localhost.localdomain
     fi
     
    -if [ ! -f %{_sysconfdir}/httpd/conf/ssl.crt/server.crt ] ; then
    -cat << EOF | %{_bindir}/openssl req -new -key %{_sysconfdir}/httpd/conf/ssl.key/server.key -x509 -days 365 -out %{_sysconfdir}/httpd/conf/ssl.crt/server.crt 2>/dev/null
    +if [ ! -f %{_sysconfdir}/httpd/conf/server.crt ] ; then
    +cat << EOF | %{_bindir}/openssl req -new -key %{_sysconfdir}/httpd/conf/server.key -x509 -days 365 -out %{_sysconfdir}/httpd/conf/server.crt 2>/dev/null
     --
     SomeState
     SomeCity
    @@ -275,6 +236,23 @@ root@${FQDN}
     EOF
     fi
     
    +%check
    +# Check the built modules are all PIC
    +if readelf -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.so | grep TEXTREL; then
    +   : modules contain non-relocatable code
    +   exit 1
    +fi
    +
    +# Verify that the same modules were built into the httpd binaries
    +./prefork/httpd -l | grep -v prefork > prefork.mods
    +for mpm in %{mpms}; do
    +  ./${mpm}/httpd -l | grep -v ${mpm} > ${mpm}.mods
    +  if ! diff -u prefork.mods ${mpm}.mods; then
    +    : Different modules built into httpd binaries, will not proceed
    +    exit 1
    +  fi
    +done
    +
     %clean
     rm -rf $RPM_BUILD_ROOT
     
    @@ -315,6 +293,7 @@ rm -rf $RPM_BUILD_ROOT
     
     %config %{_sysconfdir}/logrotate.d/httpd
     %config %{_sysconfdir}/rc.d/init.d/httpd
    +%config %{_sysconfdir}/rc.d/init.d/htcacheclean
     
     %{_sbindir}/ab
     %{_sbindir}/htcacheclean
    @@ -324,6 +303,8 @@ rm -rf $RPM_BUILD_ROOT
     %{_sbindir}/logresolve
     %{_sbindir}/httpd
     %{_sbindir}/httpd.worker
    +%{_sbindir}/httpd.event
    +%{_sbindir}/httxt2dbm
     %{_sbindir}/apachectl
     %{_sbindir}/rotatelogs
     %attr(4510,root,%{suexec_caller}) %{_sbindir}/suexec
    @@ -349,6 +330,7 @@ rm -rf $RPM_BUILD_ROOT
     %attr(0700,root,root) %dir %{_localstatedir}/log/httpd
     
     %attr(0700,apache,apache) %dir %{_localstatedir}/lib/dav
    +%attr(0700,apache,apache) %dir %{_localstatedir}/cache/httpd/cache-root
     
     %{_mandir}/man1/*
     %{_mandir}/man8/ab*
    @@ -367,13 +349,6 @@ rm -rf $RPM_BUILD_ROOT
     %files -n mod_ssl
     %defattr(-,root,root)
     %{_libdir}/httpd/modules/mod_ssl.so
    -%attr(0700,root,root) %dir %{_sysconfdir}/httpd/conf/ssl.crl
    -%attr(0700,root,root) %dir %{_sysconfdir}/httpd/conf/ssl.crt
    -%attr(0700,root,root) %dir %{_sysconfdir}/httpd/conf/ssl.csr
    -%attr(0700,root,root) %dir %{_sysconfdir}/httpd/conf/ssl.key
    -%attr(0700,root,root) %dir %{_sysconfdir}/httpd/conf/ssl.prm
    -#%config %{_sysconfdir}/httpd/conf/Makefile
    -#%dir %{_sysconfdir}/httpd/conf/ssl.*
     %config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-ssl.conf
     %config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-ssl.conf
     %attr(0700,apache,root) %dir %{_localstatedir}/cache/mod_ssl
    @@ -384,7 +359,6 @@ rm -rf $RPM_BUILD_ROOT
     %files devel
     %defattr(-,root,root)
     %{_includedir}/httpd
    -%{_sysconfdir}/httpd/build
     %{_sbindir}/apxs
     %{_sbindir}/checkgid
     %{_sbindir}/dbmmanage
    @@ -396,146 +370,3 @@ rm -rf $RPM_BUILD_ROOT
     %{_libdir}/httpd/build/config.nice
     %{_libdir}/httpd/build/mkdir.sh
     
    -%changelog
    -* Sat Jul 2 2005 Graham Leggett <minfrin@apache.org> 2.1.7-dev
    -- Fixed complaints about unpackaged files with new config file changes.
    -
    -* Thu Dec 16 2004 Graham Leggett <minfrin@apache.org> 2.1.3-dev
    -- Changed build to use external apr and apr-util
    -
    -* Thu May 20 2004 Graham Leggett <minfrin@apache.org> 2.0.50-dev
    -- Changed default dependancy to link to db4 instead of db3.
    -- Fixed complaints about unpackaged files.
    -
    -* Sat Apr 5 2003 Graham Leggett <minfrin@apache.org> 2.0.46-dev
    -- Moved mime.types back to the default location.
    -- Added mod_ldap and friends, mod_cache and friends.
    -- Added openldap dependancy.
    -
    -* Sun Mar 30 2003 Graham Leggett <minfrin@apache.org> 2.0.45-1
    -- Created generic Apache rpm spec file from that donated by Redhat.
    -- Removed Redhat specific patches and boilerplate files.
    -- Removed SSL related Makefiles.
    -
    -* Mon Feb 24 2003 Joe Orton <jorton@redhat.com> 2.0.40-21
    -- add security fix for CAN-2003-0020; replace non-printable characters
    -  with '!' when printing to error log.
    -- disable debuginfo on IA64.
    -
    -* Tue Feb 11 2003 Joe Orton <jorton@redhat.com> 2.0.40-20
    -- disable POSIX semaphores to support 2.4.18 kernel (#83324)
    -
    -* Wed Jan 29 2003 Joe Orton <jorton@redhat.com> 2.0.40-19
    -- require xmlto 0.0.11 or later
    -- fix apr_strerror on glibc2.3
    -
    -* Wed Jan 22 2003 Tim Powers <timp@redhat.com> 2.0.40-18
    -- rebuilt
    -
    -* Thu Jan 16 2003 Joe Orton <jorton@redhat.com> 2.0.40-17
    -- add mod_cgid and httpd binary built with worker MPM (#75496)
    -- allow choice of httpd binary in init script
    -- pick appropriate CGI module based on loaded MPM in httpd.conf
    -- source /etc/sysconfig/httpd in apachectl to get httpd choice
    -- make "apachectl status" fail gracefully when links isn't found (#78159)
    -
    -* Mon Jan 13 2003 Joe Orton <jorton@redhat.com> 2.0.40-16
    -- rebuild for OpenSSL 0.9.7
    -
    -* Fri Jan  3 2003 Joe Orton <jorton@redhat.com> 2.0.40-15
    -- fix possible infinite recursion in config dir processing (#77206)
    -- fix memory leaks in request body processing (#79282)
    -
    -* Thu Dec 12 2002 Joe Orton <jorton@redhat.com> 2.0.40-14
    -- remove unstable shmht session cache from mod_ssl
    -- get SSL libs from pkg-config if available (Nalin Dahyabhai)
    -- stop "apxs -a -i" from inserting AddModule into httpd.conf (#78676)
    -
    -* Wed Nov  6 2002 Joe Orton <jorton@redhat.com> 2.0.40-13
    -- fix location of installbuilddir in apxs when libdir!=/usr/lib
    -
    -* Wed Nov  6 2002 Joe Orton <jorton@redhat.com> 2.0.40-12
    -- pass libdir to configure; clean up config_vars.mk
    -- package instdso.sh, fixing apxs -i (#73428)
    -- prevent build if upstream MMN differs from mmn macro
    -- remove installed but unpackaged files
    -
    -* Wed Oct  9 2002 Joe Orton <jorton@redhat.com> 2.0.40-11
    -- correct SERVER_NAME encoding in i18n error pages (thanks to Andre Malo)
    -
    -* Wed Oct  9 2002 Joe Orton <jorton@redhat.com> 2.0.40-10
    -- fix patch for CAN-2002-0840 to also cover i18n error pages
    -
    -* Wed Oct  2 2002 Joe Orton <jorton@redhat.com> 2.0.40-9
    -- security fixes for CAN-2002-0840 and CAN-2002-0843
    -- fix for possible mod_dav segfault for certain requests
    -
    -* Tue Sep 24 2002 Gary Benson <gbenson@redhat.com>
    -- updates to the migration guide
    -
    -* Wed Sep  4 2002 Nalin Dahyabhai <nalin@redhat.com> 2.0.40-8
    -- link httpd with libssl to avoid library loading/unloading weirdness
    -
    -* Tue Sep  3 2002 Joe Orton <jorton@redhat.com> 2.0.40-7
    -- add LoadModule lines for proxy modules in httpd.conf (#73349)
    -- fix permissions of conf/ssl.*/ directories; add Makefiles for
    -  certificate management (#73352)
    -
    -* Mon Sep  2 2002 Joe Orton <jorton@redhat.com> 2.0.40-6
    -- provide "httpd-mmn" to manage module ABI compatibility
    -
    -* Sun Sep  1 2002 Joe Orton <jorton@redhat.com> 2.0.40-5
    -- fix SSL session cache (#69699)
    -- revert addition of LDAP support to apr-util
    -
    -* Mon Aug 26 2002 Joe Orton <jorton@redhat.com> 2.0.40-4
    -- set SIGXFSZ disposition to "ignored" (#69520)
    -- make dummy connections to the first listener in config (#72692)
    -
    -* Mon Aug 26 2002 Joe Orton <jorton@redhat.com> 2.0.40-3
    -- allow "apachectl configtest" on a 1.3 httpd.conf
    -- add mod_deflate
    -- enable LDAP support in apr-util
    -- don't package everything in /var/www/error as config(noreplace)
    -
    -* Wed Aug 21 2002 Bill Nottingham <notting@redhat.com> 2.0.40-2
    -- add trigger (#68657)
    -
    -* Mon Aug 12 2002 Joe Orton <jorton@redhat.com> 2.0.40-1
    -- update to 2.0.40
    -
    -* Wed Jul 24 2002 Joe Orton <jorton@redhat.com> 2.0.36-8
    -- improve comment on use of UserDir in default config (#66886)
    -
    -* Wed Jul 10 2002 Joe Orton <jorton@redhat.com> 2.0.36-7
    -- use /sbin/nologin as shell for apache user (#68371)
    -- add patch from CVS to fix possible infinite loop when processing
    -  internal redirects
    -
    -* Wed Jun 26 2002 Gary Benson <gbenson@redhat.com> 2.0.36-6
    -- modify init script to detect 1.3.x httpd.conf's and direct users
    -  to the migration guide
    -
    -* Tue Jun 25 2002 Gary Benson <gbenson@redhat.com> 2.0.36-5
    -- patch apachectl to detect 1.3.x httpd.conf's and direct users
    -  to the migration guide
    -- ship the migration guide
    -
    -* Fri Jun 21 2002 Joe Orton <jorton@redhat.com>
    -- move /etc/httpd2 back to /etc/httpd
    -- add noindex.html page and poweredby logo; tweak default config
    -  to load noindex.html if no default "/" page is present.
    -- add patch to prevent mutex errors on graceful restart
    -
    -* Fri Jun 21 2002 Tim Powers <timp@redhat.com> 2.0.36-4
    -- automated rebuild
    -
    -* Wed Jun 12 2002 Joe Orton <jorton@redhat.com> 2.0.36-3
    -- add patch to fix SSL mutex handling
    -
    -* Wed Jun 12 2002 Joe Orton <jorton@redhat.com> 2.0.36-2
    -- improved config directory patch
    -
    -* Mon May 20 2002 Joe Orton <jorton@redhat.com>
    -- initial build; based heavily on apache.spec and mod_ssl.spec
    -- fixes: #65214, #58490, #57376, #61265, #65518, #58177, #57245
    diff --git a/build/rules.mk.in b/build/rules.mk.in
    index 983bdf5156d..4fc045af161 100644
    --- a/build/rules.mk.in
    +++ b/build/rules.mk.in
    @@ -1,9 +1,9 @@
    -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -229,5 +229,5 @@ SHLIB_SUFFIX = so
     	clean clean-recursive local-clean x-local-clean \
     	distclean distclean-recursive local-distclean x-local-distclean \
     	extraclean extraclean-recursive local-extraclean x-local-extraclean \
    -	install local-install $(INSTALL_TARGETS)
    +	install local-install docs $(INSTALL_TARGETS)
     
    diff --git a/build/special.mk b/build/special.mk
    index 548656a62f0..1890f5815ca 100644
    --- a/build/special.mk
    +++ b/build/special.mk
    @@ -1,8 +1,9 @@
    -# Copyright 2000-2005 The Apache Software Foundation
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/sysv_makefile b/build/sysv_makefile
    index 63530755f99..ea1d4388a52 100755
    --- a/build/sysv_makefile
    +++ b/build/sysv_makefile
    @@ -1,11 +1,11 @@
     #! /bin/sh
     #
    -# Copyright 2000-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    diff --git a/build/win32/httpd.rc b/build/win32/httpd.rc
    new file mode 100644
    index 00000000000..0c557ee1e02
    --- /dev/null
    +++ b/build/win32/httpd.rc
    @@ -0,0 +1,88 @@
    +/* Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +#include "ap_release.h"
    +
    +#define AP_SERVER_LICENSE_RCSTR \
    +  "Licensed under the Apache License, Version 2.0 (the ""License""); " \
    +  "you may not use this file except in compliance with the License. " \
    +  "You may obtain a copy of the License at\r\n" \
    +  "\r\n" \
    +  "http://www.apache.org/licenses/LICENSE-2.0\r\n" \
    +  "\r\n" \
    +  "Unless required by applicable law or agreed to in writing, software " \
    +  "distributed under the License is distributed on an ""AS IS"" BASIS, " \
    +  "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. " \
    +  "See the License for the specific language governing permissions and " \
    +  "limitations under the License."
    +
    +
    +#ifdef ICON_FILE
    +1 ICON DISCARDABLE ICON_FILE
    +#endif
    +
    +#define LONG_NAME_STR APR_STRINGIFY(LONG_NAME)
    +#define BIN_NAME_STR APR_STRINGIFY(BIN_NAME)
    +
    +1 VERSIONINFO
    + FILEVERSION AP_SERVER_PATCHLEVEL_CSV,0
    + PRODUCTVERSION AP_SERVER_PATCHLEVEL_CSV,0
    + FILEFLAGSMASK 0x3fL
    +#if AP_SERVER_DEVBUILD_BOOLEAN
    +#if defined(_DEBUG)
    + FILEFLAGS 0x03L
    +#else
    + FILEFLAGS 0x02L
    +#endif
    +#else
    +#if defined(_DEBUG)
    + FILEFLAGS 0x01L
    +#else
    + FILEFLAGS 0x00L
    +#endif
    +#endif
    +#if defined(WINNT) || defined(WIN64)
    + FILEOS 0x40004L
    +#else
    + FILEOS 0x4L
    +#endif
    +#if defined(APP_FILE)
    + FILETYPE 0x1L
    +#else
    + FILETYPE 0x2L
    +#endif
    + FILESUBTYPE 0x0L
    +BEGIN
    +  BLOCK "StringFileInfo"
    +  BEGIN
    +    BLOCK "040904b0"
    +    BEGIN
    +      VALUE "Comments", AP_SERVER_LICENSE_RCSTR "\0"
    +      VALUE "CompanyName", AP_SERVER_BASEVENDOR "\0"
    +      VALUE "FileDescription", LONG_NAME_STR "\0"
    +      VALUE "FileVersion", AP_SERVER_BASEREVISION "\0"
    +      VALUE "InternalName", BIN_NAME_STR "\0"
    +      VALUE "LegalCopyright", AP_SERVER_COPYRIGHT "\0"
    +      VALUE "OriginalFilename", BIN_NAME_STR "\0"
    +      VALUE "ProductName", "Apache HTTP Server\0"
    +      VALUE "ProductVersion", AP_SERVER_BASEREVISION "\0"
    +    END
    +  END
    +  BLOCK "VarFileInfo"
    +  BEGIN
    +    VALUE "Translation", 0x409, 1200
    +  END
    +END
    diff --git a/build/win32/win32ver.awk b/build/win32/win32ver.awk
    index 739bf877088..27448e5bef9 100644
    --- a/build/win32/win32ver.awk
    +++ b/build/win32/win32ver.awk
    @@ -1,9 +1,9 @@
    -# Copyright 2001-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -50,35 +50,37 @@ BEGIN {
       }
     
       while ((getline < rel_h) > 0) {
    -    if (match ($0, /^.*Copyright /)) {
    +    if (match ($0, /^.*\* Copyright /)) {
           copyright = substr($0, RLENGTH + 1);
         }
    -    if (match ($0, /^#define AP_SERVER_MAJORVERSION_NUMBER [^*]/)) {
    +    if (match ($0, /^#define AP_SERVER_MAJORVERSION_NUMBER /)) {
           ver_major = $3;
         }
    -    else if (match ($0, /^#define AP_SERVER_MINORVERSION_NUMBER [^*]/)) {
    +    else if (match ($0, /^#define AP_SERVER_MINORVERSION_NUMBER /)) {
           ver_minor = $3;
         }
    -    else if (match ($0, /^#define AP_SERVER_PATCHLEVEL_NUMBER [^*]/)) {
    +    else if (match ($0, /^#define AP_SERVER_PATCHLEVEL_NUMBER /)) {
           ver_patch = $3;
         }
    -    else if (match ($0, /^#define AP_SERVER_ADD_STRING [^"]+"/)) {
    -      ver_patch_modifier = substr($3, 2, length($3) - 2);
    +    else if (match ($0, /^#define AP_SERVER_DEVBUILD_BOOLEAN /)) {
    +      ver_devbuild = $3;
    +    }
    +    else if (match ($0, /^#define AP_SERVER_ADD_STRING +"[^"]+"/)) {
    +      ver_build = substr($3, 2, length($3) - 2);
         }
       }
     
    -  ver = ver_major "." ver_minor "." ver_patch ver_patch_modifier;
    -  verc = ver_major "," ver_minor "," ver_patch;   
    -  if (build) {
    -    sub(/-.*/, "", verc)
    -    verc = verc "," build;
    -  } else if (sub(/-dev/, ",0", verc)) {
    -      ff = ff + 2;
    -  } else if (!sub(/-alpha/, ",10", verc)  \
    -          && !sub(/-beta/, ",100", verc)  \
    -          && !sub(/-gold/, ",200", verc)) {
    -    sub(/-.*/, "", verc);
    -    verc = verc "," 0;
    +  ver = ver_major "." ver_minor "." ver_patch;
    +  if (!ver_devbuild) {
    +    verc = ver_major "," ver_minor "," ver_patch;
    +  } else if (!match (ver_build, /-dev/)) {
    +    ff = ff + 2;
    +    verc = ver_major "," ver_minor "," ver_patch "," 100;
    +    ver = ver ver_build;
    +  } else {
    +    ff = ff + 2;
    +    verc = ver_major "," ver_minor "," ver_patch "," 0;
    +    ver = ver ver_build;
       }
       
       if (length(vendor)) {
    diff --git a/buildconf b/buildconf
    index 34f01e2c29c..24c9c9683cf 100755
    --- a/buildconf
    +++ b/buildconf
    @@ -1,11 +1,11 @@
     #!/bin/sh
     #
    -# Copyright 1999-2005 The Apache Software Foundation or its licensors, as
    -# applicable.
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
     #
     #     http://www.apache.org/licenses/LICENSE-2.0
     #
    @@ -58,7 +58,7 @@ apu_found=0
     
     for dir in $apr_src_dir
     do
    -    if [ -d "${dir}" -a -f "${dir}/build/apr_common.m4" ]; then
    +    if [ -f "${dir}/build/apr_common.m4" ]; then
             echo "found apr source: ${dir}"
             apr_src_dir=$dir
             apr_found=1
    @@ -73,14 +73,14 @@ if [ $apr_found -lt 1 ]; then
         echo "or specify the location of the source with " 
         echo "--with-apr=[path to apr] :"
         echo ""
    -    echo "   svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr"
    +    echo "   svn co http://svn.apache.org/repos/asf/apr/apr/branches/1.4.x srclib/apr"
         echo ""
         should_exit=1
     fi
     
     for dir in $apu_src_dir
     do
    -    if [ -d "${dir}" -a -f "${dir}/Makefile.in" ]; then
    +    if [ -f "${dir}/Makefile.in" ]; then
             echo "found apr-util source: ${dir}"
             apu_src_dir=$dir
             apu_found=1
    @@ -91,11 +91,11 @@ done
     if [ $apu_found -lt 1 ]; then
         echo ""
         echo "You don't have a copy of the apr-util source in srclib/apr-util. "
    -    echo "Please get one the source using the following instructions, "
    +    echo "Please get the source using the following instructions, "
         echo "or specify the location of the source with "
    -    echo "--with-apr-util=[path to apr-util]:"
    +    echo "--with-apr-util=[path to apr-util] :"
         echo ""
    -    echo "   svn co http://svn.apache.org/repos/asf/apr/apr-util/trunk srclib/apr-util"
    +    echo "   svn co http://svn.apache.org/repos/asf/apr/apr-util/branches/1.4.x srclib/apr-util"
         echo ""
         should_exit=1
     fi
    @@ -128,7 +128,7 @@ config_h_in="include/ap_config_auto.h.in"
     
     cross_compile_warning="warning: AC_TRY_RUN called without default to allow cross compiling"
     
    -if [ -d srclib/apr ]; then
    +if [ "$apr_src_dir" = "srclib/apr" ]; then
         echo rebuilding $apr_configure
         (cd srclib/apr && ./buildconf) || {
             echo "./buildconf failed for apr"
    @@ -137,15 +137,19 @@ if [ -d srclib/apr ]; then
         rm -f srclib/apr/apr.spec
     fi
     
    -if [ -d srclib/apr-util ]; then
    +apr_src_dir=`cd $apr_src_dir && pwd` 
    +
    +if [ "$apu_src_dir" = "srclib/apr-util" ]; then
         echo rebuilding $aprutil_configure
    -    (cd srclib/apr-util && ./buildconf) || {
    +    (cd srclib/apr-util && ./buildconf --with-apr=$apr_src_dir) || {
             echo "./buildconf failed for apr-util" 
             exit 1
         }
         rm -f srclib/apr-util/apr-util.spec
     fi
     
    +apu_src_dir=`cd $apu_src_dir && pwd` 
    +
     echo copying build files
     cp $apr_src_dir/build/config.guess $apr_src_dir/build/config.sub \
        $apr_src_dir/build/PrintPath $apr_src_dir/build/apr_common.m4 \
    diff --git a/config.layout b/config.layout
    index 03cb8f5930a..79f7ab5752f 100644
    --- a/config.layout
    +++ b/config.layout
    @@ -322,3 +322,27 @@
         installbuilddir: ${prefix}/etc/apache2/build
         errordir:      ${datadir}/error
     </Layout>
    +
    +# AIX layout
    +<Layout AIX>
    +    prefix:        /opt/httpd
    +    exec_prefix:   /opt/httpd
    +    bindir:        ${exec_prefix}/bin
    +    sbindir:       ${exec_prefix}/sbin
    +    libdir:        ${exec_prefix}/lib
    +    libexecdir:    ${exec_prefix}/libexec
    +    mandir:        /usr/share/man
    +    sysconfdir:    /etc/httpd
    +    datadir:       /var/httpd
    +    installbuilddir: ${datadir}/build
    +    errordir:      ${datadir}/error
    +    htdocsdir:     ${datadir}/htdocs
    +    cgidir:        ${datadir}/cgi-bin
    +    iconsdir:      ${prefix}/icons
    +    manualdir:     ${prefix}/manual
    +    includedir:    ${prefix}/include
    +    localstatedir: /var/httpd
    +    runtimedir:    ${localstatedir}/run
    +    logfiledir:    ${localstatedir}/logs
    +    proxycachedir: ${localstatedir}/proxy
    +</Layout>
    diff --git a/configure.in b/configure.in
    index afcf14257dd..8d28ae8fd22 100644
    --- a/configure.in
    +++ b/configure.in
    @@ -18,6 +18,15 @@ sinclude(build/find_apr.m4)
     sinclude(build/find_apu.m4)
     sinclude(acinclude.m4)
     
    +dnl Later versions of autoconf (>= 2.62) by default cause the produced
    +dnl configure script to emit at least warnings when it comes across unknown
    +dnl command line options. These versions also have the macro
    +dnl AC_DISABLE_OPTION_CHECKING defined which turns this off by default.
    +dnl We want to have this turned off here since our configure calls can
    +dnl contain options for APR / APR-UTIL configure that are unknown to us.
    +dnl So avoid confusing the user by turning this off. See also PR 45221.
    +ifdef([AC_DISABLE_OPTION_CHECKING], [AC_DISABLE_OPTION_CHECKING])
    +
     dnl XXX we can't just use AC_PREFIX_DEFAULT because that isn't subbed in
     dnl by configure until it is too late.  Is that how it should be or not?
     dnl Something seems broken here.                                               
    @@ -61,7 +70,18 @@ orig_prefix="$prefix"
     
     echo $ac_n "${nl}Configuring Apache Portable Runtime library ...${nl}"
     
    -APR_FIND_APR("$srcdir/srclib/apr", "./srclib/apr", 1, 1)
    +AC_ARG_WITH(included-apr,
    +APACHE_HELP_STRING(--with-included-apr,Use bundled copies of APR/APR-Util))
    +
    +# Only APR 1.x is supported.
    +apr_version=1
    +
    +if test "x$with_included_apr" = "xyes"; then
    +   apr_found=reconfig
    +   apr_config="$srcdir/srclib/apr/apr-${apr_version}-config"
    +else 
    +   APR_FIND_APR("$srcdir/srclib/apr", "./srclib/apr", 1, ${apr_version})
    +fi
     
     if test "$apr_found" = "no"; then
       AC_MSG_ERROR([APR not found.  Please read the documentation.])
    @@ -89,7 +109,15 @@ APR_CONFIG="$APR_BINDIR/apr-`echo ${APR_VERSION} | sed 's,\..*,,'`-config"
     
     echo $ac_n "${nl}Configuring Apache Portable Runtime Utility library...${nl}"
     
    -APR_FIND_APU("$srcdir/srclib/apr-util", "./srclib/apr-util", 1, 1)
    +# Only APR-util 1.x is supported.
    +apu_version=1
    +
    +if test "x$with_included_apr" = "xyes"; then
    +   apu_found=reconfig
    +   apu_config="${srcdir}/srclib/apr-util/apu-${apu_version}-config"
    +else 
    +   APR_FIND_APU("$srcdir/srclib/apr-util", "./srclib/apr-util", 1, ${apu_version})
    +fi
     
     if test "$apu_found" = "no"; then
       AC_MSG_ERROR([APR-util not found.  Please read the documentation.])
    @@ -147,7 +175,7 @@ yes) AC_PATH_PROG(PCRE_CONFIG, pcre-config, false) ;;
            PCRE_CONFIG=$with_pcre
          fi
     
    -     if $PCRE_CONFIG --version >&/dev/null; then :; else
    +     if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
            AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG])
          fi
          ;;
    @@ -183,7 +211,7 @@ if test "$abs_builddir" != "$abs_srcdir"; then
       APR_ADDTO(INCLUDES, [-I\$(top_builddir)/include])
     fi
     
    -APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/include -I\$(top_srcdir)/modules/generators -I\$(top_srcdir)/modules/mappers])
    +APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/include -I\$(top_srcdir)/modules/generators -I\$(top_srcdir)/modules/mappers -I\$(top_srcdir)/modules/database])
     
     # apr/apr-util --includes may pick up system paths for dependent
     # libraries, so ensure these are later in INCLUDES than local source
    @@ -216,7 +244,7 @@ case $host in
           LIBTOOL="$my_libtool \$(LTFLAGS)"
           libtoolversion=`$my_libtool --version`
           case $libtoolversion in
    -          *1.[[45]]*)
    +          *1.[[45]]* | *[[2-9]].[[0-9]]*)
                   SH_LIBTOOL='$(LIBTOOL)'
                   SHLTCFLAGS="-prefer-pic"
                   LTCFLAGS="-prefer-non-pic -static"
    @@ -232,8 +260,6 @@ esac
     APACHE_SUBST(SHLTCFLAGS)
     APACHE_SUBST(LTCFLAGS)
     
    -AP_SIG_GRACEFUL=USR1
    -
     case $host in
       *-apple-aux3*)
           APR_SETVAR(APACHE_MPM, [prefork])
    @@ -249,13 +275,11 @@ case $host in
           ;;
       *-linux-*)
           case `uname -r` in
    -        2.0* ) 
    -            AP_SIG_GRACEFUL=WINCH
    -            ;;
    -        2.[[2-9]]* ) 
    -            APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
    +        # Unserialized accept() was not recommended until Linux 2.2.
    +        [[01]].* | 2.[[01]]* )
                 ;;
             * )
    +            APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
                 ;;
           esac
           ;;
    @@ -279,6 +303,10 @@ case $host in
           APR_SETVAR(APACHE_MPM, [prefork])
           APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
           ;;
    +  *mingw32*)
    +      APR_SETVAR(APACHE_MPM, [winnt])
    +      APR_ADDTO(CPPFLAGS, [-DAP_DECLARE_EXPORT])
    +      ;;
       *aix*)
           aixver=`echo $host | sed 's/^[[^0-9]]*//' | sed 's/\.//g'`
           if test $aixver -ge 4320; then
    @@ -302,6 +330,7 @@ dnl ## Check for programs
     
     AC_PATH_PROG(RM, rm)
     AC_PATH_PROG(PKGCONFIG, pkg-config)
    +AC_PATH_PROG(RSYNC, rsync)
     AC_PROG_AWK
     AC_PROG_LN_S
     AC_CHECK_TOOL(RANLIB, ranlib, true)
    @@ -314,10 +343,35 @@ INSTALL="\$(LIBTOOL) --mode=install \$(abs_srcdir)/build/install.sh -c"
     APACHE_SUBST(MKINSTALLDIRS)
     APACHE_SUBST(INSTALL)
     
    -dnl various OS checks that apparently set required flags
    +dnl Various OS checks that apparently set required flags
    +ifdef([AC_USE_SYSTEM_EXTENSIONS], [
    +AC_USE_SYSTEM_EXTENSIONS
    +], [
     AC_AIX
    -AC_ISC_POSIX
     AC_MINIX
    +])
    +
    +AC_ISC_POSIX
    +
    +# Ensure that satisfactory versions of apr and apr-util are 
    +# found if external copies are configured.
    +if test "${apr_found}" = "yes"; then
    +  # Require APR 1.2.x otherwise fail
    +  APACHE_CHECK_APxVER([apr], 1, 2)
    +fi
    +
    +if test "${apu_found}" = "yes"; then
    +  # Require APR-util 1.2.x otherwise fail
    +  if test "${apr_found}" = "yes"; then
    +    # we need to add the APR includes to CPPFLAGS
    +    apu_ckver_CPPFLAGS="$CPPFLAGS"
    +    CPPFLAGS="$CPPFLAGS `$apr_config --includes`"
    +    APACHE_CHECK_APxVER([apu], 1, 2)
    +    CPPFLAGS="$apu_ckver_CPPFLAGS"
    +  else
    +    APACHE_CHECK_APxVER([apu], 1, 2)
    +  fi
    +fi
     
     dnl Check for what we can generate dependency files with
     APR_CHECK_DEPEND
    @@ -352,14 +406,17 @@ AC_HEADER_SYS_WAIT
     dnl ## Check for typedefs, structures, and compiler characteristics.
     
     AC_C_CONST
    -if test "x$GCC" = "xyes"; then
    -  AC_DEFINE([AP_HAVE_DESIGNATED_INITIALIZER], 1,
    -            [Define if the compiler supports designated initializers])
    -fi
     
     dnl ## Check for library functions
     AC_SEARCH_LIBS(sqrt, m)
     
    +saved_LIBS="$LIBS"
    +LIBS=""
    +AC_SEARCH_LIBS(crypt, crypt)
    +CRYPT_LIBS="$LIBS"
    +APACHE_SUBST(CRYPT_LIBS)
    +LIBS="$saved_LIBS"
    +
     dnl See Comment #Spoon
     
     AC_CHECK_FUNCS( \
    @@ -369,8 +426,12 @@ initgroups \
     bindprocessor \
     prctl \
     timegm \
    +getpgid
     )
     
    +dnl confirm that a void pointer is large enough to store a long integer
    +APACHE_CHECK_VOID_PTR_LEN
    +
     dnl ## Check for the tm_gmtoff field in struct tm to get the timezone diffs
     AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff,
     [AC_TRY_COMPILE([#include <sys/types.h>
    @@ -407,6 +468,10 @@ AC_ARG_WITH(port,APACHE_HELP_STRING(--with-port=PORT,Port on which to listen (de
             [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
     	[PORT=80])
     
    +AC_ARG_WITH(sslport,APACHE_HELP_STRING(--with-sslport=SSLPORT,Port on which to securelisten (default is 443)),
    +        [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-sslport requires a value (the SSL TCP port number)'); else SSLPORT="$withval"; fi],
    +	[SSLPORT=443])
    +
     APR_CHECK_APR_DEFINE(APR_HAVE_IPV6)
     
     AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections),
    @@ -415,7 +480,15 @@ AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets
     ],
     [
         case $host in
    -    *freebsd5*|*netbsd*|*openbsd*)
    +    *freebsd[[1234]].*)
    +        v4mapped=yes
    +        ;;
    +    *freebsd*|*netbsd*|*openbsd*)
    +        v4mapped=no
    +        ;;
    +    *mingw*)
    +        dnl WinNT is the only MPM on this platform, and it doesn't support
    +        dnl this feature.
             v4mapped=no
             ;;
         *)
    @@ -557,7 +630,9 @@ APACHE_HELP_STRING(--with-suexec-umask,umask for suexec'd process),[
       AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
     
     dnl APR should go after the other libs, so the right symbols can be picked up
    -AP_LIBS="$AP_LIBS `$apu_config --link-libtool --libs` `$apr_config --link-libtool --libs`"
    +apulinklibs="`$apu_config --avoid-ldap --link-libtool --libs`" \
    + || apulinklibs="`$apu_config --link-libtool --libs`"
    +AP_LIBS="$AP_LIBS $apulinklibs `$apr_config --link-libtool --libs`" 
     APACHE_SUBST(AP_LIBS)
     APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
     APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
    @@ -575,15 +650,6 @@ if test "$AP_NONBLOCK_WHEN_MULTI_LISTEN" = "1"; then
                   [Listening sockets are non-blocking when there are more than 1])
     fi
     
    -AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL, SIG$AP_SIG_GRACEFUL, [Signal used to gracefully restart])
    -AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_STRING, "SIG$AP_SIG_GRACEFUL", [Signal used to gracefully restart (as a quoted string)])
    -AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_SHORT, $AP_SIG_GRACEFUL, [Signal used to gracefully restart (without SIG prefix)])
    -AP_SIG_GRACEFUL_SHORT=$AP_SIG_GRACEFUL
    -AP_SIG_GRACEFUL=SIG$AP_SIG_GRACEFUL_SHORT
    -AC_SUBST(AP_SIG_GRACEFUL)
    -AC_SUBST(AP_SIG_GRACEFUL_STRING)
    -AC_SUBST(AP_SIG_GRACEFUL_SHORT)
    -
     APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) 
     APACHE_FAST_OUTPUT(os/Makefile server/Makefile)
     APACHE_FAST_OUTPUT(support/Makefile srclib/pcre/Makefile)
    diff --git a/docs/STATUS b/docs/STATUS
    index 17ac78a6e7b..da36635d83a 100644
    --- a/docs/STATUS
    +++ b/docs/STATUS
    @@ -1,4 +1,4 @@
    -Apache HTTP Server 2.1 Documentation Status File.
    +Apache HTTP Server 2.2 Documentation Status File.
     Last modified: $Date$
     
     For more information on how to contribute to the Apache Documentation
    diff --git a/docs/conf/extra/httpd-autoindex.conf.in b/docs/conf/extra/httpd-autoindex.conf.in
    index 13b400d1ad3..d5bcbb1d5b9 100644
    --- a/docs/conf/extra/httpd-autoindex.conf.in
    +++ b/docs/conf/extra/httpd-autoindex.conf.in
    @@ -12,7 +12,7 @@
     # IndexOptions: Controls the appearance of server-generated directory
     # listings.
     #
    -IndexOptions FancyIndexing VersionSort
    +IndexOptions FancyIndexing HTMLTable VersionSort
     
     # We include the /icons/ alias for FancyIndexed directory listings.  If
     # you do not use FancyIndexing, you may comment this out.
    diff --git a/docs/conf/extra/httpd-dav.conf.in b/docs/conf/extra/httpd-dav.conf.in
    index 56a1a819aba..c8d56b49ab0 100644
    --- a/docs/conf/extra/httpd-dav.conf.in
    +++ b/docs/conf/extra/httpd-dav.conf.in
    @@ -19,11 +19,16 @@ Alias /uploads "@@ServerRoot@@/uploads"
     <Directory "@@ServerRoot@@/uploads">
         Dav On
     
    +    Order Allow,Deny
    +    Allow from all
    +
         AuthType Digest
         AuthName DAV-upload
    +
         # You can use the htdigest program to create the password database:
         #   htdigest -c "@@ServerRoot@@/user.passwd" DAV-upload admin
         AuthUserFile "@@ServerRoot@@/user.passwd"
    +    AuthDigestProvider file
     
         # Allow universal read-access, but writes are restricted
         # to the admin user.
    diff --git a/docs/conf/extra/httpd-languages.conf.in b/docs/conf/extra/httpd-languages.conf.in
    index e7452bfdf41..7f664614fb8 100644
    --- a/docs/conf/extra/httpd-languages.conf.in
    +++ b/docs/conf/extra/httpd-languages.conf.in
    @@ -38,7 +38,8 @@
     # Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
     # Norwegian (no) - Polish (pl) - Portugese (pt)
     # Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
    -# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
    +# Turkish (tr) - Simplified Chinese (zh-CN) - Spanish (es)
    +# Traditional Chinese (zh-TW)
     #
     AddLanguage ca .ca
     AddLanguage cs .cz .cs
    @@ -64,6 +65,7 @@ AddLanguage pt .pt
     AddLanguage pt-BR .pt-br
     AddLanguage ru .ru
     AddLanguage sv .sv
    +AddLanguage tr .tr
     AddLanguage zh-CN .zh-cn
     AddLanguage zh-TW .zh-tw
     
    @@ -73,7 +75,7 @@ AddLanguage zh-TW .zh-tw
     # Just list the languages in decreasing order of preference. We have
     # more or less alphabetized them here. You probably want to change this.
     #
    -LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
    +LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW
     
     #
     # ForceLanguagePriority allows you to serve a result page rather than
    @@ -136,4 +138,4 @@ AddCharset EUC-TW  .euc-tw
     AddCharset gb2312  .gb2312 .gb
     AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
     AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
    -AddCharset shift_jis   .shift_jis .sjis
    \ No newline at end of file
    +AddCharset shift_jis   .shift_jis .sjis
    diff --git a/docs/conf/extra/httpd-manual.conf.in b/docs/conf/extra/httpd-manual.conf.in
    index d20a93f0860..404f62fd2bd 100644
    --- a/docs/conf/extra/httpd-manual.conf.in
    +++ b/docs/conf/extra/httpd-manual.conf.in
    @@ -2,12 +2,12 @@
     # Provide access to the documentation on your server as
     #  http://yourserver.example.com/manual/
     # The documentation is always available at
    -#  http://httpd.apache.org/docs-2.1/
    +#  http://httpd.apache.org/docs/2.2/
     #
     # Required modules: mod_alias, mod_setenvif, mod_negotiation
     #
     
    -AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|pt-br|ru))?(/.*)?$ "@exp_manualdir@$1"
    +AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|pt-br|ru|tr))?(/.*)?$ "@exp_manualdir@$1"
     
     <Directory "@exp_manualdir@">
         Options Indexes
    @@ -18,10 +18,14 @@ AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|pt-br|ru))?(/.*)?$ "@exp_manualdir@$
         <Files *.html>
             SetHandler type-map
         </Files>
    +    # .tr is text/troff in mime.types!
    +    <Files *.html.tr.utf8>
    +        ForceType "text/html; charset=utf-8"
    +    </Files>
     
    -    SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|pt-br|ru)/ prefer-language=$1
    -    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|pt-br|ru)){2,}(/.*)?$ /manual/$1$2
    +    SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|pt-br|ru|tr)/ prefer-language=$1
    +    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|pt-br|ru|tr)){2,}(/.*)?$ /manual/$1$2
     
    -    LanguagePriority en de es fr ja ko pt-br ru 
    +    LanguagePriority en de es fr ja ko pt-br ru tr
         ForceLanguagePriority Prefer Fallback
     </Directory>
    diff --git a/docs/conf/extra/httpd-mpm.conf.in b/docs/conf/extra/httpd-mpm.conf.in
    index 3f7b1b88a97..ab8408adfab 100644
    --- a/docs/conf/extra/httpd-mpm.conf.in
    +++ b/docs/conf/extra/httpd-mpm.conf.in
    @@ -9,7 +9,7 @@
     # Note that this is the default PidFile for most MPMs.
     #
     <IfModule !mpm_netware_module>
    -    PidFile @rel_runtimedir@/httpd.pid
    +    PidFile "@rel_runtimedir@/httpd.pid"
     </IfModule>
     
     #
    @@ -17,7 +17,7 @@
     #
     <IfModule !mpm_winnt_module>
     <IfModule !mpm_netware_module>
    -LockFile @rel_logfiledir@/accept.lock
    +LockFile "@rel_logfiledir@/accept.lock"
     </IfModule>
     </IfModule>
     
    @@ -57,30 +57,6 @@ LockFile @rel_logfiledir@/accept.lock
         MaxRequestsPerChild   0
     </IfModule>
     
    -# perchild MPM
    -# NumServers: constant number of server processes
    -# StartThreads: initial number of worker threads in each server process
    -# MinSpareThreads: minimum number of worker threads which are kept spare
    -# MaxSpareThreads: maximum number of worker threads which are kept spare
    -# MaxThreadsPerChild: maximum number of worker threads in each server process
    -# MaxRequestsPerChild: maximum number of connections per server process
    -<IfModule mpm_perchild_module>
    -    NumServers            5
    -    StartThreads          5
    -    MinSpareThreads       5
    -    MaxSpareThreads      10
    -    MaxThreadsPerChild   20
    -    MaxRequestsPerChild   0
    -</IfModule>
    -
    -# WinNT MPM
    -# ThreadsPerChild: constant number of worker threads in the server process
    -# MaxRequestsPerChild: maximum  number of requests a server process serves
    -<IfModule mpm_winnt_module>
    -    ThreadsPerChild     250
    -    MaxRequestsPerChild   0
    -</IfModule>
    -
     # BeOS MPM
     # StartThreads: how many threads do we initially spawn?
     # MaxClients:   max number of threads we can have (1 thread == 1 client)
    @@ -123,3 +99,12 @@ LockFile @rel_logfiledir@/accept.lock
         MaxSpareThreads       10
         MaxRequestsPerChild    0
     </IfModule>
    +
    +# WinNT MPM
    +# ThreadsPerChild: constant number of worker threads in the server process
    +# MaxRequestsPerChild: maximum  number of requests a server process serves
    +<IfModule mpm_winnt_module>
    +    ThreadsPerChild      150
    +    MaxRequestsPerChild    0
    +</IfModule>
    +
    diff --git a/docs/conf/extra/httpd-ssl.conf.in b/docs/conf/extra/httpd-ssl.conf.in
    index 9ce660e907a..0c8abcf38e4 100644
    --- a/docs/conf/extra/httpd-ssl.conf.in
    +++ b/docs/conf/extra/httpd-ssl.conf.in
    @@ -1,8 +1,8 @@
     #
     # This is the Apache server configuration file providing SSL support.
     # It contains the configuration directives to instruct the server how to
    -# serve pages over an https connection. For detailing information about these 
    -# directives see <URL:http://httpd.apache.org/docs-2.1/mod/mod_ssl.html>
    +# serve pages over an https connection. For detailed information about these 
    +# directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>
     # 
     # Do NOT simply read the instructions in here without understanding
     # what they do.  They're here only as hints or reminders.  If you are unsure
    @@ -32,9 +32,9 @@
     # standard HTTP port (see above) and to the HTTPS port
     #
     # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
    -#       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
    +#       Listen directives: "Listen [::]:@@SSLPort@@" and "Listen 0.0.0.0:@@SSLPort@@"
     #
    -Listen 443
    +Listen @@SSLPort@@
     
     ##
     ##  SSL Global Context
    @@ -49,6 +49,43 @@ Listen 443
     AddType application/x-x509-ca-cert .crt
     AddType application/x-pkcs7-crl    .crl
     
    +#   SSL Cipher Suite:
    +#   List the ciphers that the client is permitted to negotiate,
    +#   and that httpd will negotiate as the client of a proxied server.
    +#   See the OpenSSL documentation for a complete list of ciphers, and
    +#   ensure these follow appropriate best practices for this deployment.
    +#   httpd 2.2.30, 2.4.13 and later force-disable aNULL, eNULL and EXP ciphers,
    +#   while OpenSSL disabled these by default in 0.9.8zf/1.0.0r/1.0.1m/1.0.2a.
    +SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
    +SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
    +
    +#  By the end of 2016, only TLSv1.2 ciphers should remain in use.
    +#  Older ciphers should be disallowed as soon as possible, while the
    +#  kRSA ciphers do not offer forward secrecy.  These changes inhibit
    +#  older clients (such as IE6 SP2 or IE8 on Windows XP, or other legacy
    +#  non-browser tooling) from successfully connecting.  
    +#
    +#  To restrict mod_ssl to use only TLSv1.2 ciphers, and disable
    +#  those protocols which do not support forward secrecy, replace
    +#  the SSLCipherSuite and SSLProxyCipherSuite directives above with
    +#  the following two directives, as soon as practical.
    +# SSLCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA
    +# SSLProxyCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA
    +
    +#   User agents such as web browsers are not configured for the user's
    +#   own preference of either security or performance, therefore this
    +#   must be the prerogative of the web server administrator who manages
    +#   cpu load versus confidentiality, so enforce the server's cipher order.
    +SSLHonorCipherOrder on 
    +
    +#   SSL Protocol support:
    +#   List the protocol versions which clients are allowed to connect with.
    +#   Disable SSLv2 and SSLv3 by default (cf. RFC 7525 3.1.1).  TLSv1 (1.0)
    +#   should be disabled as quickly as practical.  By the end of 2016, only
    +#   the TLSv1.2 protocol or later should remain in use.
    +SSLProtocol all -SSLv2 -SSLv3
    +SSLProxyProtocol all -SSLv2 -SSLv3
    +
     #   Pass Phrase Dialog:
     #   Configure the pass phrase gathering process.
     #   The filtering dialog program (`builtin' is a internal
    @@ -58,37 +95,32 @@ SSLPassPhraseDialog  builtin
     #   Inter-Process Session Cache:
     #   Configure the SSL Session Cache: First the mechanism 
     #   to use and second the expiring timeout (in seconds).
    -#SSLSessionCache         dbm:@exp_runtimedir@/ssl_scache
    -SSLSessionCache        shmcb:@exp_runtimedir@/ssl_scache(512000)
    +#SSLSessionCache         "dbm:@exp_runtimedir@/ssl_scache"
    +SSLSessionCache        "shmcb:@exp_runtimedir@/ssl_scache(512000)"
     SSLSessionCacheTimeout  300
     
     #   Semaphore:
     #   Configure the path to the mutual exclusion semaphore the
     #   SSL engine uses internally for inter-process synchronization. 
    -SSLMutex  file:@exp_runtimedir@/ssl_mutex
    +SSLMutex  "file:@exp_runtimedir@/ssl_mutex"
     
     ##
     ## SSL Virtual Host Context
     ##
     
    -<VirtualHost _default_:443>
    +<VirtualHost _default_:@@SSLPort@@>
     
     #   General setup for the virtual host
     DocumentRoot "@exp_htdocsdir@"
    -ServerName www.example.com:443
    +ServerName www.example.com:@@SSLPort@@
     ServerAdmin you@example.com
    -ErrorLog @exp_logfiledir@/error_log
    -TransferLog @exp_logfiledir@/access_log
    +ErrorLog "@exp_logfiledir@/error_log"
    +TransferLog "@exp_logfiledir@/access_log"
     
     #   SSL Engine Switch:
     #   Enable/Disable SSL for this virtual host.
     SSLEngine on
     
    -#   SSL Cipher Suite:
    -#   List the ciphers that the client is permitted to negotiate.
    -#   See the mod_ssl documentation for a complete list.
    -SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    -
     #   Server Certificate:
     #   Point SSLCertificateFile at a PEM encoded certificate.  If
     #   the certificate is encrypted, then you will be prompted for a
    @@ -96,16 +128,22 @@ SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
     #   in mind that if you have both an RSA and a DSA certificate you
     #   can configure both in parallel (to also allow the use of DSA
     #   ciphers, etc.)
    -SSLCertificateFile @exp_sysconfdir@/server.crt
    -#SSLCertificateFile @exp_sysconfdir@/server-dsa.crt
    +#   Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
    +#   require an ECC certificate which can also be configured in
    +#   parallel.
    +SSLCertificateFile "@exp_sysconfdir@/server.crt"
    +#SSLCertificateFile "@exp_sysconfdir@/server-dsa.crt"
    +#SSLCertificateFile "@exp_sysconfdir@/server-ecc.crt"
     
     #   Server Private Key:
     #   If the key is not combined with the certificate, use this
     #   directive to point at the key file.  Keep in mind that if
     #   you've both a RSA and a DSA private key you can configure
     #   both in parallel (to also allow the use of DSA ciphers, etc.)
    -SSLCertificateKeyFile @exp_sysconfdir@/server.key
    -#SSLCertificateKeyFile @exp_sysconfdir@/server-dsa.key
    +#   ECC keys, when in use, can also be configured in parallel
    +SSLCertificateKeyFile "@exp_sysconfdir@/server.key"
    +#SSLCertificateKeyFile "@exp_sysconfdir@/server-dsa.key"
    +#SSLCertificateKeyFile "@exp_sysconfdir@/server-ecc.key"
     
     #   Server Certificate Chain:
     #   Point SSLCertificateChainFile at a file containing the
    @@ -113,8 +151,8 @@ SSLCertificateKeyFile @exp_sysconfdir@/server.key
     #   certificate chain for the server certificate. Alternatively
     #   the referenced file can be the same as SSLCertificateFile
     #   when the CA certificates are directly appended to the server
    -#   certificate for convinience.
    -#SSLCertificateChainFile @exp_sysconfdir@/server-ca.crt
    +#   certificate for convenience.
    +#SSLCertificateChainFile "@exp_sysconfdir@/server-ca.crt"
     
     #   Certificate Authority (CA):
     #   Set the CA certificate verification path where to find CA
    @@ -123,8 +161,8 @@ SSLCertificateKeyFile @exp_sysconfdir@/server.key
     #   Note: Inside SSLCACertificatePath you need hash symlinks
     #         to point to the certificate files. Use the provided
     #         Makefile to update the hash symlinks after changes.
    -#SSLCACertificatePath @exp_sysconfdir@/ssl.crt
    -#SSLCACertificateFile @exp_sysconfdir@/ssl.crt/ca-bundle.crt
    +#SSLCACertificatePath "@exp_sysconfdir@/ssl.crt"
    +#SSLCACertificateFile "@exp_sysconfdir@/ssl.crt/ca-bundle.crt"
     
     #   Certificate Revocation Lists (CRL):
     #   Set the CA revocation path where to find CA CRLs for client
    @@ -133,8 +171,8 @@ SSLCertificateKeyFile @exp_sysconfdir@/server.key
     #   Note: Inside SSLCARevocationPath you need hash symlinks
     #         to point to the certificate files. Use the provided
     #         Makefile to update the hash symlinks after changes.
    -#SSLCARevocationPath @exp_sysconfdir@/ssl.crl
    -#SSLCARevocationFile @exp_sysconfdir@/ssl.crl/ca-bundle.crl
    +#SSLCARevocationPath "@exp_sysconfdir@/ssl.crl"
    +#SSLCARevocationFile "@exp_sysconfdir@/ssl.crl/ca-bundle.crl"
     
     #   Client Authentication (Type):
     #   Client certificate verification type and depth.  Types are
    @@ -201,7 +239,7 @@ SSLCertificateKeyFile @exp_sysconfdir@/server.key
     #   approach you can use one of the following variables:
     #   o ssl-unclean-shutdown:
     #     This forces an unclean shutdown when the connection is closed, i.e. no
    -#     SSL close notify alert is send or allowed to received.  This violates
    +#     SSL close notify alert is sent or allowed to be received.  This violates
     #     the SSL/TLS standard but is needed for some brain-dead browsers. Use
     #     this when you receive I/O errors because of the standard approach where
     #     mod_ssl sends the close notify alert.
    @@ -218,14 +256,14 @@ SSLCertificateKeyFile @exp_sysconfdir@/server.key
     #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
     #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
     #   "force-response-1.0" for this.
    -BrowserMatch ".*MSIE.*" \
    +BrowserMatch "MSIE [2-5]" \
              nokeepalive ssl-unclean-shutdown \
              downgrade-1.0 force-response-1.0
     
     #   Per-Server Logging:
     #   The home of a custom SSL log file. Use this when you want a
     #   compact non-error SSL logfile on a virtual host basis.
    -CustomLog @exp_logfiledir@/ssl_request_log \
    +CustomLog "@exp_logfiledir@/ssl_request_log" \
               "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
     
     </VirtualHost>                                  
    diff --git a/docs/conf/extra/httpd-userdir.conf.in b/docs/conf/extra/httpd-userdir.conf.in
    index f424dd437d8..567bd6dad92 100644
    --- a/docs/conf/extra/httpd-userdir.conf.in
    +++ b/docs/conf/extra/httpd-userdir.conf.in
    @@ -13,7 +13,7 @@ UserDir public_html
     # Control access to UserDir directories.  The following is an example
     # for a site where these directories are restricted to read-only.
     #
    -<Directory /home/*/public_html>
    +<Directory "/home/*/public_html">
         AllowOverride FileInfo AuthConfig Limit Indexes
         Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
         <Limit GET POST OPTIONS>
    diff --git a/docs/conf/extra/httpd-vhosts.conf.in b/docs/conf/extra/httpd-vhosts.conf.in
    index bd59a127d76..fb44a16781d 100644
    --- a/docs/conf/extra/httpd-vhosts.conf.in
    +++ b/docs/conf/extra/httpd-vhosts.conf.in
    @@ -7,7 +7,7 @@
     # IP addresses. This is indicated by the asterisks in the directives below.
     #
     # Please see the documentation at 
    -# <URL:http://httpd.apache.org/docs-2.1/vhosts/>
    +# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
     # for further details before you try to setup virtual hosts.
     #
     # You may use the command line option '-S' to verify your virtual host
    @@ -16,7 +16,7 @@
     #
     # Use name-based virtual hosting.
     #
    -NameVirtualHost *:80
    +NameVirtualHost *:@@Port@@
     
     #
     # VirtualHost example:
    @@ -24,21 +24,21 @@ NameVirtualHost *:80
     # The first VirtualHost section is used for all requests that do not
     # match a ServerName or ServerAlias in any <VirtualHost> block.
     #
    -<VirtualHost *:80>
    +<VirtualHost *:@@Port@@>
         ServerAdmin webmaster@dummy-host.example.com
    -    DocumentRoot /www/docs/dummy-host.example.com
    +    DocumentRoot "@@ServerRoot@@/docs/dummy-host.example.com"
         ServerName dummy-host.example.com
         ServerAlias www.dummy-host.example.com
    -    ErrorLog @rel_logfiledir@/dummy-host.example.com-error_log
    -    CustomLog @rel_logfiledir@/dummy-host.example.com-access_log common
    +    ErrorLog "@rel_logfiledir@/dummy-host.example.com-error_log"
    +    CustomLog "@rel_logfiledir@/dummy-host.example.com-access_log" common
     </VirtualHost>
     
    -<VirtualHost *:80>
    +<VirtualHost *:@@Port@@>
         ServerAdmin webmaster@dummy-host2.example.com
    -    DocumentRoot /www/docs/dummy-host2.example.com
    +    DocumentRoot "@@ServerRoot@@/docs/dummy-host2.example.com"
         ServerName dummy-host2.example.com
    -    ErrorLog @rel_logfiledir@/dummy-host2.example.com-error_log
    -    CustomLog @rel_logfiledir@/dummy-host2.example.com-access_log common
    +    ErrorLog "@rel_logfiledir@/dummy-host2.example.com-error_log"
    +    CustomLog "@rel_logfiledir@/dummy-host2.example.com-access_log" common
     </VirtualHost>
     
     
    diff --git a/docs/conf/httpd-win.conf b/docs/conf/httpd-win.conf
    deleted file mode 100644
    index e8f2aab46a8..00000000000
    --- a/docs/conf/httpd-win.conf
    +++ /dev/null
    @@ -1,489 +0,0 @@
    -#
    -# This is the main Apache HTTP server configuration file.  It contains the
    -# configuration directives that give the server its instructions.
    -# See <URL:http://httpd.apache.org/docs-2.1/> for detailed information.
    -# In particular, see 
    -# <URL:http://httpd.apache.org/docs-2.1/mod/directives.html>
    -# for a discussion of each configuration directive.
    -#
    -# Do NOT simply read the instructions in here without understanding
    -# what they do.  They're here only as hints or reminders.  If you are unsure
    -# consult the online docs. You have been warned.  
    -#
    -# Configuration and logfile names: If the filenames you specify for many
    -# of the server's control files begin with "/" (or "drive:/" for Win32), the
    -# server will use that explicit path.  If the filenames do *not* begin
    -# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
    -# with ServerRoot set to "@@ServerRoot@@" will be interpreted by the
    -# server as "@@ServerRoot@@/logs/foo.log".
    -#
    -# NOTE: Where filenames are specified, you must use forward slashes
    -# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
    -# If a drive letter is omitted, the drive on which Apache.exe is located
    -# will be used by default.  It is recommended that you always supply
    -# an explicit drive letter in absolute paths, however, to avoid
    -# confusion.
    -#
    -
    -# ThreadsPerChild: constant number of worker threads in the server process
    -# MaxRequestsPerChild: maximum  number of requests a server process serves
    -ThreadsPerChild 250
    -MaxRequestsPerChild  0
    -
    -#
    -# ServerRoot: The top of the directory tree under which the server's
    -# configuration, error, and log files are kept.
    -#
    -# Do not add a slash at the end of the directory path.  If you point
    -# ServerRoot at a non-local disk, be sure to point the LockFile directive
    -# at a local disk.  If you wish to share the same ServerRoot for multiple
    -# httpd daemons, you will need to change at least LockFile and PidFile.
    -#
    -ServerRoot "@@ServerRoot@@"
    -
    -#
    -# Listen: Allows you to bind Apache to specific IP addresses and/or
    -# ports, instead of the default. See also the <VirtualHost>
    -# directive.
    -#
    -# Change this to Listen on specific IP addresses as shown below to 
    -# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
    -#
    -#Listen 12.34.56.78:80
    -Listen @@Port@@
    -
    -#
    -# Dynamic Shared Object (DSO) Support
    -#
    -# To be able to use the functionality of a module which was built as a DSO you
    -# have to place corresponding `LoadModule' lines at this location so the
    -# directives contained in it are actually available _before_ they are used.
    -# Statically compiled modules (those listed by `httpd -l') do not need
    -# to be loaded here.
    -#
    -# Example:
    -# LoadModule foo_module modules/mod_foo.so
    -#
    -LoadModule actions_module modules/mod_actions.so
    -LoadModule alias_module modules/mod_alias.so
    -LoadModule asis_module modules/mod_asis.so
    -LoadModule auth_basic_module modules/mod_auth_basic.so
    -#LoadModule auth_digest_module modules/mod_auth_digest.so
    -#LoadModule authn_anon_module modules/mod_authn_anon.so
    -#LoadModule authn_dbm_module modules/mod_authn_dbm.so
    -LoadModule authn_default_module modules/mod_authn_default.so
    -LoadModule authn_file_module modules/mod_authn_file.so
    -#LoadModule authz_dbm_module modules/mod_authz_dbm.so
    -LoadModule authz_default_module modules/mod_authz_default.so
    -LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    -LoadModule authz_host_module modules/mod_authz_host.so
    -LoadModule authz_user_module modules/mod_authz_user.so
    -LoadModule autoindex_module modules/mod_autoindex.so
    -#LoadModule cern_meta_module modules/mod_cern_meta.so
    -LoadModule cgi_module modules/mod_cgi.so
    -#LoadModule dav_module modules/mod_dav.so
    -#LoadModule dav_fs_module modules/mod_dav_fs.so
    -#LoadModule deflate_module modules/mod_deflate.so
    -LoadModule dir_module modules/mod_dir.so
    -LoadModule env_module modules/mod_env.so
    -#LoadModule expires_module modules/mod_expires.so
    -#LoadModule file_cache_module modules/mod_file_cache.so
    -#LoadModule headers_module modules/mod_headers.so
    -LoadModule imagemap_module modules/mod_imagemap.so
    -LoadModule include_module modules/mod_include.so
    -#LoadModule info_module modules/mod_info.so
    -LoadModule isapi_module modules/mod_isapi.so
    -LoadModule log_config_module modules/mod_log_config.so
    -LoadModule mime_module modules/mod_mime.so
    -#LoadModule mime_magic_module modules/mod_mime_magic.so
    -#LoadModule proxy_module modules/mod_proxy.so
    -#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    -#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    -#LoadModule proxy_connect_module modules/mod_proxy_connect.so
    -#LoadModule proxy_http_module modules/mod_proxy_http.so
    -#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    -LoadModule negotiation_module modules/mod_negotiation.so
    -#LoadModule rewrite_module modules/mod_rewrite.so
    -LoadModule setenvif_module modules/mod_setenvif.so
    -#LoadModule speling_module modules/mod_speling.so
    -#LoadModule status_module modules/mod_status.so
    -#LoadModule unique_id_module modules/mod_unique_id.so
    -LoadModule userdir_module modules/mod_userdir.so
    -#LoadModule usertrack_module modules/mod_usertrack.so
    -#LoadModule vhost_alias_module modules/mod_vhost_alias.so
    -#LoadModule ssl_module modules/mod_ssl.so
    -
    -# 'Main' server configuration
    -#
    -# The directives in this section set up the values used by the 'main'
    -# server, which responds to any requests that aren't handled by a
    -# <VirtualHost> definition.  These values also provide defaults for
    -# any <VirtualHost> containers you may define later in the file.
    -#
    -# All of these directives may appear inside <VirtualHost> containers,
    -# in which case these default settings will be overridden for the
    -# virtual host being defined.
    -#
    -
    -#
    -# ServerAdmin: Your address, where problems with the server should be
    -# e-mailed.  This address appears on some server-generated pages, such
    -# as error documents.  e.g. admin@your-domain.com
    -#
    -ServerAdmin @@ServerAdmin@@
    -
    -#
    -# ServerName gives the name and port that the server uses to identify itself.
    -# This can often be determined automatically, but we recommend you specify
    -# it explicitly to prevent problems during startup.
    -#
    -# If your host doesn't have a registered DNS name, enter its IP address here.
    -#
    -ServerName @@ServerName@@:@@Port@@
    -
    -#
    -# DocumentRoot: The directory out of which you will serve your
    -# documents. By default, all requests are taken from this directory, but
    -# symbolic links and aliases may be used to point to other locations.
    -#
    -DocumentRoot "@@ServerRoot@@/htdocs"
    -
    -#
    -# Each directory to which Apache has access can be configured with respect
    -# to which services and features are allowed and/or disabled in that
    -# directory (and its subdirectories). 
    -#
    -# First, we configure the "default" to be a very restrictive set of 
    -# features.  
    -#
    -<Directory />
    -    Options FollowSymLinks
    -    AllowOverride None
    -    Order deny,allow
    -    Deny from all
    -</Directory>
    -
    -#
    -# Note that from this point forward you must specifically allow
    -# particular features to be enabled - so if something's not working as
    -# you might expect, make sure that you have specifically enabled it
    -# below.
    -#
    -
    -#
    -# This should be changed to whatever you set DocumentRoot to.
    -#
    -<Directory "@@ServerRoot@@/htdocs">
    -    #
    -    # Possible values for the Options directive are "None", "All",
    -    # or any combination of:
    -    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    -    #
    -    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    -    # doesn't give it to you.
    -    #
    -    # The Options directive is both complicated and important.  Please see
    -    # http://httpd.apache.org/docs-2.1/mod/core.html#options
    -    # for more information.
    -    #
    -    Options Indexes FollowSymLinks
    -
    -    #
    -    # AllowOverride controls what directives may be placed in .htaccess files.
    -    # It can be "All", "None", or any combination of the keywords:
    -    #   Options FileInfo AuthConfig Limit
    -    #
    -    AllowOverride None
    -
    -    #
    -    # Controls who can get stuff from this server.
    -    #
    -    Order allow,deny
    -    Allow from all
    -
    -</Directory>
    -
    -#
    -# DirectoryIndex: sets the file that Apache will serve if a directory
    -# is requested.
    -#
    -<IfModule dir_module>
    -    DirectoryIndex index.html
    -</IfModule>
    -
    -#
    -# The following lines prevent .htaccess and .htpasswd files from being 
    -# viewed by Web clients. 
    -#
    -<FilesMatch "^\.ht">
    -    Order allow,deny
    -    Deny from all
    -</FilesMatch>
    -
    -#
    -# ErrorLog: The location of the error log file.
    -# If you do not specify an ErrorLog directive within a <VirtualHost>
    -# container, error messages relating to that virtual host will be
    -# logged here.  If you *do* define an error logfile for a <VirtualHost>
    -# container, that host's errors will be logged there and not here.
    -#
    -ErrorLog logs/error.log
    -
    -#
    -# LogLevel: Control the number of messages logged to the error_log.
    -# Possible values include: debug, info, notice, warn, error, crit,
    -# alert, emerg.
    -#
    -LogLevel warn
    -
    -<IfModule log_config_module>
    -    #
    -    # The following directives define some format nicknames for use with
    -    # a CustomLog directive (see below).
    -    #
    -    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    -    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    -
    -    <IfModule logio_module>
    -      # You need to enable mod_logio.c to use %I and %O
    -      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    -    </IfModule>
    -
    -    #
    -    # The location and format of the access logfile (Common Logfile Format).
    -    # If you do not define any access logfiles within a <VirtualHost>
    -    # container, they will be logged here.  Contrariwise, if you *do*
    -    # define per-<VirtualHost> access logfiles, transactions will be
    -    # logged therein and *not* in this file.
    -    #
    -    CustomLog logs/access.log common
    -
    -    #
    -    # If you prefer a logfile with access, agent, and referer information
    -    # (Combined Logfile Format) you can use the following directive.
    -    #
    -    #CustomLog logs/access.log combined
    -</IfModule>
    -
    -<IfModule alias_module>
    -    #
    -    # Redirect: Allows you to tell clients about documents that used to 
    -    # exist in your server's namespace, but do not anymore. The client 
    -    # will make a new request for the document at its new location.
    -    # Example:
    -    # Redirect permanent /foo http://www.example.com/bar
    -
    -    #
    -    # Alias: Maps web paths into filesystem paths and is used to
    -    # access content that does not live under the DocumentRoot.
    -    # Example:
    -    # Alias /webpath /full/filesystem/path
    -    #
    -    # If you include a trailing / on /webpath then the server will
    -    # require it to be present in the URL.  You will also likely
    -    # need to provide a <Directory> section to allow access to
    -    # the filesystem path.
    -
    -    #
    -    # ScriptAlias: This controls which directories contain server scripts. 
    -    # ScriptAliases are essentially the same as Aliases, except that
    -    # documents in the target directory are treated as applications and
    -    # run by the server when requested rather than as documents sent to the
    -    # client.  The same rules about trailing "/" apply to ScriptAlias
    -    # directives as to Alias.
    -    #
    -    ScriptAlias /cgi-bin/ "@@ServerRoot@@/cgi-bin/"
    -
    -</IfModule>
    -
    -#
    -# "@@ServerRoot@@/cgi-bin" should be changed to whatever your ScriptAliased
    -# CGI directory exists, if you have that configured.
    -#
    -<Directory "@@ServerRoot@@/cgi-bin">
    -    AllowOverride None
    -    Options None
    -    Order allow,deny
    -    Allow from all
    -</Directory>
    -
    -# 
    -# Apache parses all CGI scripts for the shebang line by default.
    -# This comment line, the first line of the script, consists of the symbols
    -# pound (#) and exclamation (!) followed by the path of the program that 
    -# can execute this specific script.  For a perl script, with perl.exe in
    -# the C:\Program Files\Perl directory, the shebang line should be:
    -
    -   #!c:/program files/perl/perl
    -
    -# Note you _must_not_ indent the actual shebang line, and it must be the
    -# first line of the file.  Of course, CGI processing must be enabled by 
    -# the appropriate ScriptAlias or Options ExecCGI directives for the files 
    -# or directory in question.
    -#
    -# However, Apache on Windows allows either the Unix behavior above, or can
    -# use the Registry to match files by extention.  The command to execute 
    -# a file of this type is retrieved from the registry by the same method as 
    -# the Windows Explorer would use to handle double-clicking on a file.
    -# These script actions can be configured from the Windows Explorer View menu, 
    -# 'Folder Options', and reviewing the 'File Types' tab.  Clicking the Edit
    -# button allows you to modify the Actions, of which Apache 1.3 attempts to
    -# perform the 'Open' Action, and failing that it will try the shebang line.
    -# This behavior is subject to change in Apache release 2.0.
    -#
    -# Each mechanism has it's own specific security weaknesses, from the means
    -# to run a program you didn't intend the website owner to invoke, and the
    -# best method is a matter of great debate.
    -#
    -# To enable the this Windows specific behavior (and therefore -disable- the
    -# equivilant Unix behavior), uncomment the following directive:
    -#
    -#ScriptInterpreterSource registry
    -#
    -# The directive above can be placed in individual <Directory> blocks or the
    -# .htaccess file, with either the 'registry' (Windows behavior) or 'script' 
    -# (Unix behavior) option, and will override this server default option.
    -#
    -
    -#
    -# DefaultType: the default MIME type the server will use for a document
    -# if it cannot otherwise determine one, such as from filename extensions.
    -# If your server contains mostly text or HTML documents, "text/plain" is
    -# a good value.  If most of your content is binary, such as applications
    -# or images, you may want to use "application/octet-stream" instead to
    -# keep browsers from trying to display binary files as though they are
    -# text.
    -#
    -DefaultType text/plain
    -
    -<IfModule mime_module>
    -    #
    -    # TypesConfig points to the file containing the list of mappings from
    -    # filename extension to MIME-type.
    -    #
    -    TypesConfig conf/mime.types
    -
    -    #
    -    # AddType allows you to add to or override the MIME configuration
    -    # file specified in TypesConfig for specific file types.
    -    #
    -    #AddType application/x-gzip .tgz
    -    #
    -    # AddEncoding allows you to have certain browsers uncompress
    -    # information on the fly. Note: Not all browsers support this.
    -    #
    -    #AddEncoding x-compress .Z
    -    #AddEncoding x-gzip .gz .tgz
    -    #
    -    # If the AddEncoding directives above are commented-out, then you
    -    # probably should define those extensions to indicate media types:
    -    #
    -    AddType application/x-compress .Z
    -    AddType application/x-gzip .gz .tgz
    -
    -    #
    -    # AddHandler allows you to map certain file extensions to "handlers":
    -    # actions unrelated to filetype. These can be either built into the server
    -    # or added with the Action directive (see below)
    -    #
    -    # To use CGI scripts outside of ScriptAliased directories:
    -    # (You will also need to add "ExecCGI" to the "Options" directive.)
    -    #
    -    #AddHandler cgi-script .cgi
    -
    -    # For files that include their own HTTP headers:
    -    #AddHandler send-as-is asis
    -
    -    # For server-parsed imagemap files:
    -    #AddHandler imap-file map
    -
    -    # For type maps (negotiated resources):
    -    #AddHandler type-map var
    -
    -    #
    -    # Filters allow you to process content before it is sent to the client.
    -    #
    -    # To parse .shtml files for server-side includes (SSI):
    -    # (You will also need to add "Includes" to the "Options" directive.)
    -    #
    -    #AddType text/html .shtml
    -    #AddOutputFilter INCLUDES .shtml
    -</IfModule>
    -
    -#
    -# The mod_mime_magic module allows the server to use various hints from the
    -# contents of the file itself to determine its type.  The MIMEMagicFile
    -# directive tells the module where the hint definitions are located.
    -#
    -#MIMEMagicFile conf/magic
    -
    -#
    -# Customizable error responses come in three flavors:
    -# 1) plain text 2) local redirects 3) external redirects
    -#
    -# Some examples:
    -#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
    -#
    -
    -#
    -# EnableMMAP and EnableSendfile: On systems that support it, 
    -# memory-mapping or the sendfile syscall is used to deliver
    -# files.  This usually improves server performance, but must
    -# be turned off when serving from networked-mounted 
    -# filesystems or if support for these functions is otherwise
    -# broken on your system.
    -#
    -#EnableMMAP off
    -#EnableSendfile off
    -
    -# Supplemental configuration
    -#
    -# The configuration files in the conf/extra/ directory can be 
    -# included to add extra features or to modify the default configuration of 
    -# the server, or you may simply copy their contents here and change as 
    -# necessary.
    -
    -# Server-pool management (MPM specific)
    -#Include conf/extra/httpd-mpm.conf
    -
    -# Multi-language error messages
    -#Include conf/extra/httpd-multilang-errordoc.conf
    -
    -# Fancy directory listings
    -#Include conf/extra/httpd-autoindex.conf
    -
    -# Language settings
    -#Include conf/extra/httpd-languages.conf
    -
    -# User home directories
    -#Include conf/extra/httpd-userdir.conf
    -
    -# Real-time info on requests and configuration
    -#Include conf/extra/httpd-info.conf
    -
    -# Virtual hosts
    -#Include conf/extra/httpd-vhosts.conf
    -
    -# Local access to the Apache HTTP Server Manual
    -#Include conf/extra/httpd-manual.conf
    -
    -# Distributed authoring and versioning (WebDAV)
    -#Include conf/extra/httpd-dav.conf
    -
    -# Various default settings
    -#Include conf/extra/httpd-default.conf
    -
    -# Secure (SSL/TLS) connections
    -#Include conf/extra/httpd-ssl.conf
    -#
    -# Note: The following must must be present to support
    -#       starting without SSL on platforms with no /dev/random equivalent
    -#       but a statically compiled-in mod_ssl.
    -#
    -<IfModule ssl_module>
    -SSLRandomSeed startup builtin
    -SSLRandomSeed connect builtin
    -</IfModule>
    diff --git a/docs/conf/httpd.conf.in b/docs/conf/httpd.conf.in
    index cc5c22e93b2..8b5efde27c3 100644
    --- a/docs/conf/httpd.conf.in
    +++ b/docs/conf/httpd.conf.in
    @@ -1,9 +1,9 @@
     #
     # This is the main Apache HTTP server configuration file.  It contains the
     # configuration directives that give the server its instructions.
    -# See <URL:http://httpd.apache.org/docs-2.1/> for detailed information.
    +# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
     # In particular, see 
    -# <URL:http://httpd.apache.org/docs-2.1/mod/directives.html>
    +# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
     # for a discussion of each configuration directive.
     #
     # Do NOT simply read the instructions in here without understanding
    @@ -13,9 +13,10 @@
     # Configuration and logfile names: If the filenames you specify for many
     # of the server's control files begin with "/" (or "drive:/" for Win32), the
     # server will use that explicit path.  If the filenames do *not* begin
    -# with "/", the value of ServerRoot is prepended -- so "@rel_logfiledir@/foo.log"
    -# with ServerRoot set to "@@ServerRoot@@" will be interpreted by the
    -# server as "@@ServerRoot@@/@rel_logfiledir@/foo.log".
    +# with "/", the value of ServerRoot is prepended -- so 'log/access_log'
    +# with ServerRoot set to '/www' will be interpreted by the
    +# server as '/www/log/access_log', where as '/log/access_log' will be
    +# interpreted as '/log/access_log'.
     
     #
     # ServerRoot: The top of the directory tree under which the server's
    @@ -34,7 +35,7 @@ ServerRoot "@@ServerRoot@@"
     # directive.
     #
     # Change this to Listen on specific IP addresses as shown below to 
    -# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
    +# prevent Apache from glomming onto all bound IP addresses.
     #
     #Listen 12.34.56.78:80
     Listen @@Port@@
    @@ -53,8 +54,8 @@ Listen @@Port@@
     #
     @@LoadModule@@
     
    -<IfModule !mpm_winnt_module>
     <IfModule !mpm_netware_module>
    +<IfModule !mpm_winnt_module>
     #
     # If you wish httpd to run as a different user or group, you must run
     # httpd as root initially and it will switch.  
    @@ -65,6 +66,7 @@ Listen @@Port@@
     #
     User daemon
     Group daemon
    +
     </IfModule>
     </IfModule>
     
    @@ -94,7 +96,7 @@ ServerAdmin you@example.com
     #
     # If your host doesn't have a registered DNS name, enter its IP address here.
     #
    -#ServerName www.example.com:80
    +#ServerName www.example.com:@@Port@@
     
     #
     # DocumentRoot: The directory out of which you will serve your
    @@ -138,7 +140,7 @@ DocumentRoot "@exp_htdocsdir@"
         # doesn't give it to you.
         #
         # The Options directive is both complicated and important.  Please see
    -    # http://httpd.apache.org/docs-2.1/mod/core.html#options
    +    # http://httpd.apache.org/docs/2.2/mod/core.html#options
         # for more information.
         #
         Options Indexes FollowSymLinks
    @@ -173,6 +175,7 @@ DocumentRoot "@exp_htdocsdir@"
     <FilesMatch "^\.ht">
         Order allow,deny
         Deny from all
    +    Satisfy All
     </FilesMatch>
     
     #
    @@ -182,7 +185,7 @@ DocumentRoot "@exp_htdocsdir@"
     # logged here.  If you *do* define an error logfile for a <VirtualHost>
     # container, that host's errors will be logged there and not here.
     #
    -ErrorLog @rel_logfiledir@/error_log
    +ErrorLog "@rel_logfiledir@/error_log"
     
     #
     # LogLevel: Control the number of messages logged to the error_log.
    @@ -211,13 +214,13 @@ LogLevel warn
         # define per-<VirtualHost> access logfiles, transactions will be
         # logged therein and *not* in this file.
         #
    -    CustomLog @rel_logfiledir@/access_log common
    +    CustomLog "@rel_logfiledir@/access_log" common
     
         #
         # If you prefer a logfile with access, agent, and referer information
         # (Combined Logfile Format) you can use the following directive.
         #
    -    #CustomLog @rel_logfiledir@/access_log combined
    +    #CustomLog "@rel_logfiledir@/access_log" combined
     </IfModule>
     
     <IfModule alias_module>
    @@ -281,6 +284,15 @@ LogLevel warn
     #
     DefaultType text/plain
     
    +<IfModule headers_module>
    +    #
    +    # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
    +    # backend servers which have lingering "httpoxy" defects.
    +    # 'Proxy' request header is undefined by the IETF, not listed by IANA
    +    #
    +    RequestHeader unset Proxy early
    +</IfModule>
    +
     <IfModule mime_module>
         #
         # TypesConfig points to the file containing the list of mappings from
    @@ -316,12 +328,6 @@ DefaultType text/plain
         #
         #AddHandler cgi-script .cgi
     
    -    # For files that include their own HTTP headers:
    -    #AddHandler send-as-is asis
    -
    -    # For server-parsed imagemap files:
    -    #AddHandler imap-file map
    -
         # For type maps (negotiated resources):
         #AddHandler type-map var
     
    @@ -353,6 +359,13 @@ DefaultType text/plain
     #ErrorDocument 402 http://www.example.com/subscription_info.html
     #
     
    +#
    +# MaxRanges: Maximum number of Ranges in a request before
    +# returning the entire resource, or one of the special
    +# values 'default', 'none' or 'unlimited'.
    +# Default setting is to accept 200 Ranges.
    +#MaxRanges unlimited
    +
     #
     # EnableMMAP and EnableSendfile: On systems that support it, 
     # memory-mapping or the sendfile syscall is used to deliver
    diff --git a/docs/conf/mime.types b/docs/conf/mime.types
    index 3485692d111..51752426266 100644
    --- a/docs/conf/mime.types
    +++ b/docs/conf/mime.types
    @@ -1,592 +1,1588 @@
    -# This is a comment. I love comments.
    -
    -# This file controls what Internet media types are sent to the client for
    -# given file extension(s).  Sending the correct media type to the client
    -# is important so they know how to handle the content of the file.
    -# Extra types can either be added here or by using an AddType directive
    -# in your config files. For more information about Internet media types,
    -# please read RFC 2045, 2046, 2047, 2048, and 2077.  The Internet media type
    -# registry is at <http://www.iana.org/assignments/media-types/>.
    -
    -# MIME type			Extensions
    -application/activemessage
    -application/andrew-inset	ez
    -application/applefile
    -application/atom+xml		atom
    -application/atomicmail
    -application/batch-smtp
    -application/beep+xml
    -application/cals-1840
    -application/cnrp+xml
    -application/commonground
    -application/cpl+xml
    -application/cybercash
    -application/dca-rft
    -application/dec-dx
    -application/dvcs
    -application/edi-consent
    -application/edifact
    -application/edi-x12
    -application/eshop
    -application/font-tdpfr
    -application/http
    -application/hyperstudio
    -application/iges
    -application/index
    -application/index.cmd
    -application/index.obj
    -application/index.response
    -application/index.vnd
    -application/iotp
    -application/ipp
    -application/isup
    -application/mac-binhex40	hqx
    -application/mac-compactpro	cpt
    -application/macwriteii
    -application/marc
    -application/mathematica
    -application/mathml+xml		mathml
    -application/msword		doc
    -application/news-message-id
    -application/news-transmission
    -application/ocsp-request
    -application/ocsp-response
    -application/octet-stream	bin dms lha lzh exe class so dll dmg
    -application/oda			oda
    -application/ogg			ogg
    -application/parityfec
    -application/pdf			pdf
    -application/pgp-encrypted
    -application/pgp-keys
    -application/pgp-signature
    -application/pkcs10
    -application/pkcs7-mime
    -application/pkcs7-signature
    -application/pkix-cert
    -application/pkix-crl
    -application/pkixcmp
    -application/postscript		ai eps ps
    -application/prs.alvestrand.titrax-sheet
    -application/prs.cww
    -application/prs.nprend
    -application/prs.plucker
    -application/qsig
    -application/rdf+xml		rdf
    -application/reginfo+xml
    -application/remote-printing
    -application/riscos
    -application/rtf
    -application/sdp
    -application/set-payment
    -application/set-payment-initiation
    -application/set-registration
    -application/set-registration-initiation
    -application/sgml
    -application/sgml-open-catalog
    -application/sieve
    -application/slate
    -application/smil		smi smil
    -application/srgs		gram
    -application/srgs+xml		grxml
    -application/timestamp-query
    -application/timestamp-reply
    -application/tve-trigger
    -application/vemmi
    -application/vnd.3gpp.pic-bw-large
    -application/vnd.3gpp.pic-bw-small
    -application/vnd.3gpp.pic-bw-var
    -application/vnd.3gpp.sms
    -application/vnd.3m.post-it-notes
    -application/vnd.accpac.simply.aso
    -application/vnd.accpac.simply.imp
    -application/vnd.acucobol
    -application/vnd.acucorp
    -application/vnd.adobe.xfdf
    -application/vnd.aether.imp
    -application/vnd.amiga.ami
    -application/vnd.anser-web-certificate-issue-initiation
    -application/vnd.anser-web-funds-transfer-initiation
    -application/vnd.audiograph
    -application/vnd.blueice.multipass
    -application/vnd.bmi
    -application/vnd.businessobjects
    -application/vnd.canon-cpdl
    -application/vnd.canon-lips
    -application/vnd.cinderella
    -application/vnd.claymore
    -application/vnd.commerce-battelle
    -application/vnd.commonspace
    -application/vnd.contact.cmsg
    -application/vnd.cosmocaller
    -application/vnd.criticaltools.wbs+xml
    -application/vnd.ctc-posml
    -application/vnd.cups-postscript
    -application/vnd.cups-raster
    -application/vnd.cups-raw
    -application/vnd.curl
    -application/vnd.cybank
    -application/vnd.data-vision.rdz
    -application/vnd.dna
    -application/vnd.dpgraph
    -application/vnd.dreamfactory
    -application/vnd.dxr
    -application/vnd.ecdis-update
    -application/vnd.ecowin.chart
    -application/vnd.ecowin.filerequest
    -application/vnd.ecowin.fileupdate
    -application/vnd.ecowin.series
    -application/vnd.ecowin.seriesrequest
    -application/vnd.ecowin.seriesupdate
    -application/vnd.enliven
    -application/vnd.epson.esf
    -application/vnd.epson.msf
    -application/vnd.epson.quickanime
    -application/vnd.epson.salt
    -application/vnd.epson.ssf
    -application/vnd.ericsson.quickcall
    -application/vnd.eudora.data
    -application/vnd.fdf
    -application/vnd.ffsns
    -application/vnd.fints
    -application/vnd.flographit
    -application/vnd.framemaker
    -application/vnd.fsc.weblaunch
    -application/vnd.fujitsu.oasys
    -application/vnd.fujitsu.oasys2
    -application/vnd.fujitsu.oasys3
    -application/vnd.fujitsu.oasysgp
    -application/vnd.fujitsu.oasysprs
    -application/vnd.fujixerox.ddd
    -application/vnd.fujixerox.docuworks
    -application/vnd.fujixerox.docuworks.binder
    -application/vnd.fut-misnet
    -application/vnd.grafeq
    -application/vnd.groove-account
    -application/vnd.groove-help
    -application/vnd.groove-identity-message
    -application/vnd.groove-injector
    -application/vnd.groove-tool-message
    -application/vnd.groove-tool-template
    -application/vnd.groove-vcard
    -application/vnd.hbci
    -application/vnd.hhe.lesson-player
    -application/vnd.hp-hpgl
    -application/vnd.hp-hpid
    -application/vnd.hp-hps
    -application/vnd.hp-pcl
    -application/vnd.hp-pclxl
    -application/vnd.httphone
    -application/vnd.hzn-3d-crossword
    -application/vnd.ibm.afplinedata
    -application/vnd.ibm.electronic-media
    -application/vnd.ibm.minipay
    -application/vnd.ibm.modcap
    -application/vnd.ibm.rights-management
    -application/vnd.ibm.secure-container
    -application/vnd.informix-visionary
    -application/vnd.intercon.formnet
    -application/vnd.intertrust.digibox
    -application/vnd.intertrust.nncp
    -application/vnd.intu.qbo
    -application/vnd.intu.qfx
    -application/vnd.irepository.package+xml
    -application/vnd.is-xpr
    -application/vnd.japannet-directory-service
    -application/vnd.japannet-jpnstore-wakeup
    -application/vnd.japannet-payment-wakeup
    -application/vnd.japannet-registration
    -application/vnd.japannet-registration-wakeup
    -application/vnd.japannet-setstore-wakeup
    -application/vnd.japannet-verification
    -application/vnd.japannet-verification-wakeup
    -application/vnd.jisp
    -application/vnd.kde.karbon
    -application/vnd.kde.kchart
    -application/vnd.kde.kformula
    -application/vnd.kde.kivio
    -application/vnd.kde.kontour
    -application/vnd.kde.kpresenter
    -application/vnd.kde.kspread
    -application/vnd.kde.kword
    -application/vnd.kenameaapp
    -application/vnd.koan
    -application/vnd.liberty-request+xml
    -application/vnd.llamagraphics.life-balance.desktop
    -application/vnd.llamagraphics.life-balance.exchange+xml
    -application/vnd.lotus-1-2-3
    -application/vnd.lotus-approach
    -application/vnd.lotus-freelance
    -application/vnd.lotus-notes
    -application/vnd.lotus-organizer
    -application/vnd.lotus-screencam
    -application/vnd.lotus-wordpro
    -application/vnd.mcd
    -application/vnd.mediastation.cdkey
    -application/vnd.meridian-slingshot
    -application/vnd.micrografx.flo
    -application/vnd.micrografx.igx
    -application/vnd.mif		mif
    -application/vnd.minisoft-hp3000-save
    -application/vnd.mitsubishi.misty-guard.trustweb
    -application/vnd.mobius.daf
    -application/vnd.mobius.dis
    -application/vnd.mobius.mbk
    -application/vnd.mobius.mqy
    -application/vnd.mobius.msl
    -application/vnd.mobius.plc
    -application/vnd.mobius.txf
    -application/vnd.mophun.application
    -application/vnd.mophun.certificate
    -application/vnd.motorola.flexsuite
    -application/vnd.motorola.flexsuite.adsi
    -application/vnd.motorola.flexsuite.fis
    -application/vnd.motorola.flexsuite.gotap
    -application/vnd.motorola.flexsuite.kmr
    -application/vnd.motorola.flexsuite.ttc
    -application/vnd.motorola.flexsuite.wem
    -application/vnd.mozilla.xul+xml	xul
    -application/vnd.ms-artgalry
    -application/vnd.ms-asf
    -application/vnd.ms-excel	xls
    -application/vnd.ms-lrm
    -application/vnd.ms-powerpoint	ppt
    -application/vnd.ms-project
    -application/vnd.ms-tnef
    -application/vnd.ms-works
    -application/vnd.ms-wpl
    -application/vnd.mseq
    -application/vnd.msign
    -application/vnd.music-niff
    -application/vnd.musician
    -application/vnd.netfpx
    -application/vnd.noblenet-directory
    -application/vnd.noblenet-sealer
    -application/vnd.noblenet-web
    -application/vnd.novadigm.edm
    -application/vnd.novadigm.edx
    -application/vnd.novadigm.ext
    -application/vnd.obn
    -application/vnd.osa.netdeploy
    -application/vnd.palm
    -application/vnd.pg.format
    -application/vnd.pg.osasli
    -application/vnd.powerbuilder6
    -application/vnd.powerbuilder6-s
    -application/vnd.powerbuilder7
    -application/vnd.powerbuilder7-s
    -application/vnd.powerbuilder75
    -application/vnd.powerbuilder75-s
    -application/vnd.previewsystems.box
    -application/vnd.publishare-delta-tree
    -application/vnd.pvi.ptid1
    -application/vnd.pwg-multiplexed
    -application/vnd.pwg-xhtml-print+xml
    -application/vnd.quark.quarkxpress
    -application/vnd.rapid
    -application/vnd.s3sms
    -application/vnd.sealed.net
    -application/vnd.seemail
    -application/vnd.shana.informed.formdata
    -application/vnd.shana.informed.formtemplate
    -application/vnd.shana.informed.interchange
    -application/vnd.shana.informed.package
    -application/vnd.smaf
    -application/vnd.sss-cod
    -application/vnd.sss-dtf
    -application/vnd.sss-ntf
    -application/vnd.street-stream
    -application/vnd.svd
    -application/vnd.swiftview-ics
    -application/vnd.triscape.mxs
    -application/vnd.trueapp
    -application/vnd.truedoc
    -application/vnd.ufdl
    -application/vnd.uplanet.alert
    -application/vnd.uplanet.alert-wbxml
    -application/vnd.uplanet.bearer-choice
    -application/vnd.uplanet.bearer-choice-wbxml
    -application/vnd.uplanet.cacheop
    -application/vnd.uplanet.cacheop-wbxml
    -application/vnd.uplanet.channel
    -application/vnd.uplanet.channel-wbxml
    -application/vnd.uplanet.list
    -application/vnd.uplanet.list-wbxml
    -application/vnd.uplanet.listcmd
    -application/vnd.uplanet.listcmd-wbxml
    -application/vnd.uplanet.signal
    -application/vnd.vcx
    -application/vnd.vectorworks
    -application/vnd.vidsoft.vidconference
    -application/vnd.visio
    -application/vnd.visionary
    -application/vnd.vividence.scriptfile
    -application/vnd.vsf
    -application/vnd.wap.sic
    -application/vnd.wap.slc
    -application/vnd.wap.wbxml	wbxml
    -application/vnd.wap.wmlc	wmlc
    -application/vnd.wap.wmlscriptc	wmlsc
    -application/vnd.webturbo
    -application/vnd.wrq-hp3000-labelled
    -application/vnd.wt.stf
    -application/vnd.wv.csp+wbxml
    -application/vnd.xara
    -application/vnd.xfdl
    -application/vnd.yamaha.hv-dic
    -application/vnd.yamaha.hv-script
    -application/vnd.yamaha.hv-voice
    -application/vnd.yellowriver-custom-menu
    -application/voicexml+xml	vxml
    -application/watcherinfo+xml
    -application/whoispp-query
    -application/whoispp-response
    -application/wita
    -application/wordperfect5.1
    -application/x-bcpio		bcpio
    -application/x-cdlink		vcd
    -application/x-chess-pgn		pgn
    -application/x-compress
    -application/x-cpio		cpio
    -application/x-csh		csh
    -application/x-director		dcr dir dxr
    -application/x-dvi		dvi
    -application/x-futuresplash	spl
    -application/x-gtar		gtar
    -application/x-gzip
    -application/x-hdf		hdf
    -application/x-javascript	js
    -application/x-koan		skp skd skt skm
    -application/x-latex		latex
    -application/x-netcdf		nc cdf
    -application/x-sh		sh
    -application/x-shar		shar
    -application/x-shockwave-flash	swf
    -application/x-stuffit		sit
    -application/x-sv4cpio		sv4cpio
    -application/x-sv4crc		sv4crc
    -application/x-tar		tar
    -application/x-tcl		tcl
    -application/x-tex		tex
    -application/x-texinfo		texinfo texi
    -application/x-troff		t tr roff
    -application/x-troff-man		man
    -application/x-troff-me		me
    -application/x-troff-ms		ms
    -application/x-ustar		ustar
    -application/x-wais-source	src
    -application/x400-bp
    -application/xhtml+xml		xhtml xht
    -application/xslt+xml		xslt
    -application/xml			xml xsl
    -application/xml-dtd		dtd
    -application/xml-external-parsed-entity
    -application/zip			zip
    -audio/32kadpcm
    -audio/amr
    -audio/amr-wb
    -audio/basic			au snd
    -audio/cn
    -audio/dat12
    -audio/dsr-es201108
    -audio/dvi4
    -audio/evrc
    -audio/evrc0
    -audio/g722
    -audio/g.722.1
    -audio/g723
    -audio/g726-16
    -audio/g726-24
    -audio/g726-32
    -audio/g726-40
    -audio/g728
    -audio/g729
    -audio/g729D
    -audio/g729E
    -audio/gsm
    -audio/gsm-efr
    -audio/l8
    -audio/l16
    -audio/l20
    -audio/l24
    -audio/lpc
    -audio/midi			mid midi kar
    -audio/mpa
    -audio/mpa-robust
    -audio/mp4a-latm
    -audio/mpeg			mpga mp2 mp3
    -audio/parityfec
    -audio/pcma
    -audio/pcmu
    -audio/prs.sid
    -audio/qcelp
    -audio/red
    -audio/smv
    -audio/smv0
    -audio/telephone-event
    -audio/tone
    -audio/vdvi
    -audio/vnd.3gpp.iufp
    -audio/vnd.cisco.nse
    -audio/vnd.cns.anp1
    -audio/vnd.cns.inf1
    -audio/vnd.digital-winds
    -audio/vnd.everad.plj
    -audio/vnd.lucent.voice
    -audio/vnd.nortel.vbk
    -audio/vnd.nuera.ecelp4800
    -audio/vnd.nuera.ecelp7470
    -audio/vnd.nuera.ecelp9600
    -audio/vnd.octel.sbc
    -audio/vnd.qcelp
    -audio/vnd.rhetorex.32kadpcm
    -audio/vnd.vmx.cvsd
    -audio/x-aiff			aif aiff aifc
    -audio/x-alaw-basic
    -audio/x-mpegurl			m3u
    -audio/x-pn-realaudio		ram ra
    -audio/x-pn-realaudio-plugin
    -application/vnd.rn-realmedia	rm
    -audio/x-wav			wav
    -chemical/x-pdb			pdb
    -chemical/x-xyz			xyz
    -image/bmp			bmp
    -image/cgm			cgm
    -image/g3fax
    -image/gif			gif
    -image/ief			ief
    -image/jpeg			jpeg jpg jpe
    -image/naplps
    -image/png			png
    -image/prs.btif
    -image/prs.pti
    -image/svg+xml			svg
    -image/t38
    -image/tiff			tiff tif
    -image/tiff-fx
    -image/vnd.cns.inf2
    -image/vnd.djvu			djvu djv
    -image/vnd.dwg
    -image/vnd.dxf
    -image/vnd.fastbidsheet
    -image/vnd.fpx
    -image/vnd.fst
    -image/vnd.fujixerox.edmics-mmr
    -image/vnd.fujixerox.edmics-rlc
    -image/vnd.globalgraphics.pgb
    -image/vnd.mix
    -image/vnd.ms-modi
    -image/vnd.net-fpx
    -image/vnd.svf
    -image/vnd.wap.wbmp		wbmp
    -image/vnd.xiff
    -image/x-cmu-raster		ras
    -image/x-icon			ico
    -image/x-portable-anymap		pnm
    -image/x-portable-bitmap		pbm
    -image/x-portable-graymap	pgm
    -image/x-portable-pixmap		ppm
    -image/x-rgb			rgb
    -image/x-xbitmap			xbm
    -image/x-xpixmap			xpm
    -image/x-xwindowdump		xwd
    -message/delivery-status
    -message/disposition-notification
    -message/external-body
    -message/http
    -message/news
    -message/partial
    -message/rfc822
    -message/s-http
    -message/sip
    -message/sipfrag
    -model/iges			igs iges
    -model/mesh			msh mesh silo
    -model/vnd.dwf
    -model/vnd.flatland.3dml
    -model/vnd.gdl
    -model/vnd.gs-gdl
    -model/vnd.gtw
    -model/vnd.mts
    -model/vnd.parasolid.transmit.binary
    -model/vnd.parasolid.transmit.text
    -model/vnd.vtu
    -model/vrml			wrl vrml
    -multipart/alternative
    -multipart/appledouble
    -multipart/byteranges
    -multipart/digest
    -multipart/encrypted
    -multipart/form-data
    -multipart/header-set
    -multipart/mixed
    -multipart/parallel
    -multipart/related
    -multipart/report
    -multipart/signed
    -multipart/voice-message
    -text/calendar			ics ifb
    -text/css			css
    -text/directory
    -text/enriched
    -text/html			html htm
    -text/parityfec
    -text/plain			asc txt
    -text/prs.lines.tag
    -text/rfc822-headers
    -text/richtext			rtx
    -text/rtf			rtf
    -text/sgml			sgml sgm
    -text/t140
    -text/tab-separated-values	tsv
    -text/uri-list
    -text/vnd.abc
    -text/vnd.curl
    -text/vnd.dmclientscript
    -text/vnd.fly
    -text/vnd.fmi.flexstor
    -text/vnd.in3d.3dml
    -text/vnd.in3d.spot
    -text/vnd.iptc.nitf
    -text/vnd.iptc.newsml
    -text/vnd.latex-z
    -text/vnd.motorola.reflex
    -text/vnd.ms-mediapackage
    -text/vnd.net2phone.commcenter.command
    -text/vnd.sun.j2me.app-descriptor
    -text/vnd.wap.si
    -text/vnd.wap.sl
    -text/vnd.wap.wml		wml
    -text/vnd.wap.wmlscript		wmls
    -text/x-setext			etx
    -text/xml
    -text/xml-external-parsed-entity
    -video/bmpeg
    -video/bt656
    -video/celb
    -video/dv
    -video/h261
    -video/h263
    -video/h263-1998
    -video/h263-2000
    -video/jpeg
    -video/mp1s
    -video/mp2p
    -video/mp2t
    -video/mp4v-es
    -video/mpv
    -video/mpeg			mpeg mpg mpe
    -video/nv
    -video/parityfec
    -video/pointer
    -video/quicktime			qt mov
    -video/smpte292m
    -video/vnd.fvt
    -video/vnd.motorola.video
    -video/vnd.motorola.videop
    -video/vnd.mpegurl		mxu m4u
    -video/vnd.nokia.interleaved-multimedia
    -video/vnd.objectvideo
    -video/vnd.vivo
    -video/x-msvideo			avi
    -video/x-sgi-movie		movie
    -x-conference/x-cooltalk		ice
    +# This file maps Internet media types to unique file extension(s).
    +# Although created for httpd, this file is used by many software systems
    +# and has been placed in the public domain for unlimited redisribution.
    +#
    +# The table below contains both registered and (common) unregistered types.
    +# A type that has no unique extension can be ignored -- they are listed
    +# here to guide configurations toward known types and to make it easier to
    +# identify "new" types.  File extensions are also commonly used to indicate
    +# content languages and encodings, so choose them carefully.
    +#
    +# Internet media types should be registered as described in RFC 4288.
    +# The registry is at <http://www.iana.org/assignments/media-types/>.
    +#
    +# MIME type (lowercased)			Extensions
    +# ============================================	==========
    +# application/1d-interleaved-parityfec
    +# application/3gpp-ims+xml
    +# application/activemessage
    +application/andrew-inset			ez
    +# application/applefile
    +application/applixware				aw
    +application/atom+xml				atom
    +application/atomcat+xml				atomcat
    +# application/atomicmail
    +application/atomsvc+xml				atomsvc
    +# application/auth-policy+xml
    +# application/batch-smtp
    +# application/beep+xml
    +# application/calendar+xml
    +# application/cals-1840
    +# application/ccmp+xml
    +application/ccxml+xml				ccxml
    +application/cdmi-capability			cdmia
    +application/cdmi-container			cdmic
    +application/cdmi-domain				cdmid
    +application/cdmi-object				cdmio
    +application/cdmi-queue				cdmiq
    +# application/cea-2018+xml
    +# application/cellml+xml
    +# application/cfw
    +# application/cnrp+xml
    +# application/commonground
    +# application/conference-info+xml
    +# application/cpl+xml
    +# application/csta+xml
    +# application/cstadata+xml
    +application/cu-seeme				cu
    +# application/cybercash
    +application/davmount+xml			davmount
    +# application/dca-rft
    +# application/dec-dx
    +# application/dialog-info+xml
    +# application/dicom
    +# application/dns
    +application/docbook+xml				dbk
    +# application/dskpp+xml
    +application/dssc+der				dssc
    +application/dssc+xml				xdssc
    +# application/dvcs
    +application/ecmascript				ecma
    +# application/edi-consent
    +# application/edi-x12
    +# application/edifact
    +application/emma+xml				emma
    +# application/epp+xml
    +application/epub+zip				epub
    +# application/eshop
    +# application/example
    +application/exi					exi
    +# application/fastinfoset
    +# application/fastsoap
    +# application/fits
    +application/font-tdpfr				pfr
    +# application/framework-attributes+xml
    +application/gml+xml				gml
    +application/gpx+xml				gpx
    +application/gxf					gxf
    +# application/h224
    +# application/held+xml
    +# application/http
    +application/hyperstudio				stk
    +# application/ibe-key-request+xml
    +# application/ibe-pkg-reply+xml
    +# application/ibe-pp-data
    +# application/iges
    +# application/im-iscomposing+xml
    +# application/index
    +# application/index.cmd
    +# application/index.obj
    +# application/index.response
    +# application/index.vnd
    +application/inkml+xml				ink inkml
    +# application/iotp
    +application/ipfix				ipfix
    +# application/ipp
    +# application/isup
    +application/java-archive			jar
    +application/java-serialized-object		ser
    +application/java-vm				class
    +application/javascript				js
    +application/json				json
    +application/jsonml+json				jsonml
    +# application/kpml-request+xml
    +# application/kpml-response+xml
    +application/lost+xml				lostxml
    +application/mac-binhex40			hqx
    +application/mac-compactpro			cpt
    +# application/macwriteii
    +application/mads+xml				mads
    +application/marc				mrc
    +application/marcxml+xml				mrcx
    +application/mathematica				ma nb mb
    +# application/mathml-content+xml
    +# application/mathml-presentation+xml
    +application/mathml+xml				mathml
    +# application/mbms-associated-procedure-description+xml
    +# application/mbms-deregister+xml
    +# application/mbms-envelope+xml
    +# application/mbms-msk+xml
    +# application/mbms-msk-response+xml
    +# application/mbms-protection-description+xml
    +# application/mbms-reception-report+xml
    +# application/mbms-register+xml
    +# application/mbms-register-response+xml
    +# application/mbms-user-service-description+xml
    +application/mbox				mbox
    +# application/media_control+xml
    +application/mediaservercontrol+xml		mscml
    +application/metalink+xml			metalink
    +application/metalink4+xml			meta4
    +application/mets+xml				mets
    +# application/mikey
    +application/mods+xml				mods
    +# application/moss-keys
    +# application/moss-signature
    +# application/mosskey-data
    +# application/mosskey-request
    +application/mp21				m21 mp21
    +application/mp4					mp4s
    +# application/mpeg4-generic
    +# application/mpeg4-iod
    +# application/mpeg4-iod-xmt
    +# application/msc-ivr+xml
    +# application/msc-mixer+xml
    +application/msword				doc dot
    +application/mxf					mxf
    +# application/nasdata
    +# application/news-checkgroups
    +# application/news-groupinfo
    +# application/news-transmission
    +# application/nss
    +# application/ocsp-request
    +# application/ocsp-response
    +application/octet-stream	bin dms lrf mar so dist distz pkg bpk dump elc deploy
    +application/oda					oda
    +application/oebps-package+xml			opf
    +application/ogg					ogx
    +application/omdoc+xml				omdoc
    +application/onenote				onetoc onetoc2 onetmp onepkg
    +application/oxps				oxps
    +# application/parityfec
    +application/patch-ops-error+xml			xer
    +application/pdf					pdf
    +application/pgp-encrypted			pgp
    +# application/pgp-keys
    +application/pgp-signature			asc sig
    +application/pics-rules				prf
    +# application/pidf+xml
    +# application/pidf-diff+xml
    +application/pkcs10				p10
    +application/pkcs7-mime				p7m p7c
    +application/pkcs7-signature			p7s
    +application/pkcs8				p8
    +application/pkix-attr-cert			ac
    +application/pkix-cert				cer
    +application/pkix-crl				crl
    +application/pkix-pkipath			pkipath
    +application/pkixcmp				pki
    +application/pls+xml				pls
    +# application/poc-settings+xml
    +application/postscript				ai eps ps
    +# application/prs.alvestrand.titrax-sheet
    +application/prs.cww				cww
    +# application/prs.nprend
    +# application/prs.plucker
    +# application/prs.rdf-xml-crypt
    +# application/prs.xsf+xml
    +application/pskc+xml				pskcxml
    +# application/qsig
    +application/rdf+xml				rdf
    +application/reginfo+xml				rif
    +application/relax-ng-compact-syntax		rnc
    +# application/remote-printing
    +application/resource-lists+xml			rl
    +application/resource-lists-diff+xml		rld
    +# application/riscos
    +# application/rlmi+xml
    +application/rls-services+xml			rs
    +application/rpki-ghostbusters			gbr
    +application/rpki-manifest			mft
    +application/rpki-roa				roa
    +# application/rpki-updown
    +application/rsd+xml				rsd
    +application/rss+xml				rss
    +application/rtf					rtf
    +# application/rtx
    +# application/samlassertion+xml
    +# application/samlmetadata+xml
    +application/sbml+xml				sbml
    +application/scvp-cv-request			scq
    +application/scvp-cv-response			scs
    +application/scvp-vp-request			spq
    +application/scvp-vp-response			spp
    +application/sdp					sdp
    +# application/set-payment
    +application/set-payment-initiation		setpay
    +# application/set-registration
    +application/set-registration-initiation		setreg
    +# application/sgml
    +# application/sgml-open-catalog
    +application/shf+xml				shf
    +# application/sieve
    +# application/simple-filter+xml
    +# application/simple-message-summary
    +# application/simplesymbolcontainer
    +# application/slate
    +# application/smil
    +application/smil+xml				smi smil
    +# application/soap+fastinfoset
    +# application/soap+xml
    +application/sparql-query			rq
    +application/sparql-results+xml			srx
    +# application/spirits-event+xml
    +application/srgs				gram
    +application/srgs+xml				grxml
    +application/sru+xml				sru
    +application/ssdl+xml				ssdl
    +application/ssml+xml				ssml
    +# application/tamp-apex-update
    +# application/tamp-apex-update-confirm
    +# application/tamp-community-update
    +# application/tamp-community-update-confirm
    +# application/tamp-error
    +# application/tamp-sequence-adjust
    +# application/tamp-sequence-adjust-confirm
    +# application/tamp-status-query
    +# application/tamp-status-response
    +# application/tamp-update
    +# application/tamp-update-confirm
    +application/tei+xml				tei teicorpus
    +application/thraud+xml				tfi
    +# application/timestamp-query
    +# application/timestamp-reply
    +application/timestamped-data			tsd
    +# application/tve-trigger
    +# application/ulpfec
    +# application/vcard+xml
    +# application/vemmi
    +# application/vividence.scriptfile
    +# application/vnd.3gpp.bsf+xml
    +application/vnd.3gpp.pic-bw-large		plb
    +application/vnd.3gpp.pic-bw-small		psb
    +application/vnd.3gpp.pic-bw-var			pvb
    +# application/vnd.3gpp.sms
    +# application/vnd.3gpp2.bcmcsinfo+xml
    +# application/vnd.3gpp2.sms
    +application/vnd.3gpp2.tcap			tcap
    +application/vnd.3m.post-it-notes		pwn
    +application/vnd.accpac.simply.aso		aso
    +application/vnd.accpac.simply.imp		imp
    +application/vnd.acucobol			acu
    +application/vnd.acucorp				atc acutc
    +application/vnd.adobe.air-application-installer-package+zip	air
    +application/vnd.adobe.formscentral.fcdt		fcdt
    +application/vnd.adobe.fxp			fxp fxpl
    +# application/vnd.adobe.partial-upload
    +application/vnd.adobe.xdp+xml			xdp
    +application/vnd.adobe.xfdf			xfdf
    +# application/vnd.aether.imp
    +# application/vnd.ah-barcode
    +application/vnd.ahead.space			ahead
    +application/vnd.airzip.filesecure.azf		azf
    +application/vnd.airzip.filesecure.azs		azs
    +application/vnd.amazon.ebook			azw
    +application/vnd.americandynamics.acc		acc
    +application/vnd.amiga.ami			ami
    +# application/vnd.amundsen.maze+xml
    +application/vnd.android.package-archive		apk
    +application/vnd.anser-web-certificate-issue-initiation	cii
    +application/vnd.anser-web-funds-transfer-initiation	fti
    +application/vnd.antix.game-component		atx
    +application/vnd.apple.installer+xml		mpkg
    +application/vnd.apple.mpegurl			m3u8
    +# application/vnd.arastra.swi
    +application/vnd.aristanetworks.swi		swi
    +application/vnd.astraea-software.iota		iota
    +application/vnd.audiograph			aep
    +# application/vnd.autopackage
    +# application/vnd.avistar+xml
    +application/vnd.blueice.multipass		mpm
    +# application/vnd.bluetooth.ep.oob
    +application/vnd.bmi				bmi
    +application/vnd.businessobjects			rep
    +# application/vnd.cab-jscript
    +# application/vnd.canon-cpdl
    +# application/vnd.canon-lips
    +# application/vnd.cendio.thinlinc.clientconf
    +application/vnd.chemdraw+xml			cdxml
    +application/vnd.chipnuts.karaoke-mmd		mmd
    +application/vnd.cinderella			cdy
    +# application/vnd.cirpack.isdn-ext
    +application/vnd.claymore			cla
    +application/vnd.cloanto.rp9			rp9
    +application/vnd.clonk.c4group			c4g c4d c4f c4p c4u
    +application/vnd.cluetrust.cartomobile-config		c11amc
    +application/vnd.cluetrust.cartomobile-config-pkg	c11amz
    +# application/vnd.collection+json
    +# application/vnd.commerce-battelle
    +application/vnd.commonspace			csp
    +application/vnd.contact.cmsg			cdbcmsg
    +application/vnd.cosmocaller			cmc
    +application/vnd.crick.clicker			clkx
    +application/vnd.crick.clicker.keyboard		clkk
    +application/vnd.crick.clicker.palette		clkp
    +application/vnd.crick.clicker.template		clkt
    +application/vnd.crick.clicker.wordbank		clkw
    +application/vnd.criticaltools.wbs+xml		wbs
    +application/vnd.ctc-posml			pml
    +# application/vnd.ctct.ws+xml
    +# application/vnd.cups-pdf
    +# application/vnd.cups-postscript
    +application/vnd.cups-ppd			ppd
    +# application/vnd.cups-raster
    +# application/vnd.cups-raw
    +# application/vnd.curl
    +application/vnd.curl.car			car
    +application/vnd.curl.pcurl			pcurl
    +# application/vnd.cybank
    +application/vnd.dart				dart
    +application/vnd.data-vision.rdz			rdz
    +application/vnd.dece.data			uvf uvvf uvd uvvd
    +application/vnd.dece.ttml+xml			uvt uvvt
    +application/vnd.dece.unspecified		uvx uvvx
    +application/vnd.dece.zip			uvz uvvz
    +application/vnd.denovo.fcselayout-link		fe_launch
    +# application/vnd.dir-bi.plate-dl-nosuffix
    +application/vnd.dna				dna
    +application/vnd.dolby.mlp			mlp
    +# application/vnd.dolby.mobile.1
    +# application/vnd.dolby.mobile.2
    +application/vnd.dpgraph				dpg
    +application/vnd.dreamfactory			dfac
    +application/vnd.ds-keypoint			kpxx
    +application/vnd.dvb.ait				ait
    +# application/vnd.dvb.dvbj
    +# application/vnd.dvb.esgcontainer
    +# application/vnd.dvb.ipdcdftnotifaccess
    +# application/vnd.dvb.ipdcesgaccess
    +# application/vnd.dvb.ipdcesgaccess2
    +# application/vnd.dvb.ipdcesgpdd
    +# application/vnd.dvb.ipdcroaming
    +# application/vnd.dvb.iptv.alfec-base
    +# application/vnd.dvb.iptv.alfec-enhancement
    +# application/vnd.dvb.notif-aggregate-root+xml
    +# application/vnd.dvb.notif-container+xml
    +# application/vnd.dvb.notif-generic+xml
    +# application/vnd.dvb.notif-ia-msglist+xml
    +# application/vnd.dvb.notif-ia-registration-request+xml
    +# application/vnd.dvb.notif-ia-registration-response+xml
    +# application/vnd.dvb.notif-init+xml
    +# application/vnd.dvb.pfr
    +application/vnd.dvb.service			svc
    +# application/vnd.dxr
    +application/vnd.dynageo				geo
    +# application/vnd.easykaraoke.cdgdownload
    +# application/vnd.ecdis-update
    +application/vnd.ecowin.chart			mag
    +# application/vnd.ecowin.filerequest
    +# application/vnd.ecowin.fileupdate
    +# application/vnd.ecowin.series
    +# application/vnd.ecowin.seriesrequest
    +# application/vnd.ecowin.seriesupdate
    +# application/vnd.emclient.accessrequest+xml
    +application/vnd.enliven				nml
    +# application/vnd.eprints.data+xml
    +application/vnd.epson.esf			esf
    +application/vnd.epson.msf			msf
    +application/vnd.epson.quickanime		qam
    +application/vnd.epson.salt			slt
    +application/vnd.epson.ssf			ssf
    +# application/vnd.ericsson.quickcall
    +application/vnd.eszigno3+xml			es3 et3
    +# application/vnd.etsi.aoc+xml
    +# application/vnd.etsi.cug+xml
    +# application/vnd.etsi.iptvcommand+xml
    +# application/vnd.etsi.iptvdiscovery+xml
    +# application/vnd.etsi.iptvprofile+xml
    +# application/vnd.etsi.iptvsad-bc+xml
    +# application/vnd.etsi.iptvsad-cod+xml
    +# application/vnd.etsi.iptvsad-npvr+xml
    +# application/vnd.etsi.iptvservice+xml
    +# application/vnd.etsi.iptvsync+xml
    +# application/vnd.etsi.iptvueprofile+xml
    +# application/vnd.etsi.mcid+xml
    +# application/vnd.etsi.overload-control-policy-dataset+xml
    +# application/vnd.etsi.sci+xml
    +# application/vnd.etsi.simservs+xml
    +# application/vnd.etsi.tsl+xml
    +# application/vnd.etsi.tsl.der
    +# application/vnd.eudora.data
    +application/vnd.ezpix-album			ez2
    +application/vnd.ezpix-package			ez3
    +# application/vnd.f-secure.mobile
    +application/vnd.fdf				fdf
    +application/vnd.fdsn.mseed			mseed
    +application/vnd.fdsn.seed			seed dataless
    +# application/vnd.ffsns
    +# application/vnd.fints
    +application/vnd.flographit			gph
    +application/vnd.fluxtime.clip			ftc
    +# application/vnd.font-fontforge-sfd
    +application/vnd.framemaker			fm frame maker book
    +application/vnd.frogans.fnc			fnc
    +application/vnd.frogans.ltf			ltf
    +application/vnd.fsc.weblaunch			fsc
    +application/vnd.fujitsu.oasys			oas
    +application/vnd.fujitsu.oasys2			oa2
    +application/vnd.fujitsu.oasys3			oa3
    +application/vnd.fujitsu.oasysgp			fg5
    +application/vnd.fujitsu.oasysprs		bh2
    +# application/vnd.fujixerox.art-ex
    +# application/vnd.fujixerox.art4
    +# application/vnd.fujixerox.hbpl
    +application/vnd.fujixerox.ddd			ddd
    +application/vnd.fujixerox.docuworks		xdw
    +application/vnd.fujixerox.docuworks.binder	xbd
    +# application/vnd.fut-misnet
    +application/vnd.fuzzysheet			fzs
    +application/vnd.genomatix.tuxedo		txd
    +# application/vnd.geocube+xml
    +application/vnd.geogebra.file			ggb
    +application/vnd.geogebra.tool			ggt
    +application/vnd.geometry-explorer		gex gre
    +application/vnd.geonext				gxt
    +application/vnd.geoplan				g2w
    +application/vnd.geospace			g3w
    +# application/vnd.globalplatform.card-content-mgt
    +# application/vnd.globalplatform.card-content-mgt-response
    +application/vnd.gmx				gmx
    +application/vnd.google-earth.kml+xml		kml
    +application/vnd.google-earth.kmz		kmz
    +application/vnd.grafeq				gqf gqs
    +# application/vnd.gridmp
    +application/vnd.groove-account			gac
    +application/vnd.groove-help			ghf
    +application/vnd.groove-identity-message		gim
    +application/vnd.groove-injector			grv
    +application/vnd.groove-tool-message		gtm
    +application/vnd.groove-tool-template		tpl
    +application/vnd.groove-vcard			vcg
    +# application/vnd.hal+json
    +application/vnd.hal+xml				hal
    +application/vnd.handheld-entertainment+xml	zmm
    +application/vnd.hbci				hbci
    +# application/vnd.hcl-bireports
    +application/vnd.hhe.lesson-player		les
    +application/vnd.hp-hpgl				hpgl
    +application/vnd.hp-hpid				hpid
    +application/vnd.hp-hps				hps
    +application/vnd.hp-jlyt				jlt
    +application/vnd.hp-pcl				pcl
    +application/vnd.hp-pclxl			pclxl
    +# application/vnd.httphone
    +application/vnd.hydrostatix.sof-data		sfd-hdstx
    +# application/vnd.hzn-3d-crossword
    +# application/vnd.ibm.afplinedata
    +# application/vnd.ibm.electronic-media
    +application/vnd.ibm.minipay			mpy
    +application/vnd.ibm.modcap			afp listafp list3820
    +application/vnd.ibm.rights-management		irm
    +application/vnd.ibm.secure-container		sc
    +application/vnd.iccprofile			icc icm
    +application/vnd.igloader			igl
    +application/vnd.immervision-ivp			ivp
    +application/vnd.immervision-ivu			ivu
    +# application/vnd.informedcontrol.rms+xml
    +# application/vnd.informix-visionary
    +# application/vnd.infotech.project
    +# application/vnd.infotech.project+xml
    +# application/vnd.innopath.wamp.notification
    +application/vnd.insors.igm			igm
    +application/vnd.intercon.formnet		xpw xpx
    +application/vnd.intergeo			i2g
    +# application/vnd.intertrust.digibox
    +# application/vnd.intertrust.nncp
    +application/vnd.intu.qbo			qbo
    +application/vnd.intu.qfx			qfx
    +# application/vnd.iptc.g2.conceptitem+xml
    +# application/vnd.iptc.g2.knowledgeitem+xml
    +# application/vnd.iptc.g2.newsitem+xml
    +# application/vnd.iptc.g2.newsmessage+xml
    +# application/vnd.iptc.g2.packageitem+xml
    +# application/vnd.iptc.g2.planningitem+xml
    +application/vnd.ipunplugged.rcprofile		rcprofile
    +application/vnd.irepository.package+xml		irp
    +application/vnd.is-xpr				xpr
    +application/vnd.isac.fcs			fcs
    +application/vnd.jam				jam
    +# application/vnd.japannet-directory-service
    +# application/vnd.japannet-jpnstore-wakeup
    +# application/vnd.japannet-payment-wakeup
    +# application/vnd.japannet-registration
    +# application/vnd.japannet-registration-wakeup
    +# application/vnd.japannet-setstore-wakeup
    +# application/vnd.japannet-verification
    +# application/vnd.japannet-verification-wakeup
    +application/vnd.jcp.javame.midlet-rms		rms
    +application/vnd.jisp				jisp
    +application/vnd.joost.joda-archive		joda
    +application/vnd.kahootz				ktz ktr
    +application/vnd.kde.karbon			karbon
    +application/vnd.kde.kchart			chrt
    +application/vnd.kde.kformula			kfo
    +application/vnd.kde.kivio			flw
    +application/vnd.kde.kontour			kon
    +application/vnd.kde.kpresenter			kpr kpt
    +application/vnd.kde.kspread			ksp
    +application/vnd.kde.kword			kwd kwt
    +application/vnd.kenameaapp			htke
    +application/vnd.kidspiration			kia
    +application/vnd.kinar				kne knp
    +application/vnd.koan				skp skd skt skm
    +application/vnd.kodak-descriptor		sse
    +application/vnd.las.las+xml			lasxml
    +# application/vnd.liberty-request+xml
    +application/vnd.llamagraphics.life-balance.desktop	lbd
    +application/vnd.llamagraphics.life-balance.exchange+xml	lbe
    +application/vnd.lotus-1-2-3			123
    +application/vnd.lotus-approach			apr
    +application/vnd.lotus-freelance			pre
    +application/vnd.lotus-notes			nsf
    +application/vnd.lotus-organizer			org
    +application/vnd.lotus-screencam			scm
    +application/vnd.lotus-wordpro			lwp
    +application/vnd.macports.portpkg		portpkg
    +# application/vnd.marlin.drm.actiontoken+xml
    +# application/vnd.marlin.drm.conftoken+xml
    +# application/vnd.marlin.drm.license+xml
    +# application/vnd.marlin.drm.mdcf
    +application/vnd.mcd				mcd
    +application/vnd.medcalcdata			mc1
    +application/vnd.mediastation.cdkey		cdkey
    +# application/vnd.meridian-slingshot
    +application/vnd.mfer				mwf
    +application/vnd.mfmp				mfm
    +application/vnd.micrografx.flo			flo
    +application/vnd.micrografx.igx			igx
    +application/vnd.mif				mif
    +# application/vnd.minisoft-hp3000-save
    +# application/vnd.mitsubishi.misty-guard.trustweb
    +application/vnd.mobius.daf			daf
    +application/vnd.mobius.dis			dis
    +application/vnd.mobius.mbk			mbk
    +application/vnd.mobius.mqy			mqy
    +application/vnd.mobius.msl			msl
    +application/vnd.mobius.plc			plc
    +application/vnd.mobius.txf			txf
    +application/vnd.mophun.application		mpn
    +application/vnd.mophun.certificate		mpc
    +# application/vnd.motorola.flexsuite
    +# application/vnd.motorola.flexsuite.adsi
    +# application/vnd.motorola.flexsuite.fis
    +# application/vnd.motorola.flexsuite.gotap
    +# application/vnd.motorola.flexsuite.kmr
    +# application/vnd.motorola.flexsuite.ttc
    +# application/vnd.motorola.flexsuite.wem
    +# application/vnd.motorola.iprm
    +application/vnd.mozilla.xul+xml			xul
    +application/vnd.ms-artgalry			cil
    +# application/vnd.ms-asf
    +application/vnd.ms-cab-compressed		cab
    +# application/vnd.ms-color.iccprofile
    +application/vnd.ms-excel			xls xlm xla xlc xlt xlw
    +application/vnd.ms-excel.addin.macroenabled.12		xlam
    +application/vnd.ms-excel.sheet.binary.macroenabled.12	xlsb
    +application/vnd.ms-excel.sheet.macroenabled.12		xlsm
    +application/vnd.ms-excel.template.macroenabled.12	xltm
    +application/vnd.ms-fontobject			eot
    +application/vnd.ms-htmlhelp			chm
    +application/vnd.ms-ims				ims
    +application/vnd.ms-lrm				lrm
    +# application/vnd.ms-office.activex+xml
    +application/vnd.ms-officetheme			thmx
    +# application/vnd.ms-opentype
    +# application/vnd.ms-package.obfuscated-opentype
    +application/vnd.ms-pki.seccat			cat
    +application/vnd.ms-pki.stl			stl
    +# application/vnd.ms-playready.initiator+xml
    +application/vnd.ms-powerpoint			ppt pps pot
    +application/vnd.ms-powerpoint.addin.macroenabled.12		ppam
    +application/vnd.ms-powerpoint.presentation.macroenabled.12	pptm
    +application/vnd.ms-powerpoint.slide.macroenabled.12		sldm
    +application/vnd.ms-powerpoint.slideshow.macroenabled.12		ppsm
    +application/vnd.ms-powerpoint.template.macroenabled.12		potm
    +# application/vnd.ms-printing.printticket+xml
    +application/vnd.ms-project			mpp mpt
    +# application/vnd.ms-tnef
    +# application/vnd.ms-wmdrm.lic-chlg-req
    +# application/vnd.ms-wmdrm.lic-resp
    +# application/vnd.ms-wmdrm.meter-chlg-req
    +# application/vnd.ms-wmdrm.meter-resp
    +application/vnd.ms-word.document.macroenabled.12	docm
    +application/vnd.ms-word.template.macroenabled.12	dotm
    +application/vnd.ms-works			wps wks wcm wdb
    +application/vnd.ms-wpl				wpl
    +application/vnd.ms-xpsdocument			xps
    +application/vnd.mseq				mseq
    +# application/vnd.msign
    +# application/vnd.multiad.creator
    +# application/vnd.multiad.creator.cif
    +# application/vnd.music-niff
    +application/vnd.musician			mus
    +application/vnd.muvee.style			msty
    +application/vnd.mynfc				taglet
    +# application/vnd.ncd.control
    +# application/vnd.ncd.reference
    +# application/vnd.nervana
    +# application/vnd.netfpx
    +application/vnd.neurolanguage.nlu		nlu
    +application/vnd.nitf				ntf nitf
    +application/vnd.noblenet-directory		nnd
    +application/vnd.noblenet-sealer			nns
    +application/vnd.noblenet-web			nnw
    +# application/vnd.nokia.catalogs
    +# application/vnd.nokia.conml+wbxml
    +# application/vnd.nokia.conml+xml
    +# application/vnd.nokia.isds-radio-presets
    +# application/vnd.nokia.iptv.config+xml
    +# application/vnd.nokia.landmark+wbxml
    +# application/vnd.nokia.landmark+xml
    +# application/vnd.nokia.landmarkcollection+xml
    +# application/vnd.nokia.n-gage.ac+xml
    +application/vnd.nokia.n-gage.data		ngdat
    +application/vnd.nokia.n-gage.symbian.install	n-gage
    +# application/vnd.nokia.ncd
    +# application/vnd.nokia.pcd+wbxml
    +# application/vnd.nokia.pcd+xml
    +application/vnd.nokia.radio-preset		rpst
    +application/vnd.nokia.radio-presets		rpss
    +application/vnd.novadigm.edm			edm
    +application/vnd.novadigm.edx			edx
    +application/vnd.novadigm.ext			ext
    +# application/vnd.ntt-local.file-transfer
    +# application/vnd.ntt-local.sip-ta_remote
    +# application/vnd.ntt-local.sip-ta_tcp_stream
    +application/vnd.oasis.opendocument.chart		odc
    +application/vnd.oasis.opendocument.chart-template	otc
    +application/vnd.oasis.opendocument.database		odb
    +application/vnd.oasis.opendocument.formula		odf
    +application/vnd.oasis.opendocument.formula-template	odft
    +application/vnd.oasis.opendocument.graphics		odg
    +application/vnd.oasis.opendocument.graphics-template	otg
    +application/vnd.oasis.opendocument.image		odi
    +application/vnd.oasis.opendocument.image-template	oti
    +application/vnd.oasis.opendocument.presentation		odp
    +application/vnd.oasis.opendocument.presentation-template	otp
    +application/vnd.oasis.opendocument.spreadsheet		ods
    +application/vnd.oasis.opendocument.spreadsheet-template	ots
    +application/vnd.oasis.opendocument.text			odt
    +application/vnd.oasis.opendocument.text-master		odm
    +application/vnd.oasis.opendocument.text-template	ott
    +application/vnd.oasis.opendocument.text-web		oth
    +# application/vnd.obn
    +# application/vnd.oftn.l10n+json
    +# application/vnd.oipf.contentaccessdownload+xml
    +# application/vnd.oipf.contentaccessstreaming+xml
    +# application/vnd.oipf.cspg-hexbinary
    +# application/vnd.oipf.dae.svg+xml
    +# application/vnd.oipf.dae.xhtml+xml
    +# application/vnd.oipf.mippvcontrolmessage+xml
    +# application/vnd.oipf.pae.gem
    +# application/vnd.oipf.spdiscovery+xml
    +# application/vnd.oipf.spdlist+xml
    +# application/vnd.oipf.ueprofile+xml
    +# application/vnd.oipf.userprofile+xml
    +application/vnd.olpc-sugar			xo
    +# application/vnd.oma-scws-config
    +# application/vnd.oma-scws-http-request
    +# application/vnd.oma-scws-http-response
    +# application/vnd.oma.bcast.associated-procedure-parameter+xml
    +# application/vnd.oma.bcast.drm-trigger+xml
    +# application/vnd.oma.bcast.imd+xml
    +# application/vnd.oma.bcast.ltkm
    +# application/vnd.oma.bcast.notification+xml
    +# application/vnd.oma.bcast.provisioningtrigger
    +# application/vnd.oma.bcast.sgboot
    +# application/vnd.oma.bcast.sgdd+xml
    +# application/vnd.oma.bcast.sgdu
    +# application/vnd.oma.bcast.simple-symbol-container
    +# application/vnd.oma.bcast.smartcard-trigger+xml
    +# application/vnd.oma.bcast.sprov+xml
    +# application/vnd.oma.bcast.stkm
    +# application/vnd.oma.cab-address-book+xml
    +# application/vnd.oma.cab-feature-handler+xml
    +# application/vnd.oma.cab-pcc+xml
    +# application/vnd.oma.cab-user-prefs+xml
    +# application/vnd.oma.dcd
    +# application/vnd.oma.dcdc
    +application/vnd.oma.dd2+xml			dd2
    +# application/vnd.oma.drm.risd+xml
    +# application/vnd.oma.group-usage-list+xml
    +# application/vnd.oma.pal+xml
    +# application/vnd.oma.poc.detailed-progress-report+xml
    +# application/vnd.oma.poc.final-report+xml
    +# application/vnd.oma.poc.groups+xml
    +# application/vnd.oma.poc.invocation-descriptor+xml
    +# application/vnd.oma.poc.optimized-progress-report+xml
    +# application/vnd.oma.push
    +# application/vnd.oma.scidm.messages+xml
    +# application/vnd.oma.xcap-directory+xml
    +# application/vnd.omads-email+xml
    +# application/vnd.omads-file+xml
    +# application/vnd.omads-folder+xml
    +# application/vnd.omaloc-supl-init
    +application/vnd.openofficeorg.extension		oxt
    +# application/vnd.openxmlformats-officedocument.custom-properties+xml
    +# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
    +# application/vnd.openxmlformats-officedocument.drawing+xml
    +# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
    +# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
    +# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
    +# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
    +# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
    +# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
    +# application/vnd.openxmlformats-officedocument.extended-properties+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
    +application/vnd.openxmlformats-officedocument.presentationml.presentation	pptx
    +# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
    +application/vnd.openxmlformats-officedocument.presentationml.slide	sldx
    +# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
    +application/vnd.openxmlformats-officedocument.presentationml.slideshow	ppsx
    +# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
    +application/vnd.openxmlformats-officedocument.presentationml.template	potx
    +# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
    +# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
    +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet	xlsx
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
    +application/vnd.openxmlformats-officedocument.spreadsheetml.template	xltx
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
    +# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
    +# application/vnd.openxmlformats-officedocument.theme+xml
    +# application/vnd.openxmlformats-officedocument.themeoverride+xml
    +# application/vnd.openxmlformats-officedocument.vmldrawing
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
    +application/vnd.openxmlformats-officedocument.wordprocessingml.document	docx
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
    +application/vnd.openxmlformats-officedocument.wordprocessingml.template	dotx
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
    +# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
    +# application/vnd.openxmlformats-package.core-properties+xml
    +# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
    +# application/vnd.openxmlformats-package.relationships+xml
    +# application/vnd.quobject-quoxdocument
    +# application/vnd.osa.netdeploy
    +application/vnd.osgeo.mapguide.package		mgp
    +# application/vnd.osgi.bundle
    +application/vnd.osgi.dp				dp
    +application/vnd.osgi.subsystem			esa
    +# application/vnd.otps.ct-kip+xml
    +application/vnd.palm				pdb pqa oprc
    +# application/vnd.paos.xml
    +application/vnd.pawaafile			paw
    +application/vnd.pg.format			str
    +application/vnd.pg.osasli			ei6
    +# application/vnd.piaccess.application-licence
    +application/vnd.picsel				efif
    +application/vnd.pmi.widget			wg
    +# application/vnd.poc.group-advertisement+xml
    +application/vnd.pocketlearn			plf
    +application/vnd.powerbuilder6			pbd
    +# application/vnd.powerbuilder6-s
    +# application/vnd.powerbuilder7
    +# application/vnd.powerbuilder7-s
    +# application/vnd.powerbuilder75
    +# application/vnd.powerbuilder75-s
    +# application/vnd.preminet
    +application/vnd.previewsystems.box		box
    +application/vnd.proteus.magazine		mgz
    +application/vnd.publishare-delta-tree		qps
    +application/vnd.pvi.ptid1			ptid
    +# application/vnd.pwg-multiplexed
    +# application/vnd.pwg-xhtml-print+xml
    +# application/vnd.qualcomm.brew-app-res
    +application/vnd.quark.quarkxpress		qxd qxt qwd qwt qxl qxb
    +# application/vnd.radisys.moml+xml
    +# application/vnd.radisys.msml+xml
    +# application/vnd.radisys.msml-audit+xml
    +# application/vnd.radisys.msml-audit-conf+xml
    +# application/vnd.radisys.msml-audit-conn+xml
    +# application/vnd.radisys.msml-audit-dialog+xml
    +# application/vnd.radisys.msml-audit-stream+xml
    +# application/vnd.radisys.msml-conf+xml
    +# application/vnd.radisys.msml-dialog+xml
    +# application/vnd.radisys.msml-dialog-base+xml
    +# application/vnd.radisys.msml-dialog-fax-detect+xml
    +# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
    +# application/vnd.radisys.msml-dialog-group+xml
    +# application/vnd.radisys.msml-dialog-speech+xml
    +# application/vnd.radisys.msml-dialog-transform+xml
    +# application/vnd.rainstor.data
    +# application/vnd.rapid
    +application/vnd.realvnc.bed			bed
    +application/vnd.recordare.musicxml		mxl
    +application/vnd.recordare.musicxml+xml		musicxml
    +# application/vnd.renlearn.rlprint
    +application/vnd.rig.cryptonote			cryptonote
    +application/vnd.rim.cod				cod
    +application/vnd.rn-realmedia			rm
    +application/vnd.rn-realmedia-vbr		rmvb
    +application/vnd.route66.link66+xml		link66
    +# application/vnd.rs-274x
    +# application/vnd.ruckus.download
    +# application/vnd.s3sms
    +application/vnd.sailingtracker.track		st
    +# application/vnd.sbm.cid
    +# application/vnd.sbm.mid2
    +# application/vnd.scribus
    +# application/vnd.sealed.3df
    +# application/vnd.sealed.csf
    +# application/vnd.sealed.doc
    +# application/vnd.sealed.eml
    +# application/vnd.sealed.mht
    +# application/vnd.sealed.net
    +# application/vnd.sealed.ppt
    +# application/vnd.sealed.tiff
    +# application/vnd.sealed.xls
    +# application/vnd.sealedmedia.softseal.html
    +# application/vnd.sealedmedia.softseal.pdf
    +application/vnd.seemail				see
    +application/vnd.sema				sema
    +application/vnd.semd				semd
    +application/vnd.semf				semf
    +application/vnd.shana.informed.formdata		ifm
    +application/vnd.shana.informed.formtemplate	itp
    +application/vnd.shana.informed.interchange	iif
    +application/vnd.shana.informed.package		ipk
    +application/vnd.simtech-mindmapper		twd twds
    +application/vnd.smaf				mmf
    +# application/vnd.smart.notebook
    +application/vnd.smart.teacher			teacher
    +# application/vnd.software602.filler.form+xml
    +# application/vnd.software602.filler.form-xml-zip
    +application/vnd.solent.sdkm+xml			sdkm sdkd
    +application/vnd.spotfire.dxp			dxp
    +application/vnd.spotfire.sfs			sfs
    +# application/vnd.sss-cod
    +# application/vnd.sss-dtf
    +# application/vnd.sss-ntf
    +application/vnd.stardivision.calc		sdc
    +application/vnd.stardivision.draw		sda
    +application/vnd.stardivision.impress		sdd
    +application/vnd.stardivision.math		smf
    +application/vnd.stardivision.writer		sdw vor
    +application/vnd.stardivision.writer-global	sgl
    +application/vnd.stepmania.package		smzip
    +application/vnd.stepmania.stepchart		sm
    +# application/vnd.street-stream
    +application/vnd.sun.xml.calc			sxc
    +application/vnd.sun.xml.calc.template		stc
    +application/vnd.sun.xml.draw			sxd
    +application/vnd.sun.xml.draw.template		std
    +application/vnd.sun.xml.impress			sxi
    +application/vnd.sun.xml.impress.template	sti
    +application/vnd.sun.xml.math			sxm
    +application/vnd.sun.xml.writer			sxw
    +application/vnd.sun.xml.writer.global		sxg
    +application/vnd.sun.xml.writer.template		stw
    +# application/vnd.sun.wadl+xml
    +application/vnd.sus-calendar			sus susp
    +application/vnd.svd				svd
    +# application/vnd.swiftview-ics
    +application/vnd.symbian.install			sis sisx
    +application/vnd.syncml+xml			xsm
    +application/vnd.syncml.dm+wbxml			bdm
    +application/vnd.syncml.dm+xml			xdm
    +# application/vnd.syncml.dm.notification
    +# application/vnd.syncml.ds.notification
    +application/vnd.tao.intent-module-archive	tao
    +application/vnd.tcpdump.pcap			pcap cap dmp
    +application/vnd.tmobile-livetv			tmo
    +application/vnd.trid.tpt			tpt
    +application/vnd.triscape.mxs			mxs
    +application/vnd.trueapp				tra
    +# application/vnd.truedoc
    +# application/vnd.ubisoft.webplayer
    +application/vnd.ufdl				ufd ufdl
    +application/vnd.uiq.theme			utz
    +application/vnd.umajin				umj
    +application/vnd.unity				unityweb
    +application/vnd.uoml+xml			uoml
    +# application/vnd.uplanet.alert
    +# application/vnd.uplanet.alert-wbxml
    +# application/vnd.uplanet.bearer-choice
    +# application/vnd.uplanet.bearer-choice-wbxml
    +# application/vnd.uplanet.cacheop
    +# application/vnd.uplanet.cacheop-wbxml
    +# application/vnd.uplanet.channel
    +# application/vnd.uplanet.channel-wbxml
    +# application/vnd.uplanet.list
    +# application/vnd.uplanet.list-wbxml
    +# application/vnd.uplanet.listcmd
    +# application/vnd.uplanet.listcmd-wbxml
    +# application/vnd.uplanet.signal
    +application/vnd.vcx				vcx
    +# application/vnd.vd-study
    +# application/vnd.vectorworks
    +# application/vnd.verimatrix.vcas
    +# application/vnd.vidsoft.vidconference
    +application/vnd.visio				vsd vst vss vsw
    +application/vnd.visionary			vis
    +# application/vnd.vividence.scriptfile
    +application/vnd.vsf				vsf
    +# application/vnd.wap.sic
    +# application/vnd.wap.slc
    +application/vnd.wap.wbxml			wbxml
    +application/vnd.wap.wmlc			wmlc
    +application/vnd.wap.wmlscriptc			wmlsc
    +application/vnd.webturbo			wtb
    +# application/vnd.wfa.wsc
    +# application/vnd.wmc
    +# application/vnd.wmf.bootstrap
    +# application/vnd.wolfram.mathematica
    +# application/vnd.wolfram.mathematica.package
    +application/vnd.wolfram.player			nbp
    +application/vnd.wordperfect			wpd
    +application/vnd.wqd				wqd
    +# application/vnd.wrq-hp3000-labelled
    +application/vnd.wt.stf				stf
    +# application/vnd.wv.csp+wbxml
    +# application/vnd.wv.csp+xml
    +# application/vnd.wv.ssp+xml
    +application/vnd.xara				xar
    +application/vnd.xfdl				xfdl
    +# application/vnd.xfdl.webform
    +# application/vnd.xmi+xml
    +# application/vnd.xmpie.cpkg
    +# application/vnd.xmpie.dpkg
    +# application/vnd.xmpie.plan
    +# application/vnd.xmpie.ppkg
    +# application/vnd.xmpie.xlim
    +application/vnd.yamaha.hv-dic			hvd
    +application/vnd.yamaha.hv-script		hvs
    +application/vnd.yamaha.hv-voice			hvp
    +application/vnd.yamaha.openscoreformat			osf
    +application/vnd.yamaha.openscoreformat.osfpvg+xml	osfpvg
    +# application/vnd.yamaha.remote-setup
    +application/vnd.yamaha.smaf-audio		saf
    +application/vnd.yamaha.smaf-phrase		spf
    +# application/vnd.yamaha.through-ngn
    +# application/vnd.yamaha.tunnel-udpencap
    +application/vnd.yellowriver-custom-menu		cmp
    +application/vnd.zul				zir zirz
    +application/vnd.zzazz.deck+xml			zaz
    +application/voicexml+xml			vxml
    +# application/vq-rtcpxr
    +# application/watcherinfo+xml
    +# application/whoispp-query
    +# application/whoispp-response
    +application/widget				wgt
    +application/winhlp				hlp
    +# application/wita
    +# application/wordperfect5.1
    +application/wsdl+xml				wsdl
    +application/wspolicy+xml			wspolicy
    +application/x-7z-compressed			7z
    +application/x-abiword				abw
    +application/x-ace-compressed			ace
    +# application/x-amf
    +application/x-apple-diskimage			dmg
    +application/x-authorware-bin			aab x32 u32 vox
    +application/x-authorware-map			aam
    +application/x-authorware-seg			aas
    +application/x-bcpio				bcpio
    +application/x-bittorrent			torrent
    +application/x-blorb				blb blorb
    +application/x-bzip				bz
    +application/x-bzip2				bz2 boz
    +application/x-cbr				cbr cba cbt cbz cb7
    +application/x-cdlink				vcd
    +application/x-cfs-compressed			cfs
    +application/x-chat				chat
    +application/x-chess-pgn				pgn
    +application/x-conference			nsc
    +# application/x-compress
    +application/x-cpio				cpio
    +application/x-csh				csh
    +application/x-debian-package			deb udeb
    +application/x-dgc-compressed			dgc
    +application/x-director			dir dcr dxr cst cct cxt w3d fgd swa
    +application/x-doom				wad
    +application/x-dtbncx+xml			ncx
    +application/x-dtbook+xml			dtb
    +application/x-dtbresource+xml			res
    +application/x-dvi				dvi
    +application/x-envoy				evy
    +application/x-eva				eva
    +application/x-font-bdf				bdf
    +# application/x-font-dos
    +# application/x-font-framemaker
    +application/x-font-ghostscript			gsf
    +# application/x-font-libgrx
    +application/x-font-linux-psf			psf
    +application/x-font-otf				otf
    +application/x-font-pcf				pcf
    +application/x-font-snf				snf
    +# application/x-font-speedo
    +# application/x-font-sunos-news
    +application/x-font-ttf				ttf ttc
    +application/x-font-type1			pfa pfb pfm afm
    +application/x-font-woff				woff
    +# application/x-font-vfont
    +application/x-freearc				arc
    +application/x-futuresplash			spl
    +application/x-gca-compressed			gca
    +application/x-glulx				ulx
    +application/x-gnumeric				gnumeric
    +application/x-gramps-xml			gramps
    +application/x-gtar				gtar
    +# application/x-gzip
    +application/x-hdf				hdf
    +application/x-install-instructions		install
    +application/x-iso9660-image			iso
    +application/x-java-jnlp-file			jnlp
    +application/x-latex				latex
    +application/x-lzh-compressed			lzh lha
    +application/x-mie				mie
    +application/x-mobipocket-ebook			prc mobi
    +application/x-ms-application			application
    +application/x-ms-shortcut			lnk
    +application/x-ms-wmd				wmd
    +application/x-ms-wmz				wmz
    +application/x-ms-xbap				xbap
    +application/x-msaccess				mdb
    +application/x-msbinder				obd
    +application/x-mscardfile			crd
    +application/x-msclip				clp
    +application/x-msdownload			exe dll com bat msi
    +application/x-msmediaview			mvb m13 m14
    +application/x-msmetafile			wmf wmz emf emz
    +application/x-msmoney				mny
    +application/x-mspublisher			pub
    +application/x-msschedule			scd
    +application/x-msterminal			trm
    +application/x-mswrite				wri
    +application/x-netcdf				nc cdf
    +application/x-nzb				nzb
    +application/x-pkcs12				p12 pfx
    +application/x-pkcs7-certificates		p7b spc
    +application/x-pkcs7-certreqresp			p7r
    +application/x-rar-compressed			rar
    +application/x-research-info-systems		ris
    +application/x-sh				sh
    +application/x-shar				shar
    +application/x-shockwave-flash			swf
    +application/x-silverlight-app			xap
    +application/x-sql				sql
    +application/x-stuffit				sit
    +application/x-stuffitx				sitx
    +application/x-subrip				srt
    +application/x-sv4cpio				sv4cpio
    +application/x-sv4crc				sv4crc
    +application/x-t3vm-image			t3
    +application/x-tads				gam
    +application/x-tar				tar
    +application/x-tcl				tcl
    +application/x-tex				tex
    +application/x-tex-tfm				tfm
    +application/x-texinfo				texinfo texi
    +application/x-tgif				obj
    +application/x-ustar				ustar
    +application/x-wais-source			src
    +application/x-x509-ca-cert			der crt
    +application/x-xfig				fig
    +application/x-xliff+xml				xlf
    +application/x-xpinstall				xpi
    +application/x-xz				xz
    +application/x-zmachine				z1 z2 z3 z4 z5 z6 z7 z8
    +# application/x400-bp
    +application/xaml+xml				xaml
    +# application/xcap-att+xml
    +# application/xcap-caps+xml
    +application/xcap-diff+xml			xdf
    +# application/xcap-el+xml
    +# application/xcap-error+xml
    +# application/xcap-ns+xml
    +# application/xcon-conference-info-diff+xml
    +# application/xcon-conference-info+xml
    +application/xenc+xml				xenc
    +application/xhtml+xml				xhtml xht
    +# application/xhtml-voice+xml
    +application/xml					xml xsl
    +application/xml-dtd				dtd
    +# application/xml-external-parsed-entity
    +# application/xmpp+xml
    +application/xop+xml				xop
    +application/xproc+xml				xpl
    +application/xslt+xml				xslt
    +application/xspf+xml				xspf
    +application/xv+xml				mxml xhvml xvml xvm
    +application/yang				yang
    +application/yin+xml				yin
    +application/zip					zip
    +# audio/1d-interleaved-parityfec
    +# audio/32kadpcm
    +# audio/3gpp
    +# audio/3gpp2
    +# audio/ac3
    +audio/adpcm					adp
    +# audio/amr
    +# audio/amr-wb
    +# audio/amr-wb+
    +# audio/asc
    +# audio/atrac-advanced-lossless
    +# audio/atrac-x
    +# audio/atrac3
    +audio/basic					au snd
    +# audio/bv16
    +# audio/bv32
    +# audio/clearmode
    +# audio/cn
    +# audio/dat12
    +# audio/dls
    +# audio/dsr-es201108
    +# audio/dsr-es202050
    +# audio/dsr-es202211
    +# audio/dsr-es202212
    +# audio/dv
    +# audio/dvi4
    +# audio/eac3
    +# audio/evrc
    +# audio/evrc-qcp
    +# audio/evrc0
    +# audio/evrc1
    +# audio/evrcb
    +# audio/evrcb0
    +# audio/evrcb1
    +# audio/evrcwb
    +# audio/evrcwb0
    +# audio/evrcwb1
    +# audio/example
    +# audio/fwdred
    +# audio/g719
    +# audio/g722
    +# audio/g7221
    +# audio/g723
    +# audio/g726-16
    +# audio/g726-24
    +# audio/g726-32
    +# audio/g726-40
    +# audio/g728
    +# audio/g729
    +# audio/g7291
    +# audio/g729d
    +# audio/g729e
    +# audio/gsm
    +# audio/gsm-efr
    +# audio/gsm-hr-08
    +# audio/ilbc
    +# audio/ip-mr_v2.5
    +# audio/isac
    +# audio/l16
    +# audio/l20
    +# audio/l24
    +# audio/l8
    +# audio/lpc
    +audio/midi					mid midi kar rmi
    +# audio/mobile-xmf
    +audio/mp4					m4a mp4a
    +# audio/mp4a-latm
    +# audio/mpa
    +# audio/mpa-robust
    +audio/mpeg					mpga mp2 mp2a mp3 m2a m3a
    +# audio/mpeg4-generic
    +# audio/musepack
    +audio/ogg					oga ogg spx
    +# audio/opus
    +# audio/parityfec
    +# audio/pcma
    +# audio/pcma-wb
    +# audio/pcmu-wb
    +# audio/pcmu
    +# audio/prs.sid
    +# audio/qcelp
    +# audio/red
    +# audio/rtp-enc-aescm128
    +# audio/rtp-midi
    +# audio/rtx
    +audio/s3m					s3m
    +audio/silk					sil
    +# audio/smv
    +# audio/smv0
    +# audio/smv-qcp
    +# audio/sp-midi
    +# audio/speex
    +# audio/t140c
    +# audio/t38
    +# audio/telephone-event
    +# audio/tone
    +# audio/uemclip
    +# audio/ulpfec
    +# audio/vdvi
    +# audio/vmr-wb
    +# audio/vnd.3gpp.iufp
    +# audio/vnd.4sb
    +# audio/vnd.audiokoz
    +# audio/vnd.celp
    +# audio/vnd.cisco.nse
    +# audio/vnd.cmles.radio-events
    +# audio/vnd.cns.anp1
    +# audio/vnd.cns.inf1
    +audio/vnd.dece.audio				uva uvva
    +audio/vnd.digital-winds				eol
    +# audio/vnd.dlna.adts
    +# audio/vnd.dolby.heaac.1
    +# audio/vnd.dolby.heaac.2
    +# audio/vnd.dolby.mlp
    +# audio/vnd.dolby.mps
    +# audio/vnd.dolby.pl2
    +# audio/vnd.dolby.pl2x
    +# audio/vnd.dolby.pl2z
    +# audio/vnd.dolby.pulse.1
    +audio/vnd.dra					dra
    +audio/vnd.dts					dts
    +audio/vnd.dts.hd				dtshd
    +# audio/vnd.dvb.file
    +# audio/vnd.everad.plj
    +# audio/vnd.hns.audio
    +audio/vnd.lucent.voice				lvp
    +audio/vnd.ms-playready.media.pya		pya
    +# audio/vnd.nokia.mobile-xmf
    +# audio/vnd.nortel.vbk
    +audio/vnd.nuera.ecelp4800			ecelp4800
    +audio/vnd.nuera.ecelp7470			ecelp7470
    +audio/vnd.nuera.ecelp9600			ecelp9600
    +# audio/vnd.octel.sbc
    +# audio/vnd.qcelp
    +# audio/vnd.rhetorex.32kadpcm
    +audio/vnd.rip					rip
    +# audio/vnd.sealedmedia.softseal.mpeg
    +# audio/vnd.vmx.cvsd
    +# audio/vorbis
    +# audio/vorbis-config
    +audio/webm					weba
    +audio/x-aac					aac
    +audio/x-aiff					aif aiff aifc
    +audio/x-caf					caf
    +audio/x-flac					flac
    +audio/x-matroska				mka
    +audio/x-mpegurl					m3u
    +audio/x-ms-wax					wax
    +audio/x-ms-wma					wma
    +audio/x-pn-realaudio				ram ra
    +audio/x-pn-realaudio-plugin			rmp
    +# audio/x-tta
    +audio/x-wav					wav
    +audio/xm					xm
    +chemical/x-cdx					cdx
    +chemical/x-cif					cif
    +chemical/x-cmdf					cmdf
    +chemical/x-cml					cml
    +chemical/x-csml					csml
    +# chemical/x-pdb
    +chemical/x-xyz					xyz
    +image/bmp					bmp
    +image/cgm					cgm
    +# image/example
    +# image/fits
    +image/g3fax					g3
    +image/gif					gif
    +image/ief					ief
    +# image/jp2
    +image/jpeg					jpeg jpg jpe
    +# image/jpm
    +# image/jpx
    +image/ktx					ktx
    +# image/naplps
    +image/png					png
    +image/prs.btif					btif
    +# image/prs.pti
    +image/sgi					sgi
    +image/svg+xml					svg svgz
    +# image/t38
    +image/tiff					tiff tif
    +# image/tiff-fx
    +image/vnd.adobe.photoshop			psd
    +# image/vnd.cns.inf2
    +image/vnd.dece.graphic				uvi uvvi uvg uvvg
    +image/vnd.dvb.subtitle				sub
    +image/vnd.djvu					djvu djv
    +image/vnd.dwg					dwg
    +image/vnd.dxf					dxf
    +image/vnd.fastbidsheet				fbs
    +image/vnd.fpx					fpx
    +image/vnd.fst					fst
    +image/vnd.fujixerox.edmics-mmr			mmr
    +image/vnd.fujixerox.edmics-rlc			rlc
    +# image/vnd.globalgraphics.pgb
    +# image/vnd.microsoft.icon
    +# image/vnd.mix
    +image/vnd.ms-modi				mdi
    +image/vnd.ms-photo				wdp
    +image/vnd.net-fpx				npx
    +# image/vnd.radiance
    +# image/vnd.sealed.png
    +# image/vnd.sealedmedia.softseal.gif
    +# image/vnd.sealedmedia.softseal.jpg
    +# image/vnd.svf
    +image/vnd.wap.wbmp				wbmp
    +image/vnd.xiff					xif
    +image/webp					webp
    +image/x-3ds					3ds
    +image/x-cmu-raster				ras
    +image/x-cmx					cmx
    +image/x-freehand				fh fhc fh4 fh5 fh7
    +image/x-icon					ico
    +image/x-mrsid-image				sid
    +image/x-pcx					pcx
    +image/x-pict					pic pct
    +image/x-portable-anymap				pnm
    +image/x-portable-bitmap				pbm
    +image/x-portable-graymap			pgm
    +image/x-portable-pixmap				ppm
    +image/x-rgb					rgb
    +image/x-tga					tga
    +image/x-xbitmap					xbm
    +image/x-xpixmap					xpm
    +image/x-xwindowdump				xwd
    +# message/cpim
    +# message/delivery-status
    +# message/disposition-notification
    +# message/example
    +# message/external-body
    +# message/feedback-report
    +# message/global
    +# message/global-delivery-status
    +# message/global-disposition-notification
    +# message/global-headers
    +# message/http
    +# message/imdn+xml
    +# message/news
    +# message/partial
    +message/rfc822					eml mime
    +# message/s-http
    +# message/sip
    +# message/sipfrag
    +# message/tracking-status
    +# message/vnd.si.simp
    +# model/example
    +model/iges					igs iges
    +model/mesh					msh mesh silo
    +model/vnd.collada+xml				dae
    +model/vnd.dwf					dwf
    +# model/vnd.flatland.3dml
    +model/vnd.gdl					gdl
    +# model/vnd.gs-gdl
    +# model/vnd.gs.gdl
    +model/vnd.gtw					gtw
    +# model/vnd.moml+xml
    +model/vnd.mts					mts
    +# model/vnd.parasolid.transmit.binary
    +# model/vnd.parasolid.transmit.text
    +model/vnd.vtu					vtu
    +model/vrml					wrl vrml
    +model/x3d+binary				x3db x3dbz
    +model/x3d+vrml					x3dv x3dvz
    +model/x3d+xml					x3d x3dz
    +# multipart/alternative
    +# multipart/appledouble
    +# multipart/byteranges
    +# multipart/digest
    +# multipart/encrypted
    +# multipart/example
    +# multipart/form-data
    +# multipart/header-set
    +# multipart/mixed
    +# multipart/parallel
    +# multipart/related
    +# multipart/report
    +# multipart/signed
    +# multipart/voice-message
    +# text/1d-interleaved-parityfec
    +text/cache-manifest				appcache
    +text/calendar					ics ifb
    +text/css					css
    +text/csv					csv
    +# text/directory
    +# text/dns
    +# text/ecmascript
    +# text/enriched
    +# text/example
    +# text/fwdred
    +text/html					html htm
    +# text/javascript
    +text/n3						n3
    +# text/parityfec
    +text/plain					txt text conf def list log in
    +# text/prs.fallenstein.rst
    +text/prs.lines.tag				dsc
    +# text/vnd.radisys.msml-basic-layout
    +# text/red
    +# text/rfc822-headers
    +text/richtext					rtx
    +# text/rtf
    +# text/rtp-enc-aescm128
    +# text/rtx
    +text/sgml					sgml sgm
    +# text/t140
    +text/tab-separated-values			tsv
    +text/troff					t tr roff man me ms
    +text/turtle					ttl
    +# text/ulpfec
    +text/uri-list					uri uris urls
    +text/vcard					vcard
    +# text/vnd.abc
    +text/vnd.curl					curl
    +text/vnd.curl.dcurl				dcurl
    +text/vnd.curl.scurl				scurl
    +text/vnd.curl.mcurl				mcurl
    +# text/vnd.dmclientscript
    +text/vnd.dvb.subtitle				sub
    +# text/vnd.esmertec.theme-descriptor
    +text/vnd.fly					fly
    +text/vnd.fmi.flexstor				flx
    +text/vnd.graphviz				gv
    +text/vnd.in3d.3dml				3dml
    +text/vnd.in3d.spot				spot
    +# text/vnd.iptc.newsml
    +# text/vnd.iptc.nitf
    +# text/vnd.latex-z
    +# text/vnd.motorola.reflex
    +# text/vnd.ms-mediapackage
    +# text/vnd.net2phone.commcenter.command
    +# text/vnd.si.uricatalogue
    +text/vnd.sun.j2me.app-descriptor		jad
    +# text/vnd.trolltech.linguist
    +# text/vnd.wap.si
    +# text/vnd.wap.sl
    +text/vnd.wap.wml				wml
    +text/vnd.wap.wmlscript				wmls
    +text/x-asm					s asm
    +text/x-c					c cc cxx cpp h hh dic
    +text/x-fortran					f for f77 f90
    +text/x-java-source				java
    +text/x-opml					opml
    +text/x-pascal					p pas
    +text/x-nfo					nfo
    +text/x-setext					etx
    +text/x-sfv					sfv
    +text/x-uuencode					uu
    +text/x-vcalendar				vcs
    +text/x-vcard					vcf
    +# text/xml
    +# text/xml-external-parsed-entity
    +# video/1d-interleaved-parityfec
    +video/3gpp					3gp
    +# video/3gpp-tt
    +video/3gpp2					3g2
    +# video/bmpeg
    +# video/bt656
    +# video/celb
    +# video/dv
    +# video/example
    +video/h261					h261
    +video/h263					h263
    +# video/h263-1998
    +# video/h263-2000
    +video/h264					h264
    +# video/h264-rcdo
    +# video/h264-svc
    +video/jpeg					jpgv
    +# video/jpeg2000
    +video/jpm					jpm jpgm
    +video/mj2					mj2 mjp2
    +# video/mp1s
    +# video/mp2p
    +# video/mp2t
    +video/mp4					mp4 mp4v mpg4
    +# video/mp4v-es
    +video/mpeg					mpeg mpg mpe m1v m2v
    +# video/mpeg4-generic
    +# video/mpv
    +# video/nv
    +video/ogg					ogv
    +# video/parityfec
    +# video/pointer
    +video/quicktime					qt mov
    +# video/raw
    +# video/rtp-enc-aescm128
    +# video/rtx
    +# video/smpte292m
    +# video/ulpfec
    +# video/vc1
    +# video/vnd.cctv
    +video/vnd.dece.hd				uvh uvvh
    +video/vnd.dece.mobile				uvm uvvm
    +# video/vnd.dece.mp4
    +video/vnd.dece.pd				uvp uvvp
    +video/vnd.dece.sd				uvs uvvs
    +video/vnd.dece.video				uvv uvvv
    +# video/vnd.directv.mpeg
    +# video/vnd.directv.mpeg-tts
    +# video/vnd.dlna.mpeg-tts
    +video/vnd.dvb.file				dvb
    +video/vnd.fvt					fvt
    +# video/vnd.hns.video
    +# video/vnd.iptvforum.1dparityfec-1010
    +# video/vnd.iptvforum.1dparityfec-2005
    +# video/vnd.iptvforum.2dparityfec-1010
    +# video/vnd.iptvforum.2dparityfec-2005
    +# video/vnd.iptvforum.ttsavc
    +# video/vnd.iptvforum.ttsmpeg2
    +# video/vnd.motorola.video
    +# video/vnd.motorola.videop
    +video/vnd.mpegurl				mxu m4u
    +video/vnd.ms-playready.media.pyv		pyv
    +# video/vnd.nokia.interleaved-multimedia
    +# video/vnd.nokia.videovoip
    +# video/vnd.objectvideo
    +# video/vnd.sealed.mpeg1
    +# video/vnd.sealed.mpeg4
    +# video/vnd.sealed.swf
    +# video/vnd.sealedmedia.softseal.mov
    +video/vnd.uvvu.mp4				uvu uvvu
    +video/vnd.vivo					viv
    +video/webm					webm
    +video/x-f4v					f4v
    +video/x-fli					fli
    +video/x-flv					flv
    +video/x-m4v					m4v
    +video/x-matroska				mkv mk3d mks
    +video/x-mng					mng
    +video/x-ms-asf					asf asx
    +video/x-ms-vob					vob
    +video/x-ms-wm					wm
    +video/x-ms-wmv					wmv
    +video/x-ms-wmx					wmx
    +video/x-ms-wvx					wvx
    +video/x-msvideo					avi
    +video/x-sgi-movie				movie
    +video/x-smv					smv
    +x-conference/x-cooltalk				ice
    diff --git a/docs/docroot/apache_pb.gif b/docs/docroot/apache_pb.gif
    deleted file mode 100644
    index 3a1c139fc42..00000000000
    Binary files a/docs/docroot/apache_pb.gif and /dev/null differ
    diff --git a/docs/docroot/apache_pb.png b/docs/docroot/apache_pb.png
    deleted file mode 100644
    index eb99a8cd393..00000000000
    Binary files a/docs/docroot/apache_pb.png and /dev/null differ
    diff --git a/docs/docroot/apache_pb2.gif b/docs/docroot/apache_pb2.gif
    deleted file mode 100644
    index 4e67c7113c5..00000000000
    Binary files a/docs/docroot/apache_pb2.gif and /dev/null differ
    diff --git a/docs/docroot/apache_pb2.png b/docs/docroot/apache_pb2.png
    deleted file mode 100644
    index 28baa70fb8c..00000000000
    Binary files a/docs/docroot/apache_pb2.png and /dev/null differ
    diff --git a/docs/docroot/apache_pb2_ani.gif b/docs/docroot/apache_pb2_ani.gif
    deleted file mode 100644
    index fc41c03610c..00000000000
    Binary files a/docs/docroot/apache_pb2_ani.gif and /dev/null differ
    diff --git a/docs/error/HTTP_BAD_GATEWAY.html.var b/docs/error/HTTP_BAD_GATEWAY.html.var
    index ae15f34f334..5fbb5c1f117 100644
    --- a/docs/error/HTTP_BAD_GATEWAY.html.var
    +++ b/docs/error/HTTP_BAD_GATEWAY.html.var
    @@ -53,20 +53,21 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Puerta de enlace errónea!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Puerta de enlace errónea!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	El servidor origen recibió información 
    -	inválida por parte del servidor destino.
    +    El servidor 'proxy' recibió información
    +    inválida del servidor solicitante.
    +
    +   <!--#if expr="$REDIRECT_ERROR_NOTES" -->
    +
    +      <!--#include virtual="include/spacer.html" -->
    +      <!--#echo var="REDIRECT_ERROR_NOTES" -->
    +
    +   <!--#endif -->
     
    -  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
    -    <!--#include virtual="include/spacer.html" -->
    -    <!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    -  <!--#endif -->
    -    
     <!--#include virtual="include/bottom.html" -->
     ----------es--
     
    @@ -88,6 +89,24 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->   
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="CONTENT_LANGUAGE" value="ga"
    +--><!--#set var="TITLE" value="Geata míceart!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Fuair an seachfhreastalaí freagairt neamhbhailí
    +    ó freastalaí thuasthrutha.
    +
    +  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
    +    <!--#include virtual="include/spacer.html" -->
    +    <!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -160,6 +179,24 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Ugyldig Gateway!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Proxyserveren mottok et ugyldig svar fra
    +    en oppstrøms server.
    +
    +  <!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
    +    <!--#include virtual="include/spacer.html" -->
    +    <!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->   
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -197,6 +234,23 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Gateway inválida!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O servidor de <i>proxy</i> recebeu uma resposta
    +	inválida de um outro servidor externo a ele.
    +
    +  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
    +    <!--#include virtual="include/spacer.html" -->
    +    <!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_BAD_REQUEST.html.var b/docs/error/HTTP_BAD_REQUEST.html.var
    index ca7768ece4a..35aa90e7fc9 100644
    --- a/docs/error/HTTP_BAD_REQUEST.html.var
    +++ b/docs/error/HTTP_BAD_REQUEST.html.var
    @@ -38,14 +38,13 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Solicitud errónea!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Solicitud errónea!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	El navegador ha solicitado una operación
    -	que no puede ser procesada por el servidor.
    +    Su buscador (o 'proxy') envió una solicitud
    +   que el servidor no pudo entender.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -63,6 +62,19 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->  
     ----------fr--
     
    +Content-language: ga 
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Iarratas mícheart!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Seol do chuid brabhsálaí (nó
    +    seachfhreastalaí) freagairt nárbh fhéidir leis an
    +    fhreastalaí seo a thuisceant.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -117,6 +129,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Ugyldig spørring!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Din nettleser eller proxy sendte en forespørsel
    +    som denne serveren ikke kunne forstå.
    +
    +<!--#include virtual="include/bottom.html" -->  
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -144,6 +169,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Pedido incorrecto!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O seu <i>browser</i> ou <i>proxy</i> enviou
    +	um pedido que este servidor não compreendeu.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_FORBIDDEN.html.var b/docs/error/HTTP_FORBIDDEN.html.var
    index 744f8c69f1a..a3381efb47f 100644
    --- a/docs/error/HTTP_FORBIDDEN.html.var
    +++ b/docs/error/HTTP_FORBIDDEN.html.var
    @@ -67,24 +67,22 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Acceso prohibido!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Acceso prohibido!" -->
    +<!--#include virtual="include/top.html" -->
     
    -  <!--#if expr="$REDIRECT_URL = /\/$/" -->
    +   <!--#if expr="$REDIRECT_URL = /\/$/" -->
     
    -    Usted no tiene permiso para accesar a la dirección
    -    solicitada. Existe la posibilidad de que el directorio
    -    este protegido contra lectura o que no exista la
    -    documentación requerida.
    +      Usted no tiene permiso para accesar al directorio solicitado.
    +      No existe un documento índice, o el directorio está
    +      protegido contra lectura.
     
       <!--#else -->
     
    -    Usted no tiene permiso de accesar al objeto solicitado.
    -    Existe la posibilidad de que este protegido contra
    -    lectura o que no haya podido ser leido por el servidor.
    +      Usted no tiene permiso de accesar al objeto solicitado.
    +      El objeto está protegido contra lectura, o no
    +      puede ser leido por el servidor.
     
       <!--#endif -->
     
    @@ -115,6 +113,29 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Rochtain neamh-cheadaithe!"
    +--><!--#include virtual="include/top.html" -->
    +
    +  <!--#if expr="$REDIRECT_URL = /\/$/" -->
    +
    +    Níl cead agat rochtain a dhéanamh ar an comhadlann faoi
    +    iarratais.  Is féidir nach bhfuil aon doiciméad
    +    innéacs, nó go bhfuil cosaint ar lémh an comhadlann.
    +
    +  <!--#else -->
    +
    +    Níl cead agat rochtain a dhéanamh ar an aidhm faoi iarratais.
    +    Is féidir go bhfuil cosaint ar lé air, nó go bhfuil
    +    sé doléite don freastalaí.
    +    
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -207,6 +228,30 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Adgang forbudt!"
    +--><!--#include virtual="include/top.html" -->
    +
    +  <!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
    +
    +    Du har ikke tilstrekkelige rettigheter for å få tilgang til den
    +    ønskede katalogen. Det eksisterer ikke et indeksdokument, eller
    +    katalogen er lesebeskyttet.
    +
    +  <!--#else -->
    +
    +    Du har ikke tilstrekkelige rettigheter for å få adgang til det
    +    ønskede dokumentet. Objektet er lesebeskyttet, eller ikke lesbart
    +    for serveren.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -246,7 +291,7 @@ Body:-------pt-br--
     
       <!--#else -->
     
    -   Você não tem premissão para acessar o 
    +   Você não tem permissão para acessar o 
        objeto requisitado. Ele pode estar protegido contra leitura ou 
        não ser legível pelo servidor.
     
    @@ -255,6 +300,29 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Acesso proibido!"
    +--><!--#include virtual="include/top.html" -->
    +
    +  <!--#if expr="$REDIRECT_URL = /\/$/" -->
    +
    +	Não tem permissão para aceder ao directório
    +	que deseja. Ou não existe o documento de índice
    +	ou o directório está protegido contra leitura.
    +
    +  <!--#else -->
    +
    +	Não tem permissão para aceder ao objecto
    +	que deseja. Este está protegido contra leitura ou
    +	o servidor não o consegue ler.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_GONE.html.var b/docs/error/HTTP_GONE.html.var
    index 295263e852f..7d6101f8cbe 100644
    --- a/docs/error/HTTP_GONE.html.var
    +++ b/docs/error/HTTP_GONE.html.var
    @@ -78,25 +78,24 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Recurso no disponible!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="El recurso ya no está disponible!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	Los recursos solicitados ya no están disponibles en
    -	este servidor y no existe una dirección alternativa.
    +    El URL solicitado actualmente no esta disponible en este servidor y
    +   no existe una dirección a la cual referirlo.
     
    -  <!--#if expr="$HTTP_REFERER" -->
    +   <!--#if expr="$HTTP_REFERER" -->
     
    -	Le solicitamos que comunique al autor de la 
    -	<a href="<!--#echo encoding="url" var="HTTP_REFERER"
    -        -->">página referente</a> que el enlace está obsoleto.
    +    Por favor comunique al autor de la
    +    <a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">página
    +    que lo refirió</a> que el URL es obsoleto.
     
       <!--#else -->
    -	
    -	Si usted siguió el enlace desde una página externa, 
    -	por favor contacte con el autor de esa página.
    +
    +    Si usted siguió el URL desde una página externa,
    +    por favor contacte al autor de esa página.
     
       <!--#endif -->
     
    @@ -111,13 +110,13 @@ Body:----------fr--
     --><!--#include virtual="include/top.html" -->
     
         L'URL demandée n'est plus accessible sur ce serveur et il
    -    n'y a pas d'adresse de suite. 
    +    n'y a pas d'adresse de redirection. 
     
       <!--#if expr="$HTTP_REFERER" --> 
     
         Nous vous prions d'informer l'auteur de
         <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">la 
    -    page en question</a> que la référence n'est plus actuelle.
    +    page en question</a> que la référence n'est plus valable.
     
       <!--#else --> 
     
    @@ -129,6 +128,31 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Acmhainn imithe!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Níl an URL iarraithe ar fáil ar an fhreastalaí seo 
    +    a thuilleadh, agus níl aon seoladh nua ann dó.
    +
    +  <!--#if expr="$HTTP_REFERER" -->
    +
    +    Cur in úil do úadar an
    +    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">leathanach
    +    thagarthach</a> go bhfuil an nasc as-dáta, le do thoil.
    +
    +  <!--#else -->
    +
    +    Má leanfá nasc ó leathanach iasachta, téigh i
    +    dteaghmháil le úadar an leathanach sin, le do thoil.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -235,6 +259,32 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Ressursen er ikke lenger tilgjengelig!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Den ønskede adressen er ikke lenger tilgjengelig hos denne
    +    serveren og det finnes ingen adresse for videresending.
    +
    +  <!--#if expr="-n v('HTTP_REFERER')" -->
    +
    +    Venligst informer forfatteren bak 
    +    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">den
    +    aktuelle siden</a> om at lenken er utdatert.
    + 
    +  <!--#else -->
    +
    +    Om du fulgte en lenke fra en ekstern side, venligst kontakt
    +    forfatteren bak den siden.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -289,6 +339,32 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Recurso não disponível!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O URL desejado já não está disponível
    +	neste servidor e não existe endereço alternativo.
    +
    +  <!--#if expr="$HTTP_REFERER" -->
    +
    +	Por favor informe o autor da
    +	<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">página
    +	originária</a> que a hiperligação está
    +	desactualizada.
    +
    +  <!--#else -->
    +
    +	Se chegou aqui a partir de uma hiperligação externa,
    +	por favor contacte o autor dessa página.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_INTERNAL_SERVER_ERROR.html.var b/docs/error/HTTP_INTERNAL_SERVER_ERROR.html.var
    index ba7e8686e02..cd54cf3e700 100644
    --- a/docs/error/HTTP_INTERNAL_SERVER_ERROR.html.var
    +++ b/docs/error/HTTP_INTERNAL_SERVER_ERROR.html.var
    @@ -84,29 +84,24 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Error en el servidor!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Error del Servidor!" -->
    +<!--#include virtual="include/top.html" -->
     
    -  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
    +    Se produjo un error interno en el servidor y le
    +   fue imposible completar su solicitud.
     
    -	El servidor encontro un error interno y fue
    -	imposible completar su solicitud. 
    +   <!--#if expr="$REDIRECT_ERROR_NOTES" -->
     
    -    <!--#include virtual="include/spacer.html" -->
    +      <!--#include virtual="include/spacer.html" -->
    +      Mensaje de error:<br />
    +      <!--#echo var="REDIRECT_ERROR_NOTES" -->
     
    -    Mensaje de error:
    -    <br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    -
    -  <!--#else -->
    +   <!--#else -->
     
    -	El servidor encontro un error interno y fue
    -	imposible completar su solicitud. 
    -	Existe tambien la posibilidad de que el servidor 
    -	este sobrecargado o de algún error en un 
    -	programa de CGI.
    +    El servidor puede estar sobrecargado, o hubo un
    +    error en la ejecución de un programa 'CGI'.
     
       <!--#endif -->
     
    @@ -122,7 +117,7 @@ Body:----------fr--
     
       <!--#if expr="$REDIRECT_ERROR_NOTES" -->
     
    -    Le serveur a èté victime d'une erreur interne et n'a pas
    +    Le serveur a été victime d'une erreur interne et n'a pas
         été capable de faire aboutir votre requête.
     
         <!--#include virtual="include/spacer.html" -->
    @@ -132,7 +127,7 @@ Body:----------fr--
     
       <!--#else -->
     
    -    Le serveur a èté victime d'une erreur interne et n'a pas
    +    Le serveur a été victime d'une erreur interne et n'a pas
         été capable de faire aboutir votre requête.
         Soit le server est surchargé soit il s'agit d'une erreur dans
         le script CGI.
    @@ -142,6 +137,35 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->   
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Earráid fhreastalaí!"
    +--><!--#include virtual="include/top.html" -->
    +
    +  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
    +
    +    Thit an freastalaí ar earráid inmheánach
    +    agus theip air do chuid iarratais a comhlíonadh.
    +
    +    <!--#include virtual="include/spacer.html" -->
    +
    +    Teachtaireacht earráide:
    +    <br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    +
    +  <!--#else -->
    +
    +    Thit an freastalaí ar earráid inmheánach
    +    agus theip air do chuid iarratais a comhlíonadh.
    +    Is féidir go bhfuil an freastalaí 
    +    rólóaidithe, nó go raibh earráid 
    +    i script CGI éigin.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -253,6 +277,34 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Serverfeil!"
    +--><!--#include virtual="include/top.html" -->
    +
    +  <!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
    + 
    +    Det inntraff en intern feil hos serveren, og det var ikke mulig å
    +    gjennomføre din forespørsel.
    +
    +    <!--#include virtual="include/spacer.html" -->
    +
    +    Feilmelding:
    +    <br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    +
    +  <!--#else -->
    +
    +    Det inntraff en intern feil hos serveren, og det var ikke mulig å
    +    gjennomføre din forespørsel. Serveren er enten overbelastet, eller
    +    CGI-skriptet inneholder feil.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -311,6 +363,33 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Erro interno do servidor!"
    +--><!--#include virtual="include/top.html" -->
    +
    +  <!--#if expr="$REDIRECT_ERROR_NOTES" -->
    +
    +	O servidor encontrou um erro interno e não pode completar
    +	o seu pedido.
    +
    +    <!--#include virtual="include/spacer.html" -->
    +
    +    Mensagem de erro:
    +    <br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
    +
    +  <!--#else -->
    +
    +	O servidor encontrou um erro interno e não pode completar
    +	o seu pedido. Ou o servidor está sobrecarregado, ou ocorreu
    +	um erro num <i>script</i> CGI.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_LENGTH_REQUIRED.html.var b/docs/error/HTTP_LENGTH_REQUIRED.html.var
    index 642e413674e..4be1634259e 100644
    --- a/docs/error/HTTP_LENGTH_REQUIRED.html.var
    +++ b/docs/error/HTTP_LENGTH_REQUIRED.html.var
    @@ -40,14 +40,15 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Content-Length erróneo!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Error en la longitud del contenido!" -->
    +<!--#include virtual="include/top.html" -->
     
    -    Una solicitud con el método <!--#echo var="REDIRECT_REQUEST_METHOD" --> 
    -    necesita una cabecera <code>Content-Length</code> válida.
    +    Una solicitud con el método <!--#echo encoding="none"
    +var="REDIRECT_REQUEST_METHOD"-->
    +    requiere que el contenido de la variable de los encabezados
    +    <code>Content-Length</code> sea válida.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -60,12 +61,27 @@ Body:----------fr--
     --><!--#include virtual="include/top.html" -->
     
         Une requête utilisant la méthode <!--#echo
    -    var="REDIRECT_REQUEST_METHOD" --> nécessite un header valable
    -    <code>Content-Length</code> (indiquant la longueur).
    +    var="REDIRECT_REQUEST_METHOD" --> nécessite un en-tête
    +    <code>Content-Length</code> (indiquant la longueur) valable.
     
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Content-Length mícheart!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Is gá go mbhéadh ceanntáisc 
    +    <code>Content-Length</code>
    +    bhailí do iarratais faoin modh 
    +    <!--#echo var="REDIRECT_REQUEST_METHOD" -->.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -123,6 +139,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Feil Content-Length!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    En forespørsel med <!--#echo var="REDIRECT_REQUEST_METHOD" -->
    +    metoden krever en korrekt <code>Content-Length</code> header.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -151,6 +180,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Content-Length incorrecto!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	Um pedido com o método <!--#echo var="REDIRECT_REQUEST_METHOD" -->
    +	necessita de um cabeçalho <code>Content-Length</code> válido.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_METHOD_NOT_ALLOWED.html.var b/docs/error/HTTP_METHOD_NOT_ALLOWED.html.var
    index 63d6d21e73b..a1a98c06d8b 100644
    --- a/docs/error/HTTP_METHOD_NOT_ALLOWED.html.var
    +++ b/docs/error/HTTP_METHOD_NOT_ALLOWED.html.var
    @@ -37,17 +37,16 @@ Body:----------en--
     <!--#include virtual="include/bottom.html" -->
     ----------en--
     
    +
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Método no permitido!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Método no permitido!" -->
    +<!--#include virtual="include/top.html" -->
    +
    +    El método <!--#echo encoding="none" var="REDIRECT_REQUEST_METHOD"-->
    +    no está permitido para el URL solicitado.
     
    -	El <!--#echo var="REDIRECT_REQUEST_METHOD" -->
    -	método utilizado por su solicitud no está 
    -	permitido por el enlace.
    -    
     <!--#include virtual="include/bottom.html" -->
     ----------es--
     
    @@ -59,11 +58,24 @@ Body:----------fr--
     --><!--#include virtual="include/top.html" -->
     
         La méthode <!--#echo var="REDIRECT_REQUEST_METHOD" -->
    -    n'est pas utilisable pour l'URL requise.
    +    n'est pas utilisable pour l'URL demandée.
     
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Modh neamhcheadaithe!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Níl cead an modh 
    +    <!--#echo var="REDIRECT_REQUEST_METHOD" -->
    +    a úasáid leis an URL iarraithe.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -118,6 +130,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Metoden er ikke tillatt!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    <!--#echo var="REDIRECT_REQUEST_METHOD" --> metoden er ikke
    +    tillatt for den forespurte adressen.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -145,6 +170,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Método não permitido!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O método <!--#echo var="REDIRECT_REQUEST_METHOD" --> não
    +	é permitido para o URL pedido.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_NOT_FOUND.html.var b/docs/error/HTTP_NOT_FOUND.html.var
    index 5102c9377ec..41c61a666a0 100644
    --- a/docs/error/HTTP_NOT_FOUND.html.var
    +++ b/docs/error/HTTP_NOT_FOUND.html.var
    @@ -81,28 +81,25 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Objeto no encontrado!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Objecto no localizado!" -->
    +<!--#include virtual="include/top.html" -->
     
    -    El enlace requerido no ha sido localizado en
    -    este servidor.
    +    El URL solicitado no ha sido localizado en este servidor.
     
       <!--#if expr="$HTTP_REFERER" -->
     
    -    El enlace en la
    -    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">página
    -    referente</a> parece tener algun error o ha expirado. Por favor
    -    comunique al autor de
    -    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">la
    -    página</a> el error.
    +    El URL de la <a href="<!--#echo encoding="url" 
    +    var="HTTP_REFERER"-->">página que lo refirió</a> 
    +    parece ser equivocado u obsoleto. Por favor comunique al autor 
    +    de <a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">esa
    +    página</a> acerca del error.
     
       <!--#else -->
     
    -    Si usted proporcionó el enlace de manera manual le solicitamos
    -    que por favor revise los datos e intentelo de nuevo.
    +    Si usted tecleó el URL manualmente, por favor revise su
    +    ortografía y vuélvalo a intentar.
     
       <!--#endif -->
     
    @@ -116,7 +113,7 @@ Body:----------fr--
     --><!--#set var="TITLE" value="Objet non trouvé!"
     --><!--#include virtual="include/top.html" -->
     
    -    L'URL requise n'a pu etre trouvée sur ce serveur.
    +    L'URL demandée n'a pas pu être trouvée sur ce serveur.
     
       <!--#if expr="$HTTP_REFERER" -->
     
    @@ -138,6 +135,34 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga 
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Aidhm ar iarraidh!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Níor aimsigh an URL iarraithe ar an fhreastalaí seo.
    +
    +  <!--#if expr="$HTTP_REFERER" -->
    +
    +    Is cosúil go bhfuil an nasc ar an
    +    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">leathanach
    +    thagarthach</a> mícheart nó as dáta. 
    +    Cur in iúl d'úadar 
    +    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->"
    +    >an leathanach sin</a> go bhfuil earráid ann, le do thoil.
    +
    +  <!--#else -->
    +
    +    Má chuir tú isteach an URL tú féin, deimhnigh
    +    go bhfuil sé litrithe i gceart agat, agus déan iarracht eile
    +    le do thoil.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -245,6 +270,33 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Objektet ble ikke funnet!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Den etterspurte adressen finnes ikke på denne serveren.
    +
    +  <!--#if expr="-n v('HTTP_REFERER')" -->
    +
    +    Lenken på den
    +    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">forrige siden</a> 
    +ser ut til å være feil eller utdatert. Venligst informer forfatteren av
    +    <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">siden</a>
    +    om feilen.
    +
    +  <!--#else -->
    +
    +    Om du skrev inn adressen manuelt, vennligst kontroller stavingen og
    +    forsøk igjen.
    +
    +  <!--#endif -->
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -298,6 +350,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Método não permitido!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O método <!--#echo var="REDIRECT_REQUEST_METHOD" --> não
    +	é permitido para o URL pedido.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_NOT_IMPLEMENTED.html.var b/docs/error/HTTP_NOT_IMPLEMENTED.html.var
    index fa92d01ef3e..9aa1e9891c5 100644
    --- a/docs/error/HTTP_NOT_IMPLEMENTED.html.var
    +++ b/docs/error/HTTP_NOT_IMPLEMENTED.html.var
    @@ -36,15 +36,14 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Solicitud no procesada!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="La solicitud no puede ser procesada!" -->
    +<!--#include virtual="include/top.html" -->
    +
    +    El servidor no tiene implementada la acción
    +    solicitada por el buscador.
     
    -	El navegador está solicitando una acción 
    -	que no puede ser procesada.
    -    
     <!--#include virtual="include/bottom.html" -->
     ----------es--
     
    @@ -56,11 +55,23 @@ Body:----------fr--
     --><!--#include virtual="include/top.html" -->
     
         Le serveur n'est pas en mesure d'effectuer l'action
    -    requise par le navigateur. 
    +    demandée par le navigateur. 
     
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Iarratais dophróiseáilte!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Níl tacaíocht ag an fhreastalaí don gníomh
    +    atá á iarraidh ag an mbrabhsálaí.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -111,6 +122,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Kan ikke behandle forspørsel!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Serveren støtter ikke den handlingen som ønskes utført av
    +    nettleseren.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -137,6 +161,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Não posso processar o pedido!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O servidor não suporta a acção pedida pelo
    +	<i>browser</i>.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    @@ -166,7 +202,7 @@ Content-language: sv
     Content-type: text/html; charset=ISO-8859-1
     Body:----------sv--
     <!--#set var="CONTENT_LANGUAGE" value="sv"
    ---><!--#set var="TITLE" value="Kan ej utföra förfrågan!"
    +--><!--#set var="TITLE" value="Kan ikke utf!"
     --><!--#include virtual="include/top.html" -->
     
         Servern stödjer inte den handling som önskades
    diff --git a/docs/error/HTTP_PRECONDITION_FAILED.html.var b/docs/error/HTTP_PRECONDITION_FAILED.html.var
    index 5d1d6e8e072..214d56153d1 100644
    --- a/docs/error/HTTP_PRECONDITION_FAILED.html.var
    +++ b/docs/error/HTTP_PRECONDITION_FAILED.html.var
    @@ -37,14 +37,13 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Precondición errónea!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Falló en la pre-condicióon!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	La precondición para que exista una 
    -	conexión a la dirección solicitada es falsa.
    +   La pre-condición de la solicitud para el
    +   URL no se evaluó positivamente.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -56,12 +55,24 @@ Body:----------fr--
     --><!--#set var="TITLE" value="Précondition négative!"
     --><!--#include virtual="include/top.html" -->
     
    -    La précondition pour l'URL requise a été
    +    La précondition pour l'URL demandé a été
         évaluée négativement.
     
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Theip ar réamhchoinníoll!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Theip meastóireacht an réamhchoinníoll 
    +    don iarratais den URL.
    +    
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -113,6 +124,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Nødvendig forutsetning ikke oppfyllt!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Den nødvendige forutsetningen for forespørselen passerte ikke
    +    vurderingen med positivt resultat.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -139,6 +163,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Pré-condição falhou!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	A condição necessária ao pedido do URL
    +	foi avaliada com resultado negativo.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var b/docs/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
    index b21a1ccf946..f5acd7f5507 100644
    --- a/docs/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
    +++ b/docs/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
    @@ -41,16 +41,15 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Entidad solicitada demasiado larga!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="La entidad solicitada es demasiado grande!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	Los recursos establecidos no permiten peticiones con
    -	el <!--#echo var="REDIRECT_REQUEST_METHOD" --> método 
    -	suministrado por su solicitud, o, la cantidad de datos 
    -	provistos exceden los límites de capacidad.
    +   El método <!--#echo encoding="none" var="REDIRECT_REQUEST_METHOD"-->
    +   no permite transmitir la información, o el
    +   volumen de la información excede los límites
    +   de capacidad del mismo.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -69,6 +68,19 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->               
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Iarratais ar aonán rómhór!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Ní ligeann an modh <!--#echo var="REDIRECT_REQUEST_METHOD" --> an
    +    tarchur sonraíocht tríd, nó tá an méid
    +    sonraíocht breis ar an teoireann cumas.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -126,6 +138,20 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="For stor enhet i forspørsel!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    <!--#echo var="REDIRECT_REQUEST_METHOD" --> metoden tillater ikke
    +    de sendte data eller så overskrider datamengenden
    +    kapasitetsbegrensningen.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -155,6 +181,19 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Volume de dados demasiado grande!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O método <!--#echo var="REDIRECT_REQUEST_METHOD" -->
    +	não permite todos os dados que foram transmitidos,
    +	ou o volume de dados excede o limite da capacidade.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_REQUEST_TIME_OUT.html.var b/docs/error/HTTP_REQUEST_TIME_OUT.html.var
    index 61311e2c800..adb91f76d59 100644
    --- a/docs/error/HTTP_REQUEST_TIME_OUT.html.var
    +++ b/docs/error/HTTP_REQUEST_TIME_OUT.html.var
    @@ -38,17 +38,17 @@ Body:----------en--
     <!--#include virtual="include/bottom.html" --> 
     ----------en--
     
    +
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡La solicitud ha excedido el tiempo de espera permitido!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Tiempo de espera excedido!" -->
    +<!--#include virtual="include/top.html" -->
    +
    +    El servidor cerró la conección de red
    +    debido a que el buscador no termino la solicitud
    +    dentro del tiempo permitido.
     
    -	El servidor ha cerrado la conexión de red 
    -	debido a que el navegador no terminó la solicitud
    -	dentro del tiempo especificado.
    -    
     <!--#include virtual="include/bottom.html" -->
     ----------es--
     
    @@ -65,6 +65,19 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Am don iarratais istigh!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Dún an freastalaí an nasc líonra, 
    +    mar níor chríochnaidh an brabhsálaí
    +    leis an iarratais, taobh istigh den am sonraithe.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -120,6 +133,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Tidsgrense overskredet!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Serveren stengte forbindelsen fordi nettleseren ikke avsluttet
    +    forespørselen innen tidsgrensen.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -148,6 +174,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Tempo excedido!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O servidor interrompeu a ligação de rede porque o
    +	<i>browser</i> não terminou o pedido dentro do tempo limite.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_REQUEST_URI_TOO_LARGE.html.var b/docs/error/HTTP_REQUEST_URI_TOO_LARGE.html.var
    index ad451707598..d1db3f85026 100644
    --- a/docs/error/HTTP_REQUEST_URI_TOO_LARGE.html.var
    +++ b/docs/error/HTTP_REQUEST_URI_TOO_LARGE.html.var
    @@ -39,16 +39,14 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Dirección suministrada demasiado larga!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="El URI enviado es demasiado largo!" -->
    +<!--#include virtual="include/top.html" -->
    +
    +   La longitud del URL solicitado excede el límite de
    +   capacidad para este servidor. La solicitud no puede ser procesada.
     
    -	Su solicitud no puede procesarse debido a que la
    -	longitud del enlace excede la capacidad límite del 
    -	servidor. 
    -    
     <!--#include virtual="include/bottom.html" -->
     ----------es--
     
    @@ -66,6 +64,19 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="URI rómhór cuirthe isteach!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Tá faid an URL iarraithe breis ar an teorainn cumas don 
    +    freastalaí seo. Ní féidir an iarratas a
    +    phróiseáil.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -120,6 +131,20 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Forespurt URI for stor!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Lengden på adressen som etterspurtes overskrider
    +    kapasitetsgrensen for denne serveren. Forespørselen kan
    +    ikke prosesseres.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -148,6 +173,18 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="URI demasiado grande!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O tamanho do URL pedido excede o limite da capacidade deste
    +	servidor. O pedido não pode ser processado.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_SERVICE_UNAVAILABLE.html.var b/docs/error/HTTP_SERVICE_UNAVAILABLE.html.var
    index f2e4d7ef6bf..e1128bf2fd1 100644
    --- a/docs/error/HTTP_SERVICE_UNAVAILABLE.html.var
    +++ b/docs/error/HTTP_SERVICE_UNAVAILABLE.html.var
    @@ -42,18 +42,15 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Servicio no disponible!"
    ---><!--#include virtual="include/top.html" -->
    -
    -	El servidor no puede atender su solicitud por
    -	el momento debido a problemas de mantenimiento
    -	o de capacidad.
    +<!--#set var="TITLE" value="Servicio no disponible!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	Le solicitamos que por favor repita la operación
    -	más tarde.
    +   Por el momento el servidor no puede atender su solicitud
    +   debido a que está en mantenimiento o a que tiene
    +   problemas de capacidad. Por favor intente nuevamente
    +   más tarde.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -73,6 +70,19 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Seirbhís doúsáidte!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Níl an freastalaí seo in ann do chuid 
    +    iarratais a líonadh ag an am seo, toisc 
    +    cóthábháil nó fhaidhbeanna cumas.
    +    Déan iarracht eile níos déanaí, le do thoil.
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -131,6 +141,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Tjenesten er ikke tilgjengelig!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Serveren er midlertidig ikke i stand til å utføre din
    +    forespørsel. Vennligst prøv igjen senere.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -160,6 +183,20 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Serviço indisponível!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O servidor está temporáriamente incapaz de servir
    +	o seu pedido devido a uma interrupção para
    +	manutenção ou problemas de capacidade. Por favor
    +	tente de novo mais tarde.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_UNAUTHORIZED.html.var b/docs/error/HTTP_UNAUTHORIZED.html.var
    index 57fd572eae5..4015b80e44f 100644
    --- a/docs/error/HTTP_UNAUTHORIZED.html.var
    +++ b/docs/error/HTTP_UNAUTHORIZED.html.var
    @@ -61,24 +61,22 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Autentificación requerida!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="Autentificación requerida!" -->
    +<!--#include virtual="include/top.html" -->
     
    -    El servidor no puede certificar que usted este autorizado
    -    para acceder al enlace "<!--#echo encoding="url" var="REDIRECT_URL" -->".
    -    Usted pudo suministrar información errónea accidentalmente
    -    (ejem. una contraseña inválida) o, el navegador no sabe 
    +    El servidor no puede certificar que usted esté autorizado
    +    para accesar el URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
    +    Pudo haber suministrado información incorrecta (ej.
    +    contraseña inválida) o, el buscador no sabe
         como suministrar la información requerida.
     
       <!--#include virtual="include/spacer.html" -->
     
    -    En caso de que a usted le este permitido el uso del
    -    documento requerido, le solicitamos de la manera más atenta
    -    que por favor vuelva a intentar la operación suministrando
    -    nuevamente su identificador y su contraseña.
    +    En caso de que a usted le este permitido accesar el documento,
    +    verifique su nombre de usuario y contraseña y vuélvalo
    +    a intentar.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -100,13 +98,37 @@ Body:----------fr--
     
       <!--#include virtual="include/spacer.html" -->
     
    -    Si vous êtez autorisé à requérir le document,
    +    Si vous êtes autorisé à requérir le document,
         veuillez vérifier votre nom d'utilisateur et votre mot de passe
         et réessayer.
     
     <!--#include virtual="include/bottom.html" -->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Is gá fíordheimhniú!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Níorbh fhéidir leis an freastalaí a dheimhniú
    +    go bhfuil an údaráis agat rochtain a dheanamh ar an URL
    +    "<!--#echo encoding="url" var="REDIRECT_URL" -->".  Is féidir go
    +    soláthair tú faisnéis mícheart (m.s.,
    +    pasfhocail mícheart), nó nach dtuigeann do chuid
    +    brabhsálaí conas an faisnéis is gá a
    +    soláthair i gceart.
    +
    +  <!--#include virtual="include/spacer.html" -->
    +
    +    Más é gur ceart go mbhéadh cead agat iarratais a
    +    dheanamh don doiciméid, deimhnigh go bhfuil do chuid ainm
    +    úsáideora agus pasfhocal i gceart, agus dean iarracht eile,
    +    le do thoil.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -190,6 +212,27 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Autentisering kreves!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Serveren kunne ikke verifisere at du har tillatelse til å besøke
    +    adressen "<!--#echo encoding="url" var="REDIRECT_URL" -->".  Enten
    +    oppga du feil opplysninger (f.eks. feil passord) eller så støtter
    +    ikke din nettleser dette autentiseringsystemet.
    +
    +  <!--#include virtual="include/spacer.html" -->
    +
    +    Om du har tillatelse til å besøke siden, vennligst kontroler ditt
    +    brukernavn og passord og forsøk igjen.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -231,6 +274,26 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Autenticação exigida!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	Este servidor não conseguiu validar a sua autoridade para aceder
    +	ao URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
    +	Ou forneceu as credenciais erradas (e.g.: senha incorrecta)
    +	ou o seu <i>browser</i> não sabe como fornecer as credenciais
    +	necessárias.
    +
    +  <!--#include virtual="include/spacer.html" -->
    +
    +	Caso lhe seja permitido aceder ao documento, por favor verifique o
    +	seu nome de utilizador e senha e tente de novo.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var b/docs/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
    index 57715769c0f..9fc40da0bfd 100644
    --- a/docs/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
    +++ b/docs/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
    @@ -36,14 +36,13 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Tipo de datos no soportados!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="El tipo de medio no está implementado!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	Los datos de su solicitud no se encuentran en
    -	un formato aceptado por este recurso.
    +   El servidor no tiene implementado el tipo
    +   de medio transmitido en la solicitud.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -61,6 +60,18 @@ Body:----------fr--
     <!--#include virtual="include/bottom.html"-->
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Cineáil meán gan tachaíocht!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Ní tachaíonn an fhreastalaí an cineáil
    +    meán a sheoladh san iarratais.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -112,6 +123,18 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Mediatypen støttes ikke!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Serveren støtter ikke den mediatypen som ble forespurt.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -138,6 +161,17 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Media não suportado!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	O servidor não suporta o <i>media type</i> transmitido no pedido.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/HTTP_VARIANT_ALSO_VARIES.html.var b/docs/error/HTTP_VARIANT_ALSO_VARIES.html.var
    index efb7d3e6d39..7fc27c1d2ee 100644
    --- a/docs/error/HTTP_VARIANT_ALSO_VARIES.html.var
    +++ b/docs/error/HTTP_VARIANT_ALSO_VARIES.html.var
    @@ -39,15 +39,14 @@ Body:----------en--
     ----------en--
     
     Content-language: es
    -Content-type: text/html; charset=ISO-8859-1
    +Content-type: text/html
     Body:----------es--
    -<!--#set var="CONTENT_LANGUAGE" value="es"
    ---><!--#set var="TITLE" value="¡Variante negociable!"
    ---><!--#include virtual="include/top.html" -->
    +<!--#set var="TITLE" value="La variante también varia!" -->
    +<!--#include virtual="include/top.html" -->
     
    -	No es posible tener acceso debido a que
    -	una variante de la solicitud es por si 
    -	misma un recurso negociable.
    +   Una variante de la entidad solicitada es por si misma
    +   un recurso negociable.
    +   No es posible tener acceso a la entidad.
     
     <!--#include virtual="include/bottom.html" -->
     ----------es--
    @@ -59,13 +58,27 @@ Body:----------fr--
     --><!--#set var="TITLE" value="La variante varie elle-même!"
     --><!--#include virtual="include/top.html" -->
     
    -    Une variante pour l'entité requise
    +    Une variante pour l'entité demandée
         est elle-même une ressource négociable.
         L'accès est impossible.
     
     <!--#include virtual="include/bottom.html" -->  
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +<!--#set var="TITLE" value="Athraitheach intráchta!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    Is é ceann de na athraithaí 
    +    don aonán iarraithe acmhainn 
    +    intráchta féin.
    +    Rochtain dodhéanta.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -123,6 +136,19 @@ Body:----------nl--
     <!--#include virtual="include/bottom.html" -->
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +<!--#set var="CONTENT_LANGUAGE" value="nb"
    +--><!--#set var="TITLE" value="Variant varierer også!"
    +--><!--#include virtual="include/top.html" -->
    +
    +    En variant av den forespurte enheten er i seg selv en forhandelbar
    +    ressurs. Tilgang ikke mulig.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    @@ -151,6 +177,19 @@ Body:-------pt-br--
     <!--#include virtual="include/bottom.html" -->
     -------pt-br--
     
    +Content-language: pt
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------pt--
    +<!--#set var="TITLE" value="Variante também varia!"
    +--><!--#include virtual="include/top.html" -->
    +
    +	A variante relativa à entidade pedida é ela mesma
    +	um recurso negociável. Não é possível
    +	ter acesso.
    +
    +<!--#include virtual="include/bottom.html" -->
    +----------pt--
    +
     Content-language: ro
     Content-type: text/html; charset=ISO-8859-1
     Body:----------ro--
    diff --git a/docs/error/README b/docs/error/README
    index c4f3f791d51..e330a06a88a 100644
    --- a/docs/error/README
    +++ b/docs/error/README
    @@ -23,15 +23,15 @@
       | German (de)           | Lars Eilebrecht                          |
       | Italian (it)          | Luigi Rosa                               |
       | Korean (ko)           | Jaeho Shin                               |
    +  | Norwegian Bokmål (nb) | Tom Fredrik Klaussen                     |
       | Polish (pl)           | Tomasz Kepczynski                        |
       | Romanian (ro)         | Andrei Besleaga                          |
       | Serbian (sr)          | Nikola Smolenski                         |
       | Spanish (es)          | Karla Quintero                           |
       | Swedish (sv)          | Thomas Sjögren                           |
       | Turkish (tr)          | Emre Sokullu                             |
    +  | Irish (ga)            | Noirin Plunkett                          |
       +-----------------------+------------------------------------------+
       (Please see http://httpd.apache.org/docs-project/ if you would
        like to contribute the pages in an additional language.)
     
    -
    - Copyright (c) 2001-2005 The Apache Software Foundation. All rights reserved.
    diff --git a/docs/error/contact.html.var b/docs/error/contact.html.var
    index 4d29ceedcfe..20289263c5d 100644
    --- a/docs/error/contact.html.var
    +++ b/docs/error/contact.html.var
    @@ -33,9 +33,18 @@ Content-language: fr
     Content-type: text/html; charset=ISO-8859-1
     Body:----------fr--
     Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le 
    -<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">gestionnaire du site</a>.
    +<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmestre</a>.
     ----------fr--
     
    +Content-language: ga
    +Content-type: text/html; charset=ISO-8859-1
    +Body:----------ga--
    +Má cheapann tú gur earráid fhreastalaí í seo,
    +téigh i dteagmháil leis an 
    +<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">
    +stiúrthóir gréasáin</a>, le do thoil.
    +----------ga--
    +
     Content-language: it
     Content-type: text/html; charset=ISO-8859-1
     Body:----------it--
    @@ -65,6 +74,13 @@ Indien u van oordeel bent dat deze server in fout is, gelieve
     de <a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmaster</a> te contacteren.
     ----------nl--
     
    +Content-language: nb
    +Content-type: text/html; charset=UTF-8
    +Body:----------nb--
    +Om du tror dette skyldes en serverfeil, venligst kontakt
    +<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webansvarlig</a>.
    +----------nb--
    +
     Content-language: pl
     Content-type: text/html; charset=ISO-8859-2
     Body:----------pl--
    diff --git a/docs/icons/README b/docs/icons/README
    index 66523b609a4..48250d598d4 100644
    --- a/docs/icons/README
    +++ b/docs/icons/README
    @@ -3,12 +3,11 @@ Public Domain Icons
          These icons were originally made for Mosaic for X and have been
          included in the NCSA httpd and Apache server distributions in the
          past. They are in the public domain and may be freely included in any
    -     application. The originals were done by Kevin Hughes 
    -     (kevinh@kevcom.com).
    +     application. The originals were done by Kevin Hughes (kevinh@kevcom.com).
    +     Andy Polyakov tuned the icon colors and added a few new images.
     
    -     Many thanks to Andy Polyakov for tuning the icon colors and adding a
    -     few new images. If you'd like to contribute additions or ideas to
    -     this set, please let me know.
    +     If you'd like to contribute additions to this set, contact the httpd
    +     documentation project <http://httpd.apache.org/docs-project/>.
     
          Almost all of these icons are 20x22 pixels in size.  There are
          alternative icons in the "small" directory that are 16x16 in size,
    @@ -58,7 +57,7 @@ Please feel free to tweak and rename the icons as you like.
          c.gif
               This might represent C source code.
     
    -     comp.blue.gif, comp.red.gif
    +     comp.blue.gif, comp.gray.gif
               These little computer icons can stand for telnet or FTP
               sessions.
     
    @@ -72,6 +71,12 @@ Please feel free to tweak and rename the icons as you like.
               These can be used to scroll up, down, left and right in a
               listing or may be used to denote items in an outline.
     
    +     dir.gif
    +          Identical to folder.gif below.
    +
    +     diskimg.gif
    +          This can represent floppy disk storage.
    +
          dvi.gif
               This can represent DVI files.
     
    @@ -121,8 +126,8 @@ Please feel free to tweak and rename the icons as you like.
          portal.gif
               This might be a link to an online service or a 3D world.
     
    -     ps.gif, quill.gif
    -          These may represent PostScript files.
    +     pdf.gif, ps.gif, quill.gif
    +          These may represent PDF and PostScript files.
     
          screw1.gif, screw2.gif
               These may represent CAD or engineering data and formats.
    @@ -139,6 +144,9 @@ Please feel free to tweak and rename the icons as you like.
               These can represent 3D worlds or rendering applications and
               formats.
     
    +     tar.gif
    +          This can represent TAR archive files.
    +
          tex.gif
               This can represent TeX files.
     
    @@ -151,7 +159,7 @@ Please feel free to tweak and rename the icons as you like.
          unknown.gif
               This may represent a file of an unknown type.
     
    -     uuencoded.gif
    +     uu.gif, uuencoded.gif
               This can stand for uuencoded data.
     
          world1.gif, world2.gif
    diff --git a/docs/icons/README.html b/docs/icons/README.html
    new file mode 100644
    index 00000000000..a8b82b99be9
    --- /dev/null
    +++ b/docs/icons/README.html
    @@ -0,0 +1,815 @@
    +<html>
    +<head>
    +<style>
    +a { text-decoration: none; }
    +img.whiteico { padding: 4px; background: white; vertical-align: middle; }
    +img.blackico { padding: 4px; background: black; vertical-align: middle; }
    +</style>
    +</head>
    +<body>
    +<h1>Public Domain Icons</h1>
    +
    +<p>These icons were originally made for Mosaic for X and have been
    +included in the NCSA httpd and Apache server distributions in the
    +past. They are in the public domain and may be freely included in any
    +application. The originals were done by Kevin Hughes (kevinh@kevcom.com).
    +Andy Polyakov tuned the icon colors and added few new images.</p>
    +
    +<p>If you'd like to contribute additions to this set, contact the httpd
    +documentation project <a href="http://httpd.apache.org/docs-project/"
    +>http://httpd.apache.org/docs-project/</a>.</p>
    +
    +<p>Almost all of these icons are 20x22 pixels in size.  There are
    +alternative icons in the "small" directory that are 16x16 in size,
    +provided by Mike Brown (mike@hyperreal.org).</p>
    +
    +<h2>Suggested Uses</h2>
    +
    +<p>The following are a few suggestions, to serve as a starting point for ideas.
    +Please feel free to tweak and rename the icons as you like.</p>
    +
    +<table>
    +<tr>
    +<td width="25%">
    + <a href="a.gif"><img class="blackico" src="a.gif" 
    +   /><img class="whiteico" src="a.gif" /> a.gif</a>
    + <br /><a href="a.png"><img class="blackico" src="a.png" 
    +   /><img class="whiteico" src="a.png" /> a.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might be used to represent PostScript or text layout
    +languages.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="alert.black.gif"><img class="blackico" src="alert.black.gif" 
    +   /><img class="whiteico" src="alert.black.gif" /> alert.black.gif</a>
    + <br /><a href="alert.black.png"><img class="blackico" src="alert.black.png" 
    +   /><img class="whiteico" src="alert.black.png" /> alert.black.png</a></td>
    +<td width="25%">
    + <a href="alert.red.gif"><img class="blackico" src="alert.red.gif" 
    +   /><img class="whiteico" src="alert.red.gif" /> alert.red.gif</a>
    + <br /><a href="alert.red.png"><img class="blackico" src="alert.red.png" 
    +   /><img class="whiteico" src="alert.red.png" /> alert.red.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can be used to highlight any important items,
    +such as a README file in a directory.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="back.gif"><img class="blackico" src="back.gif" 
    +   /><img class="whiteico" src="back.gif" /> back.gif</a>
    + <br /><a href="back.png"><img class="blackico" src="back.png" 
    +   /><img class="whiteico" src="back.png" /> back.png</a></td>
    +<td width="25%">
    + <a href="forward.gif"><img class="blackico" src="forward.gif" 
    +   /><img class="whiteico" src="forward.gif" /> forward.gif</a>
    + <br /><a href="forward.png"><img class="blackico" src="forward.png" 
    +   /><img class="whiteico" src="forward.png" /> forward.png</a></td>
    +<td width="25%">
    + <a href="small/back.gif"><img class="blackico" src="small/back.gif" 
    +   /><img class="whiteico" src="small/back.gif" /> small.gif</a>
    + <br /><a href="small/back.png"><img class="blackico" src="small/back.png" 
    +   /><img class="whiteico" src="small/back.png" /> small/back.png</a></td>
    +<td width="25%">
    + <a href="small/forward.gif"><img class="blackico" src="small/forward.gif" 
    +   /><img class="whiteico" src="small/forward.gif" /> small/forward.gif</a>
    + <br /><a href="small/forward.png"><img class="blackico" src="small/forward.png" 
    +   /><img class="whiteico" src="small/forward.png" /> small/forward.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can be used as links to go to previous and next
    +areas.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="ball.gray.gif"><img class="blackico" src="ball.gray.gif" 
    +   /><img class="whiteico" src="ball.gray.gif" /> ball.gray.gif</a>
    + <br /><a href="ball.gray.png"><img class="blackico" src="ball.gray.png" 
    +   /><img class="whiteico" src="ball.gray.png" /> ball.gray.png</a></td>
    +<td width="25%">
    + <a href="ball.red.gif"><img class="blackico" src="ball.red.gif" 
    +   /><img class="whiteico" src="ball.red.gif" /> ball.red.gif</a>
    + <br /><a href="ball.red.png"><img class="blackico" src="ball.red.png" 
    +   /><img class="whiteico" src="ball.red.png" /> ball.red.png</a></td>
    +</tr>
    +<tr><td colspan="4">These might be used as bullets.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="binary.gif"><img class="blackico" src="binary.gif" 
    +   /><img class="whiteico" src="binary.gif" /> binary.gif</a>
    + <br /><a href="binary.png"><img class="blackico" src="binary.png" 
    +   /><img class="whiteico" src="binary.png" /> binary.png</a></td>
    +<td width="25%">
    + <a href="small/binary.gif"><img class="blackico" src="small/binary.gif" 
    +   /><img class="whiteico" src="small/binary.gif" /> small/binary.gif</a>
    + <br /><a href="small/binary.png"><img class="blackico" src="small/binary.png" 
    +   /><img class="whiteico" src="small/binary.png" /> small/binary.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can be used to represent binary files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="binhex.gif"><img class="blackico" src="binhex.gif" 
    +   /><img class="whiteico" src="binhex.gif" /> binhex.gif</a>
    + <br /><a href="binhex.png"><img class="blackico" src="binhex.png" 
    +   /><img class="whiteico" src="binhex.png" /> binhex.png</a></td>
    +<td width="25%">
    + <a href="small/binhex.gif"><img class="blackico" src="small/binhex.gif" 
    +   /><img class="whiteico" src="small/binhex.gif" /> small/binhex.gif</a>
    + <br /><a href="small/binhex.png"><img class="blackico" src="small/binhex.png" 
    +   /><img class="whiteico" src="small/binhex.png" /> small/binhex.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent BinHex-encoded data.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="blank.gif"><img class="blackico" src="blank.gif" 
    +   /><img class="whiteico" src="blank.gif" /> blank.gif</a>
    + <br /><a href="blank.png"><img class="blackico" src="blank.png" 
    +   /><img class="whiteico" src="blank.png" /> blank.png</a></td>
    +<td width="25%">
    + <a href="small/blank.gif"><img class="blackico" src="small/blank.gif" 
    +   /><img class="whiteico" src="small/blank.gif" /> small/blank.gif</a>
    + <br /><a href="small/blank.png"><img class="blackico" src="small/blank.png" 
    +   /><img class="whiteico" src="small/blank.png" /> small/blank.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can be used as a placeholder or a spacing
    +element.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="bomb.gif"><img class="blackico" src="bomb.gif" 
    +   /><img class="whiteico" src="bomb.gif" /> bomb.gif</a>
    + <br /><a href="bomb.png"><img class="blackico" src="bomb.png" 
    +   /><img class="whiteico" src="bomb.png" /> bomb.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can be used to represent core files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="box1.gif"><img class="blackico" src="box1.gif" 
    +   /><img class="whiteico" src="box1.gif" /> box1.gif</a>
    + <br /><a href="box1.png"><img class="blackico" src="box1.png" 
    +   /><img class="whiteico" src="box1.png" /> box1.png</a></td>
    +<td width="25%">
    + <a href="box2.gif"><img class="blackico" src="box2.gif" 
    +   /><img class="whiteico" src="box2.gif" /> box2.gif</a>
    + <br /><a href="box2.png"><img class="blackico" src="box2.png" 
    +   /><img class="whiteico" src="box2.png" /> box2.png</a></td>
    +</tr>
    +<tr><td colspan="4">These icons can be used to represent generic 3D
    +applications and related files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="broken.gif"><img class="blackico" src="broken.gif" 
    +   /><img class="whiteico" src="broken.gif" /> broken.gif</a>
    + <br /><a href="broken.png"><img class="blackico" src="broken.png" 
    +   /><img class="whiteico" src="broken.png" /> broken.png</a></td>
    +<td width="25%">
    + <a href="small/broken.gif"><img class="blackico" src="small/broken.gif" 
    +   /><img class="whiteico" src="small/broken.gif" /> small/broken.gif</a>
    + <br /><a href="small/broken.png"><img class="blackico" src="small/broken.png" 
    +   /><img class="whiteico" src="small/broken.png" /> small/broken.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent corrupted data.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="burst.gif"><img class="blackico" src="burst.gif" 
    +   /><img class="whiteico" src="burst.gif" /> burst.gif</a>
    + <br /><a href="burst.png"><img class="blackico" src="burst.png" 
    +   /><img class="whiteico" src="burst.png" /> burst.png</a></td>
    +<td width="25%">
    + <a href="small/burst.gif"><img class="blackico" src="small/burst.gif" 
    +   /><img class="whiteico" src="small/burst.gif" /> small/burst.gif</a>
    + <br /><a href="small/burst.png"><img class="blackico" src="small/burst.png" 
    +   /><img class="whiteico" src="small/burst.png" /> small/burst.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can call attention to new and important items.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="c.gif"><img class="blackico" src="c.gif" 
    +   /><img class="whiteico" src="c.gif" /> c.gif</a>
    + <br /><a href="c.png"><img class="blackico" src="c.png" 
    +   /><img class="whiteico" src="c.png" /> c.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might represent C source code.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="comp.blue.gif"><img class="blackico" src="comp.blue.gif" 
    +   /><img class="whiteico" src="comp.blue.gif" /> comp.blue.gif</a>
    + <br /><a href="comp.blue.png"><img class="blackico" src="comp.blue.png" 
    +   /><img class="whiteico" src="comp.blue.png" /> comp.blue.png</a></td>
    +<td width="25%">
    + <a href="comp.gray.gif"><img class="blackico" src="comp.gray.gif" 
    +   /><img class="whiteico" src="comp.gray.gif" /> comp.gray.gif</a>
    + <br /><a href="comp.gray.png"><img class="blackico" src="comp.gray.png" 
    +   /><img class="whiteico" src="comp.gray.png" /> comp.gray.png</a></td>
    +<td width="25%">
    + <a href="small/comp1.gif"><img class="blackico" src="small/comp1.gif" 
    +   /><img class="whiteico" src="small/comp1.gif" /> small/comp1.gif</a>
    + <br /><a href="small/comp1.png"><img class="blackico" src="small/comp1.png" 
    +   /><img class="whiteico" src="small/comp1.png" /> small/comp1.png</a></td>
    +<td width="25%">
    + <a href="small/comp2.gif"><img class="blackico" src="small/comp2.gif" 
    +   /><img class="whiteico" src="small/comp2.gif" /> small/comp2.gif</a>
    + <br /><a href="small/comp2.png"><img class="blackico" src="small/comp2.png" 
    +   /><img class="whiteico" src="small/comp2.png" /> small/comp2.png</a></td>
    +</tr>
    +<tr><td colspan="4">These little computer icons can stand for telnet or FTP
    +sessions.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="compressed.gif"><img class="blackico" src="compressed.gif" 
    +   /><img class="whiteico" src="compressed.gif" /> compressed.gif</a>
    + <br /><a href="compressed.png"><img class="blackico" src="compressed.png" 
    +   /><img class="whiteico" src="compressed.png" /> compressed.png</a></td>
    +<td width="25%">
    + <a href="small/compressed.gif"><img class="blackico" src="small/compressed.gif" 
    +   /><img class="whiteico" src="small/compressed.gif" /> small/compressed.gif</a>
    + <br /><a href="small/compressed.png"><img class="blackico" src="small/compressed.png" 
    +   /><img class="whiteico" src="small/compressed.png" /> small/compressed.png</a></td>
    +</tr>
    +<tr><td colspan="4">This may represent compressed data.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="continued.gif"><img class="blackico" src="continued.gif" 
    +   /><img class="whiteico" src="continued.gif" /> continued.gif</a>
    + <br /><a href="continued.png"><img class="blackico" src="continued.png" 
    +   /><img class="whiteico" src="continued.png" /> continued.png</a></td>
    +<td width="25%">
    + <a href="small/continued.gif"><img class="blackico" src="small/continued.gif" 
    +   /><img class="whiteico" src="small/continued.gif" /> small/continued.gif</a>
    + <br /><a href="small/continued.png"><img class="blackico" src="small/continued.png" 
    +   /><img class="whiteico" src="small/continued.png" /> small/continued.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can be a link to a continued listing of a
    +directory.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="down.gif"><img class="blackico" src="down.gif" 
    +   /><img class="whiteico" src="down.gif" /> down.gif</a>
    + <br /><a href="down.png"><img class="blackico" src="down.png" 
    +   /><img class="whiteico" src="down.png" /> down.png</a></td>
    +<td width="25%">
    + <a href="up.gif"><img class="blackico" src="up.gif" 
    +   /><img class="whiteico" src="up.gif" /> up.gif</a>
    + <br /><a href="up.png"><img class="blackico" src="up.png" 
    +   /><img class="whiteico" src="up.png" /> up.png</a></td>
    +<td width="25%">
    + <a href="left.gif"><img class="blackico" src="left.gif" 
    +   /><img class="whiteico" src="left.gif" /> left.gif</a>
    + <br /><a href="left.png"><img class="blackico" src="left.png" 
    +   /><img class="whiteico" src="left.png" /> left.png</a></td>
    +<td width="25%">
    + <a href="right.gif"><img class="blackico" src="right.gif" 
    +   /><img class="whiteico" src="right.gif" /> right.gif</a>
    + <br /><a href="right.png"><img class="blackico" src="right.png" 
    +   /><img class="whiteico" src="right.png" /> right.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can be used to scroll up, down, left and right in a
    +listing or may be used to denote items in an outline.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="dir.gif"><img class="blackico" src="dir.gif" 
    +   /><img class="whiteico" src="dir.gif" /> dir.gif</a>
    + <br /><a href="dir.png"><img class="blackico" src="dir.png" 
    +   /><img class="whiteico" src="dir.png" /> dir.png</a></td>
    +</tr>
    +<tr><td colspan="4">Identical to folder.gif (.png) below.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="diskimg.gif"><img class="blackico" src="diskimg.gif" 
    +   /><img class="whiteico" src="diskimg.gif" /> diskimg.gif</a>
    + <br /><a href="diskimg.png"><img class="blackico" src="diskimg.png" 
    +   /><img class="whiteico" src="diskimg.png" /> diskimg.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent floppy disk storage.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="small/doc.gif"><img class="blackico" src="small/doc.gif" 
    +   /><img class="whiteico" src="small/doc.gif" /> small/doc.gif</a>
    + <br /><a href="small/doc.png"><img class="blackico" src="small/doc.png" 
    +   /><img class="whiteico" src="small/doc.png" /> small/doc.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent document files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="dvi.gif"><img class="blackico" src="dvi.gif" 
    +   /><img class="whiteico" src="dvi.gif" /> dvi.gif</a>
    + <br /><a href="dvi.png"><img class="blackico" src="dvi.png" 
    +   /><img class="whiteico" src="dvi.png" /> dvi.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent DVI files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="f.gif"><img class="blackico" src="f.gif" 
    +   /><img class="whiteico" src="f.gif" /> f.gif</a>
    + <br /><a href="f.png"><img class="blackico" src="f.png" 
    +   /><img class="whiteico" src="f.png" /> f.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might represent FORTRAN or Forth source code.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="folder.gif"><img class="blackico" src="folder.gif" 
    +   /><img class="whiteico" src="folder.gif" /> folder.gif</a>
    + <br /><a href="folder.png"><img class="blackico" src="folder.png" 
    +   /><img class="whiteico" src="folder.png" /> folder.png</a></td>
    +<td width="25%">
    + <a href="folder.open.gif"><img class="blackico" src="folder.open.gif" 
    +   /><img class="whiteico" src="folder.open.gif" /> folder.open.gif</a>
    + <br /><a href="folder.open.png"><img class="blackico" src="folder.open.png" 
    +   /><img class="whiteico" src="folder.open.png" /> folder.open.png</a></td>
    +<td width="25%">
    + <a href="folder.sec.gif"><img class="blackico" src="folder.sec.gif" 
    +   /><img class="whiteico" src="folder.sec.gif" /> folder.sec.gif</a>
    + <br /><a href="folder.sec.png"><img class="blackico" src="folder.sec.png" 
    +   /><img class="whiteico" src="folder.sec.png" /> folder.sec.png</a></td>
    +</tr>
    +<tr>
    +<td width="25%">
    + <a href="small/folder.gif"><img class="blackico" src="small/folder.gif" 
    +   /><img class="whiteico" src="small/folder.gif" /> small/folder.gif</a>
    + <br /><a href="small/folder.png"><img class="blackico" src="small/folder.png" 
    +   /><img class="whiteico" src="small/folder.png" /> small/folder.png</a></td>
    +<td width="25%">
    + <a href="small/folder2.gif"><img class="blackico" src="small/folder2.gif" 
    +   /><img class="whiteico" src="small/folder2.gif" /> small/folder2.gif</a>
    + <br /><a href="small/folder2.png"><img class="blackico" src="small/folder2.png" 
    +   /><img class="whiteico" src="small/folder2.png" /> small/folder2.png</a></td>
    +</tr>
    +<tr><td colspan="4">The folder can represent directories. There is also a
    +version that can represent secure directories or directories that cannot
    +be viewed.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="generic.gif"><img class="blackico" src="generic.gif" 
    +   /><img class="whiteico" src="generic.gif" /> generic.gif</a>
    + <br /><a href="generic.png"><img class="blackico" src="generic.png" 
    +   /><img class="whiteico" src="generic.png" /> generic.png</a></td>
    +<td width="25%">
    + <a href="generic.sec.gif"><img class="blackico" src="generic.sec.gif" 
    +   /><img class="whiteico" src="generic.sec.gif" /> generic.sec.gif</a>
    + <br /><a href="generic.sec.png"><img class="blackico" src="generic.sec.png" 
    +   /><img class="whiteico" src="generic.sec.png" /> generic.sec.png</a></td>
    +<td width="25%">
    + <a href="generic.red.gif"><img class="blackico" src="generic.red.gif" 
    +   /><img class="whiteico" src="generic.red.gif" /> generic.red.gif</a>
    + <br /><a href="generic.red.png"><img class="blackico" src="generic.red.png" 
    +   /><img class="whiteico" src="generic.red.png" /> generic.red.png</a></td>
    +</tr>
    +<tr>
    +<td width="25%">
    + <a href="small/generic.gif"><img class="blackico" src="small/generic.gif" 
    +   /><img class="whiteico" src="small/generic.gif" /> small/generic.gif</a>
    + <br /><a href="small/generic.png"><img class="blackico" src="small/generic.png" 
    +   /><img class="whiteico" src="small/generic.png" /> small/generic.png</a></td>
    +<td width="25%">
    + <a href="small/generic2.gif"><img class="blackico" src="small/generic2.gif" 
    +   /><img class="whiteico" src="small/generic2.gif" /> small/generic2.gif</a>
    + <br /><a href="small/generic2.png"><img class="blackico" src="small/generic2.png" 
    +   /><img class="whiteico" src="small/generic2.png" /> small/generic2.png</a></td>
    +<td width="25%">
    + <a href="small/generic3.gif"><img class="blackico" src="small/generic3.gif" 
    +   /><img class="whiteico" src="small/generic3.gif" /> small/generic3.gif</a>
    + <br /><a href="small/generic3.png"><img class="blackico" src="small/generic3.png" 
    +   /><img class="whiteico" src="small/generic3.png" /> small/generic3.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can represent generic files, secure files, and
    +important files, respectively.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="hand.right.gif"><img class="blackico" src="hand.right.gif" 
    +   /><img class="whiteico" src="hand.right.gif" /> hand.right.gif</a>
    + <br /><a href="hand.right.png"><img class="blackico" src="hand.right.png" 
    +   /><img class="whiteico" src="hand.right.png" /> hand.right.png</a></td>
    +<td width="25%">
    + <a href="hand.up.gif"><img class="blackico" src="hand.up.gif" 
    +   /><img class="whiteico" src="hand.up.gif" /> hand.up.gif</a>
    + <br /><a href="hand.up.png"><img class="blackico" src="hand.up.png" 
    +   /><img class="whiteico" src="hand.up.png" /> hand.up.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can point out important items (pun intended).</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="image1.gif"><img class="blackico" src="image1.gif" 
    +   /><img class="whiteico" src="image1.gif" /> image1.gif</a>
    + <br /><a href="image1.png"><img class="blackico" src="image1.png" 
    +   /><img class="whiteico" src="image1.png" /> image1.png</a></td>
    +<td width="25%">
    + <a href="image2.gif"><img class="blackico" src="image2.gif" 
    +   /><img class="whiteico" src="image2.gif" /> image2.gif</a>
    + <br /><a href="image2.png"><img class="blackico" src="image2.png" 
    +   /><img class="whiteico" src="image2.png" /> image2.png</a></td>
    +<td width="25%">
    + <a href="image3.gif"><img class="blackico" src="image3.gif" 
    +   /><img class="whiteico" src="image3.gif" /> image3.gif</a>
    + <br /><a href="image3.png"><img class="blackico" src="image3.png" 
    +   /><img class="whiteico" src="image3.png" /> image3.png</a></td>
    +</tr>
    +<tr>
    +<td width="25%">
    + <a href="small/image.gif"><img class="blackico" src="small/image.gif" 
    +   /><img class="whiteico" src="small/image.gif" /> small/image.gif</a>
    + <br /><a href="small/image.png"><img class="blackico" src="small/image.png" 
    +   /><img class="whiteico" src="small/image.png" /> small/image.png</a></td>
    +<td width="25%">
    + <a href="small/image2.gif"><img class="blackico" src="small/image2.gif" 
    +   /><img class="whiteico" src="small/image2.gif" /> small/image2.gif</a>
    + <br /><a href="small/image2.png"><img class="blackico" src="small/image2.png" 
    +   /><img class="whiteico" src="small/image2.png" /> small/image2.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can represent image formats of various types.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="index.gif"><img class="blackico" src="index.gif" 
    +   /><img class="whiteico" src="index.gif" /> index.gif</a>
    + <br /><a href="index.png"><img class="blackico" src="index.png" 
    +   /><img class="whiteico" src="index.png" /> index.png</a></td>
    +<td width="25%">
    + <a href="small/index.gif"><img class="blackico" src="small/index.gif" 
    +   /><img class="whiteico" src="small/index.gif" /> small/index.gif</a>
    + <br /><a href="small/index.png"><img class="blackico" src="small/index.png" 
    +   /><img class="whiteico" src="small/index.png" /> small/index.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might represent a WAIS index or search facility.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="small/key.gif"><img class="blackico" src="small/key.gif" 
    +   /><img class="whiteico" src="small/key.gif" /> small/key.gif</a>
    + <br /><a href="small/key.png"><img class="blackico" src="small/key.png" 
    +   /><img class="whiteico" src="small/key.png" /> small/key.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might represent a locked file.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="layout.gif"><img class="blackico" src="layout.gif" 
    +   /><img class="whiteico" src="layout.gif" /> layout.gif</a>
    + <br /><a href="layout.png"><img class="blackico" src="layout.png" 
    +   /><img class="whiteico" src="layout.png" /> layout.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might represent files and formats that contain
    +graphics as well as text layout, such as HTML and PDF files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="link.gif"><img class="blackico" src="link.gif" 
    +   /><img class="whiteico" src="link.gif" /> link.gif</a>
    + <br /><a href="link.png"><img class="blackico" src="link.png" 
    +   /><img class="whiteico" src="link.png" /> link.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might represent files that are symbolic links.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="movie.gif"><img class="blackico" src="movie.gif" 
    +   /><img class="whiteico" src="movie.gif" /> movie.gif</a>
    + <br /><a href="movie.png"><img class="blackico" src="movie.png" 
    +   /><img class="whiteico" src="movie.png" /> movie.png</a></td>
    +<td width="25%">
    + <a href="small/movie.gif"><img class="blackico" src="small/movie.gif" 
    +   /><img class="whiteico" src="small/movie.gif" /> small/movie.gif</a>
    + <br /><a href="small/movie.png"><img class="blackico" src="small/movie.png" 
    +   /><img class="whiteico" src="small/movie.png" /> small/movie.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent various movie formats.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="p.gif"><img class="blackico" src="p.gif" 
    +   /><img class="whiteico" src="p.gif" /> p.gif</a>
    + <br /><a href="p.png"><img class="blackico" src="p.png" 
    +   /><img class="whiteico" src="p.png" /> p.png</a></td>
    +</tr>
    +<tr><td colspan="4">This may stand for Perl or Python source code.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="pie0.gif"><img class="blackico" src="pie0.gif" 
    +   /><img class="whiteico" src="pie0.gif" /> pie0.gif</a>
    + <br /><a href="pie1.png"><img class="blackico" src="pie0.png" 
    +   /><img class="whiteico" src="pie0.png" /> pie0.png</a></td>
    +<td width="25%">
    + <a href="pie1.gif"><img class="blackico" src="pie1.gif" 
    +   /><img class="whiteico" src="pie1.gif" /> pie1.gif</a>
    + <br /><a href="pie1.png"><img class="blackico" src="pie1.png" 
    +   /><img class="whiteico" src="pie1.png" /> pie1.png</a></td>
    +<td width="25%">
    + <a href="pie2.gif"><img class="blackico" src="pie2.gif" 
    +   /><img class="whiteico" src="pie2.gif" /> pie2.gif</a>
    + <br /><a href="pie2.png"><img class="blackico" src="pie2.png" 
    +   /><img class="whiteico" src="pie2.png" /> pie2.png</a></td>
    +<td width="25%">
    + <a href="pie3.gif"><img class="blackico" src="pie3.gif" 
    +   /><img class="whiteico" src="pie3.gif" /> pie3.gif</a>
    + <br /><a href="pie3.png"><img class="blackico" src="pie3.png" 
    +   /><img class="whiteico" src="pie3.png" /> pie3.png</a></td>
    +</tr><tr>
    +<td width="25%">
    + <a href="pie4.gif"><img class="blackico" src="pie4.gif" 
    +   /><img class="whiteico" src="pie4.gif" /> pie4.gif</a>
    + <br /><a href="pie4.png"><img class="blackico" src="pie4.png" 
    +   /><img class="whiteico" src="pie4.png" /> pie4.png</a></td>
    +<td width="25%">
    + <a href="pie5.gif"><img class="blackico" src="pie5.gif" 
    +   /><img class="whiteico" src="pie5.gif" /> pie5.gif</a>
    + <br /><a href="pie5.png"><img class="blackico" src="pie5.png" 
    +   /><img class="whiteico" src="pie5.png" /> pie5.png</a></td>
    +<td width="25%">
    + <a href="pie6.gif"><img class="blackico" src="pie6.gif" 
    +   /><img class="whiteico" src="pie6.gif" /> pie6.gif</a>
    + <br /><a href="pie6.png"><img class="blackico" src="pie6.png" 
    +   /><img class="whiteico" src="pie6.png" /> pie6.png</a></td>
    +<td width="25%">
    + <a href="pie7.gif"><img class="blackico" src="pie7.gif" 
    +   /><img class="whiteico" src="pie7.gif" /> pie7.gif</a>
    + <br /><a href="pie7.png"><img class="blackico" src="pie7.png" 
    +   /><img class="whiteico" src="pie7.png" /> pie7.png</a></td>
    +</tr><tr>
    +<td width="25%">
    + <a href="pie8.gif"><img class="blackico" src="pie8.gif" 
    +   /><img class="whiteico" src="pie8.gif" /> pie8.gif</a>
    + <br /><a href="pie8.png"><img class="blackico" src="pie8.png" 
    +   /><img class="whiteico" src="pie8.png" /> pie8.png</a></td>
    +</tr>
    +<tr><td colspan="4">These icons can be used in applications where a list of
    +documents is returned from a search. The little pie chart images
    +can denote how relevant the documents may be to your search query.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="patch.gif"><img class="blackico" src="patch.gif" 
    +   /><img class="whiteico" src="patch.gif" /> patch.gif</a>
    + <br /><a href="patch.png"><img class="blackico" src="patch.png" 
    +   /><img class="whiteico" src="patch.png" /> patch.png</a></td>
    +<td width="25%">
    + <a href="small/patch.gif"><img class="blackico" src="small/patch.gif" 
    +   /><img class="whiteico" src="small/patch.gif" /> small/patch.gif</a>
    + <br /><a href="small/patch.png"><img class="blackico" src="small/patch.png" 
    +   /><img class="whiteico" src="small/patch.png" /> small/patch.png</a></td>
    +</tr>
    +<tr><td colspan="4">This may stand for patches and diff files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="portal.gif"><img class="blackico" src="portal.gif" 
    +   /><img class="whiteico" src="portal.gif" /> portal.gif</a>
    + <br /><a href="portal.png"><img class="blackico" src="portal.png" 
    +   /><img class="whiteico" src="portal.png" /> portal.png</a></td>
    +</tr>
    +<tr><td colspan="4">This might be a link to an online service or a 3D
    +world.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="pdf.gif"><img class="blackico" src="pdf.gif" 
    +   /><img class="whiteico" src="pdf.gif" /> pdf.gif</a>
    + <br /><a href="pdf.png"><img class="blackico" src="pdf.png" 
    +   /><img class="whiteico" src="pdf.png" /> pdf.png</a></td>
    +<td width="25%">
    + <a href="ps.gif"><img class="blackico" src="ps.gif" 
    +   /><img class="whiteico" src="ps.gif" /> ps.gif</a>
    + <br /><a href="ps.png"><img class="blackico" src="ps.png" 
    +   /><img class="whiteico" src="ps.png" /> ps.png</a></td>
    +<td width="25%">
    + <a href="quill.gif"><img class="blackico" src="quill.gif" 
    +   /><img class="whiteico" src="quill.gif" /> quill.gif</a>
    + <br /><a href="quill.png"><img class="blackico" src="quill.png" 
    +   /><img class="whiteico" src="quill.png" /> quill.png</a></td>
    +<td width="25%">
    + <a href="small/ps.gif"><img class="blackico" src="small/ps.gif" 
    +   /><img class="whiteico" src="small/ps.gif" /> small/ps.gif</a>
    + <br /><a href="small/ps.png"><img class="blackico" src="small/ps.png" 
    +   /><img class="whiteico" src="small/ps.png" /> small/ps.png</a></td>
    +</tr>
    +<tr><td colspan="4">These may represent PDF and PostScript files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="screw1.gif"><img class="blackico" src="screw1.gif" 
    +   /><img class="whiteico" src="screw1.gif" /> screw1.gif</a>
    + <br /><a href="screw1.png"><img class="blackico" src="screw1.png" 
    +   /><img class="whiteico" src="screw1.png" /> screw1.png</a></td>
    +<td width="25%">
    + <a href="screw2.gif"><img class="blackico" src="screw2.gif" 
    +   /><img class="whiteico" src="screw2.gif" /> screw2.gif</a>
    + <br /><a href="screw2.png"><img class="blackico" src="screw2.png" 
    +   /><img class="whiteico" src="screw2.png" /> screw2.png</a></td>
    +</tr>
    +<tr><td colspan="4">These may represent CAD or engineering data and
    +formats.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="script.gif"><img class="blackico" src="script.gif" 
    +   /><img class="whiteico" src="script.gif" /> script.gif</a>
    + <br /><a href="script.png"><img class="blackico" src="script.png" 
    +   /><img class="whiteico" src="script.png" /> script.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent any of various interpreted languages,
    +such as Perl, python, TCL, and shell scripts, as well as server configuration
    +files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="sound1.gif"><img class="blackico" src="sound1.gif" 
    +   /><img class="whiteico" src="sound1.gif" /> sound1.gif</a>
    + <br /><a href="sound1.png"><img class="blackico" src="sound1.png" 
    +   /><img class="whiteico" src="sound1.png" /> sound1.png</a></td>
    +<td width="25%">
    + <a href="sound2.gif"><img class="blackico" src="sound2.gif" 
    +   /><img class="whiteico" src="sound2.gif" /> sound2.gif</a>
    + <br /><a href="sound2.png"><img class="blackico" src="sound2.png" 
    +   /><img class="whiteico" src="sound2.png" /> sound2.png</a></td>
    +<td width="25%">
    + <a href="small/sound.gif"><img class="blackico" src="small/sound.gif" 
    +   /><img class="whiteico" src="small/sound.gif" /> small/sound.gif</a>
    + <br /><a href="small/sound.png"><img class="blackico" src="small/sound.png" 
    +   /><img class="whiteico" src="small/sound.png" /> small/sound.png</a></td>
    +<td width="25%">
    + <a href="small/sound2.gif"><img class="blackico" src="small/sound2.gif" 
    +   /><img class="whiteico" src="small/sound2.gif" /> small/sound2.gif</a>
    + <br /><a href="small/sound2.png"><img class="blackico" src="small/sound2.png" 
    +   /><img class="whiteico" src="small/sound2.png" /> small/sound2.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can represent sound files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="sphere1.gif"><img class="blackico" src="sphere1.gif" 
    +   /><img class="whiteico" src="sphere1.gif" /> sphere1.gif</a>
    + <br /><a href="sphere1.png"><img class="blackico" src="sphere1.png" 
    +   /><img class="whiteico" src="sphere1.png" /> sphere1.png</a></td>
    +<td width="25%">
    + <a href="sphere2.gif"><img class="blackico" src="sphere2.gif" 
    +   /><img class="whiteico" src="sphere2.gif" /> sphere2.gif</a>
    + <br /><a href="sphere2.png"><img class="blackico" src="sphere2.png" 
    +   /><img class="whiteico" src="sphere2.png" /> sphere2.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can represent 3D worlds or rendering applications and
    +formats.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="tar.gif"><img class="blackico" src="tar.gif" 
    +   /><img class="whiteico" src="tar.gif" /> tar.gif</a>
    + <br /><a href="tar.png"><img class="blackico" src="tar.png" 
    +   /><img class="whiteico" src="tar.png" /> tar.png</a></td>
    +<td width="25%">
    + <a href="small/tar.gif"><img class="blackico" src="small/tar.gif" 
    +   /><img class="whiteico" src="small/tar.gif" /> small/tar.gif</a>
    + <br /><a href="small/tar.png"><img class="blackico" src="small/tar.png" 
    +   /><img class="whiteico" src="small/tar.png" /> small/tar.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent TAR archive files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="tex.gif"><img class="blackico" src="tex.gif" 
    +   /><img class="whiteico" src="tex.gif" /> tex.gif</a>
    + <br /><a href="tex.png"><img class="blackico" src="tex.png" 
    +   /><img class="whiteico" src="tex.png" /> tex.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent TeX files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="text.gif"><img class="blackico" src="text.gif" 
    +   /><img class="whiteico" src="text.gif" /> text.gif</a>
    + <br /><a href="text.png"><img class="blackico" src="text.png" 
    +   /><img class="whiteico" src="text.png" /> text.png</a></td>
    +<td width="25%">
    + <a href="small/text.gif"><img class="blackico" src="small/text.gif" 
    +   /><img class="whiteico" src="small/text.gif" /> small/text.gif</a>
    + <br /><a href="small/text.png"><img class="blackico" src="small/text.png" 
    +   /><img class="whiteico" src="small/text.png" /> small/text.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent generic (plain) text files.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="transfer.gif"><img class="blackico" src="transfer.gif" 
    +   /><img class="whiteico" src="transfer.gif" /> transfer.gif</a>
    + <br /><a href="transfer.png"><img class="blackico" src="transfer.png" 
    +   /><img class="whiteico" src="transfer.png" /> transfer.png</a></td>
    +<td width="25%">
    + <a href="small/transfer.gif"><img class="blackico" src="small/transfer.gif" 
    +   /><img class="whiteico" src="small/transfer.gif" /> small/transfer.gif</a>
    + <br /><a href="small/transfer.png"><img class="blackico" src="small/transfer.png" 
    +   /><img class="whiteico" src="small/transfer.png" /> small/transfer.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can represent FTP transfers or uploads/downloads.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="unknown.gif"><img class="blackico" src="unknown.gif" 
    +   /><img class="whiteico" src="unknown.gif" /> unknown.gif</a>
    + <br /><a href="unknown.png"><img class="blackico" src="unknown.png" 
    +   /><img class="whiteico" src="unknown.png" /> unknown.png</a></td>
    +<td width="25%">
    + <a href="small/unknown.gif"><img class="blackico" src="small/unknown.gif" 
    +   /><img class="whiteico" src="small/unknown.gif" /> small/unknown.gif</a>
    + <br /><a href="small/unknown.png"><img class="blackico" src="small/unknown.png" 
    +   /><img class="whiteico" src="small/unknown.png" /> small/unknown.png</a></td>
    +</tr>
    +<tr><td colspan="4">This may represent a file of an unknown type.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="uu.gif"><img class="blackico" src="uu.gif" 
    +   /><img class="whiteico" src="uu.gif" /> uu.gif</a>
    + <br /><a href="uu.png"><img class="blackico" src="uu.png" 
    +   /><img class="whiteico" src="uu.png" /> uu.png</a></td>
    +<td width="25%">
    + <a href="uuencoded.gif"><img class="blackico" src="uuencoded.gif" 
    +   /><img class="whiteico" src="uuencoded.gif" /> uuencoded.gif</a>
    + <br /><a href="uuencoded.png"><img class="blackico" src="uuencoded.png" 
    +   /><img class="whiteico" src="uuencoded.png" /> uuencoded.png</a></td>
    +<td width="25%">
    + <a href="small/uu.gif"><img class="blackico" src="small/uu.gif" 
    +   /><img class="whiteico" src="small/uu.gif" /> small/uu.gif</a>
    + <br /><a href="small/uu.png"><img class="blackico" src="small/uu.png" 
    +   /><img class="whiteico" src="small/uu.png" /> small/uu.png</a></td>
    +</tr>
    +<tr><td colspan="4">This can stand for uuencoded data.</td>
    +</tr>
    +
    +<tr>
    +<td width="25%">
    + <a href="world1.gif"><img class="blackico" src="world1.gif" 
    +   /><img class="whiteico" src="world1.gif" /> world1.gif</a>
    + <br /><a href="world1.png"><img class="blackico" src="world1.png" 
    +   /><img class="whiteico" src="world1.png" /> world1.png</a></td>
    +<td width="25%">
    + <a href="world2.gif"><img class="blackico" src="world2.gif" 
    +   /><img class="whiteico" src="world2.gif" /> world2.gif</a>
    + <br /><a href="world2.png"><img class="blackico" src="world2.png" 
    +   /><img class="whiteico" src="world2.png" /> world2.png</a></td>
    +</tr>
    +<tr><td colspan="4">These can represent 3D worlds or other 3D formats.</td>
    +</tr>
    +</table>
    +</body>
    +</html>
    diff --git a/docs/icons/a.png b/docs/icons/a.png
    index c1840256dcf..98fd358b7e0 100644
    Binary files a/docs/icons/a.png and b/docs/icons/a.png differ
    diff --git a/docs/icons/alert.black.png b/docs/icons/alert.black.png
    index af6b1246ad7..60b2952142e 100644
    Binary files a/docs/icons/alert.black.png and b/docs/icons/alert.black.png differ
    diff --git a/docs/icons/alert.red.png b/docs/icons/alert.red.png
    index b9222fd5246..27f1924fa5d 100644
    Binary files a/docs/icons/alert.red.png and b/docs/icons/alert.red.png differ
    diff --git a/docs/icons/apache_pb.png b/docs/icons/apache_pb.png
    index eb99a8cd393..daa26b0b1cc 100644
    Binary files a/docs/icons/apache_pb.png and b/docs/icons/apache_pb.png differ
    diff --git a/docs/icons/apache_pb2.gif b/docs/icons/apache_pb2.gif
    index 4e67c7113c5..192ae8157a2 100644
    Binary files a/docs/icons/apache_pb2.gif and b/docs/icons/apache_pb2.gif differ
    diff --git a/docs/icons/apache_pb2.png b/docs/icons/apache_pb2.png
    index 28baa70fb8c..e2721037eae 100644
    Binary files a/docs/icons/apache_pb2.png and b/docs/icons/apache_pb2.png differ
    diff --git a/docs/icons/apache_pb2_ani.gif b/docs/icons/apache_pb2_ani.gif
    index fc41c03610c..177c6c0152e 100644
    Binary files a/docs/icons/apache_pb2_ani.gif and b/docs/icons/apache_pb2_ani.gif differ
    diff --git a/docs/icons/back.png b/docs/icons/back.png
    index 2d8d353bbc7..a97b41e4c16 100644
    Binary files a/docs/icons/back.png and b/docs/icons/back.png differ
    diff --git a/docs/icons/ball.gray.png b/docs/icons/ball.gray.png
    index 7b756f2d82d..75a6b76eb37 100644
    Binary files a/docs/icons/ball.gray.png and b/docs/icons/ball.gray.png differ
    diff --git a/docs/icons/ball.red.png b/docs/icons/ball.red.png
    index 05f3e50629c..983ebd34239 100644
    Binary files a/docs/icons/ball.red.png and b/docs/icons/ball.red.png differ
    diff --git a/docs/icons/binary.png b/docs/icons/binary.png
    index c5119d1e1ea..c86d3e9b8f1 100644
    Binary files a/docs/icons/binary.png and b/docs/icons/binary.png differ
    diff --git a/docs/icons/binhex.png b/docs/icons/binhex.png
    index eff532202d3..5b34c87fad4 100644
    Binary files a/docs/icons/binhex.png and b/docs/icons/binhex.png differ
    diff --git a/docs/icons/blank.png b/docs/icons/blank.png
    index 3802c03c9c8..5fd29a8fda8 100644
    Binary files a/docs/icons/blank.png and b/docs/icons/blank.png differ
    diff --git a/docs/icons/bomb.png b/docs/icons/bomb.png
    index 5261a0575e3..29a1182564e 100644
    Binary files a/docs/icons/bomb.png and b/docs/icons/bomb.png differ
    diff --git a/docs/icons/box1.png b/docs/icons/box1.png
    index c55fccf8dc8..53971329dc5 100644
    Binary files a/docs/icons/box1.png and b/docs/icons/box1.png differ
    diff --git a/docs/icons/box2.png b/docs/icons/box2.png
    index 26d14325d97..0e3812ebd99 100644
    Binary files a/docs/icons/box2.png and b/docs/icons/box2.png differ
    diff --git a/docs/icons/broken.png b/docs/icons/broken.png
    index e8fd150a339..2ebe4597c17 100644
    Binary files a/docs/icons/broken.png and b/docs/icons/broken.png differ
    diff --git a/docs/icons/burst.png b/docs/icons/burst.png
    index 2329898f2a4..aafaa6ddc67 100644
    Binary files a/docs/icons/burst.png and b/docs/icons/burst.png differ
    diff --git a/docs/icons/c.png b/docs/icons/c.png
    index 41593b36b36..46abf10cfc2 100644
    Binary files a/docs/icons/c.png and b/docs/icons/c.png differ
    diff --git a/docs/icons/comp.blue.png b/docs/icons/comp.blue.png
    index 60ff156deb9..8e7e006f659 100644
    Binary files a/docs/icons/comp.blue.png and b/docs/icons/comp.blue.png differ
    diff --git a/docs/icons/comp.gray.png b/docs/icons/comp.gray.png
    index 01538f8f316..521fd763150 100644
    Binary files a/docs/icons/comp.gray.png and b/docs/icons/comp.gray.png differ
    diff --git a/docs/icons/compressed.png b/docs/icons/compressed.png
    index de7276dbc08..1959b85a1a1 100644
    Binary files a/docs/icons/compressed.png and b/docs/icons/compressed.png differ
    diff --git a/docs/icons/continued.png b/docs/icons/continued.png
    index 8f656e27f24..b21bd3b0e6d 100644
    Binary files a/docs/icons/continued.png and b/docs/icons/continued.png differ
    diff --git a/docs/icons/dir.png b/docs/icons/dir.png
    index 6b97905067e..df03153b8a2 100644
    Binary files a/docs/icons/dir.png and b/docs/icons/dir.png differ
    diff --git a/docs/icons/diskimg.png b/docs/icons/diskimg.png
    index 11f34e681bd..d8f04c219db 100644
    Binary files a/docs/icons/diskimg.png and b/docs/icons/diskimg.png differ
    diff --git a/docs/icons/down.png b/docs/icons/down.png
    index be3904b0451..60f2a39253e 100644
    Binary files a/docs/icons/down.png and b/docs/icons/down.png differ
    diff --git a/docs/icons/dvi.png b/docs/icons/dvi.png
    index 19c417f227b..463e1aa917c 100644
    Binary files a/docs/icons/dvi.png and b/docs/icons/dvi.png differ
    diff --git a/docs/icons/f.png b/docs/icons/f.png
    index c946f5b3165..8c89b274433 100644
    Binary files a/docs/icons/f.png and b/docs/icons/f.png differ
    diff --git a/docs/icons/folder.open.png b/docs/icons/folder.open.png
    index dd2d7e0cc2d..6b5d520632f 100644
    Binary files a/docs/icons/folder.open.png and b/docs/icons/folder.open.png differ
    diff --git a/docs/icons/folder.png b/docs/icons/folder.png
    index 6b97905067e..df03153b8a2 100644
    Binary files a/docs/icons/folder.png and b/docs/icons/folder.png differ
    diff --git a/docs/icons/folder.sec.png b/docs/icons/folder.sec.png
    index 833f59ac517..e6198c65e07 100644
    Binary files a/docs/icons/folder.sec.png and b/docs/icons/folder.sec.png differ
    diff --git a/docs/icons/forward.png b/docs/icons/forward.png
    index c5584a4c306..34ef3ae4698 100644
    Binary files a/docs/icons/forward.png and b/docs/icons/forward.png differ
    diff --git a/docs/icons/generic.png b/docs/icons/generic.png
    index 0227cabb5ce..478e06ee038 100644
    Binary files a/docs/icons/generic.png and b/docs/icons/generic.png differ
    diff --git a/docs/icons/generic.red.png b/docs/icons/generic.red.png
    index be63249beb5..c518e9cb5ad 100644
    Binary files a/docs/icons/generic.red.png and b/docs/icons/generic.red.png differ
    diff --git a/docs/icons/generic.sec.png b/docs/icons/generic.sec.png
    index 0bd3d96bdcd..e0cd444bc68 100644
    Binary files a/docs/icons/generic.sec.png and b/docs/icons/generic.sec.png differ
    diff --git a/docs/icons/hand.right.png b/docs/icons/hand.right.png
    index 93035c658ab..3c5bd12e295 100644
    Binary files a/docs/icons/hand.right.png and b/docs/icons/hand.right.png differ
    diff --git a/docs/icons/hand.up.png b/docs/icons/hand.up.png
    index 1405a6f1562..acfc36812e8 100644
    Binary files a/docs/icons/hand.up.png and b/docs/icons/hand.up.png differ
    diff --git a/docs/icons/icon.sheet.png b/docs/icons/icon.sheet.png
    index b875cb6b1c1..8b2a2013f48 100644
    Binary files a/docs/icons/icon.sheet.png and b/docs/icons/icon.sheet.png differ
    diff --git a/docs/icons/image1.png b/docs/icons/image1.png
    index c1374fde333..eafff5e3ac4 100644
    Binary files a/docs/icons/image1.png and b/docs/icons/image1.png differ
    diff --git a/docs/icons/image2.png b/docs/icons/image2.png
    index 606d4fb87e5..1fe32092ccb 100644
    Binary files a/docs/icons/image2.png and b/docs/icons/image2.png differ
    diff --git a/docs/icons/image3.png b/docs/icons/image3.png
    index 701fb1e1359..5de386b4ab8 100644
    Binary files a/docs/icons/image3.png and b/docs/icons/image3.png differ
    diff --git a/docs/icons/index.png b/docs/icons/index.png
    index 9a0de350582..eec0334d5b9 100644
    Binary files a/docs/icons/index.png and b/docs/icons/index.png differ
    diff --git a/docs/icons/layout.png b/docs/icons/layout.png
    index 0a97c1c475f..7c6b7638dbd 100644
    Binary files a/docs/icons/layout.png and b/docs/icons/layout.png differ
    diff --git a/docs/icons/left.png b/docs/icons/left.png
    index d6e2404a811..1087e702ed2 100644
    Binary files a/docs/icons/left.png and b/docs/icons/left.png differ
    diff --git a/docs/icons/link.png b/docs/icons/link.png
    index 4714d0ef40a..f53339b28a3 100644
    Binary files a/docs/icons/link.png and b/docs/icons/link.png differ
    diff --git a/docs/icons/movie.png b/docs/icons/movie.png
    index 5615180de88..131e9dc7015 100644
    Binary files a/docs/icons/movie.png and b/docs/icons/movie.png differ
    diff --git a/docs/icons/p.png b/docs/icons/p.png
    index 3fbe0e8801e..450d9c6eafa 100644
    Binary files a/docs/icons/p.png and b/docs/icons/p.png differ
    diff --git a/docs/icons/patch.png b/docs/icons/patch.png
    index 808ed7865fe..85c9ba086d4 100644
    Binary files a/docs/icons/patch.png and b/docs/icons/patch.png differ
    diff --git a/docs/icons/pdf.png b/docs/icons/pdf.png
    index 516142bb47b..777fb18252e 100644
    Binary files a/docs/icons/pdf.png and b/docs/icons/pdf.png differ
    diff --git a/docs/icons/pie0.png b/docs/icons/pie0.png
    index 12e0200c97f..f9b6adf9654 100644
    Binary files a/docs/icons/pie0.png and b/docs/icons/pie0.png differ
    diff --git a/docs/icons/pie1.png b/docs/icons/pie1.png
    index c44c793ed8b..633959c1eb3 100644
    Binary files a/docs/icons/pie1.png and b/docs/icons/pie1.png differ
    diff --git a/docs/icons/pie2.png b/docs/icons/pie2.png
    index e0b7167d913..198f3e41bc5 100644
    Binary files a/docs/icons/pie2.png and b/docs/icons/pie2.png differ
    diff --git a/docs/icons/pie3.png b/docs/icons/pie3.png
    index 820a3c35fa9..3fab58cdc2e 100644
    Binary files a/docs/icons/pie3.png and b/docs/icons/pie3.png differ
    diff --git a/docs/icons/pie4.png b/docs/icons/pie4.png
    index 35490d857c7..7fa6a037a53 100644
    Binary files a/docs/icons/pie4.png and b/docs/icons/pie4.png differ
    diff --git a/docs/icons/pie5.png b/docs/icons/pie5.png
    index 359b7d377f4..c7e3c581446 100644
    Binary files a/docs/icons/pie5.png and b/docs/icons/pie5.png differ
    diff --git a/docs/icons/pie6.png b/docs/icons/pie6.png
    index 4b293eae18c..072fd40c4b4 100644
    Binary files a/docs/icons/pie6.png and b/docs/icons/pie6.png differ
    diff --git a/docs/icons/pie7.png b/docs/icons/pie7.png
    index 6bfa2d06ae2..8817d879180 100644
    Binary files a/docs/icons/pie7.png and b/docs/icons/pie7.png differ
    diff --git a/docs/icons/pie8.png b/docs/icons/pie8.png
    index 716cf2822bf..b2c70e3fe72 100644
    Binary files a/docs/icons/pie8.png and b/docs/icons/pie8.png differ
    diff --git a/docs/icons/portal.png b/docs/icons/portal.png
    index 937c0f87cd6..ed73327203f 100644
    Binary files a/docs/icons/portal.png and b/docs/icons/portal.png differ
    diff --git a/docs/icons/ps.png b/docs/icons/ps.png
    index ccccf730b6c..65bc12219a8 100644
    Binary files a/docs/icons/ps.png and b/docs/icons/ps.png differ
    diff --git a/docs/icons/quill.png b/docs/icons/quill.png
    index b697770a882..550efbbc275 100644
    Binary files a/docs/icons/quill.png and b/docs/icons/quill.png differ
    diff --git a/docs/icons/right.png b/docs/icons/right.png
    index 41f8529a84e..00495dc4b40 100644
    Binary files a/docs/icons/right.png and b/docs/icons/right.png differ
    diff --git a/docs/icons/screw1.png b/docs/icons/screw1.png
    index 11673ab97dc..c94569094a9 100644
    Binary files a/docs/icons/screw1.png and b/docs/icons/screw1.png differ
    diff --git a/docs/icons/screw2.png b/docs/icons/screw2.png
    index 5d7d2cf65e9..6912f9ef47a 100644
    Binary files a/docs/icons/screw2.png and b/docs/icons/screw2.png differ
    diff --git a/docs/icons/script.png b/docs/icons/script.png
    index 2520570a775..d2a00ca6bda 100644
    Binary files a/docs/icons/script.png and b/docs/icons/script.png differ
    diff --git a/docs/icons/small/README.txt b/docs/icons/small/README.txt
    deleted file mode 100644
    index deb96702b76..00000000000
    --- a/docs/icons/small/README.txt
    +++ /dev/null
    @@ -1,6 +0,0 @@
    -
    -These icons are provided as an alternative to the standard Apache
    -icon graphics.  All graphics in this directory, with the exception
    -of rainbow.gif, are 16x16 pixels in size, rather than the 20x22
    -dimension icons which are the normal defaults for Apache and are
    -in the parent directory of this one.
    diff --git a/docs/icons/small/back.png b/docs/icons/small/back.png
    index 2257df2140d..e339315a9e8 100644
    Binary files a/docs/icons/small/back.png and b/docs/icons/small/back.png differ
    diff --git a/docs/icons/small/binary.png b/docs/icons/small/binary.png
    index 2e2e1b073d6..b836c7c04e7 100644
    Binary files a/docs/icons/small/binary.png and b/docs/icons/small/binary.png differ
    diff --git a/docs/icons/small/binhex.png b/docs/icons/small/binhex.png
    index 9deab419b61..cc61dd16908 100644
    Binary files a/docs/icons/small/binhex.png and b/docs/icons/small/binhex.png differ
    diff --git a/docs/icons/small/blank.png b/docs/icons/small/blank.png
    index 86f57a504f7..89edd4d5882 100644
    Binary files a/docs/icons/small/blank.png and b/docs/icons/small/blank.png differ
    diff --git a/docs/icons/small/broken.png b/docs/icons/small/broken.png
    index 79c998c8c31..7a6b2db8c63 100644
    Binary files a/docs/icons/small/broken.png and b/docs/icons/small/broken.png differ
    diff --git a/docs/icons/small/burst.png b/docs/icons/small/burst.png
    index 2b21436c78e..1155c67651b 100644
    Binary files a/docs/icons/small/burst.png and b/docs/icons/small/burst.png differ
    diff --git a/docs/icons/small/comp1.png b/docs/icons/small/comp1.png
    index 6d8c3459ed0..bbc3d0ec062 100644
    Binary files a/docs/icons/small/comp1.png and b/docs/icons/small/comp1.png differ
    diff --git a/docs/icons/small/comp2.png b/docs/icons/small/comp2.png
    index 57f7ad197b8..8243345e4b8 100644
    Binary files a/docs/icons/small/comp2.png and b/docs/icons/small/comp2.png differ
    diff --git a/docs/icons/small/compressed.png b/docs/icons/small/compressed.png
    index 43acd8b943d..c7856f73626 100644
    Binary files a/docs/icons/small/compressed.png and b/docs/icons/small/compressed.png differ
    diff --git a/docs/icons/small/continued.png b/docs/icons/small/continued.png
    index db17c424650..a9a7c09cf86 100644
    Binary files a/docs/icons/small/continued.png and b/docs/icons/small/continued.png differ
    diff --git a/docs/icons/small/doc.png b/docs/icons/small/doc.png
    index c560df21d3c..994726817c6 100644
    Binary files a/docs/icons/small/doc.png and b/docs/icons/small/doc.png differ
    diff --git a/docs/icons/small/forward.png b/docs/icons/small/forward.png
    index 4ddbc61e142..8187d389f2c 100644
    Binary files a/docs/icons/small/forward.png and b/docs/icons/small/forward.png differ
    diff --git a/docs/icons/small/generic.png b/docs/icons/small/generic.png
    index 16374a12bbb..bd36b0855c4 100644
    Binary files a/docs/icons/small/generic.png and b/docs/icons/small/generic.png differ
    diff --git a/docs/icons/small/generic2.png b/docs/icons/small/generic2.png
    index 40d60c1df23..11231d91f93 100644
    Binary files a/docs/icons/small/generic2.png and b/docs/icons/small/generic2.png differ
    diff --git a/docs/icons/small/generic3.png b/docs/icons/small/generic3.png
    index aa38963afa2..3874aa3edde 100644
    Binary files a/docs/icons/small/generic3.png and b/docs/icons/small/generic3.png differ
    diff --git a/docs/icons/small/image.png b/docs/icons/small/image.png
    index d92f0a5fcc4..50fbb847cb5 100644
    Binary files a/docs/icons/small/image.png and b/docs/icons/small/image.png differ
    diff --git a/docs/icons/small/image2.png b/docs/icons/small/image2.png
    index 4049bda5619..4aeff456bdd 100644
    Binary files a/docs/icons/small/image2.png and b/docs/icons/small/image2.png differ
    diff --git a/docs/icons/small/index.png b/docs/icons/small/index.png
    index 080453e2151..97df00e036d 100644
    Binary files a/docs/icons/small/index.png and b/docs/icons/small/index.png differ
    diff --git a/docs/icons/small/key.png b/docs/icons/small/key.png
    index 1a45f67df31..44760746b98 100644
    Binary files a/docs/icons/small/key.png and b/docs/icons/small/key.png differ
    diff --git a/docs/icons/small/movie.png b/docs/icons/small/movie.png
    index 7c126042c9a..87adc23cf67 100644
    Binary files a/docs/icons/small/movie.png and b/docs/icons/small/movie.png differ
    diff --git a/docs/icons/small/patch.png b/docs/icons/small/patch.png
    index c39f14435a0..78148ed742d 100644
    Binary files a/docs/icons/small/patch.png and b/docs/icons/small/patch.png differ
    diff --git a/docs/icons/small/ps.png b/docs/icons/small/ps.png
    index 5c604230d07..23e42ad426d 100644
    Binary files a/docs/icons/small/ps.png and b/docs/icons/small/ps.png differ
    diff --git a/docs/icons/small/rainbow.png b/docs/icons/small/rainbow.png
    index 175053cb433..16e63fa6fb9 100644
    Binary files a/docs/icons/small/rainbow.png and b/docs/icons/small/rainbow.png differ
    diff --git a/docs/icons/small/sound.png b/docs/icons/small/sound.png
    index 6e3e95d3d01..1bbc5825f59 100644
    Binary files a/docs/icons/small/sound.png and b/docs/icons/small/sound.png differ
    diff --git a/docs/icons/small/sound2.png b/docs/icons/small/sound2.png
    index bc46eb48fe5..06a6c879c16 100644
    Binary files a/docs/icons/small/sound2.png and b/docs/icons/small/sound2.png differ
    diff --git a/docs/icons/small/tar.png b/docs/icons/small/tar.png
    index 12f0347bf9c..66ee8a2b095 100644
    Binary files a/docs/icons/small/tar.png and b/docs/icons/small/tar.png differ
    diff --git a/docs/icons/small/text.png b/docs/icons/small/text.png
    index b4e30f466d3..4c1c626fecd 100644
    Binary files a/docs/icons/small/text.png and b/docs/icons/small/text.png differ
    diff --git a/docs/icons/small/transfer.png b/docs/icons/small/transfer.png
    index 324048170a8..ff2f88ac906 100644
    Binary files a/docs/icons/small/transfer.png and b/docs/icons/small/transfer.png differ
    diff --git a/docs/icons/small/unknown.png b/docs/icons/small/unknown.png
    index cad7e7a7aa0..dbd518ba8ee 100644
    Binary files a/docs/icons/small/unknown.png and b/docs/icons/small/unknown.png differ
    diff --git a/docs/icons/small/uu.png b/docs/icons/small/uu.png
    index ef87c82ee6c..52117a2cd71 100644
    Binary files a/docs/icons/small/uu.png and b/docs/icons/small/uu.png differ
    diff --git a/docs/icons/sound1.png b/docs/icons/sound1.png
    index 7a766be6cc8..16bb332cec4 100644
    Binary files a/docs/icons/sound1.png and b/docs/icons/sound1.png differ
    diff --git a/docs/icons/sound2.png b/docs/icons/sound2.png
    index 45112909398..8cbbe02a5e2 100644
    Binary files a/docs/icons/sound2.png and b/docs/icons/sound2.png differ
    diff --git a/docs/icons/sphere1.png b/docs/icons/sphere1.png
    index 2198ae89ec4..ae3b3a3aa98 100644
    Binary files a/docs/icons/sphere1.png and b/docs/icons/sphere1.png differ
    diff --git a/docs/icons/sphere2.png b/docs/icons/sphere2.png
    index 257632ba46d..1fb64debccb 100644
    Binary files a/docs/icons/sphere2.png and b/docs/icons/sphere2.png differ
    diff --git a/docs/icons/tar.png b/docs/icons/tar.png
    index 6c40521ff80..42877139847 100644
    Binary files a/docs/icons/tar.png and b/docs/icons/tar.png differ
    diff --git a/docs/icons/tex.png b/docs/icons/tex.png
    index 906622d3844..a3d08eb7e7c 100644
    Binary files a/docs/icons/tex.png and b/docs/icons/tex.png differ
    diff --git a/docs/icons/text.png b/docs/icons/text.png
    index 34d0edf86e4..c43fb622fba 100644
    Binary files a/docs/icons/text.png and b/docs/icons/text.png differ
    diff --git a/docs/icons/transfer.png b/docs/icons/transfer.png
    index efaf17b682f..b969e434910 100644
    Binary files a/docs/icons/transfer.png and b/docs/icons/transfer.png differ
    diff --git a/docs/icons/unknown.png b/docs/icons/unknown.png
    index 7c241c383c0..e4e2982437e 100644
    Binary files a/docs/icons/unknown.png and b/docs/icons/unknown.png differ
    diff --git a/docs/icons/up.png b/docs/icons/up.png
    index a69ea00c5b7..4aa8faf5512 100644
    Binary files a/docs/icons/up.png and b/docs/icons/up.png differ
    diff --git a/docs/icons/uu.png b/docs/icons/uu.png
    index b1d1a8579d5..a57837a0b52 100644
    Binary files a/docs/icons/uu.png and b/docs/icons/uu.png differ
    diff --git a/docs/icons/uuencoded.png b/docs/icons/uuencoded.png
    index b1d1a8579d5..a57837a0b52 100644
    Binary files a/docs/icons/uuencoded.png and b/docs/icons/uuencoded.png differ
    diff --git a/docs/icons/world1.png b/docs/icons/world1.png
    index 3a65c00d846..fbe0167e9a8 100644
    Binary files a/docs/icons/world1.png and b/docs/icons/world1.png differ
    diff --git a/docs/icons/world2.png b/docs/icons/world2.png
    index 9f8a3ea4b35..e7ea4899efe 100644
    Binary files a/docs/icons/world2.png and b/docs/icons/world2.png differ
    diff --git a/docs/man/ab.8 b/docs/man/ab.8
    index aa1c7ab2d54..96a4e29676f 100644
    --- a/docs/man/ab.8
    +++ b/docs/man/ab.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "AB" 8 "2004-11-14" "Apache HTTP Server" "ab"
    +.TH "AB" 8 "2012-04-09" "Apache HTTP Server" "ab"
     
     .SH NAME
     ab \- Apache HTTP server benchmarking tool
    @@ -27,7 +27,7 @@ ab \- Apache HTTP server benchmarking tool
     .SH "SYNOPSIS"
      
     .PP
    -\fBab\fR [ -\fBA\fR \fIauth-username\fR:\fIpassword\fR ] [ -\fBc\fR \fIconcurrency\fR ] [ -\fBC\fR \fIcookie-name\fR=\fIvalue\fR ] [ -\fBd\fR ] [ -\fBe\fR \fIcsv-file\fR ] [ -\fBg\fR \fIgnuplot-file\fR ] [ -\fBh\fR ] [ -\fBH\fR \fIcustom-header\fR ] [ -\fBi\fR ] [ -\fBk\fR ] [ -\fBn\fR \fIrequests\fR ] [ -\fBp\fR \fIPOST-file\fR ] [ -\fBP\fR \fIproxy-auth-username\fR:\fIpassword\fR ] [ -\fBq\fR ] [ -\fBs\fR ] [ -\fBS\fR ] [ -\fBt\fR \fItimelimit\fR ] [ -\fBT\fR \fIcontent-type\fR ] [ -\fBv\fR \fIverbosity\fR] [ -\fBV\fR ] [ -\fBw\fR ] [ -\fBx\fR \fI<table>-attributes\fR ] [ -\fBX\fR \fIproxy\fR[:\fIport\fR] ] [ -\fBy\fR \fI<tr>-attributes\fR ] [ -\fBz\fR \fI<td>-attributes\fR ] [http://]\fIhostname\fR[:\fIport\fR]/\fIpath\fR
    +\fBab\fR [ -\fBA\fR \fIauth-username\fR:\fIpassword\fR ] [ -\fBb\fR \fIwindowsize\fR ] [ -\fBc\fR \fIconcurrency\fR ] [ -\fBC\fR \fIcookie-name\fR=\fIvalue\fR ] [ -\fBd\fR ] [ -\fBe\fR \fIcsv-file\fR ] [ -\fBf\fR \fIprotocol\fR ] [ -\fBg\fR \fIgnuplot-file\fR ] [ -\fBh\fR ] [ -\fBH\fR \fIcustom-header\fR ] [ -\fBi\fR ] [ -\fBk\fR ] [ -\fBn\fR \fIrequests\fR ] [ -\fBp\fR \fIPOST-file\fR ] [ -\fBP\fR \fIproxy-auth-username\fR:\fIpassword\fR ] [ -\fBq\fR ] [ -\fBr\fR ] [ -\fBs\fR ] [ -\fBS\fR ] [ -\fBt\fR \fItimelimit\fR ] [ -\fBT\fR \fIcontent-type\fR ] [ -\fBu\fR \fIPUT-file\fR ] [ -\fBv\fR \fIverbosity\fR] [ -\fBV\fR ] [ -\fBw\fR ] [ -\fBx\fR \fI<table>-attributes\fR ] [ -\fBX\fR \fIproxy\fR[:\fIport\fR] ] [ -\fBy\fR \fI<tr>-attributes\fR ] [ -\fBz\fR \fI<td>-attributes\fR ] [ -\fBZ\fR \fIciphersuite\fR ] [http[s]://]\fIhostname\fR[:\fIport\fR]/\fIpath\fR
      
     
     .SH "SUMMARY"
    @@ -43,6 +43,9 @@ ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) ser
     -A \fIauth-username\fR:\fIpassword\fR
     Supply BASIC Authentication credentials to the server\&. The username and password are separated by a single : and sent on the wire base64 encoded\&. The string is sent regardless of whether the server needs it (\fIi\&.e\&.\fR, has sent an 401 authentication needed)\&.  
     .TP
    +-b \fIwindowsize\fR
    +Size of TCP send/receive buffer, in bytes\&.  
    +.TP
     -c \fIconcurrency\fR
     Number of multiple requests to perform at a time\&. Default is one request at a time\&.  
     .TP
    @@ -55,6 +58,9 @@ Do not display the "percentage served within XX [ms] table"\&. (legacy support)\
     -e \fIcsv-file\fR
     Write a Comma separated value (CSV) file which contains for each percentage (from 1% to 100%) the time (in milliseconds) it took to serve that percentage of the requests\&. This is usually more useful than the 'gnuplot' file; as the results are already 'binned'\&.  
     .TP
    +-f \fIprotocol\fR
    +Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)\&.  
    +.TP
     -g \fIgnuplot-file\fR
     Write all measured values out as a 'gnuplot' or TSV (Tab separate values) file\&. This file can easily be imported into packages like Gnuplot, IDL, Mathematica, Igor or even Excel\&. The labels are on the first line of the file\&.  
     .TP
    @@ -74,7 +80,7 @@ Enable the HTTP KeepAlive feature, \fIi\&.e\&.\fR, perform multiple requests wit
     Number of requests to perform for the benchmarking session\&. The default is to just perform a single request which usually leads to non-representative benchmarking results\&.  
     .TP
     -p \fIPOST-file\fR
    -File containing data to POST\&.  
    +File containing data to POST\&. Remember to also set -T\&.  
     .TP
     -P \fIproxy-auth-username\fR:\fIpassword\fR
     Supply BASIC Authentication credentials to a proxy en-route\&. The username and password are separated by a single : and sent on the wire base64 encoded\&. The string is sent regardless of whether the proxy needs it (\fIi\&.e\&.\fR, has sent an 407 proxy authentication needed)\&.  
    @@ -82,6 +88,9 @@ Supply BASIC Authentication credentials to a proxy en-route\&. The username and
     -q
     When processing more than 150 requests, ab outputs a progress count on stderr every 10% or 100 requests or so\&. The -q flag will suppress these messages\&.  
     .TP
    +-r
    +Don't exit on socket receive errors\&.  
    +.TP
     -s
     When compiled in (ab -h will show you) use the SSL protected https rather than the http protocol\&. This feature is experimental and \fIvery\fR rudimentary\&. You probably do not want to use it\&.  
     .TP
    @@ -92,7 +101,10 @@ Do not display the median and standard deviation values, nor display the warning
     Maximum number of seconds to spend for benchmarking\&. This implies a -n 50000 internally\&. Use this to benchmark the server within a fixed total amount of time\&. Per default there is no timelimit\&.  
     .TP
     -T \fIcontent-type\fR
    -Content-type header to use for POST data\&.  
    +Content-type header to use for POST/PUT data, eg\&. application/x-www-form-urlencoded\&. Default: text/plain\&.  
    +.TP
    +-u \fIPUT-file\fR
    +File containing data to PUT\&. Remember to also set -T\&.  
     .TP
     -v \fIverbosity\fR
     Set verbosity level - 4 and above prints information on headers, 3 and above prints response codes (404, 200, etc\&.), 2 and above prints warnings and info\&.  
    @@ -114,6 +126,73 @@ String to use as attributes for <tr>\&.
     .TP
     -z \fI<td>-attributes\fR
     String to use as attributes for <td>\&.  
    +.TP
    +-Z \fIciphersuite\fR
    +Specify SSL/TLS cipher suite (See openssl ciphers)\&.  
    + 
    +.SH "DESCRIPTION OF OUTPUT"
    + 
    +.PP
    +The following list describes the values returned by ab:
    + 
    + 
    +.TP
    +Server Software
    +The value, if any, returned in the \fIserver\fR HTTP header of the first successful response\&. This includes all characters in the header from beginning to the point a character with decimal value of 32 (most notably: a space or CR/LF) is detected\&.  
    +.TP
    +Server Hostname
    +The DNS or IP address given on the command line  
    +.TP
    +Server Port
    +The port to which ab is connecting\&. If no port is given on the command line, this will default to 80 for http and 443 for https\&.  
    +.TP
    +SSL/TLS Protocol
    +The protocol parameters negotiated between the client and server\&. This will only be printed if SSL is used\&.  
    +.TP
    +Document Path
    +The request URI parsed from the command line string\&.  
    +.TP
    +Document Length
    +This is size in bytes of the first succesfully returning document\&. If the document length changes during testing, the response is considered an error\&.  
    +.TP
    +Concurrency Level
    +The number of concurrent clients used during the test  
    +.TP
    +Time taken for tests
    +This is the time taken from the moment the first socket connection is created to the moment the last response is recieved  
    +.TP
    +Complete requests
    +The number of successful responses recieved  
    +.TP
    +Failed requests
    +The number of requests that were considered a failure\&. If the number is greater than zero, another line will be printed showing the numer of requests that failed due to connecting, reading, incorrect content length, or exceptions\&.  
    +.TP
    +Write errors
    +The number of errors that failed during write (broken pipe)\&.  
    +.TP
    +Non-2xx responses
    +The number of responses that were not in the 200 series of response codes\&. If all responses were 200, this field is not printed\&.  
    +.TP
    +Keep-Alive requests
    +The number of connections that resulted in Keep-Alive requests  
    +.TP
    +Total body sent
    +If configured to send data as part of the test, this is the total number of bytes sent during the tests\&. This field is omitted if the test did not include a body to send\&.  
    +.TP
    +Total transferred
    +The total number of bytes received from the server\&. This number is essentially the number of bytes sent over the wire\&.  
    +.TP
    +HTML transferred
    +The total number of document bytes received from the server\&. This number excludes bytes received in HTTP headers  
    +.TP
    +Requests per second
    +This is the number of requests per second\&. This value is the result of dividing the number of requests by the total time taken  
    +.TP
    +Time per request
    +The average time spent per request\&. The first value is calculated with the formula concurrency * timetaken * 1000 / done while the second value is calculated with the formula timetaken * 1000 / done  
    +.TP
    +Transfer rate
    +The rate of transfer as calculated by the formula totalread / 1024 / timetaken  
      
     .SH "BUGS"
      
    diff --git a/docs/man/apachectl.8 b/docs/man/apachectl.8
    index a4865d2bd31..eb7192aab9e 100644
    --- a/docs/man/apachectl.8
    +++ b/docs/man/apachectl.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "APACHECTL" 8 "2005-05-03" "Apache HTTP Server" "apachectl"
    +.TH "APACHECTL" 8 "2005-09-20" "Apache HTTP Server" "apachectl"
     
     .SH NAME
     apachectl \- Apache HTTP Server Control Interface
    @@ -79,6 +79,9 @@ Displays a brief status report\&. Similar to the fullstatus option, except that
     graceful
     Gracefully restarts the Apache httpd daemon\&. If the daemon is not running, it is started\&. This differs from a normal restart in that currently open connections are not aborted\&. A side effect is that old log files will not be closed immediately\&. This means that if used in a log rotation script, a substantial delay may be necessary to ensure that the old log files are closed before processing them\&. This command automatically checks the configuration files as in configtest before initiating the restart to make sure Apache doesn't die\&. This is equivalent to apachectl -k graceful\&.  
     .TP
    +graceful-stop
    +Gracefully stops the Apache httpd daemon\&. This differs from a normal stop in that currently open connections are not aborted\&. A side effect is that old log files will not be closed immediately\&. This is equivalent to apachectl -k graceful-stop\&.  
    +.TP
     configtest
     Run a configuration file syntax test\&. It parses the configuration files and either reports Syntax Ok or detailed information about the particular syntax error\&. This is equivalent to apachectl -t\&.  
      
    diff --git a/docs/man/apxs.8 b/docs/man/apxs.8
    index c2343925916..c4c7dbc2776 100644
    --- a/docs/man/apxs.8
    +++ b/docs/man/apxs.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "APXS" 8 "2004-10-01" "Apache HTTP Server" "apxs"
    +.TH "APXS" 8 "2012-03-21" "Apache HTTP Server" "apxs"
     
     .SH NAME
     apxs \- APache eXtenSion tool
    diff --git a/docs/man/htcacheclean.8 b/docs/man/htcacheclean.8
    index 746a7bab3a6..633c645283b 100644
    --- a/docs/man/htcacheclean.8
    +++ b/docs/man/htcacheclean.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "HTCACHECLEAN" 8 "2005-08-08" "Apache HTTP Server" "htcacheclean"
    +.TH "HTCACHECLEAN" 8 "2008-05-06" "Apache HTTP Server" "htcacheclean"
     
     .SH NAME
     htcacheclean \- Clean up the disk cache
    @@ -30,7 +30,7 @@ htcacheclean \- Clean up the disk cache
     \fBhtcacheclean\fR [ -\fBD\fR ] [ -\fBv\fR ] [ -\fBt\fR ] [ -\fBr\fR ] [ -\fBn\fR ] -\fBp\fR\fIpath\fR -\fBl\fR\fIlimit\fR
      
     .PP
    -\fBhtcacheclean\fR -\fBb\fR [ -\fBn\fR ] [ -\fBt\fR ] [ -\fBi\fR ] -\fBd\fR\fIinterval\fR -\fBp\fR\fIpath\fR -\fBl\fR\fIlimit\fR
    +\fBhtcacheclean\fR [ -\fBn\fR ] [ -\fBt\fR ] [ -\fBi\fR ] -\fBd\fR\fIinterval\fR -\fBp\fR\fIpath\fR -\fBl\fR\fIlimit\fR
      
     
     .SH "SUMMARY"
    diff --git a/docs/man/htdbm.1 b/docs/man/htdbm.1
    index 20ec67faaa1..d37be2c21b4 100644
    --- a/docs/man/htdbm.1
    +++ b/docs/man/htdbm.1
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "HTDBM" 1 "2005-03-26" "Apache HTTP Server" "htdbm"
    +.TH "HTDBM" 1 "2009-02-12" "Apache HTTP Server" "htdbm"
     
     .SH NAME
     htdbm \- Manipulate DBM password databases
    @@ -54,7 +54,7 @@ htdbm \- Manipulate DBM password databases
     .SH "SUMMARY"
      
     .PP
    -htdbm is used to manipulate the DBM format files used to store usernames and password for basic authentication of HTTP users via mod_auth_dbm\&. See the dbmmanage documentation for more information about these DBM files\&.
    +htdbm is used to manipulate the DBM format files used to store usernames and password for basic authentication of HTTP users via mod_authn_dbm\&. See the dbmmanage documentation for more information about these DBM files\&.
      
     
     .SH "OPTIONS"
    diff --git a/docs/man/htdigest.1 b/docs/man/htdigest.1
    index fd6598f889c..da775efefee 100644
    --- a/docs/man/htdigest.1
    +++ b/docs/man/htdigest.1
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "HTDIGEST" 1 "2003-11-25" "Apache HTTP Server" "htdigest"
    +.TH "HTDIGEST" 1 "2012-07-19" "Apache HTTP Server" "htdigest"
     
     .SH NAME
     htdigest \- manage user files for digest authentication
    @@ -50,8 +50,13 @@ Create the \fIpasswdfile\fR\&. If \fIpasswdfile\fR already exists, it is deleted
     Name of the file to contain the username, realm and password\&. If -c is given, this file is created if it does not already exist, or deleted and recreated if it does exist\&.  
     .TP
     \fIrealm\fR
    -The realm name to which the user name belongs\&.  
    +The realm name to which the user name belongs\&. See http://tools\&.ietf\&.org/html/rfc2617#section-3\&.2\&.1 for more details\&.  
     .TP
     \fIusername\fR
     The user name to create or update in \fIpasswdfile\fR\&. If \fIusername\fR does not exist is this file, an entry is added\&. If it does exist, the password is changed\&.  
      
    +.SH "SECURITY CONSIDERATIONS"
    + 
    +.PP
    +This program is not safe as a setuid executable\&. Do \fInot\fR make it setuid\&.
    + 
    diff --git a/docs/man/htpasswd.1 b/docs/man/htpasswd.1
    index 6ecfb52d6e0..cc4250843f4 100644
    --- a/docs/man/htpasswd.1
    +++ b/docs/man/htpasswd.1
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "HTPASSWD" 1 "2003-11-25" "Apache HTTP Server" "htpasswd"
    +.TH "HTPASSWD" 1 "2013-07-06" "Apache HTTP Server" "htpasswd"
     
     .SH NAME
     htpasswd \- Manage user files for basic authentication
    @@ -68,10 +68,10 @@ Create the \fIpasswdfile\fR\&. If \fIpasswdfile\fR already exists, it is rewritt
     Display the results on standard output rather than updating a file\&. This is useful for generating password records acceptable to Apache for inclusion in non-text data stores\&. This option changes the syntax of the command line, since the \fIpasswdfile\fR argument (usually the first one) is omitted\&. It cannot be combined with the -c option\&.  
     .TP
     -m
    -Use MD5 encryption for passwords\&. On Windows, Netware and TPF, this is the default\&.  
    +Use MD5 encryption for passwords\&. This is the default (since version 2\&.2\&.18)\&.  
     .TP
     -d
    -Use crypt() encryption for passwords\&. The default on all platforms but Windows, Netware and TPF\&. Though possibly supported by htpasswd on all platforms, it is not supported by the httpd server on Windows, Netware and TPF\&.  
    +Use crypt() encryption for passwords\&. This is not supported by the httpd server on Windows and Netware and TPF\&. This algorithm limits the password length to 8 characters\&. This algorithm is \fBinsecure\fR by today's standards\&. It used to be the default algorithm until version 2\&.2\&.17\&.  
     .TP
     -s
     Use SHA encryption for passwords\&. Facilitates migration from/to Netscape servers using the LDAP Directory Interchange Format (ldif)\&.  
    @@ -105,7 +105,7 @@ htpasswd returns a zero status ("true") if the username and password have been s
     .fi
      
     .PP
    -Adds or modifies the password for user jsmith\&. The user is prompted for the password\&. If executed on a Windows system, the password will be encrypted using the modified Apache MD5 algorithm; otherwise, the system's crypt() routine will be used\&. If the file does not exist, htpasswd will do nothing except return an error\&.
    +Adds or modifies the password for user jsmith\&. The user is prompted for the password\&. The password will be encrypted using the modified Apache MD5 algorithm\&. If the file does not exist, htpasswd will do nothing except return an error\&.
      
     .nf
     
    @@ -118,21 +118,30 @@ Creates a new file and stores a record in it for user jane\&. The user is prompt
      
     .nf
     
    -      htpasswd -mb /usr/web/\&.htpasswd-all jones Pwd4Steve
    +      htpasswd -db /usr/web/\&.htpasswd-all jones Pwd4Steve
         
     .fi
      
     .PP
    -Encrypts the password from the command line (Pwd4Steve) using the MD5 algorithm, and stores it in the specified file\&.
    +Encrypts the password from the command line (Pwd4Steve) using the crypt() algorithm, and stores it in the specified file\&.
      
     .SH "SECURITY CONSIDERATIONS"
      
     .PP
     Web password files such as those managed by htpasswd should \fInot\fR be within the Web server's URI space -- that is, they should not be fetchable with a browser\&.
      
    +.PP
    +This program is not safe as a setuid executable\&. Do \fInot\fR make it setuid\&.
    + 
     .PP
     The use of the -b option is discouraged, since when it is used the unencrypted password appears on the command line\&.
      
    +.PP
    +When using the crypt() algorithm, note that only the first 8 characters of the password are used to form the password\&. If the supplied password is longer, the extra characters will be silently discarded\&.
    + 
    +.PP
    +The SHA encryption format does not use salting: for a given password, there is only one encrypted representation\&. The crypt() and MD5 formats permute the representation by prepending a random salt string, to make dictionary attacks against the passwords more difficult\&.
    + 
     .SH "RESTRICTIONS"
      
     .PP
    diff --git a/docs/man/httpd.8 b/docs/man/httpd.8
    index 8c24dec7889..9b0f3fa24a8 100644
    --- a/docs/man/httpd.8
    +++ b/docs/man/httpd.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "HTTPD" 8 "2004-07-10" "Apache HTTP Server" "httpd"
    +.TH "HTTPD" 8 "2012-02-10" "Apache HTTP Server" "httpd"
     
     .SH NAME
     httpd \- Apache Hypertext Transfer Protocol Server
    @@ -27,7 +27,7 @@ httpd \- Apache Hypertext Transfer Protocol Server
     .SH "SYNOPSIS"
      
     .PP
    -\fBhttpd\fR [ -\fBd\fR \fIserverroot\fR ] [ -\fBf\fR \fIconfig\fR ] [ -\fBC\fR \fIdirective\fR ] [ -\fBc\fR \fIdirective\fR ] [ -\fBD\fR \fIparameter\fR ] [ -\fBe\fR \fIlevel\fR ] [ -\fBE\fR \fIfile\fR ] [ \fB-k\fR start|restart|graceful|stop ] [ -\fBR\fR \fIdirectory\fR ] [ -\fBh\fR ] [ -\fBl\fR ] [ -\fBL\fR ] [ -\fBS\fR ] [ -\fBt\fR ] [ -\fBv\fR ] [ -\fBV\fR ] [ -\fBX\fR ] [ -\fBM\fR ]
    +\fBhttpd\fR [ -\fBd\fR \fIserverroot\fR ] [ -\fBf\fR \fIconfig\fR ] [ -\fBC\fR \fIdirective\fR ] [ -\fBc\fR \fIdirective\fR ] [ -\fBD\fR \fIparameter\fR ] [ -\fBe\fR \fIlevel\fR ] [ -\fBE\fR \fIfile\fR ] [ \fB-k\fR start|restart|graceful|stop|graceful-stop ] [ -\fBh\fR ] [ -\fBl\fR ] [ -\fBL\fR ] [ -\fBS\fR ] [ -\fBt\fR ] [ -\fBv\fR ] [ -\fBV\fR ] [ -\fBX\fR ] [ -\fBM\fR ] [ -\fBT\fR ]
      
     .PP
     On Windows systems, the following additional arguments are available:
    @@ -55,8 +55,8 @@ Set the initial value for the ServerRoot directive to \fIserverroot\fR\&. This c
     -f \fIconfig\fR
     Uses the directives in the file \fIconfig\fR on startup\&. If \fIconfig\fR does not begin with a /, then it is taken to be a path relative to the ServerRoot\&. The default is conf/httpd\&.conf\&.  
     .TP
    --k start|restart|graceful|stop
    -Signals httpd to start, restart, or stop\&. See Stopping Apache for more information\&.  
    +-k start|restart|graceful|stop|graceful-stop
    +Signals httpd to start, restart, or stop\&. See Stopping Apache httpd for more information\&.  
     .TP
     -C \fIdirective\fR
     Process the configuration \fIdirective\fR before reading config files\&.  
    @@ -65,7 +65,7 @@ Process the configuration \fIdirective\fR before reading config files\&.
     Process the configuration \fIdirective\fR after reading config files\&.  
     .TP
     -D \fIparameter\fR
    -Sets a configuration \fIparameter \fRwhich can be used with <IfDefine> sections in the configuration files to conditionally skip or process commands at server startup and restart\&.  
    +Sets a configuration \fIparameter \fRwhich can be used with <IfDefine> sections in the configuration files to conditionally skip or process commands at server startup and restart\&. Also can be used to set certain less-common startup parameters including -DNO_DETACH (prevent the parent from forking) and -DFOREGROUND (prevent the parent from calling setsid() et al)\&.  
     .TP
     -e \fIlevel\fR
     Sets the LogLevel to \fIlevel\fR during server startup\&. This is useful for temporarily increasing the verbosity of the error messages to find problems during startup\&.  
    @@ -91,6 +91,9 @@ Dump a list of loaded Static and Shared Modules\&.
     -S
     Show the settings as parsed from the config file (currently only shows the virtualhost settings)\&.  
     .TP
    +-T (Available in 2\&.2\&.17 and later)
    +Skip document root check at startup/restart\&.  
    +.TP
     -t
     Run syntax tests for configuration files only\&. The program immediately exits after these syntax parsing tests with either a return code of 0 (Syntax OK) or return code not equal to 0 (Syntax Error)\&. If -D \fIDUMP\fR_\fIVHOSTS \fRis also set, details of the virtual host configuration will be printed\&. If -D \fIDUMP\fR_\fIMODULES \fR is set, all loaded modules will be printed\&.  
     .TP
    @@ -109,10 +112,10 @@ The following arguments are available only on the Windows platform:
      
     .TP
     -k install|config|uninstall
    -Install Apache as a Windows NT service; change startup options for the Apache service; and uninstall the Apache service\&.  
    +Install Apache httpd as a Windows NT service; change startup options for the Apache httpd service; and uninstall the Apache httpd service\&.  
     .TP
     -n \fIname\fR
    -The \fIname\fR of the Apache service to signal\&.  
    +The \fIname\fR of the Apache httpd service to signal\&.  
     .TP
     -w
     Keep the console window open on error so that the error message can be read\&.  
    diff --git a/docs/man/httxt2dbm.1 b/docs/man/httxt2dbm.1
    new file mode 100644
    index 00000000000..bfad55ed95a
    --- /dev/null
    +++ b/docs/man/httxt2dbm.1
    @@ -0,0 +1,62 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "HTTXT2DBM" 1 "2012-03-21" "Apache HTTP Server" "httxt2dbm"
    +
    +.SH NAME
    +httxt2dbm \- Generate dbm files for use with RewriteMap
    +
    +.SH "SYNOPSIS"
    + 
    +.PP
    +\fBhttxt2dbm\fR [ -\fBv\fR ] [ -\fBf\fR \fIDBM_TYPE\fR ] -\fBi\fR \fISOURCE_TXT\fR -\fBo\fR \fIOUTPUT_DBM\fR
    + 
    +
    +.SH "SUMMARY"
    + 
    +.PP
    +httxt2dbm is used to generate dbm files from text input, for use in RewriteMap with the dbm map type\&.
    + 
    +
    +.SH "OPTIONS"
    + 
    + 
    +.TP
    +-v
    +More verbose output  
    +.TP
    +-f \fIDBM_TYPE\fR
    +Specify the DBM type to be used for the output\&. If not specified, will use the APR Default\&. Available types are: GDBM for GDBM files, SDBM for SDBM files, DB for berkeley DB files, NDBM for NDBM files, default for the default DBM type\&.  
    +.TP
    +-i \fISOURCE_TXT\fR
    +Input file from which the dbm is to be created\&. The file should be formated with one record per line, of the form: key value\&. See the documentation for RewriteMap for further details of this file's format and meaning\&.  
    +.TP
    +-o \fIOUTPUT_DBM\fR
    +Name of the output dbm files\&.  
    + 
    +.SH "EXAMPLES"
    + 
    +.nf
    +
    +      httxt2dbm -i rewritemap\&.txt -o rewritemap\&.dbm
    +      httxt2dbm -f SDBM -i rewritemap\&.txt -o rewritemap\&.dbm 
    +.fi
    + 
    diff --git a/docs/man/logresolve.8 b/docs/man/logresolve.8
    index 5820739e8b6..91776e17c7f 100644
    --- a/docs/man/logresolve.8
    +++ b/docs/man/logresolve.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "LOGRESOLVE" 8 "2005-06-29" "Apache HTTP Server" "logresolve"
    +.TH "LOGRESOLVE" 8 "2012-03-21" "Apache HTTP Server" "logresolve"
     
     .SH NAME
     logresolve \- Resolve IP-addresses to hostnames in Apache log files
    diff --git a/docs/man/rotatelogs.8 b/docs/man/rotatelogs.8
    index a8875f751f2..5a4d6227cb8 100644
    --- a/docs/man/rotatelogs.8
    +++ b/docs/man/rotatelogs.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "ROTATELOGS" 8 "2004-06-20" "Apache HTTP Server" "rotatelogs"
    +.TH "ROTATELOGS" 8 "2010-11-06" "Apache HTTP Server" "rotatelogs"
     
     .SH NAME
     rotatelogs \- Piped logging program to rotate Apache logs
    @@ -27,13 +27,38 @@ rotatelogs \- Piped logging program to rotate Apache logs
     .SH "SYNOPSIS"
      
     .PP
    -\fBrotatelogs\fR [ -\fBl\fR ] \fIlogfile\fR [ \fIrotationtime\fR [ \fIoffset\fR ]] | [ \fIfilesize\fRM ]
    +\fBrotatelogs\fR [ -\fBl\fR ] [ -\fBf\fR ] \fIlogfile\fR \fIrotationtime\fR|\fIfilesize\fRM [ \fIoffset\fR ]
      
     
     .SH "SUMMARY"
      
     .PP
    -rotatelogs is a simple program for use in conjunction with Apache's piped logfile feature\&. For example:
    +rotatelogs is a simple program for use in conjunction with Apache's piped logfile feature\&. It supports rotation based on a time interval or maximum size of the log\&.
    + 
    +
    +.SH "OPTIONS"
    + 
    + 
    +.TP
    +-l
    +Causes the use of local time rather than GMT as the base for the interval or for strftime(3) formatting with size-based rotation\&. Note that using -l in an environment which changes the GMT offset (such as for BST or DST) can lead to unpredictable results!  
    +.TP
    +-f
    +Causes the logfile to be opened immediately, as soon as rotatelogs starts, instead of waiting for the first logfile entry to be read (for non-busy sites, there may be a substantial delay between when the server is started and when the first request is handled, meaning that the associated logfile does not "exist" until then, which causes problems from some automated logging tools)\&. \fIAvailable in version 2\&.2\&.9 and later\&.\fR  
    +.TP
    +\fIlogfile\fR
    +.PP The path plus basename of the logfile\&. If \fIlogfile\fR includes any '%' characters, it is treated as a format string for strftime(3)\&. Otherwise, the suffix \fI\&.nnnnnnnnnn\fR is automatically added and is the time in seconds\&. Both formats compute the start time from the beginning of the current period\&. For example, if a rotation time of 86400 is specified, the hour, minute, and second fields created from the strftime(3) format will all be zero, referring to the beginning of the current 24-hour period (midnight)\&. .PP When using strftime(3) filename formatting, be sure the log file format has enough granularity to produce a different file name each time the logs are rotated\&. Otherwise rotation will overwrite the same file instead of starting a new one\&. For example, if \fIlogfile\fR was /var/logs/errorlog\&.%Y-%m-%d with log rotation at 5 megabytes, but 5 megabytes was reached twice in the same day, the same log file name would be produced and log rotation would keep writing to the same file\&.  
    +.TP
    +\fIrotationtime\fR
    +The time between log file rotations in seconds\&. The rotation occurs at the beginning of this interval\&. For example, if the rotation time is 3600, the log file will be rotated at the beginning of every hour; if the rotation time is 86400, the log file will be rotated every night at midnight\&. (If no data is logged during an interval, no file will be created\&.)  
    +.TP
    +\fIfilesize\fRM
    +The maximum file size in megabytes followed by the letter M to specify size rather than time\&.  
    +.TP
    +\fIoffset\fR
    +The number of minutes offset from UTC\&. If omitted, zero is assumed and UTC is used\&. For example, to use local time in the zone UTC -5 hours, specify a value of -300 for this argument\&. In most cases, -l should be used instead of specifying an offset\&.  
    + 
    +.SH "EXAMPLES"
      
     .nf
     
    @@ -44,6 +69,15 @@ rotatelogs is a simple program for use in conjunction with Apache's piped logfil
     .PP
     This creates the files /var/logs/logfile\&.nnnn where nnnn is the system time at which the log nominally starts (this time will always be a multiple of the rotation time, so you can synchronize cron scripts with it)\&. At the end of each rotation time (here after 24 hours) a new log is started\&.
      
    +.nf
    +
    +     CustomLog "|bin/rotatelogs -l /var/logs/logfile\&.%Y\&.%m\&.%d 86400" common
    +
    +.fi
    + 
    +.PP
    +This creates the files /var/logs/logfile\&.yyyy\&.mm\&.dd where yyyy is the year, mm is the month, and dd is the day of the month\&. Logging will switch to a new file every day at midnight, local time\&.
    + 
     .nf
     
          CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common
    @@ -62,26 +96,6 @@ This configuration will rotate the logfile whenever it reaches a size of 5 megab
     .PP
     This configuration will rotate the error logfile whenever it reaches a size of 5 megabytes, and the suffix to the logfile name will be created of the form errorlog\&.YYYY-mm-dd-HH_MM_SS\&.
      
    -
    -.SH "OPTIONS"
    - 
    - 
    -.TP
    --l
    -Causes the use of local time rather than GMT as the base for the interval\&. Note that using -l in an environment which changes the GMT offset (such as for BST or DST) can lead to unpredictable results!  
    -.TP
    -\fIlogfile\fR
    -The path plus basename of the logfile\&. If \fIlogfile\fR includes any '%' characters, it is treated as a format string for strftime(3)\&. Otherwise, the suffix \fI\&.nnnnnnnnnn\fR is automatically added and is the time in seconds\&. Both formats compute the start time from the beginning of the current period\&.  
    -.TP
    -\fIrotationtime\fR
    -The time between log file rotations in seconds\&.  
    -.TP
    -\fIoffset\fR
    -The number of minutes offset from UTC\&. If omitted, zero is assumed and UTC is used\&. For example, to use local time in the zone UTC -5 hours, specify a value of -300 for this argument\&.  
    -.TP
    -\fIfilesize\fRM
    -The maximum file size in megabytes followed by the letter M to specify size rather than time\&. Use this parameter in place of both rotationtime and offset\&.  
    - 
     .SH "PORTABILITY"
      
     .PP
    diff --git a/docs/man/suexec.8 b/docs/man/suexec.8
    index bcc4e7abea5..04ac0e6e57c 100644
    --- a/docs/man/suexec.8
    +++ b/docs/man/suexec.8
    @@ -19,7 +19,7 @@
     .el .ne 3
     .IP "\\$1" \\$2
     ..
    -.TH "SUEXEC" 8 "2003-12-02" "Apache HTTP Server" "suexec"
    +.TH "SUEXEC" 8 "2014-01-20" "Apache HTTP Server" "suexec"
     
     .SH NAME
     suexec \- Switch user before executing external programs
    @@ -36,7 +36,7 @@ suexec \- Switch user before executing external programs
     suexec is used by the Apache HTTP Server to switch to another user before executing CGI programs\&. In order to achieve this, it must run as root\&. Since the HTTP daemon normally doesn't run as root, the suexec executable needs the setuid bit set and must be owned by root\&. It should never be writable for any other person than root\&.
      
     .PP
    -For further information about the concepts and and the security model of suexec please refer to the suexec documentation (http://httpd\&.apache\&.org/docs-2\&.1/suexec\&.html)\&.
    +For further information about the concepts and the security model of suexec please refer to the suexec documentation (http://httpd\&.apache\&.org/docs/2\&.2/suexec\&.html)\&.
      
     
     .SH "OPTIONS"
    diff --git a/docs/man/tr/ab.8 b/docs/man/tr/ab.8
    new file mode 100644
    index 00000000000..b3691913c48
    --- /dev/null
    +++ b/docs/man/tr/ab.8
    @@ -0,0 +1,204 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "AB" 8 "2012-10-03" "Apache HTTP Sunucusu" "ab"
    +.nh
    +.SH İSİM
    +ab \- Apache HTTP sunucusu başarım ölçme aracı
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBab\fR [ -\fBA\fR \fIyetkili-kullanıcı:parola\fR ] [ -\fBb\fR \fItampon-boyu\fR ] [ -\fBc\fR \fIbağlantı-sayısı\fR ] [ -\fBC\fR \fIçerez-ismi=değer\fR ] [ -\fBd\fR ] [ -\fBe\fR \fIcsv-dosyası\fR ] [ -\fBf\fR \fIprotokol\fR ] [ -\fBg\fR \fIgnuplot-dosyası\fR ] [ -\fBh\fR ] [ -\fBH\fR \fIözel-başlık\fR ] [ -\fBi\fR ] [ -\fBk\fR ] [ -\fBn\fR \fIistek-sayısı\fR ] [ -\fBp\fR \fIPOST-dosyası\fR ] [ -\fBP\fR \fIvekil-yetkilisi:parola\fR ] [ -\fBq\fR ] [ -\fBr\fR ] [ -\fBs\fR ] [ -\fBS\fR ] [ -\fBt\fR \fIsaniye\fR ] [ -\fBT\fR \fIiçerik-türü\fR ] [ -\fBu\fR \fIPUT-dosyası\fR ] [ -\fBv\fR \fIayrıntı-düzeyi\fR] [ -\fBV\fR ] [ -\fBw\fR ] [ -\fBx\fR \fI<table>-öznitelikleri\fR ] [ -\fBX\fR \fIvekil\fR[:\fIport\fR] ] [ -\fBy\fR \fI<tr>-öznitelikleri\fR ] [ -\fBz\fR \fI<td>-öznitelikleri\fR ] [ -\fBZ\fR \fIşifre-kümesi\fR ] [http[s]://]\fIkonakadı\fR[:\fIport\fR]/\fIdizin\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBab\fR Apache Hiper Metin Aktarım Protokolü (HTTP) sunucunuzun başarımını ölçmek amacıyla kullanabileceğiniz bir kıyaslama aracıdır\&. Mevcut Apache kurulumunuzun görevini nasıl yerine getirdiği hakkında bir izlenim edinmeniz için tasarlanmıştır\&. Özellikle, Apache kurulumunuzun saniyede kaç isteği sunma yeteneğinde olduğunu gösterir\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-A\fR \fIyetkili-kullanıcı\fR:\fIparola\fR
    +Sunucuya TEMEL Kimlik Doğrulamada kullanılmak üzere kanıt sağlar\&. Kullanıcı adı ile parola arasına sadece : konur ve sunucunun buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "401 kimlik doğrulaması gerekli" yanıtı beklenmeden) bağlantı üzerinden base64 kodlu olarak sunucuya gönderilir\&.  
    +.TP
    +\fB-b\fR \fItampon-boyu\fR
    +TCP gönderme/alma tamponlarının bayt cinsinden uzunluğu\&.  
    +.TP
    +\fB-c\fR \fIbağlantı-sayısı\fR
    +Aynı anda işleme sokulacak bağlantı sayısı\&. Aynı anda bir bağlantı öntanımlı değerdir\&.  
    +.TP
    +\fB-C\fR \fIçerez-ismi\fR=\fIdeğer\fR
    +İsteğe bir Cookie: satırı ekler\&. Argüman olarak genellikle bir \fIisim=değer\fR çifti kullanılır\&. Bu çiftler birden fazla olabilir\&.  
    +.TP
    +\fB-d\fR
    +"percentage served within XX [ms] table" iletisi gösterilmez\&. (Geriye uyumluluk için vardır)\&.  
    +.TP
    +\fB-e\fR \fIcsv-dosyası\fR
    +Sunulan isteğin birim zamanda (milisaniye) ne kadarının (yüzde cinsinden) sunulduğunu gösteren virgül ayraçlı değerler (CSV) dosyası\&. Sonuçlar 'bobin haline' getirilmiş olduğundan doğal olarak 'gnuplot' dosyasından daha yararlıdır\&.  
    +.TP
    +\fB-f\fR \fIprotokol\fR
    +SSL/TLS protokolü belirtilir (SSL2, SSL3, TLS1 veya ALL)\&.  
    +.TP
    +\fB-g\fR \fIgnuplot-dosyası\fR
    +Ölçülen değerler bir 'gnuplot' veya TSV (sekme ayraçlı değerler) dosyasına yazılır\&. Bu dosya, Gnuplot, IDL, Mathematica, Igor hatta Excel tarafından veri dosyası olarak kabul edilir\&. Veri sütunlarının başlıkları dosyanın ilk satırında bulunur\&.  
    +.TP
    +\fB-h\fR
    +Kullanım bilgisi gösterir\&.  
    +.TP
    +\fB-H\fR \fIözel-başlık\fR
    +İsteğe fazladan başlık ekler\&. \fIözel-başlık\fR, aralarında iki nokta imi bulunan bir isim-değer çifti olarak belirtilir\&. Örnek: "Accept-Encoding: zip/zop;8bit"  
    +.TP
    +\fB-i\fR
    +GET istekleri yerine HEAD istekleri yapılır\&.  
    +.TP
    +\fB-k\fR
    +HTTP KeepAlive (kalıcı bağlantı) özelliğini etkinleştirir, yani tek bir oturum içinde çok sayıda isteğe hizmet sunulabilir\&. Özellik öntanımlı olarak kapalıdır\&.  
    +.TP
    +\fB-n\fR \fIistek-sayısı\fR
    +Kıyaslama oturumu sırasında sunucuya uygulanacak istek sayısı\&. Öntanımlı olarak hiçbir başarım ölçütü sağlamayan tek bir istek yapılır\&.  
    +.TP
    +\fB-p\fR \fIPOST-dosyası\fR
    +POST isteği ile ilgili verileri içeren dosya\&. Ayrıca \fB-T\fR seçeneğini de belirtmeyi unutmayın\&.\&.  
    +.TP
    +\fB-P\fR \fIvekil-yetkilisi\fR:\fIparola\fR
    +Vekil sunucuya TEMEL Kimlik Doğrulamasında kullanılacak kanıtları sağlar\&. Kullanıcı adı ile parola arasına sadece : konur ve vekilin buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "407 vekilde kimlik doğrulaması gerekiyor" yanıtı beklenmeden) bağlantı üzerinden base64 kodlu olarak sunucuya gönderilir\&.  
    +.TP
    +\fB-q\fR
    +İstek sayısı 150'den fazla olduğunda, \fBab\fR her 100 veya %10 istekte bir, standart hataya bir işlenen istek sayacı çıktılar\&. \fB-q\fR seçeneği bu çıktının üretilmemesini sağlar\&.  
    +.TP
    +\fB-r\fR
    +Soket hata alsa bile program çıkmaz\&.  
    +.TP
    +\fB-s\fR
    +Derlendiği takdirde (\fBab -h\fR bunu gösterir) http protokolü yerine SSL korumalı https protokolü kullanılır\&. Bu özellik henüz \fIemekleme\fR aşamasında olup geliştirilmeye devam edilmektedir\&. Bu bakımdan kullanımı önerilmez\&.  
    +.TP
    +\fB-S\fR
    +Ortalama ve ortanca değerler arasında bir veya iki standart sapmadan fazlası varsa ne ortalama değer ne standart sapma değeri ne de uyarı/hata iletileri gösterilir\&. Öntanımlı olarak, asgari/ortalama/azami değerler gösterilir\&. (Geriye uyumluluk)\&.  
    +.TP
    +\fB-t\fR \fIsaniye\fR
    +Ölçümleme işleminin ne kadar süreyle uygulanacağı belirtilir\&. Dahili olarak \fB-n 50000\fR seçeneği uygulanır\&. Bunu belli bir süreye göre kıyaslama yapmak amacıyla kullanabilirsiniz\&. Öntanımlı olarak bir süre kısıtlaması yoktur\&.  
    +.TP
    +\fB-T\fR \fIiçerik-türü\fR
    +POST/PUT verisi için kullanılacak içerik türü belirtilir\&. Örnek: application/x-www-form-urlencoded\&. Öntanımlı değer: text/plain\&.  
    +.TP
    +-u \fIPUT-dosyası\fR
    +PUT verisini içeren dosya\&. Ayrıca, -T seçeneğini belirtmeyi de unutmayın\&.  
    +.TP
    +\fB-v\fR \fIayrıntı-düzeyi\fR
    +Çıktının ayrıntı düzeyi belirtilir\&. 4 ve üstü ile başlıklar hakkında bilgi, 3 ve üstü ile yanıt kodları (404, 200, vb\&.), 2 ve üstü ile ise uyarı ve bilgi iletileri gösterilir\&.  
    +.TP
    +\fB-V\fR
    +Sürüm bilgilerini gösterir ve çıkar\&.  
    +.TP
    +\fB-w\fR
    +Sonuçları HTML tabloları olarak basar\&. Öntanımlı tablo, beyaz artalanlı ve iki sütunludur\&.  
    +.TP
    +\fB-x\fR \fI<table>-öznitelikleri\fR
    +<table> etiketinde kullanılacak öznitelikler belirtilir\&. Belirtilen öznitelikler etiket içine <table \fIburaya\fR > biçeminde yerleştirilir\&.  
    +.TP
    +\fB-X\fR \fIvekil\fR[:\fIport\fR]
    +İstekler için bir vekil sunucu kullanılır\&.  
    +.TP
    +\fB-y\fR \fI<tr>-öznitelikleri\fR
    +<tr> etiketinde kullanılacak öznitelikler belirtilir\&.  
    +.TP
    +\fB-z\fR \fI<td>-öznitelikleri\fR
    +<td> etiketinde kullanılacak öznitelikler belirtilir\&.  
    +.TP
    +-Z \fIşifre-kümesi\fR
    +SSL/TLS şifre kümesi belirtilir (\fBopenssl\fR(1) şifrelerine bakınız)\&.  
    + 
    +.SH "ÇIKTI"
    + 
    +.PP
    +Aşağıdaki listede \fBab\fR çıktısındaki değerler açıklanmıştır:
    + 
    + 
    +.TP
    +Server Software
    +Varsa, bu değer başarılı ilk yanıtın \fIserver\fR HTTP başlığında döner\&. Bu değer, başlıktan saptanan, başlangıçtan 32 onluk değerli karaktere (gerçekte, bir boşluk veya CR/LF) kadar olan tüm karakterleri içerir\&.  
    +.TP
    +Server Hostname
    +Komut satırında belirtilen DNS veya IP adresi\&.  
    +.TP
    +Server Port
    +\fBab\fR'nin bağlandığı port\&. Komut satırında bir port belirtilmemişse http için 80, https için 443 öntanımlıdır\&.  
    +.TP
    +SSL/TLS Protocol
    +İstemci ile sunucu arasında alıp verilen protokol değerleri\&. Bu sadece SSL kullanılıyorsa çıktılanır\&.  
    +.TP
    +Document Path
    +Komut satırından elde edilen istek URI'si\&.  
    +.TP
    +Document Length
    +Başarıyla dönen ilk belgenin bayt cinsinden uzunluğu\&. Eğer belge uzunluğu sınama sırasında değişirse yanıt bir hata olarak ele alınır\&.  
    +.TP
    +Concurrency Level
    +Sınama sırasında eşzamanlanan istemci sayısı\&.  
    +.TP
    +Time taken for tests
    +İlk soket bağlantısının kurulduğu andan son yanıtın alındığı ana kadar geçen süre\&.  
    +.TP
    +Complete requests
    +Alınan başarılı yanıtların sayısı\&.  
    +.TP
    +Failed requests
    +Başarısız olarak kabul edilen istek sayısı\&. Bu sayı sıfırdan farklıysa, ayrı bir satırda, bağlantıdan, okumadan, yanlış içerik uzunluğundan veya istisnalardan kaynaklanan başarısızlık sayıları da gösterilir\&.  
    +.TP
    +Write errors
    +Yazma sırasında oluşan hata (kırık boru) sayısı\&.  
    +.TP
    +Non-2xx responses
    +200 serisinden olmayan yanıt kodlarının sayısı\&. Tüm yanıtlar 200 kodlu ise bu alan çıktılanmaz\&.  
    +.TP
    +Keep-Alive requests
    +Keep-Alive isteklerinde sonuçlanan bağlantı sayısı\&.  
    +.TP
    +Total body sent
    +Yapılandırılmışsa, sınamanın bir parçası olarak gönderilecek toplam veri miktarı (bayt)\&. Sınama sırasında gönderi bir veri gövdesi içermiyorsa bu alan çıktılanmaz\&.  
    +.TP
    +Total transferred
    +Sunucudan alınan toplam bayt sayısı\&. Bu sayı aslında hattan gönderilen bayt miktarıdır\&.  
    +.TP
    +HTML transferred
    +Sunucudan alınan toplam belge baytı miktarı\&. Bu miktar HTTP başlıklarındaki baytları içermez\&.  
    +.TP
    +Requests per second
    +Saniyedeki istek sayısı\&. Toplam istek sayısının isteklerin toplam zamanına oranıdır\&.  
    +.TP
    +Time per request
    +İstek başına harcanan ortalama zaman\&. İlk değerin formülü: eşzamanlananİstemciSayısı * geçenSüre * 1000 / tamamlananİstekSayısı, ikinci değerin formülü: geçenSüre * 1000 / tamamlananİstekSayısı  
    +.TP
    +Transfer rate
    +okunanToplam / 1024 / geçenSüre formülü ile hesaplanan aktarım hızı\&.  
    + 
    +.SH "BÖRTÜ BÖCEK"
    + 
    +.PP
    +Duruk bildirimli sabit uzunlukta çeşitli tamponlar vardır\&. Sunucudan gelen yanıt başlıkları ve diğer harici girdiler, komut satırı argümanları ile birlikte basitçe çözümlenir, bu size can sıkıcı gelebilir\&.
    + 
    +.PP
    +HTTP/1\&.x protokolünü tamamen gerçeklemez; sadece yanıtların 'belli başlı' bazı biçimlerini kabul eder\&. Aksi takdirde, \fBstrstr\fR(3) işlevinin yoğun kullanımı nedeniyle sunucu yerine \fBab\fR'nin başarımını ölçerdiniz\&.
    + 
    diff --git a/docs/man/tr/apachectl.8 b/docs/man/tr/apachectl.8
    new file mode 100644
    index 00000000000..2c288c9c642
    --- /dev/null
    +++ b/docs/man/tr/apachectl.8
    @@ -0,0 +1,95 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "APACHECTL" 8 "2009-02-16" "Apache HTTP Sunucusu" "apachectl"
    +.nh
    +.SH İSİM
    +apachectl \- Apache HTTP Sunucusu Denetim Arayüzü
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBapachectl\fR önyüz kipinde çalıştığında \fBhttpd\fR programının bütün komut satırı argümanlarını kabul edebilir\&.
    + 
    +.PP
    +\fBapachectl\fR [ \fIhttpd-argümanları\fR ]
    + 
    +.PP
    +SysV başlatma betiği kipinde ise, \fBapachectl\fR aşağıda tanımlanan basit, tek sözcüklük komutları kabul eder\&.
    + 
    +.PP
    +\fBapachectl\fR \fIkomut\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBapachectl\fR Apache Hiper Metin Aktarım Protokolü (HTTP) sunucusu için bir denetim aracıdır\&. Sistem yöneticisinin Apache \fBhttpd\fR artalan sürecini denetimi altında tutabilmesine yardımcı olmak amacıyla tasarlanmıştır\&.
    + 
    +.PP
    +\fBapachectl\fR iki kipte işleyebilir\&. İlkinde, \fBhttpd\fR komutu için basit bir önyüz gibi davranarak, gerekli ortam değişkenlerini atar ve belirtilen komut satırı seçenekleriyle \fBhttpd\fR sürecini başlatır\&. İkinci kipte ise, \fBapachectl\fR bir SysV başlatma betiği olarak \fBstart\fR, \fBrestart\fR, \fBstop\fR gibi tek sözcüklük basit argümanlar alır ve bunları uygun sinyallere dönüştürerek \fBhttpd\fR'ye gönderir\&.
    + 
    +.PP
    +Eğer Apache kurulumunuzda standart dışı dosya yolları kullanmışsanız, \fBhttpd\fR programına uygun yolları atamak için \fBapachectl\fR betiğini elden geçirmelisiniz\&. Bu arada gerek gördüğünüz \fBhttpd\fR komut satırı argümanlarını da belirtebilirsiniz\&. Ayrıntılar için betik içindeki açıklamalara bakınız\&.
    + 
    +.PP
    +\fBapachectl\fR betiği başarı durumunda 0 çıkış değeri ile döner\&. Bir hata durumunda ise sıfırdan farklı bir değerle döner\&. Daha fazla bilgi için betik içindeki açıklamalara bakınız\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    +.PP
    +Burada sadece SysV başlatma betiğine özgü seçeneklere yer verilmiştir\&. Diğer argümanlar için \fBhttpd\fR kılavuz sayfasına bakınız\&.
    + 
    + 
    +.TP
    +\fBstart\fR
    +Apache \fBhttpd\fR artalan sürecini başlatır\&. Zaten çalışmaktaysa bir hata verir\&. \fBapachectl -k start\fR komutuna eşdeğerdir\&.  
    +.TP
    +\fBstop\fR
    +Apache \fBhttpd\fR artalan sürecini durdurur\&. \fBapachectl -k stop\fR komutuna eşdeğerdir\&.  
    +.TP
    +\fBrestart\fR
    +Apache \fBhttpd\fR artalan sürecini yeniden başlatır; çalışmıyorsa çalıştırılır\&. Artalan sürecinin ölü olmadığından emin olmak için yeniden başlatmadan önce \fBconfigtest\fR seçeneği verilmiş gibi yapılandırma dosyaları sınanır\&. \fBapachectl -k restart\fR komutuna eşdeğerdir\&.  
    +.TP
    +\fBfullstatus\fR
    +\fBmod_status\fR üzerinden tam bir durum raporu gösterir\&. Bunun çalışması için sunucuda \fBmod_status\fR etkinleştirilmiş olmalı ve sisteminizde \fBlynx\fR gibi bir metin kipi HTTP tarayıcı kurulu olmalıdır\&. Durum raporuna erişmek için kullanılacak adres betik içinde STATUSURL değişkenine atanabilir\&.  
    +.TP
    +\fBstatus\fR
    +Özet halinde bir durum raporu gösterir\&. O an sunulmakta olan isteklerin gösterilmemesi dışında \fBfullstatus\fR seçeneği gibidir\&.  
    +.TP
    +\fBgraceful\fR
    +Apache \fBhttpd\fR artalan sürecini \fInazikçe\fR yeniden başlatır; çalışmıyorsa çalıştırılır\&. O an hizmet sunmakta olan çocuk süreçleri hemen durdurmaması dışında normal yeniden başlatma gibidir\&. Bir yan etki olarak eski günlük dosyaları hemen kapatılmaz\&. Yani, günlük dosyalarını döndüren bir betik kullanıyorsanız yenilerini başlatmadan önce eski dosyaların tamamen kapandığından emin olmak için belli bir süre beklemeniz gerekecektir\&. Artalan sürecinin ölü olmadığından emin olmak için yeniden başlatmadan önce \fBconfigtest\fR seçeneği verilmiş gibi yapılandırma dosyaları sınanır\&. \fBapachectl -k graceful\fR komutuna eşdeğerdir\&.  
    +.TP
    +\fBgraceful-stop\fR
    +Apache \fBhttpd\fR artalan sürecini \fInazikçe\fR durdurur\&. O an hizmet sunmakta olan çocuk süreçleri hemen durdurmaması dışında normal durdurma gibidir\&. Bir yan etki olarak eski günlük dosyaları hemen kapatılmaz\&. \fBapachectl -k graceful-stop\fR komutuna eşdeğerdir\&.  
    +.TP
    +\fBconfigtest\fR
    +Yapılandırma dosyasında sözdizimi denetimi yapılmasını sağlar\&. Yapılandırma dosyaları çözümlenir ve bir sorun yoksa bir Syntax Ok raporu verilir fakat, bir hata varsa o hataya ilişkin ayrıntılı bilgi verilir\&. \fBapachectl -t\fR komutuna eşdeğerdir\&.  
    + 
    +.PP
    +Aşağıdaki seçenek eski sürümlerde kullanılmaktaydı, fakat artık kullanılmamaktadır\&.
    + 
    + 
    +.TP
    +startssl
    +\fBhttpd\fR programını SSL destekli başlatmak için, yapılandırma dosyanızı ilgili yönergeleri içermesi için elden geçirmeli ve normal \fBapachectl start\fR komutunu kullanmalısınız\&.  
    + 
    diff --git a/docs/man/tr/apxs.8 b/docs/man/tr/apxs.8
    new file mode 100644
    index 00000000000..ad67af5eb1f
    --- /dev/null
    +++ b/docs/man/tr/apxs.8
    @@ -0,0 +1,248 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "APXS" 8 "2009-02-16" "Apache HTTP Sunucusu" "apxs"
    +.nh
    +.SH İSİM
    +apxs \- Apache Eklenti Aracı
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBapxs\fR -\fBg\fR [ -\fBS\fR \fIisim=değer\fR ] -\fBn\fR \fImodüladı\fR
    + 
    +.PP
    +\fBapxs\fR -\fBq\fR [ -\fBS\fR \fIisim=değer\fR ] \fIsorgu\fR \&.\&.\&.
    + 
    +.PP
    +\fBapxs\fR -\fBc\fR [ -\fBS\fR \fIisim=değer\fR ] [ -\fBo\fR \fIdso-dosyası\fR ] [ -\fBI\fR \fIinclude-dizini\fR ] [ -\fBD\fR \fIisim=değer\fR ] [ -\fBL\fR \fIlib-dizini\fR ] [ -\fBl\fR \fIkütüphane-adı\fR ] [ -\fBWc,\fR\fIderleyici-seçenekleri\fR ] [ -\fBWl,\fR\fIilintileyici-seçenekleri\fR ] \fIdosya\fR \&.\&.\&.
    + 
    +.PP
    +\fBapxs\fR -\fBi\fR [ -\fBS\fR \fIisim=değer\fR ] [ -\fBn\fR \fImodüladı\fR ] [ -\fBa\fR ] [ -\fBA\fR ] \fIdso-dosyası\fR \&.\&.\&.
    + 
    +.PP
    +\fBapxs\fR -\fBe\fR [ -\fBS\fR \fIisim=değer\fR ] [ -\fBn\fR \fImodüladı\fR ] [ -\fBa\fR ] [ -\fBA\fR ] \fIdso-dosyası\fR \&.\&.\&.
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBapxs\fR, Apache Hiper Metin Aktarım Protokolü (HTTP) sunucusu için ek modül derleme ve kurulum aracıdır\&. Bu araç sayesinde, bir veya daha fazla kaynak veya nesne \fIdosya\fRsından bir devingen paylaşımlı nesne (DSO - "Dynamic Shared Object" kısaltması) derlemek ve bu nesneyi (modülü) Apache sunucusuna çalışma anında \fBmod_so\fR modülünün \fBLoadModule\fR yönergesi üzerinden yüklemek mümkün olmaktadır\&.
    + 
    +.PP
    +Bu eklenti mekanizmasını platformunuzda kullanmak için DSO desteğinin olması ve \fBhttpd\fR programının \fBmod_so\fR modülünü içerecek şekilde derlenmiş olması gerekir\&. Eğer bunlar mevcut değilse \fBapxs\fR aracı durumu size bildirecektir\&. Bunu aşağıdaki komutla kendiniz de sınayabilirsiniz:
    + 
    +.nf
    +
    +      $ httpd -l
    +    
    +.fi
    + 
    +.PP
    +\fBmod_so\fR modülü gösterilen listede yer almalıdır\&. Bu gereksinimler sağlandığı takdirde \fBapxs\fR aracı sayesinde DSO mekanizması üzerinden kendi modüllerinizi kurmak suretiyle Apache sunucunuzun işlevselliğini kolayca arttırabilirsiniz\&. Örnek bir uygulama:
    + 
    +.nf
    +
    +      $ apxs -i -a -c mod_foo\&.c
    +      gcc -fpic -DSHARED_MODULE -I/dosya/yolu/apache/include -c mod_foo\&.c
    +      ld -Bshareable -o mod_foo\&.so mod_foo\&.o
    +      cp mod_foo\&.so /dosya/yolu/apache/modules/mod_foo\&.so
    +      chmod 755 /dosya/yolu/apache/modules/mod_foo\&.so
    +      [`foo' modülü /dosya/yolu/apache/etc/httpd\&.conf'ta etkinleştiriliyor]
    +      $ apachectl restart
    +      /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    +      [Tue Mar 31 11:27:55 1998] [debug] mod_so\&.c(303): loaded module foo_module
    +      /dosya/yolu/apache/sbin/apachectl restart: httpd started
    +      $ _
    +    
    +.fi
    + 
    +.PP
    +\fIdosya\fR olarak bir C kaynak dosyası (\&.c), bir nesne dosyası (\&.o) ve hatta bir kütüphane arşivi archive (\&.a) belirtebilirsiniz\&. \fBapxs\fR aracı bu dosya uzantılarını tanıdığından C dosyalarını derleme işleminden, arşiv ve nesne dosyalarını ise doğrudan ilintileme işleminden geçirir\&. Fakat böyle önceden derlenmiş nesne dosyalarını kullanırken, devingen paylaşımlı nesne olarak kullanılmalarını sağlamak üzere konumdan bağımsız kod (PIC) üretecek şekilde derlenmiş olduklarından emin olmalısınız\&. Örneğin GCC'yi bunun için daima \fB-fpic\fR seçeneği ile kullanmalısınız\&. Diğer C derleyiciler için, \fBapxs\fR'in nesne dosyalarını derlerken kullanacağı seçenekleri öğrenmek için o derleyicilerin kılavuz sayfalarına bakınız\&.
    + 
    +.PP
    +Apache'deki DSO desteği ile ilgili daha ayrıntılı bilgi edinmek için \fBmod_so\fR belgesini okumakla yetinmeyip src/modules/standard/mod_so\&.c kaynak dosyasını da okuyunuz\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    +.SS "Ortak Seçenekler"
    + 
    + 
    +.TP
    +\fB-n\fR \fImodüladı\fR
    +-i (kurulum) ve -g (şablon üretimi) seçenekleri için modül ismi belirtmek amacıyla kullanılır\&. Bir modül ismi belirtmek için bu seçeneği kullanın\&. \fB-g\fR seçeneği için bu gereklidir\&. \fB-i\fR seçeneği için ise araç, modül ismini kaynağın ismine bakarak veya (son çare olarak) dosya isminden tahmin etmeye çalışarak saptamaya çalışır\&.  
    +  
    +.SS "Sorgu Seçenekleri"
    + 
    + 
    +.TP
    +\fB-q\fR \fIsorgu\fR
    +\fBapxs\fR'in belli ayarlar hakkında bilgisine başvurmak için bir sorgu gerçekleştirir\&. \fIsorgu\fR olarak şu dizgelerden biri veya birkaçı belirtilebilir: CC, CFLAGS, CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, LDFLAGS_SHLIB, LIBEXECDIR, LIBS_SHLIB, SBINDIR, SYSCONFDIR, TARGET\&. .PP Bu seçeneği ayarları öğrenmek için kullanın\&. Örneğin, Apache'nin C başlık dosyalarının yerini kendi Makefile dosyalarınızın içinde şöyle belirtebilirsiniz: INC=-I`apxs -q INCLUDEDIR`  
    +  
    +.SS "Yapılandırma Seçenekleri"
    + 
    + 
    +.TP
    +\fB-S\fR \fIisim=değer\fR
    +Bu seçenek yukarıda açıklanan \fBapxs\fR ayarlarını değiştirir\&.  
    +  
    +.SS "Şablon Üretme Seçenekleri"
    + 
    + 
    +.TP
    +\fB-g\fR
    +\fImodüladı\fR (\fB-n\fR seçeneğihe bakınız) adında bir alt dizin oluşturur ve içine iki dosya yerleştirir: Kendi modülünüzü oluşturabilmeniz için veya \fBapxs\fR mekanizmaları ile hemen oynamaya başlayabilmeniz için mod_\fImodüladı\fR\&.c adında bir modül kaynak dosyası örneği ve bu modülü derleyip kurmayı kolaylaştırmak için bir Makefile dosyası\&.  
    +  
    +.SS "DSO Derleme Seçenekleri"
    + 
    + 
    +.TP
    +\fB-c\fR
    +Bu seçenek derleme yapılacağını belirtir\&. Önce belirtilen C kaynak \fIdosyalar\fRını (\&.c), nesne dosyalarını (\&.o) elde etmek için derler\&. Sonra bunları kalan nesne dosyaları (\&.o ve \&.a) ile ilintileyerek \fIdso-dosyası\fR adında bir devingen paylaşımlı nesne oluşturur\&. Eğer \fB-o\fR seçeneği ile modül ismi belirtilmemişse \fIdosyalar\fR arasındaki ilk dosyanın ismine bakarak dosya ismi tahmin edilmeye çalışılır ve mod_\fIisim\fR\&.so dosya adı bu isimden elde edilir\&.  
    +.TP
    +\fB-o\fR \fIdso-dosyası\fR
    +Oluşturulacak devingen paylaşımlı nesnenin ismini belirtmek için kullanılır\&. Modül ismi bu seçenekle belirtilmez ve \fIdosya\fR listesinden bir isim tahmini de yapılamazsa son çare olarak mod_unknown\&.so ismi kullanılır\&.  
    +.TP
    +\fB-D\fR \fIisim=değer\fR
    +Bu seçenek doğrudan derleme komutlarına aktarılır\&. Bu seçeneği derleme işlemine kendi tanımlarınızı belirtmek için kullanın\&.  
    +.TP
    +\fB-I\fR \fIinclude-dizini\fR
    +Bu seçenek doğrudan derleme komutlarına aktarılır\&. Bu seçeneği derleme işleminde kullanılmak üzere kendi başlık dosyalarınızı içeren dizinleri arama yollarına eklemek için kullanın\&.  
    +.TP
    +\fB-L\fR \fIlib-dizini\fR
    +Bu seçenek doğrudan derleme komutlarına aktarılır\&. Bu seçeneği derleme işleminde kullanılmak üzere kendi kütüphane dizinlerinizi arama yollarına eklemek için kullanın\&.  
    +.TP
    +\fB-l\fR \fIkütüphane-adı\fR
    +Bu seçenek doğrudan derleme komutlarına aktarılır\&. Bu seçeneği derleme işleminde kullanılmak üzere kendi kütüphanelerinizi arama yollarına eklemek için kullanın\&.  
    +.TP
    +\fB-Wc\fR,\fIderleyici-seçenekleri\fR
    +Bu seçenek libtool --mode=compile komutuna doğrudan seçenek aktarmak için kullanılır\&. Bu seçeneği yerel derleyiciniz için gereken ek seçenekleri belirtmek için kullanın\&.  
    +.TP
    +\fB-Wl\fR,\fIilintileyici-seçenekleri\fR
    +Bu seçenek libtool --mode=link komutuna doğrudan seçenek aktarmak için kullanılır\&. Bu seçeneği yerel ilintileyiciniz için gereken ek seçenekleri belirtmek için kullanın\&.  
    +  
    +.SS "DSO Kurulum ve Yapılandırma Seçenekleri"
    +  
    + 
    +.TP
    +\fB-i\fR
    +Kurulum işlemini belirtir ve devingen olarak paylaşımlı nesneleri sunucunun \fImodules\fR dizinine kurar\&.  
    +.TP
    +\fB-a\fR
    +İlgili LoadModule satırını Apache'nin httpd\&.conf yapılandırma dosyasına özdevinimli olarak ekleyerek veya böyle bir satır varsa bunu etkin kılarak modülü etkinleştirir\&.  
    +.TP
    +\fB-A\fR
    +\fBLoadModule\fR yönergesini daha sonra etkinleştirmek üzere satırın başına bir diyez imi (#) yerleştirmesi dışında \fB-a\fR seçeneği ile aynıdır\&.  
    +.TP
    +\fB-e\fR
    +Modülü kurmaya çalışmaksızın Apache'nin httpd\&.conf yapılandırma dosyasını \fB-i\fR işlemine benzer şekilde \fB-a\fR ve \fB-A\fR seçenekleri ile düzenleme işlemini belirtir\&.  
    +  
    +.SH "ÖRNEKLER"
    + 
    +.PP
    +Apache'nin sunucu işlevselliğini genişletmek amacıyla kullanacağınız mod_foo\&.c adında bir Apache modülünüz olduğunu varsayalım\&. Öncelikle, C kaynak dosyasını, Apache sunucusuna çalışma anında yüklenmeye uygun bir paylaşımlı nesne olarak derlemeniz gerekir\&. Bunu sağlamak için şu komutları vermelisiniz:
    + 
    +.nf
    +
    +      $ apxs -c mod_foo\&.c
    +      /dosya/yolu/libtool --mode=compile gcc \&.\&.\&. -c mod_foo\&.c
    +      /dosya/yolu/libtool --mode=link gcc \&.\&.\&. -o mod_foo\&.la mod_foo\&.slo
    +      $ _
    +    
    +.fi
    + 
    +.PP
    +Bundan sonra, Apache yapılandırmanızın bu paylaşımlı nesneyi yüklemek için bir \fBLoadModule\fR yönergesi içermesini sağlamalısınız\&. \fBapxs\fR bu adımı basitleştirmek amacıyla, paylaşımlı nesneyi sunucunun \fImodules\fR dizinine özdevinimli olarak kurmak ve httpd\&.conf dosyasını buna uygun olarak güncellemek için bir yol sağlar\&. Bu sonuç şöyle elde edilebilir:
    + 
    +.nf
    +
    +      $ apxs -i -a mod_foo\&.la
    +      /dosya/yolu/instdso\&.sh mod_foo\&.la /path/to/apache/modules
    +      /dosya/yolu/libtool --mode=install cp mod_foo\&.la /dosya/yolu/apache/modules
    +      \&.\&.\&.
    +      chmod 755 /dosya/yolu/apache/modules/mod_foo\&.so
    +      [`foo' modülü /dosya/yolu/apache/conf/httpd\&.conf'da etkinleştiriliyor] 
    +      $ _
    +    
    +.fi
    + 
    +.PP
    +Yapılandıma dosyasına (eğer yoksa) şu satır eklenir:
    + 
    +.nf
    +
    +      LoadModule foo_module modules/mod_foo\&.so
    +    
    +.fi
    + 
    +.PP
    +Bunu öntanımlı olarak iptal etmek isterseniz \fB-A\fR seçeneğini kullanmanız gerekir:
    + 
    +.nf
    +
    +      $ apxs -i -A mod_foo\&.c
    +    
    +.fi
    + 
    +.PP
    +\fBapxs\fR mekanizmalarını hızlıca denemek için örnek bir Apache modül şablonunu ve bir Makefile dosyasını şöyle oluşturabilirsiniz:
    + 
    +.nf
    +
    +      $ apxs -g -n foo
    +      Creating [DIR]  foo
    +      Creating [FILE] foo/Makefile
    +      Creating [FILE] foo/modules\&.mk
    +      Creating [FILE] foo/mod_foo\&.c
    +      Creating [FILE] foo/\&.deps
    +      $ _
    +    
    +.fi
    + 
    +.PP
    +Ardından bu örnek modülü bir paylaşımlı nesne olarak derleyip Apache sunucusuna yükleyebilirsiniz:
    + 
    +.nf
    +
    +      $ cd foo
    +      $ make all reload
    +      apxs -c mod_foo\&.c
    +      /dosya/yolu/libtool --mode=compile gcc \&.\&.\&. -c mod_foo\&.c
    +      /dosya/yolu/libtool --mode=link gcc \&.\&.\&. -o mod_foo\&.la mod_foo\&.slo
    +      apxs -i -a -n "foo" mod_foo\&.la
    +      /dosya/yolu/instdso\&.sh mod_foo\&.la /dosya/yolu/apache/modules
    +      /dosya/yolu/libtool --mode=install cp mod_foo\&.la /dosya/yolu/apache/modules
    +      \&.\&.\&.
    +       chmod 755 /dosya/yolu/apache/modules/mod_foo\&.so
    +      [`foo' modülü /dosya/yolu/apache/conf/httpd\&.conf'ta etkinleştiriliyor]
    +       apachectl restart
    +       /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    +      chmod 755 /dosya/yolu/apache/modules/mod_foo\&.so
    +      [`foo' modülü /dosya/yolu/apache/etc/httpd\&.conf'ta etkinleştiriliyor]
    +      apachectl restart
    +      /dosya/yolu/apache/sbin/apachectl restart: httpd not running, trying to start
    +      [Tue Mar 31 11:27:55 1998] [debug] mod_so\&.c(303): loaded module foo_module
    +      /dosya/yolu/apache/sbin/apachectl restart: httpd started
    +      $ _
    +    
    +.fi
    + 
    diff --git a/docs/man/tr/dbmmanage.1 b/docs/man/tr/dbmmanage.1
    new file mode 100644
    index 00000000000..d58ed9ba6b8
    --- /dev/null
    +++ b/docs/man/tr/dbmmanage.1
    @@ -0,0 +1,118 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "DBMMANAGE" 1 "2012-02-11" "Apache HTTP Sunucusu" "dbmmanage"
    +.nh
    +.SH İSİM
    +dbmmanage \- DBM biçemli kullanıcı kimlik doğrulama dosyalarını yönetir
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBdbmmanage\fR [ \fIkodlama\fR ] \fIdosyaismi\fR add|adduser|check|delete|update \fIkullanıcı\fR [ \fIşifreli_parola\fR [ \fIgrup\fR[,\fIgrup\fR\&.\&.\&.] [ \fIaçıklama\fR ] ] ]
    + 
    +.PP
    +\fBdbmmanage\fR \fIdosyaismi\fR view [ \fIkullanıcı\fR ]
    + 
    +.PP
    +\fBdbmmanage\fR \fIdosyaismi\fR import
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBdbmmanage\fR, mod_authn_dbm üzerinden HTTP kullanıcılarının temel kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının saklanmasında kullanılacak DBM dosyalarını oluşturmak ve güncellemek için kullanılır\&. Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı sadece \fBdbmmanage\fR tarafından oluşturulan dosyalarda listelenmiş kullanıcılara tahsis edilebilir\&. Bu program sadece, kullanıcı isimleri bir DBM dosyasında saklanmak istenirse işe yarar\&. Düz metin bir veritabanı kullanmak isterseniz \fBhtpasswd\fR sayfasına bakınız\&.
    + 
    +.PP
    +Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler\&. Kullanıcı kimlik doğrulamasını \fBhttpd\fR'de yapılandırmak için gerekli yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan ve http://httpd\&.apache\&.org/ adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fIdosyaismi\fR
    +DBM dosyasının ismi\&. Genellikle, \&.db, \&.pag veya \&.dir eklentisi olmaksızın belirtilir\&.  
    +.TP
    +\fIkullanıcı\fR
    +İşlemleri gerçekleştirecek kullanıcı ismi\&. \fIkullanıcı\fR ismi ikinokta imi (:) içeremez\&.  
    +.TP
    +\fIşifreli_parola\fR
    +\fBupdate\fR ve \fBadd\fR komutları için kullanılacak şifreli paroladır\&. Parolanın istenmesini sağlamak, fakat hemen ardından alanları doldurmak için bir tire imi (-) kullanabilirsiniz\&. Buna ek olarak, \fBupdate\fR komutunu kullanırken özgün parolaya dokunulmaması için bir nokta imi (\&.) kullanabilirsiniz\&.  
    +.TP
    +\fIgrup\fR
    +Kullanıcının üyesi olduğu grup\&. Grup ismi ikinokta imi (:) içeremez\&.Kullanıcıyı bir gruba atamadan açıklama alanını doldurmak istiyorsanız bir tire imi (-) kullanabilirsiniz\&. Buna ek olarak, \fBupdate\fR komutunu kullanırken özgün gruba dokunulmaması için bir nokta imi (\&.) kullanabilirsiniz\&.  
    +.TP
    +\fIaçıklama\fR
    +Adı ve soyadı, eposta adresi gibi kullanıcıyla ilgili bir takım bilgiler buraya yazılır\&. Sunucu bu alanı gözardı eder\&.  
    + 
    +.SS "Kodlamalar"
    + 
    + 
    +.TP
    +\fB-d\fR
    +CRYPT şifrelemesi (Win32 ve Netware hariç, öntanımlı)  
    +.TP
    +\fB-m\fR
    +MD5 şifrelemesi (Win32 ve Netware için öntanımlı)  
    +.TP
    +\fB-s\fR
    +SHA1 şifrelemesi  
    +.TP
    +\fB-p\fR
    +düz metin (\fIönerilmez\fR)  
    +  
    +.SS "Komutlar"
    + 
    + 
    +.TP
    +\fBadd\fR
    +\fIşifreli_parola\fR'yı kullanarak \fIdosyaismi\fR dosyasına \fIkullanıcı\fR için bir girdi ekler\&. dbmmanage passwords\&.dat add rbowen foKntnEF3KSXA  
    +.TP
    +\fBadduser\fR
    +Parola sorduktan sonra \fIdosyaismi\fR dosyasına \fIkullanıcı\fR için bir girdi ekler\&. dbmmanage passwords\&.dat adduser krietz  
    +.TP
    +\fBcheck\fR
    +Parola sorduktan sonra belirtilen \fIkullanıcı\fR, \fIdosyaismi\fR dosyasında var mı diye bakar; varsa belirtilen parolayı kullanıcınınkiyle eşleştirmeye çalışır\&. dbmmanage passwords\&.dat check rbowen  
    +.TP
    +\fBdelete\fR
    +\fIdosyaismi\fR dosyasından \fIkullanıcı\fR girdisini siler\&. dbmmanage passwords\&.dat delete rbowen  
    +.TP
    +\fBimport\fR
    +Standart girdiden \fIkullanıcı\fR:\fIparola\fR satırlarını (her satırda bir tane) okur ve bunları \fIdosyaismi\fR dosyasına ekler\&. Parola şifrelenmiş olmalıdır\&.  
    +.TP
    +\fBupdate\fR
    +Belirtilen \fIkullanıcı\fR'nın \fIdosyaismi\fR dosyasında mevcut olması dışında \fBadduser\fR komutu gibidir\&. dbmmanage passwords\&.dat update rbowen  
    +.TP
    +\fBview\fR
    +Sadece, DBM dosyasının içeriğini gösterir\&. Bir \fIkullanıcı\fR belirtirseniz sadece o kaydı gösterir\&. dbmmanage passwords\&.dat view  
    +  
    +.SH "HATALAR"
    + 
    +.PP
    +Birden fazla DBM dosya biçemi vardır ve büyük bir olasılıkla da sisteminizde bu birden fazla biçemle ilgili kütüphaneler vardır\&. SDBM, NDBM, GNU'nun GDBM projesi ve Berkeley DB 2 bunların başlıcalarıdır\&. Ne yazık ki, bu kütüphanelerin her birinin dosya biçimleri farklıdır\&. Bu bakımdan, \fIdosyaismi\fR dosyasında kullanılan dosya biçeminin \fBdbmmanage\fR tarafından kullanılanla aynı biçemde olduğundan emin olmalısınız\&. \fBdbmmanage\fR hangi tür DBM dosyasına baktığını saptayacak yeterliliğe sahip değildir\&. Yanlış biçemli bir dosya belirtirseniz hiçbir şey dönmeyebileceği gibi, başka isimde bir DBM dosyasının oluşturulması veya daha da kötüsü üzerine yazmaya çalışıyorsanız DBM dosyasının bozulması bile olasıdır\&.
    + 
    +.PP
    +\fBdbmmanage\fR programının başlangıcında @AnyDBM::ISA dizisi olarak tanımlanmış DBM biçem tercihlerinin bir listesi vardır\&. Berkeley DB 2 biçemini tercih ettiğimizden \fBdbmmanage\fR sistem kütüphanelerini şu sıraya göre arar: Berkeley DB 2, NDBM, GDBM ve SDBM\&. \fBdbmmanage\fR DBM dosyası hareketleri için bu sıralamaya göre bulduğu ilk kütüphaneyi kullanacaktır\&. Sıralama Perl'deki dbmopen() çağrısının kullandığından faklı olduğu gibi Perl'deki standart @AnyDBM::ISA sıralamasından da oldukça farklıdır\&. Bu bakımdan, DBM dosyalarınızı yönetmek için Perl ile yazılmış başka araçlar kullanıyorsanız, onların da bu tercih sırasını izlemesini sağlamalısınız\&. Benzer şekilde, bu dosyalara erişmek için diğer dillerde (C gibi) yazılmış programlar kullanıyorsanız bunlar için de aynı durum geçerlidir\&.
    + 
    +.PP
    +Unix sistemlerinde, kullanılan DBM dosyasının biçemini öğrenmek için \fBfile\fR programı kullanılabilir\&.
    + 
    diff --git a/docs/man/tr/htcacheclean.8 b/docs/man/tr/htcacheclean.8
    new file mode 100644
    index 00000000000..8f5d1fc79ce
    --- /dev/null
    +++ b/docs/man/tr/htcacheclean.8
    @@ -0,0 +1,77 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "HTCACHECLEAN" 8 "2009-02-16" "Apache HTTP Sunucusu" "htcacheclean"
    +.nh
    +.SH İSİM
    +htcacheclean \- Disk arabelleğini temizler
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBhtcacheclean\fR [ -\fBD\fR ] [ -\fBv\fR ] [ -\fBt\fR ] [ -\fBr\fR ] [ -\fBn\fR ] -\fBp\fR\fIyol\fR -\fBl\fR\fIsınır\fR
    + 
    +.PP
    +\fBhtcacheclean\fR [ -\fBn\fR ] [ -\fBt\fR ] [ -\fBi\fR ] -\fBd\fR\fIsüre\fR -\fBp\fR\fIyol\fR -\fBl\fR\fIsınır\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBhtcacheclean\fR, mod_disk_cache deposunun boyutlarını belli sınırlar içinde tutmak için kullanılır\&. Bu araç ya elle ya da bir artalan süreci olarak çalıştırılır\&. Artalan süreci olarak çalıştırıldığında, silinecek arabellek içeriğini tespit etmek için arabellek dizinlerine belli aralıklarla bakmak dışında uykuda olur\&. Artalan sürecini temiz olarak durdurmak için TERM veya INT sinyali göndermeniz yeterlidir\&.
    + 
    +
    +.SH "OPTİONS"
    + 
    + 
    +.TP
    +\fB-d\fR\fI süre\fR
    +Artalanda çalışarak \fIsüre\fR dakikada bir arabelleği temizler\&. Bu seçenek \fB-D\fR, \fB-v\fR ve \fB-r\fR seçenekleri ile birlikte kullanılamaz\&. Artalan sürecini temiz olarak sonlandırmak için SIGTERM veya SIGINT göndermek yeterlidir\&.  
    +.TP
    +\fB-D\fR
    +Kuru kuruya çalışıp, hiçbir şeyi silmez\&. \fB-d\fR seçeneği ile birlikte kullanılamaz\&.  
    +.TP
    +\fB-v\fR
    +Çıktı daha ayrıntılı olur\&. \fB-d\fR seçeneği ile birlikte kullanılamaz\&.  
    +.TP
    +\fB-r\fR
    +İyice temizlik yapılır\&. Bunun için Apache HTTP sunucusunun çalışmadığı varsayılır (aksi takdirde arabellek içeriği bozulabilir)\&. \fB-t\fR seçeneğinin de uygulanmasını sağlar\&. \fB-d\fR seçeneği ile birlikte kullanılamaz\&.  
    +.TP
    +\fB-n\fR
    +Nazik olur\&. Diğer süreçlerin yararına daha yavaş çalışır\&. (a) disk G/Ç işlemlerinde gecikmeler olursa ve (b) çekirdek bu arada başka bir süreci öne çekmişse \fBhtcacheclean\fR uyumayı tercih edecektir\&.  
    +.TP
    +\fB-t\fR
    +Tüm boş dizinleri siler\&. Öntanımlı olarak, sadece arabellek dosyaları silinirse de bazı yapılandırmalarda büyük miktarda dizin oluşturulması bu seçeneğin kullanılmasını gerektirebilir\&. Yapılandırmanız çok sayıda dizin gerektiriyorsa ve dosya düğümlerinin veya dosya ayırma tablolarının tükenmesi sözkonusu ise bu seçeneğin kullanılması önerilir\&.  
    +.TP
    +\fB-p\fR\fI yol\fR
    +\fIyol\fR, disk arabelleğinin kök dizini olarak belirtilir\&. CacheRoot yönergesinde belirtilen dizin olmalıdır\&.  
    +.TP
    +\fB-l\fR\fI sınır\fR
    +\fIsınır\fR, disk arabelleğinin toplam boyutu olarak belirtilir\&. Değerin öntanımlı olarak bayt cinsinden belirtileceği varsayılır\&. Değerin sonuna kilobayt için K, megabayt M, bayt için B harfi konulabilir\&.  
    +.TP
    +\fB-i\fR
    +Akıllı olup sadece disk arabelleği değiştiği zaman çalışır\&. Bu seçenek \fB-d\fR seçeneği ile birlikte belirtilmek zorundadır\&.  
    + 
    +.SH "ÇIKIŞ DURUMU"
    + 
    +.PP
    +\fBhtcacheclean\fR, tüm işlemler başarıyla yerine getirildiğinde 0, aksi takdirde 1 döndürür\&.
    + 
    diff --git a/docs/man/tr/htdbm.1 b/docs/man/tr/htdbm.1
    new file mode 100644
    index 00000000000..bd73b5bb6d6
    --- /dev/null
    +++ b/docs/man/tr/htdbm.1
    @@ -0,0 +1,169 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "HTDBM" 1 "2012-02-11" "Apache HTTP Sunucusu" "htdbm"
    +.nh
    +.SH İSİM
    +htdbm \- DBM parola veritabanlarını yönetir
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBhtdbm\fR [ -\fBT\fR\fIVTtürü\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] [ -\fBx\fR ] \fIparola-dosyası\fR \fIkullanıcı\fR
    + 
    +.PP
    +\fBhtdbm\fR -\fBb\fR [ -\fBT\fR\fIVTtürü\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIparola-dosyası\fR \fIkullanıcı\fR \fIparola\fR
    + 
    +.PP
    +\fBhtdbm\fR -\fBn\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIkullanıcı\fR
    + 
    +.PP
    +\fBhtdbm\fR -\fBnb\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIkullanıcı\fR \fIparola\fR
    + 
    +.PP
    +\fBhtdbm\fR -\fBv\fR [ -\fBT\fR\fIVTtürü\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIparola-dosyası\fR \fIkullanıcı\fR
    + 
    +.PP
    +\fBhtdbm\fR -\fBvb\fR [ -\fBT\fR\fIVTtürü\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIparola-dosyası\fR \fIkullanıcı\fR \fIparola\fR
    + 
    +.PP
    +\fBhtdbm\fR -\fBx\fR [ -\fBT\fR\fIVTtürü\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] \fIparola-dosyası\fR \fIkullanıcı\fR
    + 
    +.PP
    +\fBhtdbm\fR -\fBl\fR [ -\fBT\fR\fIVTtürü\fR ]
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBhtdbm\fR, mod_authn_dbm üzerinden HTTP kullanıcılarının temel kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının saklanmasında kullanılacak DBM dosyalarını yönetmek için kullanılır\&. DBM dosyaları hakkında daha ayrıntılı bilgi edinmek için \fBdbmmanage\fR sayfasına bakınız\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-b\fR
    +Betik kipi; parola için istek yapmak yerine parola komut satırından verilir\&. \fBParola komut satırında görünür\fR olacağından çok dikkatli kullanmak gerekir\&.  
    +.TP
    +\fB-c\fR
    +\fIparola-dosyası\fR oluşturur\&. Dosya mevcutsa, dosya silinip yeniden yazılır\&. Bu seçenek \fB-n\fR seçeneği ile birlikte kullanılamaz\&.  
    +.TP
    +\fB-n\fR
    +Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir\&. \fIparola-dosyası\fR belirtilmediğinden, bu seçenek komut satırı sözdizimini değiştirir\&. Bu seçenek \fB-c\fR seçeneği ile birlikte kullanılamaz\&.  
    +.TP
    +\fB-m\fR
    +Parolalar için MD5 şifrelemesi kullanılır\&. Windows, Netware ve TPF için öntanımlıdır\&.  
    +.TP
    +\fB-d\fR
    +Parolaları şifrelemek için crypt() kullanılır\&. Windows, Netware ve TPF dışında öntanımlıdır\&. \fBhtdbm\fR tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve TPF üzerinde httpd sunucusu tarafından desteklenmez\&.  
    +.TP
    +\fB-s\fR
    +Parolalar için SHA şifrelemesi kullanılır\&. LDAP Dizin değişim biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü kolaylaştırır\&.  
    +.TP
    +\fB-p\fR
    +Düz metin parolalar kullanılır\&. \fBhtdbm\fR tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve TPF üzerinde httpd sunucusu tarafından sadece düz metin parolalar kabul edilir\&.  
    +.TP
    +\fB-l\fR
    +Veritabanındaki kullanıcıları açıklamalarıyla birlikte standart çıktıya gönderir\&.  
    +.TP
    +\fB-t\fR
    +Son değiştirgenin bir açıklama olarak yorumlanmasını sağlar\&. Bu seçenek kullanıldığında komut satırının sonuna fazladan bir dizge eklenebilir\&. Bu dizge, veritabanında belirtilen kullanıcının "Comment" alanında saklanır\&.  
    +.TP
    +\fB-v\fR
    +Kullanıcı adını ve parolasını doğrular\&. Program belirtilen parolanın geçerli olup olmadığını belirten bir ileti basar\&. Eğer parola geçersizse program hata kodu 3 ile çıkar\&.  
    +.TP
    +\fB-x\fR
    +Kullanıcıyı siler\&. Kullanıcı belirtilen DBM dosyasında mevcutsa silinir\&.  
    +.TP
    +\fIparola-dosyası\fR
    +DBM dosyasının ismi\&. Genellikle, \&.db, \&.pag veya \&.dir eklentisi olmaksızın belirtilir\&. \fB-c\fR seçeneği ile birlikte verilmişse ve DBM dosyası mevcut değilse dosya oluşturulur, mevcutsa dosya güncellenir\&.  
    +.TP
    +\fIkullanıcı\fR
    +\fIparola-dosyası\fR'nda oluşturulacak veya güncellenecek kullanıcı ismi\&. \fIkullanıcı\fR bu dosyada mevcut değilse yeni bir girdi eklenir\&. Girdi mevcutsa parolası değiştirilir\&.  
    +.TP
    +\fIparola\fR
    +Şifrelenip DBM dosyasında saklanacak düz metin parola\&. Sadece \fB-b\fR seçeneği ile kullanılır\&.  
    +.TP
    +\fB-T\fR \fIVTtürü\fR
    +DBM dosyasının türü; SDBM, GDBM, DB, veya "default" olabilir\&.  
    + 
    +.SH "HATALAR"
    + 
    +.PP
    +Birden fazla DBM dosya biçemi vardır ve büyük bir olasılıkla da sisteminizde bu birden fazla biçemle ilgili kütüphaneler vardır\&. SDBM, NDBM, GNU'nun GDBM projesi ve Berkeley/Sleepycat DB 2/3/4 bunların başlıcalarıdır\&. Ne yazık ki, bu kütüphanelerin her birinin dosya biçimleri farklıdır\&. Bu bakımdan, \fIdosyaismi\fR dosyasında kullanılan dosya biçeminin \fBhtdbm\fR tarafından kullanılanla aynı biçemde olduğundan emin olmalısınız\&. \fBhtdbm\fR hangi tür DBM dosyasına baktığını saptayacak yeterliliğe sahip değildir\&. Yanlış biçemli bir dosya belirtirseniz hiçbir şey dönmeyebileceği gibi, başka isimde bir DBM dosyasının oluşturulması veya daha da kötüsü üzerine yazmaya çalışıyorsanız DBM dosyasının bozulması bile olasıdır\&.
    + 
    +.PP
    +Unix sistemlerinde, kullanılan DBM dosyasının biçemini öğrenmek için \fBfile\fR programı kullanılabilir\&.
    + 
    +.SH "ÇIKIŞ DURUMU"
    + 
    +.PP
    +\fBhtdbm\fR, kullanıcı ismi ve parolasını DBM dosyasına başarıyla eklemiş veya güncellemişse 0, dosyalara erişirken bir sorun çıkmışsa 1, komut satırında bir sözdizimi hatası varsa 2, parola etkileşimli alınmış fakat girdi ile eşleşme sağlanamamışsa 3, işlem kesintiye uğramışsa 4, bir değer çok uzunsa 5 (kullanıcı, parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter içeriyorsa (Kısıtlamalar bölümüne bakınız) 6 ve dosya geçerli bir DBM parola dosyası değilse 7 değeriyle döner\&.
    + 
    +.SH "ÖRNEKLER"
    + 
    +.nf
    +
    +      htdbm /usr/local/etc/apache/\&.htdbm-users jsmith
    +    
    +.fi
    + 
    +.PP
    +jsmith kullanıcısı için parolayı ekler veya değiştirir\&. Parolayı vermesi için kullanıcıya parola isteği yapılır\&. Windows üzerinde çalıştırılırsa parola Apache MD5 algoritması ile şifrelenir, aksi takdirde sistemin crypt() yordamı kullanılır\&. Dosya mevcut değilse \fBhtdbm\fR beklenen hiçbir işlemi yapmadan bir hata vererek çıkar\&.
    + 
    +.nf
    +
    +      htdbm -c /home/doe/public_html/\&.htdbm jane
    +    
    +.fi
    + 
    +.PP
    +Yeni bir dosya oluşturur ve kullanıcı jane için kaydı bir girdi olarak bu dosyaya yazar\&. Dosya mevcutsa fakat okunamıyor veya yazılamıyorsa dosyada bir değişiklik yapılmaz ve \fBhtdbm\fR bir ileti gösterip bir hata durumu ile çıkar\&.
    + 
    +.nf
    +
    +      htdbm -mb /usr/web/\&.htdbm-all jones Pwd4Steve
    +    
    +.fi
    + 
    +.PP
    +Komut satırından verilen parolayı (Pwd4Steve) MD5 algoritmasıyla şifreler ve bunu belirtilen dosyada saklar\&.
    + 
    +.SH "GÜVENLİK DEĞERLENDİRMELERİ"
    + 
    +.PP
    +\fBhtdbm\fR tarafından yönetilen parola dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir tarayıcı ile okunabilecek bir yerde bulunmamalıdır\&.
    + 
    +.PP
    +Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle \fB-b\fR seçeneğinin kullanımından kaçınılmasını öneriyoruz\&.
    + 
    +.SH "KISITLAMALAR"
    + 
    +.PP
    +Windows ve MPE platformlarında, \fBhtdbm\fR ile şifrelenen parolalar 255 karakterden daha uzun olamaz\&. 255 karakterden sonrası kırpılır\&.
    + 
    +.PP
    +\fBhtdbm\fR tarafından kullanılan MD5 algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen parolalar başka HTTP sunucularında kullanılamayabilir\&.
    + 
    +.PP
    +Kullanıcı isimleri 255 bayttan uzun olamaz ve iki nokta imi (:) içeremez\&.
    + 
    diff --git a/docs/man/tr/htdigest.1 b/docs/man/tr/htdigest.1
    new file mode 100644
    index 00000000000..af9c1e3e55a
    --- /dev/null
    +++ b/docs/man/tr/htdigest.1
    @@ -0,0 +1,62 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "HTDİGEST" 1 "2012-10-03" "Apache HTTP Sunucusu" "htdigest"
    +.nh
    +.SH İSİM
    +htdigest \- Özet kimlik doğrulama dosyalarını yönetir
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBhtdigest\fR [ -\fBc\fR ] \fIparola-dosyası\fR \fIbölge\fR \fIkullanıcı\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBhtdigest\fR, HTTP kullanıcılarının digest türü kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek için kullanılır\&. Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı sadece \fBhtdigest\fR tarafından oluşturulan dosyalarda listelenmiş kullanıcılara tahsis edilebilir\&.
    + 
    +.PP
    +Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler\&. Kullanıcı kimlik doğrulamasını \fBhttpd\fR'de yapılandırmak için gerekli yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan ve http://httpd\&.apache\&.org/ adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-c\fR
    +\fIparola-dosyası\fR oluşturur\&. Dosya mevcutsa, dosya silinip yeniden yazılır\&.  
    +.TP
    +\fIparola-dosyası\fR
    +Kullanıcı ismi, parola ve bölge bilgilerini içeren dosyanın ismi\&. \fB-c\fR seçeneği verilmişse ve dosya mevcut değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur\&.  
    +.TP
    +\fIbölge\fR
    +Kullanıcının mensup olduğu bölge ismi\&. Ayrıntılı bilgi için http://tools\&.ietf\&.org/html/rfc2617#section-3\&.2\&.1 adresine bakınız\&.  
    +.TP
    +\fIkullanıcı\fR
    +\fIparola-dosyası\fR'nda oluşturulacak veya güncellenecek kullanıcı ismi\&. \fIkullanıcı\fR bu dosyada mevcut değilse yeni bir girdi eklenir\&. Girdi mevcutsa parolası değiştirilir\&.  
    + 
    +.SH "GÜVENLİK DEĞERLENDİRMELERİ"
    + 
    +.PP
    +Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından \fIsetuid yapılmamalıdır\fR\&.
    + 
    diff --git a/docs/man/tr/htpasswd.1 b/docs/man/tr/htpasswd.1
    new file mode 100644
    index 00000000000..c513957aea0
    --- /dev/null
    +++ b/docs/man/tr/htpasswd.1
    @@ -0,0 +1,155 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "HTPASSWD" 1 "2013-08-16" "Apache HTTP Sunucusu" "htpasswd"
    +.nh
    +.SH İSİM
    +htpasswd \- Temel kimlik doğrulama dosyalarını yönetir
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBhtpasswd\fR [ -\fBc\fR ] [ -\fBm\fR ] [ -\fBD\fR ] \fIparola-dosyası\fR \fIkullanıcı\fR
    + 
    +.PP
    +\fBhtpasswd\fR -\fBb\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBD\fR ] \fIparola-dosyası\fR \fIkullanıcı\fR \fIparola\fR
    + 
    +.PP
    +\fBhtpasswd\fR -\fBn\fR [ -\fBm\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] \fIkullanıcı\fR
    + 
    +.PP
    +\fBhtpasswd\fR -\fBnb\fR [ -\fBm\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] \fIkullanıcı\fR \fIparola\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBhtpasswd\fR, HTTP kullanıcılarının temel kimlik doğrulaması için kullanıcı isimlerinin ve parolalarının saklanmasında kullanılacak düz metin dosyalarını oluşturmak ve güncellemek için kullanılır\&. \fBhtpasswd\fR, güncelleme sırasında yazmak veya okumak için bir dosyaya erişemezse beklenen hiçbir işlemi yapmaz ve hata vererek çıkar\&.
    + 
    +.PP
    +Apache HTTP sunucusunun mevcut özkaynaklarının kullanımı sadece \fBhtpasswd\fR tarafından oluşturulan dosyalarda listelenmiş kullanıcılara tahsis edilebilir\&. \fBhtpasswd\fR sadece düz metin dosyalarda saklanmış kullanıcı isimlerini ve parolalarını yönetirse de, diğer veri saklama türleri için parolayı şifreleyip gösterebilir\&. Bir DBM veritabanı kullanmak isterseniz \fBdbmmanage\fR sayfasına bakınız\&.
    + 
    +.PP
    +\fBhtpasswd\fR, parolaları şifrelemek için ya Apache'nin kendine özgü MD5 algoritmasını ya da sistemin crypt() yordamını kullanır\&. Bazı kullanıcılar MD5 şifreli parolalara, bazıları da crypt() ile şifrelenmiş parolalara sahip olabileceğinden \fBhtpasswd\fR tarafından yönetilen dosyalar her iki tür parolayı da içerebilir\&.
    + 
    +.PP
    +Bu kılavuz sayfası sadece komut satırı değiştirgelerini listeler\&. Kullanıcı kimlik doğrulamasını \fBhttpd\fR'de yapılandırmak için gerekli yönergelerle ilgili ayrıntılar için Apache dağıtımının bir parçası olan ve http://httpd\&.apache\&.org/ adresinde de bulunan Apache HTTP Sunucusu Belgelerine bakınız\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-b\fR
    +Betik kipi; parola için istek yapmak yerine parola komut satırından verilir\&. \fBParola komut satırında görünür\fR olacağından çok dikkatli kullanmak gerekir\&.  
    +.TP
    +\fB-c\fR
    +\fIparola-dosyası\fR oluşturur\&. Dosya mevcutsa, dosya silinip yeniden yazılır\&. Bu seçenek \fB-n\fR seçeneği ile birlikte kullanılamaz\&.  
    +.TP
    +\fB-n\fR
    +Sonuçları veritabanında güncellemek yerine standart çıktıya gönderir\&. Bu seçenek, Apache'nin metin veriler içermeyen veri depolarına dahil edilebilecek parolaları üretmekte yararlıdır\&. \fIparola-dosyası\fR belirtilmediğinden, bu seçenek komut satırı sözdizimini değiştirir\&. Bu seçenek \fB-c\fR seçeneği ile birlikte kullanılamaz\&.  
    +.TP
    +\fB-m\fR
    +Parolalar için MD5 şifrelemesi kullanılır ve bu 2\&.2\&.18 sürümünden beri öntanımlıdır\&.  
    +.TP
    +\fB-d\fR
    +Parolaları şifrelemek için crypt() kullanılır\&. Windows, Netware ve TPF üzerinde httpd sunucusu tarafından desteklenmez\&. Bu algoritma parola uzuluğunu 8 karakterle sınırlar\&. Bugünün standatlarında bu algoritma \fBgüvenilmez\fR kabul edilmektedir\&. 2\&.2\&.17 sürümüne kadar öntanımlı algoritma olarak kullanılmıştır\&.  
    +.TP
    +\fB-s\fR
    +Parolalar için SHA şifrelemesi kullanılır\&. LDAP Dizin değişim biçemini (ldif) kullanarak Netscape sunucularına/sunucularından göçü kolaylaştırır\&.  
    +.TP
    +\fB-p\fR
    +Düz metin parolalar kullanılır\&. \fBhtpasswd\fR tarafından tüm platformlarda destekleniyor olsa da Windows, Netware ve TPF üzerinde httpd sunucusu tarafından sadece düz metin parolalar kabul edilir\&.  
    +.TP
    +\fB-D\fR
    +Kullanıcıyı siler\&. Kullanıcı belirtilen dosyada mevcutsa silinir\&.  
    +.TP
    +\fIparola-dosyası\fR
    +Kullanıcı ismini ve parolasını içeren dosyanın ismi\&. \fB-c\fR seçeneği verilmişse ve dosya mevcut değilse oluşturulur, dosya mevcutsa silinip yeniden oluşturulur\&.  
    +.TP
    +\fIkullanıcı\fR
    +\fIparola-dosyası\fR'nda oluşturulacak veya güncellenecek kullanıcı ismi\&. \fIkullanıcı\fR bu dosyada mevcut değilse yeni bir girdi eklenir\&. Girdi mevcutsa parolası değiştirilir\&.  
    +.TP
    +\fIparola\fR
    +Şifrelenip dosyada saklanacak düz metin parola\&. Sadece \fB-b\fR seçeneği ile kullanılır\&.  
    + 
    +.SH "ÇIKIŞ DURUMU"
    + 
    +.PP
    +\fBhtpasswd\fR, kullanıcı ismi ve parolasını DBM dosyasına başarıyla eklemiş veya güncellemişse 0, dosyalara erişirken bir sorun çıkmışsa 1, komut satırında bir sözdizimi hatası varsa 2, parola etkileşimli alınmış fakat girdi ile eşleşme sağlanamamışsa 3, işlem kesintiye uğramışsa 4, bir değer çok uzunsa 5 (kullanıcı, parola, dosya ismi veya açıklama), kullanıcı ismi kuraldışı karakter içeriyorsa (Kısıtlamalar bölümüne bakınız) 6 ve dosya geçerli bir DBM parola dosyası değilse 7 değeriyle döner\&.
    + 
    +.SH "ÖRNEKLER"
    + 
    +.nf
    +
    +      htpasswd /usr/local/etc/apache/\&.htpasswd-users jsmith
    +    
    +.fi
    + 
    +.PP
    +jsmith kullanıcısı için parolayı ekler veya değiştirir\&. Parolayı vermesi için kullanıcıya parola isteği yapılır\&. Parola Apache MD5 algoritması ile şifrelenir\&. Dosya mevcut değilse \fBhtpasswd\fR beklenen hiçbir işlemi yapmadan bir hata vererek çıkar\&.
    + 
    +.nf
    +
    +      htpasswd -c /home/doe/public_html/\&.htpasswd jane
    +    
    +.fi
    + 
    +.PP
    +Yeni bir dosya oluşturur ve kullanıcı jane için kaydı bir girdi olarak bu dosyaya yazar\&. Dosya mevcutsa fakat okunamıyor veya yazılamıyorsa dosyada bir değişiklik yapılmaz ve \fBhtpasswd\fR bir ileti gösterip bir hata durumu ile çıkar\&.
    + 
    +.nf
    +
    +      htpasswd -db /usr/web/\&.htpasswd-all jones Pwd4Steve
    +    
    +.fi
    + 
    +.PP
    +Komut satırından verilen parolayı (Pwd4Steve) crypt() algoritmasıyla şifreler ve bunu belirtilen dosyada saklar\&.
    + 
    +.SH "GÜVENLİK DEĞERLENDİRMELERİ"
    + 
    +.PP
    +\fBhtpasswd\fR tarafından yönetilen parola dosyalarına sunucunun URI uzayından erişilememelidir; yani dosya bir tarayıcı ile okunabilecek bir yerde bulunmamalıdır\&.
    + 
    +.PP
    +Bu program bir setuid çalıştırılabiliri olarak güvenilir olmadığından \fIsetuid yapılmamalıdır\fR\&.
    + 
    +.PP
    +Komut satırında parolanın şifrelenmemiş olarak görünmesi sebebiyle \fB-b\fR seçeneğinin kullanımından kaçınılmasını öneriyoruz\&.
    + 
    +.PP
    +crypt() algoritması kullanılırken, parolayı şekillendirmek için parolanın ilk 8 baytının kullanılacağına dikkat ediniz\&. Eğer parola 8 bayttan uzunsa kalanlar bir uyarı verilmeksizin iptal edilir\&.
    + 
    +.PP
    +SHA şifreleme biçeminde tuz kullanılmaz; yani, bir parolanın sadece bir şifreli gösterimi olabilir\&. crypt() ve MD5 biçemleri parolanın önüne rasgele üretilmiş bir tuz dizgesi eklediklerinden sözlük saldırılarına karşı daha dayanıklıdırlar\&.
    + 
    +.SH "KISITLAMALAR"
    + 
    +.PP
    +Windows ve MPE platformlarında, \fBhtpasswd\fR ile şifrelenen parolalar 255 karakterden daha uzun olamaz\&. 255 karakterden sonrası kırpılır\&.
    + 
    +.PP
    +\fBhtpasswd\fR tarafından kullanılan MD5 algoritması Apache yazılımına özeldir; bu algoritma ile şifrelenen parolalar başka HTTP sunucularında kullanılamayabilir\&.
    + 
    +.PP
    +Kullanıcı isimleri 255 bayttan uzun olamaz ve iki nokta imi (:) içeremez\&.
    + 
    diff --git a/docs/man/tr/httpd.8 b/docs/man/tr/httpd.8
    new file mode 100644
    index 00000000000..2a4329d8e02
    --- /dev/null
    +++ b/docs/man/tr/httpd.8
    @@ -0,0 +1,122 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "HTTPD" 8 "2012-03-21" "Apache HTTP Sunucusu" "httpd"
    +.nh
    +.SH İSİM
    +httpd \- Apache Hiper Metin Aktarım Protokolü Sunucusu
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBhttpd\fR [ -\fBd\fR \fIsunucu-kök-dizini\fR ] [ -\fBf\fR \fIyapılandırma-dosyası\fR ] [ -\fBC\fR \fIyönerge\fR ] [ -\fBc\fR \fIyönerge\fR ] [ -\fBD\fR \fIparametre\fR ] [ -\fBe\fR \fIseviye\fR ] [ -\fBE\fR \fIdosya\fR ] [ \fB-k\fR start | restart | graceful | stop | graceful-stop ] [ -\fBR\fR \fIdizin\fR ] [ -\fBh\fR ] [ -\fBl\fR ] [ -\fBL\fR ] [ -\fBS\fR ] [ -\fBt\fR ] [ -\fBv\fR ] [ -\fBV\fR ] [ -\fBX\fR ] [ -\fBM\fR ] [ -\fBT\fR ]
    + 
    +.PP
    +Windows sistemlerinde, ek olarak şunlar vardır:
    + 
    +.PP
    +\fBhttpd\fR [ -\fBk\fR install | config | uninstall ] [ -\fBn\fR \fIisim\fR ] [ -\fBw\fR ]
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBhttpd\fR, Apache Hiper Metin Aktarım Protokolü (HTTP) sunucusu programıdır\&. Tek başına çalışan bir artalan süreci olarak tasarlanmıştır\&. Bu tarz kullanıldığında istekleri işleme sokmak için çocuk süreçlerden ve evrelerden oluşan bir havuz oluşturur\&.
    + 
    +.PP
    +Genelde, \fBhttpd\fR'nin doğrudan çağrılmaması gerekir\&. Unix ve benzerlerinde apachectl aracılığıyla, Windows NT, 2000 ve XP'de bir hizmet olarak, Windows 9x ve ME'de ise bir konsol uygulaması olarak çalıştırılır\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-d\fR \fIsunucu-kök-dizini\fR
    +\fIsunucu-kök-dizini\fR'ni ServerRoot yönergesine ilk değer olarak atar\&. Yapılandırma dosyasındaki bir ServerRoot yönergesiyle bu atama geçersiz kılınabilir\&. Bu seçenek belirtilmediği takdirde /usr/local/apache2 dizini öntanımlıdır\&.  
    +.TP
    +\fB-f\fR \fIyapılandırma-dosyası\fR
    +Başlatma sırasında \fIyapılandırma-dosyası\fR'ndaki yönergeler kullanılır\&. Eğer \fIyapılandırma-dosyası\fR bir / ile başlamıyorsa dosyanın ServerRoot yönergesinin değerine göreli olduğu varsayılır\&. Seçenek belirtilmediği takdirde conf/httpd\&.conf öntanımlı değerdir\&.  
    +.TP
    +\fB-k\fR start | restart | graceful | stop | graceful-stop
    +\fBhttpd\fR'yi başlatmak, durdurmak ve yeniden başlatmak için sinyal gönderir\&. Daha ayrıntılı bilgi edinmek için Apache httpd'nin Durdurulması belgesine bakınız\&.  
    +.TP
    +\fB-C\fR \fIyönerge\fR
    +Yapılandırma \fIyönerge\fR'sini yapılandırma dosyalarını okumadan önce işleme sokar\&.  
    +.TP
    +\fB-c\fR \fIyönerge\fR
    +Yapılandırma \fIyönerge\fR'sini yapılandırma dosyalarını okuduktan sonra işleme sokar\&.  
    +.TP
    +\fB-D\fR \fIparametre\fR
    +Sunucu başlatılırken veya yeniden başlatılırken komutları şarta bağlı olarak işleme sokmak veya atlamak için yapılandırma dosyalarında kullanılan <IfDefine> bölümlerinde kullanılmak üzere bir yapılandırma \fIparametre\fR'si tanımlar\&. Ayrıca, -DNO_DETACH (ana sürecin çatallanmasını engellemek için), -DFOREGROUND (ana sürecin setsid() ve benzerlerinden çağrılmasını engellemek için) gibi daha az bilinen bazı başlatma parametrelerini atamakta da kullanılabilir\&.  
    +.TP
    +\fB-e\fR \fIseviye\fR
    +Hata günlüğü seviyesi olarak LogLevel yönergesine sunucu başlatılırken \fIseviye\fR değerini atar\&. Bu seçenek, başlatma sırasındaki sorunları saptamak amacıyla hata iletilerinin ayrıntı seviyesini geçici olarak arttırmak için kullanılır\&.  
    +.TP
    +\fB-E\fR \fIdosya\fR
    +Sunucunun başlatılması sırasında hata iletilerinin belirtilen \fIdosya\fR'ya gönderilmesini sağlar\&.  
    +.TP
    +\fB-h\fR
    +Mevcut komut satırı seçeneklerinin kısa bir özetini çıktılar\&.  
    +.TP
    +\fB-l\fR
    +Sunucunun içinde derlenmiş modüllerin listesini çıktılar\&. Bu liste LoadModule yönergesi kullanılarak devingen olarak yüklenen modülleri içermez\&.  
    +.TP
    +\fB-L\fR
    +Durağan modüllerce sağlanmış yönergeleri olası değerleriyle geçerli konumlarına yerleştirerek listeler\&.  
    +.TP
    +\fB-M\fR
    +Yüklü durağan ve paylaşımlı modülleri listeler\&.  
    +.TP
    +\fB-R\fR \fIdizin\fR
    +Sunucu SHARED_CORE kullanılarak derlendiği takdirde bu seçenek paylaşımlı nesne dosyaları için \fIdizin\fR belirtir\&.  
    +.TP
    +\fB-S\fR
    +Yapılandırma dosyasından çözümlenmiş haliyle ayarları gösterir (şu an sadece sanal konak ayarları gösterilmektedir)\&.  
    +.TP
    +\fB-T\fR (2\&.2\&.17 ve sonrasında kullanılabilir\&.)
    +Başlatma veya yeniden başlatma sırasında belge kök dizini sınamasını yapmadan geçer\&.  
    +.TP
    +\fB-t\fR
    +Yapılandırma dosyasını sözdizimi hatalarına karşı denetler\&. Program sözdizimini denetledikten sonra sözdizimi geçerliyse 0 ile, değilse sıfırdan farklı bir değerle çıkar\&. \fB-D\fRDUMP_VHOSTS seçeneği ile birlikte kullanılmışsa ek olarak sanal konak ayrıntıları da basılır\&. \fB-D\fRDUMP_MODULES seçeneği ile ise ek olarak tüm modüller listelenir\&.  
    +.TP
    +\fB-v\fR
    +\fBhttpd\fR sürümünü basar ve çıkar\&.  
    +.TP
    +\fB-V\fR
    +Sürümü ve \fBhttpd\fR kurulum parametrelerini basar ve çıkar\&.  
    +.TP
    +\fB-X\fR
    +\fBhttpd\fR hata ayıklama kipinde çalışır\&. Tek çocuk süreç başlatılır ve sunucu konsolu terketmez\&.  
    + 
    +.PP
    +Aşağıdaki seçenekler sadece Windows platformunda geçerlidir:
    + 
    + 
    +.TP
    +\fB-k\fR install | config | uninstall
    +Parametreler bakımından sırasıyla: Apache httpd bir Windows NT hizmeti haline getirilir; başlatma seçenekleri Apache httpd hizmeti için değiştirilir; ve Apache httpd hizmeti sistemden kaldırılır\&.  
    +.TP
    +\fB-n\fR \fIisim\fR
    +Sinyal gönderilecek Apache httpd hizmetinin \fIismi\fR\&.  
    +.TP
    +\fB-w\fR
    +Hata durumunda konsol penceresi açık tutularak hata iletilerinin okunması sağlanır\&.  
    + 
    diff --git a/docs/man/tr/httxt2dbm.1 b/docs/man/tr/httxt2dbm.1
    new file mode 100644
    index 00000000000..14673133dbc
    --- /dev/null
    +++ b/docs/man/tr/httxt2dbm.1
    @@ -0,0 +1,62 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "HTTXT2DBM" 1 "2012-03-21" "Apache HTTP Sunucusu" "httxt2dbm"
    +.nh
    +.SH İSİM
    +httxt2dbm \- RewriteMap ile kullanmak için DBM dosyaları üretir
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBhttxt2dbm\fR [ -\fBv\fR ] [ -\fBf\fR \fIDBM_türü\fR ] -\fBi\fR \fIkaynak_metin\fR -\fBo\fR \fIçıktı_DBM\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBhttxt2dbm\fR, RewriteMap ile kullanmak için düz metin dosyalardan DBM dosyaları üretir\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-v\fR
    +Çıktı daha ayrıntılı olur\&.  
    +.TP
    +\fB-f\fR \fIDBM_türü\fR
    +Çıktı için kullanılacak DBM türü belirtilir\&. Belirtilmediği takdirde APR öntanımlısı kullanılır\&. Belirtilebilecek DBM türleri: GDBM dosyalar için GDBM SDBM dosyalar için SDBM Berkeley DB dosyalar için DB NDBM dosyalar için NDBM öntanımlı DBM türü için default  
    +.TP
    +\fB-i\fR \fIkaynak_metin\fR
    +DBM dosyasının üretiminde kullanılacak girdi dosyası belirtilir\&. Bu dosya, her satırda bir kayıt bulunmak üzere her satırı şöyle biçemlenmiş olmalıdır: anahtar değer\&. Bu dosyanın biçemi ve manası ile ilgili ayrıntılar için RewriteMap yönergesinin açıklamasına bakınız\&.  
    +.TP
    +\fB-o\fR \fIçıktı_DBM\fR
    +Çıktılanacak DBM dosyasının ismi belirtilir\&.  
    + 
    +.SH "ÖRNEKLER"
    + 
    +.nf
    +
    +      httxt2dbm -i rewritemap\&.txt -o rewritemap\&.dbm
    +      httxt2dbm -f SDBM -i rewritemap\&.txt -o rewritemap\&.dbm 
    +.fi
    + 
    diff --git a/docs/man/tr/logresolve.8 b/docs/man/tr/logresolve.8
    new file mode 100644
    index 00000000000..f0d0fe17414
    --- /dev/null
    +++ b/docs/man/tr/logresolve.8
    @@ -0,0 +1,51 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "LOGRESOLVE" 8 "2009-02-16" "Apache HTTP Sunucusu" "logresolve"
    +.nh
    +.SH İSİM
    +logresolve \- Apache günlük dosyalarındaki IP adreslerini konak isimlerine dönüştürür
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBlogresolve\fR [ -\fBs\fR \fIdosyaismi\fR ] [ -\fBc\fR ] < \fIgünlük_dosyası\fR > \fIyeni_günlük_dosyası\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBlogresolve\fR, Apache'nin erişim günlüklerindeki IP adreslerini çözümlemek için bir ardıl işlem uygulamasıdır\&. İsim sunucunuza bindirdiği yükü en aza indirmek için \fBlogresolve\fR kendi arabelleğinde oluşturduğu eşleme tablosunu kullanır\&.
    + 
    +.PP
    +Apache günlük dosyasını standart girdisinden okur\&. IP adresleri günlük dosyası satırlarında ilk bileşen olmalı ve sonraki bileşenlerden bir boşluk ile ayrılmalıdır\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +-s \fIdosyaismi\fR
    +İstatistiklerin kaydedileceği dosyanın ismi belirtilir\&.  
    +.TP
    +-c
    +\fBlogresolve\fR uygulamasının bazı DNS sorguları yapmasına sebep olur: IP adresine karşılık olan konak ismini bulduktan sonra özgün adresle karşılaştırmak için bu konak ismine karşılık gelen IP adresini sorgular\&.  
    + 
    diff --git a/docs/man/tr/rotatelogs.8 b/docs/man/tr/rotatelogs.8
    new file mode 100644
    index 00000000000..abb9ef651d8
    --- /dev/null
    +++ b/docs/man/tr/rotatelogs.8
    @@ -0,0 +1,147 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "ROTATELOGS" 8 "2012-03-21" "Apache HTTP Sunucusu" "rotatelogs"
    +.nh
    +.SH İSİM
    +rotatelogs \- Apache günlüklerini döndürmek için borulu günlük kayıt programı
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBrotatelogs\fR [ -\fBl\fR ] [ -\fBf\fR ] \fIdosyaismi\fR \fIsüre\fR|\fIboyut\fRM [ \fIsaat_farkı\fR ]
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBrotatelogs\fR, Apache'nin borulu günlük dosyaları özelliği ile birlikte kullanmak için tasarlanmış basit bir programdır\&. Günlük dosyasının azami boyutuna göre veya belli aralıklarla günlük dosyalarını döndürür\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-l\fR
    +GMT yerine yerel zamanın kullanılmasını sağlar\&. Zaman dilimi değişik olan ortamlarda (BST, DST gibi) bu seçeneğin kullanımı beklenmedik sonuçlar verebilir!  
    +.TP
    +\fB-f\fR
    +İlk günlük giridisinin okunmasını beklemeden \fBrotatelogs\fR başlar başlamaz günlük dosyasının açılmasını sağlar\&. Çok meşgul sitelerde, sunucu başlatılıp ilk istek sunuluncaya kadar geçen zamanda günlük dosyasının yokluğu özdevinimli işlemler yapan bazı günlükleme araçlarında sorunlara yol açabilir\&. Bu seçenek bu gibi durumlarda yararlıdır\&. \fI2\&.2\&.9 ve sonrası için geçerlidir\&.\fR  
    +.TP
    +\fIdosyaismi\fR
    +.PP Günlük dosyasının ismi yoluyla birlikte belirtilir\&. \fIdosyaismi\fR '%' karakterleri içeriyorsa bunlar strftime(3) biçem belirteçleri olarak ele alınır\&. Aksi takdirde, özdevinimli olarak \fI\&.nnnnnnnnnn\fR uzantısı üretilir\&. Uzantı saniye cinsindendir ve her iki durumda da bu değer, mevcut döngü diliminin başlangıcına göre hesaplanır\&. Örneğin, döndürmenin 86400 saniyede bir yapılacağı belirtilmişse, strftime(3) biçeminde oluşturulan saat, dakika ve saniye alanları, 24 saatlik sürenin başlangıcını (geceyarısı) göstermek üzere sıfırlarla doldurulur\&. .PP strftime(3) dosya ismi biçimlemesini kullanırken, günlük dosyası biçiminin günlüğün her döndürülüşünde farklı bir dosya ismi üretecek ayrıntılara sahip olmasın sağlamalısınız\&. Aksi takdirde, döndürme işlemi sonucunda günlük yeni bir dosya yerine aynı dosyanın üzerine yazılacaktır\&. Örneğin, \fIdosyaismi\fR olarak /var/logs/errorlog\&.%Y-%m-%d belirtilmişse, günlük dosyası da 5 megabayta ulaşıyorsa, günlük döndürme ile aynı dosya ismi üretilir ve günlük aynı dosyaya yazılmaya devam ederek bu boyut ikiye katlanır\&.  
    +.TP
    +\fIsüre\fR
    +Günlük dosyasının yenisinin kaç saniyede bir açılacağı belirtilir\&. Örneğin, bu süre 3600 saniye ise günlük dosyası her saat başında yenilenir; 86400 saniye ise her geceyarısı yenilenir\&. (Bu süre zarfında günlüğe kaydedilecek bir olay gerçekleşmemişse dosya oluşturulmaz\&.)  
    +.TP
    +\fIboyut\fRM
    +Boyuta göre döndürme için azami dosya boyutu\&. Belirtilenin bir süre değil de bir boyut değeri olarak ele alınması için değerin sonuna M (megabayt) harfi konmalıdır\&. .PP Süre ve boyut birlikte belirtilmişse boyut süreden sonra belirtilmelidir\&. Dosya yenilemesi, bunlardan hangisi daha önce aşılırsa o zaman gerçekleşir\&.  
    +.TP
    +\fIsaat_farkı\fR
    +Koordinatlı evrensel zamana göre "dakika" farkı\&. Belirtilmezse, sıfır öntanımlıdır\&. Örneğin, -5 saatlik bir zaman diliminde bulunuyorsanız bu değer -300 olmalıdır\&. Çoğu durumda, bunun yerine \fB-l\fR seçeneğini kullanmak gerekir\&.  
    + 
    +.SH "ÖRNEKLER"
    + 
    +.nf
    +
    +     CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common
    +
    +.fi
    + 
    +.PP
    +nnnn, günlük kaydının başladığı sistem zamanı olmak üzere /var/logs/logfile\&.nnnn dosyası oluşturulur\&. Bu zaman, daima döngü süresinin katları olacağından bunu cron betiklerinizi eşzamanlamakta kullanabilirsiniz\&. Her döngü süresinin sonunda (burada 24 saat sonra) yeni bir günlük dosyası açılır\&.
    + 
    +.nf
    +
    +     CustomLog "|bin/rotatelogs -l /var/logs/logfile\&.%Y\&.%m\&.%d 86400" common
    +
    +.fi
    + 
    +.PP
    +yyyy, yıl; mm, ay; dd, ayın gününü belirtmek üzere /var/logs/logfile\&.yyyy\&.mm\&.dd dosyası oluşturulur\&. Her gün yerel zamanla geceyarısı yeni bir günlük dosyasına geçilecektir\&.
    + 
    +.nf
    +
    +     CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common
    +
    +.fi
    + 
    +.PP
    +Günlük dosyası 5 megabaytlık olunca yenisinin oluşturulmasını sağlar\&.
    + 
    +.nf
    +
    +     ErrorLog "|bin/rotatelogs /var/logs/errorlog\&.%Y-%m-%d-%H_%M_%S 5M"
    +
    +.fi
    + 
    +.PP
    +Hata günlüğünün 5 megabaytta bir errorlog\&.YYYY-mm-dd-HH_MM_SS biçemli bir isimle oluşturulmasını sağlar\&.
    + 
    +.SH "TAŞINABİLİRLİK"
    + 
    +.PP
    +Aşağıdaki günlük dosyası biçem belirteçlerinin tüm strftime(3) gerçeklenimlerince desteklenmesi gerekir\&. Kullandığınız kütüphaneye özgü belirteçler için sisteminizdeki strftime(3) kılavuz sayfasına bakınız\&.
    +  
    +.Ip "\(bu \s-1%A\s0 \- tam gün ismi (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%a\s0 \- 3 harflik gün ismi (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%B\s0 \- tam ay ismi (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%b\s0 \- 3 harflik ay ismi (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%c\s0 \- tarih ve saat (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%d\s0 \- 2 haneli ay günü numarası
    + 
    +.Ip "\(bu \s-1%H\s0 \- 2 haneli saat (24 saatlik)
    + 
    +.Ip "\(bu \s-1%I\s0 \- 2 haneli saat (12 saatlik)
    + 
    +.Ip "\(bu \s-1%j\s0 \- 3 hanelik yıl günü numarası
    + 
    +.Ip "\(bu \s-1%M\s0 \- 2 haneli dakika
    + 
    +.Ip "\(bu \s-1%m\s0 \- 2 haneli ay
    + 
    +.Ip "\(bu \s-1%p\s0 \- 12 saatlik kip için öö/ös (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%S\s0 \- 2 haneli saniye
    + 
    +.Ip "\(bu \s-1%U\s0 \- 2 haneli yılın hafta numarası (Haftanın ilk gününün Pazar olduğu varsayımıyla)
    + 
    +.Ip "\(bu \s-1%W\s0 \- 2 haneli yılın hafta numarası (Haftanın ilk gününün Pazartesi olduğu varsayımıyla)
    + 
    +.Ip "\(bu \s-1%w\s0 \- 1 hanelik haftanın gün numarası (Haftanın ilk gününün Pazar olduğu varsayımıyla)
    + 
    +.Ip "\(bu \s-1%X\s0 \- saat (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%x\s0 \- tarih (yerelleştirilmiş)
    + 
    +.Ip "\(bu \s-1%Y\s0 \- 4 hanelik yıl
    + 
    +.Ip "\(bu \s-1%y\s0 \- 2 hanelik yıl
    + 
    +.Ip "\(bu \s-1%Z\s0 \- zaman dilimi ismi
    + 
    +.Ip "\(bu \s-1%%\s0 \- `%' iminin kendisi
    +  
    diff --git a/docs/man/tr/suexec.8 b/docs/man/tr/suexec.8
    new file mode 100644
    index 00000000000..5ba8f472228
    --- /dev/null
    +++ b/docs/man/tr/suexec.8
    @@ -0,0 +1,48 @@
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.\" DO NOT EDIT! Generated from XML source.
    +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    +.de Sh \" Subsection
    +.br
    +.if t .Sp
    +.ne 5
    +.PP
    +\fB\\$1\fR
    +.PP
    +..
    +.de Sp \" Vertical space (when we can't use .PP)
    +.if t .sp .5v
    +.if n .sp
    +..
    +.de Ip \" List item
    +.br
    +.ie \\n(.$>=3 .ne \\$3
    +.el .ne 3
    +.IP "\\$1" \\$2
    +..
    +.TH "SUEXEC" 8 "2014-03-02" "Apache HTTP Sunucusu" "suexec"
    +.nh
    +.SH İSİM
    +suexec \- harici programları çalıştırmadan önce kullanıcıyı değiştirir
    +
    +.SH "KULLANIM"
    + 
    +.PP
    +\fBsuexec\fR -\fBV\fR
    + 
    +
    +.SH "ÖZET"
    + 
    +.PP
    +\fBsuexec\fR, CGI programlarını çalıştırmadan önce Apache HTTP Sunucusu tarafından kullanıcı değiştirmek için kullanılır\&. Bunu yapabilmek için sunucunun root tarafından çalıştırılmış olması gerekir\&. HTTP artalan süreci normalde root aidiyetinde çalışmadığından \fBsuexec\fR'in çalıştırılabilir dosyasının sahibi root olmalı, setuid biti etkin (u+s) olmalı ve dosyaya root dışında hiç kimse yazamamalıdır\&.
    + 
    +.PP
    +\fBsuexec\fR güvenlik modeli ve kavramlar hakkında bilgi edinmek için suexec belgesine (http://httpd\&.apache\&.org/docs/2\&.2/suexec\&.html) bakınız\&.
    + 
    +
    +.SH "SEÇENEKLER"
    + 
    + 
    +.TP
    +\fB-V\fR
    +root iseniz, bu seçenek \fBsuexec\fR derleme seçeneklerini gösterir\&. Güvenlik sebebiyle tüm yapılandırma seçenekleri sadece derleme sırasında değiştirilebilir\&.  
    + 
    diff --git a/docs/manual/bind.html b/docs/manual/bind.html
    index c2af6387d2f..ac21629f176 100644
    --- a/docs/manual/bind.html
    +++ b/docs/manual/bind.html
    @@ -1,3 +1,5 @@
    +# GENERATED FROM XML -- DO NOT EDIT
    +
     URI: bind.html.de
     Content-Language: de
     Content-type: text/html; charset=ISO-8859-1
    @@ -10,10 +12,14 @@
     Content-Language: fr
     Content-type: text/html; charset=ISO-8859-1
     
    -URI: bind.html.ja.euc-jp
    +URI: bind.html.ja.utf8
     Content-Language: ja
    -Content-type: text/html; charset=EUC-JP
    +Content-type: text/html; charset=UTF-8
     
     URI: bind.html.ko.euc-kr
     Content-Language: ko
     Content-type: text/html; charset=EUC-KR
    +
    +URI: bind.html.tr.utf8
    +Content-Language: tr
    +Content-type: text/html; charset=UTF-8
    diff --git a/docs/manual/bind.html.de b/docs/manual/bind.html.de
    index da8bfeda7a6..124f50215bd 100644
    --- a/docs/manual/bind.html.de
    +++ b/docs/manual/bind.html.de
    @@ -1,50 +1,58 @@
     <?xml version="1.0" encoding="ISO-8859-1"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    -<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head><!--
    +<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head>
    +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
    +<!--
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                   This file is generated from xml source: DO NOT EDIT
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
           -->
    -<title>Anbindung - Apache HTTP Server
    +Anbindung - Apache HTTP Server Version 2.2
     
     
    -
    -
    +
    +
    +
    +
     
     
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Anbindung

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    Konfiguration der vom Apache verwendeten Adressen und Ports.

    -
    top
    -

    Überblick

    +

    Überblick

    Beim Start bindet sich der Apache an bestimmte Adressen und Ports der lokalen Maschine und wartet auf eingehende Anfragen. - Standardmäßig lauscht er an allen Adressen des Systems. - Es muss ihm jedoch mitgeteilt werden, an bestimmten Ports zu lauschen - oder nur an ausgewählten Adressen, bzw. einer Kombination aus - beidem. Dies wird oft mit der Funktionalität virtueller Hosts + Standardmäßig lauscht er an allen Adressen des Systems. + Es kann ihm jedoch mitgeteilt werden, an bestimmten Ports zu lauschen + oder nur an ausgewählten Adressen, bzw. einer Kombination aus + beidem. Dies wird oft mit der Funktionalität virtueller Hosts kombiniert, die bestimmt, wie der Apache auf verschiedene IP-Adressen, Hostnamen und Ports reagiert.

    @@ -54,80 +62,82 @@ angegeben wird, dann lauscht der Server auf allen Netzwerkinterfaces an dem angegebenen Port. Ist auch eine IP-Adresse angegeben, dann lauscht der Server an der angegebenen Schnittstelle auf dem angegebenen Port. Es - können mehrere Listen-Anweisungen verwendet werden, um + können mehrere Listen-Anweisungen verwendet werden, um eine Reihe von Adressen und Ports anzugeben, an denen gelauscht werden - soll. Der Server wird dann auf Anfragen an jeder der abgehörten + soll. Der Server wird dann auf Anfragen an jeder der abgehörten Adressen und Ports antworten.

    -

    Um beispielsweise den Server zu veranlassen, sowohl an Port 80, als - auch an Port 8000 Verbindungen zu akzeptieren, geben Sie an:

    +

    Um beispielsweise den Server zu veranlassen, auf allen + Netzwerkinterfaces sowohl an Port 80, als auch an Port 8000 + Verbindungen zu akzeptieren, geben Sie an:

    Listen 80
    Listen 8000

    -

    Um den Server Verbindungen an zwei bestimmten - Netzwerkinterfaces und Ports zu akzeptieren zu lassen, geben Sie an:

    +

    Um den Server Verbindungen auf Port 80 eines Interfaces und auf + Port 8000 eines anderen akzeptieren zu lassen, geben Sie an:

    - Listen 192.170.2.1:80
    - Listen 192.170.2.5:8000 + Listen 192.0.2.1:80
    + Listen 192.0.2.5:8000

    -

    IPv6-Adressen müssen wie im folgenden Beispiel in eckigen +

    IPv6-Adressen müssen wie im folgenden Beispiel in eckigen Klammern angegeben werden:

    - Listen [fe80::a00:20ff:fea7:ccea]:80 + Listen [2001:db8::a00:20ff:fea7:ccea]:80

    top

    Betrachtung von IPv6-Besonderheiten

    -

    Eine wachsende Anzahl von Plattformen implementiert IPv6. Die APR - unterstützt IPv6 auf den meisten dieser Plattformen und - ermöglicht dem Apache, IPv6-Sockets zu verwenden und Anfragen zu - behandeln, die über IPv6 gesendet wurden.

    +

    Eine wachsende Anzahl von Plattformen implementiert IPv6. Die + APR unterstützt IPv6 auf den meisten + dieser Plattformen und ermöglicht dem Apache, IPv6-Sockets + zu verwenden und Anfragen zu behandeln, die über IPv6 + gesendet wurden.

    -

    Für Apache-Administratoren kommt erschwerend die Frage hinzu, ob +

    Für Apache-Administratoren kommt erschwerend die Frage hinzu, ob IPv6-Sockets sowohl IPv4- als auch IPv6-Verbindungen - handhaben können. Zum Betrieb von IPv4-Verbindungen an + handhaben können. Zum Betrieb von IPv4-Verbindungen an IPv6-Sockets werden auf IPv6 abgebildete IPv4-Adressen - (Anm.d.Ü.: so genannete IPv4-gemappte IPv6-Adressen) - verwendet, welche standardmäßig auf den meisten Plattformen + (Anm.d.Ü.: so genannete IPv4-gemappte IPv6-Adressen) + verwendet, welche standardmäßig auf den meisten Plattformen erlaubt sind. Unter FreeBSD, NetBSD und OpenBSD jedoch sind sie - standardmäßig deaktiviert, um den Systemgrundsätzen dieser + standardmäßig deaktiviert, um den Systemgrundsätzen dieser Plattformen zu entsprechen. Doch selbst auf Systemen, wo dies - standardmäßig dekativiert ist, kann dieses Verhalten mit einem - speziellen configure-Parameter für den Apache - geändert werden.

    + standardmäßig dekativiert ist, kann dieses Verhalten mit einem + speziellen configure-Parameter für den Apache + geändert werden.

    Auf der anderen Seite ist die Verwendung von gemappten Adressen bei einigen Plattformen wie Linux und True64 der einzige - Weg, sowohl IPv4 wie auch IPv6 zu verwenden. Wenn Sie möchten, dass + Weg, sowohl IPv4 wie auch IPv6 zu verwenden. Wenn Sie möchten, dass der Apache IPv4- und IPv6-Verbindungen mit einem Minimum an Sockets behandelt, was die Verwendung von IPv4-gemappten IPv6-Adressen - erfordert, dann müssen Sie die configure-Option --enable-v4-mapped angeben.

    + erfordert, dann müssen Sie die configure-Option --enable-v4-mapped angeben.

    --enable-v4-mapped ist die Voreinstellung auf allen - Plattformen außer FreeBSD, NetBSD und OpenBSD, so dass Ihr Apache - wahrscheinlich so übersetzt wurde.

    + Plattformen außer FreeBSD, NetBSD und OpenBSD, so dass Ihr Apache + wahrscheinlich so übersetzt wurde.

    Geben Sie wie in dem folgenden Beispiel bei allen Listen-Anweisungen eine IPv4-Adresse - an, wenn Sie möchten, dass Ihr Apache lediglich IPv4-Adressen - behandelt, unabhängig davon, was Ihre Plattform und die APR - unterstützen:

    + an, wenn Sie möchten, dass Ihr Apache lediglich IPv4-Adressen + behandelt, unabhängig davon, was Ihre Plattform und die APR + unterstützen:

    Listen 0.0.0.0:80
    - Listen 192.170.2.1:80 + Listen 192.0.2.1:80

    -

    Wenn Sie möchten, dass der Apache IPv4- und IPv6-Verbindungen an +

    Wenn Sie möchten, dass der Apache IPv4- und IPv6-Verbindungen an separaten Sockets behandelt (d.h. IPv4-gemappte Adressen deaktiviert - werden sollen) und Ihre Plattform es unterstützt, dann müssen + werden sollen) und Ihre Plattform es unterstützt, dann müssen Sie die configure-Option --disable-v4-mapped angeben. Unter FreeBSD, NetBSD und OpenBSD ist --disable-v4-mapped @@ -140,25 +150,47 @@

    Listen implementiert keine virtuellen Hosts. Es teilt dem Hauptserver lediglich mit, an welchen Adressen und Ports er zu lauschen hat. Werden keine <VirtualHost>-Container - verwendet, verhält sich der Server bei allen angenommenen Anfragen - gleich. <VirtualHost>-Abschnitte können jedoch - dazu verwendet werden, ein unterschiedliches Verhalten für eine oder + verwendet, verhält sich der Server bei allen angenommenen Anfragen + gleich. <VirtualHost>-Abschnitte können jedoch + dazu verwendet werden, ein unterschiedliches Verhalten für eine oder mehrere Adressen und Ports festzulegen. Um einen virtuellen Host - einzurichten, muss dem Server zunächst mitgeteilt werden, an den - betreffenden Adressen und Ports zu lauschen. Dann sollte ein <VirtualHost>-Abschnitt für + einzurichten, muss dem Server zunächst mitgeteilt werden, an den + betreffenden Adressen und Ports zu lauschen. Dann sollte ein <VirtualHost>-Abschnitt für eine bestimmte Adresse und einen Port erstellt werden, um das Verhalten dieses virtuellen Hosts festzulegen. Beachten Sie bitte, dass auf einen <VirtualHost> nicht - zugegriffen werden kann, wenn er für eine Adresse und einen Port + zugegriffen werden kann, wenn er für eine Adresse und einen Port eingerichtet wurde, an dem der Server nicht lauscht.

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/bind.html.en b/docs/manual/bind.html.en index daea12dc76c..4a2316b3bf6 100644 --- a/docs/manual/bind.html.en +++ b/docs/manual/bind.html.en @@ -1,28 +1,36 @@ - -Binding - Apache HTTP Server +Binding - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Binding

    Available Languages:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    Configuring Apache to listen on specific addresses and ports.

    @@ -30,7 +38,7 @@ +

    See also

    top

    Overview

    @@ -41,15 +49,15 @@

    When Apache starts, it binds to some port and address on the local machine and waits for incoming requests. By default, - it listens to all addresses on the machine. However, it needs to - be told to listen on specific ports, or to listen on only selected - addresses, or a combination. This is often combined with the - Virtual Host feature which determines how Apache responds to + it listens to all addresses on the machine. However, it may need to + be told to listen on specific ports, or only on selected + addresses, or a combination of both. This is often combined with the + Virtual Host feature, which determines how Apache responds to different IP addresses, hostnames and ports.

    The Listen directive tells the server to accept - incoming requests only on the specified port or + incoming requests only on the specified ports or address-and-port combinations. If only a port number is specified in the Listen directive, the server @@ -61,53 +69,54 @@ addresses and ports.

    For example, to make the server accept connections on both - port 80 and port 8000, use:

    + port 80 and port 8000, on all interfaces, use:

    Listen 80
    Listen 8000

    -

    To make the server accept connections on two specified - interfaces and port numbers, use

    +

    To make the server accept connections on port 80 for one interface, + and port 8000 on another, use

    - Listen 192.170.2.1:80
    - Listen 192.170.2.5:8000 + Listen 192.0.2.1:80
    + Listen 192.0.2.5:8000

    -

    IPv6 addresses must be surrounded in square brackets, as in the +

    IPv6 addresses must be enclosed in square brackets, as in the following example:

    - Listen [fe80::a00:20ff:fea7:ccea]:80 + Listen [2001:db8::a00:20ff:fea7:ccea]:80

    top

    Special IPv6 Considerations

    -

    A growing number of platforms implement IPv6, and APR supports - IPv6 on most of these platforms, allowing Apache to allocate IPv6 - sockets and handle requests which were sent over IPv6.

    +

    A growing number of platforms implement IPv6, and + APR supports IPv6 on most of these platforms, + allowing Apache to allocate IPv6 sockets, and to handle requests sent + over IPv6.

    One complicating factor for Apache administrators is whether or not an IPv6 socket can handle both IPv4 connections and IPv6 connections. Handling IPv4 connections with an IPv6 socket uses IPv4-mapped IPv6 addresses, which are allowed by default on most - platforms but are disallowed by default on FreeBSD, NetBSD, and - OpenBSD in order to match the system-wide policy on those - platforms. But even on systems where it is disallowed by default, a + platforms, but are disallowed by default on FreeBSD, NetBSD, and + OpenBSD, in order to match the system-wide policy on those + platforms. On systems where it is disallowed by default, a special configure parameter can change this behavior for Apache.

    -

    On the other hand, on some platforms such as Linux and Tru64 the +

    On the other hand, on some platforms, such as Linux and Tru64, the only way to handle both IPv6 and IPv4 is to use mapped addresses. If you want Apache to handle IPv4 and IPv6 connections with a minimum of sockets, which requires using IPv4-mapped IPv6 addresses, specify the --enable-v4-mapped configure option.

    -

    --enable-v4-mapped is the default on all platforms but +

    --enable-v4-mapped is the default on all platforms except FreeBSD, NetBSD, and OpenBSD, so this is probably how your Apache was built.

    @@ -118,11 +127,11 @@

    Listen 0.0.0.0:80
    - Listen 192.170.2.1:80 + Listen 192.0.2.1:80

    If your platform supports it and you want Apache to handle IPv4 and - IPv6 connections on separate sockets (i.e., to disable IPv4-mapped + IPv6 connections on separate sockets (i.e., to disable IPv4-mapped addresses), specify the --disable-v4-mapped configure option. --disable-v4-mapped is the default on FreeBSD, NetBSD, and OpenBSD.

    top
    @@ -130,19 +139,19 @@

    How This Works With Virtual Hosts

    -

    Listen does not implement - Virtual Hosts. It only tells the - main server what addresses and ports to listen to. If no +

    The Listen directive does not implement + Virtual Hosts - it only tells the + main server what addresses and ports to listen on. If no <VirtualHost> directives are used, the server will behave - the same for all accepted requests. However, + in the same way for all accepted requests. However, <VirtualHost> can be used to specify a different behavior - for one or more of the addresses and ports. To implement a + for one or more of the addresses or ports. To implement a VirtualHost, the server must first be told to listen to the address and port to be used. Then a <VirtualHost> section - should be created for a specified address and port to set the + should be created for the specified address and port to set the behavior of this virtual host. Note that if the <VirtualHost> is set for an address and port that the @@ -151,10 +160,32 @@

    Available Languages:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/bind.html.fr b/docs/manual/bind.html.fr index 58ad0876ec2..650e3955602 100644 --- a/docs/manual/bind.html.fr +++ b/docs/manual/bind.html.fr @@ -1,197 +1,203 @@ - -Liaison - Serveur Apache HTTP +Adresse IP et port d'écoute - Serveur Apache HTTP Version 2.2 - - + + + +
    <-

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Adresse IP et port d'écoute

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    + ko  | + tr 

    -
    Cette traduction peut être périmée. Verifiez la version - Anglaise pour les changements récents.
    - -

    Configuration des adresses et ports sur lesquels Apache écoute.

    -
    - + +

    Configuration d'Apache pour l'écoute sur un port et une adresse IP spécifiques.

    +
    +
    top
    -

    Informations générales

    - - - - - -

    Au moment de son démarrage, Apache se lie à un port et à une - adresse IP sur la machine locale et se met en attente de requètes. - Par défaut, Apache écoute sur toutes les adresses de la machine. - Apache accepte d'écouter sur un ou plusieurs ports spécifiques, - sur une seule ou plusieurs adresses, ou encore sur une combinaison port-adresse. - Il est fréquent d'utiliser ces possibilités avec les fonctionnalités - de Serveurs Virtuels, qui permettent de faire répondre le serveur de - manière différente en fonction de l'adresse IP, du nom d'hôte ou - du port.

    - -

    Le serveur interprète la directive - Listen - en acceptant les requètes seulement sur le port ou la combinaison - adresse IP + port passée en argument. Dans le cas où seul un port - est spécifié avec la directive - Listen, - le serveur se met à l'écoute sur le port spécifié, sur toutes - les interfaces et adresses de la machine. Si une adresse IP est - spécifiée en plus du port, le serveur n'écoute que sur l'adresse - et le port spécifié. Il est possible de configurer plusieurs adresses - et ports avec la directives - Listen - pour écoute par le serveur. Le serveur répond aux requètes faites - à toutes les adresses et ports énumérés.

    - - -

    Par exemple, pour que le serveur accepte les connexions sur - les ports 80 et 8000, spécifiez :

    - -

    - Listen 80
    - Listen 8000 -

    - -

    Pour qu'Apache accepte les connexions sur deux combinaisons - adresses + ports, spécifiez :

    - -

    - Listen 192.170.2.1:80
    - Listen 192.170.2.5:8000 -

    - -

    Les adresses IPv6 sont acceptées, pourvu qu'elles soient spécifiées - entre crochets de la façon suivante :

    - -

    - Listen [fe80::a00:20ff:fea7:ccea]:80 -

    -
    top
    +

    Vue d'ensemble

    + + + + + +

    Au démarrage d'Apache, un port et une adresse lui sont associés sur + l'hôte local et le serveur se met en attente de l'arrivée d'une requête. + Par défaut, le serveur écoute toutes les adresses de l'hôte local. + Cependant, on peut lui préciser des ports spécifiques à écouter, + ou lui dire de n'écouter que sur certaines adresses, + ou une combinaison des deux. + Tout ceci est souvent associé avec la fonctionnalité des hôtes virtuels + qui détermine la manière dont Apache répond aux différents ports, + noms d'hôtes et adresses IP.

    + +

    La directive Listen + enjoint le serveur de n'accepter des requêtes que sur les ports spécifiés ou + une combinaison adresse/port. Si seul un numéro de port est spécifié + dans la directive Listen, + le serveur écoute ce port sur toutes les interfaces réseau. + Si une adresse IP est spécifiée en plus du port, le serveur va écouter + ce port sur l'interface réseau correspondante. On peut utiliser + de multiples directives + Listen pour + spécifier plusieurs adresses et ports à écouter. Le serveur répondra alors + aux requêtes sur ces ports et adresses spécifiés.

    + +

    Par exemple, pour faire en sorte que le serveur accepte des connexions + sur les ports 80 et 8000 sur toutes ses interfaces, utilisez :

    + +

    + Listen 80
    + Listen 8000 +

    + +

    Pour faire en sorte que le serveur accepte des connexions + sur le port 80 sur une interface, et sur le port 8000 sur une + autre interface :

    + +

    + Listen 192.0.2.1:80
    + Listen 192.0.2.5:8000 +

    + +

    Les adresses IPv6 doivent être entourêes de crochets, comme dans + l'exemple suivant :

    + +

    + Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

    +
    top
    -

    Considérations Spéciales avec IPv6

    - - -

    De plus en plus de plate-formes implémentent IPv6. APR - supporte IPv6 sur la plupart d'entre elles, si bien qu'Apache - peut assigner des interfaces de connexions IPv6 et répondre aux - requètes utilisant IPv6.

    - -

    Une complication possible pour les administrateurs Apache est de - savoir si une interface de connexion IPv6 peut répondre aux deux types de - connexions IPv4 et IPv6. - Manipuler les connexions IPv4 avec une interface de connexion IPv6 - suppose l'utilisation d'adresses IPv6 mappées en IPv4, ce qui est - le cas par defaut sur la plupart des plate-formes, à l'exeption de FreeBSD, - NetBSD, et OpenBSD, cela en raison des politiques systèmes de ces plate-formes. - Mème sur des systèmes où cette fonctionnalité n'est pas activée par - défaut, une option de compilation permet de changer ce - fonctionnement pour Apache.

    -

    Pour qu'Apache puisse gérer à la fois les connexions IPv4 et IPv6 - avec un minimum d'interfaces de connexions, il faut permettre l'utilisation - des adresses - IPv6 mappées en IPv4, ce qui est possible en spécifiant l'option - - de compilation --enable-v4-mapped et en utilisant la - directive Listen - comme suit:

    +

    Remarques spécifiques à IPv6

    -

    - Listen 80 -

    - -

    Si --enable-v4-mapped a été spécifié à la compilation, - les directives Listen - de la configuration par défaut sont de la forme ci-dessus. - --enable-v4-mapped est l'option de compilation - par défaut sur toutes les plate-formes, sauf FreeBSD, NetBSD, et - OpenBSD.

    - - -

    Pour qu'Apache ne manipule que les connexions IPv4, en ignorant l'éventuel - support IPv6 de la plate-forme ou d'APR, une adresse IPv4 peut être - spécifié pour toutes les directives - Listen, - comme dans les exemples suivantss:

    - -

    - Listen 0.0.0.0:80
    - Listen 192.170.2.1:80 -

    - -

    Pour qu'Apache manipule les connexions IPv4 et IPv6 sur des interfaces - différentes (c'est-à-dire, pour ne pas accepter les addresse IPv6 mappées - en IPv4), spécifier l'option de compilation --disable-v4-mapped - et utiliser des directives Listen - spécifiques telles que:

    -

    - Listen [::]:80
    - Listen 0.0.0.0:80 -

    - -

    Avec --disable-v4-mapped, la directive - Listen à l'intérieur - du fichier de configuration par défaut créé par Apache utilise la forme - ci-dessus. - --disable-v4-mapped est l'option de compilation par défaut sous - FreeBSD, NetBSD, et OpenBSD.

    -
    top
    + +

    Un nombre croissant de plateformes implémentent IPv6, et + APR supporte IPv6 sur la plupart d'entre elles, + ce qui permet à Apache d'allouer des points de connexion (sockets) IPv6 + et de traiter des requêtes envoyées sur IPv6.

    + +

    Les administrateurs d'Apache doivent se préoccuper de la possibilité + pour un point de connexion IPv6 de traiter à la fois des connexions IPv4 + et des connexions IPv6. + Le traitement de connexions IPv4 avec un point de connexion IPv6 utilise + des adresses IPv6 traduites en IPv4, qui sont autorisées par défaut sur la + plupart des plateformes, mais sont interdites par défaut sous FreeBSD, NetBSD, + et OpenBSD, afin de respecter la politique de sécurité du système sur ces plateformes. + Mais même sur les systèmes où ces adresses sont interdites par défaut, un + paramètre spécial du script configure permet de modifier + ce comportement pour Apache.

    + +

    En revanche, sur certaines plateformes comme Linux et Tru64, la + seule manière de gérer à la fois IPv6 et IPv4 passe + par l'utilisation d'adresses traduites. Si vous voulez qu'Apache gère + des connexions IPv4 et IPv6 avec un minimum de points de connexion, + ce qui nécessite l'utilisation d'adresses IPv6 traduites en IPv4, + utilisez l'option --enable-v4-mapped du script configure.

    + +

    L'option --enable-v4-mapped est utilisée par défaut sur + toutes les plateformes sauf FreeBSD, NetBSD, et OpenBSD; + votre Apache a donc probablement été construit avec cette option.

    + +

    Si vous souhaitez qu'Apache ne gère que des connexions IPv4, sans se + soucier de ce que vos plateforme et APR supportent, spécifiez une adresse + IPv4 dans toutes les directives + Listen, comme dans l'exemple + suivant :

    + +

    + Listen 0.0.0.0:80
    + Listen 192.0.2.1:80 +

    + +

    Si votre plateforme le supporte et si vous souhaitez qu'Apache gère + des connexions IPv4 et IPv6 sur des points de connexion séparés + (c'est à dire désactiver la traduction des adresses IPv6 au format IPv4), + utilisez l'option --disable-v4-mapped du script + configure. --disable-v4-mapped est + utilisé par défaut sur FreeBSD, NetBSD, et OpenBSD.

    +
    top
    -

    Faire fonctionner tout ceci avec les Serveurs Virtuels

    - - -

    Listen - n'implémente aucun Serveur Virtuel. Cette directive sert simplement - à informer le serveur principal sur quels addresses et ports écouter. - Dans le cas où aucune section - <VirtualHost> - n'est utilisée, le serveur répondra de la mème manière pour toutes - les requètes qu'il acceptera. Cependant des sections - <VirtualHost> - peuvent être utilisées pour qu'Apache réagisse de façon différente à - une requète selon l'adresse ou le port. Avant d'implémenter - un Serveur Virtuel au moyen de la directive - <VirtualHost>, la directive - Listen - doit tre utilisée pour que le serveur écoute sur l'adresse - ou le port spécifié. Une section - <VirtualHost> - peut alors être utilisée pour définir la réaction du Serveur Virtuel pour une - adresse et un port spécifique. À noter que si un Serveur Virtuel est - positionné au moyen de la directive - <VirtualHost> - sur une adresse et un port sur lesquels le serveur n'est pas à l'écoute, - le Serveur Virtuel ne sera pas accessible.

    -
    +

    Comment tout ceci fonctionne-t-il avec les hôtes virtuels

    + + +

    La directive Listen n'implémente pas les hôtes virtuels. + Elle indique simplement au serveur principal sur quels adresses et ports + il doit écouter. Si aucune directive + <VirtualHost> + n'est présente, le serveur se comportera de la même façon pour toutes + les requêtes acceptées. En revanche, la directive + <VirtualHost> + peut être utilisée pour provoquer une réaction différente du serveur + pour un ou plusieurs adresses/ports. Pour implémenter un hôte virtuel, + on doit d'abord indiquer au serveur sur quels adresses et ports il doit écouter. + Ensuite, une section + <VirtualHost> + doit être créée pour chaque couple adresse+port spécifié afin de définir le + comportement de cet hôte virtuel. Notez que si la directive + <VirtualHost> + est définie pour une adresse et un port sur lesquels le serveur n'est pas censé + écouter, cet hôte virtuel ne sera pas accessible.

    +

    Langues Disponibles:  de  |  en  | - fr  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/bind.html.ja.euc-jp b/docs/manual/bind.html.ja.euc-jp deleted file mode 100644 index a24ca03f366..00000000000 --- a/docs/manual/bind.html.ja.euc-jp +++ /dev/null @@ -1,175 +0,0 @@ - - - -¥Х¤¥ó¥É - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥Х¤¥ó¥É

    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko 

    -
    - -

    Apache ¤¬»ÈÍѤ¹¤륢¥ɥ쥹¤ȥݡ¼¥ȤÎÀßÄê¤򤷤ޤ¹¡£

    -
    - -
    top
    -
    -

    ³µÍ×

    - - - - - -

    Apache ¤ϵ¯ư»þ¤ˡ¢¥í¡¼¥«¥ë¥ޥ·¥ó¤Τ¢¤ë¥ݡ¼¥Ȥ¢¤è¤ӥ¢¥ɥ쥹 - ¤ËÂФ·¤ÆÀܳ¤·¡¢¥ꥯ¥¨¥¹¥Ȥ¬Íè¤ë¤ΤòÂԤÁ¤ޤ¹¡£ - ¥ǥե©¥ë¥ȤǤϥޥ·¥ó¤Τ¹¤٤ƤΥ¢¥ɥ쥹¤ËÂФ·¤Æ listen ¤·¤ޤ¹¡£ - ¤·¤«¤·¤ʤ¬¤顢ÆÃÄê¤Υݡ¼¥Ȥ«¡¢ÆÃÄê¤Υ¢¥ɥ쥹¤Τߤ«¡¢ - ¤ޤ¿¤Ϥ½¤ì¤é¤ÎÁȤ߹ç¤碌¤Τ¤¤º¤줫¤ò listen ¤¹¤ë¤褦¤ˤ¹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤ϡ¢°ۤʤë IP ¥¢¥ɥ쥹¡¢¥ۥ¹¥È̾¡¢¥ݡ¼¥ȤËÂФ¹¤ë Apache - ¤αþÅúÊýˡ¤ò·èÄꤹ¤ë¥С¼¥Á¥ã¥ë¥ۥ¹¥ȵ¡ǽ¤ÈÁȤ߹ç¤碌¤ƻȤï¤ì¤ޤ¹¡£

    - -

    Listen - ¥ǥ£¥쥯¥ƥ£¥֤ǡ¢ÆÃÄê¤Υݡ¼¥Ȥ䥢¥ɥ쥹¡¦¥ݡ¼¥ȤÎÁȤ«¤é¤Τ߯þ¤äƤ¯¤ë - ¥ꥯ¥¨¥¹¥Ȥò¼õ¤±Éդ±¤ë¤褦¤ˤǤ­¤ޤ¹¡£ - ¤⤷¥ݡ¼¥ÈÈֹæ¤Τߤ¬ Listen - ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄꤵ¤줿¾ì¹ç¤ϡ¢ - ¤¹¤٤ƤΥ¤¥󥿡¼¥ե§¡¼¥¹¤ÎͿ¤¨¤é¤줿¥ݡ¼¥ÈÈֹæ¤ò - listen ¤·¤ޤ¹¡£ IP ¥¢¥ɥ쥹¤¬¥ݡ¼¥ÈÈֹæ¤ÈƱ»þ¤ËͿ¤¨¤é¤줿¾ì¹ç¤ϡ¢ - ¥µ¡¼¥ФÏͿ¤¨¤é¤줿¥ݡ¼¥Ȥȥ¤¥󥿡¼¥ե§¡¼¥¹¤ò listen ¤·¤ޤ¹¡£ - ʣ¿ô¤Î Listen ¥ǥ£¥쥯¥ƥ£¥֤òÍѤ¤¤Æ - ¤¤¤¯¤Ĥ«¤Î listen ¤¹¤륢¥ɥ쥹¤ȥݡ¼¥Ȥò»ØÄê¤Ǥ­¤ޤ¹¡£ - ¥µ¡¼¥Фϥꥹ¥Ȥµ¤줿¥¢¥ɥ쥹¤ä¥ݡ¼¥Ȥ«¤é¤Τ¹¤٤ƤΥꥯ¥¨¥¹¥ȤË - ÂФ·¤ƱþÅú¤·¤ޤ¹¡£

    - -

    ¤¿¤Ȥ¨¤С¢¥ݡ¼¥È 80 ¤È 8000 ¤ÎξÊý¤ËÂФ·¤ƤÎÀܳ¤ò¼õ¤±Éդ±¤ë¤ˤÏ

    - -

    - Listen 80
    - Listen 8000 -

    - -

    ¤Ȥ·¤ޤ¹¡£ - Æó¤ĤλØÄꤵ¤줿¥¤¥󥿥ե§¡¼¥¹¤ȥݡ¼¥ÈÈֹæ¤ËÂФ·¤ƤÎÀܳ¤ò¼õ¤±Éդ±¤ë¤ˤϡ¢ -

    - -

    - Listen 192.170.2.1:80
    - Listen 192.170.2.5:8000 -

    - -

    ¤Ȥ·¤ޤ¹¡£ - IPv6 ¥¢¥ɥ쥹¤ϡ¢³ѳç¸̤Ǽ¡¤ÎÎã¤Τ褦¤˰Ϥޤʤ±¤ì¤Ф¤¤±¤ޤ»¤ó¡£

    - -

    - Listen [fe80::a00:20ff:fea7:ccea]:80 -

    -
    top
    -
    -

    IPv6 ¤ÎÆõ­»ö¹à

    - - -

    ¿¤¯¤Υץé¥åȥۡ¼¥à¤Ç IPv6 ¤¬¥µ¥ݡ¼¥Ȥµ¤ì¤Ƥ­¤Ƥ¤¤ơ¢ - APR ¤Ϥ³¤ì¤é¤ΤۤȤó¤ɤÇ IPv6 ¤򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ë¤Τǡ¢ - Apache ¤Ï IPv6 ¥½¥±¥åȤò³ä¤êÅö¤ƤÆ IPv6 - ·Ðͳ¤ÇÁ÷¤é¤ì¤Ƥ­¤¿¥ꥯ¥¨¥¹¥Ȥ򰷤¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    IPv6 ¥½¥±¥åȤ¬ IPv4 ¤È IPv6 ¥³¥ͥ¯¥·¥ç¥ó¤ÎξÊý¤򰷤¦¤³¤Ȥ¬¤Ǥ­¤뤫 - ¤ɤ¦¤«¤ϡ¢Apache ´ÉÍý¼ԤˤȤäÆÌñ²ð¤ÊÌäÂê¤Ǥ¹¡£ - IPv4 ¥³¥ͥ¯¥·¥ç¥ó¤ò IPv6 ¥½¥±¥åȤǰ·¤¦¾ì¹ç¤ϡ¢ - IPv4 ¥ޥåפµ¤줿 IPv6 ¥¢¥ɥ쥹¤ò»ÈÍѤ·¤Ƥ¤¤ơ¢ - ¤ۤȤó¤ɤΥץé¥åȥۡ¼¥à¤Ǥϥǥե©¥ë¥ȤǻÈÍѲÄǽ¤Ǥ¹¤¬¡¢ - FreeBSD, NetBSD, OpenBSD ¤Ǥϡ¢¥·¥¹¥ƥàÁ´ÂΤȤ·¤ƤΥݥꥷ¡¼¤ȤÎÀ°¹çÀ­¤«¤顢 - ¥ǥե©¥ë¥ȤǤϻÈÍÑÉԲĤËÀßÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£ - ¤³¤ì¤é¤Υǥե©¥ë¥ȤǻÈÍÑÉԲĤΥץé¥åȥۡ¼¥à¤Ǥ¢¤äƤ⡢ - ÆÃÊ̤Ê configure ¤Î - ÀßÄê¥ѥé¥᡼¥¿¤Ç Apache ¤εóư¤òÊѲ½¤µ¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    °ìÊý¤ǡ¢Linux ¤ä Tru64 ¤Ȥ¤¤ä¿¥ץé¥åȥۡ¼¥à¤Ç IPv4 ¤È IPv6 - ¤ÎξÊý¤򰷤¦¤ˤϡ¢¥ޥåץȥ¢¥ɥ쥹¤ò»ÈÍѤ¹¤ë°ʳ°¤ÎÊýˡ¤Ϥ¢¤ê¤ޤ»¤ó¡£ - IPv4 ¤È IPv6 ¤Υ³¥ͥ¯¥·¥ç¥ó¤òºǾ®¸¤Υ½¥±¥åȤǰ·¤¤¤¿¤¤¤ΤǤ¢¤ì¤С¢ - IPv4 ¥ޥåפÎ IPv6 ¥¢¥ɥ쥹¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ꡢ - --enable-v4-mapped configure - ¥ª¥ץ·¥ç¥ó¤ò»ØÄꤷ¤ޤ¹¡£

    - -

    --enable-v4-mapped ¤ϡ¢ - FreeBSD, NetBSD, OpenBSD °ʳ°¤ÎÁ´¤ƤΥץé¥åȥۡ¼¥à¤ǤΥǥե©¥ë¥ȤǤ¹¡£ - ¤Ǥ¹¤«¤顢¤ª¤½¤餯¤ª¼긵¤Î Apache ¤Ϥ³¤ÎÀßÄê¤ǥӥë¥ɤµ¤ì¤Ƥ¤¤ë¤Ǥ·¤礦¡£

    - -

    ¥ץé¥åȥե©¡¼¥à¤ä APR ¤¬²¿¤򥵥ݡ¼¥Ȥ¹¤뤫¤˴ؤï¤餺¡¢ - IPv4 ¥³¥ͥ¯¥·¥ç¥ó¤Τߤ򰷤¦¤褦¤ˤ·¤¿¤¤¾ì¹ç¤ϡ¢ - ¼¡¤ÎÎã¤Τ褦¤ËÁ´¤ƤÎ - Listen ¥ǥ£¥쥯¥ƥ£¥֤Ç - IPv4 ¥¢¥ɥ쥹¤ò»ØÄꤷ¤Ƥ¯¤À¤µ¤¤¡£

    - -

    - Listen 0.0.0.0:80
    - Listen 192.170.2.1:80 -

    - -

    ¾ò·ï¤òËþ¤¿¤¹¥ץé¥åȥۡ¼¥à¤ǡ¢Apache ¤¬ - IPv4 ¤È IPv6 ¤Υ³¥ͥ¯¥·¥ç¥ó¤ò¸ÄÊ̤Υ½¥±¥åȤǰ·¤¦¤褦¤ˤ·¤¿¤¤¾ì¹ç - (¤Ĥޤê IPv4 ¥ޥåפΥ¢¥ɥ쥹¤ò̵¸ú¤ˤ·¤¿¤¤¾ì¹ç) - ¤ϡ¢--disable-v4-mapped - configure - ¥ª¥ץ·¥ç¥ó¤ò»ØÄꤷ¤ơ¢¼¡¤Τ褦¤˸ÄÊ̻ØÄê¤Î - Listen - ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤ·¤Ƥ¯¤À¤µ¤¤¡£ - --disable-v4-mapped ¤ϡ¢ - FreeBSD, NetBSD, OpenBSD ¥ץé¥åȥۡ¼¥à¤ǤΥǥե©¥ë¥ȤǤ¹¡£

    -
    top
    -
    -

    ¥С¼¥Á¥ã¥ë¥ۥ¹¥ȤËÂФ·¤Ƥɤ¦Ư¤¯¤Τ«

    - - -

    Listen - ¤ǥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥ¬¼ÂÁõ¤µ¤ì¤ë¤櫓¤ǤϤ¢¤ê¤ޤ»¤ó¡£ - Listen ¤Ïñ¤˥ᥤ¥󥵡¼¥ФˤɤΥ¢¥ɥ쥹¤ȥݡ¼¥Ȥò listen ¤¹¤٤­¤«¤ò - ¶µ¤¨¤ë¤À¤±¤Ǥ¹¡£ - <VirtualHost> - ¥ǥ£¥쥯¥ƥ£¥֤¬»Ȥï¤ì¤ʤ¤¾ì¹ç¤ϡ¢ - ¼õ¤±Æþ¤줿¥ꥯ¥¨¥¹¥Ȥ¹¤٤ƤËÂФ·¤ÆÁ´¤¯Ʊ¤¸µóư¤򤷤ޤ¹¡£ - ¤·¤«¤·¤ʤ¬¤é - <VirtualHost> - ¤ò»Ȥäơ¢ - °ì¤İʾå¤Υ¢¥ɥ쥹¤ä¥ݡ¼¥ȤËÂФ·¤ưۤʤëµóư¤򤹤ë¤褦¤Ë - »ØÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - VirtualHost ¤ò¼ÂÁõ¤¹¤ë¤ˤϡ¢»ÈÍѤ¹¤륢¥ɥ쥹¤ȥݡ¼¥Ȥò - ¤ޤº½é¤á¤˥µ¡¼¥ФËÄÌÃΤ·¤ʤ±¤ì¤Фʤê¤ޤ»¤ó¡£ - ¤½¤·¤ơ¢¤½¤λØÄꤷ¤¿¥¢¥ɥ쥹¤ȥݡ¼¥ȤǤÎ - ¤³¤ΥС¼¥Á¥ã¥ë¥ۥ¹¥Ȥεóư¤òÀßÄꤹ¤뤿¤á¤ˡ¢ - <VirtualHost> - ¥»¥¯¥·¥ç¥ó¤òºî¤ê¤ޤ¹¡£¤⤷ - <VirtualHost> - ¤¬ listen ¤·¤Ƥ¤¤ʤ¤¥¢¥ɥ쥹¤ȥݡ¼¥ȤËÂФ·¤Æ - ÀßÄꤵ¤ì¤Ƥ·¤ޤ¦¤ȡ¢ - ¤½¤ì¤ˤϥ¢¥¯¥»¥¹¤Ǥ­¤ʤ¤¤Ȥ¤¤¦¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -
    -

    Available Languages:  de  | - en  | - fr  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/bind.html.ja.utf8 b/docs/manual/bind.html.ja.utf8 new file mode 100644 index 00000000000..cc2bbf5763d --- /dev/null +++ b/docs/manual/bind.html.ja.utf8 @@ -0,0 +1,209 @@ + + + + + +バインド - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    バインド

    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    Apache が使用するアドレスとポートの設定をします。

    +
    + +
    top
    +
    +

    概要

    + + + + + +

    Apache は起動時に、ローカルマシンのあるポートおよびアドレス + に対して接続し、リクエストが来るのを待ちます。 + デフォルトではマシンのすべてのアドレスに対して listen します。 + しかしながら、特定のポートか、特定のアドレスのみか、 + またはそれらの組み合わせのいずれかを listen するようにする必要があります。 + これは、異なる IP アドレス、ホスト名、ポートに対する Apache + の応答方法を決定するバーチャルホスト機能と組み合わせて使われます。

    + +

    Listen + ディレクティブで、特定のポートやアドレス・ポートの組からのみ入ってくる + リクエストを受け付けるようにできます。 + もしポート番号のみが Listen + ディレクティブで指定された場合は、 + すべてのインターフェースの与えられたポート番号を + listen します。 IP アドレスがポート番号と同時に与えられた場合は、 + サーバは与えられたポートとインターフェースを listen します。 + 複数の Listen ディレクティブを用いて + いくつかの listen するアドレスとポートを指定できます。 + サーバはリストされたアドレスやポートからのすべてのリクエストに + 対して応答します。

    + +

    たとえば、ポート 80 と 8000 の両方に対しての接続を受け付けるには

    + +

    + Listen 80
    + Listen 8000 +

    + +

    とします。 + 二つの指定されたインタフェースとポート番号に対しての接続を受け付けるには、 +

    + +

    + Listen 192.0.2.1:80
    + Listen 192.0.2.5:8000 +

    + +

    とします。 + IPv6 アドレスは、角括弧で次の例のように囲まなければいけません。

    + +

    + Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

    +
    top
    +
    +

    IPv6 の特記事項

    + + +

    多くのプラットホームで IPv6 がサポートされてきていて、 + APR はこれらのほとんどで IPv6 をサポートしているので、 + Apache は IPv6 ソケットを割り当てて IPv6 + 経由で送られてきたリクエストを扱うことができます。

    + +

    IPv6 ソケットが IPv4 と IPv6 コネクションの両方を扱うことができるか + どうかは、Apache 管理者にとって厄介な問題です。 + IPv4 コネクションを IPv6 ソケットで扱う場合は、 + IPv4 マップされた IPv6 アドレスを使用していて、 + ほとんどのプラットホームではデフォルトで使用可能ですが、 + FreeBSD, NetBSD, OpenBSD では、システム全体としてのポリシーとの整合性から、 + デフォルトでは使用不可に設定されています。 + これらのデフォルトで使用不可のプラットホームであっても、 + 特別な configure の + 設定パラメータで Apache の挙動を変化させることができます。

    + +

    一方で、Linux や Tru64 といったプラットホームで IPv4 と IPv6 + の両方を扱うには、マップトアドレスを使用する以外の方法はありません。 + IPv4 と IPv6 のコネクションを最小限のソケットで扱いたいのであれば、 + IPv4 マップの IPv6 アドレスを使用する必要があり、 + --enable-v4-mapped configure + オプションを指定します。

    + +

    --enable-v4-mapped は、 + FreeBSD, NetBSD, OpenBSD 以外の全てのプラットホームでのデフォルトです。 + ですから、おそらくお手元の Apache はこの設定でビルドされているでしょう。

    + +

    プラットフォームや APR が何をサポートするかに関わらず、 + IPv4 コネクションのみを扱うようにしたい場合は、 + 次の例のように全ての + Listen ディレクティブで + IPv4 アドレスを指定してください。

    + +

    + Listen 0.0.0.0:80
    + Listen 192.0.2.1:80 +

    + +

    条件を満たすプラットホームで、Apache が + IPv4 と IPv6 のコネクションを個別のソケットで扱うようにしたい場合 + (つまり IPv4 マップのアドレスを無効にしたい場合) + は、--disable-v4-mapped + configure + オプションを指定して、次のように個別指定の + Listen + ディレクティブを使用してください。 + --disable-v4-mapped は、 + FreeBSD, NetBSD, OpenBSD プラットホームでのデフォルトです。

    +
    top
    +
    +

    バーチャルホストに対してどう働くのか

    + + +

    Listen + でバーチャルホストが実装されるわけではありません。 + Listen は単にメインサーバにどのアドレスとポートを listen すべきかを + 教えるだけです。 + <VirtualHost> + ディレクティブが使われない場合は、 + 受け入れたリクエストすべてに対して全く同じ挙動をします。 + しかしながら + <VirtualHost> + を使って、 + 一つ以上のアドレスやポートに対して異なる挙動をするように + 指定することができます。 + VirtualHost を実装するには、使用するアドレスとポートを + まず初めにサーバに通知しなければなりません。 + そして、その指定したアドレスとポートでの + このバーチャルホストの挙動を設定するために、 + <VirtualHost> + セクションを作ります。もし + <VirtualHost> + が listen していないアドレスとポートに対して + 設定されてしまうと、 + それにはアクセスできないということに注意してください。

    +
    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/bind.html.ko.euc-kr b/docs/manual/bind.html.ko.euc-kr index cf17ab84d0a..29a8d6e00a6 100644 --- a/docs/manual/bind.html.ko.euc-kr +++ b/docs/manual/bind.html.ko.euc-kr @@ -1,28 +1,36 @@ - -ÁּҿÍ Æ÷Ʈ ÁöÁ¤ (Binding) - Apache HTTP Server +ÁּҿÍ Æ÷Ʈ ÁöÁ¤ (Binding) - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ÁּҿÍ Æ÷Ʈ ÁöÁ¤ (Binding)

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ÁּҿÍ Æ÷Ʈ ÁöÁ¤ (Binding)

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  |  fr  |  ja  | - ko 

    + ko  | + tr 

    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.
    @@ -32,7 +40,7 @@ +

    Âü°í

    top

    °³¿ä

    @@ -68,14 +76,14 @@ ÇϷÁ¸é,

    - Listen 192.170.2.1:80
    - Listen 192.170.2.5:8000 + Listen 192.0.2.1:80
    + Listen 192.0.2.5:8000

    IPv6 ÁּҴ ´ÙÀ½°ú °°ÀÌ ´ë°ýȣ·Î ¹­¾î¾ß ÇѴÙ:

    - Listen [fe80::a00:20ff:fea7:ccea]:80 + Listen [2001:db8::a00:20ff:fea7:ccea]:80

    top
    @@ -111,7 +119,7 @@

    Listen 0.0.0.0:80
    - Listen 192.170.2.1:80 + Listen 192.0.2.1:80

    Ç÷¡Æû¿¡¼­ Áö¿øÇϸç ¾ÆÆÄġ°¡ ¼­·Î ´ٸ¥ ¼ÒÄÏÀ¸·Î IPv4 @@ -144,8 +152,30 @@  en  |  fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/bind.html.tr.utf8 b/docs/manual/bind.html.tr.utf8 new file mode 100644 index 00000000000..a7aa3692e5b --- /dev/null +++ b/docs/manual/bind.html.tr.utf8 @@ -0,0 +1,185 @@ + + + + + +Dinleme - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Dinleme

    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    + +

    Apache’nin belli adresleri ve portları dinlemek üzere + yapılandırılması.

    +
    + +
    top
    +
    +

    Genel Bakış

    + + + + + +

    Apache başlatıldığında yerel makinedeki bazı adres ve portları kendine + bağlar ve gelecek istekleri bekler. Öntanımlı olarak makine üzerindeki + tüm adresleri dinler. Bununla birlikte, belli portları veya sadece + seçilmiş bazı adresleri ya da her ikisini de dinlemesi için bunun + belirtilmesi gerekebilir. Bu çoğunlukla, Apache’nin farklı IP + adreslerine, konak isimlerine ve portlarına nasıl yanıt vereceğinin + belirlendiği sanal konak özelliği ile birlikte yürür.

    + +

    Listen yönergesi sunucuya + gelen istekleri sadece belli portlardan veya belli adres ve port + birleşimlerinden kabul etmesini söyler. Listen yönergesinde sadece port + numarası belirtilmişse sunucu tüm arabirimlerin belirtilen portunu + dinleyecektir. Portla birlikte bir IP adresi de belirtilmişse sunucu + belirtilen portu ve arabirimi dinleyecektir. Çok sayıda adres ve portu + dinlemek için çok sayıda Listen yönergesi kullanılabilir. Sunucu + böyle bir durumda belirtilen bütün adres ve portlardan gelen isteklere + yanıt verecektir.

    + +

    Örneğin, sunucunun tüm arabirimlerin hem 80 portundan hem de 8000 + portundan gelen bağlantıları kabul etmesini sağlamak için,

    + +

    + Listen 80
    + Listen 8000 +

    + +

    yapılandırmasını kullanabilirsiniz. Sunucunun 80 portuna gelen + bağlantıları bir arabirimden 8000 portuna gelenleri ise başka bir + arabirimden kabul etmesini sağlamak için ise,

    + +

    + Listen 192.0.2.1:80
    + Listen 192.0.2.5:8000 +

    + +

    yapılandırmasını kullanabilirsiniz. IPv6 adresleri aşağıdaki örnekteki + gibi köşeli ayraçlar içine alınarak belirtilmelidir:

    + +

    + Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

    +
    top
    +
    +

    IPv6 Adreslerin Durumu

    + + +

    IPv6’yı gerçekleyen platformların sayısı giderek artmaktadır. Bu + platformların çoğunda APR, Apache’nin IPv6 + soketleri ayırmasını mümkün kılarak IPv6’yı desteklemekte ve IPv6 + üzerinden gönderilmiş istekleri elde etmektedir.

    + +

    Apache yöneticilerinin kafasını karıştırıran tek şey IPv6 soketlerin + hem IPv4 hem de IPv6 bağlantılarını kabul edip etmeyeceğidir. IPv4 + bağlantılarını kabul eden IPv6 soketleri IPv4 eşlemli IPv6 adresleri + kullanırlar. Bu çoğu sistemde öntanımlı olarak böyleyken, FreeBSD, + NetBSD ve OpenBSD’de sistem geneline uygulanan kurallar gereğince + öntanımlı olarak buna izin verilmez; bu sistemlerde özel bir + configure parametresi ile Apache’nin davranışı + değiştirilebilir.

    + +

    Diğer taraftan, Linux ve Tru64 gibi bazı platformlarda hem IPv4 hem de + IPv6 adresleri kabul etmenin tek yolu eşlemli adresler + kullanmaktır. Apache’nin IPv4 ve IPv6 adresleri, IPv4 eşlemli IPv6 + adreslerin kullanımını gerektiren en az sayıda soketle kabul etmesini + istiyorsanız, configure betiğine + --enable-v4-mapped seçeneğini belirtiniz.

    + +

    --enable-v4-mapped seçeneği, FreeBSD, NetBSD ve OpenBSD + hariç tüm platformlarda öntanımlıdır. Muhtemelen siz de Apache’nin + böyle derlenmesini isterdiniz.

    + +

    Platformunuzun ve APR’nin neyi desteklediğine bakmaksızın Apache’nin + sadece IPv4 adresleri kabul etmesini istiyorsanız, tüm Listen yönergelerinde örnekteki gibi + IPv4 adresleri belirtiniz:

    + +

    + Listen 0.0.0.0:80
    + Listen 192.0.2.1:80 +

    + +

    Platformunuz IPv4 ve IPv6 adresleri ayrı soketlerden kabul ediyorsa ve + Apache’nin de buna uygun davranmasını (yani IPv4 eşlemli IPv6 + adreslerin iptalini) istiyorsanız configure + betiğine --disable-v4-mapped seçeneğini belirtiniz. Bu + seçenek FreeBSD, NetBSD ve OpenBSD’de öntanımlıdır.

    +
    top
    +
    +

    Sanal Konaklarla Nasıl Çalışır?

    + + +

    Listen yönergesi sanal + konaklar için gerçeklenmemiştir; sadece ana sunucuya hangi adresleri ve + portları dinleyeceğini söyler. Hiç <VirtualHost> yönergesi kullanılmamışsa sunucu + kabul edilen tüm isteklere aynı şekilde davranacaktır. Eğer bir veya + daha fazla adres veya port için farklı bir davranış belirtmek + istiyorsanız <VirtualHost> kullanabilirsiniz. Bir sanal + konağı gerçeklemek için önce sunucunun sanal konak için kullanacağı + adres ve portu dinleyeceğini belirtmek gerekir. Bundan sonra bu sanal + konağın davranışını ayarlamak üzere belirtilen adres ve port için bir + <VirtualHost> bölümü + oluşturulmalıdır. Yalnız dikkat edin, eğer <VirtualHost> için belirtilen adres ve port + sunucu tarafından dinlenmiyorsa ona erişemezsiniz.

    +
    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/bind.xml b/docs/manual/bind.xml index c939818e46b..4fe8618b129 100644 --- a/docs/manual/bind.xml +++ b/docs/manual/bind.xml @@ -4,12 +4,12 @@ + + + + + + + - + bind / . @@ -8,8 +9,9 @@ de en - fr - ja + fr + ja ko + tr diff --git a/docs/manual/bind.xml.tr b/docs/manual/bind.xml.tr new file mode 100644 index 00000000000..3e5b2982b0d --- /dev/null +++ b/docs/manual/bind.xml.tr @@ -0,0 +1,165 @@ + + + + + + + + + + + Dinleme + + +

    Apache’nin belli adresleri ve portları dinlemek üzere + yapılandırılması.

    +
    + + Sanal Konaklar + DNS Konuları + +
    + Genel Bakış + + + + core + mpm_common + + + VirtualHost + Listen + + + + +

    Apache başlatıldığında yerel makinedeki bazı adres ve portları kendine + bağlar ve gelecek istekleri bekler. Öntanımlı olarak makine üzerindeki + tüm adresleri dinler. Bununla birlikte, belli portları veya sadece + seçilmiş bazı adresleri ya da her ikisini de dinlemesi için bunun + belirtilmesi gerekebilir. Bu çoğunlukla, Apache’nin farklı IP + adreslerine, konak isimlerine ve portlarına nasıl yanıt vereceğinin + belirlendiği sanal konak özelliği ile birlikte yürür.

    + +

    Listen yönergesi sunucuya + gelen istekleri sadece belli portlardan veya belli adres ve port + birleşimlerinden kabul etmesini söyler. Listen yönergesinde sadece port + numarası belirtilmişse sunucu tüm arabirimlerin belirtilen portunu + dinleyecektir. Portla birlikte bir IP adresi de belirtilmişse sunucu + belirtilen portu ve arabirimi dinleyecektir. Çok sayıda adres ve portu + dinlemek için çok sayıda Listen yönergesi kullanılabilir. Sunucu + böyle bir durumda belirtilen bütün adres ve portlardan gelen isteklere + yanıt verecektir.

    + +

    Örneğin, sunucunun tüm arabirimlerin hem 80 portundan hem de 8000 + portundan gelen bağlantıları kabul etmesini sağlamak için,

    + + + Listen 80
    + Listen 8000 +
    + +

    yapılandırmasını kullanabilirsiniz. Sunucunun 80 portuna gelen + bağlantıları bir arabirimden 8000 portuna gelenleri ise başka bir + arabirimden kabul etmesini sağlamak için ise,

    + + + Listen 192.0.2.1:80
    + Listen 192.0.2.5:8000 +
    + +

    yapılandırmasını kullanabilirsiniz. IPv6 adresleri aşağıdaki örnekteki + gibi köşeli ayraçlar içine alınarak belirtilmelidir:

    + + + Listen [2001:db8::a00:20ff:fea7:ccea]:80 + +
    + +
    + IPv6 Adreslerin Durumu + +

    IPv6’yı gerçekleyen platformların sayısı giderek artmaktadır. Bu + platformların çoğunda APR, Apache’nin IPv6 + soketleri ayırmasını mümkün kılarak IPv6’yı desteklemekte ve IPv6 + üzerinden gönderilmiş istekleri elde etmektedir.

    + +

    Apache yöneticilerinin kafasını karıştırıran tek şey IPv6 soketlerin + hem IPv4 hem de IPv6 bağlantılarını kabul edip etmeyeceğidir. IPv4 + bağlantılarını kabul eden IPv6 soketleri IPv4 eşlemli IPv6 adresleri + kullanırlar. Bu çoğu sistemde öntanımlı olarak böyleyken, FreeBSD, + NetBSD ve OpenBSD’de sistem geneline uygulanan kurallar gereğince + öntanımlı olarak buna izin verilmez; bu sistemlerde özel bir + configure parametresi ile Apache’nin davranışı + değiştirilebilir.

    + +

    Diğer taraftan, Linux ve Tru64 gibi bazı platformlarda hem IPv4 hem de + IPv6 adresleri kabul etmenin tek yolu eşlemli adresler + kullanmaktır. Apache’nin IPv4 ve IPv6 adresleri, IPv4 eşlemli IPv6 + adreslerin kullanımını gerektiren en az sayıda soketle kabul etmesini + istiyorsanız, configure betiğine + --enable-v4-mapped seçeneğini belirtiniz.

    + +

    --enable-v4-mapped seçeneği, FreeBSD, NetBSD ve OpenBSD + hariç tüm platformlarda öntanımlıdır. Muhtemelen siz de Apache’nin + böyle derlenmesini isterdiniz.

    + +

    Platformunuzun ve APR’nin neyi desteklediğine bakmaksızın Apache’nin + sadece IPv4 adresleri kabul etmesini istiyorsanız, tüm Listen yönergelerinde örnekteki gibi + IPv4 adresleri belirtiniz:

    + + + Listen 0.0.0.0:80
    + Listen 192.0.2.1:80 +
    + +

    Platformunuz IPv4 ve IPv6 adresleri ayrı soketlerden kabul ediyorsa ve + Apache’nin de buna uygun davranmasını (yani IPv4 eşlemli IPv6 + adreslerin iptalini) istiyorsanız configure + betiğine --disable-v4-mapped seçeneğini belirtiniz. Bu + seçenek FreeBSD, NetBSD ve OpenBSD’de öntanımlıdır.

    +
    + +
    + Sanal Konaklarla Nasıl Çalışır? + +

    Listen yönergesi sanal + konaklar için gerçeklenmemiştir; sadece ana sunucuya hangi adresleri ve + portları dinleyeceğini söyler. Hiç VirtualHost yönergesi kullanılmamışsa sunucu + kabul edilen tüm isteklere aynı şekilde davranacaktır. Eğer bir veya + daha fazla adres veya port için farklı bir davranış belirtmek + istiyorsanız VirtualHost kullanabilirsiniz. Bir sanal + konağı gerçeklemek için önce sunucunun sanal konak için kullanacağı + adres ve portu dinleyeceğini belirtmek gerekir. Bundan sonra bu sanal + konağın davranışını ayarlamak üzere belirtilen adres ve port için bir + VirtualHost bölümü + oluşturulmalıdır. Yalnız dikkat edin, eğer VirtualHost için belirtilen adres ve port + sunucu tarafından dinlenmiyorsa ona erişemezsiniz.

    +
    +
    + + diff --git a/docs/manual/caching.html b/docs/manual/caching.html new file mode 100644 index 00000000000..53094a5f391 --- /dev/null +++ b/docs/manual/caching.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: caching.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: caching.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: caching.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/caching.html.en b/docs/manual/caching.html.en new file mode 100644 index 00000000000..a5a736b4e1f --- /dev/null +++ b/docs/manual/caching.html.en @@ -0,0 +1,685 @@ + + + + + +Caching Guide - Apache HTTP Server Version 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Caching Guide

    +
    +

    Available Languages:  en  | + fr  | + tr 

    +
    + +

    This document supplements the mod_cache, + mod_disk_cache, mod_mem_cache, + mod_file_cache and htcacheclean reference documentation. + It describes how to use Apache's caching features to accelerate web and + proxy serving, while avoiding common problems and misconfigurations.

    +
    + +
    top
    +
    +

    Introduction

    + + +

    As of Apache HTTP server version 2.2 mod_cache + and mod_file_cache are no longer marked + experimental and are considered suitable for production use. These + caching architectures provide a powerful means to accelerate HTTP + handling, both as an origin webserver and as a proxy.

    + +

    mod_cache and its provider modules + mod_mem_cache and mod_disk_cache + provide intelligent, HTTP-aware caching. The content itself is stored + in the cache, and mod_cache aims to honour all of the various HTTP + headers and options that control the cachability of content. It can + handle both local and proxied content. mod_cache + is aimed at both simple and complex caching configurations, where + you are dealing with proxied content, dynamic local content or + have a need to speed up access to local files which change with + time.

    + +

    mod_file_cache on the other hand presents a more + basic, but sometimes useful, form of caching. Rather than maintain + the complexity of actively ensuring the cachability of URLs, + mod_file_cache offers file-handle and memory-mapping + tricks to keep a cache of files as they were when Apache was last + started. As such, mod_file_cache is aimed at improving + the access time to local static files which do not change very + often.

    + +

    As mod_file_cache presents a relatively simple + caching implementation, apart from the specific sections on CacheFile and MMapFile, the explanations + in this guide cover the mod_cache caching + architecture.

    + +

    To get the most from this document, you should be familiar with + the basics of HTTP, and have read the Users' Guides to + Mapping URLs to the Filesystem and + Content negotiation.

    + +
    top
    +
    +

    Caching Overview

    + + + + + +

    There are two main stages in mod_cache that can + occur in the lifetime of a request. First, mod_cache + is a URL mapping module, which means that if a URL has been cached, + and the cached version of that URL has not expired, the request will + be served directly by mod_cache.

    + +

    This means that any other stages that might ordinarily happen + in the process of serving a request -- for example being handled + by mod_proxy, or mod_rewrite -- + won't happen. But then this is the point of caching content in + the first place.

    + +

    If the URL is not found within the cache, mod_cache + will add a filter to the request handling. After + Apache has located the content by the usual means, the filter will be run + as the content is served. If the content is determined to be cacheable, + the content will be saved to the cache for future serving.

    + +

    If the URL is found within the cache, but also found to have expired, + the filter is added anyway, but mod_cache will create + a conditional request to the backend, to determine if the cached version + is still current. If the cached version is still current, its + meta-information will be updated and the request will be served from the + cache. If the cached version is no longer current, the cached version + will be deleted and the filter will save the updated content to the cache + as it is served.

    + +

    Improving Cache Hits

    + + +

    When caching locally generated content, ensuring that + UseCanonicalName is set to + On can dramatically improve the ratio of cache hits. This + is because the hostname of the virtual-host serving the content forms + a part of the cache key. With the setting set to On + virtual-hosts with multiple server names or aliases will not produce + differently cached entities, and instead content will be cached as + per the canonical hostname.

    + +

    Because caching is performed within the URL to filename translation + phase, cached documents will only be served in response to URL requests. + Ordinarily this is of little consequence, but there is one circumstance + in which it matters: If you are using Server + Side Includes;

    + +
    <!-- The following include can be cached -->
    +<!--#include virtual="/footer.html" --> 
    +
    +<!-- The following include can not be cached -->
    +<!--#include file="/path/to/footer.html" -->
    + +

    If you are using Server Side Includes, and want the benefit of speedy + serves from the cache, you should use virtual include + types.

    + + +

    Expiry Periods

    + + +

    The default expiry period for cached entities is one hour, however + this can be easily over-ridden by using the CacheDefaultExpire directive. This + default is only used when the original source of the content does not + specify an expire time or time of last modification.

    + +

    If a response does not include an Expires header but does + include a Last-Modified header, mod_cache + can infer an expiry period based on the use of the CacheLastModifiedFactor directive.

    + +

    For local content, mod_expires may be used to + fine-tune the expiry period.

    + +

    The maximum expiry period may also be controlled by using the + CacheMaxExpire.

    + + + +

    A Brief Guide to Conditional Requests

    + + +

    When content expires from the cache and is re-requested from the + backend or content provider, rather than pass on the original request, + Apache will use a conditional request instead.

    + +

    HTTP offers a number of headers which allow a client, or cache + to discern between different versions of the same content. For + example if a resource was served with an "Etag:" header, it is + possible to make a conditional request with an "If-None-Match:" + header. If a resource was served with a "Last-Modified:" header + it is possible to make a conditional request with an + "If-Modified-Since:" header, and so on.

    + +

    When such a conditional request is made, the response differs + depending on whether the content matches the conditions. If a request is + made with an "If-Modified-Since:" header, and the content has not been + modified since the time indicated in the request then a terse "304 Not + Modified" response is issued.

    + +

    If the content has changed, then it is served as if the request were + not conditional to begin with.

    + +

    The benefits of conditional requests in relation to caching are + twofold. Firstly, when making such a request to the backend, if the + content from the backend matches the content in the store, this can be + determined easily and without the overhead of transferring the entire + resource.

    + +

    Secondly, conditional requests are usually less strenuous on the + backend. For static files, typically all that is involved is a call + to stat() or similar system call, to see if the file has + changed in size or modification time. As such, even if Apache is + caching local content, even expired content may still be served faster + from the cache if it has not changed. As long as reading from the cache + store is faster than reading from the backend (e.g. an in-memory cache + compared to reading from disk).

    + + +

    What Can be Cached?

    + + +

    As mentioned already, the two styles of caching in Apache work + differently, mod_file_cache caching maintains file + contents as they were when Apache was started. When a request is + made for a file that is cached by this module, it is intercepted + and the cached file is served.

    + +

    mod_cache caching on the other hand is more + complex. When serving a request, if it has not been cached + previously, the caching module will determine if the content + is cacheable. The conditions for determining cachability of + a response are;

    + +
      +
    1. Caching must be enabled for this URL. See the CacheEnable and CacheDisable directives.
    2. + +
    3. The response must have a HTTP status code of 200, 203, 300, 301 or + 410.
    4. + +
    5. The request must be a HTTP GET request.
    6. + +
    7. If the request contains an "Authorization:" header, the response + will not be cached.
    8. + +
    9. If the response contains an "Authorization:" header, it must + also contain an "s-maxage", "must-revalidate" or "public" option + in the "Cache-Control:" header.
    10. + +
    11. If the URL included a query string (e.g. from a HTML form GET + method) it will not be cached unless the response specifies an + explicit expiration by including an "Expires:" header or the max-age + or s-maxage directive of the "Cache-Control:" header, as per RFC2616 + sections 13.9 and 13.2.1.
    12. + +
    13. If the response has a status of 200 (OK), the response must + also include at least one of the "Etag", "Last-Modified" or + the "Expires" headers, or the max-age or s-maxage directive of + the "Cache-Control:" header, unless the + CacheIgnoreNoLastMod + directive has been used to require otherwise.
    14. + +
    15. If the response includes the "private" option in a "Cache-Control:" + header, it will not be stored unless the + CacheStorePrivate has been + used to require otherwise.
    16. + +
    17. Likewise, if the response includes the "no-store" option in a + "Cache-Control:" header, it will not be stored unless the + CacheStoreNoStore has been + used.
    18. + +
    19. A response will not be stored if it includes a "Vary:" header + containing the match-all "*".
    20. +
    + + +

    What Should Not be Cached?

    + + +

    In short, any content which is highly time-sensitive, or which varies + depending on the particulars of the request that are not covered by + HTTP negotiation, should not be cached.

    + +

    If you have dynamic content which changes depending on the IP address + of the requester, or changes every 5 minutes, it should almost certainly + not be cached.

    + +

    If on the other hand, the content served differs depending on the + values of various HTTP headers, it might be possible + to cache it intelligently through the use of a "Vary" header.

    + + +

    Variable/Negotiated Content

    + + +

    If a response with a "Vary" header is received by + mod_cache when requesting content by the backend it + will attempt to handle it intelligently. If possible, + mod_cache will detect the headers attributed in the + "Vary" response in future requests and serve the correct cached + response.

    + +

    If for example, a response is received with a vary header such as;

    + +

    +Vary: negotiate,accept-language,accept-charset +

    + +

    mod_cache will only serve the cached content to + requesters with accept-language and accept-charset headers + matching those of the original request.

    + +
    top
    +
    +

    Security Considerations

    + + +

    Authorization and Access Control

    + + +

    Using mod_cache is very much like having a built + in reverse-proxy. Requests will be served by the caching module unless + it determines that the backend should be queried. When caching local + resources, this drastically changes the security model of Apache.

    + +

    As traversing a filesystem hierarchy to examine potential + .htaccess files would be a very expensive operation, + partially defeating the point of caching (to speed up requests), + mod_cache makes no decision about whether a cached + entity is authorised for serving. In other words; if + mod_cache has cached some content, it will be served + from the cache as long as that content has not expired.

    + +

    If, for example, your configuration permits access to a resource by IP + address you should ensure that this content is not cached. You can do this by + using the CacheDisable + directive, or mod_expires. Left unchecked, + mod_cache - very much like a reverse proxy - would cache + the content when served and then serve it to any client, on any IP + address.

    + + +

    Local exploits

    + + +

    As requests to end-users can be served from the cache, the cache + itself can become a target for those wishing to deface or interfere with + content. It is important to bear in mind that the cache must at all + times be writable by the user which Apache is running as. This is in + stark contrast to the usually recommended situation of maintaining + all content unwritable by the Apache user.

    + +

    If the Apache user is compromised, for example through a flaw in + a CGI process, it is possible that the cache may be targeted. When + using mod_disk_cache, it is relatively easy to + insert or modify a cached entity.

    + +

    This presents a somewhat elevated risk in comparison to the other + types of attack it is possible to make as the Apache user. If you are + using mod_disk_cache you should bear this in mind - + ensure you upgrade Apache when security upgrades are announced and + run CGI processes as a non-Apache user using suEXEC if possible.

    + + + +

    Cache Poisoning

    + + +

    When running Apache as a caching proxy server, there is also the + potential for so-called cache poisoning. Cache Poisoning is a broad + term for attacks in which an attacker causes the proxy server to + retrieve incorrect (and usually undesirable) content from the backend. +

    + +

    For example if the DNS servers used by your system running Apache + are vulnerable to DNS cache poisoning, an attacker may be able to control + where Apache connects to when requesting content from the origin server. + Another example is so-called HTTP request-smuggling attacks.

    + +

    This document is not the correct place for an in-depth discussion + of HTTP request smuggling (instead, try your favourite search engine) + however it is important to be aware that it is possible to make + a series of requests, and to exploit a vulnerability on an origin + webserver such that the attacker can entirely control the content + retrieved by the proxy.

    + +
    top
    +
    +

    File-Handle Caching

    + + + + +

    The act of opening a file can itself be a source of delay, particularly + on network filesystems. By maintaining a cache of open file descriptors + for commonly served files, Apache can avoid this delay. Currently Apache + provides two different implementations of File-Handle Caching.

    + +

    CacheFile

    + + +

    The most basic form of caching present in Apache is the file-handle + caching provided by mod_file_cache. Rather than caching + file-contents, this cache maintains a table of open file descriptors. Files + to be cached in this manner are specified in the configuration file using + the CacheFile + directive.

    + +

    The + CacheFile directive + instructs Apache to open the file when Apache is started and to re-use + this file-handle for all subsequent access to this file.

    + +
    CacheFile /usr/local/apache2/htdocs/index.html
    + +

    If you intend to cache a large number of files in this manner, you + must ensure that your operating system's limit for the number of open + files is set appropriately.

    + +

    Although using CacheFile + does not cause the file-contents to be cached per-se, it does mean + that if the file changes while Apache is running these changes will + not be picked up. The file will be consistently served as it was + when Apache was started.

    + +

    If the file is removed while Apache is running, Apache will continue + to maintain an open file descriptor and serve the file as it was when + Apache was started. This usually also means that although the file + will have been deleted, and not show up on the filesystem, extra free + space will not be recovered until Apache is stopped and the file + descriptor closed.

    + + +

    CacheEnable fd

    + + +

    mod_mem_cache also provides its own file-handle + caching scheme, which can be enabled via the + CacheEnable directive.

    + +
    CacheEnable fd /
    + +

    As with all of mod_cache this type of file-handle + caching is intelligent, and handles will not be maintained beyond + the expiry time of the cached content.

    + +
    top
    +
    +

    In-Memory Caching

    + + + + +

    Serving directly from system memory is universally the fastest method + of serving content. Reading files from a disk controller or, even worse, + from a remote network is orders of magnitude slower. Disk controllers + usually involve physical processes, and network access is limited by + your available bandwidth. Memory access on the other hand can take mere + nano-seconds.

    + +

    System memory isn't cheap though, byte for byte it's by far the most + expensive type of storage and it's important to ensure that it is used + efficiently. By caching files in memory you decrease the amount of + memory available on the system. As we'll see, in the case of operating + system caching, this is not so much of an issue, but when using + Apache's own in-memory caching it is important to make sure that you + do not allocate too much memory to a cache. Otherwise the system + will be forced to swap out memory, which will likely degrade + performance.

    + +

    Operating System Caching

    + + +

    Almost all modern operating systems cache file-data in memory managed + directly by the kernel. This is a powerful feature, and for the most + part operating systems get it right. For example, on Linux, let's look at + the difference in the time it takes to read a file for the first time + and the second time;

    + +
    colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.065s
    +user    0m0.000s
    +sys     0m0.001s
    +colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.003s
    +user    0m0.003s
    +sys     0m0.000s
    + +

    Even for this small file, there is a huge difference in the amount + of time it takes to read the file. This is because the kernel has cached + the file contents in memory.

    + +

    By ensuring there is "spare" memory on your system, you can ensure + that more and more file-contents will be stored in this cache. This + can be a very efficient means of in-memory caching, and involves no + extra configuration of Apache at all.

    + +

    Additionally, because the operating system knows when files are + deleted or modified, it can automatically remove file contents from the + cache when necessary. This is a big advantage over Apache's in-memory + caching which has no way of knowing when a file has changed.

    + + +

    Despite the performance and advantages of automatic operating system + caching there are some circumstances in which in-memory caching may be + better performed by Apache.

    + +

    Firstly, an operating system can only cache files it knows about. If + you are running Apache as a proxy server, the files you are caching are + not locally stored but remotely served. If you still want the unbeatable + speed of in-memory caching, Apache's own memory caching is needed.

    + +

    MMapFile Caching

    + + +

    mod_file_cache provides the + MMapFile directive, which + allows you to have Apache map a static file's contents into memory at + start time (using the mmap system call). Apache will use the in-memory + contents for all subsequent accesses to this file.

    + +
    MMapFile /usr/local/apache2/htdocs/index.html
    + +

    As with the + CacheFile directive, any + changes in these files will not be picked up by Apache after it has + started.

    + +

    The MMapFile + directive does not keep track of how much memory it allocates, so + you must ensure not to over-use the directive. Each Apache child + process will replicate this memory, so it is critically important + to ensure that the files mapped are not so large as to cause the + system to swap memory.

    + + +

    mod_mem_cache Caching

    + + +

    mod_mem_cache provides a HTTP-aware intelligent + in-memory cache. It also uses heap memory directly, which means that + even if MMap is not supported on your system, + mod_mem_cache may still be able to perform caching.

    + +

    Caching of this type is enabled via;

    + +
    # Enable memory caching
    +CacheEnable mem /
    +
    +# Limit the size of the cache to 1 Megabyte
    +MCacheSize 1024
    + +
    top
    +
    +

    Disk-based Caching

    + + + + +

    mod_disk_cache provides a disk-based caching mechanism + for mod_cache. As with mod_mem_cache + this cache is intelligent and content will be served from the cache only + as long as it is considered valid.

    + +

    Typically the module will be configured as so;

    + +
    CacheRoot   /var/cache/apache/
    +CacheEnable disk /
    +CacheDirLevels 2
    +CacheDirLength 1
    + +

    Importantly, as the cached files are locally stored, operating system + in-memory caching will typically be applied to their access also. So + although the files are stored on disk, if they are frequently accessed + it is likely the operating system will ensure that they are actually + served from memory.

    + +

    Understanding the Cache-Store

    + + +

    To store items in the cache, mod_disk_cache creates + a 22 character hash of the URL being requested. This hash incorporates + the hostname, protocol, port, path and any CGI arguments to the URL, + to ensure that multiple URLs do not collide.

    + +

    Each character may be any one of 64-different characters, which mean + that overall there are 64^22 possible hashes. For example, a URL might + be hashed to xyTGxSMO2b68mBCykqkp1w. This hash is used + as a prefix for the naming of the files specific to that URL within + the cache, however first it is split up into directories as per + the CacheDirLevels and + CacheDirLength + directives.

    + +

    CacheDirLevels + specifies how many levels of subdirectory there should be, and + CacheDirLength + specifies how many characters should be in each directory. With + the example settings given above, the hash would be turned into + a filename prefix as + /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w.

    + +

    The overall aim of this technique is to reduce the number of + subdirectories or files that may be in a particular directory, + as most file-systems slow down as this number increases. With + setting of "1" for + CacheDirLength + there can at most be 64 subdirectories at any particular level. + With a setting of 2 there can be 64 * 64 subdirectories, and so on. + Unless you have a good reason not to, using a setting of "1" + for CacheDirLength + is recommended.

    + +

    Setting + CacheDirLevels + depends on how many files you anticipate to store in the cache. + With the setting of "2" used in the above example, a grand + total of 4096 subdirectories can ultimately be created. With + 1 million files cached, this works out at roughly 245 cached + URLs per directory.

    + +

    Each URL uses at least two files in the cache-store. Typically + there is a ".header" file, which includes meta-information about + the URL, such as when it is due to expire and a ".data" file + which is a verbatim copy of the content to be served.

    + +

    In the case of a content negotiated via the "Vary" header, a + ".vary" directory will be created for the URL in question. This + directory will have multiple ".data" files corresponding to the + differently negotiated content.

    + + +

    Maintaining the Disk Cache

    + + +

    Although mod_disk_cache will remove cached content + as it is expired, it does not maintain any information on the total + size of the cache or how little free space may be left.

    + +

    Instead, provided with Apache is the htcacheclean tool which, as the name + suggests, allows you to clean the cache periodically. Determining + how frequently to run htcacheclean and what target size to + use for the cache is somewhat complex and trial and error may be needed to + select optimal values.

    + +

    htcacheclean has two modes of + operation. It can be run as persistent daemon, or periodically from + cron. htcacheclean can take up to an hour + or more to process very large (tens of gigabytes) caches and if you are + running it from cron it is recommended that you determine how long a typical + run takes, to avoid running more than one instance at a time.

    + +

    +
    + Figure 1: Typical + cache growth / clean sequence.

    + +

    Because mod_disk_cache does not itself pay attention + to how much space is used you should ensure that + htcacheclean is configured to + leave enough "grow room" following a clean.

    + + +
    +
    +

    Available Languages:  en  | + fr  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/caching.html.fr b/docs/manual/caching.html.fr new file mode 100644 index 00000000000..7ac82609a41 --- /dev/null +++ b/docs/manual/caching.html.fr @@ -0,0 +1,775 @@ + + + + + +Guide de la mise en cache - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Guide de la mise en cache

    +
    +

    Langues Disponibles:  en  | + fr  | + tr 

    +
    + +

    Ce document complète la documentation de référence des modules + mod_cache, + mod_disk_cache, mod_mem_cache, + mod_file_cache et du programme htcacheclean. + Il décrit l'utilisation des fonctionnalités de mise en cache d'Apache + pour accélérer les services web et proxy, tout en évitant les problèmes + courants et les erreurs de configuration.

    +
    + +
    top
    +
    +

    Introduction

    + + +

    Depuis la version 2.2 du serveur HTTP Apache, les modules + mod_cache + et mod_file_cache ne sont plus jugés expérimentaux + et on considère qu'ils peuvent être utilisés en production. Ces + architectures de mise en cache constituent un puissant concept + d'accélération de la gestion HTTP, tant comme serveur web originel + que comme mandataire.

    + +

    Le module mod_cache et ses modules de soutien + mod_mem_cache et mod_disk_cache + permettent une mise en cache intelligente du point de vue HTTP. + Le contenu proprement dit est stocké dans le cache, + et mod_cache tente d'honorer tous les en-têtes HTTP et les options + qui définissent la possibilité de mise en cache du contenu. Il gère non + seulement le contenu local, mais aussi le contenu mandaté. + mod_cache + est conçu pour des configurations de mise en cache simples ou complexes, + dans lesquels vous traitez de contenu mandaté, de contenu local dynamique + ou avez besoin d'accélérer l'accès à des fichiers locaux qui sont modifiés + au cours du temps.

    + +

    Le module mod_file_cache quant à lui, constitue une + forme de mise en cache plus basique, mais quelques fois intéressante. + Plutôt que de gérer la complexité de s'assurer de manière active de la + possibilité de mise en cache d'URLs, + mod_file_cache fournit des méthodes pour la gestion + et l'édition de fichiers en mémoire afin de maintenir un cache de fichiers + dans l'état où ils étaient la dernière fois qu'Apache a démarré. + En tant que tel, mod_file_cache a été conçu pour améliorer + le temps d'accès à des fichiers locaux statiques qui ne sont modifiés + que rarement.

    + +

    Etant donné que mod_file_cache constitue une + implémentation de mise en cache relativement simple, mises à part les + sections spécifiques sur les directives CacheFile et MMapFile, les explications fournies + dans ce guide concernent l'architecture de mise en cache du + module mod_cache.

    + +

    Pour tirer parti efficacement de ce document, les bases de HTTP doivent + vous être familières, et vous devez avoir lu les sections + Mise en correspondance des + URLs avec le système de fichiers et + Négociation sur le contenu + du guide de l'utilisateur.

    + +
    top
    +
    +

    Vue d'ensemble de la mise en cache

    + + + + + +

    mod_cache peut faire intervenir deux phases + principales pendant la durée de vie d'une requête. + En premier lieu, mod_cache + est un module de mise en correspondance d'URLs, ce qui signifie que si + une URL a été mise en cache, et que la version du cache de cette URL n'est + pas arrivée à expiration, la requête sera traitée directement par + mod_cache.

    + +

    Ceci entraîne que toutes autres actions qui se dérouleraient normalement + au cours du processus de traitement d'une requête -- par exemple un + traitement effectué par mod_proxy, ou + mod_rewrite -- + ne seront pas effectuées. Mais c'est justement l'intérêt + de la mise en cache préalable du contenu.

    + +

    Si l'URL ne se trouve pas dans le cache, mod_cache + va ajouter un filtre au traitement de la requête. + Une fois le contenu de la réponse HTTP trouvé par Apache de manière classique, le + filtre sera exécuté en même temps que le contenu sera transmis au client. + S'il est déterminé que le contenu peut être mis en cache, + il sera sauvegardé dans le cache pour une utilisation future.

    + +

    Si l'URL se trouve dans le cache, mais est arrivée à expiration, + le filtre est quand-même ajouté, mais mod_cache va créer + une requête conditionnelle en arrière-plan, pour déterminer si la version + du cache est encore à jour. Si la version du cache est encore à jour, ses + meta-informations seront mises à jour et la requête sera servie à partir du + cache. Si la version du contenu n'est plus à jour, elle sera supprimée et le + filtre va sauvegarder le contenu mis à jour dans le cache + au moment où il sera servi.

    + +

    Amélioration du taux de présence dans le cache

    + + +

    Lors de la mise en cache de contenu généré localement, le + positionnement de la directive + UseCanonicalName à + On peut améliorer de manière spectaculaire le taux de + présence dans le cache. Ceci est du au fait que le nom d'hôte de l'hôte + virtuel qui sert le contenu constitue une partie de la clé de cache. + Avec UseCanonicalName positionnée + à On, + les hôtes virtuels possédant plusieurs noms de serveur ou alias ne + généreront pas d'entités de cache différentes, et le contenu sera mis en + cache en faisant référence au nom d'hôte canonique.

    + +

    Les documents mis en cache ne seront servis qu'en réponse à des + requêtes de type URL, car la mise en cache est effectuée lors de la phase + de traduction de l'URL en nom de fichier. + En général, cela n'a que peu d'effet, à moins que vous n'utilisiez les + Inclusions Côté Serveur (SSI);

    + +
    <!-- L'inclusion suivante peut être mise en cache -->
    +<!--#include virtual="/footer.html" -->
    +
    +<!-- L'inclusion suivante ne peut pas être mise en cache -->
    +<!--#include file="/path/to/footer.html" -->
    + +

    Si vous utilisez les SSI, et voulez bénéficier de la vitesse de + service depuis le cache, vous devez utiliser des inclusions de type + virtual.

    + + +

    Périodes d'expiration

    + + +

    La période d'expiration par défaut pour les entités du cache est + d'une heure; elle peut cependant être facilement modifiée à l'aide de + la directive CacheDefaultExpire. Cette valeur par + défaut n'est utilisée que lorsque la source originale du contenu ne + précise pas de période d'expiration ou d'heure de dernière + modification.

    + +

    Si une réponse ne contient pas d'en-tête Expires mais + inclut un en-tête Last-Modified, mod_cache + peut déduire une période d'expiration en se basant sur la valeur de la + directive CacheLastModifiedFactor.

    + +

    La période d'expiration des contenus locaux peut être ajustée finement + en utilisant le module mod_expires.

    + +

    On peut aussi contrôler la période d'expiration maximale en utilisant + la directive CacheMaxExpire.

    + + + +

    Guide succinct des requêtes conditionnelles

    + + +

    Lorsqu'un contenu est arrivé à expiration dans le cache et fait + l'objet d'une nouvelle demande d'accès, plutôt que traiter directement + la requête originale, Apache préfère utiliser une + requête conditionnelle.

    + +

    HTTP propose toute une panoplie d'en-têtes qui permettent à un client, + ou au cache de distinguer les différentes versions d'un même contenu. Par + exemple, si une ressource a été servie avec un en-tête "Etag:", il est + possible de créer une requête conditionnelle contenant un en-tête + "If-None-Match:". Si une ressource a été servie avec un en-tête + "Last-Modified:", il est possible de créer une requête conditionnelle + contenant un en-tête "If-Modified-Since:", etc....

    + +

    Lorsqu'une telle requête conditionnelle est créée, la reponse diffère + selon que le contenu satisfait ou non aux conditions. Si une requête est + créée avec un en-tête "If-Modified-Since:", et le contenu n'a pas été + modifié depuis le moment indiqué dans la requête, alors un laconique + "304 Not Modified" est retourné.

    + +

    Si le contenu a été modifié, il est servi comme si la requête n'avait + pas été conditionnelle à l'origine.

    + +

    Les bénéfices des requêtes conditionnelles pour ce qui concerne la + mise en cache sont de deux sortes. Premièrement, quand une telle requête + est envoyée au processus en arrière-plan, il sera aisé de déterminer + si le contenu que devra servir le processus en arrière-plan correspond + au contenu stocké dans le cache, sans être obligé de transmettre la + totalité de la ressource.

    + +

    Deuxièmement, les requêtes conditionnelles sont en général moins + coûteuses en ressources pour le processus en arrière-plan. + Pour ce qui est des fichiers + statiques, l'action type est un appel à stat() ou un appel + système similaire, pour déterminer si la taille du fichier ou sa date de + modification ont changé. Ainsi, même si Apache met en cache le contenu + local, un contenu arrivé à expiration pourra être servi plus rapidement + depuis le cache s'il n'a pas été modifié, parce que la lecture depuis le + cache est plus rapide que la lecture depuis le processus en arrière-plan + (à comparer à la différence de vitesse entre la lecture depuis un cache en + mémoire et la lecture depuis un disque).

    + + +

    Que peut-on mettre en cache ?

    + + +

    Comme mentionné plus haut, les deux styles de mise en cache d'Apache + fonctionnent différemment; la mise en cache de + mod_file_cache conserve les contenus des fichiers + tels qu'ils étaient au démarrage d'Apache. Quand une requête pour un + fichier mis en cache par ce module est envoyée, elle est interceptée + et le fichier mis en cache est servi.

    + +

    La mise en cache de mod_cache, quant à elle, est + plus complexe. Lors du traitement d'une requête, le module de mise en + cache déterminera si le contenu peut être mis en cache, s'il ne l'a + pas déjà été auparavant. Les conditions qui permettent de déterminer + la possibilité de mise en cache d'une réponse sont :

    + +
      +
    1. La mise en cache doit être activée pour cette URL. Voir les + directives CacheEnable et CacheDisable.
    2. + +
    3. La reponse doit avoir un code de statut HTTP de 200, 203, 300, 301 + ou 410.
    4. + +
    5. La requête doit être de type HTTP GET.
    6. + +
    7. Si la requête contient un en-tête "Authorization:", la réponse ne + sera pas mise en cache.
    8. + +
    9. Si la réponse contient un en-tête "Authorization:", elle doit aussi + contenir une option "s-maxage", "must-revalidate" ou "public" + dans l'en-tête "Cache-Control:".
    10. + +
    11. Si l'URL contient une chaîne de paramètres + (provenant par exemple d'une méthode GET de formulaire HTML), elle ne + sera pas mise en cache à moins que la réponse ne spécifie une + condition d'expiration explicite via un en-tête "Expires:" ou la + directive max-age ou s-maxage de l'en-tête "Cache-Control:", + comme préconisé dans la RFC2616, sections 13.9 et 13.2.1.
    12. + +
    13. Si la réponse a un statut de 200 (OK), elle doit aussi contenir + au moins un des en-têtes "Etag", "Last-Modified" ou + "Expires", ou la directive max-age ou s-maxage de l'en-tête + "Cache-Control:", à moins que la directive + CacheIgnoreNoLastMod + ne précise d'autres contraintes.
    14. + +
    15. Si la réponse contient l'option "private" dans un en-tête + "Cache-Control:", elle ne sera pas mise en cache à moins que la + directive + CacheStorePrivate + ne précise d'autres contraintes.
    16. + +
    17. De même, si la réponse contient l'option "no-store" dans un en-tête + "Cache-Control:", elle ne sera pas mise en cache à moins que la + directive + CacheStoreNoStore + n'ait été utilisée.
    18. + +
    19. Une réponse ne sera pas mise en cache si elle comporte un en-tête + "Vary:" contenant le caractère "*" qui correspond à toute + chaîne de caractères.
    20. +
    + + +

    Qu'est ce qui ne doit pas être mis en cache ?

    + + +

    En bref, tout contenu qui varie beaucoup avec le temps, ou en fonction + de particularités de la requête qui ne sont pas couvertes par la + négociation HTTP, ne doit pas être mis en cache.

    + +

    Un contenu dynamique qui varie en fonction de l'adresse IP du + demandeur, ou qui est modifié toutes les 5 minutes, ne devra en général + pas être mis en cache.

    + +

    Si par contre le contenu servi diffère en fonction de la valeur de + divers en-têtes HTTP, il se peut que l'on puisse le mettre en cache + intelligemment en utilisant un en-tête "Vary".

    + + +

    Contenu variable et/ou négocié

    + + +

    Si mod_cache reçoit une réponse contenant un en-tête + "Vary", lorsqu'un contenu a été demandé par un processus d'arrière-plan, + il va s'efforcer de la traiter intelligemment. Si possible, + mod_cache va détecter les en-têtes attribués dans la + réponse "Vary" à l'occasion des futures demandes, et servir une réponse + correcte à partir du cache.

    + +

    Si par exemple, une réponse est reçue avec l'en-tête Vary suivant,

    + +

    +Vary: negotiate,accept-language,accept-charset +

    + +

    mod_cache ne servira aux demandeurs que le contenu + mis en cache qui correspond au contenu des en-têtes accept-language et + accept-charset de la requête originale.

    + + +
    top
    +
    +

    Considérations sur la sécurité

    + + +

    Autorisation et contrôle d'accès

    + + +

    Utiliser mod_cache revient sensiblement à la même + chose qu'avoir un mandataire inverse intégré (reverse-proxy). Les requêtes + seront servies par le module de mise en cache sauf si ce dernier + détermine qu'un processus d'arrière-plan doit être appelé. La mise en + cache de ressources locales modifie considérablement le modèle de + sécurité d'Apache.

    + +

    Comme le parcours de la hiérarchie d'un système de fichiers pour + examiner le contenu d'éventuels fichiers + .htaccess serait une opération très coûteuse en ressources, + annulant partiellement de ce fait l'intérêt de la mise en cache + (accélérer le traitement des requêtes), + mod_cache ne se préoccupe pas de savoir s'il a + l'autorisation de servir une entité mise en cache. En d'autres termes, + si mod_cache a mis en cache un certain contenu, ce + dernier sera servi à partir du cache tant qu'il ne sera pas arrivé à + expiration.

    + +

    Si par exemple, votre configuration autorise l'accès à une ressource + en fonction de l'adresse IP, vous devez vous assurer que ce contenu n'est + pas mis en cache. Ceci est possible en utilisant la directive + CacheDisable, ou le module + mod_expires. Livré à lui-même, + mod_cache - pratiquement comme un mandataire inverse - + mettrait en cache le contenu lors de son service, et le servirait ensuite + à tout client, vers n'importe quelle adresse IP.

    + + +

    Piratages locaux

    + + +

    Etant donné que les requêtes des utilisateurs finaux peuvent être + servies depuis le cache, ce dernier est une cible potentielle pour ceux + qui veulent défigurer un contenu ou interférer avec lui. Il est important + de garder à l'esprit que l'utilisateur sous lequel tourne Apache doit + toujours avoir l'accès en écriture dans le cache. Ceci est en contraste + total avec la recommandation usuelle d'interdire à l'utilisateur sous + lequel tourne Apache + l'accès en écriture à tout contenu.

    + +

    Si l'utilisateur sous lequel tourne Apache est compromis, + par exemple à cause d'une + faille de sécurité dans un processus CGI, il est possible que le cache + fasse l'objet d'une attaque. Il est relativement aisé d'insérer ou de + modifier une entité dans le cache en utilisant le module + mod_disk_cache.

    + +

    Cela représente un risque relativement élévé par rapport aux autres + types d'attaques qu'il est possible de mener sous l'utilisateur apache. + Si vous utilisez mod_disk_cache, vous devez garder ceci + à l'esprit : effectuez toujours les mises à jour d'Apache quand des + correctifs de sécurité sont annoncés et exécutez les processus CGI sous + un utilisateur autre qu'apache en utilisant + suEXEC dans la mesure du possible.

    + + + +

    Empoisonnement du cache (Cache Poisoning)

    + + +

    Si vous utilisez Apache comme serveur mandataire avec mise en cache, + vous vous exposez aussi à un éventuel "Empoisonnement du + cache" (Cache poisoning). L'empoisonnement du cache est un terme général + pour désigner les attaques au cours desquelles l'attaquant fait en sorte + que le serveur mandataire renvoie un contenu incorrect (et souvent + indésirable) en provenance du serveur d'arrière plan. +

    + +

    Par exemple, si les serveur DNS qu'utilise votre système où tourne + Apache sont vulnérables à l'empoisonnement du cache des DNS, un attaquant + pourra contrôler vers où Apache se connecte lorsqu'il demande un contenu + depuis le serveur d'origine. + Un autre exemple est constitué par les attaques ainsi nommées + "Dissimulation de requêtes HTTP" (HTTP request-smuggling).

    + +

    Ce document n'est pas le bon endroit pour une discussion approfondie + à propos de la Dissimulation de requêtes HTTP (utilisez plutôt votre + moteur de recherche favori); il est cependant important de savoir qu'il + est possible d'élaborer une série de requêtes, et d'exploiter une + vulnérabilité d'un serveur web d'origine de telle façon que l'attaquant + puisse contrôler entièrement le contenu renvoyé par le mandataire.

    + +
    top
    +
    +

    Mise en cache de la gestion de fichier

    + + + + +

    Le fait d'ouvrir un fichier peut en lui-même introduire un délai, + en particulier dans les systèmes de fichiers répartis sur le réseau. Apache + peut s'affranchir de ce délai en maintenant + un cache des descripteurs de fichiers + ouverts pour ce qui concerne les fichiers souvent accédés. Apache propose + actuellement deux implémentations différentes de mise en cache de la + gestion de fichier.

    + +

    Directive CacheFile

    + + +

    La forme la plus élémentaire de mise en cache que propose Apache est + fournie par le module mod_file_cache. + Plutôt que de mettre en cache le contenu des fichiers, ce cache maintient + une table des descripteurs de fichiers ouverts. Les fichiers à mettre en + cache de cette manière sont spécifiés dans le fichier de configuration + en utilisant la directive + CacheFile.

    + +

    La directive + CacheFile demande à Apache + d'ouvrir le fichier lors de son démarrage et de réutiliser le descripteur + de fichier élaboré à cette occasion pour tous les + accès ultérieurs à ce fichier.

    + +
    CacheFile /usr/local/apache2/htdocs/index.html
    + +

    Si vous avez l'intention de mettre en cache un grand nombre de + fichiers de cette manière, vous devez vous assurer que le nombre maximum + de fichiers ouverts par votre système d'exploitation est correctement + défini.

    + +

    Bien que l'utilisation de la directive + CacheFile + n'entraîne pas la mise en cache du contenu du fichier, cela ne signifie + pas qu'en cas de modification du fichier pendant l'exécution d'Apache, + ces changements seront pris en compte. Le fichier sera toujours servi + dans l'état où il était quand Apache a démarré.

    + +

    Si le fichier est supprimé pendant l'exécution d'Apache, ce dernier + continuera à maintenir un descripteur de fichier ouvert et à servir le + fichier dans l'état où il était quand Apache a démarré. Cela signifie + aussi habituellement que malgré le fait que le fichier ait été supprimé, + et ne soit + plus accessible par le système de fichiers, l'espace libéré ne sera + restitué qu'à l'arrêt d'Apache quand le + descripteur de fichier sera fermé.

    + + +

    Directive CacheEnable

    + + +

    Le module mod_mem_cache propose aussi son propre + schéma de mise en cache de la gestion de fichier, qui peut être activé + à l'aide de la directive + CacheEnable.

    + +
    CacheEnable fd /
    + +

    A l'instar de tout ce qui concerne le module + mod_cache, ce mode de mise en cache de la gestion de + fichier est intelligent, et les descripteurs ne seront plus maintenus + lorsque le contenu mis en cache sera arrivé à expiration.

    + +
    top
    +
    +

    Mise en cache en mémoire

    + + + + +

    Servir un contenu directement depuis la mémoire système est + universellement reconnu comme la méthode la plus rapide. Lire des fichiers + depuis un contrôleur de disque ou pire, depuis un réseau distant est plus + lent de plusieurs ordres de grandeur. Les contrôleurs de disque réalisent + en général des opérations mécaniques, et l'accès au réseau est limité par la + bande passante dont vous disposez. Par contre, les temps d'accès à la + mémoire sont de l'ordre de la nano-seconde.

    + +

    Cependant la mémoire système n'est pas bon marché; à capacité égale, + c'est de loin le type de stockage le plus coûteux et il est important de + s'assurer qu'elle est utilisée efficacement. Le fait de mettre en cache + des fichiers en mémoire diminue d'autant la quantité de mémoire système + disponible. Comme nous le verrons plus loin, ce n'est pas un problème en + soi dans le cas de la mise en cache par l'intermédiaire du système + d'exploitation, mais si l'on utilise la mise en cache en mémoire propre à + Apache, il faut prendre garde à ne pas allouer trop de mémoire au cache. + Sinon le système sera contraint d'utiliser le swap, ce qui dégradera + sensiblement les performances.

    + +

    Mise en cache par l'intermédiaire du système d'exploitation

    + + +

    Dans la plupart des systèmes d'exploitation modernes, c'est le noyau + qui gère directement la mise en cache en mémoire des données relatives + aux fichiers. C'est une fonctionnalité puissante, et les systèmes + d'exploitation s'en acquittent fort bien pour la plus grande partie. + Considérons par exemple, dans le cas de Linux, la différence entre le + temps nécessaire à la première lecture d'un fichier et le temps + nécessaire à sa deuxième lecture;

    + +
    colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.065s
    +user    0m0.000s
    +sys     0m0.001s
    +colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.003s
    +user    0m0.003s
    +sys     0m0.000s
    + +

    Même pour ce petit fichier, il y a une grande différence entre les + temps nécessaires pour lire le fichier. Ceci est du au fait que le + noyau a mis en cache le contenu du fichier en mémoire.

    + +

    Du fait de toujours pouvoir disposer de mémoire système, vous pouvez + être assuré qu'il y aura de plus en plus de contenus de fichiers stockés + dans ce cache. Ceci peut s'avérer une méthode de mise en cache en mémoire + très efficace, et ne nécessite aucune configuration supplémentaire + d'Apache.

    + +

    De plus, comme le système d'exploitation sait si des fichiers + ont été + supprimés ou modifiés, il peut effacer automatiquement des contenus de + fichiers du cache lorsque cela s'avère nécessaire. Ceci constitue un gros + avantage par rapport à la mise en cache en mémoire d'Apache qui n'a + aucune possibilité de savoir si un fichier a été modifié.

    + + +

    En dépit des performances et des avantages de la mise en cache + automatique par le système d'exploitation, la mise en cache en mémoire + peut être effectuée plus efficacement par Apache dans certaines + circonstances.

    + +

    En premier lieu, un système d'exploitation ne peut mettre en cache que + les fichiers dont il a connaissance. Si vous exécutez Apache en tant que + serveur mandataire, les fichiers que vous mettez en cache ne sont pas + stockés en local mais sur un serveur distant. Si vous voulez tout de même + bénéficier de la vitesse incomparable procurée par la mise en cache en + mémoire, la mise en cache propre à Apache sera nécessaire.

    + +

    Mise en cache à l'aide de la directive MMapFile

    + + +

    La directive MMapFile + fournie par le module mod_file_cache vous permet de + demander à Apache de charger un contenu de fichier statique en mémoire + lors de son démarrage (à l'aide de l'appel système mmap). Apache + utilisera le contenu chargé en mémoire pour satisfaire ultérieurement + toutes les demandes d'accès à ce fichier.

    + +
    MMapFile /usr/local/apache2/htdocs/index.html
    + +

    Comme dans le cas de la directive + CacheFile, toute + modification du fichier ne sera plus prise en compte par Apache une fois + ce dernier démarré.

    + +

    La directive + MMapFile ne gardant + pas la trace de la quantité de mémoire qu'elle alloue, vous devez prendre + garde de ne pas en abuser. Chaque processus enfant d'Apache utilisant + sa propre réplique de la mémoire allouée, il est donc d'une importance + critique de s'assurer que les fichiers chargés ne sont pas d'une taille + trop importante afin d'épargner au système l'utilisation du swap.

    + + +

    Mise en cache à l'aide du module mod_mem_cache

    + + +

    Le module mod_mem_cache propose une mise en cache en + mémoire intelligente du point de vue du protocole HTTP. Il utilise aussi + directement le "tas" de la mémoire, ce qui signifie que même si + MMap n'est pas supporté par votre système, + mod_mem_cache pourra quand-même effectuer + la mise en cache.

    + +

    La mise en cache selon cette méthode est activée comme suit :

    + +
    # Activation de la mise en cache en mémoire
    +CacheEnable mem /
    +
    +# Limite la taille du cache à 1 Mégaoctet
    +MCacheSize 1024
    + +
    top
    +
    +

    Mise en cache sur disque

    + + + + +

    Le module mod_disk_cache fournit un mécanisme de mise + en cache sur disque au module mod_cache. Comme dans le cas + du module mod_mem_cache, cette mise en cache est + intelligente et le contenu ne sera servi qu'à partir du cache tant qu'il + sera considéré comme valide.

    + +

    Typiquement, le module sera configuré comme suit :

    + +
    CacheRoot   /var/cache/apache/
    +CacheEnable disk /
    +CacheDirLevels 2
    +CacheDirLength 1
    + +

    Il est important de savoir que, les fichiers mis en cache étant stockés + localement, la mise en cache par l'intermédiaire du système d'exploitation + sera en général aussi appliquée à leurs accès. Si bien que même si les + fichiers sont stockés sur disque, s'il font l'objet d'accès fréquents, + il est probable que le système d'exploitation s'appliquera à ce qu'ils + soient servis à partir de la mémoire.

    + +

    Comprendre le stockage dans le cache

    + + +

    Pour stocker des entités dans le cache, + le module mod_disk_cache crée une empreinte (hash) de 22 + caractères de l'URL qui a fait l'objet d'une requête. Cette empreinte + comprend le nom d'hôte, le protocole, le port, le chemin et tout argument + de type CGI associé à l'URL, afin d'être sur que plusieurs URLs + n'interfèrent pas entre elles.

    + +

    Chaque position de l'empreinte peut contenir un caractère + choisi parmi 64 caractères différents, il y a donc + 64^22 possibilités pour une empreinte. Par exemple, une URL peut posséder + l'empreinte xyTGxSMO2b68mBCykqkp1w. Cette empreinte est + utilisée pour préfixer les noms de fichiers spécifiques à cette URL à + l'intérieur du cache; cependant, elle est tout d'abord placée dans les + répertoires du cache selon les directives + CacheDirLevels et + CacheDirLength.

    + +

    La directive + CacheDirLevels + définit le nombre de niveaux de sous-répertoires, et + CacheDirLength + le nombre de caractères composant le nom des sous-répertoires. Dans + l'exemple donné plus haut, l'empreinte se trouvera à : + /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w.

    + +

    Cette technique a pour but principal de réduire le nombre de + sous-répertoires ou de fichiers contenus dans un répertoire particulier, + car le fonctionnement de la plupart des systèmes de fichiers est ralenti + quand ce nombre augmente. Avec la valeur "1" pour la directive + CacheDirLength, + il peut y avoir au plus 64 sous-répertoires à un niveau quelconque. + Avec la valeur "2", il peut y en avoir 64 * 64, etc... + A moins d'avoir une bonne raison pour ne pas le faire, l'utilisation de + la valeur "1" pour la directive + CacheDirLength + est recommandée.

    + +

    Le paramétrage de la directive + CacheDirLevels + dépend du nombre de fichiers que vous pensez stocker dans le cache. + Avec une valeur de "2" comme dans l'exemple donné plus haut, + 4096 sous-répertoires peuvent être créés au total. Avec 1 million de + fichiers dans le cache, cela équivaut à environ 245 URLs mises en cache + dans chaque répertoire.

    + +

    Chaque URL nécessite au moins deux fichiers dans le cache. Ce sont en + général un fichier ".header", qui contient des meta-informations à propos + de l'URL, comme la date de son arrivée à expiration, + et un fichier ".data" qui est la copie exacte du contenu à servir.

    + +

    Dans le cas d'un contenu négocié via l'en-tête "Vary", un répertoire + ".vary" sera créé pour l'URL en question. Ce répertoire contiendra de + multiples fichiers ".data" correspondant aux différents contenus + négociés.

    + + +

    Maintenance du cache sur disque

    + + +

    Bien que le module mod_disk_cache supprime un contenu + du cache lorsqu'il est arrivé à expiration, il ne maintient aucune + information à propos de la taille totale du cache ou de l'espace restant + disponible.

    + +

    Par contre l'utilitaire + htcacheclean fourni avec Apache + vous permet, comme son nom l'indique, de nettoyer le cache périodiquement. + Déterminer la fréquence à laquelle lancer htcacheclean et la taille souhaitée + pour le cache est une tâche relativement complexe et il vous faudra de + nombreux essais et erreurs pour arriver à sélectionner des valeurs + optimales.

    + +

    htcacheclean opère selon deux + modes. Il peut s'exécuter comme démon résident, ou être lancé + périodiquement par cron. htcacheclean peut mettre une heure + ou plus pour traiter de très grands caches (plusieurs dizaines de + Gigaoctets) et si vous l'exécutez à partir de cron, il vous est + conseillé de déterminer la durée typique d'un traitement, afin d'éviter + d'exécuter plusieurs instances à la fois.

    + +

    +
    + Figure 1: Croissance + typique du cache / séquence de nettoyage.

    + +

    Comme mod_disk_cache ne tient pas compte de l'espace + utilisé dans le cache, vous devez vous assurer que + htcacheclean est configuré de + façon à laisser suffisamment d'"espace de croissance" + à la suite d'un nettoyage.

    + + +
    +
    +

    Langues Disponibles:  en  | + fr  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/caching.html.tr.utf8 b/docs/manual/caching.html.tr.utf8 new file mode 100644 index 00000000000..9cfddf6d395 --- /dev/null +++ b/docs/manual/caching.html.tr.utf8 @@ -0,0 +1,706 @@ + + + + + +Önbellek Kullanım Kılavuzu - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Önbellek Kullanım Kılavuzu

    +
    +

    Mevcut Diller:  en  | + fr  | + tr 

    +
    + +

    Bu belge mod_cache, + mod_disk_cache, mod_mem_cache, + mod_file_cache modülleri ve htcacheclean için bir başvuru + kılavuzu niteliğindedir. HTTP sunucusu ve vekil olarak çalışmada + işlemleri hızlandırmak için bilinen sorunlar ve yanlış + yapılandırmalardan kaçınarak Apache’nin önbellekleme özelliklerinin + nasıl kullanılacağı açıklanmıştır.

    +
    + +
    top
    +
    +

    Giriş

    + + +

    Apache HTTP sunucusunun 2.2 sürümünden itibaren + mod_cache ve mod_file_cache modülleri + deneysel olmaktan çıkarılmış ve üretim amaçlı kullanılabileceğine karar + verilmiştir. Bu önbellekleme mimarileri gerek HTTP sunucusu gerekse + vekili olarak çalışmada HTTP işlemlerini hızlandırmak anlamında sunucuya + güç katarlar.

    + +

    mod_cache, ortam sağlayıcı modülleri olan + mod_mem_cache ve mod_disk_cache ile + birlikte HTTP önbelleklemesini akıllıca yerine getirir. İçeriğin kendisi + önbellekte saklanırken mod_cache içeriğin + önbelleklenebilmesini denetim altında tutan HTTP başlıkları ve + seçenekleri ile ilgilenir. Yerel ve vekalet edilen içeriğin her ikisinin + de aynı anda işlem görmesi sağlanabilir. mod_cache, + vekalet edilen içeriğe, devingen yerel içeriğe veya zamanla değişen + yerel dosyalara erişimi hızlandırma ihtiyacına yönelik olarak hem basit + hem de karmaşık önbellekleme yapılandırmalarını mümkün kılar.

    + +

    mod_file_cache ise biraz daha temel ancak bazen daha + kullanışlı olabilen bir önbellekleme şekli ile ilgilenir. URL’lerin + önbelleklenebilmesini mümkün kılmanın karmaşıklığıyla boğuşmak yerine + mod_file_cache, dosyaların Apache’nin son başlatıldığı + zamanki durumlarını saklamak için dosyaların belleğe eşlenmek üzere ele + alınmasını sağlar. Böylelikle, mod_file_cache, çok sık + değişmeyen durağan yerel dosyalara erişim zamanını azaltmaya yardım + eder.

    + +

    CacheFile ve MMapFile yönergeleri ile ilgili + bölümlerde anlatılanları saymazsak mod_file_cache, bu + belgenin asıl konusu olan mod_cache önbellekleme + mimarisine göre daha basit bir önbellekleme gerçeklenimidir.

    + +

    Bu belgeden azami yararı sağlayabilmek için temel bir HTTP bilginizin + olması ve URL’lerin Dosya Sistemine + Eşlenmesi ile İçerik Uzlaşımı + belgelerini okumuş olmanız gerekir.

    + +
    top
    +
    +

    Önbelleklemeye Bir Bakış

    + + + + + +

    Bir istek sonuçlanıncaya kadar mod_cache modülünde iki + aşamadan geçer. İlkinde mod_cache bir URL eşleme modülü + olarak çalışır ve URL önbellekteyse ve zaman aşımına uğramamışsa isteğin + doğrudan mod_cache tarafından sunulmasını sağlar.

    + +

    Yani isteğin sunumu sırasında, isteğin örneğin, + mod_proxy veya mod_rewrite tarafından + ele alınması gerekse bile bu yapılmaz. Önbelleklenen içerik ilk alındığı + haliyle sunulur.

    + +

    Eğer URL önbellekte yoksa, mod_cache isteği bir süzgece tabi tutar. Apache içeriğin varlığını + saptamışsa içeriğin süzgeç tarafından sunulmasını sağladıktan sonra, + süzgeç içeriğin önbelleklenebileceğini saptamışsa gelecekte sunmak üzere + içeriği önbelleğe kaydeder.

    + +

    Eğer URL önbellekte bulunmuş fakat içeriğin zaman aşımına uğradığı + anlaşılmışsa süzgeç yine de eklenir fakat bu kez + mod_cache önbellekteki sürümün hala geçerli olup + olmadığını saptamak için kaynağın bulunduğu sunucuya bir koşullu istek + gönderir. Önbellekteki sürüm hala geçerliyse temel verileri güncellenir + ve istek önbellekten sunulur. Önbellekteki sürüm artık geçerli değilse, + önbellekteki sürüm silinir ve süzgeç güncel içeriği önbelleğe kaydeder + ve isteği oradan sunar.

    + +

    Önbelleğin Hızlandırılması

    + + +

    Yerel içerik önbelleklendiği takdirde UseCanonicalName yönergesine On + değeri atanmışsa önbellekten sunulan sayfa sayısında büyük bir artış + olduduğu görülür. Bunun sebebi içeriği sunan sanal konağın isminin + önbellek anahtarının bir parçası olarak kullanılmasıdır. Yönergeye + On değerini atamak suretiyle çok isimli ve rumuzlu sanal + konaklar için farklı önbellek girdileri oluşturulmaz, bunun yerine her + meşru sanal konak için ayrı bir önbellek tutulur.

    + +

    Önbellekleme, URL’nin dosya ismine dönüştürülmesi aşamasında + gerçekleştiğinden önbelleklenen belgeler sadece URL isteklerine bir + yanıt olarak sunulurlar. Sunucu Taraflı + İçerikleri kullanmazsanız genellikle bunun fazla bir önemi + olmaz.

    + +

    + <!-- Bu içerik önbelleklenebilir. -->
    + <!--#include virtual="/dipnot.html" -->
    +
    + <!-- Bu içerik önbelleklenemez. -->
    + <!--#include file="/bir/yol/dipnot.html" --> +

    + +

    Sunucu Taraflı İçerikleri kullanıyorsanız ve önbelleklemenin + sağladığı hız artışından da yaralanmak istiyorsanız içerik + yerleştirmek için virtual içerik türünü kullanınız.

    + + +

    Zaman Aşımı Süreleri

    + + +

    Önbellekli öğeler için öntanımlı zaman aşımı süresi bir saat olmakla + birlikte CacheDefaultExpire + yönergesi kullanılarak bu değer kolaylıkla geçersiz kılınabilir. Bu + öntanımlı değer sadece içeriğin özgün kaynağı bir zaman aşımı süresi + veya son değişiklik tarihi belirtmediği takdirde kullanılır.

    + +

    Bir yanıt Expires başlığını değil de + Last-Modified başlığını içeriyorsa + mod_cache zaman aşımı süresini CacheLastModifiedFactor yönergesinin + nasıl kullanıldığına bakarak saptar.

    + +

    Yerel içerik için, zaman aşımı süresini hassas olarak ayarlamak + gerekirse mod_expires kullanılabilir.

    + +

    Zaman aşımı süresinin üst sınırı CacheMaxExpire yönergesi ile + belirlenebilir.

    + + + +

    Şartlı İstekler için Özlü Kılavuz

    + + +

    Önbellekteki içerik zaman aşımına uğrayıp, içerik sağlayıcıya veya + arka sunucuya özgün isteği aktarmak yerine ayrı bir istek yapılması + gereği Apache’nin şartlı bir istek yapması sonucunu doğurur.

    + +

    Bir istemcinin veya önbelleğin aynı içeriğin farklı sürümleri + arasında ayrım yapabilmesi için HTTP protokolü bazı başlık alanları + önerir. Örneğin, "Etag:" başlığıyla sunulan bir özkaynak için + "If-None-Match:" başlığıyla bir şartlı istek yapmak mümkün olduğu gibi + özkaynak "Last-Modified:" başlığıyla sunuluyorsa şartlı istek + "If-Modified-Since:" başlığıyla yapılabilir, vesaire.

    + +

    Böyle bir şartlı istek yapıldığında yanıt koşulun içerikle eşleşip + eşleşmediğine bağlı olarak farklı olur. Eğer istek bir + "If-Modified-Since:" başlığıyla yapılmışsa ve içerik istekte + belirtilen zamandan önce değiştirilmemişse kısa ve öz olarak bir "304 + Not Modified" (Bir değişiklik yok) iletisiyle yanıt verilir.

    + +

    Aksi takdirde bir şartlı istek yapılmamış gibi içeriğin kendisi + sunulur.

    + +

    Önbellekleme ile ilgili şartlı istekler çifte yarar sağlar. Birinci + olarak, böyle bir istek arkadaki sunucuya yapılıyorsa ve iki içerik de + aynıysa bunu saptamak kolay olur ve özkaynağın tamamını aktarma + külfetinden kurtulunur.

    + +

    İkinci olarak, şartlı istekler arka sunucuda normalden daha az + faaliyete sebep olur. Durağan dosyalar için bu genellikle + stat() veya benzeri bir sistem çağrısıyla dosya + boyutları ve değişiklik zamanına bakmak şeklinde gerçekleşir. + Böylelikle Apache yerel içeriği önbellekliyor olsa bile ve hatta + içerik zaman aşımına da uğrasa önbellekteki dosyada bir değişiklik + olmadığı takdirde içeriği önbellekten sunmak daha hızlı olacaktır. + Çünkü dosyayı önbellekten okumak, arka sunucudan okumaktan daha + hızlıdır (bu, bellekten okumayla diskten okumayı karşılaştırmak + gibidir).

    + + +

    Neler Önbelleklenebilir?

    + + +

    Evvelce bahsedildiği gibi Apache’de iki tür önbellekleme yapılır ve + bunlar farklı yöntemlerle çalışır. mod_file_cache + önbelleklemesinde dosyalar Apache başlatıldığı zamanki içerikle + saklanır. Bu modül tarafından önbelleğe alınmış bir dosya için istek + geldiğinde isteğin yolu kesilip önbellekteki dosya sunulur.

    + +

    mod_cache önbelleklemesinde işler biraz daha + karışıktır. Bir isteğe hizmet sunulurken istenen içerik evvelce + önbelleklenmemişse önbellekleme modülü önce içeriğin + önbelleklenebilirliğine bakar. Bir yanıtın önbelleklenebilirliğini + belirleyen koşullar şunlardır:

    + +
      +
    1. Önbellekleme bu URL ile etkin kılınabilmelidir. CacheEnable ve CacheDisable yönergelerine bakınız.
    2. + +
    3. Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.
    4. + +
    5. İstek bir HTTP GET isteği olmalıdır.
    6. + +
    7. İstek bir "Authorization:" başlığı içeriyorsa yanıt önbelleğe + alınmayacaktır.
    8. + +
    9. Eğer yanıt bir "Authorization:" başlığı içeriyorsa ayrıca + "Cache-Control:" başlığında da "s-maxage", "must-revalidate" veya + "public" değerlerinden birini içermelidir.
    10. + +
    11. Eğer URL (GET yöntemi kullanan bir HTML formunun yaptığı gibi) bir + sorgu dizgesi içeriyorsa yanıt, RFC2616’nın 13.9 ve 13.2.1. + bölümünde açıklandığı gibi max-age veya s-maxage değerli bir + "Cache-Control:" başlığı veya "Expires:" başlığı ile açıkça bir + zaman aşımı içermedikçe yanıt içeriği önbelleğe alınmayacaktır.
    12. + +
    13. CacheIgnoreNoLastMod + yönergesinin kullanımını gerektiren bir durum olmadıkça 200 durum + koduna sahip bir yanıtın "Etag", "Last-Modified" ve "Expires" + başlıklarından en az birini ya da max-age veya s-maxage değerli bir + "Cache-Control:" başlığını içermesi gerekir.
    14. + +
    15. CacheStorePrivate + yönergesinin kullanımını gerektiren bir durum olmadıkça yanıt + "private" değerli bir "Cache-Control:" başlığı içerdiği takdirde + yanıtın içeriği önbelleğe alınmayacaktır.
    16. + +
    17. Benzer şekilde, CacheStoreNoStore yönergesi kullanılmamışsa yanıt + "no-store" değerli bir "Cache-Control:" başlığı içeriyorsa yanıt + içeriği önbelleğe alınmayacaktır.
    18. + +
    19. Herşeyle eşleşen "*" değerli bir "Vary:" başlığı içeren bir + yanıtın içeriği önbelleğe alınmaz.
    20. +
    + + +

    Neler Önbelleklenmemeli?

    + + +

    Kısaca, istek zamana aşırı bağımlıysa ya da istek kısmen bile olsa + HTTP uzlaşımıyla bağdaşmıyorsa önbelleğe alınmamalıdır.

    + +

    İçeriği istekçinin IP adresine bağlı olarak değişen veya her beş + dakikada bir değişikliğe uğrayan bir devingen içeriğe sahipseniz böyle + bir içerik asla önbelleğe alınmamalıdır.

    + +

    Diğer taraftan, içerik HTTP başlığındaki değerlere bağlı olarak + değişiyorsa içeriğin bir "Vary" başlığı kullanılarak akıllıca + önbelleklenmesi imkanı mevcuttur.

    + + +

    Değişken/Uzlaşımlı İçerik

    + + +

    "Vary" başlıklı bir yanıt arka sunucudan istenirken + mod_cache tarafından alınmışsa akıllıca ele alınmaya + çalışılacaktır. Mümkünse, mod_cache gelecekte bu + içerikle ilgili isteklerin "Vary" başlıklı yanıtları olacağını + saptayacak ve önbellekten doğru içerikle yanıt verecektir.

    + +

    Örneğin, bir yanıt şöyle bir başlık ile alınmışsa,

    + +

    + Vary: negotiate,accept-language,accept-charset +

    + +

    mod_cache sadece accept-language ve accept-charset + başlıkları özgün istekle eşleşen önbellekli içeriği sunacaktır.

    + + +
    top
    +
    +

    Güvenlik Kaygıları

    + + +

    Erişim Denetimi ve Yetkilendirme

    + + +

    mod_cache çoğunlukla bir karşı vekile sahip olmak + amacıyla kullanılır. Arka sunucunun sorgulanmasını gerektirmeyen tüm + istekler önbellekleme modülü tarafından karşılanacaktır. Yerel + özkaynakların önbelleklenmesi söz konusu olduğunda Apache’nin güvenlik + modeli büyükçe bir değişikliğe uğrar.

    + +

    Olası .htaccess dosyalarının dosya sisteminin tamamında + taranması çok pahalı bir işlem olduğundan mod_cache, + (işlemi hızlandırmak için) önbelleğe almanın temel amacını kısmen + gözardı ederek, önbellekteki içeriğin sunumu için gerekli + yetkilendirmenin olup olmadığı konusunda bir karar üretmez. Başka bir + deyişle, eğer mod_cache bir kısım içeriği önbelleğe + almışsa içerik zaman aşımına uğramadığı sürece bu içerik önbellekten + sunulacaktır.

    + +

    Örneğin, yapılandırmanız bir özkaynağa IP adresine göre erişime izin + veriyorsa bu içeriğin önbelleğe alınmayacağından emin olmalısınız. + Bunu CacheDisable + yönergesini veya mod_expires kullanarak + yapabilirsiniz. Bunu yapmaz, olayı kendi haline bırakırsanız + mod_cache bir karşı vekil gibi çalışarak sunulan her + içeriği arabelleğe alacak ve hangi IP adresinden gelirse gelsin her + istemciye bunu sunacaktır.

    + + +

    Yerel İstismarcılar

    + + +

    Son kullanıcılarıın isteklerine önbellekten hizmet sunulduğundan + önbelleğin kendisi içerikle etkileşime geçmek isteyenlerin veya + içeriği tahrif etmek isteyenlerin hedefi haline gelebilir. Apache’yi + çalıştıran kullanıcı tarafından her zaman önbelleğe yazılabileceğini + akıldan çıkarmamak önemlidir. Bu durumda alışılmışın tersine tüm + içeriğin Apache kullanıcısı tarafından yazılamamasının sağlanması + önerilir.

    + +

    Eğer Apache kullanıcısı, örneğin bir CGI sürecindeki açık nedeniyle + tehlikeye atılırsa, önbellek hedef alınabilir. + mod_disk_cache kullanılırken önbellekteki bir öğeyi + değiştirmek veya önbelleğe yeni bir öğe eklemek görece daha + kolaydır.

    + +

    Bu risk, Apache kullanıcısını kullanan diğer saldırı türleriyle + karşılaştırıldığında daha yüksektir. mod_disk_cache + kullanıyorsanız şunları aklınızdan çıkarmayın: (1) Apache güvenlik + güncellemelerini takip edin ve sunucunuzu buna göre güncelleyin. (2) + Mümkünse suEXEC kullanarak CGI süreçlerini + Apache kullanıcısı olmayan bir kullanıcının aidiyetinde çalıştırın.

    + + + +

    Önbellek Zehirlenmeleri

    + + +

    Apache bir önbellekli vekil sunucu olarak çalıştığında önbellek + zehirlenmesi adı verilen sorunla karşılaşılma olasılığı vardır. + Önbellek zehirlenmesi, vekil sunucunun arka sunucudan yanlış (ve + genellikle istenmeyen) içerik almasına sebep olan bir saldırı türünü + betimlemek için yaygın olarak kullanılan bir terimdir.

    + +

    Örneğin Apache’nin çalıştığı sistemin kullandığı DNS sunucuları DNS + önbellek zehirlenmesinden etkilenebilecek durumdaysa, bir saldırgan + Apache’nin istekleri almak için başvuracağı kaynak sunucunun yerini + değiştirebilir. Diğer bir örnek, HTTP istek kaçakçılığı adı verilen + bir saldırı türüdür.

    + +

    Bu belge HTTP istek kaçakçılığını derinliğine incelenmesi için uygun + yer değildir (böyle kaynaklara arama motorunuzla erişebilirsiniz). + Bununla birlikte, vekil tarafından kaynak sunucudan alınan içeriği + tamamen denetim altına almak amacıyla kaynak sunucudaki bir açığı + istismar etmeye yönelik bir dizi istek yapılabileceğinin olasılık + dahilinde olduğunu bilmenizde yarar vardır.

    + +
    top
    +
    +

    Dosya Tanıtıcı Önbelleklemesi

    + + + + +

    Bir dosyanın açılması işlemi, özellikle de ağ dosya sistemlerinde + bulunan dosyalar için önemli bir gecikme kaynağı olabilir. Önbellekte, + çok sunulan dosyaların kendilerinin değil, açık dosya tanıtıcılarının + saklanması Apache’yi bu tür gecikmelerden koruyabilir. Apache’de iki tür + dosya tanıtıcı önbelleklemesi yapılabilmektedir.

    + +

    CacheFile yönergesi ile

    + + +

    Apache’de mevcut önbelleklemenin en temel şekli + mod_file_cache tarafından sağlanan dosya tanıtıcı + önbelleklemesidir. Bu önbellek türü dosyaların kendilerini değil açık + dosya tanıtıcılarının bir listesini saklar. Dosyaların bu anlamda + önbelleklenmesi, CacheFile yönergesi yapılandırma dosyasında belirtilerek + sağlanabilir.

    + +

    CacheFile yönergesi + belirtilen dosyanın Apache başlatıldığında açılmasını ve dosya için + yapılan sonraki her istekte bu dosya tanıtıcısının kullanılmasını + sağlar.

    + +

    + CacheFile /usr/local/apache2/htdocs/index.html +

    + +

    Büyük miktarda dosyayı bu anlamda önbelleklemeyi tasarlıyorsanız + işletim sisteminizin açık dosya tanıtıcılarının sayısı ile ilgili + sınırlamasını uygun bir değere ayarlamanız gerekebilir.

    + +

    CacheFile yönergesini + kullandığınız takdirde dosya içeriğindeki değişiklikleri anında isteğe + yansıtamazsınız. Apache dosyayı ilk başlatıldığındaki haliyle + sunar.

    + +

    Eğer Apache çalışırken dosya silinmişse Apache ilk başlatıldığındaki + haline ilişkin dosya tanıtıcıyı sağlamaya ve dolayısıyla dosya + içeriğini sunmaya devam edecektir. Yani, dosya silinmiş ve artık dosya + sisteminde görünmüyor olsa bile Apache durdurulup dosya tanıtıcıları + kapanmadıkça dosyaların silinmesiyle açılan yer serbest + kalmayacaktır.

    + + +

    CacheEnable yönergesi ile

    + + +

    mod_mem_cache modülünün ayrıca, CacheEnable yönergesi üzerinden etkin + kılınabilen kendine özgü bir dosya tanıtıcı önbellekleme şeması + vardır.

    + +

    + CacheEnable fd / +

    + +

    mod_cache’nin devreye girdiği her işlemde olduğu + gibi bu tür dosya tanıtıcı önbelleklemesi de akıllıca yapılır ve + önbellekteki içerik zaman aşımına uğradığı halde sunulmaya devam + edilmez.

    + +
    top
    +
    +

    Sistem Belleğinde Önbellekleme

    + + + + +

    İçeriğin sistem belleğinden sunulması içerik sunmanın evrensel olarak + en hızlı yoludur. Dosyaların bir disk denetleyiciden okunması ya da daha + kötüsü uzak bir ağdan okunması bellekten okumayla karşılaştırılamayacak + ölçüde yavaş işlemlerdir. Disk denetleyiciler genellikle fiziksel + süreçleri denetlerler. Ağ erişimi ise band genişliği sınırlamalarından + etkilenir. Halbuki bellek erişimi sadece nano saniyeler mertebesinde + gerçekleşir.

    + +

    Sistem belleği en pahalı saklama ortamı olması sebebiyle en verimli + şekilde kullanımı önemlidir. Dosyaları sistem belleğinde saklamakla + sistemin kullanabileceği bellek miktarını azaltmış olursunuz. İşletim + sistemi önbelleklemesinde göreceğiniz gibi bu öyle basit bir konu + değildir. Apache’nin kendi kullandığı belleğin bir kısmını önbellek + olarak ayırırken çok fazla bellek kullanmamak önemlidir. Aksi takdirde + işletim sistemi belleğin yetmediği noktada belleği diske + takaslayacağından istenen başarım artışı sağlanamayacaktır.

    + +

    İşletim Sistemi Önbelleklemesi

    + + +

    Günümüz iştetim sistemlerinin hemen hemen tamamında bellek içi + dosya/veri saklama işlemlerini çekirdek yönetir. Bu güçlü bir + özelliktir ve işletim sistemlerinin büyük çoğunluğu bunu böyle yapar. + Örneğin, Linux’ta bir dosyanın ilk defa okunduğunda ve ikinci kez + okunduğunda işlemcinin ne kadar meşgul edildiğine bakalım:

    + +

    + colm@coroebus:~$ time cat testfile > /dev/null
    + real 0m0.065s
    + user 0m0.000s
    + sys 0m0.001s
    + colm@coroebus:~$ time cat testfile > /dev/null
    + real 0m0.003s
    + user 0m0.003s
    + sys 0m0.000s +

    + +

    Küçük bir dosya için bile okuma süresi bakımından büyük fark ortaya + çıkmaktadır. Bunun sebebi çekirdeğin dosya içeriğini bellek daha + güncel amaçlar için lazım olana dek bellek içinde saklamasıdır.

    + +

    Sisteminizde yeterince yedek bellek olduğundan eminseniz, bu + önbellekte daha fazla dosya saklanacağından emin olabilirsiniz. + Bundan, önbelleğin sistem belleğinde verimli biçimde tutulması için + Apache’de ek bir yapılandırmaya gidilmesinin gerekmediği sonucu + çıkarılabilir.

    + +

    Bundan başka, işletim sistemi dosyaların değiştiği ve silindiği + zamanları bildiğinden bu tür dosyaların içerikleri gerektiğinde + önbellekten kendiliğinden silinmiş olur. Bellek içinde dosya saklarken + dosyaların değiştirilme zamanlarını bilme olanağı olmadığından bu + durum Apache’ye büyük yarar sağlar.

    + + +

    İşletim sisteminin dosyaların önbelleklenmesi için sağladığı bunca + yarara ve başarım artışına karşın bellek içinde dosya önbelleklemenin + Apache tarafından yerine getirilmesinin daha iyi olacağı bazı durumlar + vardır.

    + +

    Öncelikle, işletim sistemi sadece bildiği dosyaları önbellekler (veya + önbelleklediği dosyaları bilir). Eğer Apache’yi bir vekil sunucu olarak + çalıştırıyorsanız, önbelleklediğiniz dosyalar yerel olarak saklanmadan + uzaktan sunulabilir. Ancak bellekiçi önbelleklemenin sağladığı hız + artışının dayanılmaz çekiciliğine karşı koyamıyorsanız, Apache’nin kendi + bellekiçi önbelleklemesine ihtiyacınız var demektir.

    + +

    MMapFile yönergesi ile

    + + +

    mod_file_cache modülü, bir durağan dosyanın + içeriğini sunucunun başlatılması sırasında (mmap sistem çağrısıyla) + belleğe eşlenmesini mümkün kılmak için MMapFile yönergesini sağlar. + Apache bu dosyaya gelecek sonraki istekler için dosyanın bellekiçi + içeriğini kullanacaktır.

    + +

    + MMapFile /usr/local/apache2/htdocs/index.html +

    + +

    CacheFile yönergesinde + olduğu gibi bu dosyalarda Apache başlatıldıktan sonra yapılacak bir + değişiklikten Apache’nin haberi olmayacaktır.

    + +

    MMapFile yönergesi + ayırdığı belleğin toplam miktarı ile ilgilenmez, dolayısıyla + yönergenin aşırı kullanımından kaçınmalısınız. Apache’nin çocuk + süreçlerinin her biri bu belleğin kendilerine ait birer kopyasını + yapacağından belleğe eşlenen dosyaların çok yer kaplamaması büyük önem + taşımaktadır; aksi takdirde işletim sistemi belleği diske + takaslayacağından beklenen fayda sağlanamayacaktır.

    + + +

    mod_mem_cache modülü ile

    + + +

    mod_mem_cache modülü HTTP belirtimine uygun olarak + bellekiçi önbelleklemeyi akıllıca uygular. Ayrıca yüksek belleği + doğrudan kullanabildiğinden MMap desteği olmayan + sistemlerde bile bellekiçi önbellekleme yapabilir.

    + +

    Bu tür önbellekleme şöyle etkin kılınabilir:

    + +

    + # Bellekiçi önbelleklemeyi etkin kılalım
    + CacheEnable mem /
    +
    + # Önbellek 1 Megabayttan büyük olmasın
    + MCacheSize 1024 +

    + +
    top
    +
    +

    Disk Üzerinde Önbellekleme

    + + + + +

    mod_disk_cache modülü önbelleklemenin + mod_cache için disk üzerinde yapılmasını mümkün kılar. + mod_mem_cache modülünde olduğu gibi bu önbellekleme de + akıllıca yapılır ve önbellekteki içerik sadece geçerli kabul edildiği + sürece sunulabilir.

    + +

    Modül bu amaçla genelde şöyle kullanılır:

    + +

    + CacheRoot /var/cache/apache/
    + CacheEnable disk /
    + CacheDirLevels 2
    + CacheDirLength 1 +

    + +

    En önemlisi önbelleklenen dosyaların yerel olarak saklanması olup + işletim sisteminin sağladığı bellekiçi önbelleklemeden de ayrıca + faydalanılmış olur. Bu bakımdan, dosyalar disk üzerinde saklansa bile + sıkça erişilen dosyalar işletim sistemi sayesinde aslında bellekten + sunulmuş olacaklardır.

    + +

    Önbellekte Saklamanın Anlamı

    + + +

    mod_disk_cache öğeleri önbellekte saklamak için + istek yapılan URL’nin 22 karakterlik özetini oluşturur. Bu özet, çok + sayıda URL’nin aynı özeti oluşturmaması için konak ismi, protokol, + port ve varsa CGI argümanlarından oluşur.

    + +

    Özeti oluşturan karakterler 64 karakterlik bir karakter kümesinden + seçildiğinden oluşturulması olası farklı özet sayısı 64^22’dir. + Örneğin, bir URL’nin xyTGxSMO2b68mBCykqkp1w gibi bir + özeti olabilir. Bu özet, bu URL ile erişilen dosyalar önbellek içinde + saklanırken dosya ismi öneki olarak kullanılır. Ancak bununla + yetinilmez ve içerik CacheDirLevels ve CacheDirLength yönergelerinin + değerlerine göre önce dizinlere ayrılır.

    + +

    CacheDirLevels + yönergesi kaç alt seviye dizin olacağını belirler. Örneğin, yukarıdaki + özete sahip bir dosyanın isminin başına yukarıdaki yapılandırma + örneğine uygun olarak + /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w gibi bir önek + getirilebilirdi.

    + +

    Bu tekniğin asıl amacı belli bir dizin içinde bulunabilecek + dosyaların ve alt dizinlerin sayısını düşük tutmaktır. Bu sayının + büyük olması çoğu işletim sisteminde başarımın düşmesine sebep olur. + CacheDirLength + yönergesi "1" değeriyle kullanıldığında her dizin altında en fazla 64 + alt dizin veya dosya açılabilir. "2" değeriyle kullanıldığında ise bu + sayı 64^2’ye yükselir ve böyle artarak gider. İyi bir sebebiniz + olmadıkça CacheDirLength için değer olarak + "1" belirtmenizi öneririz.

    + +

    CacheDirLevels + yönergesine atanacak değer önbellekte saklamayı düşündüğünüz olası + dosya sayısı ile ilgilidir. Yukarıdaki örnekte olduğu gibi "2" + değerini belirtirseniz, toplamda en fazla 4096 dizin oluşturulabilir. + 1 milyon dosyanın önbelleklendiği bir durumda bu, her dizinde yaklaşık + olarak 245 önbelleklenmiş URL demektir.

    + +

    Her URL için önbellekte en az iki dosya saklanır. Biri genellikle URL + hakkındaki temel verilerden oluşan ".header" dosyasıdır, diğeri ise + sunulacak içeriğin bire bir kopyası olan ".data" dosyasıdır.

    + +

    "Vary" başlığı üzerinden içeriğin uzlaşıldığı durumda URL için bir + ".vary" dizini oluşturulur. Bu dizin her biri farklı bir uzlaşıma ait + çok sayıda ".data" dosyası içerebilir.

    + + +

    Disk Önbelleğinin Bakımı

    + + +

    mod_disk_cache zaman aşımına uğrayan önbellekli + içeriği silse de önbelleğin toplam boyu ve ne kadar boş bellek kaldığı + hakkında bilgi vermez.

    + +

    Bunun yerine Apache önbellek içeriğini düzenli aralıklarla + temizleyebilmeniz için htcacheclean adında bir araç + içerir. Önbellek için azami ne kadar yer kullanılacağının ve bunun + üzerinde htcacheclean’i hangi sıklıkta + çalıştırılacağının tespiti biraz karmaşık bir işlem olup uygun değerler + genellikle deneme yanılma yoluyla bulunur.

    + +

    htcacheclean iki işlem kipine sahiptir. Kalıcı bir + artalan süreci olarak çalışabileceği gibi cron üzerinden belli + aralıklarla da çalıştırılabilir. Çok büyük (onlarca GB) önbelleklerde + htcacheclean’in işini bitirmesi 1 saatten fazla + sürebileceğinden, cron ile çalıştırma durumunda aynı anda birden fazla + kopyanın çalışıyor durumda olmaması için + htcacheclean’in çalıştırılma aralığını iyi + belirlemek gerekir.

    + +

    +
    + Şekil 1: + Önbelleğin büyümesi ve düzenli aralıklarla temizlenmesi.

    + +

    mod_disk_cache ne kadar önbellek alanı kullandığı + ile ilgili bir bilgi vermediğinden htcacheclean’in + bir temizlik sonrası yeterince büyük bir genişleme alanı kalacak + şekilde yapılandırılması önemlidir.

    + + +
    +
    +

    Mevcut Diller:  en  | + fr  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/caching.xml b/docs/manual/caching.xml new file mode 100644 index 00000000000..e1f97fa06c4 --- /dev/null +++ b/docs/manual/caching.xml @@ -0,0 +1,716 @@ + + + + + + + + + + Caching Guide + + +

    This document supplements the mod_cache, + mod_disk_cache, mod_mem_cache, + mod_file_cache and htcacheclean reference documentation. + It describes how to use Apache's caching features to accelerate web and + proxy serving, while avoiding common problems and misconfigurations.

    +
    + +
    + Introduction + +

    As of Apache HTTP server version 2.2 mod_cache + and mod_file_cache are no longer marked + experimental and are considered suitable for production use. These + caching architectures provide a powerful means to accelerate HTTP + handling, both as an origin webserver and as a proxy.

    + +

    mod_cache and its provider modules + mod_mem_cache and mod_disk_cache + provide intelligent, HTTP-aware caching. The content itself is stored + in the cache, and mod_cache aims to honour all of the various HTTP + headers and options that control the cachability of content. It can + handle both local and proxied content. mod_cache + is aimed at both simple and complex caching configurations, where + you are dealing with proxied content, dynamic local content or + have a need to speed up access to local files which change with + time.

    + +

    mod_file_cache on the other hand presents a more + basic, but sometimes useful, form of caching. Rather than maintain + the complexity of actively ensuring the cachability of URLs, + mod_file_cache offers file-handle and memory-mapping + tricks to keep a cache of files as they were when Apache was last + started. As such, mod_file_cache is aimed at improving + the access time to local static files which do not change very + often.

    + +

    As mod_file_cache presents a relatively simple + caching implementation, apart from the specific sections on CacheFile and MMapFile, the explanations + in this guide cover the mod_cache caching + architecture.

    + +

    To get the most from this document, you should be familiar with + the basics of HTTP, and have read the Users' Guides to + Mapping URLs to the Filesystem and + Content negotiation.

    + +
    + +
    + + Caching Overview + + + + mod_cache + mod_mem_cache + mod_disk_cache + mod_file_cache + + + CacheEnable + CacheDisable + CacheFile + MMapFile + UseCanonicalName + CacheNegotiatedDocs + + + +

    There are two main stages in mod_cache that can + occur in the lifetime of a request. First, mod_cache + is a URL mapping module, which means that if a URL has been cached, + and the cached version of that URL has not expired, the request will + be served directly by mod_cache.

    + +

    This means that any other stages that might ordinarily happen + in the process of serving a request -- for example being handled + by mod_proxy, or mod_rewrite -- + won't happen. But then this is the point of caching content in + the first place.

    + +

    If the URL is not found within the cache, mod_cache + will add a filter to the request handling. After + Apache has located the content by the usual means, the filter will be run + as the content is served. If the content is determined to be cacheable, + the content will be saved to the cache for future serving.

    + +

    If the URL is found within the cache, but also found to have expired, + the filter is added anyway, but mod_cache will create + a conditional request to the backend, to determine if the cached version + is still current. If the cached version is still current, its + meta-information will be updated and the request will be served from the + cache. If the cached version is no longer current, the cached version + will be deleted and the filter will save the updated content to the cache + as it is served.

    + +
    + Improving Cache Hits + +

    When caching locally generated content, ensuring that + UseCanonicalName is set to + On can dramatically improve the ratio of cache hits. This + is because the hostname of the virtual-host serving the content forms + a part of the cache key. With the setting set to On + virtual-hosts with multiple server names or aliases will not produce + differently cached entities, and instead content will be cached as + per the canonical hostname.

    + +

    Because caching is performed within the URL to filename translation + phase, cached documents will only be served in response to URL requests. + Ordinarily this is of little consequence, but there is one circumstance + in which it matters: If you are using Server + Side Includes;

    + + +
    +<!-- The following include can be cached -->
    +<!--#include virtual="/footer.html" --> 
    +
    +<!-- The following include can not be cached -->
    +<!--#include file="/path/to/footer.html" -->
    +
    + +

    If you are using Server Side Includes, and want the benefit of speedy + serves from the cache, you should use virtual include + types.

    +
    + +
    + Expiry Periods + +

    The default expiry period for cached entities is one hour, however + this can be easily over-ridden by using the CacheDefaultExpire directive. This + default is only used when the original source of the content does not + specify an expire time or time of last modification.

    + +

    If a response does not include an Expires header but does + include a Last-Modified header, mod_cache + can infer an expiry period based on the use of the CacheLastModifiedFactor directive.

    + +

    For local content, mod_expires may be used to + fine-tune the expiry period.

    + +

    The maximum expiry period may also be controlled by using the + CacheMaxExpire.

    + +
    + +
    + A Brief Guide to Conditional Requests + +

    When content expires from the cache and is re-requested from the + backend or content provider, rather than pass on the original request, + Apache will use a conditional request instead.

    + +

    HTTP offers a number of headers which allow a client, or cache + to discern between different versions of the same content. For + example if a resource was served with an "Etag:" header, it is + possible to make a conditional request with an "If-None-Match:" + header. If a resource was served with a "Last-Modified:" header + it is possible to make a conditional request with an + "If-Modified-Since:" header, and so on.

    + +

    When such a conditional request is made, the response differs + depending on whether the content matches the conditions. If a request is + made with an "If-Modified-Since:" header, and the content has not been + modified since the time indicated in the request then a terse "304 Not + Modified" response is issued.

    + +

    If the content has changed, then it is served as if the request were + not conditional to begin with.

    + +

    The benefits of conditional requests in relation to caching are + twofold. Firstly, when making such a request to the backend, if the + content from the backend matches the content in the store, this can be + determined easily and without the overhead of transferring the entire + resource.

    + +

    Secondly, conditional requests are usually less strenuous on the + backend. For static files, typically all that is involved is a call + to stat() or similar system call, to see if the file has + changed in size or modification time. As such, even if Apache is + caching local content, even expired content may still be served faster + from the cache if it has not changed. As long as reading from the cache + store is faster than reading from the backend (e.g. an in-memory cache + compared to reading from disk).

    +
    + +
    + What Can be Cached? + +

    As mentioned already, the two styles of caching in Apache work + differently, mod_file_cache caching maintains file + contents as they were when Apache was started. When a request is + made for a file that is cached by this module, it is intercepted + and the cached file is served.

    + +

    mod_cache caching on the other hand is more + complex. When serving a request, if it has not been cached + previously, the caching module will determine if the content + is cacheable. The conditions for determining cachability of + a response are;

    + +
      +
    1. Caching must be enabled for this URL. See the CacheEnable and CacheDisable directives.
    2. + +
    3. The response must have a HTTP status code of 200, 203, 300, 301 or + 410.
    4. + +
    5. The request must be a HTTP GET request.
    6. + +
    7. If the request contains an "Authorization:" header, the response + will not be cached.
    8. + +
    9. If the response contains an "Authorization:" header, it must + also contain an "s-maxage", "must-revalidate" or "public" option + in the "Cache-Control:" header.
    10. + +
    11. If the URL included a query string (e.g. from a HTML form GET + method) it will not be cached unless the response specifies an + explicit expiration by including an "Expires:" header or the max-age + or s-maxage directive of the "Cache-Control:" header, as per RFC2616 + sections 13.9 and 13.2.1.
    12. + +
    13. If the response has a status of 200 (OK), the response must + also include at least one of the "Etag", "Last-Modified" or + the "Expires" headers, or the max-age or s-maxage directive of + the "Cache-Control:" header, unless the + CacheIgnoreNoLastMod + directive has been used to require otherwise.
    14. + +
    15. If the response includes the "private" option in a "Cache-Control:" + header, it will not be stored unless the + CacheStorePrivate has been + used to require otherwise.
    16. + +
    17. Likewise, if the response includes the "no-store" option in a + "Cache-Control:" header, it will not be stored unless the + CacheStoreNoStore has been + used.
    18. + +
    19. A response will not be stored if it includes a "Vary:" header + containing the match-all "*".
    20. +
    +
    + +
    + What Should Not be Cached? + +

    In short, any content which is highly time-sensitive, or which varies + depending on the particulars of the request that are not covered by + HTTP negotiation, should not be cached.

    + +

    If you have dynamic content which changes depending on the IP address + of the requester, or changes every 5 minutes, it should almost certainly + not be cached.

    + +

    If on the other hand, the content served differs depending on the + values of various HTTP headers, it might be possible + to cache it intelligently through the use of a "Vary" header.

    +
    + +
    + Variable/Negotiated Content + +

    If a response with a "Vary" header is received by + mod_cache when requesting content by the backend it + will attempt to handle it intelligently. If possible, + mod_cache will detect the headers attributed in the + "Vary" response in future requests and serve the correct cached + response.

    + +

    If for example, a response is received with a vary header such as;

    + + +Vary: negotiate,accept-language,accept-charset + + +

    mod_cache will only serve the cached content to + requesters with accept-language and accept-charset headers + matching those of the original request.

    +
    +
    + +
    + Security Considerations + +
    + Authorization and Access Control + +

    Using mod_cache is very much like having a built + in reverse-proxy. Requests will be served by the caching module unless + it determines that the backend should be queried. When caching local + resources, this drastically changes the security model of Apache.

    + +

    As traversing a filesystem hierarchy to examine potential + .htaccess files would be a very expensive operation, + partially defeating the point of caching (to speed up requests), + mod_cache makes no decision about whether a cached + entity is authorised for serving. In other words; if + mod_cache has cached some content, it will be served + from the cache as long as that content has not expired.

    + +

    If, for example, your configuration permits access to a resource by IP + address you should ensure that this content is not cached. You can do this by + using the CacheDisable + directive, or mod_expires. Left unchecked, + mod_cache - very much like a reverse proxy - would cache + the content when served and then serve it to any client, on any IP + address.

    +
    + +
    + Local exploits + +

    As requests to end-users can be served from the cache, the cache + itself can become a target for those wishing to deface or interfere with + content. It is important to bear in mind that the cache must at all + times be writable by the user which Apache is running as. This is in + stark contrast to the usually recommended situation of maintaining + all content unwritable by the Apache user.

    + +

    If the Apache user is compromised, for example through a flaw in + a CGI process, it is possible that the cache may be targeted. When + using mod_disk_cache, it is relatively easy to + insert or modify a cached entity.

    + +

    This presents a somewhat elevated risk in comparison to the other + types of attack it is possible to make as the Apache user. If you are + using mod_disk_cache you should bear this in mind - + ensure you upgrade Apache when security upgrades are announced and + run CGI processes as a non-Apache user using suEXEC if possible.

    + +
    + +
    + Cache Poisoning + +

    When running Apache as a caching proxy server, there is also the + potential for so-called cache poisoning. Cache Poisoning is a broad + term for attacks in which an attacker causes the proxy server to + retrieve incorrect (and usually undesirable) content from the backend. +

    + +

    For example if the DNS servers used by your system running Apache + are vulnerable to DNS cache poisoning, an attacker may be able to control + where Apache connects to when requesting content from the origin server. + Another example is so-called HTTP request-smuggling attacks.

    + +

    This document is not the correct place for an in-depth discussion + of HTTP request smuggling (instead, try your favourite search engine) + however it is important to be aware that it is possible to make + a series of requests, and to exploit a vulnerability on an origin + webserver such that the attacker can entirely control the content + retrieved by the proxy.

    +
    +
    + +
    + File-Handle Caching + + + + mod_file_cache + mod_mem_cache + + + CacheFile + CacheEnable + CacheDisable + + + +

    The act of opening a file can itself be a source of delay, particularly + on network filesystems. By maintaining a cache of open file descriptors + for commonly served files, Apache can avoid this delay. Currently Apache + provides two different implementations of File-Handle Caching.

    + +
    + CacheFile + +

    The most basic form of caching present in Apache is the file-handle + caching provided by mod_file_cache. Rather than caching + file-contents, this cache maintains a table of open file descriptors. Files + to be cached in this manner are specified in the configuration file using + the CacheFile + directive.

    + +

    The + CacheFile directive + instructs Apache to open the file when Apache is started and to re-use + this file-handle for all subsequent access to this file.

    + + +
    CacheFile /usr/local/apache2/htdocs/index.html
    +
    + +

    If you intend to cache a large number of files in this manner, you + must ensure that your operating system's limit for the number of open + files is set appropriately.

    + +

    Although using CacheFile + does not cause the file-contents to be cached per-se, it does mean + that if the file changes while Apache is running these changes will + not be picked up. The file will be consistently served as it was + when Apache was started.

    + +

    If the file is removed while Apache is running, Apache will continue + to maintain an open file descriptor and serve the file as it was when + Apache was started. This usually also means that although the file + will have been deleted, and not show up on the filesystem, extra free + space will not be recovered until Apache is stopped and the file + descriptor closed.

    +
    + +
    + CacheEnable fd + +

    mod_mem_cache also provides its own file-handle + caching scheme, which can be enabled via the + CacheEnable directive.

    + + +
    CacheEnable fd /
    +
    + +

    As with all of mod_cache this type of file-handle + caching is intelligent, and handles will not be maintained beyond + the expiry time of the cached content.

    +
    +
    + +
    + In-Memory Caching + + + + mod_mem_cache + mod_file_cache + + + CacheEnable + CacheDisable + MMapFile + + + +

    Serving directly from system memory is universally the fastest method + of serving content. Reading files from a disk controller or, even worse, + from a remote network is orders of magnitude slower. Disk controllers + usually involve physical processes, and network access is limited by + your available bandwidth. Memory access on the other hand can take mere + nano-seconds.

    + +

    System memory isn't cheap though, byte for byte it's by far the most + expensive type of storage and it's important to ensure that it is used + efficiently. By caching files in memory you decrease the amount of + memory available on the system. As we'll see, in the case of operating + system caching, this is not so much of an issue, but when using + Apache's own in-memory caching it is important to make sure that you + do not allocate too much memory to a cache. Otherwise the system + will be forced to swap out memory, which will likely degrade + performance.

    + +
    + Operating System Caching + +

    Almost all modern operating systems cache file-data in memory managed + directly by the kernel. This is a powerful feature, and for the most + part operating systems get it right. For example, on Linux, let's look at + the difference in the time it takes to read a file for the first time + and the second time;

    + +
    +colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.065s
    +user    0m0.000s
    +sys     0m0.001s
    +colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.003s
    +user    0m0.003s
    +sys     0m0.000s
    +
    + +

    Even for this small file, there is a huge difference in the amount + of time it takes to read the file. This is because the kernel has cached + the file contents in memory.

    + +

    By ensuring there is "spare" memory on your system, you can ensure + that more and more file-contents will be stored in this cache. This + can be a very efficient means of in-memory caching, and involves no + extra configuration of Apache at all.

    + +

    Additionally, because the operating system knows when files are + deleted or modified, it can automatically remove file contents from the + cache when necessary. This is a big advantage over Apache's in-memory + caching which has no way of knowing when a file has changed.

    +
    + +

    Despite the performance and advantages of automatic operating system + caching there are some circumstances in which in-memory caching may be + better performed by Apache.

    + +

    Firstly, an operating system can only cache files it knows about. If + you are running Apache as a proxy server, the files you are caching are + not locally stored but remotely served. If you still want the unbeatable + speed of in-memory caching, Apache's own memory caching is needed.

    + +
    + MMapFile Caching + +

    mod_file_cache provides the + MMapFile directive, which + allows you to have Apache map a static file's contents into memory at + start time (using the mmap system call). Apache will use the in-memory + contents for all subsequent accesses to this file.

    + + +
    MMapFile /usr/local/apache2/htdocs/index.html
    +
    + +

    As with the + CacheFile directive, any + changes in these files will not be picked up by Apache after it has + started.

    + +

    The MMapFile + directive does not keep track of how much memory it allocates, so + you must ensure not to over-use the directive. Each Apache child + process will replicate this memory, so it is critically important + to ensure that the files mapped are not so large as to cause the + system to swap memory.

    +
    + +
    + mod_mem_cache Caching + +

    mod_mem_cache provides a HTTP-aware intelligent + in-memory cache. It also uses heap memory directly, which means that + even if MMap is not supported on your system, + mod_mem_cache may still be able to perform caching.

    + +

    Caching of this type is enabled via;

    + +
    +# Enable memory caching
    +CacheEnable mem /
    +
    +# Limit the size of the cache to 1 Megabyte
    +MCacheSize 1024
    +
    +
    +
    + +
    + Disk-based Caching + + + + mod_disk_cache + + + CacheEnable + CacheDisable + + + +

    mod_disk_cache provides a disk-based caching mechanism + for mod_cache. As with mod_mem_cache + this cache is intelligent and content will be served from the cache only + as long as it is considered valid.

    + +

    Typically the module will be configured as so;

    + + +
    +CacheRoot   /var/cache/apache/
    +CacheEnable disk /
    +CacheDirLevels 2
    +CacheDirLength 1
    +
    + +

    Importantly, as the cached files are locally stored, operating system + in-memory caching will typically be applied to their access also. So + although the files are stored on disk, if they are frequently accessed + it is likely the operating system will ensure that they are actually + served from memory.

    + +
    + Understanding the Cache-Store + +

    To store items in the cache, mod_disk_cache creates + a 22 character hash of the URL being requested. This hash incorporates + the hostname, protocol, port, path and any CGI arguments to the URL, + to ensure that multiple URLs do not collide.

    + +

    Each character may be any one of 64-different characters, which mean + that overall there are 64^22 possible hashes. For example, a URL might + be hashed to xyTGxSMO2b68mBCykqkp1w. This hash is used + as a prefix for the naming of the files specific to that URL within + the cache, however first it is split up into directories as per + the CacheDirLevels and + CacheDirLength + directives.

    + +

    CacheDirLevels + specifies how many levels of subdirectory there should be, and + CacheDirLength + specifies how many characters should be in each directory. With + the example settings given above, the hash would be turned into + a filename prefix as + /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w.

    + +

    The overall aim of this technique is to reduce the number of + subdirectories or files that may be in a particular directory, + as most file-systems slow down as this number increases. With + setting of "1" for + CacheDirLength + there can at most be 64 subdirectories at any particular level. + With a setting of 2 there can be 64 * 64 subdirectories, and so on. + Unless you have a good reason not to, using a setting of "1" + for CacheDirLength + is recommended.

    + +

    Setting + CacheDirLevels + depends on how many files you anticipate to store in the cache. + With the setting of "2" used in the above example, a grand + total of 4096 subdirectories can ultimately be created. With + 1 million files cached, this works out at roughly 245 cached + URLs per directory.

    + +

    Each URL uses at least two files in the cache-store. Typically + there is a ".header" file, which includes meta-information about + the URL, such as when it is due to expire and a ".data" file + which is a verbatim copy of the content to be served.

    + +

    In the case of a content negotiated via the "Vary" header, a + ".vary" directory will be created for the URL in question. This + directory will have multiple ".data" files corresponding to the + differently negotiated content.

    +
    + +
    + Maintaining the Disk Cache + +

    Although mod_disk_cache will remove cached content + as it is expired, it does not maintain any information on the total + size of the cache or how little free space may be left.

    + +

    Instead, provided with Apache is the htcacheclean tool which, as the name + suggests, allows you to clean the cache periodically. Determining + how frequently to run htcacheclean and what target size to + use for the cache is somewhat complex and trial and error may be needed to + select optimal values.

    + +

    htcacheclean has two modes of + operation. It can be run as persistent daemon, or periodically from + cron. htcacheclean can take up to an hour + or more to process very large (tens of gigabytes) caches and if you are + running it from cron it is recommended that you determine how long a typical + run takes, to avoid running more than one instance at a time.

    + +

    +
    + Figure 1: Typical + cache growth / clean sequence.

    + +

    Because mod_disk_cache does not itself pay attention + to how much space is used you should ensure that + htcacheclean is configured to + leave enough "grow room" following a clean.

    +
    + +
    + +
    diff --git a/docs/manual/caching.xml.fr b/docs/manual/caching.xml.fr new file mode 100644 index 00000000000..7c1051a1d23 --- /dev/null +++ b/docs/manual/caching.xml.fr @@ -0,0 +1,801 @@ + + + + + + + + + + + + Guide de la mise en cache + + +

    Ce document complète la documentation de référence des modules + mod_cache, + mod_disk_cache, mod_mem_cache, + mod_file_cache et du programme htcacheclean. + Il décrit l'utilisation des fonctionnalités de mise en cache d'Apache + pour accélérer les services web et proxy, tout en évitant les problèmes + courants et les erreurs de configuration.

    +
    + +
    + Introduction + +

    Depuis la version 2.2 du serveur HTTP Apache, les modules + mod_cache + et mod_file_cache ne sont plus jugés expérimentaux + et on considère qu'ils peuvent être utilisés en production. Ces + architectures de mise en cache constituent un puissant concept + d'accélération de la gestion HTTP, tant comme serveur web originel + que comme mandataire.

    + +

    Le module mod_cache et ses modules de soutien + mod_mem_cache et mod_disk_cache + permettent une mise en cache intelligente du point de vue HTTP. + Le contenu proprement dit est stocké dans le cache, + et mod_cache tente d'honorer tous les en-têtes HTTP et les options + qui définissent la possibilité de mise en cache du contenu. Il gère non + seulement le contenu local, mais aussi le contenu mandaté. + mod_cache + est conçu pour des configurations de mise en cache simples ou complexes, + dans lesquels vous traitez de contenu mandaté, de contenu local dynamique + ou avez besoin d'accélérer l'accès à des fichiers locaux qui sont modifiés + au cours du temps.

    + +

    Le module mod_file_cache quant à lui, constitue une + forme de mise en cache plus basique, mais quelques fois intéressante. + Plutôt que de gérer la complexité de s'assurer de manière active de la + possibilité de mise en cache d'URLs, + mod_file_cache fournit des méthodes pour la gestion + et l'édition de fichiers en mémoire afin de maintenir un cache de fichiers + dans l'état où ils étaient la dernière fois qu'Apache a démarré. + En tant que tel, mod_file_cache a été conçu pour améliorer + le temps d'accès à des fichiers locaux statiques qui ne sont modifiés + que rarement.

    + +

    Etant donné que mod_file_cache constitue une + implémentation de mise en cache relativement simple, mises à part les + sections spécifiques sur les directives CacheFile et MMapFile, les explications fournies + dans ce guide concernent l'architecture de mise en cache du + module mod_cache.

    + +

    Pour tirer parti efficacement de ce document, les bases de HTTP doivent + vous être familières, et vous devez avoir lu les sections + Mise en correspondance des + URLs avec le système de fichiers et + Négociation sur le contenu + du guide de l'utilisateur.

    + +
    + +
    + + Vue d'ensemble de la mise en cache + + + + mod_cache + mod_mem_cache + mod_disk_cache + mod_file_cache + + + CacheEnable + CacheDisable + CacheFile + MMapFile + UseCanonicalName + CacheNegotiatedDocs + + + +

    mod_cache peut faire intervenir deux phases + principales pendant la durée de vie d'une requête. + En premier lieu, mod_cache + est un module de mise en correspondance d'URLs, ce qui signifie que si + une URL a été mise en cache, et que la version du cache de cette URL n'est + pas arrivée à expiration, la requête sera traitée directement par + mod_cache.

    + +

    Ceci entraîne que toutes autres actions qui se dérouleraient normalement + au cours du processus de traitement d'une requête -- par exemple un + traitement effectué par mod_proxy, ou + mod_rewrite -- + ne seront pas effectuées. Mais c'est justement l'intérêt + de la mise en cache préalable du contenu.

    + +

    Si l'URL ne se trouve pas dans le cache, mod_cache + va ajouter un filtre au traitement de la requête. + Une fois le contenu de la réponse HTTP trouvé par Apache de manière classique, le + filtre sera exécuté en même temps que le contenu sera transmis au client. + S'il est déterminé que le contenu peut être mis en cache, + il sera sauvegardé dans le cache pour une utilisation future.

    + +

    Si l'URL se trouve dans le cache, mais est arrivée à expiration, + le filtre est quand-même ajouté, mais mod_cache va créer + une requête conditionnelle en arrière-plan, pour déterminer si la version + du cache est encore à jour. Si la version du cache est encore à jour, ses + meta-informations seront mises à jour et la requête sera servie à partir du + cache. Si la version du contenu n'est plus à jour, elle sera supprimée et le + filtre va sauvegarder le contenu mis à jour dans le cache + au moment où il sera servi.

    + +
    + Amélioration du taux de présence dans le cache + +

    Lors de la mise en cache de contenu généré localement, le + positionnement de la directive + UseCanonicalName à + On peut améliorer de manière spectaculaire le taux de + présence dans le cache. Ceci est du au fait que le nom d'hôte de l'hôte + virtuel qui sert le contenu constitue une partie de la clé de cache. + Avec UseCanonicalName positionnée + à On, + les hôtes virtuels possédant plusieurs noms de serveur ou alias ne + généreront pas d'entités de cache différentes, et le contenu sera mis en + cache en faisant référence au nom d'hôte canonique.

    + +

    Les documents mis en cache ne seront servis qu'en réponse à des + requêtes de type URL, car la mise en cache est effectuée lors de la phase + de traduction de l'URL en nom de fichier. + En général, cela n'a que peu d'effet, à moins que vous n'utilisiez les + Inclusions Côté Serveur (SSI);

    + + +
    +<!-- L'inclusion suivante peut être mise en cache -->
    +<!--#include virtual="/footer.html" -->
    +
    +<!-- L'inclusion suivante ne peut pas être mise en cache -->
    +<!--#include file="/path/to/footer.html" -->
    +
    + +

    Si vous utilisez les SSI, et voulez bénéficier de la vitesse de + service depuis le cache, vous devez utiliser des inclusions de type + virtual.

    +
    + +
    + Périodes d'expiration + +

    La période d'expiration par défaut pour les entités du cache est + d'une heure; elle peut cependant être facilement modifiée à l'aide de + la directive CacheDefaultExpire. Cette valeur par + défaut n'est utilisée que lorsque la source originale du contenu ne + précise pas de période d'expiration ou d'heure de dernière + modification.

    + +

    Si une réponse ne contient pas d'en-tête Expires mais + inclut un en-tête Last-Modified, mod_cache + peut déduire une période d'expiration en se basant sur la valeur de la + directive CacheLastModifiedFactor.

    + +

    La période d'expiration des contenus locaux peut être ajustée finement + en utilisant le module mod_expires.

    + +

    On peut aussi contrôler la période d'expiration maximale en utilisant + la directive CacheMaxExpire.

    + +
    + +
    + Guide succinct des requêtes conditionnelles + +

    Lorsqu'un contenu est arrivé à expiration dans le cache et fait + l'objet d'une nouvelle demande d'accès, plutôt que traiter directement + la requête originale, Apache préfère utiliser une + requête conditionnelle.

    + +

    HTTP propose toute une panoplie d'en-têtes qui permettent à un client, + ou au cache de distinguer les différentes versions d'un même contenu. Par + exemple, si une ressource a été servie avec un en-tête "Etag:", il est + possible de créer une requête conditionnelle contenant un en-tête + "If-None-Match:". Si une ressource a été servie avec un en-tête + "Last-Modified:", il est possible de créer une requête conditionnelle + contenant un en-tête "If-Modified-Since:", etc....

    + +

    Lorsqu'une telle requête conditionnelle est créée, la reponse diffère + selon que le contenu satisfait ou non aux conditions. Si une requête est + créée avec un en-tête "If-Modified-Since:", et le contenu n'a pas été + modifié depuis le moment indiqué dans la requête, alors un laconique + "304 Not Modified" est retourné.

    + +

    Si le contenu a été modifié, il est servi comme si la requête n'avait + pas été conditionnelle à l'origine.

    + +

    Les bénéfices des requêtes conditionnelles pour ce qui concerne la + mise en cache sont de deux sortes. Premièrement, quand une telle requête + est envoyée au processus en arrière-plan, il sera aisé de déterminer + si le contenu que devra servir le processus en arrière-plan correspond + au contenu stocké dans le cache, sans être obligé de transmettre la + totalité de la ressource.

    + +

    Deuxièmement, les requêtes conditionnelles sont en général moins + coûteuses en ressources pour le processus en arrière-plan. + Pour ce qui est des fichiers + statiques, l'action type est un appel à stat() ou un appel + système similaire, pour déterminer si la taille du fichier ou sa date de + modification ont changé. Ainsi, même si Apache met en cache le contenu + local, un contenu arrivé à expiration pourra être servi plus rapidement + depuis le cache s'il n'a pas été modifié, parce que la lecture depuis le + cache est plus rapide que la lecture depuis le processus en arrière-plan + (à comparer à la différence de vitesse entre la lecture depuis un cache en + mémoire et la lecture depuis un disque).

    +
    + +
    + Que peut-on mettre en cache ? + +

    Comme mentionné plus haut, les deux styles de mise en cache d'Apache + fonctionnent différemment; la mise en cache de + mod_file_cache conserve les contenus des fichiers + tels qu'ils étaient au démarrage d'Apache. Quand une requête pour un + fichier mis en cache par ce module est envoyée, elle est interceptée + et le fichier mis en cache est servi.

    + +

    La mise en cache de mod_cache, quant à elle, est + plus complexe. Lors du traitement d'une requête, le module de mise en + cache déterminera si le contenu peut être mis en cache, s'il ne l'a + pas déjà été auparavant. Les conditions qui permettent de déterminer + la possibilité de mise en cache d'une réponse sont :

    + +
      +
    1. La mise en cache doit être activée pour cette URL. Voir les + directives CacheEnable et CacheDisable.
    2. + +
    3. La reponse doit avoir un code de statut HTTP de 200, 203, 300, 301 + ou 410.
    4. + +
    5. La requête doit être de type HTTP GET.
    6. + +
    7. Si la requête contient un en-tête "Authorization:", la réponse ne + sera pas mise en cache.
    8. + +
    9. Si la réponse contient un en-tête "Authorization:", elle doit aussi + contenir une option "s-maxage", "must-revalidate" ou "public" + dans l'en-tête "Cache-Control:".
    10. + +
    11. Si l'URL contient une chaîne de paramètres + (provenant par exemple d'une méthode GET de formulaire HTML), elle ne + sera pas mise en cache à moins que la réponse ne spécifie une + condition d'expiration explicite via un en-tête "Expires:" ou la + directive max-age ou s-maxage de l'en-tête "Cache-Control:", + comme préconisé dans la RFC2616, sections 13.9 et 13.2.1.
    12. + +
    13. Si la réponse a un statut de 200 (OK), elle doit aussi contenir + au moins un des en-têtes "Etag", "Last-Modified" ou + "Expires", ou la directive max-age ou s-maxage de l'en-tête + "Cache-Control:", à moins que la directive + CacheIgnoreNoLastMod + ne précise d'autres contraintes.
    14. + +
    15. Si la réponse contient l'option "private" dans un en-tête + "Cache-Control:", elle ne sera pas mise en cache à moins que la + directive + CacheStorePrivate + ne précise d'autres contraintes.
    16. + +
    17. De même, si la réponse contient l'option "no-store" dans un en-tête + "Cache-Control:", elle ne sera pas mise en cache à moins que la + directive + CacheStoreNoStore + n'ait été utilisée.
    18. + +
    19. Une réponse ne sera pas mise en cache si elle comporte un en-tête + "Vary:" contenant le caractère "*" qui correspond à toute + chaîne de caractères.
    20. +
    +
    + +
    + Qu'est ce qui ne doit pas être mis en cache ? + +

    En bref, tout contenu qui varie beaucoup avec le temps, ou en fonction + de particularités de la requête qui ne sont pas couvertes par la + négociation HTTP, ne doit pas être mis en cache.

    + +

    Un contenu dynamique qui varie en fonction de l'adresse IP du + demandeur, ou qui est modifié toutes les 5 minutes, ne devra en général + pas être mis en cache.

    + +

    Si par contre le contenu servi diffère en fonction de la valeur de + divers en-têtes HTTP, il se peut que l'on puisse le mettre en cache + intelligemment en utilisant un en-tête "Vary".

    +
    + +
    + Contenu variable et/ou négocié + +

    Si mod_cache reçoit une réponse contenant un en-tête + "Vary", lorsqu'un contenu a été demandé par un processus d'arrière-plan, + il va s'efforcer de la traiter intelligemment. Si possible, + mod_cache va détecter les en-têtes attribués dans la + réponse "Vary" à l'occasion des futures demandes, et servir une réponse + correcte à partir du cache.

    + +

    Si par exemple, une réponse est reçue avec l'en-tête Vary suivant,

    + + +Vary: negotiate,accept-language,accept-charset + + +

    mod_cache ne servira aux demandeurs que le contenu + mis en cache qui correspond au contenu des en-têtes accept-language et + accept-charset de la requête originale.

    +
    + +
    + +
    + Considérations sur la sécurité + +
    + Autorisation et contrôle d'accès + +

    Utiliser mod_cache revient sensiblement à la même + chose qu'avoir un mandataire inverse intégré (reverse-proxy). Les requêtes + seront servies par le module de mise en cache sauf si ce dernier + détermine qu'un processus d'arrière-plan doit être appelé. La mise en + cache de ressources locales modifie considérablement le modèle de + sécurité d'Apache.

    + +

    Comme le parcours de la hiérarchie d'un système de fichiers pour + examiner le contenu d'éventuels fichiers + .htaccess serait une opération très coûteuse en ressources, + annulant partiellement de ce fait l'intérêt de la mise en cache + (accélérer le traitement des requêtes), + mod_cache ne se préoccupe pas de savoir s'il a + l'autorisation de servir une entité mise en cache. En d'autres termes, + si mod_cache a mis en cache un certain contenu, ce + dernier sera servi à partir du cache tant qu'il ne sera pas arrivé à + expiration.

    + +

    Si par exemple, votre configuration autorise l'accès à une ressource + en fonction de l'adresse IP, vous devez vous assurer que ce contenu n'est + pas mis en cache. Ceci est possible en utilisant la directive + CacheDisable, ou le module + mod_expires. Livré à lui-même, + mod_cache - pratiquement comme un mandataire inverse - + mettrait en cache le contenu lors de son service, et le servirait ensuite + à tout client, vers n'importe quelle adresse IP.

    +
    + +
    + Piratages locaux + +

    Etant donné que les requêtes des utilisateurs finaux peuvent être + servies depuis le cache, ce dernier est une cible potentielle pour ceux + qui veulent défigurer un contenu ou interférer avec lui. Il est important + de garder à l'esprit que l'utilisateur sous lequel tourne Apache doit + toujours avoir l'accès en écriture dans le cache. Ceci est en contraste + total avec la recommandation usuelle d'interdire à l'utilisateur sous + lequel tourne Apache + l'accès en écriture à tout contenu.

    + +

    Si l'utilisateur sous lequel tourne Apache est compromis, + par exemple à cause d'une + faille de sécurité dans un processus CGI, il est possible que le cache + fasse l'objet d'une attaque. Il est relativement aisé d'insérer ou de + modifier une entité dans le cache en utilisant le module + mod_disk_cache.

    + +

    Cela représente un risque relativement élévé par rapport aux autres + types d'attaques qu'il est possible de mener sous l'utilisateur apache. + Si vous utilisez mod_disk_cache, vous devez garder ceci + à l'esprit : effectuez toujours les mises à jour d'Apache quand des + correctifs de sécurité sont annoncés et exécutez les processus CGI sous + un utilisateur autre qu'apache en utilisant + suEXEC dans la mesure du possible.

    + +
    + +
    + Empoisonnement du cache (Cache Poisoning) + +

    Si vous utilisez Apache comme serveur mandataire avec mise en cache, + vous vous exposez aussi à un éventuel "Empoisonnement du + cache" (Cache poisoning). L'empoisonnement du cache est un terme général + pour désigner les attaques au cours desquelles l'attaquant fait en sorte + que le serveur mandataire renvoie un contenu incorrect (et souvent + indésirable) en provenance du serveur d'arrière plan. +

    + +

    Par exemple, si les serveur DNS qu'utilise votre système où tourne + Apache sont vulnérables à l'empoisonnement du cache des DNS, un attaquant + pourra contrôler vers où Apache se connecte lorsqu'il demande un contenu + depuis le serveur d'origine. + Un autre exemple est constitué par les attaques ainsi nommées + "Dissimulation de requêtes HTTP" (HTTP request-smuggling).

    + +

    Ce document n'est pas le bon endroit pour une discussion approfondie + à propos de la Dissimulation de requêtes HTTP (utilisez plutôt votre + moteur de recherche favori); il est cependant important de savoir qu'il + est possible d'élaborer une série de requêtes, et d'exploiter une + vulnérabilité d'un serveur web d'origine de telle façon que l'attaquant + puisse contrôler entièrement le contenu renvoyé par le mandataire.

    +
    +
    + +
    + Mise en cache de la gestion de fichier + + + + mod_file_cache + mod_mem_cache + + + CacheFile + CacheEnable + CacheDisable + + + +

    Le fait d'ouvrir un fichier peut en lui-même introduire un délai, + en particulier dans les systèmes de fichiers répartis sur le réseau. Apache + peut s'affranchir de ce délai en maintenant + un cache des descripteurs de fichiers + ouverts pour ce qui concerne les fichiers souvent accédés. Apache propose + actuellement deux implémentations différentes de mise en cache de la + gestion de fichier.

    + +
    + Directive CacheFile + +

    La forme la plus élémentaire de mise en cache que propose Apache est + fournie par le module mod_file_cache. + Plutôt que de mettre en cache le contenu des fichiers, ce cache maintient + une table des descripteurs de fichiers ouverts. Les fichiers à mettre en + cache de cette manière sont spécifiés dans le fichier de configuration + en utilisant la directive + CacheFile.

    + +

    La directive + CacheFile demande à Apache + d'ouvrir le fichier lors de son démarrage et de réutiliser le descripteur + de fichier élaboré à cette occasion pour tous les + accès ultérieurs à ce fichier.

    + + +
    CacheFile /usr/local/apache2/htdocs/index.html
    +
    + +

    Si vous avez l'intention de mettre en cache un grand nombre de + fichiers de cette manière, vous devez vous assurer que le nombre maximum + de fichiers ouverts par votre système d'exploitation est correctement + défini.

    + +

    Bien que l'utilisation de la directive + CacheFile + n'entraîne pas la mise en cache du contenu du fichier, cela ne signifie + pas qu'en cas de modification du fichier pendant l'exécution d'Apache, + ces changements seront pris en compte. Le fichier sera toujours servi + dans l'état où il était quand Apache a démarré.

    + +

    Si le fichier est supprimé pendant l'exécution d'Apache, ce dernier + continuera à maintenir un descripteur de fichier ouvert et à servir le + fichier dans l'état où il était quand Apache a démarré. Cela signifie + aussi habituellement que malgré le fait que le fichier ait été supprimé, + et ne soit + plus accessible par le système de fichiers, l'espace libéré ne sera + restitué qu'à l'arrêt d'Apache quand le + descripteur de fichier sera fermé.

    +
    + +
    + Directive CacheEnable + +

    Le module mod_mem_cache propose aussi son propre + schéma de mise en cache de la gestion de fichier, qui peut être activé + à l'aide de la directive + CacheEnable.

    + + +
    CacheEnable fd /
    +
    + +

    A l'instar de tout ce qui concerne le module + mod_cache, ce mode de mise en cache de la gestion de + fichier est intelligent, et les descripteurs ne seront plus maintenus + lorsque le contenu mis en cache sera arrivé à expiration.

    +
    +
    + +
    + Mise en cache en mémoire + + + + mod_mem_cache + mod_file_cache + + + CacheEnable + CacheDisable + MMapFile + + + +

    Servir un contenu directement depuis la mémoire système est + universellement reconnu comme la méthode la plus rapide. Lire des fichiers + depuis un contrôleur de disque ou pire, depuis un réseau distant est plus + lent de plusieurs ordres de grandeur. Les contrôleurs de disque réalisent + en général des opérations mécaniques, et l'accès au réseau est limité par la + bande passante dont vous disposez. Par contre, les temps d'accès à la + mémoire sont de l'ordre de la nano-seconde.

    + +

    Cependant la mémoire système n'est pas bon marché; à capacité égale, + c'est de loin le type de stockage le plus coûteux et il est important de + s'assurer qu'elle est utilisée efficacement. Le fait de mettre en cache + des fichiers en mémoire diminue d'autant la quantité de mémoire système + disponible. Comme nous le verrons plus loin, ce n'est pas un problème en + soi dans le cas de la mise en cache par l'intermédiaire du système + d'exploitation, mais si l'on utilise la mise en cache en mémoire propre à + Apache, il faut prendre garde à ne pas allouer trop de mémoire au cache. + Sinon le système sera contraint d'utiliser le swap, ce qui dégradera + sensiblement les performances.

    + +
    + Mise en cache par l'intermédiaire du système d'exploitation + +

    Dans la plupart des systèmes d'exploitation modernes, c'est le noyau + qui gère directement la mise en cache en mémoire des données relatives + aux fichiers. C'est une fonctionnalité puissante, et les systèmes + d'exploitation s'en acquittent fort bien pour la plus grande partie. + Considérons par exemple, dans le cas de Linux, la différence entre le + temps nécessaire à la première lecture d'un fichier et le temps + nécessaire à sa deuxième lecture;

    + +
    +colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.065s
    +user    0m0.000s
    +sys     0m0.001s
    +colm@coroebus:~$ time cat testfile > /dev/null
    +real    0m0.003s
    +user    0m0.003s
    +sys     0m0.000s
    +
    + +

    Même pour ce petit fichier, il y a une grande différence entre les + temps nécessaires pour lire le fichier. Ceci est du au fait que le + noyau a mis en cache le contenu du fichier en mémoire.

    + +

    Du fait de toujours pouvoir disposer de mémoire système, vous pouvez + être assuré qu'il y aura de plus en plus de contenus de fichiers stockés + dans ce cache. Ceci peut s'avérer une méthode de mise en cache en mémoire + très efficace, et ne nécessite aucune configuration supplémentaire + d'Apache.

    + +

    De plus, comme le système d'exploitation sait si des fichiers + ont été + supprimés ou modifiés, il peut effacer automatiquement des contenus de + fichiers du cache lorsque cela s'avère nécessaire. Ceci constitue un gros + avantage par rapport à la mise en cache en mémoire d'Apache qui n'a + aucune possibilité de savoir si un fichier a été modifié.

    +
    + +

    En dépit des performances et des avantages de la mise en cache + automatique par le système d'exploitation, la mise en cache en mémoire + peut être effectuée plus efficacement par Apache dans certaines + circonstances.

    + +

    En premier lieu, un système d'exploitation ne peut mettre en cache que + les fichiers dont il a connaissance. Si vous exécutez Apache en tant que + serveur mandataire, les fichiers que vous mettez en cache ne sont pas + stockés en local mais sur un serveur distant. Si vous voulez tout de même + bénéficier de la vitesse incomparable procurée par la mise en cache en + mémoire, la mise en cache propre à Apache sera nécessaire.

    + +
    + Mise en cache à l'aide de la directive MMapFile + +

    La directive MMapFile + fournie par le module mod_file_cache vous permet de + demander à Apache de charger un contenu de fichier statique en mémoire + lors de son démarrage (à l'aide de l'appel système mmap). Apache + utilisera le contenu chargé en mémoire pour satisfaire ultérieurement + toutes les demandes d'accès à ce fichier.

    + + +
    MMapFile /usr/local/apache2/htdocs/index.html
    +
    + +

    Comme dans le cas de la directive + CacheFile, toute + modification du fichier ne sera plus prise en compte par Apache une fois + ce dernier démarré.

    + +

    La directive + MMapFile ne gardant + pas la trace de la quantité de mémoire qu'elle alloue, vous devez prendre + garde de ne pas en abuser. Chaque processus enfant d'Apache utilisant + sa propre réplique de la mémoire allouée, il est donc d'une importance + critique de s'assurer que les fichiers chargés ne sont pas d'une taille + trop importante afin d'épargner au système l'utilisation du swap.

    +
    + +
    + Mise en cache à l'aide du module mod_mem_cache + +

    Le module mod_mem_cache propose une mise en cache en + mémoire intelligente du point de vue du protocole HTTP. Il utilise aussi + directement le "tas" de la mémoire, ce qui signifie que même si + MMap n'est pas supporté par votre système, + mod_mem_cache pourra quand-même effectuer + la mise en cache.

    + +

    La mise en cache selon cette méthode est activée comme suit :

    + +
    +# Activation de la mise en cache en mémoire
    +CacheEnable mem /
    +
    +# Limite la taille du cache à 1 Mégaoctet
    +MCacheSize 1024
    +
    +
    +
    + +
    + Mise en cache sur disque + + + + mod_disk_cache + + + CacheEnable + CacheDisable + + + +

    Le module mod_disk_cache fournit un mécanisme de mise + en cache sur disque au module mod_cache. Comme dans le cas + du module mod_mem_cache, cette mise en cache est + intelligente et le contenu ne sera servi qu'à partir du cache tant qu'il + sera considéré comme valide.

    + +

    Typiquement, le module sera configuré comme suit :

    + + +
    +CacheRoot   /var/cache/apache/
    +CacheEnable disk /
    +CacheDirLevels 2
    +CacheDirLength 1
    +
    + +

    Il est important de savoir que, les fichiers mis en cache étant stockés + localement, la mise en cache par l'intermédiaire du système d'exploitation + sera en général aussi appliquée à leurs accès. Si bien que même si les + fichiers sont stockés sur disque, s'il font l'objet d'accès fréquents, + il est probable que le système d'exploitation s'appliquera à ce qu'ils + soient servis à partir de la mémoire.

    + +
    + Comprendre le stockage dans le cache + +

    Pour stocker des entités dans le cache, + le module mod_disk_cache crée une empreinte (hash) de 22 + caractères de l'URL qui a fait l'objet d'une requête. Cette empreinte + comprend le nom d'hôte, le protocole, le port, le chemin et tout argument + de type CGI associé à l'URL, afin d'être sur que plusieurs URLs + n'interfèrent pas entre elles.

    + +

    Chaque position de l'empreinte peut contenir un caractère + choisi parmi 64 caractères différents, il y a donc + 64^22 possibilités pour une empreinte. Par exemple, une URL peut posséder + l'empreinte xyTGxSMO2b68mBCykqkp1w. Cette empreinte est + utilisée pour préfixer les noms de fichiers spécifiques à cette URL à + l'intérieur du cache; cependant, elle est tout d'abord placée dans les + répertoires du cache selon les directives + CacheDirLevels et + CacheDirLength.

    + +

    La directive + CacheDirLevels + définit le nombre de niveaux de sous-répertoires, et + CacheDirLength + le nombre de caractères composant le nom des sous-répertoires. Dans + l'exemple donné plus haut, l'empreinte se trouvera à : + /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w.

    + +

    Cette technique a pour but principal de réduire le nombre de + sous-répertoires ou de fichiers contenus dans un répertoire particulier, + car le fonctionnement de la plupart des systèmes de fichiers est ralenti + quand ce nombre augmente. Avec la valeur "1" pour la directive + CacheDirLength, + il peut y avoir au plus 64 sous-répertoires à un niveau quelconque. + Avec la valeur "2", il peut y en avoir 64 * 64, etc... + A moins d'avoir une bonne raison pour ne pas le faire, l'utilisation de + la valeur "1" pour la directive + CacheDirLength + est recommandée.

    + +

    Le paramétrage de la directive + CacheDirLevels + dépend du nombre de fichiers que vous pensez stocker dans le cache. + Avec une valeur de "2" comme dans l'exemple donné plus haut, + 4096 sous-répertoires peuvent être créés au total. Avec 1 million de + fichiers dans le cache, cela équivaut à environ 245 URLs mises en cache + dans chaque répertoire.

    + +

    Chaque URL nécessite au moins deux fichiers dans le cache. Ce sont en + général un fichier ".header", qui contient des meta-informations à propos + de l'URL, comme la date de son arrivée à expiration, + et un fichier ".data" qui est la copie exacte du contenu à servir.

    + +

    Dans le cas d'un contenu négocié via l'en-tête "Vary", un répertoire + ".vary" sera créé pour l'URL en question. Ce répertoire contiendra de + multiples fichiers ".data" correspondant aux différents contenus + négociés.

    +
    + +
    + Maintenance du cache sur disque + +

    Bien que le module mod_disk_cache supprime un contenu + du cache lorsqu'il est arrivé à expiration, il ne maintient aucune + information à propos de la taille totale du cache ou de l'espace restant + disponible.

    + +

    Par contre l'utilitaire + htcacheclean fourni avec Apache + vous permet, comme son nom l'indique, de nettoyer le cache périodiquement. + Déterminer la fréquence à laquelle lancer htcacheclean et la taille souhaitée + pour le cache est une tâche relativement complexe et il vous faudra de + nombreux essais et erreurs pour arriver à sélectionner des valeurs + optimales.

    + +

    htcacheclean opère selon deux + modes. Il peut s'exécuter comme démon résident, ou être lancé + périodiquement par cron. htcacheclean peut mettre une heure + ou plus pour traiter de très grands caches (plusieurs dizaines de + Gigaoctets) et si vous l'exécutez à partir de cron, il vous est + conseillé de déterminer la durée typique d'un traitement, afin d'éviter + d'exécuter plusieurs instances à la fois.

    + +

    +
    + Figure 1: Croissance + typique du cache / séquence de nettoyage.

    + +

    Comme mod_disk_cache ne tient pas compte de l'espace + utilisé dans le cache, vous devez vous assurer que + htcacheclean est configuré de + façon à laisser suffisamment d'"espace de croissance" + à la suite d'un nettoyage.

    +
    + +
    + +
    diff --git a/docs/manual/caching.xml.meta b/docs/manual/caching.xml.meta new file mode 100644 index 00000000000..c6ba0165a9e --- /dev/null +++ b/docs/manual/caching.xml.meta @@ -0,0 +1,14 @@ + + + + + caching + / + . + + + en + fr + tr + + diff --git a/docs/manual/caching.xml.tr b/docs/manual/caching.xml.tr new file mode 100644 index 00000000000..430ed6613f9 --- /dev/null +++ b/docs/manual/caching.xml.tr @@ -0,0 +1,729 @@ + + + + + + + + + + + Önbellek Kullanım Kılavuzu + + +

    Bu belge mod_cache, + mod_disk_cache, mod_mem_cache, + mod_file_cache modülleri ve htcacheclean için bir başvuru + kılavuzu niteliğindedir. HTTP sunucusu ve vekil olarak çalışmada + işlemleri hızlandırmak için bilinen sorunlar ve yanlış + yapılandırmalardan kaçınarak Apache’nin önbellekleme özelliklerinin + nasıl kullanılacağı açıklanmıştır.

    +
    + +
    + Giriş + +

    Apache HTTP sunucusunun 2.2 sürümünden itibaren + mod_cache ve mod_file_cache modülleri + deneysel olmaktan çıkarılmış ve üretim amaçlı kullanılabileceğine karar + verilmiştir. Bu önbellekleme mimarileri gerek HTTP sunucusu gerekse + vekili olarak çalışmada HTTP işlemlerini hızlandırmak anlamında sunucuya + güç katarlar.

    + +

    mod_cache, ortam sağlayıcı modülleri olan + mod_mem_cache ve mod_disk_cache ile + birlikte HTTP önbelleklemesini akıllıca yerine getirir. İçeriğin kendisi + önbellekte saklanırken mod_cache içeriğin + önbelleklenebilmesini denetim altında tutan HTTP başlıkları ve + seçenekleri ile ilgilenir. Yerel ve vekalet edilen içeriğin her ikisinin + de aynı anda işlem görmesi sağlanabilir. mod_cache, + vekalet edilen içeriğe, devingen yerel içeriğe veya zamanla değişen + yerel dosyalara erişimi hızlandırma ihtiyacına yönelik olarak hem basit + hem de karmaşık önbellekleme yapılandırmalarını mümkün kılar.

    + +

    mod_file_cache ise biraz daha temel ancak bazen daha + kullanışlı olabilen bir önbellekleme şekli ile ilgilenir. URL’lerin + önbelleklenebilmesini mümkün kılmanın karmaşıklığıyla boğuşmak yerine + mod_file_cache, dosyaların Apache’nin son başlatıldığı + zamanki durumlarını saklamak için dosyaların belleğe eşlenmek üzere ele + alınmasını sağlar. Böylelikle, mod_file_cache, çok sık + değişmeyen durağan yerel dosyalara erişim zamanını azaltmaya yardım + eder.

    + +

    CacheFile ve MMapFile yönergeleri ile ilgili + bölümlerde anlatılanları saymazsak mod_file_cache, bu + belgenin asıl konusu olan mod_cache önbellekleme + mimarisine göre daha basit bir önbellekleme gerçeklenimidir.

    + +

    Bu belgeden azami yararı sağlayabilmek için temel bir HTTP bilginizin + olması ve URL’lerin Dosya Sistemine + Eşlenmesi ile İçerik Uzlaşımı + belgelerini okumuş olmanız gerekir.

    + +
    + +
    + + Önbelleklemeye Bir Bakış + + + + mod_cache + mod_mem_cache + mod_disk_cache + mod_file_cache + + + CacheEnable + CacheDisable + MMapFile + CacheFile + UseCanonicalName + CacheNegotiatedDocs + + + +

    Bir istek sonuçlanıncaya kadar mod_cache modülünde iki + aşamadan geçer. İlkinde mod_cache bir URL eşleme modülü + olarak çalışır ve URL önbellekteyse ve zaman aşımına uğramamışsa isteğin + doğrudan mod_cache tarafından sunulmasını sağlar.

    + +

    Yani isteğin sunumu sırasında, isteğin örneğin, + mod_proxy veya mod_rewrite tarafından + ele alınması gerekse bile bu yapılmaz. Önbelleklenen içerik ilk alındığı + haliyle sunulur.

    + +

    Eğer URL önbellekte yoksa, mod_cache isteği bir süzgece tabi tutar. Apache içeriğin varlığını + saptamışsa içeriğin süzgeç tarafından sunulmasını sağladıktan sonra, + süzgeç içeriğin önbelleklenebileceğini saptamışsa gelecekte sunmak üzere + içeriği önbelleğe kaydeder.

    + +

    Eğer URL önbellekte bulunmuş fakat içeriğin zaman aşımına uğradığı + anlaşılmışsa süzgeç yine de eklenir fakat bu kez + mod_cache önbellekteki sürümün hala geçerli olup + olmadığını saptamak için kaynağın bulunduğu sunucuya bir koşullu istek + gönderir. Önbellekteki sürüm hala geçerliyse temel verileri güncellenir + ve istek önbellekten sunulur. Önbellekteki sürüm artık geçerli değilse, + önbellekteki sürüm silinir ve süzgeç güncel içeriği önbelleğe kaydeder + ve isteği oradan sunar.

    + +
    + Önbelleğin Hızlandırılması + +

    Yerel içerik önbelleklendiği takdirde UseCanonicalName yönergesine On + değeri atanmışsa önbellekten sunulan sayfa sayısında büyük bir artış + olduduğu görülür. Bunun sebebi içeriği sunan sanal konağın isminin + önbellek anahtarının bir parçası olarak kullanılmasıdır. Yönergeye + On değerini atamak suretiyle çok isimli ve rumuzlu sanal + konaklar için farklı önbellek girdileri oluşturulmaz, bunun yerine her + meşru sanal konak için ayrı bir önbellek tutulur.

    + +

    Önbellekleme, URL’nin dosya ismine dönüştürülmesi aşamasında + gerçekleştiğinden önbelleklenen belgeler sadece URL isteklerine bir + yanıt olarak sunulurlar. Sunucu Taraflı + İçerikleri kullanmazsanız genellikle bunun fazla bir önemi + olmaz.

    + + + <!-- Bu içerik önbelleklenebilir. -->
    + <!--#include virtual="/dipnot.html" -->
    +
    + <!-- Bu içerik önbelleklenemez. -->
    + <!--#include file="/bir/yol/dipnot.html" --> +
    + +

    Sunucu Taraflı İçerikleri kullanıyorsanız ve önbelleklemenin + sağladığı hız artışından da yaralanmak istiyorsanız içerik + yerleştirmek için virtual içerik türünü kullanınız.

    +
    + +
    + Zaman Aşımı Süreleri + +

    Önbellekli öğeler için öntanımlı zaman aşımı süresi bir saat olmakla + birlikte CacheDefaultExpire + yönergesi kullanılarak bu değer kolaylıkla geçersiz kılınabilir. Bu + öntanımlı değer sadece içeriğin özgün kaynağı bir zaman aşımı süresi + veya son değişiklik tarihi belirtmediği takdirde kullanılır.

    + +

    Bir yanıt Expires başlığını değil de + Last-Modified başlığını içeriyorsa + mod_cache zaman aşımı süresini CacheLastModifiedFactor yönergesinin + nasıl kullanıldığına bakarak saptar.

    + +

    Yerel içerik için, zaman aşımı süresini hassas olarak ayarlamak + gerekirse mod_expires kullanılabilir.

    + +

    Zaman aşımı süresinin üst sınırı CacheMaxExpire yönergesi ile + belirlenebilir.

    + +
    + +
    + Şartlı İstekler için Özlü Kılavuz + +

    Önbellekteki içerik zaman aşımına uğrayıp, içerik sağlayıcıya veya + arka sunucuya özgün isteği aktarmak yerine ayrı bir istek yapılması + gereği Apache’nin şartlı bir istek yapması sonucunu doğurur.

    + +

    Bir istemcinin veya önbelleğin aynı içeriğin farklı sürümleri + arasında ayrım yapabilmesi için HTTP protokolü bazı başlık alanları + önerir. Örneğin, "Etag:" başlığıyla sunulan bir özkaynak için + "If-None-Match:" başlığıyla bir şartlı istek yapmak mümkün olduğu gibi + özkaynak "Last-Modified:" başlığıyla sunuluyorsa şartlı istek + "If-Modified-Since:" başlığıyla yapılabilir, vesaire.

    + +

    Böyle bir şartlı istek yapıldığında yanıt koşulun içerikle eşleşip + eşleşmediğine bağlı olarak farklı olur. Eğer istek bir + "If-Modified-Since:" başlığıyla yapılmışsa ve içerik istekte + belirtilen zamandan önce değiştirilmemişse kısa ve öz olarak bir "304 + Not Modified" (Bir değişiklik yok) iletisiyle yanıt verilir.

    + +

    Aksi takdirde bir şartlı istek yapılmamış gibi içeriğin kendisi + sunulur.

    + +

    Önbellekleme ile ilgili şartlı istekler çifte yarar sağlar. Birinci + olarak, böyle bir istek arkadaki sunucuya yapılıyorsa ve iki içerik de + aynıysa bunu saptamak kolay olur ve özkaynağın tamamını aktarma + külfetinden kurtulunur.

    + +

    İkinci olarak, şartlı istekler arka sunucuda normalden daha az + faaliyete sebep olur. Durağan dosyalar için bu genellikle + stat() veya benzeri bir sistem çağrısıyla dosya + boyutları ve değişiklik zamanına bakmak şeklinde gerçekleşir. + Böylelikle Apache yerel içeriği önbellekliyor olsa bile ve hatta + içerik zaman aşımına da uğrasa önbellekteki dosyada bir değişiklik + olmadığı takdirde içeriği önbellekten sunmak daha hızlı olacaktır. + Çünkü dosyayı önbellekten okumak, arka sunucudan okumaktan daha + hızlıdır (bu, bellekten okumayla diskten okumayı karşılaştırmak + gibidir).

    +
    + +
    + Neler Önbelleklenebilir? + +

    Evvelce bahsedildiği gibi Apache’de iki tür önbellekleme yapılır ve + bunlar farklı yöntemlerle çalışır. mod_file_cache + önbelleklemesinde dosyalar Apache başlatıldığı zamanki içerikle + saklanır. Bu modül tarafından önbelleğe alınmış bir dosya için istek + geldiğinde isteğin yolu kesilip önbellekteki dosya sunulur.

    + +

    mod_cache önbelleklemesinde işler biraz daha + karışıktır. Bir isteğe hizmet sunulurken istenen içerik evvelce + önbelleklenmemişse önbellekleme modülü önce içeriğin + önbelleklenebilirliğine bakar. Bir yanıtın önbelleklenebilirliğini + belirleyen koşullar şunlardır:

    + +
      +
    1. Önbellekleme bu URL ile etkin kılınabilmelidir. CacheEnable ve CacheDisable yönergelerine bakınız.
    2. + +
    3. Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.
    4. + +
    5. İstek bir HTTP GET isteği olmalıdır.
    6. + +
    7. İstek bir "Authorization:" başlığı içeriyorsa yanıt önbelleğe + alınmayacaktır.
    8. + +
    9. Eğer yanıt bir "Authorization:" başlığı içeriyorsa ayrıca + "Cache-Control:" başlığında da "s-maxage", "must-revalidate" veya + "public" değerlerinden birini içermelidir.
    10. + +
    11. Eğer URL (GET yöntemi kullanan bir HTML formunun yaptığı gibi) bir + sorgu dizgesi içeriyorsa yanıt, RFC2616’nın 13.9 ve 13.2.1. + bölümünde açıklandığı gibi max-age veya s-maxage değerli bir + "Cache-Control:" başlığı veya "Expires:" başlığı ile açıkça bir + zaman aşımı içermedikçe yanıt içeriği önbelleğe alınmayacaktır.
    12. + +
    13. CacheIgnoreNoLastMod + yönergesinin kullanımını gerektiren bir durum olmadıkça 200 durum + koduna sahip bir yanıtın "Etag", "Last-Modified" ve "Expires" + başlıklarından en az birini ya da max-age veya s-maxage değerli bir + "Cache-Control:" başlığını içermesi gerekir.
    14. + +
    15. CacheStorePrivate + yönergesinin kullanımını gerektiren bir durum olmadıkça yanıt + "private" değerli bir "Cache-Control:" başlığı içerdiği takdirde + yanıtın içeriği önbelleğe alınmayacaktır.
    16. + +
    17. Benzer şekilde, CacheStoreNoStore yönergesi kullanılmamışsa yanıt + "no-store" değerli bir "Cache-Control:" başlığı içeriyorsa yanıt + içeriği önbelleğe alınmayacaktır.
    18. + +
    19. Herşeyle eşleşen "*" değerli bir "Vary:" başlığı içeren bir + yanıtın içeriği önbelleğe alınmaz.
    20. +
    +
    + +
    + Neler Önbelleklenmemeli? + +

    Kısaca, istek zamana aşırı bağımlıysa ya da istek kısmen bile olsa + HTTP uzlaşımıyla bağdaşmıyorsa önbelleğe alınmamalıdır.

    + +

    İçeriği istekçinin IP adresine bağlı olarak değişen veya her beş + dakikada bir değişikliğe uğrayan bir devingen içeriğe sahipseniz böyle + bir içerik asla önbelleğe alınmamalıdır.

    + +

    Diğer taraftan, içerik HTTP başlığındaki değerlere bağlı olarak + değişiyorsa içeriğin bir "Vary" başlığı kullanılarak akıllıca + önbelleklenmesi imkanı mevcuttur.

    +
    + +
    + Değişken/Uzlaşımlı İçerik + +

    "Vary" başlıklı bir yanıt arka sunucudan istenirken + mod_cache tarafından alınmışsa akıllıca ele alınmaya + çalışılacaktır. Mümkünse, mod_cache gelecekte bu + içerikle ilgili isteklerin "Vary" başlıklı yanıtları olacağını + saptayacak ve önbellekten doğru içerikle yanıt verecektir.

    + +

    Örneğin, bir yanıt şöyle bir başlık ile alınmışsa,

    + + + Vary: negotiate,accept-language,accept-charset + + +

    mod_cache sadece accept-language ve accept-charset + başlıkları özgün istekle eşleşen önbellekli içeriği sunacaktır.

    +
    + +
    + +
    + Güvenlik Kaygıları + +
    + Erişim Denetimi ve Yetkilendirme + +

    mod_cache çoğunlukla bir karşı vekile sahip olmak + amacıyla kullanılır. Arka sunucunun sorgulanmasını gerektirmeyen tüm + istekler önbellekleme modülü tarafından karşılanacaktır. Yerel + özkaynakların önbelleklenmesi söz konusu olduğunda Apache’nin güvenlik + modeli büyükçe bir değişikliğe uğrar.

    + +

    Olası .htaccess dosyalarının dosya sisteminin tamamında + taranması çok pahalı bir işlem olduğundan mod_cache, + (işlemi hızlandırmak için) önbelleğe almanın temel amacını kısmen + gözardı ederek, önbellekteki içeriğin sunumu için gerekli + yetkilendirmenin olup olmadığı konusunda bir karar üretmez. Başka bir + deyişle, eğer mod_cache bir kısım içeriği önbelleğe + almışsa içerik zaman aşımına uğramadığı sürece bu içerik önbellekten + sunulacaktır.

    + +

    Örneğin, yapılandırmanız bir özkaynağa IP adresine göre erişime izin + veriyorsa bu içeriğin önbelleğe alınmayacağından emin olmalısınız. + Bunu CacheDisable + yönergesini veya mod_expires kullanarak + yapabilirsiniz. Bunu yapmaz, olayı kendi haline bırakırsanız + mod_cache bir karşı vekil gibi çalışarak sunulan her + içeriği arabelleğe alacak ve hangi IP adresinden gelirse gelsin her + istemciye bunu sunacaktır.

    +
    + +
    + Yerel İstismarcılar + +

    Son kullanıcılarıın isteklerine önbellekten hizmet sunulduğundan + önbelleğin kendisi içerikle etkileşime geçmek isteyenlerin veya + içeriği tahrif etmek isteyenlerin hedefi haline gelebilir. Apache’yi + çalıştıran kullanıcı tarafından her zaman önbelleğe yazılabileceğini + akıldan çıkarmamak önemlidir. Bu durumda alışılmışın tersine tüm + içeriğin Apache kullanıcısı tarafından yazılamamasının sağlanması + önerilir.

    + +

    Eğer Apache kullanıcısı, örneğin bir CGI sürecindeki açık nedeniyle + tehlikeye atılırsa, önbellek hedef alınabilir. + mod_disk_cache kullanılırken önbellekteki bir öğeyi + değiştirmek veya önbelleğe yeni bir öğe eklemek görece daha + kolaydır.

    + +

    Bu risk, Apache kullanıcısını kullanan diğer saldırı türleriyle + karşılaştırıldığında daha yüksektir. mod_disk_cache + kullanıyorsanız şunları aklınızdan çıkarmayın: (1) Apache güvenlik + güncellemelerini takip edin ve sunucunuzu buna göre güncelleyin. (2) + Mümkünse suEXEC kullanarak CGI süreçlerini + Apache kullanıcısı olmayan bir kullanıcının aidiyetinde çalıştırın.

    + +
    + +
    + Önbellek Zehirlenmeleri + +

    Apache bir önbellekli vekil sunucu olarak çalıştığında önbellek + zehirlenmesi adı verilen sorunla karşılaşılma olasılığı vardır. + Önbellek zehirlenmesi, vekil sunucunun arka sunucudan yanlış (ve + genellikle istenmeyen) içerik almasına sebep olan bir saldırı türünü + betimlemek için yaygın olarak kullanılan bir terimdir.

    + +

    Örneğin Apache’nin çalıştığı sistemin kullandığı DNS sunucuları DNS + önbellek zehirlenmesinden etkilenebilecek durumdaysa, bir saldırgan + Apache’nin istekleri almak için başvuracağı kaynak sunucunun yerini + değiştirebilir. Diğer bir örnek, HTTP istek kaçakçılığı adı verilen + bir saldırı türüdür.

    + +

    Bu belge HTTP istek kaçakçılığını derinliğine incelenmesi için uygun + yer değildir (böyle kaynaklara arama motorunuzla erişebilirsiniz). + Bununla birlikte, vekil tarafından kaynak sunucudan alınan içeriği + tamamen denetim altına almak amacıyla kaynak sunucudaki bir açığı + istismar etmeye yönelik bir dizi istek yapılabileceğinin olasılık + dahilinde olduğunu bilmenizde yarar vardır.

    +
    +
    + +
    + Dosya Tanıtıcı Önbelleklemesi + + + + mod_file_cache + mod_mem_cache + + + CacheFile + CacheEnable + CacheDisable + + + +

    Bir dosyanın açılması işlemi, özellikle de ağ dosya sistemlerinde + bulunan dosyalar için önemli bir gecikme kaynağı olabilir. Önbellekte, + çok sunulan dosyaların kendilerinin değil, açık dosya tanıtıcılarının + saklanması Apache’yi bu tür gecikmelerden koruyabilir. Apache’de iki tür + dosya tanıtıcı önbelleklemesi yapılabilmektedir.

    + +
    + <code>CacheFile</code> yönergesi ile + +

    Apache’de mevcut önbelleklemenin en temel şekli + mod_file_cache tarafından sağlanan dosya tanıtıcı + önbelleklemesidir. Bu önbellek türü dosyaların kendilerini değil açık + dosya tanıtıcılarının bir listesini saklar. Dosyaların bu anlamda + önbelleklenmesi, CacheFile yönergesi yapılandırma dosyasında belirtilerek + sağlanabilir.

    + +

    CacheFile yönergesi + belirtilen dosyanın Apache başlatıldığında açılmasını ve dosya için + yapılan sonraki her istekte bu dosya tanıtıcısının kullanılmasını + sağlar.

    + + + CacheFile /usr/local/apache2/htdocs/index.html + + +

    Büyük miktarda dosyayı bu anlamda önbelleklemeyi tasarlıyorsanız + işletim sisteminizin açık dosya tanıtıcılarının sayısı ile ilgili + sınırlamasını uygun bir değere ayarlamanız gerekebilir.

    + +

    CacheFile yönergesini + kullandığınız takdirde dosya içeriğindeki değişiklikleri anında isteğe + yansıtamazsınız. Apache dosyayı ilk başlatıldığındaki haliyle + sunar.

    + +

    Eğer Apache çalışırken dosya silinmişse Apache ilk başlatıldığındaki + haline ilişkin dosya tanıtıcıyı sağlamaya ve dolayısıyla dosya + içeriğini sunmaya devam edecektir. Yani, dosya silinmiş ve artık dosya + sisteminde görünmüyor olsa bile Apache durdurulup dosya tanıtıcıları + kapanmadıkça dosyaların silinmesiyle açılan yer serbest + kalmayacaktır.

    +
    + +
    + <code>CacheEnable</code> yönergesi ile + +

    mod_mem_cache modülünün ayrıca, CacheEnable yönergesi üzerinden etkin + kılınabilen kendine özgü bir dosya tanıtıcı önbellekleme şeması + vardır.

    + + + CacheEnable fd / + + +

    mod_cache’nin devreye girdiği her işlemde olduğu + gibi bu tür dosya tanıtıcı önbelleklemesi de akıllıca yapılır ve + önbellekteki içerik zaman aşımına uğradığı halde sunulmaya devam + edilmez.

    +
    +
    + +
    + Sistem Belleğinde Önbellekleme + + + + mod_mem_cache + mod_file_cache + + + CacheEnable + CacheDisable + MMapFile + + + +

    İçeriğin sistem belleğinden sunulması içerik sunmanın evrensel olarak + en hızlı yoludur. Dosyaların bir disk denetleyiciden okunması ya da daha + kötüsü uzak bir ağdan okunması bellekten okumayla karşılaştırılamayacak + ölçüde yavaş işlemlerdir. Disk denetleyiciler genellikle fiziksel + süreçleri denetlerler. Ağ erişimi ise band genişliği sınırlamalarından + etkilenir. Halbuki bellek erişimi sadece nano saniyeler mertebesinde + gerçekleşir.

    + +

    Sistem belleği en pahalı saklama ortamı olması sebebiyle en verimli + şekilde kullanımı önemlidir. Dosyaları sistem belleğinde saklamakla + sistemin kullanabileceği bellek miktarını azaltmış olursunuz. İşletim + sistemi önbelleklemesinde göreceğiniz gibi bu öyle basit bir konu + değildir. Apache’nin kendi kullandığı belleğin bir kısmını önbellek + olarak ayırırken çok fazla bellek kullanmamak önemlidir. Aksi takdirde + işletim sistemi belleğin yetmediği noktada belleği diske + takaslayacağından istenen başarım artışı sağlanamayacaktır.

    + +
    + İşletim Sistemi Önbelleklemesi + +

    Günümüz iştetim sistemlerinin hemen hemen tamamında bellek içi + dosya/veri saklama işlemlerini çekirdek yönetir. Bu güçlü bir + özelliktir ve işletim sistemlerinin büyük çoğunluğu bunu böyle yapar. + Örneğin, Linux’ta bir dosyanın ilk defa okunduğunda ve ikinci kez + okunduğunda işlemcinin ne kadar meşgul edildiğine bakalım:

    + + + colm@coroebus:~$ time cat testfile > /dev/null
    + real 0m0.065s
    + user 0m0.000s
    + sys 0m0.001s
    + colm@coroebus:~$ time cat testfile > /dev/null
    + real 0m0.003s
    + user 0m0.003s
    + sys 0m0.000s +
    + +

    Küçük bir dosya için bile okuma süresi bakımından büyük fark ortaya + çıkmaktadır. Bunun sebebi çekirdeğin dosya içeriğini bellek daha + güncel amaçlar için lazım olana dek bellek içinde saklamasıdır.

    + +

    Sisteminizde yeterince yedek bellek olduğundan eminseniz, bu + önbellekte daha fazla dosya saklanacağından emin olabilirsiniz. + Bundan, önbelleğin sistem belleğinde verimli biçimde tutulması için + Apache’de ek bir yapılandırmaya gidilmesinin gerekmediği sonucu + çıkarılabilir.

    + +

    Bundan başka, işletim sistemi dosyaların değiştiği ve silindiği + zamanları bildiğinden bu tür dosyaların içerikleri gerektiğinde + önbellekten kendiliğinden silinmiş olur. Bellek içinde dosya saklarken + dosyaların değiştirilme zamanlarını bilme olanağı olmadığından bu + durum Apache’ye büyük yarar sağlar.

    +
    + +

    İşletim sisteminin dosyaların önbelleklenmesi için sağladığı bunca + yarara ve başarım artışına karşın bellek içinde dosya önbelleklemenin + Apache tarafından yerine getirilmesinin daha iyi olacağı bazı durumlar + vardır.

    + +

    Öncelikle, işletim sistemi sadece bildiği dosyaları önbellekler (veya + önbelleklediği dosyaları bilir). Eğer Apache’yi bir vekil sunucu olarak + çalıştırıyorsanız, önbelleklediğiniz dosyalar yerel olarak saklanmadan + uzaktan sunulabilir. Ancak bellekiçi önbelleklemenin sağladığı hız + artışının dayanılmaz çekiciliğine karşı koyamıyorsanız, Apache’nin kendi + bellekiçi önbelleklemesine ihtiyacınız var demektir.

    + +
    + <code>MMapFile</code> yönergesi ile + +

    mod_file_cache modülü, bir durağan dosyanın + içeriğini sunucunun başlatılması sırasında (mmap sistem çağrısıyla) + belleğe eşlenmesini mümkün kılmak için MMapFile yönergesini sağlar. + Apache bu dosyaya gelecek sonraki istekler için dosyanın bellekiçi + içeriğini kullanacaktır.

    + + + MMapFile /usr/local/apache2/htdocs/index.html + + +

    CacheFile yönergesinde + olduğu gibi bu dosyalarda Apache başlatıldıktan sonra yapılacak bir + değişiklikten Apache’nin haberi olmayacaktır.

    + +

    MMapFile yönergesi + ayırdığı belleğin toplam miktarı ile ilgilenmez, dolayısıyla + yönergenin aşırı kullanımından kaçınmalısınız. Apache’nin çocuk + süreçlerinin her biri bu belleğin kendilerine ait birer kopyasını + yapacağından belleğe eşlenen dosyaların çok yer kaplamaması büyük önem + taşımaktadır; aksi takdirde işletim sistemi belleği diske + takaslayacağından beklenen fayda sağlanamayacaktır.

    +
    + +
    + <code>mod_mem_cache</code> modülü ile + +

    mod_mem_cache modülü HTTP belirtimine uygun olarak + bellekiçi önbelleklemeyi akıllıca uygular. Ayrıca yüksek belleği + doğrudan kullanabildiğinden MMap desteği olmayan + sistemlerde bile bellekiçi önbellekleme yapabilir.

    + +

    Bu tür önbellekleme şöyle etkin kılınabilir:

    + + + # Bellekiçi önbelleklemeyi etkin kılalım
    + CacheEnable mem /
    +
    + # Önbellek 1 Megabayttan büyük olmasın
    + MCacheSize 1024 +
    +
    +
    + +
    + Disk Üzerinde Önbellekleme + + + + mod_disk_cache + + + CacheEnable + CacheDisable + + + +

    mod_disk_cache modülü önbelleklemenin + mod_cache için disk üzerinde yapılmasını mümkün kılar. + mod_mem_cache modülünde olduğu gibi bu önbellekleme de + akıllıca yapılır ve önbellekteki içerik sadece geçerli kabul edildiği + sürece sunulabilir.

    + +

    Modül bu amaçla genelde şöyle kullanılır:

    + + + CacheRoot /var/cache/apache/
    + CacheEnable disk /
    + CacheDirLevels 2
    + CacheDirLength 1 +
    + +

    En önemlisi önbelleklenen dosyaların yerel olarak saklanması olup + işletim sisteminin sağladığı bellekiçi önbelleklemeden de ayrıca + faydalanılmış olur. Bu bakımdan, dosyalar disk üzerinde saklansa bile + sıkça erişilen dosyalar işletim sistemi sayesinde aslında bellekten + sunulmuş olacaklardır.

    + +
    + Önbellekte Saklamanın Anlamı + +

    mod_disk_cache öğeleri önbellekte saklamak için + istek yapılan URL’nin 22 karakterlik özetini oluşturur. Bu özet, çok + sayıda URL’nin aynı özeti oluşturmaması için konak ismi, protokol, + port ve varsa CGI argümanlarından oluşur.

    + +

    Özeti oluşturan karakterler 64 karakterlik bir karakter kümesinden + seçildiğinden oluşturulması olası farklı özet sayısı 64^22’dir. + Örneğin, bir URL’nin xyTGxSMO2b68mBCykqkp1w gibi bir + özeti olabilir. Bu özet, bu URL ile erişilen dosyalar önbellek içinde + saklanırken dosya ismi öneki olarak kullanılır. Ancak bununla + yetinilmez ve içerik CacheDirLevels ve CacheDirLength yönergelerinin + değerlerine göre önce dizinlere ayrılır.

    + +

    CacheDirLevels + yönergesi kaç alt seviye dizin olacağını belirler. Örneğin, yukarıdaki + özete sahip bir dosyanın isminin başına yukarıdaki yapılandırma + örneğine uygun olarak + /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w gibi bir önek + getirilebilirdi.

    + +

    Bu tekniğin asıl amacı belli bir dizin içinde bulunabilecek + dosyaların ve alt dizinlerin sayısını düşük tutmaktır. Bu sayının + büyük olması çoğu işletim sisteminde başarımın düşmesine sebep olur. + CacheDirLength + yönergesi "1" değeriyle kullanıldığında her dizin altında en fazla 64 + alt dizin veya dosya açılabilir. "2" değeriyle kullanıldığında ise bu + sayı 64^2’ye yükselir ve böyle artarak gider. İyi bir sebebiniz + olmadıkça CacheDirLength için değer olarak + "1" belirtmenizi öneririz.

    + +

    CacheDirLevels + yönergesine atanacak değer önbellekte saklamayı düşündüğünüz olası + dosya sayısı ile ilgilidir. Yukarıdaki örnekte olduğu gibi "2" + değerini belirtirseniz, toplamda en fazla 4096 dizin oluşturulabilir. + 1 milyon dosyanın önbelleklendiği bir durumda bu, her dizinde yaklaşık + olarak 245 önbelleklenmiş URL demektir.

    + +

    Her URL için önbellekte en az iki dosya saklanır. Biri genellikle URL + hakkındaki temel verilerden oluşan ".header" dosyasıdır, diğeri ise + sunulacak içeriğin bire bir kopyası olan ".data" dosyasıdır.

    + +

    "Vary" başlığı üzerinden içeriğin uzlaşıldığı durumda URL için bir + ".vary" dizini oluşturulur. Bu dizin her biri farklı bir uzlaşıma ait + çok sayıda ".data" dosyası içerebilir.

    +
    + +
    + Disk Önbelleğinin Bakımı + +

    mod_disk_cache zaman aşımına uğrayan önbellekli + içeriği silse de önbelleğin toplam boyu ve ne kadar boş bellek kaldığı + hakkında bilgi vermez.

    + +

    Bunun yerine Apache önbellek içeriğini düzenli aralıklarla + temizleyebilmeniz için htcacheclean adında bir araç + içerir. Önbellek için azami ne kadar yer kullanılacağının ve bunun + üzerinde htcacheclean’i hangi sıklıkta + çalıştırılacağının tespiti biraz karmaşık bir işlem olup uygun değerler + genellikle deneme yanılma yoluyla bulunur.

    + +

    htcacheclean iki işlem kipine sahiptir. Kalıcı bir + artalan süreci olarak çalışabileceği gibi cron üzerinden belli + aralıklarla da çalıştırılabilir. Çok büyük (onlarca GB) önbelleklerde + htcacheclean’in işini bitirmesi 1 saatten fazla + sürebileceğinden, cron ile çalıştırma durumunda aynı anda birden fazla + kopyanın çalışıyor durumda olmaması için + htcacheclean’in çalıştırılma aralığını iyi + belirlemek gerekir.

    + +

    +
    + Şekil 1: + Önbelleğin büyümesi ve düzenli aralıklarla temizlenmesi.

    + +

    mod_disk_cache ne kadar önbellek alanı kullandığı + ile ilgili bir bilgi vermediğinden htcacheclean’in + bir temizlik sonrası yeterince büyük bir genişleme alanı kalacak + şekilde yapılandırılması önemlidir.

    +
    + +
    + +
    diff --git a/docs/manual/configuring.html b/docs/manual/configuring.html index 3ec3186dbc5..3a97c489d16 100644 --- a/docs/manual/configuring.html +++ b/docs/manual/configuring.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: configuring.html.de Content-Language: de Content-type: text/html; charset=ISO-8859-1 @@ -6,10 +8,18 @@ Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: configuring.html.ja.euc-jp +URI: configuring.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: configuring.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: configuring.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: configuring.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/configuring.html.de b/docs/manual/configuring.html.de index 27f8106ea67..15d85f1fe02 100644 --- a/docs/manual/configuring.html.de +++ b/docs/manual/configuring.html.de @@ -1,28 +1,40 @@ - -Konfigurationsdateien - Apache HTTP Server +Konfigurationsdateien - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Konfigurationsdateien

    +Apache > HTTP-Server > Dokumentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Konfigurationsdateien

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    +
    Diese Übersetzung ist möglicherweise + nicht mehr aktuell. Bitte prüfen Sie die englische Version auf + die neuesten Änderungen.

    Dieses Dokument beschreibt die Dateien, die zur Konfiguration des Apache HTTP Servers verwendet werden.

    @@ -30,9 +42,9 @@ +
    top

    Hauptkonfigurationsdateien

    @@ -40,15 +52,15 @@

    Der Apache wird konfiguriert, indem Direktiven in einfache Textdateien - eingetragen werden. Die Hauptkonfigurationsdatei heißt - üblicherweise httpd.conf. Der Ablageort dieser Datei + eingetragen werden. Die Hauptkonfigurationsdatei heißt + üblicherweise httpd.conf. Der Ablageort dieser Datei wird bei der Kompilierung festgelegt, kann jedoch mit der - Befehlszeilenoption -f überschrieben werden. Durch + Befehlszeilenoption -f überschrieben werden. Durch Verwendung der Direktive Include - können außerdem weitere Konfigurationsdateien hinzugefügt - werden. Zum Einfügen von mehreren Konfigurationsdateien können + können außerdem weitere Konfigurationsdateien hinzugefügt + werden. Zum Einfügen von mehreren Konfigurationsdateien können Platzhalter verwendet werden. Jede Direktive darf in jeder dieser - Konfigurationsdateien angegeben werden. Änderungen in den + Konfigurationsdateien angegeben werden. Änderungen in den Hauptkonfigurationsdateien werden vom Apache nur beim Start oder Neustart erkannt.

    @@ -61,23 +73,23 @@

    Die Konfigurationsdateien des Apache enthalten eine Direktive pro Zeile. - Der Backslash "\" läßt sich als letztes Zeichen in einer Zeile - dazu verwenden, die Fortsetzung der Direktive in der nächsten Zeile + Der Backslash "\" läßt sich als letztes Zeichen in einer Zeile + dazu verwenden, die Fortsetzung der Direktive in der nächsten Zeile anzuzeigen. Es darf kein weiteres Zeichen oder Whitespace zwischen dem Backslash und dem Zeilenende folgen.

    In den Konfigurationsdateien wird bei den Direktiven nicht zwischen - Groß- und Kleinschreibung unterschieden. Bei den Argumenten der - Direktiven wird dagegen oftmals zwischen Groß- und Kleinschreibung + Groß- und Kleinschreibung unterschieden. Bei den Argumenten der + Direktiven wird dagegen oftmals zwischen Groß- und Kleinschreibung differenziert. Zeilen, die mit dem Doppelkreuz "#" beginnen, werden als - Kommentare betrachtet und ignoriert. Kommentare dürfen + Kommentare betrachtet und ignoriert. Kommentare dürfen nicht am Ende einer Zeile nach der Direktive - eingefügt werden. Leerzeilen und Whitespaces vor einer Direktive + eingefügt werden. Leerzeilen und Whitespaces vor einer Direktive werden ignoriert. Dadurch lassen sich Direktiven zur besseren Lesbarbeit - einrücken.

    + einrücken.

    -

    Sie können die Syntax Ihrer Konfigurationsdateien auf Fehler - prüfen, ohne den Server zu starten, indem Sie apachectl +

    Sie können die Syntax Ihrer Konfigurationsdateien auf Fehler + prüfen, ohne den Server zu starten, indem Sie apachectl configtest oder die Befehlszeilenoption -t verwenden.

    top
    @@ -88,59 +100,59 @@

    Der Apache ist ein modularer Server. Das bedeutet, dass nur die abolute - Grundfunktionalität im Kernserver enthalten ist. Weitergehende - Fähigkeiten sind mittels Modulen verfügbar, - die in den Apache geladen werden können. Standardmäßig - wird bei der Kompilierung ein Satz von Basismodulen (Anm.d.Ü.: die so + Grundfunktionalität im Kernserver enthalten ist. Weitergehende + Fähigkeiten sind mittels Modulen verfügbar, + die in den Apache geladen werden können. Standardmäßig + wird bei der Kompilierung ein Satz von Basismodulen (Anm.d.Ü.: die so genannten Base-Module) in den Server eingebunden. Wenn der - Server für die Verwendung von dynamisch - ladbaren Modulen kompiliert wurde, dann können Module separat - kompiliert und jederzeit mittels der Direktive LoadModule hinzugefügt werden. + Server für die Verwendung von dynamisch + ladbaren Modulen kompiliert wurde, dann können Module separat + kompiliert und jederzeit mittels der Direktive LoadModule hinzugefügt werden. Andernfalls muss der Apache neu kompiliert werden, um Module - hinzuzufügen oder zu entfernen. Konfigurationsanweisungen können - abhängig vom Vorhandensein eines bestimmten Moduls eingesetzt werden, + hinzuzufügen oder zu entfernen. Konfigurationsanweisungen können + abhängig vom Vorhandensein eines bestimmten Moduls eingesetzt werden, indem sie in einen <IfModule>-Block eingeschlossen werden.

    Um zu sehen, welche Module momentan in den Server einkompiliert sind, kann die Befehlszeilenoption -l verwendet werden.

    top
    -

    Der Gültigkeitsbereich von Direktiven

    +

    Der Gültigkeitsbereich von Direktiven

    -

    Direktiven in den Hauptkonfigurationsdateien gelten für den - gesamten Server. Wenn Sie die Konfiguration nur für einen Teil des - Servers verändern möchten, können Sie den - Gültigkeitsbereich der Direktiven beschränken, indem Sie diese +

    Direktiven in den Hauptkonfigurationsdateien gelten für den + gesamten Server. Wenn Sie die Konfiguration nur für einen Teil des + Servers verändern möchten, können Sie den + Gültigkeitsbereich der Direktiven beschränken, indem Sie diese in <Directory>-, <DirectoryMatch>-, <Files>-, <FilesMatch>-, <Location>- oder - <LocationMatch>-Abschnitte eingefügen. + <LocationMatch>-Abschnitte eingefügen. Diese Abschnitte begrenzen die Anwendung der umschlossenen Direktiven auf bestimmte Pfade des Dateisystems oder auf - bestimmte URLs. Sie können für eine fein abgestimmte + bestimmte URLs. Sie können für eine fein abgestimmte Konfiguration auch ineinander verschachtelt werden.

    -

    Der Apache besitzt die Fähigkeit, mehrere verschiedene Websites +

    Der Apache besitzt die Fähigkeit, mehrere verschiedene Websites gleichzeitig zu bedienen. Dies wird virtuelles - Hosten genannt. Direktiven können auch in ihrem - Gültigkeitsgereich eingeschränkt werden, indem sie innerhalb + Hosten genannt. Direktiven können auch in ihrem + Gültigkeitsgereich eingeschränkt werden, indem sie innerhalb eines <VirtualHost>-Abschnittes angegeben werden. - Sie werden dann nur auf Anfragen für eine bestimmte Website + Sie werden dann nur auf Anfragen für eine bestimmte Website angewendet.

    Obwohl die meisten Direktiven in jedem dieser Abschnitte platziert - werden können, ergeben einige Direktiven in manchen Kontexten + werden können, ergeben einige Direktiven in manchen Kontexten keinen Sinn. Direktiven zur Prozesssteuerung beispielsweise - dürfen nur im Kontext des Hauptservers angegeben werden. Prüfen + dürfen nur im Kontext des Hauptservers angegeben werden. Prüfen Sie den Kontext der Direktive, um herauszufinden, welche Direktiven in welche Abschnitte - eingefügt werden können. Weitere Informationen finden Sie unter + eingefügt werden können. Weitere Informationen finden Sie unter "Wie Directory-, Location- und Files-Abschnitte arbeiten".

    @@ -151,33 +163,56 @@ -

    Der Apache ermöglicht die dezentrale Verwaltung der +

    Der Apache ermöglicht die dezentrale Verwaltung der Konfiguration mittes spezieller Dateien innerhalb des - Web-Verzeichnisbaums. Diese speziellen Dateien heißen - gewöhnlich .htaccess, mit der Direktive AccessFileName kann jedoch auch ein anderer + Web-Verzeichnisbaums. Diese speziellen Dateien heißen + gewöhnlich .htaccess, mit der Direktive AccessFileName kann jedoch auch ein anderer Name festgelegt werden. In .htaccess-Dateien angegebene Direktiven werden auf das Verzeichnis und dessen Unterverzeichnisse angewendet, in dem die Datei abgelegt ist. .htaccess-Dateien folgen der gleichen Syntax wie die Hauptkonfigurationsdateien. Da .htaccess-Dateien bei jeder Anfrage eingelesen werden, - werden Änderungen in diesen Dateien sofort wirksam.

    + werden Änderungen in diesen Dateien sofort wirksam.

    -

    Prüfen Sie den Kontext der Direktive, um +

    Prüfen Sie den Kontext der Direktive, um herauszufinden, welche Direktiven in .htaccess-Dateien - angegeben werden können. Darüber hinaus steuert der + angegeben werden können. Darüber hinaus steuert der Serveradministrator mit der Einstellung der Direktive AllowOverride in den Hauptkonfigurationsdateien welche Direktiven in - .htaccess-Dateien verwendet werden dürfen.

    + .htaccess-Dateien verwendet werden dürfen.

    -

    Weitere Informationen über .htaccess-Dateien finden - Sie in der .htaccess-Einführung.

    +

    Weitere Informationen über .htaccess-Dateien finden + Sie in der .htaccess-Einführung.

    -

    Verfügbare Sprachen:  de  | +

    Verfügbare Sprachen:  de  |  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Kommentare

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/configuring.html.en b/docs/manual/configuring.html.en index 39a6a41d3c4..2138414ac06 100644 --- a/docs/manual/configuring.html.en +++ b/docs/manual/configuring.html.en @@ -1,27 +1,36 @@ - -Configuration Files - Apache HTTP Server +Configuration Files - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Configuration Files

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Configuration Files

    Available Languages:  de  |  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    This document describes the files used to configure the Apache @@ -32,7 +41,7 @@ HTTP server.

  • Modules
  • Scope of Directives
  • .htaccess Files
  • -
    +
    top

    Main Configuration Files

    @@ -59,18 +68,32 @@ HTTP server.

    Apache configuration files contain one directive per line. - The back-slash "\" may be used as the last character on a line + The backslash "\" may be used as the last character on a line to indicate that the directive continues onto the next line. There must be no other characters or white space between the - back-slash and the end of the line.

    + backslash and the end of the line.

    Directives in the configuration files are case-insensitive, but arguments to directives are often case sensitive. Lines that begin with the hash character "#" are considered comments, and are ignored. Comments may not be - included on a line after a configuration directive. Blank lines - and white space occurring before a directive are ignored, so - you may indent directives for clarity.

    + included on the same line as a configuration directive. + White space occurring before a directive is ignored, so + you may indent directives for clarity. Blank lines are also ignored.

    + +

    The values of shell environment variables can be used in + configuration file lines using the syntax ${ENVVAR}. + If "ENVVAR" is the name of a valid environment variable, the value + of that variable is substituted into that spot in the + configuration file line, and processing continues as if that text + were found directly in the configuration file. (If the ENVVAR + variable is not found, the characters "${ENVVAR}" are left + unchanged for use by later stages in the config file + processing.)

    + +

    The maximum length of a line in the configuration file, after + environment-variable substitution, joining any continued lines and + removing leading and trailing white space, is 8192 characters.

    You can check your configuration files for syntax errors without starting the server by using apachectl @@ -159,9 +182,32 @@ HTTP server.

    Available Languages:  de  |  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/configuring.html.fr b/docs/manual/configuring.html.fr new file mode 100644 index 00000000000..19dae7dad78 --- /dev/null +++ b/docs/manual/configuring.html.fr @@ -0,0 +1,237 @@ + + + + + +Fichiers de configuration - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Fichiers de configuration

    +
    +

    Langues Disponibles:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    + +

    Ce document décrit les fichiers utilisés pour configurer +le Serveur HTTP Apache.

    +
    + +
    top
    +
    +

    Fichiers de configuration principaux

    + + + +

    La configuration d'Apache est effectuée en plaçant des directives dans des fichiers de + configuration au format texte. Le fichier de configuration principal se nomme + en général + httpd.conf. La localisation de ce fichier est définie + à la compilation, mais peut être redéfinie à l'aide de l'option + de ligne de commande -f. En outre, d'autres fichiers de + configuration peuvent être ajoutés à l'aide de la directive + Include, et des caractères de + remplacement + peuvent être utilisés pour inclure de nombreux fichiers de configuration. + Des directives de tous types peuvent être placées dans chacun de ces fichiers + de configuration. Les modifications dans les fichiers de configuration + principaux ne sont prises en compte par Apache que lorsque le serveur + est démarré ou redémarré.

    + +

    Le serveur lit aussi un fichier contenant les types de document mime; + ce fichier est défini par la directive TypesConfig, + et se nomme mime.types par défaut.

    +
    top
    +
    +

    Syntaxe des fichiers de configuration

    + + +

    Les fichiers de configuration d'Apache contiennent une directive + par ligne. + On peut utiliser l'anti-slash "\" comme dernier caractère d'une ligne + pour indiquer que la directive continue à la ligne suivante. + Il ne doit y avoir aucun caractère ni espace entre l'anti-slash et + la fin de la ligne.

    + +

    Les directives dans les fichiers de configuration ne sont pas + sensibles à la casse, mais leurs arguments le sont souvent. Les lignes + qui débutent par le caractère "#" sont interprétées comme des + commentaires, et sont ignorées. Les commentaires ne doivent + pas apparaître sur la même ligne qu'une directive + de configuration. Les espaces précédant une directive + sont ignorés; vous pouvez par conséquent indenter les directives + afin d'améliorer la lisibilité. Les lignes vides sont + aussi ignorées.

    + +

    On peut utiliser les variables d'environnement du shell dans les + lignes du fichier de configuration en utilisant la syntaxe + ${ENVVAR}. Si "ENVVAR" est le nom d'une variable + d'environnement valide, sa valeur remplace l'expression + ${ENVVAR} dans la ligne du fichier de configuration, et + le traitement continue comme si cette valeur avait été inscrite + directement dans le fichier de configuration. Si la variable ENVVAR + n'est pas trouvée, l'expression "${ENVVAR}" est conservée tel quel + pour une utilisation ultérieure dans le traitement du fichier de + configuration.

    + +

    La longueur maximale d'une ligne du fichier de configuration, + après substitution des variables d'environnement, reconstitution des + lignes fragmentées et suppression des espaces de début et de fin, + est de 8192 caractères.

    + +

    Vous pouvez vérifier l'absence d'erreurs de syntaxe dans vos fichiers + de configuration sans démarrer le serveur à l'aide de la commande + apachectl configtest ou de l'option de ligne de commande + -t.

    +
    top
    +
    +

    Modules

    + + + + +

    Apache est un serveur modulaire. Ceci implique que seules les + fonctionnalités les plus courantes sont incluses dans le serveur de base. + Les fonctionnalités étendues sont fournies à l'aide de modules qui peuvent être chargés dans Apache. + Par défaut, un jeu de modules de base est inclus dans le + serveur à la compilation. Si le serveur est compilé de façon à utiliser + les modules chargés dynamiquement, + alors les modules peuvent être compilés séparément et chargés à + n'importe quel moment à l'aide de la directive + LoadModule. + Dans le cas contraire, Apache doit être recompilé pour ajouter ou + supprimer des modules. + Les directives de configuration peuvent être incluses de manière + conditionnelle selon la présence ou l'absence d'un module particulier + en les plaçant dans un bloc <IfModule>.

    + +

    Pour voir quels modules ont été compilés avec le serveur, + vous pouvez utiliser l'option de ligne de commande -l.

    +
    top
    +
    +

    Portée des directives

    + + + + +

    Les directives placées dans les fichiers de configuration principaux + s'appliquent au serveur dans son ensemble. Si vous souhaitez modifier la + configuration d'une partie du serveur seulement, vous pouvez limiter la + portée de vos directives en les plaçant dans une section + <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, ou <LocationMatch>. + Ces sections limitent le champ d'application des directives qu'elles + contiennent à des URls ou des portions du système de fichiers particulières. + Elles peuvent aussi être imbriquées, ce qui permet + une configuration très fine.

    + +

    Apache peut servir simultanément de nombreux sites web au travers des + Hôtes Virtuels. La portée des directives peut ainsi + être limitée en les plaçant dans des sections + <VirtualHost>, + afin qu'elles ne s'appliquent qu'aux requêtes + pour un site web particulier.

    + +

    Bien que la plupart des directives puissent être placées dans + chacune de ces sections, certaines d'entre elles n'ont aucun sens + dans certains contextes. + Par exemple, les directives qui contrôlent la création des processus + n'ont de sens que dans le contexte du serveur principal. Pour déterminer + quelles directives peuvent être placées dans quelles sections, consultez + le Contexte de la + directive. Pour plus d'informations, nous fournissons des détails dans + Comment fonctionnent les sections Directory, + Location et Files.

    +
    top
    +
    +

    Fichiers .htaccess

    + + + + +

    Apache permet la gestion décentralisée de la configuration + via des fichiers spéciaux placés dans l'arborescence du site web. + Ces fichiers spéciaux se nomment en général .htaccess, + mais tout autre nom peut être spécifié à l'aide de la directive + AccessFileName. + Les directives placées dans les fichiers .htaccess + s'appliquent au répertoire dans lequel vous avez placé le fichier, + ainsi qu'à tous ses sous-répertoires. + La syntaxe des fichiers .htaccess est la même que celle + des fichiers de configuration principaux. Comme les fichiers + .htaccess sont lus à chaque requête, les modifications de + ces fichiers prennent effet immédiatement.

    + +

    Pour déterminer quelles directives peuvent être placées + dans les fichiers .htaccess, consultez le + Contexte de la + directive. L'administrateur du serveur peut contrôler quelles + directives peuvent être placées dans les fichiers + .htaccess en définissant la directive + AllowOverride + dans les fichiers de configuration principaux.

    + +

    Pour plus d'informations sur les fichiers .htaccess, + se référer au tutoriel .htaccess.

    +
    +
    +

    Langues Disponibles:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/configuring.html.ja.euc-jp b/docs/manual/configuring.html.ja.euc-jp deleted file mode 100644 index bba3f93e56e..00000000000 --- a/docs/manual/configuring.html.ja.euc-jp +++ /dev/null @@ -1,171 +0,0 @@ - - - -ÀßÄê¥ե¡¥¤¥ë - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ÀßÄê¥ե¡¥¤¥ë

    -
    -

    Available Languages:  de  | - en  | - ja  | - ko 

    -
    - -

    ¤³¤Îʸ½ñ¤Ǥϡ¢Apache HTTP ¥µ¡¼¥ФòÀßÄꤹ¤ë¤Τ˻ÈÍѤ¹¤ë¥ե¡¥¤¥ë¤ˤĤ¤¤Æ -µ­½Ҥ·¤Ƥ¤¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¥ᥤ¥ó¤ÎÀßÄê¥ե¡¥¤¥ë

    - - - -

    Apache ¤Ï ¥ǥ£¥쥯¥ƥ£¥Ö ¤òÀßÄê¥ե¡¥¤¥ë¤Ëʿʸ¤ǽ񤯤³¤Ȥˤè¤êÀßÄꤷ¤ޤ¹¡£ - ¥ᥤ¥ó¤ÎÀßÄê¥ե¡¥¤¥ë¤ÏÉáÄ̤Ï httpd.conf ¤Ȥ¤¤¦̾Á°¤Ǥ¹¡£ - ¤³¤Υե¡¥¤¥ë¤ΰÌÃ֤ϥ³¥ó¥ѥ¤¥ë»þ¤ËÀßÄꤵ¤ì¤ޤ¹¤¬¡¢¥³¥ޥó¥ɥ饤¥ó¤Î - -f ¥ե饰¤ˤè¤ê¾å½񤭤Ǥ­¤ޤ¹¡£ - ¤ޤ¿¡¢¾¤ÎÀßÄê¥ե¡¥¤¥ë¤ò Include - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤äÆÄɲäǤ­¡¢¥磻¥ë¥ɥ«¡¼¥ɤò»ÈÍѤ·¤Æ¿¿ô¤Î - ÀßÄê¥ե¡¥¤¥ë¤òÄɲ乤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤ɤó¤ʥǥ£¥쥯¥ƥ£¥֤⡢¤³¤ì¤é¤ÎÀßÄê¥ե¡¥¤¥ë¤ɤì¤ˤǤâÆþ¤ì¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - Apache ¤ϵ¯ư»þ¤«ºƵ¯ư»þ¤Τߥᥤ¥óÀßÄê¥ե¡¥¤¥ë¤ÎÊѹ¹¤òǧ¼±¤·¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФÏ MIME - ¥ɥ­¥å¥á¥ó¥ȥ¿¥¤¥פò´ޤó¤Ǥ¤¤ë¥ե¡¥¤¥ë¤âÆɤ߹þ¤ߤޤ¹¡£¥ե¡¥¤¥ë̾¤Ï - TypesConfig - ¤ÇÀßÄꤵ¤졢¥ǥե©¥ë¥ȤǤÏ mime.types - ¤ˤʤäƤ¤¤ޤ¹¡£

    -
    top
    -
    -

    ÀßÄê¥ե¡¥¤¥ë¤ι½ʸ

    - - -

    Apache ¤ÎÀßÄê¥ե¡¥¤¥ë¤Ï 1 ¹ԤË 1 ¤ĤΥǥ£¥쥯¥ƥ£¥֤«¤é¤ʤê¤ޤ¹¡£ - ¥Х寥¹¥é¥å·¥å "\" ¤ϥǥ£¥쥯¥ƥ£¥֤¬¼¡¤ιԤ˷ѳ¤·¤Ƥ¤¤뤳¤Ȥò - ¼¨¤¹¤¿¤á¤˹ԤκǸå¤Îʸ»ú¤Ȥ·¤ƻȤï¤ì¤Ƥ¤¤뤫¤⤷¤ì¤ޤ»¤ó¡£ - ¹ԤκǸå¤ȥХ寥¹¥é¥å·¥å¤δ֤˾¤Îʸ»ú¤ä¶õÇ򤬤¢¤äƤϤ¤¤±¤ޤ»¤ó¡£ -

    - -

    ÀßÄê¥ե¡¥¤¥ë¤Υǥ£¥쥯¥ƥ£¥֤ÏÂçʸ»ú¾®ʸ»ú¤ò¶èÊ̤·¤ޤ»¤󤬡¢ - °ú¿ô¤ˤϤ·¤Ф·¤жèÊ̤¹¤ë¤â¤Τ¬¤¢¤ê¤ޤ¹¡£¥ϥå·¥åʸ»ú "#" - ¤ǻϤޤë¹Ԥϥ³¥á¥ó¥Ȥȸ«¤ʤµ¤ì¤Æ̵»뤵¤ì¤ޤ¹¡£ - ÀßÄê¥ǥ£¥쥯¥ƥ£¥֤θå¤ιԤǤϥ³¥á¥ó¥Ȥ¬´ޤޤì¤Ƥ¤¤ƤϤ¤¤±¤ޤ»¤ó¡£¥ǥ£¥쥯¥ƥ£¥֤ÎÁ°¤ζõ¹ԤȶõÇò¤Ï̵»뤵¤ì¤ޤ¹¤Τǡ¢ - ¤狼¤ê¤䤹¤¯¤¹¤뤿¤á¤˥ǥ£¥쥯¥ƥ£¥֤򥤥ó¥ǥó¥Ȥ·¤Ƥ⹽¤¤¤ޤ»¤ó¡£ -

    - -

    ÀßÄê¥ե¡¥¤¥ë¤ι½ʸ¥¨¥顼¤ϡ¢ - apachectl configtest - ¤«¥³¥ޥó¥ɥ饤¥󥪥ץ·¥ç¥ó - -t ¤ò»ȤäÆĴ¤٤é¤ì¤ޤ¹¡£

    -
    top
    -
    -

    ¥⥸¥塼¥ë

    - - - - -

    Apache ¤ϥ⥸¥塼¥벽¤µ¤줿¥µ¡¼¥ФǤ¹¡£ - ¥³¥¢¥µ¡¼¥ФˤϺǤâ´ðËÜŪ¤ʵ¡ǽ¤À¤±¤¬´ޤޤì¤Ƥ¤¤ޤ¹¡£³Èĥµ¡ǽ¤Ï - Apache ¤˥í¡¼¥ɤµ¤ì¤ë¥⥸¥塼¥ë¤Ȥ·¤ÆÍøÍѲÄǽ¤Ǥ¹¡£¥ǥե©¥ë¥ȤǤϡ¢¥³¥ó¥ѥ¤¥ë»þ¤˥⥸¥塼¥ë¤Î - Base ¥»¥åÈ (´ðËܥ»¥åÈ) ¤¬ - ¥µ¡¼¥Ф˴ޤޤì¤ޤ¹¡£¥µ¡¼¥Ф¬ưŪ¥í¡¼¥É¥⥸¥塼¥ë¤ò»Ȥ¦¤褦¤˥³¥ó¥ѥ¤¥뤵¤ì¤Ƥ¤¤ë¾ì¹ç¤ϡ¢ - ¥⥸¥塼¥ë¤òÊ̤˥³¥ó¥ѥ¤¥뤷¤ơ¢¤¤¤ĤǤâ - LoadModule - ¥ǥ£¥쥯¥ƥ£¥֤ò»ȤäÆÄɲäǤ­¤ޤ¹¡£ - ¤½¤¦¤Ǥʤ¤¾ì¹ç¤ϡ¢¥⥸¥塼¥ë¤ÎÄɲääºï½ü¤򤹤뤿¤á¤ˤÏ Apache - ¤òºƥ³¥ó¥ѥ¤¥뤹¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ÀßÄê¥ǥ£¥쥯¥ƥ£¥֤Ï <IfModule> - ¥֥í¥å¯¤ËÆþ¤ì¤뤳¤ȤÇÆÃÄê¤Υ⥸¥塼¥뤬¸ºߤ¹¤ë¤Ȥ­¤À¤± - ÀßÄê¥ե¡¥¤¥ë¤˴ޤޤì¤ë¤褦¤ˤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¥³¥ޥó¥ɥ饤¥󥪥ץ·¥ç¥ó -l ¤ò»ȤäƸ½»þÅÀ¤Ç - ¤ɤΥ⥸¥塼¥뤬¥µ¡¼¥Ф˥³¥ó¥ѥ¤¥뤵¤ì¤Ƥ¤¤뤫¤òÃΤ뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    -
    top
    -
    -

    ¥ǥ£¥쥯¥ƥ£¥֤ÎŬÍÑÈϰÏ

    - - - - -

    ¥ᥤ¥óÀßÄê¥ե¡¥¤¥ë¤ˤ¢¤ë¥ǥ£¥쥯¥ƥ£¥֤ϥµ¡¼¥ÐÁ´ÂΤËŬÍѤµ¤ì¤ޤ¹¡£ - ¥µ¡¼¥ФΰìÉôʬ¤ÎÀßÄê¤À¤±¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ï <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch> - ¥»¥¯¥·¥ç¥ó¤ÎÃæ¤ËÃ֤¯¤³¤ȤÇŬÍÑÈϰϤò·è¤á¤é¤ì¤ޤ¹¡£ - ¤³¤ì¤é¤Υ»¥¯¥·¥ç¥ó¤Ϥ½¤ÎÃæ¤ˤ¢¤ë¥ǥ£¥쥯¥ƥ£¥֤ÎŬÍÑÈϰϤò - ÆÃÄê¤Υե¡¥¤¥륷¥¹¥ƥà¤ΰÌÃ֤ä URL ¤˸ÂÄꤷ¤ޤ¹¡£ - Èó¾ï¤˺ÙγÅ٤ÎÀßÄê¤ò²Äǽ¤ˤ¹¤뤿¤á¤ˡ¢ - ¥»¥¯¥·¥ç¥ó¤òÆþ¤ì»Ҥˤ¹¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£

    - -

    Apache ¤ÏƱ»þ¤Ë¿¤¯¤ΰ㤦¥¦¥§¥֥µ¥¤¥Ȥ򰷤¦ǽÎϤ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤Ï ¥С¼¥Á¥ã¥ë¥ۥ¹¥È ¤ȸƤФì¤Ƥ¤¤ޤ¹¡£ - ÆÃÄê¤Υ¦¥§¥֥µ¥¤¥ȤˤΤßŬÍѤµ¤ì¤ë¤褦¤ˤ¹¤뤿¤á¤ˡ¢ - ¥ǥ£¥쥯¥ƥ£¥֤Ï - <VirtualHost> - ¥»¥¯¥·¥ç¥ó¤ÎÃæ¤ËÃ֤¯¤³¤ȤǤâŬÍÑÈϰϤòÊѤ¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤ۤȤó¤ɤΥǥ£¥쥯¥ƥ£¥֤ϤɤΥ»¥¯¥·¥ç¥ó¤ˤǤâ½񤱤ޤ¹¤¬¡¢ - Ãæ¤ˤϥ³¥ó¥ƥ­¥¹¥Ȥˤè¤äƤϰỌ̃¤ò¤ʤµ¤ʤ¤¤â¤Τ⤢¤ê¤ޤ¹¡£ - Î㤨¤С¢¥ץí¥»¥¹¤κîÀ®¤òÀ©¸椷¤Ƥ¤¤ë¥ǥ£¥쥯¥ƥ£¥֤ϥᥤ¥󥵡¼¥ФÎ - ¥³¥ó¥ƥ­¥¹¥ȤˤΤ߽񤯤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤ɤΥǥ£¥쥯¥ƥ£¥֤ò¤ɤΥ»¥¯¥·¥ç¥ó¤˽񤯤³¤Ȥ¬¤Ǥ­¤뤫¤òÃΤ뤿¤á¤ˤÏ - ¥ǥ£¥쥯¥ƥ£¥֤Î ¥³¥ó¥ƥ­¥¹¥È ¤òĴ¤٤Ƥ¯¤À¤µ¤¤¡£¾ܤ·¤¤¾ðÊó¤ϡ¢ - Directory, Location, Files - ¥»¥¯¥·¥ç¥ó¤Îưºîˡ¤ˤ¢¤ê¤ޤ¹¡£

    -
    top
    -
    -

    .htaccess ¥ե¡¥¤¥ë

    - - - - -

    Apache ¤Ǥϥ¦¥§¥֥ĥ꡼¤ÎÃæ¤ËÃ֤«¤줿ÆÃÊ̤ʥե¡¥¤¥ë¤ò»ȤäÆ - ÈóÃæ±û½¸¸¢Ū¤ÊÀßÄê´ÉÍý¤ò¤Ǥ­¤ޤ¹¡£¤½¤ÎÆÃÊ̤ʥե¡¥¤¥ë¤ÏÉáÄ̤Ï - .htaccess ¤Ȥ¤¤¦̾Á°¤ǡ¢ - AccessFileName - ¥ǥ£¥쥯¥ƥ£¥֤Ǥɤó¤Ê̾Á°¤ˤǤâ»ØÄê¤Ǥ­¤ޤ¹¡£ - .htaccess - ¥ե¡¥¤¥ë¤˽񤫤줿¥ǥ£¥쥯¥ƥ£¥֤ϥե¡¥¤¥ë¤òÃ֤¤¤¿ - ¥ǥ£¥쥯¥ȥê¤Ȥ½¤ÎÁ´¤ƤΥµ¥֥ǥ£¥쥯¥ȥê¤ËŬÍѤµ¤ì¤ޤ¹¡£ - .htaccess ¥ե¡¥¤¥ë¤ϡ¢¥ᥤ¥ó¤ÎÀßÄê¥ե¡¥¤¥ë¤ÈƱ¤¸ - ¹½ʸ¤ò»Ȥ¤¤ޤ¹¡£ - .htaccess - ¥ե¡¥¤¥ë¤Ϥ¹¤٤ƤΥꥯ¥¨¥¹¥ȤÇÆɤ߹þ¤ޤì¤뤿¤ᡢ - Êѹ¹¤Ϥ¹¤°¤Ëȿ±Ǥµ¤ì¤ޤ¹¡£

    - -

    ¤ɤΥǥ£¥쥯¥ƥ£¥֤¬ .htaccess - ¥ե¡¥¤¥ë¤˽񤱤뤫¤òĴ¤٤ë¤ˤϡ¢¥ǥ£¥쥯¥ƥ£¥֤Î¥³¥ó¥ƥ­¥¹¥È - ¤òĴ¤٤Ƥ¯¤À¤µ¤¤¡£¥µ¡¼¥дÉÍý¼ԤϤµ¤é¤˥ᥤ¥óÀßÄê¥ե¡¥¤¥ë¤Î - AllowOverride - ¤òÀßÄꤹ¤뤳¤ȤǤɤΥǥ£¥쥯¥ƥ£¥֤ò .htaccess - ¥ե¡¥¤¥ë¤˽񤱤ë¤褦¤ˤ¹¤뤫¤òÀ©¸椹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    .htaccess ¥ե¡¥¤¥ë¤˴ؤ¹¤ë¾ܤ·¤¤¾ðÊó¤Ï - .htaccess ¥Á¥塼¥ȥꥢ¥ë - ¤򻲾Ȥ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -
    -

    Available Languages:  de  | - en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/configuring.html.ja.utf8 b/docs/manual/configuring.html.ja.utf8 new file mode 100644 index 00000000000..9e46c089383 --- /dev/null +++ b/docs/manual/configuring.html.ja.utf8 @@ -0,0 +1,207 @@ + + + + + +設定ファイル - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    設定ファイル

    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    この文書では、Apache HTTP サーバを設定するのに使用するファイルについて +記述しています。

    +
    + +
    top
    +
    +

    メインの設定ファイル

    + + + +

    Apache は ディレクティブ を設定ファイルに平文で書くことにより設定します。 + メインの設定ファイルは普通は httpd.conf という名前です。 + このファイルの位置はコンパイル時に設定されますが、コマンドラインの + -f フラグにより上書きできます。 + また、他の設定ファイルを Include + ディレクティブによって追加でき、ワイルドカードを使用して多数の + 設定ファイルを追加することができます。 + どんなディレクティブも、これらの設定ファイルどれにでも入れることができます。 + Apache は起動時か再起動時のみメイン設定ファイルの変更を認識します。

    + +

    サーバは MIME + ドキュメントタイプを含んでいるファイルも読み込みます。ファイル名は + TypesConfig + で設定され、デフォルトでは mime.types + になっています。

    +
    top
    +
    +

    設定ファイルの構文

    + + +

    Apache の設定ファイルは 1 行に 1 つのディレクティブからなります。 + バックスラッシュ "\" はディレクティブが次の行に継続していることを + 示すために行の最後の文字として使われているかもしれません。 + 行の最後とバックスラッシュの間に他の文字や空白があってはいけません。 +

    + +

    設定ファイルのディレクティブは大文字小文字を区別しませんが、 + 引数にはしばしば区別するものがあります。ハッシュ文字 "#" + で始まる行はコメントと見なされて無視されます。 + 設定ディレクティブと同一行の末尾にコメントが含まれていてはいけません。ディレクティブの前の空行と空白は無視されますので、 + わかりやすくするためにディレクティブをインデントしても構いません。 +

    + +

    設定ファイルの構文エラーは、 + apachectl configtest + かコマンドラインオプション + -t を使って調べられます。

    +
    top
    +
    +

    モジュール

    + + + + +

    Apache はモジュール化されたサーバです。 + コアサーバには最も基本的な機能だけが含まれています。拡張機能は + Apache にロードされるモジュールとして利用可能です。デフォルトでは、コンパイル時にモジュールの + Base セット (基本セット) が + サーバに含まれます。サーバが動的ロードモジュールを使うようにコンパイルされている場合は、 + モジュールを別にコンパイルして、いつでも + LoadModule + ディレクティブを使って追加できます。 + そうでない場合は、モジュールの追加や削除をするためには Apache + を再コンパイルする必要があります。設定ディレクティブは <IfModule> + ブロックに入れることで特定のモジュールが存在するときだけ + 設定ファイルに含まれるようにすることができます。

    + +

    コマンドラインオプション -l を使って現時点で + どのモジュールがサーバにコンパイルされているかを知ることができます。

    +
    top
    +
    +

    ディレクティブの適用範囲

    + + + + +

    メイン設定ファイルにあるディレクティブはサーバ全体に適用されます。 + サーバの一部分の設定だけを変更したい場合は <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch> + セクションの中に置くことで適用範囲を決められます。 + これらのセクションはその中にあるディレクティブの適用範囲を + 特定のファイルシステムの位置や URL に限定します。 + 非常に細粒度の設定を可能にするために、 + セクションを入れ子にすることもできます。

    + +

    Apache は同時に多くの違うウェブサイトを扱う能力があります。 + これは バーチャルホスト と呼ばれています。 + 特定のウェブサイトにのみ適用されるようにするために、 + ディレクティブは + <VirtualHost> + セクションの中に置くことでも適用範囲を変えることができます。

    + +

    ほとんどのディレクティブはどのセクションにでも書けますが、 + 中にはコンテキストによっては意味をなさないものもあります。 + 例えば、プロセスの作成を制御しているディレクティブはメインサーバの + コンテキストにのみ書くことができます。 + どのディレクティブをどのセクションに書くことができるかを知るためには + ディレクティブの コンテキスト を調べてください。詳しい情報は、 + Directory, Location, Files + セクションの動作法にあります。

    +
    top
    +
    +

    .htaccess ファイル

    + + + + +

    Apache ではウェブツリーの中に置かれた特別なファイルを使って + 非中央集権的な設定管理をできます。その特別なファイルは普通は + .htaccess という名前で、 + AccessFileName + ディレクティブでどんな名前にでも指定できます。 + .htaccess + ファイルに書かれたディレクティブはファイルを置いた + ディレクトリとその全てのサブディレクトリに適用されます。 + .htaccess ファイルは、メインの設定ファイルと同じ + 構文を使います。 + .htaccess + ファイルはすべてのリクエストで読み込まれるため、 + 変更はすぐに反映されます。

    + +

    どのディレクティブが .htaccess + ファイルに書けるかを調べるには、ディレクティブのコンテキスト + を調べてください。サーバ管理者はさらにメイン設定ファイルの + AllowOverride + を設定することでどのディレクティブを .htaccess + ファイルに書けるようにするかを制御することができます。

    + +

    .htaccess ファイルに関する詳しい情報は + .htaccess チュートリアル + を参照してください。

    +
    +
    +

    翻訳済み言語:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/configuring.html.ko.euc-kr b/docs/manual/configuring.html.ko.euc-kr index d1d18eac958..cf524f28200 100644 --- a/docs/manual/configuring.html.ko.euc-kr +++ b/docs/manual/configuring.html.ko.euc-kr @@ -1,28 +1,39 @@ - -¼³Á¤ÆÄÀÏ - Apache HTTP Server +¼³Á¤ÆÄÀÏ - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ¼³Á¤ÆÄÀÏ

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ÀÌ ¹®¼­´Â ¾ÆÆÄġ À¥¼­¹ö¸¦ ¼³Á¤Çϴ ÆÄÀϵéÀ» ¼³¸íÇѴÙ.

    @@ -31,7 +42,7 @@
  • ¸ðµâ
  • Áö½þî Àû¿ë¹üÀ§
  • .htaccess ÆÄÀÏ
  • -
    +
    top

    Áּ³Á¤ÆÄÀÏ

    @@ -142,9 +153,32 @@

    °¡´ÉÇÑ ¾ð¾î:  de  |  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/configuring.html.tr.utf8 b/docs/manual/configuring.html.tr.utf8 new file mode 100644 index 00000000000..09729e97fba --- /dev/null +++ b/docs/manual/configuring.html.tr.utf8 @@ -0,0 +1,206 @@ + + + + + +Yapılandırma Dosyaları - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Yapılandırma Dosyaları

    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.
    + +

    Bu belgede Apache HTTP sunucusunu yapılandırmakta kullanılan dosyalar +açıklanmıştır.

    +
    + +
    top
    +
    +

    Ana Yapılandırma Dosyaları

    + + + +

    Apache düz metin yapılandırma dosyalarına yönergeler yerleştirilerek yapılandırılır. + Ana yapılandırma dosyasının ismi normalde httpd.conf’tur. Bu + dosyanın yeri derleme sırasında belirlenir, ancak çalıştırma sırasında + -f komut satırı seçeneği ile başka bir yer belirtilebilir. + Ayrıca, Include yönergesi kullanılarak + başka yapılandırma dosyaları da eklenebilir ve bu dosyaların isimleri + belirtilirken dosya ismi şablonları kullanılabilir. Bu dosyaların içine de + ana yapılandırma dosyasında olduğu gibi her türlü yönerge + yerleştirilebilir. Ana yapılandırma dosyalarındaki değişiklikler Apache + tarafından sadece başlatma veya yeniden başlatma sırasında etkin + kılınır.

    + +

    Sunucu ayrıca MIME belge türlerini içeren bir dosya daha okur; dosya + ismi öntanımlı olarak mime.types olup TypesConfig yönergesi ile başka bir dosya + belirtilebilir.

    +
    top
    +
    +

    Yapılandırma Dosyalarının Sözdizimi

    + + +

    Apache yapılandırma dosyalarının her satırında sadece bir yönerge + bulunur ve bir yönergenin birden fazla satıra yayılması daha iyi olacaksa + satır katlanabilir; devamı bir alt satırda olan her satırın son karakteri + “\” (tersbölü) olmalı, satırsonu karakteri ile bu tersbölü karakteri + arasında başka karakter bulunmamalıdır.

    + +

    Yapılandırma dosyalarındaki yönergelerin isimleri harf büyüklüğüne + duyarlı olduğu halde argümanları genellikle harf büyüklüğüne duyarlı + değildir. Diyez (“#”) karakteri ile başlayan satırlar açıklama olarak ele + alınır ve yok sayılırlar. Yapılandırma yönergesi içeren satırların ardına + açıklama yerleştirilemez. Yönerge isminden önce yer alan boşluklar ve boş + satırlar yok sayılır; bu özellik, okunabilirliği sağlamak için yönergelerin + girintilenebilmesi olanağını verir.

    + +

    Kabuk ortam değişkenlerinin değerleri yapılandırma dosyası içinde + ${ENVVAR} sözdizimi ile kullanılabilir. "ENVVAR" geçerli bir + ortam değişkeninin adı olduğu takdirde, yapılandırma dosyasında görüldüğü + yerlerde değişkenin değeri yazılmış gibi işlem yapılır. (ENVVAR diye bir + değişken yoksa yapılandırma dosyasının işlenmesinin sonraki aşamalarında + kullanılmak üzere "${ENVVAR}" karakterleri oldukları gibi bırakılır.)

    + +

    Yapılandırma dosyasındaki bir satırı uzunluğu, ortam değişkenlerinin + değerleri yerleştirildikten, devam satırları birleştirilip satırın önündeki + ve ardındaki boşluk karakterleri temizlendikten sonra en fazla 8192 + karakter olabilir.

    + +

    Sunucuyu başlatmadan önce apachectl configtest ile veya + -t komut satırı seçeneği ile yapılandırma dosyalarınızı + sözdizimi hatalarına karşı sınayabilirsiniz.

    +
    top
    +
    +

    Modüller

    + + + + +

    Apache modüler yapıda bir sunucudur. Bu, çekirdek sunucunun sadece en + temel işlevselliği içermesi demektir. Ek özellikler, Apache’ye modüller halinde yüklenebilir. Öntanımlı olarak, derleme + sırasında sunucunun temel bir + modül kümesi içermesi sağlanır. Eğer sunucu devingen + yüklenen modülleri kullanmak üzere yapılandırılarak derlenirse modüller + ayrı olarak derlenip gerektiği zaman LoadModule yönergesi kullanılarak yüklenebilir. + Aksi takdirde, ek modülleri yükleyebilmek veya kaldırabilmek için + Apache’nin yeniden derlenmesi gerekir. Yapılandırma yönergeleri belli bir + modülün varlığına dayalı olarak bir <IfModule> bloku içine alınmak suretiyle sunucuya + koşullu olarak eklenebilir.

    + +

    Sunucunun içinde derlenmiş modüllerin listesini görmek için + -l komut satırı seçeneğini kullanabilirsiniz.

    +
    top
    +
    +

    Yönergelerin Etki Alanı

    + + + + +

    Ana yapılandırma dosyasına yerleştirilen yönergeler sunucunun tamamına + uygulanır. Yapılandırmanızı sunucunun belli bir parçası için değiştirmek + isterseniz yönergelerinizi <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location> ve <LocationMatch> bölümleri içine yerleştirerek etki + alanlarını değiştirebilirsiniz. Bu bölümler yönergelerin etkilediği + alanları dosya sistemininin belli yerleri veya belli URL’lerle sınırlar. + Yerine göre daha hassas ayarlamalar yapmak için bu bölgeler iç içe de + kullanılabilir.

    + +

    Apache, çok sayıda farklı siteyi aynı anda sunabilecek yetenektedir. + Buna Sanal Konaklık adı verilir. Yönergelerin etki + alanları ayrıca <VirtualHost> bölümleri içine konarak da + değiştirilebilir. Böylece belli bir siteden gelen isteklere farklı bir + uygulama yapılabilir.

    + +

    Yönergelerin çoğu bu bölümlere yerleştirilebilirse de bazı yönergelerin + bazı bağlamlarda bir etkisi olmaz. Örneğin, süreç oluşturmayı denetleyen + yönergeler sadece ana sunucu bağlamına yerleştirilebilir. Hangi yönergenin + hangi bağlama yerleştirilebileceğini bulmak için yönergenin bağlamına bakınız. Bu konuda + daha ayrıntılı bilgi edinmek için: Directory, Location ve Files Bölümleri Nasıl + Çalışır.

    +
    top
    +
    +

    .htaccess Dosyaları

    + + + + +

    Apache yapılandırma sorumluluğunu dağıtmak için site ağaçları içine özel + dosyalar yerleştirilmesine izin verir. Bu özel dosyalar normalde + .htaccess dosyaları olmakla birlikte AccessFileName yönergesi kullanılarak rasgele bir + isim belirtilebilir. .htaccess dosyalarına yerleştirilen + yönergeler sadece dosyanın bulunduğu dizine ve alt dizinlerine uygulanır. + .htaccess dosyalarında da ana yapılandırma dosyalarında + geçerli sözdizimi kullanılır. .htaccess dosyaları her istek + gelişinde yeniden okunduğundan bu dosyalarda yapılan değişiklikler hemen + etkisini gösterir.

    + +

    .htaccess dosyalarına hangi yönergelerin + yerleştirilebileceğini bulmak için yönerge bağlamına bakınız. Sunucunun + yöneticisi .htaccess dosyalarına hangi yönergelerin + yerleştirilebileceğini ana yapılandırma dosyalarında AllowOverride yönergesini kullanarak + belirleyebilir.

    + +

    .htaccess dosyaları hakkında daha ayrıntılı bilgi edinmek + için .htaccess öğreticisine + bakabilirsiniz.

    +
    +
    +

    Mevcut Diller:  de  | + en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/configuring.xml b/docs/manual/configuring.xml index e5a05e716e9..870374ab9de 100644 --- a/docs/manual/configuring.xml +++ b/docs/manual/configuring.xml @@ -4,12 +4,12 @@ + + + + + + + + + Fichiers de configuration + + +

    Ce document décrit les fichiers utilisés pour configurer +le Serveur HTTP Apache.

    +
    + +
    + Fichiers de configuration principaux + + + mod_mime + + + IfDefine + Include + TypesConfig + + + +

    La configuration d'Apache est effectuée en plaçant des directives dans des fichiers de + configuration au format texte. Le fichier de configuration principal se nomme + en général + httpd.conf. La localisation de ce fichier est définie + à la compilation, mais peut être redéfinie à l'aide de l'option + de ligne de commande -f. En outre, d'autres fichiers de + configuration peuvent être ajoutés à l'aide de la directive + Include, et des caractères de + remplacement + peuvent être utilisés pour inclure de nombreux fichiers de configuration. + Des directives de tous types peuvent être placées dans chacun de ces fichiers + de configuration. Les modifications dans les fichiers de configuration + principaux ne sont prises en compte par Apache que lorsque le serveur + est démarré ou redémarré.

    + +

    Le serveur lit aussi un fichier contenant les types de document mime; + ce fichier est défini par la directive TypesConfig, + et se nomme mime.types par défaut.

    +
    + +
    + Syntaxe des fichiers de configuration + +

    Les fichiers de configuration d'Apache contiennent une directive + par ligne. + On peut utiliser l'anti-slash "\" comme dernier caractère d'une ligne + pour indiquer que la directive continue à la ligne suivante. + Il ne doit y avoir aucun caractère ni espace entre l'anti-slash et + la fin de la ligne.

    + +

    Les directives dans les fichiers de configuration ne sont pas + sensibles à la casse, mais leurs arguments le sont souvent. Les lignes + qui débutent par le caractère "#" sont interprétées comme des + commentaires, et sont ignorées. Les commentaires ne doivent + pas apparaître sur la même ligne qu'une directive + de configuration. Les espaces précédant une directive + sont ignorés; vous pouvez par conséquent indenter les directives + afin d'améliorer la lisibilité. Les lignes vides sont + aussi ignorées.

    + +

    On peut utiliser les variables d'environnement du shell dans les + lignes du fichier de configuration en utilisant la syntaxe + ${ENVVAR}. Si "ENVVAR" est le nom d'une variable + d'environnement valide, sa valeur remplace l'expression + ${ENVVAR} dans la ligne du fichier de configuration, et + le traitement continue comme si cette valeur avait été inscrite + directement dans le fichier de configuration. Si la variable ENVVAR + n'est pas trouvée, l'expression "${ENVVAR}" est conservée tel quel + pour une utilisation ultérieure dans le traitement du fichier de + configuration.

    + +

    La longueur maximale d'une ligne du fichier de configuration, + après substitution des variables d'environnement, reconstitution des + lignes fragmentées et suppression des espaces de début et de fin, + est de 8192 caractères.

    + +

    Vous pouvez vérifier l'absence d'erreurs de syntaxe dans vos fichiers + de configuration sans démarrer le serveur à l'aide de la commande + apachectl configtest ou de l'option de ligne de commande + -t.

    +
    + +
    + Modules + + + + mod_so + + + IfModule + LoadModule + + + +

    Apache est un serveur modulaire. Ceci implique que seules les + fonctionnalités les plus courantes sont incluses dans le serveur de base. + Les fonctionnalités étendues sont fournies à l'aide de modules qui peuvent être chargés dans Apache. + Par défaut, un jeu de modules de base est inclus dans le + serveur à la compilation. Si le serveur est compilé de façon à utiliser + les modules chargés dynamiquement, + alors les modules peuvent être compilés séparément et chargés à + n'importe quel moment à l'aide de la directive + LoadModule. + Dans le cas contraire, Apache doit être recompilé pour ajouter ou + supprimer des modules. + Les directives de configuration peuvent être incluses de manière + conditionnelle selon la présence ou l'absence d'un module particulier + en les plaçant dans un bloc IfModule.

    + +

    Pour voir quels modules ont été compilés avec le serveur, + vous pouvez utiliser l'option de ligne de commande -l.

    +
    + +
    + Portée des directives + + + + Directory + DirectoryMatch + Files + FilesMatch + Location + LocationMatch + VirtualHost + + + +

    Les directives placées dans les fichiers de configuration principaux + s'appliquent au serveur dans son ensemble. Si vous souhaitez modifier la + configuration d'une partie du serveur seulement, vous pouvez limiter la + portée de vos directives en les plaçant dans une section + Directory, DirectoryMatch, Files, FilesMatch, Location, ou LocationMatch. + Ces sections limitent le champ d'application des directives qu'elles + contiennent à des URls ou des portions du système de fichiers particulières. + Elles peuvent aussi être imbriquées, ce qui permet + une configuration très fine.

    + +

    Apache peut servir simultanément de nombreux sites web au travers des + Hôtes Virtuels. La portée des directives peut ainsi + être limitée en les plaçant dans des sections + VirtualHost, + afin qu'elles ne s'appliquent qu'aux requêtes + pour un site web particulier.

    + +

    Bien que la plupart des directives puissent être placées dans + chacune de ces sections, certaines d'entre elles n'ont aucun sens + dans certains contextes. + Par exemple, les directives qui contrôlent la création des processus + n'ont de sens que dans le contexte du serveur principal. Pour déterminer + quelles directives peuvent être placées dans quelles sections, consultez + le Contexte de la + directive. Pour plus d'informations, nous fournissons des détails dans + Comment fonctionnent les sections Directory, + Location et Files.

    +
    + +
    + Fichiers .htaccess + + + + AccessFileName + AllowOverride + + + +

    Apache permet la gestion décentralisée de la configuration + via des fichiers spéciaux placés dans l'arborescence du site web. + Ces fichiers spéciaux se nomment en général .htaccess, + mais tout autre nom peut être spécifié à l'aide de la directive + AccessFileName. + Les directives placées dans les fichiers .htaccess + s'appliquent au répertoire dans lequel vous avez placé le fichier, + ainsi qu'à tous ses sous-répertoires. + La syntaxe des fichiers .htaccess est la même que celle + des fichiers de configuration principaux. Comme les fichiers + .htaccess sont lus à chaque requête, les modifications de + ces fichiers prennent effet immédiatement.

    + +

    Pour déterminer quelles directives peuvent être placées + dans les fichiers .htaccess, consultez le + Contexte de la + directive. L'administrateur du serveur peut contrôler quelles + directives peuvent être placées dans les fichiers + .htaccess en définissant la directive + AllowOverride + dans les fichiers de configuration principaux.

    + +

    Pour plus d'informations sur les fichiers .htaccess, + se référer au tutoriel .htaccess.

    +
    +
    diff --git a/docs/manual/configuring.xml.ja b/docs/manual/configuring.xml.ja index f427f0ff572..e9d85f7731e 100644 --- a/docs/manual/configuring.xml.ja +++ b/docs/manual/configuring.xml.ja @@ -1,15 +1,15 @@ - + - + + - + configuring / . - de + de en - ja - ko + fr + ja + ko + tr diff --git a/docs/manual/configuring.xml.tr b/docs/manual/configuring.xml.tr new file mode 100644 index 00000000000..64eb545c5a8 --- /dev/null +++ b/docs/manual/configuring.xml.tr @@ -0,0 +1,212 @@ + + + + + + + + + + + Yapılandırma Dosyaları + + +

    Bu belgede Apache HTTP sunucusunu yapılandırmakta kullanılan dosyalar +açıklanmıştır.

    +
    + +
    + Ana Yapılandırma Dosyaları + + + mod_mime + + + IfDefine + Include + TypesConfig + + + +

    Apache düz metin yapılandırma dosyalarına yönergeler yerleştirilerek yapılandırılır. + Ana yapılandırma dosyasının ismi normalde httpd.conf’tur. Bu + dosyanın yeri derleme sırasında belirlenir, ancak çalıştırma sırasında + -f komut satırı seçeneği ile başka bir yer belirtilebilir. + Ayrıca, Include yönergesi kullanılarak + başka yapılandırma dosyaları da eklenebilir ve bu dosyaların isimleri + belirtilirken dosya ismi şablonları kullanılabilir. Bu dosyaların içine de + ana yapılandırma dosyasında olduğu gibi her türlü yönerge + yerleştirilebilir. Ana yapılandırma dosyalarındaki değişiklikler Apache + tarafından sadece başlatma veya yeniden başlatma sırasında etkin + kılınır.

    + +

    Sunucu ayrıca MIME belge türlerini içeren bir dosya daha okur; dosya + ismi öntanımlı olarak mime.types olup TypesConfig yönergesi ile başka bir dosya + belirtilebilir.

    +
    + +
    + Yapılandırma Dosyalarının Sözdizimi + +

    Apache yapılandırma dosyalarının her satırında sadece bir yönerge + bulunur ve bir yönergenin birden fazla satıra yayılması daha iyi olacaksa + satır katlanabilir; devamı bir alt satırda olan her satırın son karakteri + “\” (tersbölü) olmalı, satırsonu karakteri ile bu tersbölü karakteri + arasında başka karakter bulunmamalıdır.

    + +

    Yapılandırma dosyalarındaki yönergelerin isimleri harf büyüklüğüne + duyarlı olduğu halde argümanları genellikle harf büyüklüğüne duyarlı + değildir. Diyez (“#”) karakteri ile başlayan satırlar açıklama olarak ele + alınır ve yok sayılırlar. Yapılandırma yönergesi içeren satırların ardına + açıklama yerleştirilemez. Yönerge isminden önce yer alan boşluklar ve boş + satırlar yok sayılır; bu özellik, okunabilirliği sağlamak için yönergelerin + girintilenebilmesi olanağını verir.

    + +

    Kabuk ortam değişkenlerinin değerleri yapılandırma dosyası içinde + ${ENVVAR} sözdizimi ile kullanılabilir. "ENVVAR" geçerli bir + ortam değişkeninin adı olduğu takdirde, yapılandırma dosyasında görüldüğü + yerlerde değişkenin değeri yazılmış gibi işlem yapılır. (ENVVAR diye bir + değişken yoksa yapılandırma dosyasının işlenmesinin sonraki aşamalarında + kullanılmak üzere "${ENVVAR}" karakterleri oldukları gibi bırakılır.)

    + +

    Yapılandırma dosyasındaki bir satırı uzunluğu, ortam değişkenlerinin + değerleri yerleştirildikten, devam satırları birleştirilip satırın önündeki + ve ardındaki boşluk karakterleri temizlendikten sonra en fazla 8192 + karakter olabilir.

    + +

    Sunucuyu başlatmadan önce apachectl configtest ile veya + -t komut satırı seçeneği ile yapılandırma dosyalarınızı + sözdizimi hatalarına karşı sınayabilirsiniz.

    +
    + +
    + Modüller + + + + mod_so + + + IfModule + LoadModule + + + +

    Apache modüler yapıda bir sunucudur. Bu, çekirdek sunucunun sadece en + temel işlevselliği içermesi demektir. Ek özellikler, Apache’ye modüller halinde yüklenebilir. Öntanımlı olarak, derleme + sırasında sunucunun temel bir + modül kümesi içermesi sağlanır. Eğer sunucu devingen + yüklenen modülleri kullanmak üzere yapılandırılarak derlenirse modüller + ayrı olarak derlenip gerektiği zaman LoadModule yönergesi kullanılarak yüklenebilir. + Aksi takdirde, ek modülleri yükleyebilmek veya kaldırabilmek için + Apache’nin yeniden derlenmesi gerekir. Yapılandırma yönergeleri belli bir + modülün varlığına dayalı olarak bir IfModule bloku içine alınmak suretiyle sunucuya + koşullu olarak eklenebilir.

    + +

    Sunucunun içinde derlenmiş modüllerin listesini görmek için + -l komut satırı seçeneğini kullanabilirsiniz.

    +
    + +
    + Yönergelerin Etki Alanı + + + + Directory + DirectoryMatch + Files + FilesMatch + Location + LocationMatch + VirtualHost + + + +

    Ana yapılandırma dosyasına yerleştirilen yönergeler sunucunun tamamına + uygulanır. Yapılandırmanızı sunucunun belli bir parçası için değiştirmek + isterseniz yönergelerinizi Directory, DirectoryMatch, Files, FilesMatch, Location ve LocationMatch bölümleri içine yerleştirerek etki + alanlarını değiştirebilirsiniz. Bu bölümler yönergelerin etkilediği + alanları dosya sistemininin belli yerleri veya belli URL’lerle sınırlar. + Yerine göre daha hassas ayarlamalar yapmak için bu bölgeler iç içe de + kullanılabilir.

    + +

    Apache, çok sayıda farklı siteyi aynı anda sunabilecek yetenektedir. + Buna Sanal Konaklık adı verilir. Yönergelerin etki + alanları ayrıca VirtualHost bölümleri içine konarak da + değiştirilebilir. Böylece belli bir siteden gelen isteklere farklı bir + uygulama yapılabilir.

    + +

    Yönergelerin çoğu bu bölümlere yerleştirilebilirse de bazı yönergelerin + bazı bağlamlarda bir etkisi olmaz. Örneğin, süreç oluşturmayı denetleyen + yönergeler sadece ana sunucu bağlamına yerleştirilebilir. Hangi yönergenin + hangi bağlama yerleştirilebileceğini bulmak için yönergenin bağlamına bakınız. Bu konuda + daha ayrıntılı bilgi edinmek için: Directory, Location ve Files Bölümleri Nasıl + Çalışır.

    +
    + +
    + .htaccess Dosyaları + + + + AccessFileName + AllowOverride + + + +

    Apache yapılandırma sorumluluğunu dağıtmak için site ağaçları içine özel + dosyalar yerleştirilmesine izin verir. Bu özel dosyalar normalde + .htaccess dosyaları olmakla birlikte AccessFileName yönergesi kullanılarak rasgele bir + isim belirtilebilir. .htaccess dosyalarına yerleştirilen + yönergeler sadece dosyanın bulunduğu dizine ve alt dizinlerine uygulanır. + .htaccess dosyalarında da ana yapılandırma dosyalarında + geçerli sözdizimi kullanılır. .htaccess dosyaları her istek + gelişinde yeniden okunduğundan bu dosyalarda yapılan değişiklikler hemen + etkisini gösterir.

    + +

    .htaccess dosyalarına hangi yönergelerin + yerleştirilebileceğini bulmak için yönerge bağlamına bakınız. Sunucunun + yöneticisi .htaccess dosyalarına hangi yönergelerin + yerleştirilebileceğini ana yapılandırma dosyalarında AllowOverride yönergesini kullanarak + belirleyebilir.

    + +

    .htaccess dosyaları hakkında daha ayrıntılı bilgi edinmek + için .htaccess öğreticisine + bakabilirsiniz.

    +
    +
    diff --git a/docs/manual/content-negotiation.html b/docs/manual/content-negotiation.html index 3fbf5ee048d..d2170a4be57 100644 --- a/docs/manual/content-negotiation.html +++ b/docs/manual/content-negotiation.html @@ -1,11 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: content-negotiation.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 -URI: content-negotiation.html.ja.euc-jp +URI: content-negotiation.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: content-negotiation.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: content-negotiation.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: content-negotiation.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/content-negotiation.html.en b/docs/manual/content-negotiation.html.en index 9e3422187ba..ca204722f89 100644 --- a/docs/manual/content-negotiation.html.en +++ b/docs/manual/content-negotiation.html.en @@ -1,26 +1,35 @@ - -Content Negotiation - Apache HTTP Server +Content Negotiation - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Content Negotiation

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Content Negotiation

    Available Languages:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    @@ -45,8 +54,7 @@ Negotiation
  • Note on hyperlinks and naming conventions
  • Note on Caching
  • -
  • More Information
  • -
    +
    top

    About Content Negotiation

    @@ -122,13 +130,13 @@ Negotiation

    Using a type-map file

    -

    A type map is a document which is associated with the - handler named type-map (or, for - backwards-compatibility with older Apache configurations, the - MIME type application/x-type-map). Note that to - use this feature, you must have a handler set in the - configuration that defines a file suffix as - type-map; this is best done with

    +

    A type map is a document which is associated with the handler + named type-map (or, for backwards-compatibility with + older Apache configurations, the MIME-type + application/x-type-map). Note that to use this + feature, you must have a handler set in the configuration that + defines a file suffix as type-map; this is best done + with

    AddHandler type-map .var

    @@ -189,7 +197,7 @@ Negotiation variant depending on the nature of the resource it represents.

    -

    The full list of headers recognized is available in the mod_negotation +

    The full list of headers recognized is available in the mod_negotiation typemap documentation.

    @@ -503,7 +511,8 @@ Negotiation the normal negotiation process applies.

    Example

    - SetEnvIf Cookie "language=(.+)" prefer-language=$1 + SetEnvIf Cookie "language=(.+)" prefer-language=$1
    + Header append Vary cookie

    top
    @@ -659,20 +668,35 @@ factors to 5 decimal places before choosing the best variant.

    encourage a cache to use the local copy regardless of the negotiation dimensions, set the force-no-vary environment variable.

    -
    top
    -
    -

    More Information

    - -

    For more information about content negotiation, see Alan - J. Flavell's Language - Negotiation Notes. But note that this document may not be - updated to include changes in Apache 2.0.

    Available Languages:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/content-negotiation.html.fr b/docs/manual/content-negotiation.html.fr new file mode 100644 index 00000000000..49d25fe641a --- /dev/null +++ b/docs/manual/content-negotiation.html.fr @@ -0,0 +1,731 @@ + + + + + +Négociation de contenu - Serveur Apache HTTP Version 2.2 + + + + + + + +
    <-
    +

    A savoir

    +

    Ce document concerne une version ancienne (2.2) + du serveur HTTP Apache. La version actuelle est + documentée ici. Si vous n'avez + pas encore effectué la mise è jour, veuillez suivre ce + lien pour plus d'informations.

    +

    Pour consulter la version actuelle de ce + document, vous pouvez suivre ce lien.

    Négociation de contenu

    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + + +

    Apache supporte la négociation de contenu telle qu'elle est décrite + dans la spécification HTTP/1.1. Il peut choisir la meilleure représentation + d'une ressource en fonction des préférences du navigateur pour ce qui + concerne le type de media, les langages, le jeu de caractères et son + encodage. Il implémente aussi quelques fonctionnalités pour traiter de + manière plus intelligente les requêtes en provenance de navigateurs qui + envoient des informations de négociation incomplètes.

    + +

    La négociation de contenu est assurée par le module + mod_negotiation qui est compilé par défaut + dans le serveur.

    +
    + +
    top
    +
    +

    À propos de la négociation de contenu

    + +

    Une ressource peut être disponible selon différentes représentations. + Par exemple, elle peut être disponible en différents langages ou pour + différents types de média, ou une combinaison des deux. + Pour faire le meilleur choix, on peut fournir à l'utilisateur une page + d'index, et le laisser choisir. Cependant, le serveur peut souvent faire + ce choix automatiquement. Ceci est possible car les navigateurs peuvent + envoyer des informations sur les + représentations qu'ils préfèrent à l'intérieur de chaque requête. + Par exemple, un navigateur peut indiquer + qu'il préfère voir les informations en français, mais qu'en cas + d'impossibilité l'anglais peut convenir. Les navigateurs indiquent leurs + préférences à l'aide d'en-têtes dans la requête. Pour ne demander que des + représentations en français, le navigateur peut utiliser l'en-tête :

    + +

    Accept-Language: fr

    + +

    Notez qu'il ne sera tenu compte de cette préférence que s'il existe un + choix de représentations et que ces dernières varient en fonction + du langage.

    + +

    À titre d'exemple d'une requête plus complexe, ce navigateur a été + configuré pour accepter le français et l'anglais, avec une préférence pour + le français, et accepter différents types de média, avec une préférence + pour HTML par rapport au texte plat (plain text) ou autres types de fichiers texte, et + avec une préférence pour GIF ou JPEG par rapport à tout autre type de + média, mais autorisant tout autre type de média en dernier ressort :

    + +

    + Accept-Language: fr; q=1.0, en; q=0.5
    + Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1 +

    + +

    Apache supporte la négociation de contenu "server driven" (telle qu'elle + est définie dans la spécification HTTP/1.1), où c'est le serveur qui + décide quelle est la meilleure représentation à retourner pour la ressource + demandée. Il supporte entièrement les en-têtes de requête + Accept, Accept-Language, + Accept-Charset et Accept-Encoding. + Apache supporte aussi la négociation de contenu transparente, qui est un + protocole de négociation expérimental défini dans les RFC 2295 et 2296. + Il ne supporte pas la négociation de fonctionnalité (feature negotiation) + telle qu'elle est définie dans ces RFCs.

    + +

    Une ressource est une entité conceptuelle identifiée + par une URI (RFC 2396). Un serveur HTTP comme Apache propose l'accès à des + représentations de la ressource à l'intérieur de son + espace de nommage, chaque représentation étant composée d'une séquence + d'octets avec la définition d'un type de media, d'un jeu de caractères, + d'un encodage, etc... A un instant donné, chaque ressource peut être + associée avec zéro, une ou plusieurs représentations. Si plusieurs + représentations sont disponibles, la ressource est qualifiée de + négociable et chacune de ses représentations se nomme + variante. Les différences entre les + variantes disponibles d'une ressource négociable constituent les + dimensions de la négociation.

    +
    top
    +
    +

    La négociation avec Apache

    + +

    Afin de négocier une ressource, on doit fournir au serveur des + informations à propos de chacune des variantes. Il y a deux manières + d'accomplir ceci :

    + +
      +
    • Utiliser une liste de correspondances de types ("type-map") (c'est à dire + un fichier *.var) qui nomme explicitement les fichiers + contenant les variantes, ou
    • + +
    • Utiliser une recherche "multivues", où le serveur effectue une + recherche de correspondance sur un motif de nom de fichier implicite et + fait son choix parmi les différents résultats.
    • +
    + +

    Utilisation d'un fichier de + correspondances de types (type-map)

    + +

    Une liste de correspondances de types est un document associé au + gestionnaire type-map (ou, dans un souci de compatibilité + ascendante avec des configurations d'Apache plus anciennes, le + type MIME + application/x-type-map). Notez que pour utiliser cette + fonctionnalité, vous devez, dans le fichier de configuration, définir un + gestionnaire qui associe un suffixe de fichier à une type-map; + ce qui se fait simplement en ajoutant

    + +

    AddHandler type-map .var

    + +

    dans le fichier de configuration du serveur.

    + +

    Les fichiers de correspondances de types doivent posséder le même nom que + la ressource qu'ils décrivent, et comporter une entrée pour chaque variante + disponible; chaque entrée consiste en une ligne contiguë d'en-têtes au + format HTTP. les entrées sont séparées par des lignes vides. Les lignes + vides à l'intérieur d'une entrée sont interdites. Par convention, le + fichier de correspondances débute par une entrée concernant l'entité + considérée dans son ensemble (bien que ce ne soit pas obligatoire, et + ignoré si présent). Un exemple de fichier de correspondance est fourni + ci-dessous. + Ce fichier doit être nommé foo.var, car il décrit une + ressource nommée foo.

    + +

    + URI: foo
    +
    + URI: foo.en.html
    + Content-type: text/html
    + Content-language: en
    +
    + URI: foo.fr.de.html
    + Content-type: text/html;charset=iso-8859-2
    + Content-language: fr, de
    +

    +

    Notez aussi qu'un fichier de correspondances de types prend le pas sur + les extensions de noms de fichiers, même si les Multivues sont activées. + Si les variantes sont de qualités différentes, on doit l'indiquer + à l'aide du paramètre "qs" à la suite du type de média, comme pour cette + image + (disponible aux formats JPEG, GIF, ou ASCII-art) :

    + +

    + URI: foo
    +
    + URI: foo.jpeg
    + Content-type: image/jpeg; qs=0.8
    +
    + URI: foo.gif
    + Content-type: image/gif; qs=0.5
    +
    + URI: foo.txt
    + Content-type: text/plain; qs=0.01
    +

    + +

    Les valeurs de qs peuvent varier de 0.000 à 1.000. Notez que toute + variante possédant une valeur de qs de 0.000 ne sera jamais choisie. + Les variantes qui n'ont pas de paramètre qs défini se voient attribuer + une valeur de 1.0. Le paramètre qs indique la qualité relative de la + variante comparée à celle des autres variantes disponibles, sans tenir + compte des capacités du client. Par exemple, un fichier JPEG possède + en général une qualité supérieure à celle d'un fichier ASCII s'il + représente une photographie. Cependant, si la ressource représentée est + à un ASCII art original, la représentation ASCII sera de meilleure qualité + que la représentation JPEG. Ainsi une valeur de qs est associée à une + variante en fonction de la nature de la ressource qu'elle représente.

    + +

    La liste complète des en-têtes reconnus est disponible dans la + documentation de la directive + typemap (module mod_negotiation).

    + + +

    Multivues (option Multiviews)

    + +

    MultiViews est une option qui s'applique à un répertoire, + ce qui signifie qu'elle peut être activée à l'aide d'une directive + Options à l'intérieur d'une section + <Directory>, <Location> ou <Files> dans + httpd.conf, ou (si AllowOverride est correctement positionnée) dans + des fichiers + .htaccess. Notez que Options All + n'active pas MultiViews; vous devez activer cette option en + la nommant explicitement.

    + +

    L'effet de MultiViews est le suivant : si le serveur reçoit + une requête pour /tel/répertoire/foo, si + MultiViews est activée pour + /tel/répertoire, et si + /tel/répertoire/foo n'existe pas, le serveur parcourt + le répertoire à la recherche de fichiers nommés foo.*, et génère + une correspondance de types (type map) qui liste tous ces + fichiers, en leur associant les mêmes types de média et encodages de + contenu qu'ils auraient eu si le client avait demandé l'accès à l'un + d'entre eux par son nom. Il choisit ensuite ce qui correspond le mieux + aux besoins du client.

    + +

    MultiViews peut aussi s'appliquer à la recherche du fichier + nommé par la directive DirectoryIndex, si le serveur tente d'indexer + un répertoire. Si les fichiers de configuration spécifient

    +

    DirectoryIndex index

    +

    le serveur va choisir entre index.html + et index.html3 si les deux fichiers sont présents. Si aucun + n'est présent, mais index.cgi existe, + le serveur l'exécutera.

    + +

    Si, parcequ'elle n'est pas reconnue par mod_mime, + l'extension d'un des fichiers du répertoire ne permet pas de + déterminer son jeu de caractères, son type de contenu, son langage, ou son + encodage, alors + le résultat dépendra de la définition de la directive MultiViewsMatch. Cette directive détermine + si les gestionnaires (handlers), les filtres, et autres types d'extensions + peuvent participer à la négociation MultiVues.

    + +
    top
    +
    +

    Les méthodes de négociation

    + +

    Une fois obtenue la liste des variantes pour une ressource donnée, + Apache dispose de deux méthodes pour choisir la meilleure variante à + retourner, s'il y a lieu, soit à partir d'un fichier de + correspondances de types, soit en se basant sur les noms de fichiers du + répertoire. Il n'est pas nécessaire de connaître en détails comment la + négociation fonctionne réellement pour pouvoir utiliser les fonctionnalités + de négociation de contenu d'Apache. La suite de ce document explique + cependant les méthodes utilisées pour ceux ou celles qui sont + intéressés(ées).

    + +

    Il existe deux méthodes de négociation :

    + +
      +
    1. La négociation effectuée par le serveur selon l'algorithme + d'Apache est normalement utilisée. l'algorithme d'Apache est + expliqué plus en détails ci-dessous. Quand cet algorithme est utilisé, + Apache peut parfois "bricoler" le facteur de qualité (qs) d'une dimension + particulière afin d'obtenir un meilleur résultat. + La manière dont Apache peut modifier les facteurs de qualité est + expliquée plus en détails ci-dessous.
    2. + +
    3. La négociation de contenu transparente est utilisée + quand le navigateur le demande explicitement selon le mécanisme défini + dans la RFC 2295. Cette méthode de négociation donne au navigateur le + contrôle total du choix de la meilleure variante; le résultat dépend + cependant de la spécificité des algorithmes utilisés par le navigateur. + Au cours du processus de négociation transparente, le navigateur peut + demander à Apache d'exécuter l'"algorithme de sélection de variante à + distance" défini dans la RFC 2296.
    4. +
    + +

    Les dimensions de la négociation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DimensionNotes
    Type de médiaLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept. Chaque type de média peut se voir associé un facteur de + qualité. La description de la variante peut aussi avoir un facteur de + qualité (le paramètre "qs").
    LangageLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept-Language. Chaque langue peut se voir associée un facteur de + qualité. Les variantes peuvent être associées avec zéro, un ou + plusieurs langages.
    EncodingLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept-Encoding. Chaque encodage peut se voir associé un facteur de + qualité.
    CharsetLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept-Charset. Chaque jeu de caractères peut se voir associé un facteur de + qualité. Les variantes peuvent préciser un jeu de caractères comme + paramètre du type de média.
    + + +

    L'algorithme de négociation d'Apache

    + +

    Apache peut utiliser l'algorithme suivant pour choisir la "meilleure" + variante (s'il y en a une) à retourner au navigateur. Cet algorithme n'est pas + configurable. Il fonctionne comme suit :

    + +
      +
    1. En premier lieu, pour chaque dimension de la négociation, consulter + le champ d'en-tête Accept* approprié et assigner une qualité à + chaque variante. Si l'en-tête Accept* pour toute dimension + implique que la variante n'est pas acceptable, éliminer cette dernière. + S'il ne reste plus de variante, aller à l'étape 4.
    2. + +
    3. + Choisir la "meilleure" variante par élimination. Chacun des tests + suivants est effectué dans cet ordre. Toute variante non sélectionnée + à l'issue d'un test est éliminée. Après chaque test, s'il reste une + seule variante, choisir cette dernière comme celle qui correspond le + mieux puis aller à l'étape 3. S'il reste plusieurs variantes, passer + au test suivant. + +
        +
      1. Multiplier le facteur de qualité de l'en-tête + Accept par le facteur de qualité "qs" pour le type de + média de ces variantes, et choisir la variante qui possède la valeur + la plus importante.
      2. + +
      3. Sélectionner les variantes qui possèdent le facteur de qualité + de langage le plus haut.
      4. + +
      5. Sélectionner les variantes dont le langage correspond le mieux, + en se basant sur l'ordre des langages de l'en-tête + Accept-Language (s'il existe), ou de la directive + LanguagePriority (si elle existe).
      6. + +
      7. Sélectionner les variantes possédant le paramètre de média + "level" le plus élevé (utilisé pour préciser la version des types de + média text/html).
      8. + +
      9. Sélectionner les variantes possédant le paramètre de média + "charset" (jeu de caractères) qui correspond le mieux, en se basant + sur la ligne d'en-tête Accept-Charset . Le jeu de + caractères ISO-8859-1 est acceptable sauf s'il est explicitement + exclus. Les variantes avec un type de média text/* + mais non explicitement associées avec un jeu de caractères + particulier sont supposées être en ISO-8859-1.
      10. + +
      11. Sélectionner les variantes dont le paramètre de média "charset" + associé n'est pas ISO-8859-1. S'il n'en existe pas, + sélectionner toutes les variantes.
      12. + +
      13. Sélectionner les variantes avec le meilleur encodage. S'il existe + des variantes avec un encodage acceptable pour le client, + sélectionner celles-ci. Sinon, s'il existe des variantes encodées et + des variantes non encodées, ne sélectionner que les variantes non + encodées. Si toutes les variantes sont encodées ou si aucune + ne l'est, sélectionner toutes les variantes.
      14. + +
      15. Sélectionner les variantes dont le contenu a la longueur + la plus courte.
      16. + +
      17. Sélectionner la première des variantes restantes. Il s'agira + soit de la première variante listée dans le fichier de + correspondances de types, soit, quand les variantes sont lues depuis + le répertoire, la première par ordre alphabétique quand elles sont + triées selon le code ASCII.
      18. +
      +
    4. + +
    5. L'algorithme a maintenant sélectionné une variante considérée comme + la "meilleure", il la retourne donc au client en guise de réponse. + L'en-tête HTTP Vary de la réponse est renseigné de façon à + indiquer les dimensions de la négociation (les navigateurs et les caches + peuvent utiliser cette information lors de la mise en cache de la + ressource). Travail terminé.
    6. + +
    7. Le passage par cette étape signifie qu'aucune variante n'a été + sélectionnée (parce qu'aucune n'est acceptable pour le client HTTP). + Envoyer une réponse avec un code de statut 406 (qui signifie "Aucune + représentation acceptable") et un corps comportant un document HTML qui + affiche les variantes disponibles. Renseigner aussi l'en-tête HTTP + Vary de façon à indiquer les dimensions de la variante.
    8. +
    + +
    top
    +
    +

    Ajustement des valeurs de qualité

    + +

    Parfois Apache modifie les valeurs de qualité par rapport à celles qui + découleraient d'une stricte interprétation de l'algorithme de négociation + d'Apache ci-dessus, ceci pour améliorer les résultats de l'algorithme pour + les navigateurs qui envoient des informations incomplètes ou inappropriées. + Certains des navigateurs les plus populaires envoient des informations dans + l'en-tête Accept qui, sans ce traitement, provoqueraient la + sélection d'une variante inappropriée dans de nombreux cas. Quand un + navigateur envoie des informations complètes et correctes ces ajustements + ne sont pas effectués.

    + +

    Types de média et caractères génériques

    + +

    L'en-tête de requête Accept: indique les types de média + souhaités. Il peut aussi contenir des types de média avec caractères + génériques, comme "image/*" ou "*/*" où * correspond à n'importe quelle + chaîne de caractères. Ainsi une requête contenant :

    + +

    Accept: image/*, */*

    + +

    indiquerait que tout type de média est acceptable, avec une préférence + pour les types commençant par "image/". + Certains navigateurs ajoutent par défaut des types de média avec caractères + génériques aux types explicitement nommés qu'ils peuvent gérer. + Par exemple :

    + +

    + Accept: text/html, text/plain, image/gif, image/jpeg, */* +

    +

    Ceci indique que les types explicitement listés sont préférés, mais + qu'une représentation avec un type différent de ces derniers conviendra + aussi. Les valeurs de qualités explicites, + afin de préciser ce que veut vraiment le navigateur, s'utilisent + comme suit :

    +

    + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 +

    +

    Les types explicites n'ont pas de facteur de qualité, la valeur par + défaut de leur préférence est donc de 1.0 (la plus haute). Le type avec + caractères génériques */* se voit attribuer une préférence basse de 0.01, + si bien que les types autres que ceux explicitement listés ne seront retournés + que s'il n'existe pas de variante correspondant à un type explicitement + listé.

    + +

    Si l'en-tête Accept: ne contient pas aucun + facteur de qualité, Apache positionne la valeur de qualité de + "*/*", si present, à 0.01 pour simuler l'effet désiré. Il positionne aussi + la valeur de qualité des types avec caractères génériques au format + "type/*" à 0.02 (ils sont donc préférés à ceux correspondant à "*/*"). Si + un type de média dans l'en-tête Accept: contient un facteur de + qualité, ces valeurs spéciales ne seront pas appliquées, de façon + à ce que les requêtes de navigateurs qui envoient les informations + explicites à prendre en compte fonctionnent comme souhaité.

    + + +

    Exceptions dans la négociation du +langage

    + +

    A partir de la version 2.0 d'Apache, certaines exceptions ont été + ajoutées à l'algorithme de négociation afin de ménager une issue de secours + quand la négociation ne trouve aucun langage correspondant.

    + +

    Quand un client demande une page sur votre serveur, si ce dernier ne + parvient pas à trouver une page dont la langue corresponde à l'en-tête + Accept-language envoyé par le navigateur, il enverra au client + une réponse "Aucune variante acceptable" ou "Plusieurs choix possibles". + Pour éviter ces + messages d'erreur, il est possible de configurer Apache de façon à ce que, + dans ces cas, il ignore l'en-tête Accept-language et fournisse + tout de même un document, même s'il ne correspond pas exactement à la + demande explicite du client. La directive ForceLanguagePriority + peut être utilisée pour éviter ces messages d'erreur et leur substituer une + page dont le langage sera déterminé en fonction du contenu de la directive + LanguagePriority.

    + +

    Le serveur va aussi essayer d'étendre sa recherche de correspondance aux + sous-ensembles de langages quand aucune correspondance exacte ne peut être + trouvée. Par exemple, si un client demande des documents possédant le + langage en-GB, c'est à dire anglais britannique, le standard + HTTP/1.1 n'autorise normalement pas le serveur à faire correspondre cette + demande à un document dont le langage est simplement en. + (Notez qu'inclure en-GB et non en dans l'en-tête + Accept-Language constitue une quasi-erreur de configuration, + car il est très peu probable qu'un lecteur qui comprend l'anglais + britannique, ne comprenne pas l'anglais en général. Malheureusement, de + nombreux clients ont réellement des configurations par défaut de ce type.) + Cependant, si aucune autre correspondance de langage n'est possible, et que le + serveur est sur le point de retourner une erreur "Aucune variable + acceptable" ou de choisir le langage défini par la directive LanguagePriority, le serveur ignorera + la spécification du sous-ensemble de langage et associera la demande en + en-GB à des documents en en. Implicitement, + Apache ajoute le langage parent à la liste de langues acceptées par le + client avec une valeur de qualité très basse. Notez cependant que si le + client demande "en-GB; q=0.9, fr; q=0.8", et le serveur dispose de + documents estampillés "en" et "fr", alors c'est le document "fr" qui sera + retourné, tout ceci dans un souci de compatibilité avec la spécification + HTTP/1.1 et afin de fonctionner efficacement avec les clients + correctement configurés.

    + +

    Pour supporter les techniques avancées (comme les cookies ou les chemins + d'URL spéciaux) afin de déterminer le langage préféré de l'utilisateur, le + module mod_negotiation reconnaît la + variable d'environnement + prefer-language + depuis la version 2.0.47 d'Apache. Si elle est définie et contient un + symbole de langage approprié, mod_negotiation va essayer + de sélectionner une variante correspondante. S'il n'existe pas de telle + variante, le processus normal de négociation sera lancé.

    + +

    Exemple

    + SetEnvIf Cookie "language=(.+)" prefer-language=$1 + Header append Vary cookie +

    + +
    top
    +
    +

    Extensions à la négociation de contenu +transparente

    + +

    Apache étend le protocole de négociation de contenu transparente (RFC +2295) comme suit. Un nouvel élément {encodage ..} est utilisé dans +les listes de variantes pour marquer celles qui ne sont disponibles qu'avec un +encodage de contenu spécifique. L'implémentation de l'algorithme +RVSA/1.0 (RFC 2296) est étendue à la reconnaissance de variantes encodées dans +la liste, et à leur utilisation en tant que variantes candidates à partir du +moment où leur encodage satisfait au contenu de l'en-tête de requête +Accept-Encoding. L'implémentation RVSA/1.0 n'arrondit pas les +facteurs de qualité calculés à 5 décimales avant d'avoir choisi la meilleure +variante.

    +
    top
    +
    +

    Remarques à propos des liens hypertextes et des +conventions de nommage

    + +

    Si vous utilisez la négociation de langage, vous avez le choix entre + différentes conventions de nommage, car les fichiers peuvent posséder + plusieurs extensions, et l'ordre dans lequel ces dernières apparaissent + est en général sans rapport (voir la documentation sur le module mod_mime + pour plus de détails).

    + +

    Un fichier type possède une extension liée au type MIME + (par exemple, html), mais parfois aussi une + extension liée à l'encodage (par exemple, gz), + et bien sûr une extension liée au langage + (par exemple, en) quand plusieurs variantes de + langage sont disponibles pour ce fichier.

    + +

    Exemples :

    + +
      +
    • foo.en.html
    • + +
    • foo.html.en
    • + +
    • foo.en.html.gz
    • +
    + +

    Ci-dessous d'autres exemples de noms de fichiers avec des liens + hypertextes valides et invalides :

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Nom fichierlien valideLien invalide
    foo.html.enfoo
    + foo.html
    -
    foo.en.htmlfoofoo.html
    foo.html.en.gzfoo
    + foo.html
    foo.gz
    + foo.html.gz
    foo.en.html.gzfoofoo.html
    + foo.html.gz
    + foo.gz
    foo.gz.html.enfoo
    + foo.gz
    + foo.gz.html
    foo.html
    foo.html.gz.enfoo
    + foo.html
    + foo.html.gz
    foo.gz
    + +

    En regardant la table ci-dessus, vous remarquerez qu'il est toujours + possible d'utiliser le nom de fichier sans extension dans un lien + (par exemple, foo). L'avantage est de pouvoir + dissimuler le type réel du fichier associé à un document et de pouvoir + le modifier + ultérieurement, par exemple, de html à + shtml ou cgi sans avoir à + mettre à jour aucun lien.

    + +

    Si vous souhaitez continuer à utiliser un type MIME dans vos liens + (par exemple foo.html), l'extension liée au langage + (y compris une extension liée à l'encodage s'il en existe une) + doit se trouver à droite de l'extension liée au type MIME + (par exemple, foo.html.en).

    +
    top
    +
    +

    Remarque sur la mise en cache

    + +

    Quand un cache stocke une représentation, il l'associe avec l'URL de la + requête. Lorsque cette URL est à nouveau demandée, le cache peut utiliser + la représentation stockée. Cependant, si la ressource est négociable au + niveau du serveur, il se peut que seule la première variante demandée soit + mise en cache et de ce fait, la correspondance positive du cache peut + entraîner une réponse inappropriée. Pour éviter ceci, Apache marque par + défaut toutes les réponses qui sont retournées après une négociation de + contenu comme "non-cachables" par les clients HTTP/1.0. Apache supporte + aussi les fonctionnalités du protocole HTTP/1.1 afin de permettre la mise + en cache des réponses négociées.

    + +

    Pour les requêtes en provenance d'un client compatible HTTP/1.0 + (un navigateur ou un cache), la directive CacheNegotiatedDocs peut être utilisée + pour permettre la mise en cache des réponses qui ont fait l'objet d'une + négociation. Cette directive peut intervenir dans la configuration au + niveau du serveur ou de l'hôte virtuel, et n'accepte aucun argument. Elle + n'a aucun effet sur les requêtes en provenance de clients HTTP/1.1.

    + +

    Pour les clients HTTP/1.1, Apache envoie un en-tête de réponse HTTP + Vary afin d'indiquer les dimensions de la négociation pour + cette réponse. Les caches peuvent + utiliser cette information afin de déterminer + si une requête peut être servie à partir de la copie locale. Pour inciter + un cache à utiliser la copie locale sans tenir compte des dimensions de la + négociation, définissez la + variable d'environnement + force-no-vary.

    + +
    +
    +

    Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Commentaires

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/content-negotiation.html.ja.euc-jp b/docs/manual/content-negotiation.html.ja.euc-jp deleted file mode 100644 index 286fdf122cc..00000000000 --- a/docs/manual/content-negotiation.html.ja.euc-jp +++ /dev/null @@ -1,727 +0,0 @@ - - - -¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó

    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - - -

    Apache ¤Ï HTTP/1.1 ¤ε¬³ʤ˵­½Ҥµ¤ì¤Ƥ¤¤륳¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤ò - ¥µ¥ݡ¼¥Ȥ·¤Ƥ¤¤ޤ¹¡£ - ¥֥饦¥¶¤ˤè¤êÄ󶡤µ¤줿¥á¥ǥ£¥¢¥¿¥¤¥ס¢ - ¸À¸졢ʸ»ú¥»¥åȡ¢¥¨¥󥳡¼¥ǥ£¥󥰤ÎͥÀ跹¸þ¤˴ð¤Ť¤¤ơ¢ - ºÇŬ¤ʥ꥽¡¼¥¹¤Îɽ¸½¤òÁªÂò¤Ǥ­¤ޤ¹¡£ - ¤ޤ¿¡¢ÉԴ°Á´¤ʥͥ´¥·¥¨¡¼¥·¥ç¥ó¾ðÊó¤òÁ÷¤äƤ¯¤ë¥֥饦¥¶¤«¤é¤Υꥯ¥¨¥¹¥Ȥò - ¤â¤äȸ­¤¯¼è¤갷¤¨¤ë¤褦¡¢¤¤¤¯¤Ĥ«µ¡ǽ¤â¼ÂÁõ¤·¤Ƥ¢¤ê¤ޤ¹¡£

    - -

    ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤Ï - mod_negotiation - ¥⥸¥塼¥ë¤ˤè¤äÆÄ󶡤µ¤ì¤Ƥ¤¤ơ¢¥ǥե©¥ë¥ȤÇÁȤ߹þ¤ޤì¤Ƥ¤¤ޤ¹¡£

    -
    - -
    top
    -
    -

    ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤ˤĤ¤¤Æ

    - -

    ¥꥽¡¼¥¹¤ϡ¢´ö¤Ĥ«°ۤʤä¿ɽ¸½¤ÇÍøÍѤǤ­¤ë¾ì¹礬¤¢¤ê¤ޤ¹¡£ - Î㤨¤С¢°ۤʤë¸À¸ì¤ä°ۤʤë¥á¥ǥ£¥¢¥¿¥¤¥ס¢ - ¤ޤ¿¤Ϥ½¤ì¤é¤ÎÁȤ߹ç¤碌¤ÇÍøÍѤǤ­¤뤫¤âÃΤì¤ޤ»¤ó¡£ - ¤â¤äȤâŬ¤·¤¿ÁªÂò¤򤹤ëÊýˡ¤ΰì¤Ĥˤϡ¢¥¤¥ó¥ǥ寥¹¥ڡ¼¥¸¤ò - ¥桼¥¶¤˸«¤»¤ơ¢¥桼¥¶¤ËÁª¤ó¤Ǥâ¤餦Êýˡ¤¬¤¢¤ê¤ޤ¹¡£ - ¤·¤«¤·¡¢¥µ¡¼¥Ф¬¼«ưŪ¤ËÁª¤֤³¤Ȥ¬¤Ǥ­¤ë¾ì¹礬¿¤¯¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¥֥饦¥¶¤¬¥ꥯ¥¨¥¹¥ÈËè¤ˡ¢ - ¤ɤÎɽ¸½¤òÓϹ¥¤¹¤뤫¤Ȥ¤¤¦¾ðÊó¤òÁ÷¤뤳¤ȤÇưº¤Ƥ¤¤ޤ¹¡£ - Î㤨¤Х֥饦¥¶¤ϡ¢²Äǽ¤ʤé¥եé¥󥹸ì¤ǾðÊó¤򸫤¿¤¤¡¢ - ÉԲÄǽ¤ʤ餽¤ÎÂå¤ï¤ê¤˱Ѹì¤Ǥâ¤褤¤ȡ¢ - ¼«ʬ¤ÎÓϹ¥¤òÃΤ餻¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¥֥饦¥¶¤ϥꥯ¥¨¥¹¥ȤΥإåÀ¤Ǽ«ʬ¤ÎͥÀ跹¸þ¤òÃΤ餻¤ޤ¹¡£ - ¥եé¥󥹸ì¤ΤߤÎɽ¸½¤òÍ׵᤹¤ë¾ì¹ç¤ϡ¢¥֥饦¥¶¤ϼ¡¤òÁ÷¤ê¤ޤ¹¡£

    - -

    Accept-Language: fr

    - -

    ¤³¤ÎͥÀ跹¸þ¤ϡ¢ÁªÂò²Äǽ¤Êɽ¸½¤¬¸ºߤ·¤ơ¢ - ¸À¸ì¤ˤè¤äÆÍ͡¹¤Êɽ¸½¤¬¤¢¤ë¾ì¹ç¤ˤΤßŬÍѤµ¤ì¤ë - ¤Ȥ¤¤¦¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    ¤â¤äÈʣ»¨¤ʥꥯ¥¨¥¹¥ȤÎÎã¤òµ󤲤ޤ·¤礦¡£ - ¤³¤Υ֥饦¥¶¤ϥեé¥󥹸ì¤ȱѸì¤ò¼õ¤±Éդ±¤롢¤·¤«¤·¥եé¥󥹸ì¤򹥤ࡢ - ¤½¤·¤ÆÍ͡¹¤ʥá¥ǥ£¥¢¥¿¥¤¥פò¼õ¤±Éդ±¤뤬¡¢ - ¥ץ쥤¥ó¥ƥ­¥¹¥Ȥä¾¤Υ¿¥¤¥פè¤ê¤Ï HTML ¤򹥤ࡢ - ¾¤Υá¥ǥ£¥¢¥¿¥¤¥פè¤ê¤Ï GIF ¤ä JPEG ¤򹥤ࡢ¤·¤«¤·ºǽª¼êÃʤȤ·¤Æ - ¾¤Υá¥ǥ£¥¢¥¿¥¤¥פâ¼õ¤±Éդ±¤롢¤ÈÀßÄꤵ¤ì¤Ƥ¤¤ޤ¹¡£

    - -

    - Accept-Language: fr; q=1.0, en; q=0.5
    - Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1 -

    - -

    Apache ¤Ï HTTP/1.1 µ¬³ʤÇÄêµÁ¤µ¤ì¤Ƥ¤¤ë 'server - driven' ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤򥵥ݡ¼¥Ȥ·¤Ƥ¤¤ޤ¹¡£ - Accept, Accept-Language, - Accept-Charset, Accept-Encoding - ¥ꥯ¥¨¥¹¥ȥإåÀ¤ò´°Á´¤˥µ¥ݡ¼¥Ȥ·¤Ƥ¤¤ޤ¹¡£Apache ¤Ï - 'transparent' ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤⥵¥ݡ¼¥Ȥ·¤Ƥ¤¤ޤ¹¤¬¡¢ - ¤³¤ì¤Ï RFC 2295 ¤È RFC 2296 ¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ë»Ū¤Ê - ¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¥ץí¥ȥ³¥ë¤Ǥ¹¡£ - ¤³¤ì¤é¤Î RFC¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤ë 'feature negotiation' - ¤ϥµ¥ݡ¼¥Ȥ·¤Ƥ¤¤ޤ»¤ó¡£

    - -

    ¥꥽¡¼¥¹¤ȤÏ URI - ¤ÇÆÃÄꤵ¤ì¤복ǰ¾å¤Τâ¤ΤΤ³¤ȤǤ¹ (RFC 2396)¡£ Apache - ¤Τ褦¤Ê HTTP ¥µ¡¼¥Фϡ¢¤½¤Î̾Á°¶õ´֤ÎÃæ¤ǤÎ - ¥꥽¡¼¥¹¤Îɽ¸½¤ؤΥ¢¥¯¥»¥¹¤òÄ󶡤·¤ޤ¹¡£ - ¤½¤줾¤ì¤Îɽ¸½¤Ï - ÄêµÁ¤µ¤줿¥á¥ǥ£¥¢¥¿¥¤¥ס¢ʸ»ú¥»¥åȡ¢¥¨¥󥳡¼¥ǥ£¥ó¥°Åù¤Î - ÉÕ°¤·¤¿¡¢¥Х¤¥ÈÎó¤ηÁ¼°¤Ǥ¹¡£ - ¤½¤줾¤ì¤Υ꥽¡¼¥¹¤Ϥ¢¤ë»þÅÀ¤Ç 0 ¸ġ¢1 ¸ġ¢¤½¤ì°ʾå¤Îɽ¸½¤È - ´ØϢÉդ±¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤ޤ¹¡£ʣ¿ô¤Îɽ¸½¤¬ÍøÍѤǤ­¤ë¾ì¹ç¤ϡ¢ - ¥꥽¡¼¥¹¤Ï¥ͥ´¥·¥¨¡¼¥·¥ç¥ó²Äǽ¤Ǥ¢¤ë¤Ȥµ¤졢 - ¸ġ¹¤Îɽ¸½¤Ï variant ¤ȸƤФì¤ޤ¹¡£ - ¥ͥ´¥·¥¨¡¼¥·¥ç¥ó²Äǽ¤ʥ꥽¡¼¥¹¤Î variant ¤¬°ۤʤ롢 - ¤½¤ξõÂ֤ò»ؤ·¤ơ¢ - ¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤Î¼¡¸µ¤ȸƤӤޤ¹¡£

    -
    top
    -
    -

    Apache ¤ˤª¤±¤ë¥ͥ´¥·¥¨¡¼¥·¥ç¥ó

    - -

    ¥꥽¡¼¥¹¤ò¥ͥ´¥·¥¨¡¼¥·¥ç¥󤹤뤿¤á¤ˤϡ¢ - ¥µ¡¼¥ФÏ variant ¤½¤줾¤ì¤ˤĤ¤¤ƤξðÊó¤òÃΤäƤª¤¯ɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤³¤ì¤ϰʲ¼¤ÎÆó¤ĤÎÊýˡ¤ΤɤÁ¤餫¤ǹԤï¤ì¤ޤ¹¡£

    - -
      -
    • ¥¿¥¤¥ץޥå× - (¤¹¤ʤï¤Á *.var ¥ե¡¥¤¥ë) - ¤ò»Ȥ¦Êýˡ¡£ ¤³¤ì¤Ï variant - ¤òÌÀ¼¨Ū¤˵󤲤Ƥ¤¤ë¥ե¡¥¤¥ë¤ò»ØÄꤷ¤ޤ¹¡£
    • - -
    • 'Multiviews' - ¤ò»Ȥäơ¢¥µ¡¼¥Ф¬°ÅÌۤÎÆâ¤˥ե¡¥¤¥ë̾¤˥ѥ¿¡¼¥ó¾ȹç¤ò - ¹ԤʤäƤ½¤ηë²̤«¤éÁªÂ򤹤ëÊýˡ¡£
    • -
    - -

    type-map ¥ե¡¥¤¥ë¤ò»Ȥ¦

    - -

    ¥¿¥¤¥ץޥåפÏ type-map ¥ϥó¥ɥé - (¤⤷¤¯¤ϡ¢¸Ť¤ Apache - ¤ÎÀßÄê¤Ȳ¼°̸ߴ¹¤Ǥ¢¤ë MIME ¥¿¥¤¥× - application/x-type-map) - ¤˴ØϢÉդ±¤é¤줿¥ɥ­¥å¥á¥ó¥ȤǤ¹¡£ - ¤³¤ε¡ǽ¤ò»Ȥ¦¤¿¤á¤ˤϡ¢¤¢¤ë¥ե¡¥¤¥ë¤γÈĥ»Ҥò - type-map - ¤Ȥ·¤ÆÄêµÁ¤¹¤ë¤褦¤ʥϥó¥ɥé¤ò¡¢ - ÀßÄê¥ե¡¥¤¥ëÃæ¤ËÃ֤¯ɬÍפ¬¤¢¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¤³¤ì¤Ï

    - -

    AddHandler type-map .var

    - -

    ¤򥵡¼¥ÐÀßÄê¥ե¡¥¤¥ëÃæ¤˽񤯤³¤Ȥ¬°ìÈÖÎɤ¤Êýˡ¤Ǥ¹¡£

    - -

    ¥¿¥¤¥ץޥåץե¡¥¤¥ë¤ϵ­½Ҥ¹¤ë¥꥽¡¼¥¹¤ÈƱ¤¸̾Á°¤ò»ý¤äƤ¤¤ơ¢ - ÍøÍѲÄǽ¤Ê variant ¤½¤줾¤ì¤Υ¨¥ó¥ȥê¤ò»ý¤äƤ¤¤ëɬÍפ¬¤¢¤ê¤ޤ¹¡£ - ¤½¤·¤ơ¢¤³¤Υ¨¥ó¥ȥê¤ÏϢ³¤·¤¿ HTTP ¤ΥإåÀ¹Ԥǹ½À®¤µ¤ì¤ޤ¹¡£ - °ۤʤë variant ¤Τ¿¤á¤Υ¨¥ó¥ȥê¤϶õ¹ԤǶèÀڤé¤ì¤Ƥ¤¤ޤ¹¡£ - ¥¨¥ó¥ȥêÃæ¤˶õ¹Ԥ¬ʣ¿ô¤¢¤äƤϤ¤¤±¤ޤ»¤ó¡£ - ½¬´·Ū¤ˤϡ¢¥ޥåץե¡¥¤¥ë¤ÏÁ´ÂΤò·ë¹礷¤¿¤â¤ΤΥ¨¥ó¥ȥ꤫¤é»Ϥޤê¤ޤ¹ - (¤·¤«¤·¤³¤ì¤Ïɬ¿ܤǤϤʤ¯¡¢¤¢¤ä¿¤Ȥ·¤Ƥâ̵»뤵¤ì¤ë¤â¤ΤǤ¹)¡£ - ¼¡¤ËÎã¤򼨤·¤ޤ¹¡£¤³¤Υե¡¥¤¥ë¤ϥ꥽¡¼¥¹ foo - ¤򵭽Ҥ·¤Ƥ¤¤ë¤Τǡ¢foo.var ¤Ȥ¤¤¦̾Á°¤ˤʤê¤ޤ¹¡£

    - -

    - URI: foo
    -
    - URI: foo.en.html
    - Content-type: text/html
    - Content-language: en
    -
    - URI: foo.fr.de.html
    - Content-type: text/html;charset=iso-8859-2
    - Content-language: fr, de
    -

    -

    ¤¿¤Ȥ¨ MultiViews ¤ò»ÈÍѤ¹¤ë¤褦¤ˤʤäƤ¤¤¿¤Ȥ·¤Ƥ⡢ - ¥ե¡¥¤¥ë̾¤γÈĥ»Ҥè¤꥿¥¤¥ץޥåפÎÊý¤¬ͥÀ踢¤ò»ý¤ĤȤ¤¤¦¤³¤Ȥˤâ - Ãí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - variant ¤ÎÉʼÁ¤¬°㤦¤Ȥ­¤ϡ¢¤³¤βèÁü¤Τ褦¤Ë (JPEG, GIF, ASCII - ¥¢¡¼¥Ȥ¬¤¢¤ê¤ޤ¹) ¥á¥ǥ£¥¢¥¿¥¤¥פÎ "qs" - ¥ѥé¥᡼¥¿¤ǻØÄꤵ¤ì¤ޤ¹¡£

    - -

    - URI: foo
    -
    - URI: foo.jpeg
    - Content-type: image/jpeg; qs=0.8
    -
    - URI: foo.gif
    - Content-type: image/gif; qs=0.5
    -
    - URI: foo.txt
    - Content-type: text/plain; qs=0.01
    -

    - -

    qs ÃͤÎÈϰϤÏ 0.000 ¤«¤é 1.000 ¤Ǥ¹¡£qs Ãͤ¬ - 0.000 ¤Î variant ¤Ϸ褷¤Æ - ÁªÂ򤵤ì¤ʤ¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£'qs' ÃͤΤʤ¤ variant - ¤Ï qs ÃÍ 1.0 ¤ò Ϳ¤¨¤é¤ì¤ޤ¹¡£qs - ¥ѥé¥᡼¥¿¤ϥ¯¥饤¥¢¥ó¥ȤÎǽÎϤ˴ط¸̵¤¯¡¢¾¤Î variant ¤È - Èæ³Ӥ·¤¿¤Ȥ­¤Î variant - ¤ÎÁêÂÐŪ¤ʡÖÉʼÁ¡פ򼨤·¤ޤ¹¡£ - Î㤨¤С¢¼̿¿¤òɽ¸½¤·¤褦¤Ȥ·¤Ƥ¤¤ë¤Ȥ­¤Ï JPEG - ¥ե¡¥¤¥ë¤ÎÊý¤¬ÉáÄ̤Ï ASCII - ¥ե¡¥¤¥ë¤è¤ê¤â¹⤤ÉʼÁ¤ˤʤê¤ޤ¹¡£¤·¤«¤·¡¢¥꥽¡¼¥¹¤¬¸µ¡¹ - ASCII ¥¢¡¼¥ȤÇɽ¸½¤µ¤ì¤Ƥ¤¤ë¤Ȥ­¤ϡ¢ASCII ¥ե¡¥¤¥ë¤Î - Êý¤¬ JPEG ¥ե¡¥¤¥ë¤è¤ê¤â¹⤤ÉʼÁ¤ˤʤê¤ޤ¹¡£¤³¤Τ褦¤ˡ¢qs - ¤Ï ɽ¸½¤µ¤ì¤ë¥꥽¡¼¥¹¤ÎÀ­¼Á¤ˤè¤äÆ variant - Ëè¤ËÆÃͭ¤ÎÃͤò¼è¤ê¤ޤ¹¡£

    - -

    ǧ¼±¤µ¤ì¤ë¥إåÀ¤ΰìÍ÷¤Ï - mod_negotiation - ¥ɥ­¥å¥á¥ó¥Ȥˤ¢¤ê¤ޤ¹¡£

    - - -

    Multiviews

    - -

    MultiViews ¤ϥǥ£¥쥯¥ȥêËè¤Υª¥ץ·¥ç¥ó¤ǡ¢ - httpd.conf¥ե¡¥¤¥ë¤Î - <Directory>, - <Location>, - <Files> - ¥»¥¯¥·¥ç¥óÃæ¤䡢(AllowOverride - ¤¬ŬÀڤÊÃͤË ÀßÄꤵ¤ì¤Ƥ¤¤ë¤È) .htaccess - ¥ե¡¥¤¥ë¤Ç Options - ¥ǥ£¥쥯¥ƥ£¥֤ˤè¤äÆÀßÄꤹ¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - Options All ¤Ï - MultiViews - ¤򥻥åȤ·¤ʤ¤¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ÌÀ¼¨Ū¤Ë - ¤½¤Î̾Á°¤ò½ñ¤¯ɬÍפ¬¤¢¤ê¤ޤ¹¡£

    - -

    MultiViews ¤θú²̤ϰʲ¼¤Τ褦¤ˤʤê¤ޤ¹: - ¥µ¡¼¥Ф¬ /some/dir/foo - ¤ؤΥꥯ¥¨¥¹¥Ȥò¼õ¤±¼è¤ꡢ/some/dir ¤Ç - MultiViews ¤¬ͭ¸ú¤Ǥ¢¤äơ¢ - /some/dir/foo ¤¬¸ºß¤·¤ʤ¤¾ì¹硢 - ¥µ¡¼¥Фϥǥ£¥쥯¥ȥê¤òÆɤó¤Ç foo.* - ¤ˤ¢¤ƤϤޤëÁ´¤ƤΥե¡¥¤¥ë¤òõ¤·¡¢ - »ö¼¾夽¤ì¤é¤Υե¡¥¤¥ë¤ò¥ޥåפ¹¤륿¥¤¥ץޥåפòºî¤ê¤ޤ¹¡£ - ¤½¤ΤȤ­¡¢¥á¥ǥ£¥¢¥¿¥¤¥פȥ³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥󥰤ϡ¢¤½¤Υե¡¥¤¥ë̾¤ò - ľÀܻØÄꤷ¤¿¤Ȥ­¤ÈƱ¤¸¤â¤Τ¬³ä¤êÅö¤Ƥé¤ì¤ޤ¹¡£ - ¤½¤줫¤饯¥饤¥¢¥ó¥ȤÎÍ׵á¤˰ìÈֹ礦¤â¤ΤòÁª¤Ӥޤ¹¡£

    - -

    ¥µ¡¼¥Ф¬¥ǥ£¥쥯¥ȥê¤κ÷°ú¤òºî¤í¤¦¤Ȥ·¤Ƥ¤¤ë¾ì¹硢 - MultiViews - ¤Ï DirectoryIndex - ¥ǥ£¥쥯¥ƥ£¥֤ǻØÄꤵ¤줿¥ե¡¥¤¥ë¤òõ¤¹²áÄø¤ˤâ - ŬÍѤµ¤ì¤ޤ¹¡£ÀßÄê¥ե¡¥¤¥ë¤Ë

    -

    DirectoryIndex index

    -

    ¤¬½񤫤ì¤Ƥ¤¤ơ¢index.html ¤È - index.html3 ¤¬ - ξÊý¸ºߤ·¤Ƥ¤¤ë¤ȡ¢¥µ¡¼¥ФϤ½¤ÎÃ椫¤é¤ɤÁ¤餫¤òŬÅö¤ËÁª¤Ӥޤ¹¡£ - ¤⤷¤½¤ÎξÊý¤¬¸ºߤ»¤º¤Ë index.cgi - ¤¬¸ºߤ·¤Ƥ¤¤ë¤ȡ¢ ¥µ¡¼¥ФϤ½¤ì¤ò¼¹Ԥ·¤ޤ¹¡£

    - -

    ¤⤷¥ǥ£¥쥯¥ȥê¤òÆɤó¤Ǥ¤¤ëºݤˡ¢ - ʸ»ú¥»¥åȡ¢¥³¥ó¥ƥó¥ȥ¿¥¤¥ס¢¸À¸졢¥¨¥󥳡¼¥ǥ£¥󥰤ò - »ØÄꤹ¤뤿¤á¤Î mod_mime - ¤Çǧ¼±¤Ǥ­¤ë³Èĥ»Ҥò»ý¤¿¤ʤ¤¥ե¡¥¤¥뤬¸«¤Ĥ«¤ë¤ȡ¢·ë²̤Ï - MultiViewsMatch - ¥ǥ£¥쥯¥ƥ£¥֤ÎÀßÄê¤˰͸¤·¤ޤ¹¡£¤³¤Υǥ£¥쥯¥ƥ£¥֤Ï - ¥ϥó¥ɥ顢¥ե£¥륿¡¢¾¤Υե¡¥¤¥ë³Èĥ»ҥ¿¥¤¥פΤɤ줬 - MultiViews ¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤ǻÈÍѤǤ­¤뤫¤ò·èÄꤷ¤ޤ¹¡£

    - -
    top
    -
    -

    ¥ͥ´¥·¥¨¡¼¥·¥ç¥óÊýˡ

    - -

    Apache ¤ϥ꥽¡¼¥¹¤Î variant ¤ΰìÍ÷¤򡢥¿¥¤¥ץޥåץե¡¥¤¥뤫 - ¥ǥ£¥쥯¥ȥêÆâ¤Υե¡¥¤¥ë̾¤«¤餫¤ǼèÆÀ¤·¤¿¸塢 - ¡ֺÇŬ¤ʡ× variant ¤ò·èÄꤹ¤뤿¤á¤ËÆó¤ĤÎÊýˡ¤Î - ¤ɤÁ¤餫¤òµ¯ư¤·¤ޤ¹¡£ - Apache ¤Υ³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤ε¡ǽ¤ò»Ȥ¦¤¿¤á¤ˡ¢ - ¤ɤΤ褦¤ˤ·¤Ƥ³¤ÎĴÄ䤬¹Ԥï¤ì¤뤫¾ܺ٤òÃΤëɬÍפϤ¢¤ê¤ޤ»¤ó¡£ - ¤·¤«¤·¤ʤ¬¤顢¤³¤Îʸ½ñ¤λĤê¤Ǥϴؿ´¤Τ¢¤ë¿ͤΤ¿¤á¤ˡ¢ - »ÈÍѤµ¤ì¤Ƥ¤¤ëÊýˡ¤ˤĤ¤¤ÆÀâÌÀ¤·¤Ƥ¤¤ޤ¹¡£

    - -

    ¥ͥ´¥·¥¨¡¼¥·¥ç¥óÊýˡ¤ÏÆó¤Ĥ¢¤ê¤ޤ¹¡£

    - -
      -
    1. Ä̾ï¤Ï Apache ¤Υ¢¥르¥ꥺ¥à¤òÍѤ¤¤¿ Server - driven negotiation ¤¬»ÈÍѤµ¤ì¤ޤ¹¡£Apache - ¤Υ¢¥르¥ꥺ¥à¤ϸå¤˾ܺ٤ËÀâÌÀ¤µ¤ì¤Ƥ¤¤ޤ¹¡£ - ¤³¤Υ¢¥르¥ꥺ¥ब»ÈÍѤµ¤줿¾ì¹硢Apache - ¤Ϥè¤êÎɤ¤·ë²̤ˤʤë¤褦¤ˡ¢ÆÃÄê¤μ¡¸µ¤ˤª¤¤¤ÆÉʼÁ¤ÎÃͤò - ¡ÖÊѤ¨¤ë¡פ³¤Ȥ¬¤Ǥ­¤ޤ¹¡£Apache - ¤¬ÉʼÁ¤ÎÃͤòÊѤ¨¤ëÊýˡ¤ϸå¤Ǿܺ٤ËÀâÌÀ¤µ¤ì¤Ƥ¤¤ޤ¹¡£
    2. - -
    3. RFC 2295 - ¤ÇÄêµÁ¤µ¤ì¤Ƥ¤¤뵡¹½¤òÍѤ¤¤ƥ֥饦¥¶¤¬Æä˻ØÄꤷ¤¿¾ì¹硢 - transparent content negotiation - ¤¬»ÈÍѤµ¤ì¤ޤ¹¡£¤³¤Υͥ´¥·¥¨¡¼¥·¥ç¥óÊýˡ¤Ǥϡ¢¡ֺÇŬ¤ʡ× - variant ¤ηèÄê¤ò¥֥饦¥¶¤¬´°Á´¤ËÀ©¸椹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢·ë²̤ϥ֥饦¥¶¤¬»ÈÍѤ·¤Ƥ¤¤륢¥르¥ꥺ¥à¤˰͸¤·¤ޤ¹¡£ - Transparent negotiation ¤νèÍý¤βáÄø¤ǡ¢¥֥饦¥¶¤Ï RFC 2296 - ¤Ç ÄêµÁ¤µ¤ì¤Ƥ¤¤ë 'remote variant selection algorithm' - ¤ò¼¹Ԥ¹¤ë¤褦¤ËÍê¤ळ¤Ȥ¬¤Ǥ­¤ޤ¹¡£
    4. -
    - -

    ¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤μ¡¸µ

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ¼¡¸µÀâÌÀ
    ¥á¥ǥ£¥¢¥¿¥¤¥×¥֥饦¥¶¤Ï Accept - ¥إåÀ¥ե£¡¼¥ë¥ɤÇͥÀ跹¸þ¤ò»ØÄꤷ¤ޤ¹¡£ - ¥¢¥¤¥ƥऽ¤줾¤ì¤ϡ¢´ØϢ¤·¤¿ÉʼÁ¿ôÃͤò»ý¤Ĥ³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - variant ¤ÎÀâÌÀ¤âÉʼÁ¿ôÃͤò»ý¤Ĥ³¤Ȥ¬¤Ǥ­¤ޤ¹ - ("qs" ¥ѥé¥᡼¥¿¤ò¤´Í÷²¼¤µ¤¤)¡£
    ¸À¸ì¥֥饦¥¶¤Ï Accept-Language - ¥إåÀ¥ե£¡¼¥ë¥ɤÇͥÀ跹¸þ¤ò»ØÄꤷ¤ޤ¹¡£ - Í×ÁǤ½¤줾¤ì¤ËÉʼÁ¿ôÃͤò»ý¤¿¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - variants ¤Ï 0 ¤« 1 ¤Ĥ«¤½¤ì°ʾå¤θÀ¸ì¤È - ´ØϢ¤Ť±¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£
    ¥¨¥󥳡¼¥ǥ£¥ó¥°¥֥饦¥¶¤Ï Accept-Encoding - ¥إåÀ¥ե£¡¼¥ë¥ɤÇͥÀ跹¸þ¤ò»ØÄꤷ¤ޤ¹¡£ - Í×ÁǤ½¤줾¤ì¤ËÉʼÁ¿ôÃͤò»ý¤¿¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£
    ʸ»ú¥»¥åÈ¥֥饦¥¶¤Ï Accept-Charset - ¥إåÀ¥ե£¡¼¥ë¥ɤÇͥÀ跹¸þ¤ò»ØÄꤷ¤ޤ¹¡£ - Í×ÁǤ½¤줾¤ì¤ËÉʼÁ¿ôÃͤò»ý¤¿¤»¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - variant ¤ϥá¥ǥ£¥¢¥¿¥¤¥פΥѥé¥᡼¥¿¤Ȥ·¤Æʸ»ú¥»¥åȤò - »ØÄꤹ¤뤳¤Ȥâ¤Ǥ­¤ޤ¹¡£
    - - -

    Apache ¥ͥ´¥·¥¨¡¼¥·¥ç¥󥢥르¥ꥺ¥à

    - -

    ¥֥饦¥¶¤ËÊ֤¹¡ֺÇŬ¤ʡ×variant ¤ò (¤⤷¤¢¤ì¤Ð) ÁªÂ򤹤ë¤褦¤Ë - Apache ¤ϼ¡¤Υ¢¥르¥ꥺ¥à¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤Υ¢¥르¥ꥺ¥à¤òÀßÄê¤ˤè¤êÊѹ¹¤¹¤뤳¤ȤϤǤ­¤ޤ»¤ó¡£ - ¼¡¤Τ褦¤Ëưº¤ޤ¹:

    - -
      -
    1. ¤ޤº¤Ϥ¸¤á¤ˡ¢¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤μ¡¸µ¤½¤줾¤ì¤ˤĤ¤¤ÆŬÀڤÊ - Accept* ¥إåÀ¥ե£¡¼¥ë¥ɤòĴ¤١¢ - variant ¤½¤줾¤ì¤ËÉʼÁ¤ò³ä¤êÅö¤Ƥޤ¹¡£ - ¤⤷¤¢¤뼡¸µ¤Î Accept* ¥إåÀ¤Ǥ½¤Î variant - ¤¬µöÍƤǤ­¤ʤ¤¤³¤Ȥ¬¼¨¤µ¤ì¤Ƥ¤¤ì¤С¢¤½¤ì¤òºï½ü¤·¤ޤ¹¡£ - variant ¤¬°ì¤Ĥâ»ĤäƤ¤¤ʤ±¤ì¤С¢¥¹¥ƥå× 4 ¤˹Ԥ­¤ޤ¹¡£
    2. - -
    3. - ¾õîˡ¤ǡֺÇŬ¤ʡ× variant ¤òÁª¤Ӥޤ¹¡£ - ¼¡¤Υƥ¹¥Ȥ¬½çÈ֤ËŬÍѤµ¤ì¤ޤ¹¡£ - ¥ƥ¹¥ȤÇÁªÂ򤵤ì¤ʤ«¤ä¿ variant ¤Ϻï½ü¤µ¤ì¤Ƥ¤¤­¤ޤ¹¡£ - ¥ƥ¹¥ȸå variant ¤¬°ì¤ĤÀ¤±»ĤäƤ¤¤ì¤С¢¤½¤ì¤òºÇŬ¤ʤâ¤ΤȤ·¤Æ - ¥¹¥ƥå× 3 ¤˿ʤߤޤ¹¡£ - ʣ¿ô variant ¤¬»ĤäƤ¤¤ì¤С¢¼¡¤Υƥ¹¥Ȥ˿ʤߤޤ¹¡£ - -
        -
      1. variant ¤Υá¥ǥ£¥¢¥¿¥¤¥פÎÉʼÁ¿ôÃͤÈ Accept - ¥إåÀ¤ÎÉʼÁ¿ôÃͤȤÎÀѤò·׻»¤·¤ơ¢ºǹâÃͤÎ variant - ¤òÁª¤Ӥޤ¹¡£
      2. - -
      3. ¸À¸ìÉʼÁ¿ôÃͤ¬ºǹâ¤Î variant ¤òÁª¤Ӥޤ¹¡£
      4. - -
      5. (¤⤷¤¢¤ì¤Ð) Accept-Language ¥إåÀ¤θÀ¸ì½礫¡¢ - (¤⤷¤¢¤ì¤Ð) - LanguagePriority - ¥ǥ£¥쥯¥ƥ£¥֤θÀ¸ì½ç¤ǺÇŬ¤ʸÀ¸ì¤Î variant ¤òÁª¤Ӥޤ¹¡£
      6. - -
      7. ºǹâ¡֥ì¥٥ë¡פΥá¥ǥ£¥¢¥ѥé¥᡼¥¿ - (text/html ¥á¥ǥ£¥¢¥¿¥¤¥פΥС¼¥¸¥ç¥ó¤òͿ¤¨¤뤿¤á¤˻Ȥï¤ì¤ޤ¹) - ¤ò»ý¤Ä variant ¤òÁª¤Ӥޤ¹¡£
      8. - -
      9. Accept-Charset ¥إåÀ¹ԤÇͿ¤¨¤é¤ì¤Ƥ¤¤ëºǹâ¤Îʸ»ú¥»¥åÈ - ¥á¥ǥ£¥¢¥ѥé¥᡼¥¿¤ò»ý¤Ä variant ¤òÁª¤Ӥޤ¹¡£ - ÌÀ¼¨Ū¤˽ü³°¤µ¤ì¤Ƥ¤¤ʤ¤¸¤ꡢISO-8859-1 - ¤¬µöÍƤµ¤ì¤ë¤褦¤ˤʤäƤ¤¤ޤ¹¡£ - text/* ¥á¥ǥ£¥¢¥¿¥¤¥פǤ¢¤뤱¤ì¤ɤâ - ÆÃÄê¤Îʸ»ú¥»¥åȤËÌÀ¼¨Ū¤˴ØϢ¤Ť±¤é¤ì¤Ƥ¤¤ë¤櫓¤ǤϤʤ¤ - variant ¤Ï ISO-8859-1 ¤Ǥ¢¤ë¤Ȳ¾Äꤵ¤ì¤ޤ¹¡£
      10. - -
      11. ISO-8859-1 ¤ǤϤʤ¤ʸ»ú¥»¥åȥá¥ǥ£¥¢¥ѥé¥᡼¥¿¤È - ´ØϢ¤Ť±¤é¤ì¤Ƥ¤¤ë variant ¤òÁª¤Ӥޤ¹¡£ - ¤½¤Τ褦¤Ê variant ¤¬¤ʤ¤¾ì¹ç¤ϡ¢Âå¤ï¤ê¤ËÁ´¤ƤÎ - variant ¤òÁª¤Ӥޤ¹¡£
      12. - -
      13. ºÇŬ¤ʥ¨¥󥳡¼¥ǥ£¥󥰤Î variant ¤òÁª¤Ӥޤ¹¡£ - ¤⤷ user-agent ¤¬µöÍƤ¹¤륨¥󥳡¼¥ǥ£¥󥰤¬¤¢¤ì¤С¢ - ¤½¤Î variant ¤ΤߤòÁª¤Ӥޤ¹¡£ - ¤½¤¦¤ǤϤʤ¯¡¢¤⤷¥¨¥󥳡¼¥ɤµ¤줿¤â¤ΤȤ½¤¦¤Ǥʤ¤ - variant ¤¬º®¤¶¤äƸºߤ·¤Ƥ¤¤¿¤饨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤ʤ¤ - variant ¤ΤߤòÁª¤Ӥޤ¹¡£ - variant ¤¬Á´Éô¥¨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤뤫 - variant ¤¬Á´Éô¥¨¥󥳡¼¥ɤµ¤ì¤Ƥ¤¤ʤ¤¤Ȥ¤¤¦¾ì¹ç¤ϡ¢ - Á´¤ƤÎ variant ¤òÁª¤Ӥޤ¹¡£
      14. - -
      15. ÆâÍƤκǤâû¤¤ variant ¤òÁª¤Ӥޤ¹¡£
      16. - -
      17. »ĤäƤ¤¤ë variant ¤κǽé¤Τâ¤ΤòÁª¤Ӥޤ¹¡£ - ¥¿¥¤¥ץޥåץե¡¥¤¥ë¤κǽé¤˥ꥹ¥Ȥµ¤ì¤Ƥ¤¤뤫¡¢ - variant ¤¬¥ǥ£¥쥯¥ȥ꤫¤éºǽé¤ËÆɤ߹þ¤ޤì¤ë»þ¤Ë - ASCII½ç¤ǥ½¡¼¥Ȥ·¤ƥե¡¥¤¥ë̾¤¬ÀèƬ¤ˤʤ俤«¡¢¤ΤɤÁ¤餫¤Ǥ¹¡£
      18. -
      -
    4. - -
    5. ¥¢¥르¥ꥺ¥à¤ò»Ȥäưì¤ĤΡֺÇŬ¤ʡ×variant ¤òÁª¤Ӥޤ·¤¿¤Τǡ¢ - ¤½¤ì¤ò±þÅú¤Ȥ·¤ÆÊ֤·¤ޤ¹¡£¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤μ¡¸µ¤ò»ØÄꤹ¤뤿¤á¤Ë - HTTP ¥쥹¥ݥ󥹥إåÀ Vary ¤¬ÀßÄꤵ¤ì¤ޤ¹ - (¥꥽¡¼¥¹¤Υ­¥ã¥å·¥å¤򤹤ë»þ¤ˡ¢ - ¥֥饦¥¶¤䥭¥ã¥å·¥å¤Ϥ³¤ξðÊó¤ò»Ȥ¦¤³¤Ȥ¬¤Ǥ­¤ޤ¹)¡£ - °ʾå¤ǽª¤ï¤ꡣ
    6. - -
    7. ¤³¤³¤ËÍ褿¤Ȥ¤¤¦¤³¤Ȥϡ¢variant ¤¬°ì¤ĤâÁªÂ򤵤ì¤ʤ«¤ä¿ - (¥֥饦¥¶¤¬µöÍƤ¹¤ë¤â¤Τ¬¤ʤ«¤ä¿¤¿¤á) ¤Ȥ¤¤¦¤³¤ȤǤ¹¡£ - 406 ¥¹¥ơ¼¥¿¥¹ ("No Acceptable representation" ¤ò°Ọ̃¤¹¤ë) - ¤¬¡¢ÍøÍѲÄǽ¤Ê variant ¤Υꥹ¥ȤΤĤ¤¤¿ HTML - ¥ɥ­¥å¥á¥ó¥ȤȤȤâ¤ËÊ֤µ¤ì¤ޤ¹¡£ - Áê°ã¤μ¡¸µ¤򼨤¹ HTTP Vary ¥إåÀ¤âÀßÄꤵ¤ì¤ޤ¹¡£
    8. -
    - -
    top
    -
    -

    ÉʼÁ¤ÎÃͤòÊѤ¨¤ë

    - -

    ¾嵭¤Î Apache ¥ͥ´¥·¥¨¡¼¥·¥ç¥󥢥르¥ꥺ¥à¤θ·³ʤʲò¼á¤Ç - ÆÀ¤é¤ì¤ë¤Ǥ¢¤í¤¦Ãͤ«¤顢Apache ¤ÏÉʼÁ¿ôÃͤò»þ¡¹ÊѤ¨¤ޤ¹¡£ - ¤³¤ì¤ϡ¢¤³¤Υ¢¥르¥ꥺ¥à¤Ǵ°Á´¤ǤϤʤ¤¡¢¤¢¤뤤¤ÏÀµ³ΤǤʤ¤¾ðÊó¤òÁ÷¤ë - ¥֥饦¥¶¸þ¤±¤ˤè¤ê¤褤·ë²̤òÆÀ¤뤿¤á¤˹Ԥï¤ì¤ޤ¹¡£ - ¤«¤ʤê¥ݥԥå¥顼¤ʥ֥饦¥¶¤ǡ¢¤⤷¤ʤ¤¤ȴְã¤ä¿ variant - ¤òÁªÂ򤹤ë·ë²̤ˤʤäƤ·¤ޤ¦¤褦¤Ê Accept - ¥إåÀ¾ðÊó¤òÁ÷¤ë¤â¤Τ⤢¤ê¤ޤ¹¡£ - ¥֥饦¥¶¤¬´°Á´¤ÇÀµ¤·¤¤¾ðÊó¤òÁ÷¤äƤ¤¤ì¤С¢ - ¤³¤οôÃÍÊѲ½¤ÏŬÍѤµ¤ì¤ޤ»¤ó¡£

    - -

    ¥á¥ǥ£¥¢¥¿¥¤¥פȥ磻¥ë¥ɥ«¡¼¥É

    - -

    Accept: ¥ꥯ¥¨¥¹¥ȥإåÀ¤ϥá¥ǥ£¥¢¥¿¥¤¥פÎͥÀ跹¸þ¤ò»ØÄꤷ¤ޤ¹¡£ - ¤³¤ì¤Ϥޤ¿¡¢"image/*" ¤ä "*/*" - ¤Ȥ¤¤ä¿¡֥磻¥ë¥ɥ«¡¼¥ɡץá¥ǥ£¥¢¥¿¥¤¥פò´ޤळ¤Ȥ¬¤Ǥ­¤ޤ¹¡£ - ¤³¤³¤Ç * ¤ÏǤ°դÎʸ»úÎó¤˥ޥåÁ¤·¤ޤ¹¡£ - ¤Ǥ¹¤«¤顢¼¡¤Î:

    - -

    Accept: image/*, */*

    - -

    ¤ò´ޤà¥ꥯ¥¨¥¹¥Ȥϡ¢"image/" ¤ǤϤ¸¤ޤ륿¥¤¥×Á´¤Ƥ¬µöÍƤǤ­¤롢 - ¤½¤·¤Æ¾¤Τɤó¤ʥ¿¥¤¥פâµöÍƤǤ­¤ë - (¤³¤ξì¹ç¤Ϥ¸¤á¤Î "image/*" ¤ϾéŤˤʤê¤ޤ¹) - ¤³¤Ȥ򼨤·¤ޤ¹¡£ - °·¤¦¤³¤ȤΤǤ­¤ëÌÀ¼¨Ū¤ʥ¿¥¤¥פ˲䨤ơ¢µ¡³£Ū¤Ë - ¥磻¥ë¥ɥ«¡¼¥ɤòÁ÷¤ë¥֥饦¥¶¤⤢¤ê¤ޤ¹¡£Î㤨¤Ð:

    - -

    - Accept: text/html, text/plain, image/gif, image/jpeg, */* -

    -

    ¤³¤¦¤¹¤뤳¤ȤÎÁÀ¤¤¤ϡ¢ÌÀ¼¨Ū¤˥ꥹ¥Ȥ·¤Ƥ¤¤륿¥¤¥פ¬ͥÀ褵¤ì¤뤱¤ì¤ɤ⡢ - °ۤʤëɽ¸½¤¬ÍøÍѲÄǽ¤Ǥ¢¤ì¤Ф½¤ì¤ǤâÎɤ¤¡¢¤Ȥ¤¤¦¤³¤ȤǤ¹¡£ - ¤·¤«¤·¤ʤ¬¤顢¾å¤δðËÜŪ¤ʥ¢¥르¥ꥺ¥à¤Ǥϡ¢ - */* ¥磻¥ë¥ɥ«¡¼¥ɤϾ¤ÎÁ´¤ƤΥ¿¥¤¥פÈÁ´¤¯ƱÅù¤ʤΤÇͥÀ褵¤ì¤ޤ»¤ó¡£ - ¥֥饦¥¶¤Ï */* ¤ˤâ¤äÈÄ㤤ÉʼÁ (ͥÀè) - ÃͤòÉդ±¤ƥꥯ¥¨¥¹¥ȤòÁ÷¤ë¤٤­¤ʤΤǤ¹¡£Î㤨¤Ð:

    -

    - Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 -

    -

    ÌÀ¼¨Ū¤ʥ¿¥¤¥פˤÏÉʼÁ¿ôÃͤ¬Éդ±¤é¤ì¤Ƥ¤¤ޤ»¤ó¤Τǡ¢ - ¥ǥե©¥ë¥ȤÎ 1.0 (ºǹâÃÍ) ¤ÎͥÀè¤ˤʤê¤ޤ¹¡£ - ¥磻¥ë¥ɥ«¡¼¥É */* ¤ÏÄ㤤ͥÀèÅÙ 0.01 ¤òͿ¤¨¤é¤ì¤Ƥ¤¤ë¤Τǡ¢ - ÌÀ¼¨Ū¤˥ꥹ¥Ȥµ¤ì¤Ƥ¤¤륿¥¤¥פ˹çÃפ¹¤ë variant ¤¬¤ʤ¤¾ì¹ç¤ˤΤߡ¢ - ¾¤Υ¿¥¤¥פ¬Ê֤µ¤ì¤ޤ¹¡£

    - -

    ¤⤷ Accept: ¥إåÀ¤¬ q ÃͤòÁ´¤¯´ޤó¤Ç¤¤¤ʤ±¤ì¤Ð¡¢ - ˾¤ߤεóư¤򤹤뤿¤á¤ˡ¢ - Apache ¤Ï "*/*" ¤¬¤¢¤ì¤Ð 0.01 ¤Î q ÃͤòÀßÄꤷ¤ޤ¹¡£ - ¤ޤ¿¡¢"type/*" ¤ηÁ¤Υ磻¥ë¥ɥ«¡¼¥ɤˤÏ 0.02 ¤Î q ÃͤòÀßÄꤷ¤ޤ¹ - (¤Ǥ¹¤«¤餳¤ì¤é¤Ï "*/*" ¤ΥޥåÁ¤è¤ê¤âͥÀ褵¤ì¤ޤ¹)¡£ - ¤⤷ Accept: ¥إåÀÃæ¤Υá¥ǥ£¥¢¥¿¥¤¥פΤɤ줫¤¬ q - Ãͤò´ޤó¤Ǥ¤¤ì¤С¢¤³¤ì¤é¤ÎÆüì¤ÊÃͤÏŬ±þ¤µ¤줺¡¢ - Àµ¤·¤¤¾ðÊó¤òÁ÷¤ë¥֥饦¥¶¤«¤é¤Υꥯ¥¨¥¹¥ȤϴüÂÔÄ̤ê¤Ë - ưº¤ë¤褦¤ˤʤê¤ޤ¹¡£

    - - -

    ¸À¸ì¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤ÎÎ㳰½èÍý

    - -

    Apache 2.0 ¤ǤϿ·¤¿¤ˡ¢¸À¸ì¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤¬Ŭ¹礹¤ë¤â¤Τò - ¸«¤Ĥ±¤ë¤Τ˼ºÇԤ·¤¿»þ¤ˡ¢ͥ²í¤˥ե©¡¼¥ë¥Х寤Ǥ­¤ë¤褦¤Ê - ¥ͥ´¥·¥¨¡¼¥·¥ç¥󥢥르¥ꥺ¥ब´ö¤Ĥ«Äɲ䵤ì¤ޤ·¤¿¡£

    - -

    ¥µ¡¼¥ФΥڡ¼¥¸¤򥯥饤¥¢¥ó¥Ȥ¬¥ꥯ¥¨¥¹¥Ȥ·¤¿¤±¤ì¤ɤ⡢ - ¥֥饦¥¶¤ÎÁ÷¤äƤ­¤¿ Accept-Language ¤˹çÃפ¹¤ë¥ڡ¼¥¸¤¬°ì¤Ĥâ - ¸«¤Ĥ«¤é¤ʤ«¤ä¿¾ì¹ç¤ˡ¢¥µ¡¼¥ФÏ "No Acceptable Variant" - ¤« "Multiple Choices" ¥쥹¥ݥ󥹤򥯥饤¥¢¥ó¥ȤËÊ֤·¤ޤ¹¡£ - ¤³¤ì¤é¤Υ¨¥顼¥á¥å»¡¼¥¸¤òÊ֤µ¤ʤ¤¤褦¤ˡ¢ - ¤³¤Τ褦¤ʾì¹ç¤ˤÏ Apache ¤¬ Accept-Language ¤ò̵»뤷¤ơ¢ - ¥¯¥饤¥¢¥ó¥ȤΥꥯ¥¨¥¹¥ȤËÌÀ¼¨Ū¤ˤϹçÃפ·¤ʤ¤¥ɥ­¥å¥á¥ó¥Ȥò - Ä󶡤¹¤ë¤褦¤ËÀßÄê¤Ǥ­¤ޤ¹¡£ - ForceLanguagePriority - ¥ǥ£¥쥯¥ƥ£¥֤ϡ¢¤³¤ì¤é¤Υ¨¥顼¤ΰì¤Ĥ«ξÊý¤򥪡¼¥С¼¥饤¥ɤ¹¤뤿¤á¤Ë - »ÈÍѤǤ­¤ơ¢ - LanguagePriority - ¥ǥ£¥쥯¥ƥ£¥֤ÎÆâÍƤò»Ȥäƥµ¡¼¥ФÎȽÃǤòÂå¹Ԥ¹¤ë¤褦¤ˤǤ­¤ޤ¹¡£

    - -

    ¥µ¡¼¥ФϾ¤ËŬ¹礹¤ë¤â¤Τ¬¸«¤Ĥ«¤é¤ʤ±¤ì¤С¢ - ¸À¸쥵¥֥»¥åȤÇŬ¹礹¤ë¤â¤Τò»¤¦¤Ȥ⤷¤ޤ¹¡£ - Î㤨¤Х¯¥饤¥¢¥ó¥Ȥ¬±ѹñ±Ѹì¤Ǥ¢¤ë en-GB ¸À¸ì¤Ç - ¥ɥ­¥å¥á¥ó¥Ȥò¥ꥯ¥¨¥¹¥Ȥ·¤¿¾ì¹硢¥µ¡¼¥ФÏ HTTP/1.1 - µ¬³ʤǤϡ¢ñ¤Ë en ¤ȥޡ¼¥¯¤µ¤ì¤Ƥ¤¤ë¥ɥ­¥å¥á¥ó¥Ȥò - ¥ޥåÁ¤¹¤ë¤â¤ΤȤ¹¤뤳¤ȤÏÄ̾ï¤ϵö¤µ¤ì¤Ƥ¤¤ޤ»¤ó¡£ - (±ѹñ±Ѹì¤ÏÍý²ò¤Ǥ­¤뤱¤ɰìÈÌŪ¤ʱѸì¤ÏÍý²ò¤Ǥ­¤ʤ¤¤Ȥ¤¤¦Æɤ߼ê¤Ï - ¹ͤ¨¤é¤ì¤ʤ¤¤Τǡ¢Accept-Language ¥إåÀ¤Ç en-GB - ¤ò´ޤó¤Ç en ¤ò´ޤޤʤ¤¤ΤϤۤܳμ¤ËÀßÄê¤δְ㤤¤Ǥ¢¤롢 - ¤Ȥ¤¤¦¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¤Ǥ¹¤¬ÉԹ¬¤ʤ³¤Ȥˡ¢¿¤¯¤Υ¯¥饤¥¢¥ó¥ȤǤϥǥե©¥ë¥ȤÇ - ¤³¤Τ褦¤ÊÀßÄê¤ˤʤäƤ¤¤ޤ¹¡£) - ¤·¤«¤·¤ʤ¬¤顢¾¤θÀ¸ì¤ˤϥޥåÁ¤»¤º¡¢"No Acceptable Variants" - ¥¨¥顼¤òÊ֤·¤¿¤ꡢ - LanguagePriority - ¤˥ե©¡¼¥ë¥Х寤·¤褦¤Ȥ·¤Ƥ¤¤ë¤Ȥ­¤ϡ¢ - ¥µ¥֥»¥åȻØÄê¤ò̵»뤷¤ơ¢en-GB ¤ò en - ¤˥ޥåÁ¤·¤ޤ¹¡£ - Apache ¤ϥ¯¥饤¥¢¥ó¥ȤεöÍƸÀ¸ì¥ꥹ¥Ȥ˰ÅÌۤË - Èó¾ï¤ËÄ㤤ÉʼÁÃͤοƸÀ¸ì¤ò²ä¨¤뤳¤Ȥˤʤê¤ޤ¹¡£ - ¤·¤«¤·¡¢¥¯¥饤¥¢¥ó¥Ȥ¬ "en-GB; q=0.9, fr; q=0.8" ¤ȥꥯ¥¨¥¹¥Ȥ·¤ơ¢ - ¥µ¡¼¥Ф¬ "en" ¤È "fr" ¤ÈÀ߷פµ¤줿¥ɥ­¥å¥á¥ó¥Ȥò»ý¤äƤ¤¤ë¾ì¹ç¤ϡ¢ - "fr" ¥ɥ­¥å¥á¥ó¥Ȥ¬Ê֤µ¤ì¤뤳¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£ - ¤³¤Τ褦¤ʽèÍý¤ϡ¢HTTP 1.1 µ¬³ʤȤÎÀ°¹çÀ­¤ò°ݻý¤·¤ơ¢ - ŬÀڤËÀßÄꤵ¤줿¥¯¥饤¥¢¥ó¥ȤȤ⤭¤Á¤ó¤Èưº¤뤿¤á¤Ë - ɬÍפǤ¹¡£

    - -

    ¤è¤ê¹âÅ٤ʥƥ¯¥˥å¯ (Cookie ¤äÆüì¤Ê URL ¥ѥ¹Åù) - ¤ˤª¤¤¤Ƥâ¥桼¥¶¤θÀ¸ìÁªÂò¤򥵥ݡ¼¥Ȥ¹¤뤿¤ᡢ - Apache 2.0.47 ¤«¤é¤ϡ¢mod_negotiation - ¤¬´Ķ­Êѿô prefer-language - ¤òǧ¼±¤¹¤ë¤褦¤ˤʤê¤ޤ·¤¿¡£ - ¤³¤ÎÊѿô¤¬¸ºߤ·¤ơ¢ŬÀڤʸÀ¸쥿¥°¤¬ÂåÆþ¤µ¤ì¤Ƥ¤¤ë¤ΤǤ¢¤ì¤С¢ - mod_negotiation ¤ϹçÃפ¹¤ë variant - ¤òÁªÂ򤷤褦¤Ȥ·¤ޤ¹¡£¹çÃפ¹¤ë¤â¤Τ¬̵¤±¤ì¤С¢ - Ä̾ï¤Υͥ´¥·¥¨¡¼¥·¥ç¥ó¼ê½礬ŬÍѤµ¤ì¤ޤ¹¡£

    - -

    Example

    - SetEnvIf Cookie "language=(.+)" prefer-language=$1 -

    - -
    top
    -
    -

    Transparent Content Negotiation -¤γÈĥ

    - -

    Apache ¤Ï transparent content negotiation ¥ץí¥ȥ³¥ë -(RFC 2295) ¤򼡤Τ褦¤˳Èĥ¤·¤Ƥ¤¤ޤ¹¡£ -ÆÃÄê¤Υ³¥ó¥ƥó¥ȥ¨¥󥳡¼¥ǥ£¥󥰤Τߤ¬ÍøÍѲÄǽ¤Ǥ¢¤ë variant -¤˰õ¤òÉդ±¤뤿¤á¤ˡ¢¿·¤¿¤Ë {encoding ..} -Í×ÁǤò variant ¥ꥹ¥ÈÃæ¤˻ȤäƤ¤¤ޤ¹¡£ -¥ꥹ¥ÈÃæ¤Υ¨¥󥳡¼¥ɤµ¤줿 variant ¤òǧ¼±¤·¡¢ -Accept-Encoding ¥ꥯ¥¨¥¹¥ȥإåÀ¤˽¾¤äƵöÍƤµ¤ì¤ë -¥¨¥󥳡¼¥ɤò¤â¤ä¿ variant ¤ϡ¢¤ɤì¤Ǥâ¸õÊä variant -¤Ȥ·¤ƻÈÍѤ¹¤ë¤褦¤ˡ¢ -RVSA/1.0 ¥¢¥르¥ꥺ¥à (RFC 2296) ¤μÂÁõ¤¬³Èĥ¤µ¤ì¤ޤ·¤¿¡£ -RVSA/1.0 ¤μÂÁõ¤Ǥϡ¢ºÇŬ¤Ê variant ¤¬¸«¤Ĥ«¤ë¤ޤǡ¢ -·׻»¤·¤¿ÉʼÁ¿ôÃͤϾ®¿ôÅÀ°ʲ¼ 5 ·å¤ޤǴݤá¤ޤ»¤ó¡£

    -
    top
    -
    -

    ¥ê¥󥯤È̾Á°¤ÎÊѴ¹¤˴ؤ¹¤ëÃí°ÕÅÀ

    - -

    ¸À¸ì¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤ò»ȤäƤ¤¤ë¾ì¹ç¤ϡ¢ - ¥ե¡¥¤¥뤬°ì¤İʾå¤γÈĥ»Ҥò»ý¤Ƥơ¢ - ³Èĥ»ҤνçÈ֤ÏÄ̾ï¤ϹÍ褵¤ì¤ʤ¤ - (¾ܺ٤Ï mod_mime - ¤򻲾È) ¤Τǡ¢ - ´ö¤Ĥ«¤ΰۤʤë̾Á°¤ÎÊѴ¹¤òÁª¤٤뤳¤Ȥˤʤê¤ޤ¹¡£

    - -

    ŵ·¿Ū¤ʥե¡¥¤¥ë¤Ǥϡ¢MIME ¥¿¥¤¥׳Èĥ»Ò (Î㤨¤Ð - html) ¤ò»ý¤äƤ¤¤ơ¢¥¨¥󥳡¼¥ǥ£¥󥰳Èĥ»Ò - (Î㤨¤Ð gz) ¤ò»ý¤äƤ¤¤뤫¤⤷¤ì¤ʤ¯¤ơ¢ - ¤³¤Υե¡¥¤¥ë¤˰ۤʤë¸À¸ì variant ¤òÍѰդ·¤Ƥ¤¤ì¤С¢ - ¤â¤Á¤í¤ó¸À¸ì³Èĥ»Ò (Î㤨¤Ð en) - ¤ò»ý¤äƤ¤¤ë¤Ǥ·¤礦¡£

    - -

    Îã:

    - -
      -
    • foo.en.html
    • - -
    • foo.html.en
    • - -
    • foo.en.html.gz
    • -
    - -

    ¥ե¡¥¤¥ë̾¤ȡ¢¤½¤ì¤ËÂФ·¤ƻȤ¨¤ë¥ê¥󥯤ȻȤ¨¤ʤ¤¥ê¥󥯤ÎÎã¤Ǥ¹:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ¥ե¡¥¤¥ë̾»Ȥ¨¤ë¥ê¥ó¥¯»Ȥ¨¤ʤ¤¥ê¥ó¥¯
    foo.html.enfoo
    - foo.html
    -
    foo.en.htmlfoofoo.html
    foo.html.en.gzfoo
    - foo.html
    foo.gz
    - foo.html.gz
    foo.en.html.gzfoofoo.html
    - foo.html.gz
    - foo.gz
    foo.gz.html.enfoo
    - foo.gz
    - foo.gz.html
    foo.html
    foo.html.gz.enfoo
    - foo.html
    - foo.html.gz
    foo.gz
    - -

    ¾å¤Îɽ¤򸫤ơ¢³Èĥ»Ҥʤ·¤Υê¥ó¥¯ (Î㤨¤Ð foo) - ¤¬¤¤¤ĤǤâ»Ȥ¨¤뤳¤Ȥ˵¤¤¬Éդ¯¤Ǥ·¤礦¡£ - ¤³¤ÎÍøÅÀ¤ϡ¢¥ɥ­¥å¥á¥ó¥ȤȤ·¤ƱþÅú¤¹¤ë¥ե¡¥¤¥ë¤Î - ¼ºݤΥե¡¥¤¥륿¥¤¥פò±£Êä·¤ơ¢¥ê¥󥯤λ²¾ȤòÊѹ¹¤¹¤뤳¤Ȥʤ¯ - ¸夫¤é¥ե¡¥¤¥ë¤òÊѹ¹¤Ǥ­¤롢 - Î㤨¤Ð html ¤«¤é shtml - ¤ˡ¢¤¢¤뤤¤Ï cgi ¤ËÊѹ¹¤Ǥ­¤ëÅÀ¤Ǥ¹¡£

    - -

    ¥ê¥󥯤Ë MIME ¥¿¥¤¥פò»Ȥ¤³¤±¤¿¤¤ (Î㤨¤Ð - foo.html)»þ¤ϡ¢¸À¸ì³Èĥ»ҤÏ - (¥¨¥󥳡¼¥ǥ£¥󥰳Èĥ»Ҥ⤢¤ì¤Ф½¤ì¤â´ޤá¤Æ) - MIME ¥¿¥¤¥׳Èĥ»Ҥᦦ¤ˤʤ±¤ì¤Фʤê¤ޤ»¤ó - (Î㤨¤Ð foo.html.en)¡£

    -
    top
    -
    -

    ¥­¥ã¥å·¥å¤˴ؤ¹¤ëÃí°ջö¹à

    - -

    ¥­¥ã¥å·¥夬°ì¤ĤÎɽ¸½¤òÊݸ¤·¤Ƥ¤¤ë¤Ȥ­¤ϡ¢ - ¥ꥯ¥¨¥¹¥È URL ¤ȴØϢ¤Ť±¤é¤ì¤Ƥ¤¤ޤ¹¡£ - ¼¡¤ˤ½¤Î URL ¤¬¥ꥯ¥¨¥¹¥Ȥµ¤줿»þ¤ˡ¢¥­¥ã¥å·¥å¤Ï - Êݸ¤µ¤ì¤Ƥ¤¤ëɽ¸½¤ò»ÈÍѤǤ­¤ޤ¹¡£¤·¤«¤·¡¢ - ¥꥽¡¼¥¹¤¬¥µ¡¼¥Фǥͥ´¥·¥¨¡¼¥·¥ç¥ó²Äǽ¤Ǥ¢¤ì¤С¢ - ºǽé¤Υꥯ¥¨¥¹¥Ȥǥ­¥ã¥å·¥夵¤ì¤Æ³¤¯¥­¥ã¥å·¥å¥ҥåȤǤÏ - ´ְã¤ä¿±þÅú¤òÊ֤·¤Ƥ·¤ޤ¦¤Ȥ¤¤¦¤³¤Ȥˤʤ꤫¤ͤޤ»¤ó¡£ - ¤³¤ì¤òËɤ°¤¿¤á¤ˡ¢Apache ¤ϥ³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤Î - ¸å¤ËÊ֤µ¤줿±þÅúÁ´¤Ƥˡ¢HTTP/1.0 ¥¯¥饤¥¢¥ó¥ȤǤÏ - ¥­¥ã¥å·¥åÉԲÄǽ¤ΰõ¤ò¤Ĥ±¤ޤ¹¡£ - ¤ޤ¿¡¢¥ͥ´¥·¥¨¡¼¥·¥ç¥󤵤줿±þÅú¤Υ­¥ã¥å·¥å¤ò²Äǽ¤ˤ¹¤ë - HTTP/1.1 ¥ץí¥ȥ³¥ë¤ε¡ǽ¤â Apache ¤ϥµ¥ݡ¼¥Ȥ·¤ޤ¹¡£

    - -

    HTTP/1.0 ½àµò¤Υ¯¥饤¥¢¥ó¥Ȥ«¤é¤Υꥯ¥¨¥¹¥ȤËÂФ·¤Ƥϡ¢ - (¥֥饦¥¶¤Ǥ¢¤í¤¦¤ȥ­¥ã¥å·¥å¤Ǥ¢¤í¤¦¤È) - ¥ͥ´¥·¥¨¡¼¥·¥ç¥ó¤ò¼õ¤±¤¿±þÅú¤Υ­¥ã¥å·¥å¤òµö¤¹¤¿¤á¤ˡ¢ - CacheNegotiatedDocs - ¥ǥ£¥쥯¥ƥ£¥֤ò»ÈÍѤǤ­¤ޤ¹¡£ - ¤³¤Υǥ£¥쥯¥ƥ£¥֤ϡ¢¥µ¡¼¥ÐÀßÄê¥ե¡¥¤¥ë¤ä¥С¼¥Á¥ã¥ë¥ۥ¹¥Ȥ˽񤯤³¤Ȥ¬¤Ǥ­¡¢ - °ú¿ô¤ò¤Ȥê¤ޤ»¤ó¡£ - HTTP/1.1 ¥¯¥饤¥¢¥ó¥Ȥ«¤é¤Υꥯ¥¨¥¹¥ȤˤϸúÎϤò»ý¤Á¤ޤ»¤ó¡£

    - -

    HTTP/1.1 ¥¯¥饤¥¢¥ó¥ȤËÂФ·¤Ƥϡ¢¥쥹¥ݥ󥹤Υͥ´¥·¥¨¡¼¥·¥ç¥󼡸µ - ¤򼨤¹¤¿¤á¤Ë Vary HTTP ¥쥹¥ݥ󥹥إåÀ¤òÁ÷¤ê¤ޤ¹¡£ - ¥­¥ã¥å·¥å¤ϡ¢¤³¤ì¤ò»ȤäƸ峤Υꥯ¥¨¥¹¥ȤËÂФ·¤ƥí¡¼¥«¥륳¥ԡ¼¤DZþÅú¤Ǥ­¤뤫 - ¤ɤ¦¤«¤ò·èÄê¤Ǥ­¤ޤ¹¡£ - ¥ͥ´¥·¥¨¡¼¥·¥ç¥󼡸µ¤Ȥϴط¸¤ʤ·¤˥í¡¼¥«¥륳¥ԡ¼¤λÈÍѤòͥÀ褹¤ë¤褦¤ˤ¹¤ë¤ˤϡ¢ - force-no-vary ´Ķ­Êѿô¤ò - ÀßÄꤷ¤ޤ¹¡£

    - -
    top
    -
    -

    ÄɲþðÊó

    - -

    ¥³¥ó¥ƥó¥ȥͥ´¥·¥¨¡¼¥·¥ç¥ó¤˴ؤ¹¤ëÄɲþðÊó¤ϡ¢ - Alan J. Flavell ¤µ¤ó¤ÎLanguage - Negotiation Notes ¤ò¤´Í÷²¼¤µ¤¤¡£¤Ǥ¹¤¬¡¢ - Apache 2.0 ¤ǤÎÊѹ¹ÅÀ¤ò´ޤि¤á¤ˤϹ¹¿·¤µ¤ì¤Ƥ¤¤ʤ¤¤«¤⤷¤ì¤ʤ¤ - ¤Ȥ¤¤¦¤³¤ȤËÃí°դ·¤Ƥ¯¤À¤µ¤¤¡£

    -
    -
    -

    Available Languages:  en  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/content-negotiation.html.ja.utf8 b/docs/manual/content-negotiation.html.ja.utf8 new file mode 100644 index 00000000000..5a60f138fb3 --- /dev/null +++ b/docs/manual/content-negotiation.html.ja.utf8 @@ -0,0 +1,753 @@ + + + + + +コンテントネゴシエーション - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    コンテントネゴシエーション

    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + + +

    Apache は HTTP/1.1 の規格に記述されているコンテントネゴシエーションを + サポートしています。 + ブラウザにより提供されたメディアタイプ、 + 言語、文字セット、エンコーディングの優先傾向に基づいて、 + 最適なリソースの表現を選択できます。 + また、不完全なネゴシエーション情報を送ってくるブラウザからのリクエストを + もっと賢く取り扱えるよう、いくつか機能も実装してあります。

    + +

    コンテントネゴシエーションは + mod_negotiation + モジュールによって提供されていて、デフォルトで組み込まれています。

    +
    + +
    top
    +
    +

    コンテントネゴシエーションについて

    + +

    リソースは、幾つか異なった表現で利用できる場合があります。 + 例えば、異なる言語や異なるメディアタイプ、 + またはそれらの組み合わせで利用できるかも知れません。 + もっとも適した選択をする方法の一つには、インデックスページを + ユーザに見せて、ユーザに選んでもらう方法があります。 + しかし、サーバが自動的に選ぶことができる場合が多くあります。 + これは、ブラウザがリクエスト毎に、 + どの表現を嗜好するかという情報を送ることで動作しています。 + 例えばブラウザは、可能ならフランス語で情報を見たい、 + 不可能ならその代わりに英語でもよいと、 + 自分の嗜好を知らせることができます。 + ブラウザはリクエストのヘッダで自分の優先傾向を知らせます。 + フランス語のみの表現を要求する場合は、ブラウザは次を送ります。

    + +

    Accept-Language: fr

    + +

    この優先傾向は、選択可能な表現が存在して、 + 言語によって様々な表現がある場合にのみ適用される + ということに注意してください。

    + +

    もっと複雑なリクエストの例を挙げましょう。 + このブラウザはフランス語と英語を受け付ける、しかしフランス語を好む、 + そして様々なメディアタイプを受け付けるが、 + プレインテキストや他のタイプよりは HTML を好む、 + 他のメディアタイプよりは GIF や JPEG を好む、しかし最終手段として + 他のメディアタイプも受け付ける、と設定されています。

    + +

    + Accept-Language: fr; q=1.0, en; q=0.5
    + Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1 +

    + +

    Apache は HTTP/1.1 規格で定義されている 'server + driven' コンテントネゴシエーションをサポートしています。 + Accept, Accept-Language, + Accept-Charset, Accept-Encoding + リクエストヘッダを完全にサポートしています。Apache は + 'transparent' コンテントネゴシエーションもサポートしていますが、 + これは RFC 2295 と RFC 2296 で定義されている試験的な + ネゴシエーションプロトコルです。 + これらの RFCで定義されている 'feature negotiation' + はサポートしていません。

    + +

    リソースとは URI + で特定される概念上のもののことです (RFC 2396)。 Apache + のような HTTP サーバは、その名前空間の中での + リソースの表現へのアクセスを提供します。 + それぞれの表現は + 定義されたメディアタイプ、文字セット、エンコーディング等の + 付属した、バイト列の形式です。 + それぞれのリソースはある時点で 0 個、1 個、それ以上の表現と + 関連付けられる可能性があります。複数の表現が利用できる場合は、 + リソースはネゴシエーション可能であるとされ、 + 個々の表現は variant と呼ばれます。 + ネゴシエーション可能なリソースの variant が異なる、 + その状態を指して、 + ネゴシエーションの次元と呼びます。

    +
    top
    +
    +

    Apache におけるネゴシエーション

    + +

    リソースをネゴシエーションするためには、 + サーバは variant それぞれについての情報を知っておく必要があります。 + これは以下の二つの方法のどちらかで行われます。

    + +
      +
    • タイプマップ + (すなわち *.var ファイル) + を使う方法。 これは variant + を明示的に挙げているファイルを指定します。
    • + +
    • 'Multiviews' + を使って、サーバが暗黙の内にファイル名にパターン照合を + 行なってその結果から選択する方法。
    • +
    + +

    type-map ファイルを使う

    + +

    タイプマップは type-map ハンドラ + (もしくは、古い Apache + の設定と下位互換である MIME タイプ + application/x-type-map) + に関連付けられたドキュメントです。 + この機能を使うためには、あるファイルの拡張子を + type-map + として定義するようなハンドラを、 + 設定ファイル中に置く必要があることに注意してください。 + これは

    + +

    AddHandler type-map .var

    + +

    をサーバ設定ファイル中に書くことが一番良い方法です。

    + +

    タイプマップファイルは記述するリソースと同じ名前を持っていて、 + 利用可能な variant それぞれのエントリを持っている必要があります。 + そして、このエントリは連続した HTTP のヘッダ行で構成されます。 + 異なる variant のためのエントリは空行で区切られています。 + エントリ中に空行が複数あってはいけません。 + 習慣的には、マップファイルは全体を結合したもののエントリから始まります + (しかしこれは必須ではなく、あったとしても無視されるものです)。 + 次に例を示します。このファイルはリソース foo + を記述しているので、foo.var という名前になります。

    + +

    + URI: foo
    +
    + URI: foo.en.html
    + Content-type: text/html
    + Content-language: en
    +
    + URI: foo.fr.de.html
    + Content-type: text/html;charset=iso-8859-2
    + Content-language: fr, de
    +

    +

    たとえ MultiViews を使用するようになっていたとしても、 + ファイル名の拡張子よりタイプマップの方が優先権を持つということにも + 注意してください。 + variant の品質が違うときは、この画像のように (JPEG, GIF, ASCII + アートがあります) メディアタイプの "qs" + パラメータで指定されます。

    + +

    + URI: foo
    +
    + URI: foo.jpeg
    + Content-type: image/jpeg; qs=0.8
    +
    + URI: foo.gif
    + Content-type: image/gif; qs=0.5
    +
    + URI: foo.txt
    + Content-type: text/plain; qs=0.01
    +

    + +

    qs 値の範囲は 0.000 から 1.000 です。qs 値が + 0.000 の variant は決して + 選択されないことに注意してください。'qs' 値のない variant + は qs 値 1.0 を 与えられます。qs + パラメータはクライアントの能力に関係無く、他の variant と + 比較したときの variant + の相対的な「品質」を示します。 + 例えば、写真を表現しようとしているときは JPEG + ファイルの方が普通は ASCII + ファイルよりも高い品質になります。しかし、リソースが元々 + ASCII アートで表現されているときは、ASCII ファイルの + 方が JPEG ファイルよりも高い品質になります。このように、qs + は 表現されるリソースの性質によって variant + 毎に特有の値を取ります。

    + +

    認識されるヘッダの一覧は + mod_negotiation + ドキュメントにあります。

    + + +

    Multiviews

    + +

    MultiViews はディレクトリ毎のオプションで、 + httpd.confファイルの + <Directory>, + <Location>, + <Files> + セクション中や、(AllowOverride + が適切な値に 設定されていると) .htaccess + ファイルで Options + ディレクティブによって設定することができます。 + Options All は + MultiViews + をセットしないことに注意してください。明示的に + その名前を書く必要があります。

    + +

    MultiViews の効果は以下のようになります: + サーバが /some/dir/foo + へのリクエストを受け取り、/some/dir で + MultiViews が有効であって、 + /some/dir/foo が存在しない場合、 + サーバはディレクトリを読んで foo.* + にあてはまる全てのファイルを探し、 + 事実上それらのファイルをマップするタイプマップを作ります。 + そのとき、メディアタイプとコンテントエンコーディングは、そのファイル名を + 直接指定したときと同じものが割り当てられます。 + それからクライアントの要求に一番合うものを選びます。

    + +

    サーバがディレクトリの索引を作ろうとしている場合、 + MultiViews + は DirectoryIndex + ディレクティブで指定されたファイルを探す過程にも + 適用されます。設定ファイルに

    +

    DirectoryIndex index

    +

    が書かれていて、index.html と + index.html3 が + 両方存在していると、サーバはその中からどちらかを適当に選びます。 + もしその両方が存在せずに index.cgi + が存在していると、 サーバはそれを実行します。

    + +

    もしディレクトリを読んでいる際に、 + 文字セット、コンテントタイプ、言語、エンコーディングを + 指定するための mod_mime + で認識できる拡張子を持たないファイルが見つかると、結果は + MultiViewsMatch + ディレクティブの設定に依存します。このディレクティブは + ハンドラ、フィルタ、他のファイル拡張子タイプのどれが + MultiViews ネゴシエーションで使用できるかを決定します。

    + +
    top
    +
    +

    ネゴシエーション方法

    + +

    Apache はリソースの variant の一覧を、タイプマップファイルか + ディレクトリ内のファイル名からかで取得した後、 + 「最適な」 variant を決定するために二つの方法の + どちらかを起動します。 + Apache のコンテントネゴシエーションの機能を使うために、 + どのようにしてこの調停が行われるか詳細を知る必要はありません。 + しかしながら、この文書の残りでは関心のある人のために、 + 使用されている方法について説明しています。

    + +

    ネゴシエーション方法は二つあります。

    + +
      +
    1. 通常は Apache のアルゴリズムを用いた Server + driven negotiation が使用されます。Apache + のアルゴリズムは後に詳細に説明されています。 + このアルゴリズムが使用された場合、Apache + はより良い結果になるように、特定の次元において品質の値を + 「変える」ことができます。Apache + が品質の値を変える方法は後で詳細に説明されています。
    2. + +
    3. RFC 2295 + で定義されている機構を用いてブラウザが特に指定した場合、 + transparent content negotiation + が使用されます。このネゴシエーション方法では、「最適な」 + variant の決定をブラウザが完全に制御することができます。 + ですから、結果はブラウザが使用しているアルゴリズムに依存します。 + Transparent negotiation の処理の過程で、ブラウザは RFC 2296 + で 定義されている 'remote variant selection algorithm' + を実行するように頼むことができます。
    4. +
    + +

    ネゴシエーションの次元

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    次元説明
    メディアタイプブラウザは Accept + ヘッダフィールドで優先傾向を指定します。 + アイテムそれぞれは、関連した品質数値を持つことができます。 + variant の説明も品質数値を持つことができます + ("qs" パラメータをご覧下さい)。
    言語ブラウザは Accept-Language + ヘッダフィールドで優先傾向を指定します。 + 要素それぞれに品質数値を持たせることができます。 + variants は 0 か 1 つかそれ以上の言語と + 関連づけることができます。
    エンコーディングブラウザは Accept-Encoding + ヘッダフィールドで優先傾向を指定します。 + 要素それぞれに品質数値を持たせることができます。
    文字セットブラウザは Accept-Charset + ヘッダフィールドで優先傾向を指定します。 + 要素それぞれに品質数値を持たせることができます。 + variant はメディアタイプのパラメータとして文字セットを + 指定することもできます。
    + + +

    Apache ネゴシエーションアルゴリズム

    + +

    ブラウザに返す「最適な」variant を (もしあれば) 選択するように + Apache は次のアルゴリズムを使うことができます。 + このアルゴリズムを設定により変更することはできません。 + 次のように動作します:

    + +
      +
    1. まずはじめに、ネゴシエーションの次元それぞれについて適切な + Accept* ヘッダフィールドを調べ、 + variant それぞれに品質を割り当てます。 + もしある次元の Accept* ヘッダでその variant + が許容できないことが示されていれば、それを削除します。 + variant が一つも残っていなければ、ステップ 4 に行きます。
    2. + +
    3. + 消去法で「最適な」 variant を選びます。 + 次のテストが順番に適用されます。 + テストで選択されなかった variant は削除されていきます。 + テスト後 variant が一つだけ残っていれば、それを最適なものとして + ステップ 3 に進みます。 + 複数 variant が残っていれば、次のテストに進みます。 + +
        +
      1. variant のメディアタイプの品質数値と Accept + ヘッダの品質数値との積を計算して、最高値の variant + を選びます。
      2. + +
      3. 言語品質数値が最高の variant を選びます。
      4. + +
      5. (もしあれば) Accept-Language ヘッダの言語順か、 + (もしあれば) + LanguagePriority + ディレクティブの言語順で最適な言語の variant を選びます。
      6. + +
      7. 最高「レベル」のメディアパラメータ + (text/html メディアタイプのバージョンを与えるために使われます) + を持つ variant を選びます。
      8. + +
      9. Accept-Charset ヘッダ行で与えられている最高の文字セット + メディアパラメータを持つ variant を選びます。 + 明示的に除外されていない限り、ISO-8859-1 + が許容されるようになっています。 + text/* メディアタイプであるけれども + 特定の文字セットに明示的に関連づけられているわけではない + variant は ISO-8859-1 であると仮定されます。
      10. + +
      11. ISO-8859-1 ではない文字セットメディアパラメータと + 関連づけられている variant を選びます。 + そのような variant がない場合は、代わりに全ての + variant を選びます。
      12. + +
      13. 最適なエンコーディングの variant を選びます。 + もし user-agent が許容するエンコーディングがあれば、 + その variant のみを選びます。 + そうではなく、もしエンコードされたものとそうでない + variant が混ざって存在していたらエンコードされていない + variant のみを選びます。 + variant が全部エンコードされているか + variant が全部エンコードされていないという場合は、 + 全ての variant を選びます。
      14. + +
      15. 内容の最も短い variant を選びます。
      16. + +
      17. 残っている variant の最初のものを選びます。 + タイプマップファイルの最初にリストされているか、 + variant がディレクトリから最初に読み込まれる時に + ASCII順でソートしてファイル名が先頭になったか、のどちらかです。
      18. +
      +
    4. + +
    5. アルゴリズムを使って一つの「最適な」variant を選びましたので、 + それを応答として返します。ネゴシエーションの次元を指定するために + HTTP レスポンスヘッダ Vary が設定されます + (リソースのキャッシュをする時に、 + ブラウザやキャッシュはこの情報を使うことができます)。 + 以上で終わり。
    6. + +
    7. ここに来たということは、variant が一つも選択されなかった + (ブラウザが許容するものがなかったため) ということです。 + 406 ステータス ("No Acceptable representation" を意味する) + が、利用可能な variant のリストのついた HTML + ドキュメントとともに返されます。 + 相違の次元を示す HTTP Vary ヘッダも設定されます。
    8. +
    + +
    top
    +
    +

    品質の値を変える

    + +

    上記の Apache ネゴシエーションアルゴリズムの厳格な解釈で + 得られるであろう値から、Apache は品質数値を時々変えます。 + これは、このアルゴリズムで完全ではない、あるいは正確でない情報を送る + ブラウザ向けによりよい結果を得るために行われます。 + かなりポピュラーなブラウザで、もしないと間違った variant + を選択する結果になってしまうような Accept + ヘッダ情報を送るものもあります。 + ブラウザが完全で正しい情報を送っていれば、 + この数値変化は適用されません。

    + +

    メディアタイプとワイルドカード

    + +

    Accept: リクエストヘッダはメディアタイプの優先傾向を指定します。 + これはまた、"image/*" や "*/*" + といった「ワイルドカード」メディアタイプを含むことができます。 + ここで * は任意の文字列にマッチします。 + ですから、次の:

    + +

    Accept: image/*, */*

    + +

    を含むリクエストは、"image/" ではじまるタイプ全てが許容できる、 + そして他のどんなタイプも許容できる + (この場合はじめの "image/*" は冗長になります) + ことを示します。 + 扱うことのできる明示的なタイプに加えて、機械的に + ワイルドカードを送るブラウザもあります。例えば:

    + +

    + Accept: text/html, text/plain, image/gif, image/jpeg, */* +

    +

    こうすることの狙いは、明示的にリストしているタイプが優先されるけれども、 + 異なる表現が利用可能であればそれでも良い、ということです。 + しかしながら、上の基本的なアルゴリズムでは、 + */* ワイルドカードは他の全てのタイプと全く同等なので優先されません。 + ブラウザは */* にもっと低い品質 (優先) + 値を付けてリクエストを送るべきなのです。例えば:

    +

    + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 +

    +

    明示的なタイプには品質数値が付けられていませんので、 + デフォルトの 1.0 (最高値) の優先になります。 + ワイルドカード */* は低い優先度 0.01 を与えられているので、 + 明示的にリストされているタイプに合致する variant がない場合にのみ、 + 他のタイプが返されます。

    + +

    もし Accept: ヘッダが q 値を全く含んでいなければ、 + 望みの挙動をするために、 + Apache は "*/*" があれば 0.01 の q 値を設定します。 + また、"type/*" の形のワイルドカードには 0.02 の q 値を設定します + (ですからこれらは "*/*" のマッチよりも優先されます)。 + もし Accept: ヘッダ中のメディアタイプのどれかが q + 値を含んでいれば、これらの特殊な値は適応されず、 + 正しい情報を送るブラウザからのリクエストは期待通りに + 動作するようになります。

    + + +

    言語ネゴシエーションの例外処理

    + +

    Apache 2.0 では新たに、言語ネゴシエーションが適合するものを + 見つけるのに失敗した時に、優雅にフォールバックできるような + ネゴシエーションアルゴリズムが幾つか追加されました。

    + +

    サーバのページをクライアントがリクエストしたけれども、 + ブラウザの送ってきた Accept-Language に合致するページが一つも + 見つからなかった場合に、サーバは "No Acceptable Variant" + か "Multiple Choices" レスポンスをクライアントに返します。 + これらのエラーメッセージを返さないように、 + このような場合には Apache が Accept-Language を無視して、 + クライアントのリクエストに明示的には合致しないドキュメントを + 提供するように設定できます。 + ForceLanguagePriority + ディレクティブは、これらのエラーの一つか両方をオーバーライドするために + 使用できて、 + LanguagePriority + ディレクティブの内容を使ってサーバの判断を代行するようにできます。

    + +

    サーバは他に適合するものが見つからなければ、 + 言語サブセットで適合するものを試そうともします。 + 例えばクライアントが英国英語である en-GB 言語で + ドキュメントをリクエストした場合、サーバは HTTP/1.1 + 規格では、単に en とマークされているドキュメントを + マッチするものとすることは通常は許されていません。 + (英国英語は理解できるけど一般的な英語は理解できないという読み手は + 考えられないので、Accept-Language ヘッダで en-GB + を含んで en を含まないのはほぼ確実に設定の間違いである、 + ということに注意してください。 + ですが不幸なことに、多くのクライアントではデフォルトで + このような設定になっています。) + しかしながら、他の言語にはマッチせず、"No Acceptable Variants" + エラーを返したり、 + LanguagePriority + にフォールバックしようとしているときは、 + サブセット指定を無視して、en-GB を en + にマッチします。 + Apache はクライアントの許容言語リストに暗黙に + 非常に低い品質値の親言語を加えることになります。 + しかし、クライアントが "en-GB; q=0.9, fr; q=0.8" とリクエストして、 + サーバが "en" と "fr" と設計されたドキュメントを持っている場合は、 + "fr" ドキュメントが返されることに注意してください。 + このような処理は、HTTP 1.1 規格との整合性を維持して、 + 適切に設定されたクライアントともきちんと動作するために + 必要です。

    + +

    より高度なテクニック (Cookie や特殊な URL パス等) + においてもユーザの言語選択をサポートするため、 + Apache 2.0.47 からは、mod_negotiation + が環境変数 prefer-language + を認識するようになりました。 + この変数が存在して、適切な言語タグが代入されているのであれば、 + mod_negotiation は合致する variant + を選択しようとします。合致するものが無ければ、 + 通常のネゴシエーション手順が適用されます。

    + +

    Example

    + SetEnvIf Cookie "language=(.+)" prefer-language=$1 +

    + +
    top
    +
    +

    Transparent Content Negotiation +の拡張

    + +

    Apache は transparent content negotiation プロトコル +(RFC 2295) を次のように拡張しています。 +特定のコンテントエンコーディングのみが利用可能である variant +に印を付けるために、新たに {encoding ..} +要素を variant リスト中に使っています。 +リスト中のエンコードされた variant を認識し、 +Accept-Encoding リクエストヘッダに従って許容される +エンコードをもった variant は、どれでも候補 variant +として使用するように、 +RVSA/1.0 アルゴリズム (RFC 2296) の実装が拡張されました。 +RVSA/1.0 の実装では、最適な variant が見つかるまで、 +計算した品質数値は小数点以下 5 桁まで丸めません。

    +
    top
    +
    +

    リンクと名前の変換に関する注意点

    + +

    言語ネゴシエーションを使っている場合は、 + ファイルが一つ以上の拡張子を持てて、 + 拡張子の順番は通常は考慮されない + (詳細は mod_mime + を参照) ので、 + 幾つかの異なる名前の変換を選べることになります。

    + +

    典型的なファイルでは、MIME タイプ拡張子 (例えば + html) を持っていて、エンコーディング拡張子 + (例えば gz) を持っているかもしれなくて、 + このファイルに異なる言語 variant を用意していれば、 + もちろん言語拡張子 (例えば en) + を持っているでしょう。

    + +

    例:

    + +
      +
    • foo.en.html
    • + +
    • foo.html.en
    • + +
    • foo.en.html.gz
    • +
    + +

    ファイル名と、それに対して使えるリンクと使えないリンクの例です:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ファイル名使えるリンク使えないリンク
    foo.html.enfoo
    + foo.html
    -
    foo.en.htmlfoofoo.html
    foo.html.en.gzfoo
    + foo.html
    foo.gz
    + foo.html.gz
    foo.en.html.gzfoofoo.html
    + foo.html.gz
    + foo.gz
    foo.gz.html.enfoo
    + foo.gz
    + foo.gz.html
    foo.html
    foo.html.gz.enfoo
    + foo.html
    + foo.html.gz
    foo.gz
    + +

    上の表を見て、拡張子なしのリンク (例えば foo) + がいつでも使えることに気が付くでしょう。 + この利点は、ドキュメントとして応答するファイルの + 実際のファイルタイプを隠蔽して、リンクの参照を変更することなく + 後からファイルを変更できる、 + 例えば html から shtml + に、あるいは cgi に変更できる点です。

    + +

    リンクに MIME タイプを使い続けたい (例えば + foo.html)時は、言語拡張子は + (エンコーディング拡張子もあればそれも含めて) + MIME タイプ拡張子の右側になければなりません + (例えば foo.html.en)。

    +
    top
    +
    +

    キャッシュに関する注意事項

    + +

    キャッシュが一つの表現を保存しているときは、 + リクエスト URL と関連づけられています。 + 次にその URL がリクエストされた時に、キャッシュは + 保存されている表現を使用できます。しかし、 + リソースがサーバでネゴシエーション可能であれば、 + 最初のリクエストでキャッシュされて続くキャッシュヒットでは + 間違った応答を返してしまうということになりかねません。 + これを防ぐために、Apache はコンテントネゴシエーションの + 後に返された応答全てに、HTTP/1.0 クライアントでは + キャッシュ不可能の印をつけます。 + また、ネゴシエーションされた応答のキャッシュを可能にする + HTTP/1.1 プロトコルの機能も Apache はサポートします。

    + +

    HTTP/1.0 準拠のクライアントからのリクエストに対しては、 + (ブラウザであろうとキャッシュであろうと) + ネゴシエーションを受けた応答のキャッシュを許すために、 + CacheNegotiatedDocs + ディレクティブを使用できます。 + このディレクティブは、サーバ設定ファイルやバーチャルホストに書くことができ、 + 引数をとりません。 + HTTP/1.1 クライアントからのリクエストには効力を持ちません。

    + +

    HTTP/1.1 クライアントに対しては、レスポンスのネゴシエーション次元 + を示すために Vary HTTP レスポンスヘッダを送ります。 + キャッシュは、これを使って後続のリクエストに対してローカルコピーで応答できるか + どうかを決定できます。 + ネゴシエーション次元とは関係なしにローカルコピーの使用を優先するようにするには、 + force-no-vary 環境変数を + 設定します。

    + +
    +
    +

    翻訳済み言語:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/content-negotiation.html.ko.euc-kr b/docs/manual/content-negotiation.html.ko.euc-kr index 1e0036f1fa1..0eb38a31d74 100644 --- a/docs/manual/content-negotiation.html.ko.euc-kr +++ b/docs/manual/content-negotiation.html.ko.euc-kr @@ -1,27 +1,38 @@ - -³»¿ëÇù»ó (Content Negotiation) - Apache HTTP Server +³»¿ëÇù»ó (Content Negotiation) - Apache HTTP Server Version 2.2 - - + + + +
    <-

    ³»¿ëÇù»ó (Content Negotiation)

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    ³»¿ëÇù»ó (Content Negotiation)

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    ¾ÆÆÄġ´Â HTTP/1.1 ±Ծ࿡ ±â¼úµÈ ³»¿ëÇù»ó(content @@ -40,8 +51,7 @@

  • Àڿ¬½º·¯¿î(transparent) ³»¿ëÇù»óÀÇ ȮÀå
  • ÇÏÀÌÆ۸µũ¿Í À̸§±ÔĢ¿¡ ´ëÇϿ©
  • ij½¬¿¡ ´ëÇϿ©
  • -
  • ´ٸ¥ Á¤º¸
  • -
    +
    top

    ³»¿ëÇù»ó¿¡ ´ëÇØ

    @@ -590,19 +600,35 @@ content-encoding ÆǴÜÇÒ ¼ö ÀִÙ. Çé»óÀÇ ¹üÀ§¿Í °ü°è¾øÀÌ ij½¬µÈ º¹»纻À» ±ÇÇѴٸé force-no-vary ȯ°溯¼ö¸¦ ¼³Á¤ÇѴÙ.

    -
    top
    -
    -

    ´ٸ¥ Á¤º¸

    - -

    ³»¿ëÇù»ó¿¡ ´ëÇÑ ´ٸ¥ Á¤º¸´Â Alan J. Flavell°¡ ¾´ Language - Negotiation Notes¸¦ Âü°íÇ϶ó. ±׷¯³ª ÀÌ ¹®¼­´Â ¾ÆÁ÷ - ¾ÆÆÄġ 2.0ÀÇ º¯ȭ¸¦ ¹ݿµÇÏÁö ¾ÊÀ» ¼ö ÀִÙ.

    °¡´ÉÇÑ ¾ð¾î:  en  | + fr  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/content-negotiation.html.tr.utf8 b/docs/manual/content-negotiation.html.tr.utf8 new file mode 100644 index 00000000000..2462edd7321 --- /dev/null +++ b/docs/manual/content-negotiation.html.tr.utf8 @@ -0,0 +1,674 @@ + + + + + +İçerik Uzlaşımı - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    İçerik Uzlaşımı

    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    + + +

    Apache, içerik uzlaşımını HTTP/1.1 belirtiminde bahsedildiği şekliyle + destekler. Bir özkaynağın en iyi gösterimini, tarayıcının sağladığı + karakter kodlaması, karakter kümesi, dil, ortam türü gibi kullanıcı + tercihlerine bağlı olarak seçebilir. Ayrıca, tarayıcının kullanıcı + tercihlerini tam yansıtamadığı durumlarda istekleri daha akıllıca ele + alabilmeyi sağlayacak bir takım özelliklere de sahiptir.

    + +

    İçerik uzlaşımı öntanımlı olarak derlenen + mod_negotiation modülü tarafından sağlanır.

    +
    + +
    top
    +
    +

    İçerik Uzlaşımı Hakkında

    + +

    Bir özkaynağın bir çok farklı gösterimi olabilir. Örneğin, bir belgenin + farklı ortam türleri ve/veya farklı diller için gösterimleri olabilir. + En uygun seçimi yapmanın tek yolu kullanıcıya bir liste verip seçmesini + istemektir. Bununla birlikte sunucunun bu seçimi kendiliğinden yapması + da mümkündür. Tarayıcılar isteğin bir parçası olarak kullanıcı + tercihlerini de gönderdiğinden bu istendiği gibi çalışır. Örneğin bir + tarayıcı, kullanıcısınının mümkünse Fransızca içerik tercih ettiğini + yoksa İngilizce içeriğe de razı olabileceğini belirtebilirdi. + Tarayıcılar bu tercihleri başlıkta belirtirler. Tarayıcı sadece Türkçe + içerik istendiğini şöyle belirtebilirdi:

    + +

    Accept-Language: tr

    + +

    Bu tercihin yerine getirilebilmesininin sadece, desteklenen diller + arasında bu dilin varlığına ve istenen belgenin bu dilde bir + gösteriminin bulunmasına bağlı oluşuna dikkat ediniz.

    + +

    Daha karmaşık bir istek örneği olarak, tarayıcının Fransızca ve + İngilizce içerik kabul etmeye ayarlandığını fakat Fransızcayı tercih + ettiğini ve çeşitli ortam türlerini kabul etmekle birlikte salt metin ve + diğer metin türlerinden ziyade HTML tercih ettiğini, ayrıca, diğer ortam + türleri üzerinde GIF veya JPEG tercih ettiğini fakat başka çare yoksa + her ortam türüne de izin verdiğini belirtiyor olsun:

    + +

    + Accept-Language: fr; q=1.0, en; q=0.5
    + Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; + q=0.6, image/*; q=0.5, */*; q=0.1 +

    + +

    Apache, HTTP/1.1 belirtiminde tanımlanan şekliyle ‘sunucu yönetiminde’ + içerik uzlaşımını destekler. Accept, + Accept-Language, Accept-Charset ve + Accept-Encoding istek başlıklarını tamamen destekler. + Apache ayrıca, RFC 2295 ve RFC 2296’da tanımlanan bir deneysel uzlaşım + olarak ‘şeffaf’ içerik uzlaşımını da destekler. Fakat ‘özellik + uzlaşımını’ bu RFC’lerde tanımlandığı gibi desteklemez.

    + +

    Bir özkaynak bir URI (RFC 2396) tarafından betimlenen + kavramsal bir öğedir. Apache gibi bir HTTP sunucusu, ortam türü, + karakter kümesi, kodlama ve saire ile tanımlanmış bir bayt dizisi + şeklindeki her gösterimiyle, özkaynaklara kendi isim alanları dahilinde + erişim sağlar. Her özkaynağın aynı anda bir veya daha fazla gösterimi + mevcut olabileceği gibi hiç mevcut olmayabilir de. Eğer çok sayıda + gösterim mevcutsa, bu özkaynağın uzlaşılabilir + olduğundan ve her gösteriminin bir çeşitlilik + oluşturduğundan bunun da uzlaşımın boyutlarından + kaynaklandığından bahsedilebilir.

    +
    top
    +
    +

    Apache’de İçerik Uzlaşımı

    + +

    Bir özkaynak üzerinde uzlaşılırken gösterim çeşitlerinin her biri + hakkında sunucuya bilgi verilmesi gerekir. Bu iki yolla yapılabilir:

    + +
      +
    • Ya gösterim çeşitlerini içeren dosyaların isimleriyle eşleşmeyi + sağlayan bir tür eşlemi kullanılır (bir *.var dosyası + gibi).
    • + +
    • Ya da sunucu örtük bir dosya ismi kalıbı eşleşmesinin ardından + sonuçlar arasından seçim yapar; buna ‘Çoklu Görünüm’ araması adı + verilir.
    • +
    + +

    Bir türeşlem dosyası kullanmak

    + +

    Bir türeşlem dosyası, type-map eylemcisi ile ilişkili bir + belgedir (ya da eski Apache yapılandırmaları ile geriye uyumluluk için, + application/x-type-map MIME türünde + bir belgedir). Bu özelliği kullanmak için, yapılandırmada bir tür + eşleyici olarak her dosya ismi uzantısı için bir type-map + eylemcisi tanımlamalısınız. Bu, sunucu yapılandırma dosyasında en iyi + şöyle yapılabilir:

    + +

    AddHandler type-map .var

    + +

    Türeşlem dosyaları kendilerini tanımlayan özkaynak ile aynı isimde + olmalı ve her gösterim çeşidi için bir girdi içermelidir; bu girdiler + ardarda belirtilen HTTP biçem başlık satırlarından oluşur. Farklı + gösterimlerin girdileri bir boş satırla diğerlerinden ayrılır. Aynı + girdi içinde boş satır kullanılamaz. Bir eşlem dosyasını bir birleşik + öğenin tamamı için bir girdi ile başlatmak adet olmuştur (ise de, bu + gerekli değildir, hele yoksayılacaksa hiç gerekli değildir). Eşlem + dosyası için aşağıda bir örnek verilmiştir. Dosya misal + isimli bir özkaynak hakkında olduğundan dosyaya misal.var + ismi verilebilir.

    + +

    + URI: misal
    +
    + URI: misal.en.html
    + Content-type: text/html
    + Content-language: en
    +
    + URI: misal.fr.de.html
    + Content-type: text/html;charset=iso-8859-2
    + Content-language: fr, de
    +

    + +

    Ayrıca, MultiViews etkin olsa bile bir türeşlem dosyasının + dosya ismi uzantılarının taranmasına göre öncelik alacağına dikkat + ediniz. Eğer gösterimler bu örnekteki resim dosyasında olduğu gibi + farklı kaynak üstünlüklerine sahipseler, ortam türünün qs + parametresi kullanılarak kaynak üstünlükleri belirtilebilir:

    + +

    + URI: misal
    +
    + URI: misal.jpeg
    + Content-type: image/jpeg; qs=0.8
    +
    + URI: misal.gif
    + Content-type: image/gif; qs=0.5
    +
    + URI: misal.txt
    + Content-type: text/plain; qs=0.01
    +

    + +

    qs değerleri 0.000-1.000 değer aralığı içinde + belirtilebilir. 0.000 qs değerine sahip gösterimin asla + seçilmeyeceğine dikkat ediniz. Bir qs değeri belirtilmeyen + gösterimlerin kaynak üstünlüğü 1.000 kabul edilir. qs + parametresinin belirttiği değer istemcinin yeteneklerinden bağımsız + olarak olası gösterimler arasında göreli bir üstünlük ifade eder. + Örneğin bir fotoğraf sözkonusu olduğunda bir JPEG dosyasının kaynak + üstünlüğü bir ASCII çiziminkinden yüksek olacaktır. Diğer taraftan özgün + resim bir ASCII çizim olduğu takdirde, ASCII çizim, bir JPEG gösterimine + göre öncelikli olacaktır. Bu nedenle qs değeri özkaynağın + doğasına bakarak belirlenir.

    + +

    Tanınan başlıkların tam listesini mod_negotiation modülünün + belgesinde bulabilirsiniz.

    + + +

    Çoklu Görünümler

    + +

    MultiViews, httpd.conf dosyasındaki veya + (AllowOverride yönergesinin + değerine bağlı olarak) .htaccess dosyalarındaki <Directory>, <Location> veya <Files> bölümleri içinde + Options yönergeleri ile + belirtilebilen, dizine özgü bir seçenektir. Yalnız, dikkatli olun, + Options All yaparak MultiViews seçeneğini + etkin kılamazsınız; seçeneği ismiyle açıkça belirtmelisiniz.

    + +

    MultiViews şöyle etki eder: Sunucudan, + MultiViews seçeneğinin etkin olduğu /bir/dizin + dizininden filanca dosyası için bir istekte bulunulmuşsa + fakat dizinde bu dosya yoksa, sunucu dizin içeriğini + filanca.* dosyaları için tarar ve bu dosyalar için + istemcinin ismiyle talep ettiği ortam türlerini ve kodlamaları + kullanarak bir türeşlem dosyası uydurup bu gösterimler arasından + istemcinin gereksinimlerine en uygun gösterimi seçer.

    + +

    MultiViews ayrıca, sunucunun bir dizin içeriğini + listelemeye çalıştığı durumda DirectoryIndex yönergesi ile belirtilen dosya için de bir + arama tertipleyebilir. Eğer yapılandırma dosyalarında

    + +

    DirectoryIndex index

    + +

    şeklinde bir atama varsa ve dizinde index.html ve + index.html3 dosyaları varsa sunucu bunlar arasından hakem + sıfatıyla bir seçim yapacaktır; ama bu ikisi yerine dizinde sadece + index.cgi mevcutsa sunucu sadece bu dosyayı + çalıştıracaktır.

    + +

    Okunan dizinde bulunan dosyalar arasında mod_mime + tarafından tanınan karakter kümesi, içerik türü, dil ve kodlama + başlıklarına uygun gösterim uzantılarından birine sahip bir dosya yoksa + sonuç MultiViewsMatch + yönergesiyle yapılan tanıma bağlı olur. Bu yönerge hangi diğer dosya + uzantılarının, eylemcilerin veya süzgeçlerin çok gösterimli uzlaşımla + ilintileneceğini belirler.

    + +
    top
    +
    +

    Uzlaşım Yöntemleri

    + +

    Apache’nin, bir türeşlem dosyası veya dizin içindeki bir dosya + sayesinde belli bir özkaynağın gösterim çeşitlerinin bir listesini elde + ettikten sonra ‘en uygun’ gösterime karar vermek için kullanabileceği + iki yöntem vardır. Apache’nin içerik uzlaşım özelliklerinin kullanımı + sırasında uzlaşımın nasıl yerine getirileceği ile ilgili ayrıntıları + bilmek aslında gerekli değildir. Bununla birlikte belgenin kalanında bu + konu açıklanmaya çalışılmıştır.

    + +

    İki uzlaşım yöntemi vardır:

    + +
      +
    1. Normal durumda sunucu yönetiminde Apache uzlaşım + algoritması kullanılır. Bu algoritma aşağıda ayrıntılı olarak + açıklanmıştır. Bu algoritma kullanıldığı zaman, Apache, en iyi sonuca + ulaşmak için bazen belli boyutların üstünlük katsayılarıyla ‘oynar’. + Apache’nin bu katsayılarla oynama işini nasıl yaptığı aşağıda daha + ayrıntılı açıklanmıştır.
    2. + +
    3. İstemci bu işlem için özellikle RFC 2295’te tanımlanan mekanizmanın + kullanılmasını isterse şeffaf içerik uzlaşımı + kullanılır. Bu uzlaşım yöntemi, en uygun gösterimin seçilmesi + konusunda tarayıcıya tam denetim imkanı verir; dolayısıyla sonuç + tarayıcının bu işlem için kullandığı algoritmanın başarısına bağlıdır. + Şeffaf uzlaşım sürecinin bir parçası olarak, tarayıcı, RFC 2296’da + tanımlanan ‘gösterim çeşidini uzaktan seçme algoritması’nın + çalıştırılmasını Apache’den isteyebilir.
    4. +
    + +

    Uzlaşımın Boyutları

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BoyutAçıklama
    Ortam TürüTarayıcı ortam türü tercihlerini Accept başlık alanı + ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir. Gösterimin açıklaması da ayrıca bir kaynak üstünlüğüne + (qs parametresi) sahip olabilir.
    DilTarayıcı dil tercihlerini Accept-Language başlık + alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir. Gösterimler bir kaç dilde olabileceği gibi hiç bir dille + ilişkilendirimemiş de olabilir.
    KodlamaTarayıcı kodlama tercihlerini Accept-Encoding başlık + alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir.
    Karakter KümesiTarayıcı karakter kümesi tercihlerini Accept-Charset + başlık alanı ile belirtir. Her öğenin kendine özgü bir üstünlük + katsayısı olabilir. Gösterim çeşitleri karakter kümesini ortam + türünün bir parametresi olarak belirtebilirler.
    + + +

    Apache Uzlaşım Algoritması

    + +

    Apache, tarayıcıya döndürülecek en uygun gösterim çeşidini (varsa) + seçmek için aşağıdaki algoritmayı kullanabilir. Bu algoritma pek de + yapılandırılabilir değildir. Şöyle çalışır:

    + +
      +
    1. Önce her uzlaşım boyutu için ilgili Accept* başlık alanına + bakılıp her gösterim çeşidine bir üstünlük katsayısı atanır. Eğer + boyutlardan bazıları için ilgili Accept* başlığı + uygulanabilir değilse bu boyut elenir ve sonuçta hiçbir gösterim + çeşidi kalmasza 4. adıma atlanır.
    2. + +
    3. ‘En uygun’ gösterim çeşidi bir eleme süreciyle seçilir. Bu süreç + sırasında aşağıdaki sınamalar sırayla uygulanır. Sınamalardan + geçemeyen bir gösterim çeşidi elenir. Sınamaların bir aşamasında tek + bir gösterim çeşidi kalırsa bu en uygun eşleşme olarak seçilmiş olur + ve 3. adıma atlanır. Eğer birden fazla gösterim çeşidi kalırsa sonraki + sınamaya geçilir. + +
        +
      1. Accept başlığındaki üstünlük katsayısı ile + gösterimin ortam türünde belirtilen kaynak üstünlüğünün çarpımı en + büyük olan gösterim çeşidi seçilir.
      2. + +
      3. En yüksek dil üstünlük katsayısına sahip gösterim çeşidi seçilir. +
      4. + +
      5. En uygun dil eşleşmesine sahip gösterim çeşidini seçmek için + önce varsa Accept-Language başlığındaki dil + sıralamasına bakılır, aksi takdirde LanguagePriority + yönergesi ile atanmışsa oradaki dil sıralamasına bakılır.
      6. + +
      7. En yüksek ‘seviyeden’ ortam parametresine (text/html ortam türü + sürümünü belirtmekte kullanılır) sahip gösterim çeşitleri + seçilir.
      8. + +
      9. Accept-Charset başlık satırında belirtilene bakarak + en uygun karakter kümesine sahip gösterim çeşitleri seçilir. + Alenen dışlanmadıkça ISO-8859-1 kabul edilebilir karakter + kümesidir. text/* ortam türüne sahip gösterim + çeşitlerinden belli bir karakter kümesi ile ilişkilendirilmemiş + olanların karakter kümesinin ISO-8859-1 olduğu varsayılır.
      10. + +
      11. ISO-8859-1 karakter kümesi ile ilişkilendirilmemiş gösterim + çeşitleri seçilir. Böyle hiçbir gösterim yoksa bütün gösterimler + seçilir.
      12. + +
      13. En uygun kodlamaya sahip gösterim çeşitleri seçilir. Tarayıcı + tarafından kabul edilebilir kodlamaya sahip gösterim çeşitleri + varsa bunlar seçilir. Yoksa kodlanmış ve kodlanmamış gösterim + çeşitleri karışık olarak mevcutsa sadece kodlanmamış olanlar + seçilir. Eğer bütün gösterim çeşitlerinin sadece kodlanmış ya da + sadece kodlanmamış gösterimleri mevcutsa hepsi seçilir.
      14. + +
      15. En küçük içerik uzunluğuna sahip gösterim çeşitleri seçilir.
      16. + +
      17. Kalan gösterim çeşitlerinin ilki seçilir. Bu ilk, ya türeşlem + dosyasında listelenen ilk çeşittir ya da gösterimler bir dizinden + okunuyorsa ASCII kod sıralamasına göre ilk sıradaki dosya ismine + sahip gösterimdir.
      18. +
      +
    4. + +
    5. Algoritma, artık seçilmiş en uygun gösterim çeşidine sahipse bu + artık yanıt olarak döndürülebilir. HTTP yanıt başlığı + Vary’ye uzlaşım boyutları atanır (tarayıcı ve + arabellekler özkaynağı kaydederken bu bilgiyi kullanırlar) + ve algoritma sonlandırılır.
    6. + +
    7. Buraya gelinmişse hiçbir gösterim seçilmemiş demektir (hiçbiri + tarayıcı tarafından kabul edilebilir bulunmadığından dolayı). + Gövdesinde mevcut gösterim çeşitlerini listeleyen bir HTML belgesi 406 + durum koduyla döndürülür (406: ‘kabul edilebilir bir gösterim yok’). + Ayrıca HTTP Vary başlığında gösterim çeşitliliğinin + boyutları belirtilir.
    8. +
    + +
    top
    +
    +

    Üstünlük Değerleriyle Oynamak

    + +

    Apache bazen yukarıdaki Apache uzlaşım algoritmasının kesin sonucunun + beklenenden farklı olması için üstünlük değerleriyle oynar. Bunu tam ve + doğru bilgi göndermeyen tarayıcılar için algoritmadan en iyi sonucu elde + etmek amacıyla yapar. Bazen günümüzün en tanınmış tarayıcıları bile çoğu + durumda yanlış bir seçimle sonuçlanmayacaksa Accept başlık + bilgilerini göndermemektedir. Eğer tarayıcı eksiksiz ve doğru bilgi + gönderirse Apache bu değerlerle oynamayacaktır.

    + +

    Ortam Türleri ve Dosyaismi Kalıpları

    + +

    Accept: istek başlığı ortam türü tercihlerini yansıtır. + Ayrıca, * bir dizge ile eşleşmek üzere "image/*" veya "*/*" gibi ortam + türü kalıpları da içerebilir. Dolayısıyla şöyle bir istek,

    + +

    Accept: image/*, */*

    + +

    diğer türler gibi "image/" ile başlayan ortam türlerini kabul + edilebilir kılacaktır. Bazı tarayıcılar ortam türlerini örtük olarak + elde etmek amacıyla hep bu tür kalıplar gönderirler. Örnek:

    + +

    + Accept: text/html, text/plain, image/gif, image/jpeg, */* +

    + +

    Bunun amacı, açıkça listelenmiş türlerin tercih edildiğini, fakat + farklı gösterimler varsa onların da kabul edilebileceğini belirtmektir. + Üstünlük değerlerini doğrudan kullanarak tarayıcılar gerçekte ne + istediklerini şuna benzer şekilde belirtebilirler:

    + +

    + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 +

    + +

    Açıkça belirtilen türler için üstünlük katsayısı belirtilmemiştir, + dolayısıyla üstünlük katsayılarının 1.0 (en yüksek) olduğu + varsayılmaktadır. */* kalıbı 0.01 gibi çok daha düşük bir öncelik + belirtmektedir. Bu bakımdan, ancak, açıkça belirtilen türlerden + hiçbirinin bulunmaması halinde diğer türler eşleşecektir.

    + +

    Eğer Accept: başlığı hiçbir q + katsayısı içermiyorsa ve başlıkta "*/*" belirtilmişse, Apache istenen + davranışı taklit etmek için bu kalıba 0.01 katsayısını atar. Keza + "type/*" kalıbına da 0.02 katsayısını atar (yani, */* kalıbına göre + tercihli olur). Eğer Accept: alanındaki her ortam türü bir + q katsayısı içeriyorsa bu özel değerler uygulanmaz. + Dolayısıyla gerekli bilgiyi açıkça bildiren tarayıcılardan gelen + istekler umulduğu gibi işlem görecektir.

    + + +

    Dil Uzlaşımında İstisnalar

    + +

    Apache 2.0’dan itibaren, uzlaşım algoritmasına, bir eşleşme bulmak + konusunda algoritma başarılı olamadığı takdirde hoş bir son çareye izin + vermek için bazı istisnalar eklenmiştir.

    + +

    İstemci sunucudan bir sayfa istediğinde, sunucu, tarayıcı tarafından + gönderilen Accept-language başlığıyla eşleşen tek bir sayfa + bulamadığı takdirde istemciye ya “Kabul edilebilir bir gösterim çeşidi + yok” ya da “Çok sayıda seçim belirtilmiş” yanıtını döndürür. Bu hata + iletilerinden kaçınmak için bu gibi durumlarda Apache + Accept-language başlığını yoksaymaya ayarlanabilir. Böylece + istemcinin isteğine tam olarak uymasa da bir belge sağlanır. Bu hata + iletilerinin birini veya her ikisini de geçersiz kılmak için ForceLanguagePriority yönergesi + kullanılabilir ve sunucunun kararını LanguagePriority yönergesine + dayanarak vermesi sağlanabilir.

    + +

    Sunucu ayrıca, tam bir eşleşme bulunmadığı zaman lehçelerle de eşleşme + arayabilir. Örneğin, bir istemci Britanya İngilizcesi + (en-GB) ile yazılmış belgeler için istekte bulunursa, + sunucu normalde HTTP/1.1 standardına göre bir belgenin basitçe + en olarak imlenmesine izin vermez. (Bir okuyucu Britanya + İngilizcesini anlıyor ama genel İngilizceyi anlamıyor diye + Accept-Language başlığında en değil de + en-GB’yi belirtmesinin hemen hemen daima bir yapılandırma + hatasına yol açacağına dikkat ediniz. Maalesef, mevcut istemcilerin çoğu + öntanımlı yapılandırmalarında buna benzer şeyler yapmaktadır.) Bununla + birlikte, başka bir dille eşleşme mümkün değilse ve sunucu “Kabul + edilebilir bir gösterim çeşidi yok” hatasını döndürmeye hazırsa veya + LanguagePriority son + çaresine ayarlanmışsa alt küme belirtimini yok sayacak ve + en belge isteklerine en-GB belgelerle yanıt + verecektir. Apache, lehçenin üyesi olduğu anadili, istemcinin kabul + edilebilir diller listesine örtük olarak düşük bir üstünlük değeri ile + ekler. Yalnız şuna dikkat edin, eğer istemci tercihini "en-GB; q=0.9, + fr; q=0.8" olarak belirtirse ve sunucuda sadece "en" ve "fr" belgeleri + varsa sunucu "fr" belge ile yanıt verecektir. HTTP/1.1 belirtimi ile + uyumluluğu sağlamak ve düzgün yapılandırılmış istemcilerle gerektiği + gibi çalışabilmek için bu gereklidir.

    + +

    Gelişmiş tekniklerin (çerezler, özel URL yolları gibi) desteklenmesi + sırasında, kullanıcının tercih ettiği dili saptamak için Apache 2.0.47 + sürümünden beri mod_negotiation modülü + prefer-language ortam değişkenini + tanımaktadır. Değişken mevcutsa ve uygun bir dil yaftası içeriyorsa + mod_negotiation uygun gösterimi seçmeyi deneyecektir. + Böyle bir gösterim çeşidi mevcut değilse normal uzlaşım işlemi + uygulanacaktır.

    + +

    Örnek

    + SetEnvIf Cookie "language=(.+)" prefer-language=$1
    + Header append Vary cookie +

    + +
    top
    +
    +

    Şeffaf İçerik Uzlaşımının Genişletilmesi

    + + +

    Apache, şeffaf içerik uzlaşımı protokolünü (RFC 2295) şöyle genişletir: + Sadece içerik kodlamasına özgü olmak üzere gösterim çeşidi listelerinde + gösterim çeşitlerini imlemek için yeni bir {encoding ..} + elemanı kullanılır. RVSA/1.0 algoritmasının (RFC 2296) gerçeklenimi, + listedeki kodlanmış gösterim çeşitlerini tanımak ve onları + Accept-Encoding başlık alanıyla ilgili olarak kabul + edilebilir kodlamalara aday gösterim çeşitleri olarak kullanmak üzere + genişletilmiştir. RVSA/1.0 gerçeklenimi, en uygun gösterim çeşidi + seçiminin öncesinde hesaplanmış üstünlük katsayısını virgülden sonra beş + haneye yuvarlamaz.

    +
    top
    +
    +

    Hiperbağlar ve İsimlendirme Uzlaşımları

    + +

    Eğer dil uzlaşımı kullanıyorsanız ve birden fazla dosya ismi uzantısına + sahip dosyalarınız varsa uzantıların sıralamasının normalde uygunsuz + düştüğü farklı isimlendirme yaklaşımlarında bulunabilirsiniz (ayrıntılar + için mod_mime belgesine + bakınız).

    + +

    Bir MIME türü uzantısına sahip bir dosyanın (html gibi), + kodlanmış bir gösterimi (gz gibi) mevcut olabilir. Bu + dosyanın ayrıca farklı dillerdeki gösterimleri için de bir uzantısı + (en gibi) olabilir.

    + +

    Örnekler:

    + +
      +
    • misal.en.html
    • + +
    • misal.html.en
    • + +
    • misal.en.html.gz
    • +
    + +

    Hiperbağ olarak geçerli ve geçersiz bazı dosya ismi örnekleri:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dosya ismiGeçerli HiperbağGeçersiz Hiperbağ
    misal.html.enmisal
    + misal.html
    -
    misal.en.htmlmisalmisal.html
    misal.html.en.gzmisal
    + misal.html
    misal.gz
    + misal.html.gz
    misal.en.html.gzmisalmisal.html
    + misal.html.gz
    + misal.gz
    misal.gz.html.enmisal
    + misal.gz
    + misal.gz.html
    misal.html
    misal.html.gz.enmisal
    + misal.html
    + misal.html.gz
    misal.gz
    + +

    Yukarıdaki tabloya bakarak hiperbağlarda bir dosya ismini uzantısız + olarak (misal gibi) kullanmanın daima mümkün olduğunu + farkedeceksiniz. Böylece br belgenin asıl türünü gizleyebilir ve + sonradan bir hiperbağ değişikliği yapmaksızın örneğin + html’den shtml veya cgi’ye + geçebilirsiniz.

    + +

    Hiperbağlarda MIME türlerini (misal.html gibi) kullanmaya + devam etmek istiyorsanız dil uzantısı MIME türü uzantısının sağında + kalmalıdır (misal.html.en gibi).

    +
    top
    +
    +

    Arabellekler Hakkında

    + +

    Bir arabellek, bir gösterimi istek URL’si ile ilişkilendirerek saklar. + Böylece, sonradan aynı URL için bir istek yapıldığında kaydettiği + gösterimi kullanabilir. Fakat özkaynak sunucuyla uzlaşılan türdeyse + arabelleğe ilk istenen çeşit saklanmış olacağından isteğe yanlış + gösterimle yanıt verilmiş olacaktır. Bunun olmaması için Apache, normal + olarak içerik uzlaşımının sonucu olarak döndürülen tüm yanıtları + HTTP/1.0 istemciler tarafından arabelleklenemez olarak imler. Apache + ayrıca, uzlaşımlı yanıtların arabelleklenmesini mümkün kılan HTTP/1.1 + protokolünü de destekler.

    + +

    HTTP/1.0 uyumlu istemcilerden (bir tarayıcı veya arabellek) gelen + istekler için, uzlaşıma konu yanıtların arabelleklenmesini mümkün kılmak + üzere CacheNegotiatedDocs yönergesi kullanılabilir. Bu yönerge + argümansızdır ve sunucu genelinde veya sanal konakların + yapılandırılmasında kullanılabilir. Bunun HTTP/1.1 istemcilerinden gelen + isteklere bir etkisi yoktur.

    + +

    HTTP/1.1 istemciler için, Apache, yanıtın uzlaşım boyutlarını göstermek + üzere bir Vary HTTP yanıt başlığı gönderir. Arabellekler bu + bilgiyi sonraki istekleri yerel kopyadan sunarken kullanabilirler. Bir + arabelleğin uzlaşım boyutlarına bakmaksızın yerel kopyasını kullanmaya + teşvik etmek için force-no-vary ortam değişkenini etkin kılabilirsiniz.

    + +
    +
    +

    Mevcut Diller:  en  | + fr  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/content-negotiation.xml b/docs/manual/content-negotiation.xml index 500511403dc..93288f09f67 100644 --- a/docs/manual/content-negotiation.xml +++ b/docs/manual/content-negotiation.xml @@ -4,12 +4,12 @@ + + + + + + + +Négociation de contenu + + + +

    Apache supporte la négociation de contenu telle qu'elle est décrite + dans la spécification HTTP/1.1. Il peut choisir la meilleure représentation + d'une ressource en fonction des préférences du navigateur pour ce qui + concerne le type de media, les langages, le jeu de caractères et son + encodage. Il implémente aussi quelques fonctionnalités pour traiter de + manière plus intelligente les requêtes en provenance de navigateurs qui + envoient des informations de négociation incomplètes.

    + +

    La négociation de contenu est assurée par le module + mod_negotiation qui est compilé par défaut + dans le serveur.

    +
    + +
    À propos de la négociation de contenu + +

    Une ressource peut être disponible selon différentes représentations. + Par exemple, elle peut être disponible en différents langages ou pour + différents types de média, ou une combinaison des deux. + Pour faire le meilleur choix, on peut fournir à l'utilisateur une page + d'index, et le laisser choisir. Cependant, le serveur peut souvent faire + ce choix automatiquement. Ceci est possible car les navigateurs peuvent + envoyer des informations sur les + représentations qu'ils préfèrent à l'intérieur de chaque requête. + Par exemple, un navigateur peut indiquer + qu'il préfère voir les informations en français, mais qu'en cas + d'impossibilité l'anglais peut convenir. Les navigateurs indiquent leurs + préférences à l'aide d'en-têtes dans la requête. Pour ne demander que des + représentations en français, le navigateur peut utiliser l'en-tête :

    + +Accept-Language: fr + +

    Notez qu'il ne sera tenu compte de cette préférence que s'il existe un + choix de représentations et que ces dernières varient en fonction + du langage.

    + +

    À titre d'exemple d'une requête plus complexe, ce navigateur a été + configuré pour accepter le français et l'anglais, avec une préférence pour + le français, et accepter différents types de média, avec une préférence + pour HTML par rapport au texte plat (plain text) ou autres types de fichiers texte, et + avec une préférence pour GIF ou JPEG par rapport à tout autre type de + média, mais autorisant tout autre type de média en dernier ressort :

    + + + Accept-Language: fr; q=1.0, en; q=0.5
    + Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1 +
    + +

    Apache supporte la négociation de contenu "server driven" (telle qu'elle + est définie dans la spécification HTTP/1.1), où c'est le serveur qui + décide quelle est la meilleure représentation à retourner pour la ressource + demandée. Il supporte entièrement les en-têtes de requête + Accept, Accept-Language, + Accept-Charset et Accept-Encoding. + Apache supporte aussi la négociation de contenu transparente, qui est un + protocole de négociation expérimental défini dans les RFC 2295 et 2296. + Il ne supporte pas la négociation de fonctionnalité (feature negotiation) + telle qu'elle est définie dans ces RFCs.

    + +

    Une ressource est une entité conceptuelle identifiée + par une URI (RFC 2396). Un serveur HTTP comme Apache propose l'accès à des + représentations de la ressource à l'intérieur de son + espace de nommage, chaque représentation étant composée d'une séquence + d'octets avec la définition d'un type de media, d'un jeu de caractères, + d'un encodage, etc... A un instant donné, chaque ressource peut être + associée avec zéro, une ou plusieurs représentations. Si plusieurs + représentations sont disponibles, la ressource est qualifiée de + négociable et chacune de ses représentations se nomme + variante. Les différences entre les + variantes disponibles d'une ressource négociable constituent les + dimensions de la négociation.

    +
    + +
    La négociation avec Apache + +

    Afin de négocier une ressource, on doit fournir au serveur des + informations à propos de chacune des variantes. Il y a deux manières + d'accomplir ceci :

    + +
      +
    • Utiliser une liste de correspondances de types ("type-map") (c'est à dire + un fichier *.var) qui nomme explicitement les fichiers + contenant les variantes, ou
    • + +
    • Utiliser une recherche "multivues", où le serveur effectue une + recherche de correspondance sur un motif de nom de fichier implicite et + fait son choix parmi les différents résultats.
    • +
    + +
    Utilisation d'un fichier de + correspondances de types (type-map) + +

    Une liste de correspondances de types est un document associé au + gestionnaire type-map (ou, dans un souci de compatibilité + ascendante avec des configurations d'Apache plus anciennes, le + type MIME + application/x-type-map). Notez que pour utiliser cette + fonctionnalité, vous devez, dans le fichier de configuration, définir un + gestionnaire qui associe un suffixe de fichier à une type-map; + ce qui se fait simplement en ajoutant

    + +AddHandler type-map .var + +

    dans le fichier de configuration du serveur.

    + +

    Les fichiers de correspondances de types doivent posséder le même nom que + la ressource qu'ils décrivent, et comporter une entrée pour chaque variante + disponible; chaque entrée consiste en une ligne contiguë d'en-têtes au + format HTTP. les entrées sont séparées par des lignes vides. Les lignes + vides à l'intérieur d'une entrée sont interdites. Par convention, le + fichier de correspondances débute par une entrée concernant l'entité + considérée dans son ensemble (bien que ce ne soit pas obligatoire, et + ignoré si présent). Un exemple de fichier de correspondance est fourni + ci-dessous. + Ce fichier doit être nommé foo.var, car il décrit une + ressource nommée foo.

    + + + URI: foo
    +
    + URI: foo.en.html
    + Content-type: text/html
    + Content-language: en
    +
    + URI: foo.fr.de.html
    + Content-type: text/html;charset=iso-8859-2
    + Content-language: fr, de
    +
    +

    Notez aussi qu'un fichier de correspondances de types prend le pas sur + les extensions de noms de fichiers, même si les Multivues sont activées. + Si les variantes sont de qualités différentes, on doit l'indiquer + à l'aide du paramètre "qs" à la suite du type de média, comme pour cette + image + (disponible aux formats JPEG, GIF, ou ASCII-art) :

    + + + URI: foo
    +
    + URI: foo.jpeg
    + Content-type: image/jpeg; qs=0.8
    +
    + URI: foo.gif
    + Content-type: image/gif; qs=0.5
    +
    + URI: foo.txt
    + Content-type: text/plain; qs=0.01
    +
    + +

    Les valeurs de qs peuvent varier de 0.000 à 1.000. Notez que toute + variante possédant une valeur de qs de 0.000 ne sera jamais choisie. + Les variantes qui n'ont pas de paramètre qs défini se voient attribuer + une valeur de 1.0. Le paramètre qs indique la qualité relative de la + variante comparée à celle des autres variantes disponibles, sans tenir + compte des capacités du client. Par exemple, un fichier JPEG possède + en général une qualité supérieure à celle d'un fichier ASCII s'il + représente une photographie. Cependant, si la ressource représentée est + à un ASCII art original, la représentation ASCII sera de meilleure qualité + que la représentation JPEG. Ainsi une valeur de qs est associée à une + variante en fonction de la nature de la ressource qu'elle représente.

    + +

    La liste complète des en-têtes reconnus est disponible dans la + documentation de la directive + typemap (module mod_negotiation).

    +
    + +
    Multivues (option Multiviews) + +

    MultiViews est une option qui s'applique à un répertoire, + ce qui signifie qu'elle peut être activée à l'aide d'une directive + Options à l'intérieur d'une section + Directory, Location ou Files dans + httpd.conf, ou (si AllowOverride est correctement positionnée) dans + des fichiers + .htaccess. Notez que Options All + n'active pas MultiViews; vous devez activer cette option en + la nommant explicitement.

    + +

    L'effet de MultiViews est le suivant : si le serveur reçoit + une requête pour /tel/répertoire/foo, si + MultiViews est activée pour + /tel/répertoire, et si + /tel/répertoire/foo n'existe pas, le serveur parcourt + le répertoire à la recherche de fichiers nommés foo.*, et génère + une correspondance de types (type map) qui liste tous ces + fichiers, en leur associant les mêmes types de média et encodages de + contenu qu'ils auraient eu si le client avait demandé l'accès à l'un + d'entre eux par son nom. Il choisit ensuite ce qui correspond le mieux + aux besoins du client.

    + +

    MultiViews peut aussi s'appliquer à la recherche du fichier + nommé par la directive DirectoryIndex, si le serveur tente d'indexer + un répertoire. Si les fichiers de configuration spécifient

    +DirectoryIndex index +

    le serveur va choisir entre index.html + et index.html3 si les deux fichiers sont présents. Si aucun + n'est présent, mais index.cgi existe, + le serveur l'exécutera.

    + +

    Si, parcequ'elle n'est pas reconnue par mod_mime, + l'extension d'un des fichiers du répertoire ne permet pas de + déterminer son jeu de caractères, son type de contenu, son langage, ou son + encodage, alors + le résultat dépendra de la définition de la directive MultiViewsMatch. Cette directive détermine + si les gestionnaires (handlers), les filtres, et autres types d'extensions + peuvent participer à la négociation MultiVues.

    +
    +
    + +
    Les méthodes de négociation + +

    Une fois obtenue la liste des variantes pour une ressource donnée, + Apache dispose de deux méthodes pour choisir la meilleure variante à + retourner, s'il y a lieu, soit à partir d'un fichier de + correspondances de types, soit en se basant sur les noms de fichiers du + répertoire. Il n'est pas nécessaire de connaître en détails comment la + négociation fonctionne réellement pour pouvoir utiliser les fonctionnalités + de négociation de contenu d'Apache. La suite de ce document explique + cependant les méthodes utilisées pour ceux ou celles qui sont + intéressés(ées).

    + +

    Il existe deux méthodes de négociation :

    + +
      +
    1. La négociation effectuée par le serveur selon l'algorithme + d'Apache est normalement utilisée. l'algorithme d'Apache est + expliqué plus en détails ci-dessous. Quand cet algorithme est utilisé, + Apache peut parfois "bricoler" le facteur de qualité (qs) d'une dimension + particulière afin d'obtenir un meilleur résultat. + La manière dont Apache peut modifier les facteurs de qualité est + expliquée plus en détails ci-dessous.
    2. + +
    3. La négociation de contenu transparente est utilisée + quand le navigateur le demande explicitement selon le mécanisme défini + dans la RFC 2295. Cette méthode de négociation donne au navigateur le + contrôle total du choix de la meilleure variante; le résultat dépend + cependant de la spécificité des algorithmes utilisés par le navigateur. + Au cours du processus de négociation transparente, le navigateur peut + demander à Apache d'exécuter l'"algorithme de sélection de variante à + distance" défini dans la RFC 2296.
    4. +
    + +
    Les dimensions de la négociation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DimensionNotes
    Type de médiaLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept. Chaque type de média peut se voir associé un facteur de + qualité. La description de la variante peut aussi avoir un facteur de + qualité (le paramètre "qs").
    LangageLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept-Language. Chaque langue peut se voir associée un facteur de + qualité. Les variantes peuvent être associées avec zéro, un ou + plusieurs langages.
    EncodingLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept-Encoding. Chaque encodage peut se voir associé un facteur de + qualité.
    CharsetLe navigateur affiche ses préférences à l'aide du champ d'en-tête + Accept-Charset. Chaque jeu de caractères peut se voir associé un facteur de + qualité. Les variantes peuvent préciser un jeu de caractères comme + paramètre du type de média.
    +
    + +
    L'algorithme de négociation d'Apache + +

    Apache peut utiliser l'algorithme suivant pour choisir la "meilleure" + variante (s'il y en a une) à retourner au navigateur. Cet algorithme n'est pas + configurable. Il fonctionne comme suit :

    + +
      +
    1. En premier lieu, pour chaque dimension de la négociation, consulter + le champ d'en-tête Accept* approprié et assigner une qualité à + chaque variante. Si l'en-tête Accept* pour toute dimension + implique que la variante n'est pas acceptable, éliminer cette dernière. + S'il ne reste plus de variante, aller à l'étape 4.
    2. + +
    3. + Choisir la "meilleure" variante par élimination. Chacun des tests + suivants est effectué dans cet ordre. Toute variante non sélectionnée + à l'issue d'un test est éliminée. Après chaque test, s'il reste une + seule variante, choisir cette dernière comme celle qui correspond le + mieux puis aller à l'étape 3. S'il reste plusieurs variantes, passer + au test suivant. + +
        +
      1. Multiplier le facteur de qualité de l'en-tête + Accept par le facteur de qualité "qs" pour le type de + média de ces variantes, et choisir la variante qui possède la valeur + la plus importante.
      2. + +
      3. Sélectionner les variantes qui possèdent le facteur de qualité + de langage le plus haut.
      4. + +
      5. Sélectionner les variantes dont le langage correspond le mieux, + en se basant sur l'ordre des langages de l'en-tête + Accept-Language (s'il existe), ou de la directive + LanguagePriority (si elle existe).
      6. + +
      7. Sélectionner les variantes possédant le paramètre de média + "level" le plus élevé (utilisé pour préciser la version des types de + média text/html).
      8. + +
      9. Sélectionner les variantes possédant le paramètre de média + "charset" (jeu de caractères) qui correspond le mieux, en se basant + sur la ligne d'en-tête Accept-Charset . Le jeu de + caractères ISO-8859-1 est acceptable sauf s'il est explicitement + exclus. Les variantes avec un type de média text/* + mais non explicitement associées avec un jeu de caractères + particulier sont supposées être en ISO-8859-1.
      10. + +
      11. Sélectionner les variantes dont le paramètre de média "charset" + associé n'est pas ISO-8859-1. S'il n'en existe pas, + sélectionner toutes les variantes.
      12. + +
      13. Sélectionner les variantes avec le meilleur encodage. S'il existe + des variantes avec un encodage acceptable pour le client, + sélectionner celles-ci. Sinon, s'il existe des variantes encodées et + des variantes non encodées, ne sélectionner que les variantes non + encodées. Si toutes les variantes sont encodées ou si aucune + ne l'est, sélectionner toutes les variantes.
      14. + +
      15. Sélectionner les variantes dont le contenu a la longueur + la plus courte.
      16. + +
      17. Sélectionner la première des variantes restantes. Il s'agira + soit de la première variante listée dans le fichier de + correspondances de types, soit, quand les variantes sont lues depuis + le répertoire, la première par ordre alphabétique quand elles sont + triées selon le code ASCII.
      18. +
      +
    4. + +
    5. L'algorithme a maintenant sélectionné une variante considérée comme + la "meilleure", il la retourne donc au client en guise de réponse. + L'en-tête HTTP Vary de la réponse est renseigné de façon à + indiquer les dimensions de la négociation (les navigateurs et les caches + peuvent utiliser cette information lors de la mise en cache de la + ressource). Travail terminé.
    6. + +
    7. Le passage par cette étape signifie qu'aucune variante n'a été + sélectionnée (parce qu'aucune n'est acceptable pour le client HTTP). + Envoyer une réponse avec un code de statut 406 (qui signifie "Aucune + représentation acceptable") et un corps comportant un document HTML qui + affiche les variantes disponibles. Renseigner aussi l'en-tête HTTP + Vary de façon à indiquer les dimensions de la variante.
    8. +
    +
    +
    + +
    Ajustement des valeurs de qualité + +

    Parfois Apache modifie les valeurs de qualité par rapport à celles qui + découleraient d'une stricte interprétation de l'algorithme de négociation + d'Apache ci-dessus, ceci pour améliorer les résultats de l'algorithme pour + les navigateurs qui envoient des informations incomplètes ou inappropriées. + Certains des navigateurs les plus populaires envoient des informations dans + l'en-tête Accept qui, sans ce traitement, provoqueraient la + sélection d'une variante inappropriée dans de nombreux cas. Quand un + navigateur envoie des informations complètes et correctes ces ajustements + ne sont pas effectués.

    + +
    Types de média et caractères génériques + +

    L'en-tête de requête Accept: indique les types de média + souhaités. Il peut aussi contenir des types de média avec caractères + génériques, comme "image/*" ou "*/*" où * correspond à n'importe quelle + chaîne de caractères. Ainsi une requête contenant :

    + +Accept: image/*, */* + +

    indiquerait que tout type de média est acceptable, avec une préférence + pour les types commençant par "image/". + Certains navigateurs ajoutent par défaut des types de média avec caractères + génériques aux types explicitement nommés qu'ils peuvent gérer. + Par exemple :

    + + + Accept: text/html, text/plain, image/gif, image/jpeg, */* + +

    Ceci indique que les types explicitement listés sont préférés, mais + qu'une représentation avec un type différent de ces derniers conviendra + aussi. Les valeurs de qualités explicites, + afin de préciser ce que veut vraiment le navigateur, s'utilisent + comme suit :

    + + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 + +

    Les types explicites n'ont pas de facteur de qualité, la valeur par + défaut de leur préférence est donc de 1.0 (la plus haute). Le type avec + caractères génériques */* se voit attribuer une préférence basse de 0.01, + si bien que les types autres que ceux explicitement listés ne seront retournés + que s'il n'existe pas de variante correspondant à un type explicitement + listé.

    + +

    Si l'en-tête Accept: ne contient pas aucun + facteur de qualité, Apache positionne la valeur de qualité de + "*/*", si present, à 0.01 pour simuler l'effet désiré. Il positionne aussi + la valeur de qualité des types avec caractères génériques au format + "type/*" à 0.02 (ils sont donc préférés à ceux correspondant à "*/*"). Si + un type de média dans l'en-tête Accept: contient un facteur de + qualité, ces valeurs spéciales ne seront pas appliquées, de façon + à ce que les requêtes de navigateurs qui envoient les informations + explicites à prendre en compte fonctionnent comme souhaité.

    +
    + +
    Exceptions dans la négociation du +langage + +

    A partir de la version 2.0 d'Apache, certaines exceptions ont été + ajoutées à l'algorithme de négociation afin de ménager une issue de secours + quand la négociation ne trouve aucun langage correspondant.

    + +

    Quand un client demande une page sur votre serveur, si ce dernier ne + parvient pas à trouver une page dont la langue corresponde à l'en-tête + Accept-language envoyé par le navigateur, il enverra au client + une réponse "Aucune variante acceptable" ou "Plusieurs choix possibles". + Pour éviter ces + messages d'erreur, il est possible de configurer Apache de façon à ce que, + dans ces cas, il ignore l'en-tête Accept-language et fournisse + tout de même un document, même s'il ne correspond pas exactement à la + demande explicite du client. La directive ForceLanguagePriority + peut être utilisée pour éviter ces messages d'erreur et leur substituer une + page dont le langage sera déterminé en fonction du contenu de la directive + LanguagePriority.

    + +

    Le serveur va aussi essayer d'étendre sa recherche de correspondance aux + sous-ensembles de langages quand aucune correspondance exacte ne peut être + trouvée. Par exemple, si un client demande des documents possédant le + langage en-GB, c'est à dire anglais britannique, le standard + HTTP/1.1 n'autorise normalement pas le serveur à faire correspondre cette + demande à un document dont le langage est simplement en. + (Notez qu'inclure en-GB et non en dans l'en-tête + Accept-Language constitue une quasi-erreur de configuration, + car il est très peu probable qu'un lecteur qui comprend l'anglais + britannique, ne comprenne pas l'anglais en général. Malheureusement, de + nombreux clients ont réellement des configurations par défaut de ce type.) + Cependant, si aucune autre correspondance de langage n'est possible, et que le + serveur est sur le point de retourner une erreur "Aucune variable + acceptable" ou de choisir le langage défini par la directive LanguagePriority, le serveur ignorera + la spécification du sous-ensemble de langage et associera la demande en + en-GB à des documents en en. Implicitement, + Apache ajoute le langage parent à la liste de langues acceptées par le + client avec une valeur de qualité très basse. Notez cependant que si le + client demande "en-GB; q=0.9, fr; q=0.8", et le serveur dispose de + documents estampillés "en" et "fr", alors c'est le document "fr" qui sera + retourné, tout ceci dans un souci de compatibilité avec la spécification + HTTP/1.1 et afin de fonctionner efficacement avec les clients + correctement configurés.

    + +

    Pour supporter les techniques avancées (comme les cookies ou les chemins + d'URL spéciaux) afin de déterminer le langage préféré de l'utilisateur, le + module mod_negotiation reconnaît la + variable d'environnement + prefer-language + depuis la version 2.0.47 d'Apache. Si elle est définie et contient un + symbole de langage approprié, mod_negotiation va essayer + de sélectionner une variante correspondante. S'il n'existe pas de telle + variante, le processus normal de négociation sera lancé.

    + + Exemple + SetEnvIf Cookie "language=(.+)" prefer-language=$1 + Header append Vary cookie + +
    +
    + +
    Extensions à la négociation de contenu +transparente + +

    Apache étend le protocole de négociation de contenu transparente (RFC +2295) comme suit. Un nouvel élément {encodage ..} est utilisé dans +les listes de variantes pour marquer celles qui ne sont disponibles qu'avec un +encodage de contenu spécifique. L'implémentation de l'algorithme +RVSA/1.0 (RFC 2296) est étendue à la reconnaissance de variantes encodées dans +la liste, et à leur utilisation en tant que variantes candidates à partir du +moment où leur encodage satisfait au contenu de l'en-tête de requête +Accept-Encoding. L'implémentation RVSA/1.0 n'arrondit pas les +facteurs de qualité calculés à 5 décimales avant d'avoir choisi la meilleure +variante.

    +
    + +
    Remarques à propos des liens hypertextes et des +conventions de nommage + +

    Si vous utilisez la négociation de langage, vous avez le choix entre + différentes conventions de nommage, car les fichiers peuvent posséder + plusieurs extensions, et l'ordre dans lequel ces dernières apparaissent + est en général sans rapport (voir la documentation sur le module mod_mime + pour plus de détails).

    + +

    Un fichier type possède une extension liée au type MIME + (par exemple, html), mais parfois aussi une + extension liée à l'encodage (par exemple, gz), + et bien sûr une extension liée au langage + (par exemple, en) quand plusieurs variantes de + langage sont disponibles pour ce fichier.

    + +

    Exemples :

    + +
      +
    • foo.en.html
    • + +
    • foo.html.en
    • + +
    • foo.en.html.gz
    • +
    + +

    Ci-dessous d'autres exemples de noms de fichiers avec des liens + hypertextes valides et invalides :

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Nom fichierlien valideLien invalide
    foo.html.enfoo
    + foo.html
    -
    foo.en.htmlfoofoo.html
    foo.html.en.gzfoo
    + foo.html
    foo.gz
    + foo.html.gz
    foo.en.html.gzfoofoo.html
    + foo.html.gz
    + foo.gz
    foo.gz.html.enfoo
    + foo.gz
    + foo.gz.html
    foo.html
    foo.html.gz.enfoo
    + foo.html
    + foo.html.gz
    foo.gz
    + +

    En regardant la table ci-dessus, vous remarquerez qu'il est toujours + possible d'utiliser le nom de fichier sans extension dans un lien + (par exemple, foo). L'avantage est de pouvoir + dissimuler le type réel du fichier associé à un document et de pouvoir + le modifier + ultérieurement, par exemple, de html à + shtml ou cgi sans avoir à + mettre à jour aucun lien.

    + +

    Si vous souhaitez continuer à utiliser un type MIME dans vos liens + (par exemple foo.html), l'extension liée au langage + (y compris une extension liée à l'encodage s'il en existe une) + doit se trouver à droite de l'extension liée au type MIME + (par exemple, foo.html.en).

    +
    + +
    Remarque sur la mise en cache + +

    Quand un cache stocke une représentation, il l'associe avec l'URL de la + requête. Lorsque cette URL est à nouveau demandée, le cache peut utiliser + la représentation stockée. Cependant, si la ressource est négociable au + niveau du serveur, il se peut que seule la première variante demandée soit + mise en cache et de ce fait, la correspondance positive du cache peut + entraîner une réponse inappropriée. Pour éviter ceci, Apache marque par + défaut toutes les réponses qui sont retournées après une négociation de + contenu comme "non-cachables" par les clients HTTP/1.0. Apache supporte + aussi les fonctionnalités du protocole HTTP/1.1 afin de permettre la mise + en cache des réponses négociées.

    + +

    Pour les requêtes en provenance d'un client compatible HTTP/1.0 + (un navigateur ou un cache), la directive CacheNegotiatedDocs peut être utilisée + pour permettre la mise en cache des réponses qui ont fait l'objet d'une + négociation. Cette directive peut intervenir dans la configuration au + niveau du serveur ou de l'hôte virtuel, et n'accepte aucun argument. Elle + n'a aucun effet sur les requêtes en provenance de clients HTTP/1.1.

    + +

    Pour les clients HTTP/1.1, Apache envoie un en-tête de réponse HTTP + Vary afin d'indiquer les dimensions de la négociation pour + cette réponse. Les caches peuvent + utiliser cette information afin de déterminer + si une requête peut être servie à partir de la copie locale. Pour inciter + un cache à utiliser la copie locale sans tenir compte des dimensions de la + négociation, définissez la + variable d'environnement + force-no-vary.

    + +
    + +
    diff --git a/docs/manual/content-negotiation.xml.ja b/docs/manual/content-negotiation.xml.ja index 5d2b10b029b..e2ff536fb83 100644 --- a/docs/manual/content-negotiation.xml.ja +++ b/docs/manual/content-negotiation.xml.ja @@ -1,15 +1,15 @@ - + - + + - + content-negotiation / . en - ja - ko + fr + ja + ko + tr diff --git a/docs/manual/content-negotiation.xml.tr b/docs/manual/content-negotiation.xml.tr new file mode 100644 index 00000000000..5feaa0c615f --- /dev/null +++ b/docs/manual/content-negotiation.xml.tr @@ -0,0 +1,642 @@ + + + + + + + + + + +İçerik Uzlaşımı + + + +

    Apache, içerik uzlaşımını HTTP/1.1 belirtiminde bahsedildiği şekliyle + destekler. Bir özkaynağın en iyi gösterimini, tarayıcının sağladığı + karakter kodlaması, karakter kümesi, dil, ortam türü gibi kullanıcı + tercihlerine bağlı olarak seçebilir. Ayrıca, tarayıcının kullanıcı + tercihlerini tam yansıtamadığı durumlarda istekleri daha akıllıca ele + alabilmeyi sağlayacak bir takım özelliklere de sahiptir.

    + +

    İçerik uzlaşımı öntanımlı olarak derlenen + mod_negotiation modülü tarafından sağlanır.

    +
    + +
    İçerik Uzlaşımı Hakkında + +

    Bir özkaynağın bir çok farklı gösterimi olabilir. Örneğin, bir belgenin + farklı ortam türleri ve/veya farklı diller için gösterimleri olabilir. + En uygun seçimi yapmanın tek yolu kullanıcıya bir liste verip seçmesini + istemektir. Bununla birlikte sunucunun bu seçimi kendiliğinden yapması + da mümkündür. Tarayıcılar isteğin bir parçası olarak kullanıcı + tercihlerini de gönderdiğinden bu istendiği gibi çalışır. Örneğin bir + tarayıcı, kullanıcısınının mümkünse Fransızca içerik tercih ettiğini + yoksa İngilizce içeriğe de razı olabileceğini belirtebilirdi. + Tarayıcılar bu tercihleri başlıkta belirtirler. Tarayıcı sadece Türkçe + içerik istendiğini şöyle belirtebilirdi:

    + + Accept-Language: tr + +

    Bu tercihin yerine getirilebilmesininin sadece, desteklenen diller + arasında bu dilin varlığına ve istenen belgenin bu dilde bir + gösteriminin bulunmasına bağlı oluşuna dikkat ediniz.

    + +

    Daha karmaşık bir istek örneği olarak, tarayıcının Fransızca ve + İngilizce içerik kabul etmeye ayarlandığını fakat Fransızcayı tercih + ettiğini ve çeşitli ortam türlerini kabul etmekle birlikte salt metin ve + diğer metin türlerinden ziyade HTML tercih ettiğini, ayrıca, diğer ortam + türleri üzerinde GIF veya JPEG tercih ettiğini fakat başka çare yoksa + her ortam türüne de izin verdiğini belirtiyor olsun:

    + + + Accept-Language: fr; q=1.0, en; q=0.5
    + Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; + q=0.6, image/*; q=0.5, */*; q=0.1 +
    + +

    Apache, HTTP/1.1 belirtiminde tanımlanan şekliyle ‘sunucu yönetiminde’ + içerik uzlaşımını destekler. Accept, + Accept-Language, Accept-Charset ve + Accept-Encoding istek başlıklarını tamamen destekler. + Apache ayrıca, RFC 2295 ve RFC 2296’da tanımlanan bir deneysel uzlaşım + olarak ‘şeffaf’ içerik uzlaşımını da destekler. Fakat ‘özellik + uzlaşımını’ bu RFC’lerde tanımlandığı gibi desteklemez.

    + +

    Bir özkaynak bir URI (RFC 2396) tarafından betimlenen + kavramsal bir öğedir. Apache gibi bir HTTP sunucusu, ortam türü, + karakter kümesi, kodlama ve saire ile tanımlanmış bir bayt dizisi + şeklindeki her gösterimiyle, özkaynaklara kendi isim alanları dahilinde + erişim sağlar. Her özkaynağın aynı anda bir veya daha fazla gösterimi + mevcut olabileceği gibi hiç mevcut olmayabilir de. Eğer çok sayıda + gösterim mevcutsa, bu özkaynağın uzlaşılabilir + olduğundan ve her gösteriminin bir çeşitlilik + oluşturduğundan bunun da uzlaşımın boyutlarından + kaynaklandığından bahsedilebilir.

    +
    + +
    Apache’de İçerik Uzlaşımı + +

    Bir özkaynak üzerinde uzlaşılırken gösterim çeşitlerinin her biri + hakkında sunucuya bilgi verilmesi gerekir. Bu iki yolla yapılabilir:

    + +
      +
    • Ya gösterim çeşitlerini içeren dosyaların isimleriyle eşleşmeyi + sağlayan bir tür eşlemi kullanılır (bir *.var dosyası + gibi).
    • + +
    • Ya da sunucu örtük bir dosya ismi kalıbı eşleşmesinin ardından + sonuçlar arasından seçim yapar; buna ‘Çoklu Görünüm’ araması adı + verilir.
    • +
    + +
    Bir türeşlem dosyası kullanmak + +

    Bir türeşlem dosyası, type-map eylemcisi ile ilişkili bir + belgedir (ya da eski Apache yapılandırmaları ile geriye uyumluluk için, + application/x-type-map MIME türünde + bir belgedir). Bu özelliği kullanmak için, yapılandırmada bir tür + eşleyici olarak her dosya ismi uzantısı için bir type-map + eylemcisi tanımlamalısınız. Bu, sunucu yapılandırma dosyasında en iyi + şöyle yapılabilir:

    + + AddHandler type-map .var + +

    Türeşlem dosyaları kendilerini tanımlayan özkaynak ile aynı isimde + olmalı ve her gösterim çeşidi için bir girdi içermelidir; bu girdiler + ardarda belirtilen HTTP biçem başlık satırlarından oluşur. Farklı + gösterimlerin girdileri bir boş satırla diğerlerinden ayrılır. Aynı + girdi içinde boş satır kullanılamaz. Bir eşlem dosyasını bir birleşik + öğenin tamamı için bir girdi ile başlatmak adet olmuştur (ise de, bu + gerekli değildir, hele yoksayılacaksa hiç gerekli değildir). Eşlem + dosyası için aşağıda bir örnek verilmiştir. Dosya misal + isimli bir özkaynak hakkında olduğundan dosyaya misal.var + ismi verilebilir.

    + + + URI: misal
    +
    + URI: misal.en.html
    + Content-type: text/html
    + Content-language: en
    +
    + URI: misal.fr.de.html
    + Content-type: text/html;charset=iso-8859-2
    + Content-language: fr, de
    +
    + +

    Ayrıca, MultiViews etkin olsa bile bir türeşlem dosyasının + dosya ismi uzantılarının taranmasına göre öncelik alacağına dikkat + ediniz. Eğer gösterimler bu örnekteki resim dosyasında olduğu gibi + farklı kaynak üstünlüklerine sahipseler, ortam türünün qs + parametresi kullanılarak kaynak üstünlükleri belirtilebilir:

    + + + URI: misal
    +
    + URI: misal.jpeg
    + Content-type: image/jpeg; qs=0.8
    +
    + URI: misal.gif
    + Content-type: image/gif; qs=0.5
    +
    + URI: misal.txt
    + Content-type: text/plain; qs=0.01
    +
    + +

    qs değerleri 0.000-1.000 değer aralığı içinde + belirtilebilir. 0.000 qs değerine sahip gösterimin asla + seçilmeyeceğine dikkat ediniz. Bir qs değeri belirtilmeyen + gösterimlerin kaynak üstünlüğü 1.000 kabul edilir. qs + parametresinin belirttiği değer istemcinin yeteneklerinden bağımsız + olarak olası gösterimler arasında göreli bir üstünlük ifade eder. + Örneğin bir fotoğraf sözkonusu olduğunda bir JPEG dosyasının kaynak + üstünlüğü bir ASCII çiziminkinden yüksek olacaktır. Diğer taraftan özgün + resim bir ASCII çizim olduğu takdirde, ASCII çizim, bir JPEG gösterimine + göre öncelikli olacaktır. Bu nedenle qs değeri özkaynağın + doğasına bakarak belirlenir.

    + +

    Tanınan başlıkların tam listesini mod_negotiation modülünün + belgesinde bulabilirsiniz.

    +
    + +
    Çoklu Görünümler + +

    MultiViews, httpd.conf dosyasındaki veya + (AllowOverride yönergesinin + değerine bağlı olarak) .htaccess dosyalarındaki Directory, Location veya Files bölümleri içinde + Options yönergeleri ile + belirtilebilen, dizine özgü bir seçenektir. Yalnız, dikkatli olun, + Options All yaparak MultiViews seçeneğini + etkin kılamazsınız; seçeneği ismiyle açıkça belirtmelisiniz.

    + +

    MultiViews şöyle etki eder: Sunucudan, + MultiViews seçeneğinin etkin olduğu /bir/dizin + dizininden filanca dosyası için bir istekte bulunulmuşsa + fakat dizinde bu dosya yoksa, sunucu dizin içeriğini + filanca.* dosyaları için tarar ve bu dosyalar için + istemcinin ismiyle talep ettiği ortam türlerini ve kodlamaları + kullanarak bir türeşlem dosyası uydurup bu gösterimler arasından + istemcinin gereksinimlerine en uygun gösterimi seçer.

    + +

    MultiViews ayrıca, sunucunun bir dizin içeriğini + listelemeye çalıştığı durumda DirectoryIndex yönergesi ile belirtilen dosya için de bir + arama tertipleyebilir. Eğer yapılandırma dosyalarında

    + + DirectoryIndex index + +

    şeklinde bir atama varsa ve dizinde index.html ve + index.html3 dosyaları varsa sunucu bunlar arasından hakem + sıfatıyla bir seçim yapacaktır; ama bu ikisi yerine dizinde sadece + index.cgi mevcutsa sunucu sadece bu dosyayı + çalıştıracaktır.

    + +

    Okunan dizinde bulunan dosyalar arasında mod_mime + tarafından tanınan karakter kümesi, içerik türü, dil ve kodlama + başlıklarına uygun gösterim uzantılarından birine sahip bir dosya yoksa + sonuç MultiViewsMatch + yönergesiyle yapılan tanıma bağlı olur. Bu yönerge hangi diğer dosya + uzantılarının, eylemcilerin veya süzgeçlerin çok gösterimli uzlaşımla + ilintileneceğini belirler.

    +
    +
    + +
    Uzlaşım Yöntemleri + +

    Apache’nin, bir türeşlem dosyası veya dizin içindeki bir dosya + sayesinde belli bir özkaynağın gösterim çeşitlerinin bir listesini elde + ettikten sonra ‘en uygun’ gösterime karar vermek için kullanabileceği + iki yöntem vardır. Apache’nin içerik uzlaşım özelliklerinin kullanımı + sırasında uzlaşımın nasıl yerine getirileceği ile ilgili ayrıntıları + bilmek aslında gerekli değildir. Bununla birlikte belgenin kalanında bu + konu açıklanmaya çalışılmıştır.

    + +

    İki uzlaşım yöntemi vardır:

    + +
      +
    1. Normal durumda sunucu yönetiminde Apache uzlaşım + algoritması kullanılır. Bu algoritma aşağıda ayrıntılı olarak + açıklanmıştır. Bu algoritma kullanıldığı zaman, Apache, en iyi sonuca + ulaşmak için bazen belli boyutların üstünlük katsayılarıyla ‘oynar’. + Apache’nin bu katsayılarla oynama işini nasıl yaptığı aşağıda daha + ayrıntılı açıklanmıştır.
    2. + +
    3. İstemci bu işlem için özellikle RFC 2295’te tanımlanan mekanizmanın + kullanılmasını isterse şeffaf içerik uzlaşımı + kullanılır. Bu uzlaşım yöntemi, en uygun gösterimin seçilmesi + konusunda tarayıcıya tam denetim imkanı verir; dolayısıyla sonuç + tarayıcının bu işlem için kullandığı algoritmanın başarısına bağlıdır. + Şeffaf uzlaşım sürecinin bir parçası olarak, tarayıcı, RFC 2296’da + tanımlanan ‘gösterim çeşidini uzaktan seçme algoritması’nın + çalıştırılmasını Apache’den isteyebilir.
    4. +
    + +
    Uzlaşımın Boyutları + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BoyutAçıklama
    Ortam TürüTarayıcı ortam türü tercihlerini Accept başlık alanı + ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir. Gösterimin açıklaması da ayrıca bir kaynak üstünlüğüne + (qs parametresi) sahip olabilir.
    DilTarayıcı dil tercihlerini Accept-Language başlık + alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir. Gösterimler bir kaç dilde olabileceği gibi hiç bir dille + ilişkilendirimemiş de olabilir.
    KodlamaTarayıcı kodlama tercihlerini Accept-Encoding başlık + alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir.
    Karakter KümesiTarayıcı karakter kümesi tercihlerini Accept-Charset + başlık alanı ile belirtir. Her öğenin kendine özgü bir üstünlük + katsayısı olabilir. Gösterim çeşitleri karakter kümesini ortam + türünün bir parametresi olarak belirtebilirler.
    +
    + +
    Apache Uzlaşım Algoritması + +

    Apache, tarayıcıya döndürülecek en uygun gösterim çeşidini (varsa) + seçmek için aşağıdaki algoritmayı kullanabilir. Bu algoritma pek de + yapılandırılabilir değildir. Şöyle çalışır:

    + +
      +
    1. Önce her uzlaşım boyutu için ilgili Accept* başlık alanına + bakılıp her gösterim çeşidine bir üstünlük katsayısı atanır. Eğer + boyutlardan bazıları için ilgili Accept* başlığı + uygulanabilir değilse bu boyut elenir ve sonuçta hiçbir gösterim + çeşidi kalmasza 4. adıma atlanır.
    2. + +
    3. ‘En uygun’ gösterim çeşidi bir eleme süreciyle seçilir. Bu süreç + sırasında aşağıdaki sınamalar sırayla uygulanır. Sınamalardan + geçemeyen bir gösterim çeşidi elenir. Sınamaların bir aşamasında tek + bir gösterim çeşidi kalırsa bu en uygun eşleşme olarak seçilmiş olur + ve 3. adıma atlanır. Eğer birden fazla gösterim çeşidi kalırsa sonraki + sınamaya geçilir. + +
        +
      1. Accept başlığındaki üstünlük katsayısı ile + gösterimin ortam türünde belirtilen kaynak üstünlüğünün çarpımı en + büyük olan gösterim çeşidi seçilir.
      2. + +
      3. En yüksek dil üstünlük katsayısına sahip gösterim çeşidi seçilir. +
      4. + +
      5. En uygun dil eşleşmesine sahip gösterim çeşidini seçmek için + önce varsa Accept-Language başlığındaki dil + sıralamasına bakılır, aksi takdirde LanguagePriority + yönergesi ile atanmışsa oradaki dil sıralamasına bakılır.
      6. + +
      7. En yüksek ‘seviyeden’ ortam parametresine (text/html ortam türü + sürümünü belirtmekte kullanılır) sahip gösterim çeşitleri + seçilir.
      8. + +
      9. Accept-Charset başlık satırında belirtilene bakarak + en uygun karakter kümesine sahip gösterim çeşitleri seçilir. + Alenen dışlanmadıkça ISO-8859-1 kabul edilebilir karakter + kümesidir. text/* ortam türüne sahip gösterim + çeşitlerinden belli bir karakter kümesi ile ilişkilendirilmemiş + olanların karakter kümesinin ISO-8859-1 olduğu varsayılır.
      10. + +
      11. ISO-8859-1 karakter kümesi ile ilişkilendirilmemiş gösterim + çeşitleri seçilir. Böyle hiçbir gösterim yoksa bütün gösterimler + seçilir.
      12. + +
      13. En uygun kodlamaya sahip gösterim çeşitleri seçilir. Tarayıcı + tarafından kabul edilebilir kodlamaya sahip gösterim çeşitleri + varsa bunlar seçilir. Yoksa kodlanmış ve kodlanmamış gösterim + çeşitleri karışık olarak mevcutsa sadece kodlanmamış olanlar + seçilir. Eğer bütün gösterim çeşitlerinin sadece kodlanmış ya da + sadece kodlanmamış gösterimleri mevcutsa hepsi seçilir.
      14. + +
      15. En küçük içerik uzunluğuna sahip gösterim çeşitleri seçilir.
      16. + +
      17. Kalan gösterim çeşitlerinin ilki seçilir. Bu ilk, ya türeşlem + dosyasında listelenen ilk çeşittir ya da gösterimler bir dizinden + okunuyorsa ASCII kod sıralamasına göre ilk sıradaki dosya ismine + sahip gösterimdir.
      18. +
      +
    4. + +
    5. Algoritma, artık seçilmiş en uygun gösterim çeşidine sahipse bu + artık yanıt olarak döndürülebilir. HTTP yanıt başlığı + Vary’ye uzlaşım boyutları atanır (tarayıcı ve + arabellekler özkaynağı kaydederken bu bilgiyi kullanırlar) + ve algoritma sonlandırılır.
    6. + +
    7. Buraya gelinmişse hiçbir gösterim seçilmemiş demektir (hiçbiri + tarayıcı tarafından kabul edilebilir bulunmadığından dolayı). + Gövdesinde mevcut gösterim çeşitlerini listeleyen bir HTML belgesi 406 + durum koduyla döndürülür (406: ‘kabul edilebilir bir gösterim yok’). + Ayrıca HTTP Vary başlığında gösterim çeşitliliğinin + boyutları belirtilir.
    8. +
    +
    +
    + +
    Üstünlük Değerleriyle Oynamak + +

    Apache bazen yukarıdaki Apache uzlaşım algoritmasının kesin sonucunun + beklenenden farklı olması için üstünlük değerleriyle oynar. Bunu tam ve + doğru bilgi göndermeyen tarayıcılar için algoritmadan en iyi sonucu elde + etmek amacıyla yapar. Bazen günümüzün en tanınmış tarayıcıları bile çoğu + durumda yanlış bir seçimle sonuçlanmayacaksa Accept başlık + bilgilerini göndermemektedir. Eğer tarayıcı eksiksiz ve doğru bilgi + gönderirse Apache bu değerlerle oynamayacaktır.

    + +
    Ortam Türleri ve Dosyaismi Kalıpları + +

    Accept: istek başlığı ortam türü tercihlerini yansıtır. + Ayrıca, * bir dizge ile eşleşmek üzere "image/*" veya "*/*" gibi ortam + türü kalıpları da içerebilir. Dolayısıyla şöyle bir istek,

    + + Accept: image/*, */* + +

    diğer türler gibi "image/" ile başlayan ortam türlerini kabul + edilebilir kılacaktır. Bazı tarayıcılar ortam türlerini örtük olarak + elde etmek amacıyla hep bu tür kalıplar gönderirler. Örnek:

    + + + Accept: text/html, text/plain, image/gif, image/jpeg, */* + + +

    Bunun amacı, açıkça listelenmiş türlerin tercih edildiğini, fakat + farklı gösterimler varsa onların da kabul edilebileceğini belirtmektir. + Üstünlük değerlerini doğrudan kullanarak tarayıcılar gerçekte ne + istediklerini şuna benzer şekilde belirtebilirler:

    + + + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 + + +

    Açıkça belirtilen türler için üstünlük katsayısı belirtilmemiştir, + dolayısıyla üstünlük katsayılarının 1.0 (en yüksek) olduğu + varsayılmaktadır. */* kalıbı 0.01 gibi çok daha düşük bir öncelik + belirtmektedir. Bu bakımdan, ancak, açıkça belirtilen türlerden + hiçbirinin bulunmaması halinde diğer türler eşleşecektir.

    + +

    Eğer Accept: başlığı hiçbir q + katsayısı içermiyorsa ve başlıkta "*/*" belirtilmişse, Apache istenen + davranışı taklit etmek için bu kalıba 0.01 katsayısını atar. Keza + "type/*" kalıbına da 0.02 katsayısını atar (yani, */* kalıbına göre + tercihli olur). Eğer Accept: alanındaki her ortam türü bir + q katsayısı içeriyorsa bu özel değerler uygulanmaz. + Dolayısıyla gerekli bilgiyi açıkça bildiren tarayıcılardan gelen + istekler umulduğu gibi işlem görecektir.

    +
    + +
    Dil Uzlaşımında İstisnalar + +

    Apache 2.0’dan itibaren, uzlaşım algoritmasına, bir eşleşme bulmak + konusunda algoritma başarılı olamadığı takdirde hoş bir son çareye izin + vermek için bazı istisnalar eklenmiştir.

    + +

    İstemci sunucudan bir sayfa istediğinde, sunucu, tarayıcı tarafından + gönderilen Accept-language başlığıyla eşleşen tek bir sayfa + bulamadığı takdirde istemciye ya “Kabul edilebilir bir gösterim çeşidi + yok” ya da “Çok sayıda seçim belirtilmiş” yanıtını döndürür. Bu hata + iletilerinden kaçınmak için bu gibi durumlarda Apache + Accept-language başlığını yoksaymaya ayarlanabilir. Böylece + istemcinin isteğine tam olarak uymasa da bir belge sağlanır. Bu hata + iletilerinin birini veya her ikisini de geçersiz kılmak için ForceLanguagePriority yönergesi + kullanılabilir ve sunucunun kararını LanguagePriority yönergesine + dayanarak vermesi sağlanabilir.

    + +

    Sunucu ayrıca, tam bir eşleşme bulunmadığı zaman lehçelerle de eşleşme + arayabilir. Örneğin, bir istemci Britanya İngilizcesi + (en-GB) ile yazılmış belgeler için istekte bulunursa, + sunucu normalde HTTP/1.1 standardına göre bir belgenin basitçe + en olarak imlenmesine izin vermez. (Bir okuyucu Britanya + İngilizcesini anlıyor ama genel İngilizceyi anlamıyor diye + Accept-Language başlığında en değil de + en-GB’yi belirtmesinin hemen hemen daima bir yapılandırma + hatasına yol açacağına dikkat ediniz. Maalesef, mevcut istemcilerin çoğu + öntanımlı yapılandırmalarında buna benzer şeyler yapmaktadır.) Bununla + birlikte, başka bir dille eşleşme mümkün değilse ve sunucu “Kabul + edilebilir bir gösterim çeşidi yok” hatasını döndürmeye hazırsa veya + LanguagePriority son + çaresine ayarlanmışsa alt küme belirtimini yok sayacak ve + en belge isteklerine en-GB belgelerle yanıt + verecektir. Apache, lehçenin üyesi olduğu anadili, istemcinin kabul + edilebilir diller listesine örtük olarak düşük bir üstünlük değeri ile + ekler. Yalnız şuna dikkat edin, eğer istemci tercihini "en-GB; q=0.9, + fr; q=0.8" olarak belirtirse ve sunucuda sadece "en" ve "fr" belgeleri + varsa sunucu "fr" belge ile yanıt verecektir. HTTP/1.1 belirtimi ile + uyumluluğu sağlamak ve düzgün yapılandırılmış istemcilerle gerektiği + gibi çalışabilmek için bu gereklidir.

    + +

    Gelişmiş tekniklerin (çerezler, özel URL yolları gibi) desteklenmesi + sırasında, kullanıcının tercih ettiği dili saptamak için Apache 2.0.47 + sürümünden beri mod_negotiation modülü + prefer-language ortam değişkenini + tanımaktadır. Değişken mevcutsa ve uygun bir dil yaftası içeriyorsa + mod_negotiation uygun gösterimi seçmeyi deneyecektir. + Böyle bir gösterim çeşidi mevcut değilse normal uzlaşım işlemi + uygulanacaktır.

    + + Örnek + SetEnvIf Cookie "language=(.+)" prefer-language=$1
    + Header append Vary cookie +
    +
    +
    + +
    + Şeffaf İçerik Uzlaşımının Genişletilmesi + +

    Apache, şeffaf içerik uzlaşımı protokolünü (RFC 2295) şöyle genişletir: + Sadece içerik kodlamasına özgü olmak üzere gösterim çeşidi listelerinde + gösterim çeşitlerini imlemek için yeni bir {encoding ..} + elemanı kullanılır. RVSA/1.0 algoritmasının (RFC 2296) gerçeklenimi, + listedeki kodlanmış gösterim çeşitlerini tanımak ve onları + Accept-Encoding başlık alanıyla ilgili olarak kabul + edilebilir kodlamalara aday gösterim çeşitleri olarak kullanmak üzere + genişletilmiştir. RVSA/1.0 gerçeklenimi, en uygun gösterim çeşidi + seçiminin öncesinde hesaplanmış üstünlük katsayısını virgülden sonra beş + haneye yuvarlamaz.

    +
    + +
    Hiperbağlar ve İsimlendirme Uzlaşımları + +

    Eğer dil uzlaşımı kullanıyorsanız ve birden fazla dosya ismi uzantısına + sahip dosyalarınız varsa uzantıların sıralamasının normalde uygunsuz + düştüğü farklı isimlendirme yaklaşımlarında bulunabilirsiniz (ayrıntılar + için mod_mime belgesine + bakınız).

    + +

    Bir MIME türü uzantısına sahip bir dosyanın (html gibi), + kodlanmış bir gösterimi (gz gibi) mevcut olabilir. Bu + dosyanın ayrıca farklı dillerdeki gösterimleri için de bir uzantısı + (en gibi) olabilir.

    + +

    Örnekler:

    + +
      +
    • misal.en.html
    • + +
    • misal.html.en
    • + +
    • misal.en.html.gz
    • +
    + +

    Hiperbağ olarak geçerli ve geçersiz bazı dosya ismi örnekleri:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dosya ismiGeçerli HiperbağGeçersiz Hiperbağ
    misal.html.enmisal
    + misal.html
    -
    misal.en.htmlmisalmisal.html
    misal.html.en.gzmisal
    + misal.html
    misal.gz
    + misal.html.gz
    misal.en.html.gzmisalmisal.html
    + misal.html.gz
    + misal.gz
    misal.gz.html.enmisal
    + misal.gz
    + misal.gz.html
    misal.html
    misal.html.gz.enmisal
    + misal.html
    + misal.html.gz
    misal.gz
    + +

    Yukarıdaki tabloya bakarak hiperbağlarda bir dosya ismini uzantısız + olarak (misal gibi) kullanmanın daima mümkün olduğunu + farkedeceksiniz. Böylece br belgenin asıl türünü gizleyebilir ve + sonradan bir hiperbağ değişikliği yapmaksızın örneğin + html’den shtml veya cgi’ye + geçebilirsiniz.

    + +

    Hiperbağlarda MIME türlerini (misal.html gibi) kullanmaya + devam etmek istiyorsanız dil uzantısı MIME türü uzantısının sağında + kalmalıdır (misal.html.en gibi).

    +
    + +
    Arabellekler Hakkında + +

    Bir arabellek, bir gösterimi istek URL’si ile ilişkilendirerek saklar. + Böylece, sonradan aynı URL için bir istek yapıldığında kaydettiği + gösterimi kullanabilir. Fakat özkaynak sunucuyla uzlaşılan türdeyse + arabelleğe ilk istenen çeşit saklanmış olacağından isteğe yanlış + gösterimle yanıt verilmiş olacaktır. Bunun olmaması için Apache, normal + olarak içerik uzlaşımının sonucu olarak döndürülen tüm yanıtları + HTTP/1.0 istemciler tarafından arabelleklenemez olarak imler. Apache + ayrıca, uzlaşımlı yanıtların arabelleklenmesini mümkün kılan HTTP/1.1 + protokolünü de destekler.

    + +

    HTTP/1.0 uyumlu istemcilerden (bir tarayıcı veya arabellek) gelen + istekler için, uzlaşıma konu yanıtların arabelleklenmesini mümkün kılmak + üzere CacheNegotiatedDocs yönergesi kullanılabilir. Bu yönerge + argümansızdır ve sunucu genelinde veya sanal konakların + yapılandırılmasında kullanılabilir. Bunun HTTP/1.1 istemcilerinden gelen + isteklere bir etkisi yoktur.

    + +

    HTTP/1.1 istemciler için, Apache, yanıtın uzlaşım boyutlarını göstermek + üzere bir Vary HTTP yanıt başlığı gönderir. Arabellekler bu + bilgiyi sonraki istekleri yerel kopyadan sunarken kullanabilirler. Bir + arabelleğin uzlaşım boyutlarına bakmaksızın yerel kopyasını kullanmaya + teşvik etmek için force-no-vary ortam değişkenini etkin kılabilirsiniz.

    + +
    +
    diff --git a/docs/manual/convenience.map b/docs/manual/convenience.map index 5a777001a0c..71705471b2c 100644 --- a/docs/manual/convenience.map +++ b/docs/manual/convenience.map @@ -39,9 +39,10 @@ anonymous_logemail mod/mod_authn_anon.html#anonymous_logemail anonymous_mustgiveemail mod/mod_authn_anon.html#anonymous_mustgiveemail anonymous_nouserid mod/mod_authn_anon.html#anonymous_nouserid anonymous_verifyemail mod/mod_authn_anon.html#anonymous_verifyemail -assignuserid mod/perchild.html#assignuserid authbasicauthoritative mod/mod_auth_basic.html#authbasicauthoritative authbasicprovider mod/mod_auth_basic.html#authbasicprovider +authdbduserpwquery mod/mod_authn_dbd.html#authdbduserpwquery +authdbduserrealmquery mod/mod_authn_dbd.html#authdbduserrealmquery authdbmgroupfile mod/mod_authz_dbm.html#authdbmgroupfile authdbmtype mod/mod_authn_dbm.html#authdbmtype authdbmuserfile mod/mod_authn_dbm.html#authdbmuserfile @@ -55,6 +56,7 @@ authdigestprovider mod/mod_auth_digest.html#authdigestprovider authdigestqop mod/mod_auth_digest.html#authdigestqop authdigestshmemsize mod/mod_auth_digest.html#authdigestshmemsize authgroupfile mod/mod_authz_groupfile.html#authgroupfile +authldapbindauthoritative mod/mod_authnz_ldap.html#authldapbindauthoritative authldapbinddn mod/mod_authnz_ldap.html#authldapbinddn authldapbindpassword mod/mod_authnz_ldap.html#authldapbindpassword authldapcharsetconfig mod/mod_authnz_ldap.html#authldapcharsetconfig @@ -62,6 +64,7 @@ authldapcomparednonserver mod/mod_authnz_ldap.html#authldapcomparednonserver authldapdereferencealiases mod/mod_authnz_ldap.html#authldapdereferencealiases authldapgroupattribute mod/mod_authnz_ldap.html#authldapgroupattribute authldapgroupattributeisdn mod/mod_authnz_ldap.html#authldapgroupattributeisdn +authldapremoteuserattribute mod/mod_authnz_ldap.html#authldapremoteuserattribute authldapremoteuserisdn mod/mod_authnz_ldap.html#authldapremoteuserisdn authldapurl mod/mod_authnz_ldap.html#authldapurl authname mod/core.html#authname @@ -75,6 +78,7 @@ authzgroupfileauthoritative mod/mod_authz_groupfile.html#authzgroupfileauthorita authzldapauthoritative mod/mod_authnz_ldap.html#authzldapauthoritative authzownerauthoritative mod/mod_authz_owner.html#authzownerauthoritative authzuserauthoritative mod/mod_authz_user.html#authzuserauthoritative +balancermember mod/mod_proxy.html#balancermember browsermatch mod/mod_setenvif.html#browsermatch browsermatchnocase mod/mod_setenvif.html#browsermatchnocase bufferedlogs mod/mod_log_config.html#bufferedlogs @@ -87,7 +91,12 @@ cachefile mod/mod_file_cache.html#cachefile cacheignorecachecontrol mod/mod_cache.html#cacheignorecachecontrol cacheignoreheaders mod/mod_cache.html#cacheignoreheaders cacheignorenolastmod mod/mod_cache.html#cacheignorenolastmod +cacheignorequerystring mod/mod_cache.html#cacheignorequerystring +cacheignoreurlsessionidentifiers mod/mod_cache.html#cacheignoreurlsessionidentifiers cachelastmodifiedfactor mod/mod_cache.html#cachelastmodifiedfactor +cachelock mod/mod_cache.html#cachelock +cachelockmaxage mod/mod_cache.html#cachelockmaxage +cachelockpath mod/mod_cache.html#cachelockpath cachemaxexpire mod/mod_cache.html#cachemaxexpire cachemaxfilesize mod/mod_disk_cache.html#cachemaxfilesize cacheminfilesize mod/mod_disk_cache.html#cacheminfilesize @@ -95,12 +104,14 @@ cachenegotiateddocs mod/mod_negotiation.html#cachenegotiateddocs cacheroot mod/mod_disk_cache.html#cacheroot cachestorenostore mod/mod_cache.html#cachestorenostore cachestoreprivate mod/mod_cache.html#cachestoreprivate +cgidscripttimeout mod/mod_cgid.html#cgidscripttimeout cgimapextension mod/core.html#cgimapextension charsetdefault mod/mod_charset_lite.html#charsetdefault charsetoptions mod/mod_charset_lite.html#charsetoptions charsetsourceenc mod/mod_charset_lite.html#charsetsourceenc +checkcaseonly mod/mod_speling.html#checkcaseonly checkspelling mod/mod_speling.html#checkspelling -childperuserid mod/perchild.html#childperuserid +chrootdir mod/mpm_common.html#chrootdir contentdigest mod/core.html#contentdigest cookiedomain mod/mod_usertrack.html#cookiedomain cookieexpires mod/mod_usertrack.html#cookieexpires @@ -129,6 +140,9 @@ defaulttype mod/core.html#defaulttype deflatebuffersize mod/mod_deflate.html#deflatebuffersize deflatecompressionlevel mod/mod_deflate.html#deflatecompressionlevel deflatefilternote mod/mod_deflate.html#deflatefilternote +deflateinflatelimitrequestbody mod/mod_deflate.html#deflateinflatelimitrequestbody +deflateinflateratioburst mod/mod_deflate.html#deflateinflateratioburst +deflateinflateratiolimit mod/mod_deflate.html#deflateinflateratiolimit deflatememlevel mod/mod_deflate.html#deflatememlevel deflatewindowsize mod/mod_deflate.html#deflatewindowsize deny mod/mod_authz_host.html#deny @@ -138,6 +152,7 @@ directorymatch mod/core.html#directorymatch directoryslash mod/mod_dir.html#directoryslash documentroot mod/core.html#documentroot dumpioinput mod/mod_dumpio.html#dumpioinput +dumpiologlevel mod/mod_dumpio.html#dumpiologlevel dumpiooutput mod/mod_dumpio.html#dumpiooutput enableexceptionhook mod/mpm_common.html#enableexceptionhook enablemmap mod/core.html#enablemmap @@ -151,6 +166,7 @@ expiresdefault mod/mod_expires.html#expiresdefault extendedstatus mod/mod_status.html#extendedstatus extfilterdefine mod/mod_ext_filter.html#extfilterdefine extfilteroptions mod/mod_ext_filter.html#extfilteroptions +fallbackresource mod/mod_dir.html#fallbackresource fileetag mod/core.html#fileetag files mod/core.html#files filesmatch mod/core.html#filesmatch @@ -162,10 +178,13 @@ filtertrace mod/mod_filter.html#filtertrace forcelanguagepriority mod/mod_negotiation.html#forcelanguagepriority forcetype mod/core.html#forcetype forensiclog mod/mod_log_forensic.html#forensiclog +gprofdir mod/core.html#gprofdir +gracefulshutdowntimeout mod/mpm_common.html#gracefulshutdowntimeout group mod/mpm_common.html#group header mod/mod_headers.html#header headername mod/mod_autoindex.html#headername hostnamelookups mod/core.html#hostnamelookups +httpprotocoloptions mod/core.html#httpprotocoloptions identitycheck mod/mod_ident.html#identitycheck identitychecktimeout mod/mod_ident.html#identitychecktimeout ifdefine mod/core.html#ifdefine @@ -175,6 +194,7 @@ imapbase mod/mod_imagemap.html#imapbase imapdefault mod/mod_imagemap.html#imapdefault imapmenu mod/mod_imagemap.html#imapmenu include mod/core.html#include +indexheadinsert mod/mod_autoindex.html#indexheadinsert indexignore mod/mod_autoindex.html#indexignore indexoptions mod/mod_autoindex.html#indexoptions indexorderdefault mod/mod_autoindex.html#indexorderdefault @@ -219,18 +239,19 @@ loglevel mod/core.html#loglevel maxclients mod/mpm_common.html#maxclients maxkeepaliverequests mod/core.html#maxkeepaliverequests maxmemfree mod/mpm_common.html#maxmemfree +maxranges mod/core.html#maxranges maxrequestsperchild mod/mpm_common.html#maxrequestsperchild maxrequestsperthread mod/beos.html#maxrequestsperthread maxspareservers mod/prefork.html#maxspareservers maxsparethreads mod/mpm_common.html#maxsparethreads maxthreads mod/mpm_netware.html#maxthreads -maxthreadsperchild mod/perchild.html#maxthreadsperchild mcachemaxobjectcount mod/mod_mem_cache.html#mcachemaxobjectcount mcachemaxobjectsize mod/mod_mem_cache.html#mcachemaxobjectsize mcachemaxstreamingbuffer mod/mod_mem_cache.html#mcachemaxstreamingbuffer mcacheminobjectsize mod/mod_mem_cache.html#mcacheminobjectsize mcacheremovalalgorithm mod/mod_mem_cache.html#mcacheremovalalgorithm mcachesize mod/mod_mem_cache.html#mcachesize +mergetrailers mod/core.html#mergetrailers metadir mod/mod_cern_meta.html#metadir metafiles mod/mod_cern_meta.html#metafiles metasuffix mod/mod_cern_meta.html#metasuffix @@ -242,23 +263,26 @@ modmimeusepathinfo mod/mod_mime.html#modmimeusepathinfo multiviewsmatch mod/mod_mime.html#multiviewsmatch namevirtualhost mod/core.html#namevirtualhost noproxy mod/mod_proxy.html#noproxy -numservers mod/perchild.html#numservers nwssltrustedcerts mod/mod_nw_ssl.html#nwssltrustedcerts nwsslupgradeable mod/mod_nw_ssl.html#nwsslupgradeable options mod/core.html#options order mod/mod_authz_host.html#order passenv mod/mod_env.html#passenv pidfile mod/mpm_common.html#pidfile +protocol mod/core.html#protocol protocolecho mod/mod_echo.html#protocolecho proxy mod/mod_proxy.html#proxy proxybadheader mod/mod_proxy.html#proxybadheader proxyblock mod/mod_proxy.html#proxyblock proxydomain mod/mod_proxy.html#proxydomain proxyerroroverride mod/mod_proxy.html#proxyerroroverride +proxyftpdircharset mod/mod_proxy.html#proxyftpdircharset proxyiobuffersize mod/mod_proxy.html#proxyiobuffersize proxymatch mod/mod_proxy.html#proxymatch proxymaxforwards mod/mod_proxy.html#proxymaxforwards proxypass mod/mod_proxy.html#proxypass +proxypassinterpolateenv mod/mod_proxy.html#proxypassinterpolateenv +proxypassmatch mod/mod_proxy.html#proxypassmatch proxypassreverse mod/mod_proxy.html#proxypassreverse proxypassreversecookiedomain mod/mod_proxy.html#proxypassreversecookiedomain proxypassreversecookiepath mod/mod_proxy.html#proxypassreversecookiepath @@ -267,13 +291,19 @@ proxyreceivebuffersize mod/mod_proxy.html#proxyreceivebuffersize proxyremote mod/mod_proxy.html#proxyremote proxyremotematch mod/mod_proxy.html#proxyremotematch proxyrequests mod/mod_proxy.html#proxyrequests +proxyscgiinternalredirect mod/mod_proxy_scgi.html#proxyscgiinternalredirect +proxyscgisendfile mod/mod_proxy_scgi.html#proxyscgisendfile +proxyset mod/mod_proxy.html#proxyset +proxystatus mod/mod_proxy.html#proxystatus proxytimeout mod/mod_proxy.html#proxytimeout proxyvia mod/mod_proxy.html#proxyvia readmename mod/mod_autoindex.html#readmename +receivebuffersize mod/mpm_common.html#receivebuffersize redirect mod/mod_alias.html#redirect redirectmatch mod/mod_alias.html#redirectmatch redirectpermanent mod/mod_alias.html#redirectpermanent redirecttemp mod/mod_alias.html#redirecttemp +registerhttpmethod mod/core.html#registerhttpmethod removecharset mod/mod_mime.html#removecharset removeencoding mod/mod_mime.html#removeencoding removehandler mod/mod_mime.html#removehandler @@ -282,6 +312,7 @@ removelanguage mod/mod_mime.html#removelanguage removeoutputfilter mod/mod_mime.html#removeoutputfilter removetype mod/mod_mime.html#removetype requestheader mod/mod_headers.html#requestheader +requestreadtimeout mod/mod_reqtimeout.html#requestreadtimeout require mod/core.html#require rewritebase mod/mod_rewrite.html#rewritebase rewritecond mod/mod_rewrite.html#rewritecond @@ -306,6 +337,7 @@ scriptlogbuffer mod/mod_cgi.html#scriptlogbuffer scriptloglength mod/mod_cgi.html#scriptloglength scriptsock mod/mod_cgid.html#scriptsock securelisten mod/mod_nw_ssl.html#securelisten +seerequesttail mod/mod_status.html#seerequesttail sendbuffersize mod/mpm_common.html#sendbuffersize serveradmin mod/core.html#serveradmin serveralias mod/core.html#serveralias @@ -321,8 +353,11 @@ setenvifnocase mod/mod_setenvif.html#setenvifnocase sethandler mod/core.html#sethandler setinputfilter mod/core.html#setinputfilter setoutputfilter mod/core.html#setoutputfilter +ssienableaccess mod/mod_include.html#ssienableaccess ssiendtag mod/mod_include.html#ssiendtag ssierrormsg mod/mod_include.html#ssierrormsg +ssietag mod/mod_include.html#ssietag +ssilastmodified mod/mod_include.html#ssilastmodified ssistarttag mod/mod_include.html#ssistarttag ssitimeformat mod/mod_include.html#ssitimeformat ssiundefinedecho mod/mod_include.html#ssiundefinedecho @@ -336,9 +371,12 @@ sslcertificatechainfile mod/mod_ssl.html#sslcertificatechainfile sslcertificatefile mod/mod_ssl.html#sslcertificatefile sslcertificatekeyfile mod/mod_ssl.html#sslcertificatekeyfile sslciphersuite mod/mod_ssl.html#sslciphersuite +sslcompression mod/mod_ssl.html#sslcompression sslcryptodevice mod/mod_ssl.html#sslcryptodevice sslengine mod/mod_ssl.html#sslengine +sslfips mod/mod_ssl.html#sslfips sslhonorcipherorder mod/mod_ssl.html#sslhonorcipherorder +sslinsecurerenegotiation mod/mod_ssl.html#sslinsecurerenegotiation sslmutex mod/mod_ssl.html#sslmutex ssloptions mod/mod_ssl.html#ssloptions sslpassphrasedialog mod/mod_ssl.html#sslpassphrasedialog @@ -347,32 +385,44 @@ sslproxycacertificatefile mod/mod_ssl.html#sslproxycacertificatefile sslproxycacertificatepath mod/mod_ssl.html#sslproxycacertificatepath sslproxycarevocationfile mod/mod_ssl.html#sslproxycarevocationfile sslproxycarevocationpath mod/mod_ssl.html#sslproxycarevocationpath +sslproxycheckpeercn mod/mod_ssl.html#sslproxycheckpeercn +sslproxycheckpeerexpire mod/mod_ssl.html#sslproxycheckpeerexpire sslproxyciphersuite mod/mod_ssl.html#sslproxyciphersuite sslproxyengine mod/mod_ssl.html#sslproxyengine +sslproxymachinecertificatechainfile mod/mod_ssl.html#sslproxymachinecertificatechainfile sslproxymachinecertificatefile mod/mod_ssl.html#sslproxymachinecertificatefile sslproxymachinecertificatepath mod/mod_ssl.html#sslproxymachinecertificatepath sslproxyprotocol mod/mod_ssl.html#sslproxyprotocol sslproxyverify mod/mod_ssl.html#sslproxyverify sslproxyverifydepth mod/mod_ssl.html#sslproxyverifydepth sslrandomseed mod/mod_ssl.html#sslrandomseed +sslrenegbuffersize mod/mod_ssl.html#sslrenegbuffersize sslrequire mod/mod_ssl.html#sslrequire sslrequiressl mod/mod_ssl.html#sslrequiressl sslsessioncache mod/mod_ssl.html#sslsessioncache sslsessioncachetimeout mod/mod_ssl.html#sslsessioncachetimeout +sslsessionticketkeyfile mod/mod_ssl.html#sslsessionticketkeyfile +sslsessiontickets mod/mod_ssl.html#sslsessiontickets +sslstrictsnivhostcheck mod/mod_ssl.html#sslstrictsnivhostcheck sslusername mod/mod_ssl.html#sslusername sslverifyclient mod/mod_ssl.html#sslverifyclient sslverifydepth mod/mod_ssl.html#sslverifydepth startservers mod/mpm_common.html#startservers startthreads mod/mpm_common.html#startthreads +substitute mod/mod_substitute.html#substitute +substituteinheritbefore mod/mod_substitute.html#substituteinheritbefore +suexec mod/core.html#suexec suexecusergroup mod/mod_suexec.html#suexecusergroup threadlimit mod/mpm_common.html#threadlimit threadsperchild mod/mpm_common.html#threadsperchild threadstacksize mod/mpm_common.html#threadstacksize timeout mod/core.html#timeout +traceenable mod/core.html#traceenable transferlog mod/mod_log_config.html#transferlog typesconfig mod/mod_mime.html#typesconfig unsetenv mod/mod_env.html#unsetenv usecanonicalname mod/core.html#usecanonicalname +usecanonicalphysicalport mod/core.html#usecanonicalphysicalport user mod/mpm_common.html#user userdir mod/mod_userdir.html#userdir virtualdocumentroot mod/mod_vhost_alias.html#virtualdocumentroot diff --git a/docs/manual/custom-error.html b/docs/manual/custom-error.html index 3ee08771909..5d677760613 100644 --- a/docs/manual/custom-error.html +++ b/docs/manual/custom-error.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: custom-error.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 @@ -6,10 +8,14 @@ Content-Language: es Content-type: text/html; charset=ISO-8859-1 -URI: custom-error.html.ja.euc-jp +URI: custom-error.html.ja.utf8 Content-Language: ja -Content-type: text/html; charset=EUC-JP +Content-type: text/html; charset=UTF-8 URI: custom-error.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR + +URI: custom-error.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/custom-error.html.en b/docs/manual/custom-error.html.en index 0d8048ae482..3bd01b12e5c 100644 --- a/docs/manual/custom-error.html.en +++ b/docs/manual/custom-error.html.en @@ -1,27 +1,35 @@ - -Custom Error Responses - Apache HTTP Server +Custom Error Responses - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Custom Error Responses

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Custom Error Responses

    Available Languages:  en  | - es  | + es  |  ja  | - ko 

    + ko  | + tr 

    Additional functionality allows webmasters to configure the response @@ -37,7 +45,7 @@

    +
    top

    Behavior

    @@ -127,9 +135,7 @@

    where the action can be,

      -
    1. Text to be displayed. Prefix the text with a quote - ("). Whatever follows the quote is displayed. Note: - the (") prefix isn't displayed.
    2. +
    3. Text to be displayed. Wrap the text with quotes (").
    4. An external URL to redirect to.
    5. @@ -195,10 +201,32 @@

    Available Languages:  en  | - es  | + es  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/custom-error.html.es b/docs/manual/custom-error.html.es index b97c38f2e71..2f869579e4b 100644 --- a/docs/manual/custom-error.html.es +++ b/docs/manual/custom-error.html.es @@ -1,28 +1,40 @@ - -Respuestas de error personalizadas - Servidor HTTP Apache +Respuestas de error personalizadas - Servidor HTTP Apache Versión 2.2 - - + + + +
    <-

    Respuestas de error personalizadas

    +Apache > Servidor HTTP > Documentación > Versión 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Respuestas de error personalizadas

    Idiomas disponibles:  en  | - es  | + es  |  ja  | - ko 

    + ko  | + tr 

    +
    Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios + recientemente.

    Apache ofrece la posibilidad de que los webmasters puedan configurar las respuestas que muestra el servidor Apache cuando se @@ -33,13 +45,13 @@

    Si un script termina de forma anormal y se produce una respuesta "500 Server Error", esta respuesta puede ser sustituida por otro - texto de su elección o por una redirección a otra URL + texto de su elección o por una redirección a otra URL (local o externa).

    +
    top

    Comportamiento

    @@ -48,10 +60,10 @@

    Comportamiento anterior

    -

    NCSA httpd 1.3 devolvía mensajes antiguos del error o - problema encontrado que con frecuencia no tenían - significado alguno para el usuario, y que no incluían en - los logs información que diera pistas sobre las causas de +

    NCSA httpd 1.3 devolvía mensajes antiguos del error o + problema encontrado que con frecuencia no tenían + significado alguno para el usuario, y que no incluían en + los logs información que diera pistas sobre las causas de lo sucedido.

    @@ -65,15 +77,15 @@
  • Desplegar un texto diferente, en lugar de los mensajes de la NCSA, o
  • -
  • redireccionar la petición a una URL local, o
  • +
  • redireccionar la petición a una URL local, o
  • -
  • redireccionar la petición a una URL externa.
  • +
  • redireccionar la petición a una URL externa.
  • Redireccionar a otra URL puede resultar de utilidad, pero - solo si con ello se puede también pasar alguna - información que pueda explicar el error o problema y/o - registrarlo en el log correspondiente más claramente.

    + solo si con ello se puede también pasar alguna + información que pueda explicar el error o problema y/o + registrarlo en el log correspondiente más claramente.

    Para conseguir esto, Apache define ahora variables de entorno similares a las de los CGI:

    @@ -96,25 +108,25 @@

    Tenga en cuenta el prefijo REDIRECT_.

    Al menos REDIRECT_URL y - REDIRECT_QUERY_STRING se pasarán a la nueva + REDIRECT_QUERY_STRING se pasarán a la nueva URL (asumiendo que es un cgi-script o un cgi-include). Las otras - variables existirán solo si existían antes de aparecer + variables existirán solo si existían antes de aparecer el error o problema. Ninguna de estas variables - se creará si en la directiva ErrorDocument ha especificado una - redirección externa (cualquier cosa que empiece + se creará si en la directiva ErrorDocument ha especificado una + redirección externa (cualquier cosa que empiece por un nombre de esquema del tipo http:, incluso si se refiere al mismo servidor).

    top
    -

    Configuración

    +

    Configuración

    El uso de ErrorDocument - está activado para los ficheros .htaccess cuando AllowOverride tiene el valor + está activado para los ficheros .htaccess cuando AllowOverride tiene el valor adecuado.

    -

    Aquí hay algunos ejemplos más...

    +

    Aquí hay algunos ejemplos más...

    ErrorDocument 500 /cgi-bin/crash-recover
    @@ -135,14 +147,14 @@

    1. Texto a mostrar. Ponga antes del texto que quiere que se muestre unas comillas ("). Lo que sea que siga a las comillas se - mostrará. Nota: las comillas (") no se + mostrará. Nota: las comillas (") no se muestran.
    2. -
    3. Una URL local a la que se redireccionará la - petición.
    4. +
    5. Una URL local a la que se redireccionará la + petición.
    6. -
    7. Una URL externa a la que se redireccionará la - petición.
    8. +
    9. Una URL externa a la que se redireccionará la + petición.
    top
    @@ -150,16 +162,16 @@

    El comportamiento de Apache en cuanto a las redirecciones ha - cambiado para que puedan usarse más variables de entorno con + cambiado para que puedan usarse más variables de entorno con los script/server-include.

    Antiguo comportamiento

    -

    Las variables CGI estándar estaban disponibles para el - script al que se hacía la redirección. No se incluía - ninguna indicación sobre la precedencia de la - redirección.

    +

    Las variables CGI estándar estaban disponibles para el + script al que se hacía la redirección. No se incluía + ninguna indicación sobre la precedencia de la + redirección.

    Nuevo comportamiento

    @@ -167,24 +179,24 @@

    Un nuevo grupo de variables de entorno se inicializa para que las use el script al que ha sido redireccionado. Cada - nueva variable tendrá el prefijo REDIRECT_. + nueva variable tendrá el prefijo REDIRECT_. Las variables de entorno REDIRECT_ se crean a partir de de las variables de entorno CGI que existen antes de - la redirección, se les cambia el nombre - añadiéndoles el prefijo REDIRECT_, por + la redirección, se les cambia el nombre + añadiéndoles el prefijo REDIRECT_, por ejemplo, HTTP_USER_AGENT pasa a ser - REDIRECT_HTTP_USER_AGENT. Además, para esas - nuevas variables, Apache definirá REDIRECT_URL + REDIRECT_HTTP_USER_AGENT. Además, para esas + nuevas variables, Apache definirá REDIRECT_URL y REDIRECT_STATUS para ayudar al script a seguir su origen. Tanto la URL original como la URL a la que es redirigida - la petición pueden almacenarse en los logs de acceso.

    + la petición pueden almacenarse en los logs de acceso.

    -

    Si ErrorDocument especifica una redirección local a un +

    Si ErrorDocument especifica una redirección local a un script CGI, el script debe incluir una campo de cabeceraa "Status:" en el resultado final para asegurar que - es posible hacer llegar al cliente de vuelta la condición - de error que lo provocó. Por ejemplo, un script en Perl - para usar con ErrorDocument podría incluir lo + es posible hacer llegar al cliente de vuelta la condición + de error que lo provocó. Por ejemplo, un script en Perl + para usar con ErrorDocument podría incluir lo siguiente:

    @@ -195,25 +207,47 @@

    Si el script tiene como fin tratar una determinada - condición de error, por ejemplo + condición de error, por ejemplo 404 Not Found, se pueden usar los - códigos de error y textos específicos en su lugar.

    + códigos de error y textos específicos en su lugar.

    Tenga en cuenta que el script debe incluir un campo de cabecera Status: apropiado (como 302 Found), si la respuesta contiene un campo de cabecera Location: (para poder enviar una - redirección que se interprete en el cliente). De otra + redirección que se interprete en el cliente). De otra manera, la cabecera Location: puede que no tenga efecto.

    Idiomas disponibles:  en  | - es  | + es  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comentarios

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/custom-error.html.ja.euc-jp b/docs/manual/custom-error.html.ja.euc-jp deleted file mode 100644 index b150fc5dfd3..00000000000 --- a/docs/manual/custom-error.html.ja.euc-jp +++ /dev/null @@ -1,197 +0,0 @@ - - - -¥«¥¹¥¿¥२¥顼¥쥹¥ݥó¥¹ - Apache HTTP ¥µ¡¼¥Ð - - - - - -
    <-
    -

    ¥«¥¹¥¿¥२¥顼¥쥹¥ݥó¥¹

    -
    -

    Available Languages:  en  | - es  | - ja  | - ko 

    -
    - -

    ¥¦¥§¥֥ޥ¹¥¿¡¼¤¬²¿¤餫¤Υ¨¥顼¤äÌäÂê¤ËÂФ¹¤ë - Apache ¤Îȿ±þ¤òÀßÄê¤Ǥ­¤ë¤褦¤ˤ¹¤ëÄɲõ¡ǽ¤òÄ󶡤·¤ޤ¹¡£

    - -

    ¥µ¡¼¥Ф¬¥¨¥顼¤äÌäÂê¤òȯ¸«¤·¤¿¾ì¹ç¤Îȿ±þ¤ò¡¢ - ¥«¥¹¥¿¥ޥ¤¥º¤·¤ÆÄêµÁ¤¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¥¹¥¯¥ê¥ץȤμ¹Ԥ¬¼ºÇԤ·¤Æ "500 Server Error" - ¤òȯÀ¸¤µ¤»¤¿¤Ȥ·¤ޤ¹¡£¤³¤ξì¹ç¤Îȿ±þ¤򡢤è¤깥¤ޤ·¤¤¥ƥ­¥¹¥Ȥ䡢Ê̤Î - URL (ÆâÉôµڤӳ°Éô) ¤ؤΥê¥À¥¤¥쥯¥·¥ç¥ó¤ËÃ֤­´¹¤¨¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£ -

    -
    - -
    top
    -
    -

    ưºî

    - - -

    ¸Ť¤ưºî

    - - -

    NCSA httpd 1.3 ¤ϡ¢¸Ť¯¤ÆÂà¶þ¤ʥ¨¥顼/ÌäÂê¥á¥å»¡¼¥¸¤ò - Ê֤·¤Ƥ¤¤ޤ·¤¿¡£¤½¤ì¤Ϥ·¤Ф·¤Х桼¥¶¤ˤÏ̵°Ọ̃¤Ǥ¢¤ꡢ - ¤ޤ¿¤½¤ì¤òȯÀ¸¤µ¤»¤¿¸¶°ø¤òµ­Ͽ¤¹¤ëÊýˡ¤âÄ󶡤·¤Ƥ¤¤ޤ»¤ó¤Ǥ·¤¿¡£

    - - -

    ¿·¤·¤¤ưºî

    - - -
      -
    1. NCSA ¤Υϡ¼¥ɥ³¡¼¥ɤµ¤줿¥á¥å»¡¼¥¸¤ÎÂå¤ï¤ê¤Ë - ¾¤Υƥ­¥¹¥Ȥòɽ¼¨
    2. - -
    3. ¥í¡¼¥«¥ë¤Î URL ¤˥ê¥À¥¤¥쥯¥È
    4. - -
    5. ³°Éô¤Î URL ¤˥ê¥À¥¤¥쥯¥È
    6. -
    - -

    ¤¹¤ë¤褦¤˥µ¡¼¥ФòÀßÄê¤Ǥ­¤ޤ¹¡£

    - -

    Ê̤Î URL ¤˥ê¥À¥¤¥쥯¥Ȥ¹¤뤳¤ȤÏÌò¤ËΩ¤Á¤ޤ¹¤¬¡¢ - ¤½¤ì¤ÏÀâÌÀ¤򤷤¿¤ꡢ¤è¤êÌÀ³Τ˸í¤ê/ÌäÂê¤òµ­Ͽ¤·¤¿¤ꤹ¤뤿¤á¤Ë - ²¿¤«¾ðÊó¤òÅÁ¤¨¤é¤ì¤ë¤Ȥ­¤˸¤ê¤ޤ¹¡£

    - -

    ¤³¤ì¤ò¼¸½¤¹¤뤿¤á¤ˡ¢ Apache ¤Ͽ·¤·¤¯ CGI ¤Τ褦¤ʴĶ­Êѿô¤ò - ÄêµÁ¤·¤ޤ¹:

    - -

    - REDIRECT_HTTP_ACCEPT=*/*, image/gif, - image/x-xbitmap, image/jpeg
    - REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX - A.09.05 9000/712)
    - REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
    - REDIRECT_QUERY_STRING=
    - REDIRECT_REMOTE_ADDR=121.345.78.123
    - REDIRECT_REMOTE_HOST=ooh.ahhh.com
    - REDIRECT_SERVER_NAME=crash.bang.edu
    - REDIRECT_SERVER_PORT=80
    - REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
    - REDIRECT_URL=/cgi-bin/buggy.pl -

    - -

    Ƭ¤ËÉդ¯ REDIRECT_ ¤ËÃíÌܤ·¤Ƥ¯¤À¤µ¤¤¡£

    - -

    ¾¯¤ʤ¯¤Ȥâ REDIRECT_URL ¤È - REDIRECT_QUERY_STRING ¤Ͽ·¤·¤¤ URL (CGI ¥¹¥¯¥ê¥ץȤ« - CGI ¥¤¥󥯥롼¥ɤǤ¢¤ë¤Ȳ¾Äꤵ¤ì¤ޤ¹) ¤ËÅϤµ¤ì¤ޤ¹¡£ - ¾¤ÎÊѿô¤ϡ¢¥¨¥顼¤äÌäÂ꤬µ¯¤­¤ëÁ°¤Ë¸ºߤ·¤¿¾ì¹ç¤ˤÀ¤±¸ºߤ·¤ޤ¹¡£ - ¤⤷¤¢¤ʤ¿¤ÎÀßÄꤷ¤¿ ErrorDocument ¤¬ ³°Éô¥ê¥À¥¤¥쥯¥È - (¤¹¤ʤï¤Á¡¢http: - ¤Τ褦¤ÊÂηÏ̾¤«¤é»Ϥޤ뤹¤٤ƤΤâ¤Ρ£¤¿¤Ȥ¨Ʊ¤¸¥ۥ¹¥Ȥò»ؤ·¤Ƥ¤¤Ƥâ) - ¤ʤé¤С¢¤³¤ì¤é¤Ï¤ޤ俤¯ÀßÄꤵ¤ì¤ޤ»¤ó¡£

    - -
    top
    -
    -

    ÀßÄê

    - - -

    AllowOverride ¤¬ŬÀڤËÀßÄꤵ¤ì¤Ƥ¤¤ì¤С¢ - .htaccess ¥ե¡¥¤¥ë¤Ç ErrorDocument - ¤ò»ÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -

    ¤³¤³¤ˡ¢¤¤¤¯¤Ĥ«¤ÎÎã¤òµ󤲤ޤ¹¡£

    - -

    - ErrorDocument 500 /cgi-bin/crash-recover
    - ErrorDocument 500 "Sorry, our script crashed. Oh dear"
    - ErrorDocument 500 http://xxx/
    - ErrorDocument 404 /Lame_excuses/not_found.html
    - ErrorDocument 401 /Subscription/how_to_subscribe.html -

    - -

    ¹½ʸ

    - -

    - ErrorDocument <3-digit-code> <action> -

    - -

    action (ưºî) ¤ϡ¢

    - -
      -
    1. ɽ¼¨¤µ¤ì¤ë¤٤­¥ƥ­¥¹¥ȡ£¥ƥ­¥¹¥ȤˤϰúÍÑÉä (") ¤ò¤Ĥ±¤ޤ¹¡£ - °úÍÑÉä¤θå¤Ë³¤¯¤â¤Τ¬²¿¤Ǥâɽ¼¨¤µ¤ì¤ޤ¹¡£ - Ãí°Õ : (") ¤Ïɽ¼¨¤µ¤ì¤ޤ»¤ó
    2. - -
    3. ¥ê¥À¥¤¥쥯¥ÈÀè¤γ°Éô URL
    4. - -
    5. ¥ê¥À¥¤¥쥯¥ÈÀè¤Υí¡¼¥«¥ë URL
    6. -
    -
    top
    -
    -

    ¥«¥¹¥¿¥२¥顼¥쥹¥ݥ󥹤ȥê¥À¥¤¥쥯¥È

    - - -

    ¥¹¥¯¥ê¥ץÈ/SSI ¤ËÄɲäδĶ­Êѿô¤¬ÍøÍѲÄǽ¤ˤʤë¤褦¤ˡ¢ - ¥ê¥À¥¤¥쥯¥Ȥµ¤줿 URL ¤ËÂФ¹¤ë Apache ¤ÎưºÊѹ¹¤µ¤ì¤ޤ·¤¿¡£

    - -

    ¸Ť¤ưºî

    - - -

    ¥ê¥À¥¤¥쥯¥Ȥµ¤줿¥¹¥¯¥ê¥ץȤÏɸ½à¤Î CGI - ´Ķ­Êѿô¤òÍøÍѲÄǽ¤Ǥ·¤¿¡£¤·¤«¤·¡¢¤ɤ³¤«¤é¥ê¥À¥¤¥쥯¥È - ¤µ¤줿¤«¤ξðÊó¤ÏÄ󶡤µ¤ì¤Ƥ¤¤ޤ»¤ó¤Ǥ·¤¿¡£

    - - -

    ¿·¤·¤¤ưºî

    - - -

    ¥ê¥À¥¤¥쥯¥Ȥµ¤줿Àè¤Υ¹¥¯¥ê¥ץȤ¬»ÈÍѲÄǽ¤ʤ褦¤ˡ¢ - ¿·¤·¤¤¤¿¤¯¤µ¤ó¤δĶ­Êѿô¤¬½é´ü²½¤µ¤ì¤ޤ¹¡£¿·¤·¤¤Êѿô¤ϡ¢¤½¤줾¤ì - REDIRECT_ ¤ǻϤޤê¤ޤ¹¡£ - REDIRECT_ ¤ǻϤޤë´Ķ­Êѿô¤ϥê¥À¥¤¥쥯¥Ȥµ¤ì¤ëÁ°¤Ë¸ºߤ·¤Ƥ¤¤¿ - CGI ´Ķ­Êѿô¤ÎƬ¤Ë REDIRECT_ ¤òÉդ±¤ƺîÀ®¤µ¤ì¤ޤ¹¡£ - ¤¹¤ʤï¤Á¡¢HTTP_USER_AGENT ¤Ï - REDIRECT_HTTP_USER_AGENT ¤ˤʤê¤ޤ¹¡£ - ¤³¤ì¤é¤ο·¤·¤¤Êѿô¤˲䨤ơ¢Apache ¤ϡ¢ - ¥¹¥¯¥ê¥ץȤ¬¥ê¥À¥¤¥쥯¥ȸµ¤Υȥ졼¥¹¤ò½õ¤±¤뤿¤á¤Ë - REDIRECT_URL ¤È REDIRECT_STATUS - ¤òÄêµÁ¤·¤ޤ¹¡£¥¢¥¯¥»¥¹¥í¥°¤ˤϸµ¤Î URL ¤ȥê¥À¥¤¥쥯¥Ȥµ¤줿 URL - ¤ÎξÊý¤¬µ­Ͽ¤µ¤ì¤ޤ¹¡£

    - -

    ErrorDocument ¤¬ CGI ¥¹¥¯¥ê¥ץȤؤΥí¡¼¥«¥ë¥ê¥À¥¤¥쥯¥Ȥò - »ØÄꤷ¤Ƥ¤¤ë¾ì¹ç¤ϡ¢¤½¤ì¤òµ¯ư¤¹¤뤳¤Ȥˤʤä¿¥¨¥顼¤ξõÂ֤ò - ¥¯¥饤¥¢¥ó¥Ȥޤdzμ¤ËÅÁ¤¨¤뤿¤á¤Ë "Status:" - ¥إåÀ¤ò´ޤà¤٤­¤Ǥ¹¡£Î㤨¤С¢ErrorDocument ÍѤÎ Perl - ¥¹¥¯¥ê¥ץȤϰʲ¼¤Τ褦¤ʤâ¤Τò´ޤफ¤⤷¤ì¤ޤ»¤ó¡£ -

    - -

    - ...
    - print "Content-type: text/html\n";
    - printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
    - ... -

    - -

    ¥¹¥¯¥ê¥ץȤ¬ 404 Not Found ¤Τ褦¤Ê - ÆÃÄê¤Υ¨¥顼¥³¥ó¥ǥ£¥·¥ç¥ó¤򰷤¦¤¿¤á¤À¤±¤˻Ȥï¤ì¤ë¾ì¹ç¤ϡ¢ - Âå¤ï¤ê¤ËÆÃÄê¤Υ³¡¼¥ɤȥ¨¥顼¥ƥ­¥¹¥Ȥò»ÈÍѤ¹¤뤳¤Ȥ¬¤Ǥ­¤ޤ¹¡£

    - -
    -
    -

    Available Languages:  en  | - es  | - ja  | - ko 

    -
    - \ No newline at end of file diff --git a/docs/manual/custom-error.html.ja.utf8 b/docs/manual/custom-error.html.ja.utf8 new file mode 100644 index 00000000000..5bbe4f9dce3 --- /dev/null +++ b/docs/manual/custom-error.html.ja.utf8 @@ -0,0 +1,231 @@ + + + + + +カスタムエラーレスポンス - Apache HTTP サーバ バージョン 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    カスタムエラーレスポンス

    +
    +

    翻訳済み言語:  en  | + es  | + ja  | + ko  | + tr 

    +
    +
    この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 +
    + +

    ウェブマスターが何らかのエラーや問題に対する + Apache の反応を設定できるようにする追加機能を提供します。

    + +

    サーバがエラーや問題を発見した場合の反応を、 + カスタマイズして定義することができます。

    + +

    スクリプトの実行が失敗して "500 Server Error" + を発生させたとします。この場合の反応を、より好ましいテキストや、別の + URL (内部及び外部) へのリダイレクションに置き換えることができます。 +

    +
    + +
    top
    +
    +

    動作

    + + +

    古い動作

    + + +

    NCSA httpd 1.3 は、古くて退屈なエラー/問題メッセージを + 返していました。それはしばしばユーザには無意味であり、 + またそれを発生させた原因を記録する方法も提供していませんでした。

    + + +

    新しい動作

    + + +
      +
    1. NCSA のハードコードされたメッセージの代わりに + 他のテキストを表示
    2. + +
    3. ローカルの URL にリダイレクト
    4. + +
    5. 外部の URL にリダイレクト
    6. +
    + +

    するようにサーバを設定できます。

    + +

    別の URL にリダイレクトすることは役に立ちますが、 + それは説明をしたり、より明確に誤り/問題を記録したりするために + 何か情報を伝えられるときに限ります。

    + +

    これを実現するために、 Apache は新しく CGI のような環境変数を + 定義します:

    + +

    + REDIRECT_HTTP_ACCEPT=*/*, image/gif, + image/x-xbitmap, image/jpeg
    + REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX + A.09.05 9000/712)
    + REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
    + REDIRECT_QUERY_STRING=
    + REDIRECT_REMOTE_ADDR=121.345.78.123
    + REDIRECT_REMOTE_HOST=ooh.ahhh.com
    + REDIRECT_SERVER_NAME=crash.bang.edu
    + REDIRECT_SERVER_PORT=80
    + REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
    + REDIRECT_URL=/cgi-bin/buggy.pl +

    + +

    頭に付く REDIRECT_ に注目してください。

    + +

    少なくとも REDIRECT_URL と + REDIRECT_QUERY_STRING は新しい URL (CGI スクリプトか + CGI インクルードであると仮定されます) に渡されます。 + 他の変数は、エラーや問題が起きる前に存在した場合にだけ存在します。 + もしあなたの設定した ErrorDocument が 外部リダイレクト + (すなわち、http: + のような体系名から始まるすべてのもの。たとえ同じホストを指していても) + ならば、これらはまったく設定されません。

    + +
    top
    +
    +

    設定

    + + +

    AllowOverride が適切に設定されていれば、 + .htaccess ファイルで ErrorDocument + を使用することができます。

    + +

    ここに、いくつかの例を挙げます。

    + +

    + ErrorDocument 500 /cgi-bin/crash-recover
    + ErrorDocument 500 "Sorry, our script crashed. Oh dear"
    + ErrorDocument 500 http://xxx/
    + ErrorDocument 404 /Lame_excuses/not_found.html
    + ErrorDocument 401 /Subscription/how_to_subscribe.html +

    + +

    構文

    + +

    + ErrorDocument <3-digit-code> <action> +

    + +

    action (動作) は、

    + +
      +
    1. 表示されるべきテキスト。テキストには引用符 (") をつけます。 + 引用符の後に続くものが何でも表示されます。 + 注意 : (") は表示されません
    2. + +
    3. リダイレクト先の外部 URL
    4. + +
    5. リダイレクト先のローカル URL
    6. +
    +
    top
    +
    +

    カスタムエラーレスポンスとリダイレクト

    + + +

    スクリプト/SSI に追加の環境変数が利用可能になるように、 + リダイレクトされた URL に対する Apache の動作が変更されました。

    + +

    古い動作

    + + +

    リダイレクトされたスクリプトは標準の CGI + 環境変数を利用可能でした。しかし、どこからリダイレクト + されたかの情報は提供されていませんでした。

    + + +

    新しい動作

    + + +

    リダイレクトされた先のスクリプトが使用可能なように、 + 新しいたくさんの環境変数が初期化されます。新しい変数は、それぞれ + REDIRECT_ で始まります。 + REDIRECT_ で始まる環境変数はリダイレクトされる前に存在していた + CGI 環境変数の頭に REDIRECT_ を付けて作成されます。 + すなわち、HTTP_USER_AGENT は + REDIRECT_HTTP_USER_AGENT になります。 + これらの新しい変数に加えて、Apache は、 + スクリプトがリダイレクト元のトレースを助けるために + REDIRECT_URL と REDIRECT_STATUS + を定義します。アクセスログには元の URL とリダイレクトされた URL + の両方が記録されます。

    + +

    ErrorDocument が CGI スクリプトへのローカルリダイレクトを + 指定している場合は、それを起動することになったエラーの状態を + クライアントまで確実に伝えるために "Status:" + ヘッダを含むべきです。例えば、ErrorDocument 用の Perl + スクリプトは以下のようなものを含むかもしれません。 +

    + +

    + ...
    + print "Content-type: text/html\n";
    + printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
    + ... +

    + +

    スクリプトが 404 Not Found のような + 特定のエラーコンディションを扱うためだけに使われる場合は、 + 代わりに特定のコードとエラーテキストを使用することができます。

    + +
    +
    +

    翻訳済み言語:  en  | + es  | + ja  | + ko  | + tr 

    +
    top

    コメント

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/custom-error.html.ko.euc-kr b/docs/manual/custom-error.html.ko.euc-kr index 82f8b1495d1..8de31779abb 100644 --- a/docs/manual/custom-error.html.ko.euc-kr +++ b/docs/manual/custom-error.html.ko.euc-kr @@ -1,28 +1,38 @@ - -»ç¿ëÀÚÁ¤ÀÇ ¿À·ù ÀÀ´ä - Apache HTTP Server +»ç¿ëÀÚÁ¤ÀÇ ¿À·ù ÀÀ´ä - Apache HTTP Server Version 2.2 - - + + + +
    <-

    »ç¿ëÀÚÁ¤ÀÇ ¿À·ù ÀÀ´ä

    +Apache > HTTP Server > Documentation > Version 2.2

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    »ç¿ëÀÚÁ¤ÀÇ ¿À·ù ÀÀ´ä

    °¡´ÉÇÑ ¾ð¾î:  en  |  es  |  ja  | - ko 

    + ko  | + tr 

    +
    ÀÌ ¹®¼­´Â ÃֽÅÆÇ ¹ø¿ªÀÌ ¾ƴմϴÙ. + Ãֱٿ¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼­¸¦ Âü°íÇϼ¼¿ä.

    À¥¸¶½ºÅʹ ¿À·ù³ª ¹®Á¦°¡ ¹߻ýÇßÀ»¶§ ¾ÆÆÄġÀÇ ÀÀ´äÀ» ¼³Á¤ÇÒ ¼ö ÀִÙ.

    @@ -37,7 +47,7 @@ +
    top

    Çൿ

    @@ -191,8 +201,30 @@

    °¡´ÉÇÑ ¾ð¾î:  en  |  es  |  ja  | - ko 

    -
    + ko  | + tr 

    +
    top

    Comments

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    \ No newline at end of file diff --git a/docs/manual/custom-error.html.tr.utf8 b/docs/manual/custom-error.html.tr.utf8 new file mode 100644 index 00000000000..84d754944cc --- /dev/null +++ b/docs/manual/custom-error.html.tr.utf8 @@ -0,0 +1,231 @@ + + + + + +Hata Yanıtlarının Kişiselleştirilmesi - Apache HTTP Sunucusu Sürüm 2.2 + + + + + + + +
    <-
    +

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Hata Yanıtlarının Kişiselleştirilmesi

    +
    +

    Mevcut Diller:  en  | + es  | + ja  | + ko  | + tr 

    +
    + +

    Apache, bazı sorunlara ve hatalara karşılık vereceği yanıtların + yapılandırabilmesini mümkün kılan ek bir işlevselliğe sahiptir.

    + +

    Site yöneticisi tarafından kişiselleştirilebilen bu tür yanıtlar, + sunucu belli hatalar veya sorunlarla karşılaştığında etkin kılınmak + üzere tanımlanabilir.

    + +

    Bir betik bir hata nedeniyle bir "500 Server Error" yanıtının + verilmesine sebep olursa bu yanıt yerine başka bir adrese + yönlendirilerek (dahili veya harici) veya doğrudan daha dostça bir + metin sunulabilir.

    +
    + +
    top
    +
    +

    Davranış

    + + +

    Eski Davranış

    + + +

    NCSA httpd 1.3, çoğunlukla kullanıcıya anlamsız gelen ve sebebiyle + kavramsal bir bağ kurulamayan günlük kayıtları üreten, can sıkıcı + bazı hata/sorun yanıtları döndürürdü.

    + + +

    Yeni Davranış

    + + +

    Sunucudan NCSA kodlu iletiler yerine

    + +
      +
    • başka bir metin göstermesi,
    • + +
    • istemciyi başka bir yerel adrese yönlendirmesi veya
    • + +
    • istemciyi bir harici adrese yönlendirmesi
    • +
    + +

    istenebilir. Başka bir adrese yönlendirme, hata veya sorunu daha iyi + açıklamakta kullanılabilecek bazı bilgilerin aktarılması şartıyla + oldukça kullanışlı olabilir.

    + +

    Apache, buna olanak vermek için CGI benzeri yeni ortam değişkenleri + tanımlamıştır:

    + +

    + REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, + image/jpeg
    + REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 + 9000/712)
    + REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
    + REDIRECT_QUERY_STRING=
    + REDIRECT_REMOTE_ADDR=121.345.78.123
    + REDIRECT_REMOTE_HOST=ooh.ahhh.dom
    + REDIRECT_SERVER_NAME=batti.balik.yan.gider.edu
    + REDIRECT_SERVER_PORT=80
    + REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
    + REDIRECT_URL=/cgi-bin/hatalar.pl +

    + +

    REDIRECT_ önekine dikkat edin.

    + +

    Yeni adrese (hedefin bir CGI betiği veya SSI sayfası olduğu + kabulüyle) en azından REDIRECT_URL ve + REDIRECT_QUERY_STRING değişkenleri aktarılır. Diğer + değişkenler ise sadece hata veya sorunun öncesinde mevcut oldukları + takdirde aktarılacaklardır. Eğer harici yönlendirmeyi + ErrorDocument yönergesi + üzerinden yapıyorsanız bunlara None değeri + atanacaktır. (Yönlendirme adresi http: ile başlıyorsa + adres aynı sunucuya ait olsa bile bu bir harici yönlendirme olarak + ele alınır.)

    + +
    top
    +
    +

    Yapılandırma

    + + +

    ErrorDocument yönergesinin + .htaccess dosyalarında kullanılması sadece AllowOverride yönergesine uygun bir değer + atanmışsa mümkündür.

    + +

    Bazı örnekler:

    + +

    + ErrorDocument 500 /cgi-bin/hata-kurtarma
    + ErrorDocument 500 "Pardon, galiba bizim betik hata verdi."
    + ErrorDocument 500 http://xxx/
    + ErrorDocument 404 /ozuru_kabahatinden_buyuk/yok.html
    + ErrorDocument 401 /Uyeler/NASIL_uye_olunur.html +

    + +

    Burada sözdizimi şöyledir:

    + +

    + ErrorDocument <3-rakamlı-kod> <eylem> +

    + +

    eylem şunlardan biri olabilir:

    + +
      +
    • Gösterilecek metin. Metin tırnak (") içine alınmalıdır.
    • + +
    • Yönlendirmenin yapılacağı harici adres.
    • + +
    • Yönlendirmenin yapılacağı dahili adres.
    • +
    +
    top
    +
    +

    Özel Hata Yanıtları ve Yönlendirme

    + + +

    Apache’nin yönlendirme ile ilgili davranışı bir CGI betiği veya SSI + sayfası sözkonusu olduğunda bazı ek ortam değişkenleri ile + yapılandırılabilir.

    + +

    Eski Davranış

    + + +

    Yönlendirme yapılan betikte standart CGI değişkenleri kullanılırdı. + Yönlendirmenin kaynağı ile ilgili bir belirtiye rastlanmazdı.

    + + +

    Yeni Davranış

    + + +

    Yönlendirme yapılan betikte kullanılmak üzere özel olarak + tanımlanmış ortam değişkenleri vardır. Her değişkenin ismi + REDIRECT_ ile başlar. REDIRECT_ ortam + değişkenleri, yönlendirme öncesinde tanımlanmış CGI ortam + değişkenlerinin isimlerinin başına REDIRECT_ öneki + getirilerek oluşturulur. Yani, HTTP_USER_AGENT değişkeni + REDIRECT_HTTP_USER_AGENT haline gelir. Bunlara ek + olarak, betiğe olayın izini sürmekte yardımcı olması için + REDIRECT_URL ve REDIRECT_STATUS + değişkenleri tanımlanmıştır. Erişim günlüğüne özgün adresle birlikte + yönlendirme adresi de kaydedilir.

    + +

    Eğer ErrorDocument yönergesi + bir yerel CGI betiğine yönlendirme belirtiyorsa, hatanın kaynağı + hakkında istemciye bilgi vermek amacıyla betiğin çıktısında bir + "Status:" başlık alanına yer verilmesi önerilir. + Örneğin, bir Perl betiği şunları içerebilirdi:

    + +

    + ...
    + print "Content-type: text/html; charset=UTF-8\n";
    + printf "Status: %s durumu saptandı.\n", $ENV{"REDIRECT_STATUS"};
    + ... +

    + +

    Eğer betik, 404 Not Found gibi, belli bir + hata durumunu ele almaya adanmışsa duruma özel kod ve hata metni + kullanılabilir.

    + +

    Eğer yanıt, (istemci taraflı yönlendirme yapılırken) bir + Location: başlığı da içeriyorsa betiğin çıktıya uygun + bir Status: başlığı (302 Found gibi) + eklemesinin gerekli oluşuna dikkat ediniz. Aksi takdirde, + Location: başlığı etkisiz olabilir.

    + +
    +
    +

    Mevcut Diller:  en  | + es  | + ja  | + ko  | + tr 

    +
    top

    Yorum

    Notice:
    This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
    +
    + \ No newline at end of file diff --git a/docs/manual/custom-error.xml b/docs/manual/custom-error.xml index 8777b36fab4..01f0a813b50 100644 --- a/docs/manual/custom-error.xml +++ b/docs/manual/custom-error.xml @@ -4,12 +4,12 @@ + + + - + custom-error / . en - es - ja - ko + es + ja + ko + tr diff --git a/docs/manual/custom-error.xml.tr b/docs/manual/custom-error.xml.tr new file mode 100644 index 00000000000..87a3cd84413 --- /dev/null +++ b/docs/manual/custom-error.xml.tr @@ -0,0 +1,194 @@ + + + + + + + + + + + Hata Yanıtlarının Kişiselleştirilmesi + + +

    Apache, bazı sorunlara ve hatalara karşılık vereceği yanıtların + yapılandırabilmesini mümkün kılan ek bir işlevselliğe sahiptir.

    + +

    Site yöneticisi tarafından kişiselleştirilebilen bu tür yanıtlar, + sunucu belli hatalar veya sorunlarla karşılaştığında etkin kılınmak + üzere tanımlanabilir.

    + +

    Bir betik bir hata nedeniyle bir "500 Server Error" yanıtının + verilmesine sebep olursa bu yanıt yerine başka bir adrese + yönlendirilerek (dahili veya harici) veya doğrudan daha dostça bir + metin sunulabilir.

    +
    + +
    + Davranış + +
    + Eski Davranış + +

    NCSA httpd 1.3, çoğunlukla kullanıcıya anlamsız gelen ve sebebiyle + kavramsal bir bağ kurulamayan günlük kayıtları üreten, can sıkıcı + bazı hata/sorun yanıtları döndürürdü.

    +
    + +
    + Yeni Davranış + +

    Sunucudan NCSA kodlu iletiler yerine

    + +
      +
    • başka bir metin göstermesi,
    • + +
    • istemciyi başka bir yerel adrese yönlendirmesi veya
    • + +
    • istemciyi bir harici adrese yönlendirmesi
    • +
    + +

    istenebilir. Başka bir adrese yönlendirme, hata veya sorunu daha iyi + açıklamakta kullanılabilecek bazı bilgilerin aktarılması şartıyla + oldukça kullanışlı olabilir.

    + +

    Apache, buna olanak vermek için CGI benzeri yeni ortam değişkenleri + tanımlamıştır:

    + + + REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, + image/jpeg
    + REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 + 9000/712)
    + REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
    + REDIRECT_QUERY_STRING=
    + REDIRECT_REMOTE_ADDR=121.345.78.123
    + REDIRECT_REMOTE_HOST=ooh.ahhh.dom
    + REDIRECT_SERVER_NAME=batti.balik.yan.gider.edu
    + REDIRECT_SERVER_PORT=80
    + REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
    + REDIRECT_URL=/cgi-bin/hatalar.pl +
    + +

    REDIRECT_ önekine dikkat edin.

    + +

    Yeni adrese (hedefin bir CGI betiği veya SSI sayfası olduğu + kabulüyle) en azından REDIRECT_URL ve + REDIRECT_QUERY_STRING değişkenleri aktarılır. Diğer + değişkenler ise sadece hata veya sorunun öncesinde mevcut oldukları + takdirde aktarılacaklardır. Eğer harici yönlendirmeyi + ErrorDocument yönergesi + üzerinden yapıyorsanız bunlara None değeri + atanacaktır. (Yönlendirme adresi http: ile başlıyorsa + adres aynı sunucuya ait olsa bile bu bir harici yönlendirme olarak + ele alınır.)

    +
    +
    + +
    + Yapılandırma + +

    ErrorDocument yönergesinin + .htaccess dosyalarında kullanılması sadece AllowOverride yönergesine uygun bir değer + atanmışsa mümkündür.

    + +

    Bazı örnekler:

    + + + ErrorDocument 500 /cgi-bin/hata-kurtarma
    + ErrorDocument 500 "Pardon, galiba bizim betik hata verdi."
    + ErrorDocument 500 http://xxx/
    + ErrorDocument 404 /ozuru_kabahatinden_buyuk/yok.html
    + ErrorDocument 401 /Uyeler/NASIL_uye_olunur.html +
    + +

    Burada sözdizimi şöyledir:

    + + + ErrorDocument <3-rakamlı-kod> <eylem> + + +

    eylem şunlardan biri olabilir:

    + +
      +
    • Gösterilecek metin. Metin tırnak (") içine alınmalıdır.
    • + +
    • Yönlendirmenin yapılacağı harici adres.
    • + +
    • Yönlendirmenin yapılacağı dahili adres.
    • +
    +
    + +
    + Özel Hata Yanıtları ve Yönlendirme + +

    Apache’nin yönlendirme ile ilgili davranışı bir CGI betiği veya SSI + sayfası sözkonusu olduğunda bazı ek ortam değişkenleri ile + yapılandırılabilir.

    + +
    + Eski Davranış + +

    Yönlendirme yapılan betikte standart CGI değişkenleri kullanılırdı. + Yönlendirmenin kaynağı ile ilgili bir belirtiye rastlanmazdı.

    +
    + +
    + Yeni Davranış + +

    Yönlendirme yapılan betikte kullanılmak üzere özel olarak + tanımlanmış ortam değişkenleri vardır. Her değişkenin ismi + REDIRECT_ ile başlar. REDIRECT_ ortam + değişkenleri, yönlendirme öncesinde tanımlanmış CGI ortam + değişkenlerinin isimlerinin başına REDIRECT_ öneki + getirilerek oluşturulur. Yani, HTTP_USER_AGENT değişkeni + REDIRECT_HTTP_USER_AGENT haline gelir. Bunlara ek + olarak, betiğe olayın izini sürmekte yardımcı olması için + REDIRECT_URL ve REDIRECT_STATUS + değişkenleri tanımlanmıştır. Erişim günlüğüne özgün adresle birlikte + yönlendirme adresi de kaydedilir.

    + +

    Eğer ErrorDocument yönergesi + bir yerel CGI betiğine yönlendirme belirtiyorsa, hatanın kaynağı + hakkında istemciye bilgi vermek amacıyla betiğin çıktısında bir + "Status:" başlık alanına yer verilmesi önerilir. + Örneğin, bir Perl betiği şunları içerebilirdi:

    + + + ...
    + print "Content-type: text/html; charset=UTF-8\n";
    + printf "Status: %s durumu saptandı.\n", $ENV{"REDIRECT_STATUS"};
    + ... +
    + +

    Eğer betik, 404 Not Found gibi, belli bir + hata durumunu ele almaya adanmışsa duruma özel kod ve hata metni + kullanılabilir.

    + +

    Eğer yanıt, (istemci taraflı yönlendirme yapılırken) bir + Location: başlığı da içeriyorsa betiğin çıktıya uygun + bir Status: başlığı (302 Found gibi) + eklemesinin gerekli oluşuna dikkat ediniz. Aksi takdirde, + Location: başlığı etkisiz olabilir.

    +
    +
    +
    diff --git a/docs/manual/developer/API.html b/docs/manual/developer/API.html index a8a3c492a4b..b8ea3a1c3c7 100644 --- a/docs/manual/developer/API.html +++ b/docs/manual/developer/API.html @@ -1,3 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + URI: API.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/developer/API.html.en b/docs/manual/developer/API.html.en index a09a5f2f525..f2e089d713b 100644 --- a/docs/manual/developer/API.html.en +++ b/docs/manual/developer/API.html.en @@ -1,22 +1,29 @@ - -Apache 1.3 API notes - Apache HTTP Server +Apache 1.3 API notes - Apache HTTP Server Version 2.2 - - + + + +
    <-

    Please note

    +

    This document refers to the 2.2 version of Apache httpd, which is no longer maintained. The active release is documented here. If you have not already upgraded, please follow this link for more information.

    +

    You may follow this link to go to the current version of this document.

    Apache 1.3 API notes

    Available Languages:  en 

    @@ -105,7 +112,7 @@
  • How handlers work
  • Resource allocation and resource pools
  • Configuration, commands and the like
  • -
    +
    top

    Basic concepts

    @@ -355,9 +362,7 @@ struct stat finfo; /* Set by server core;

    int header_only;     /* HEAD request, as opposed to GET */
     char *protocol;      /* Protocol, as given to us, or HTTP/0.9 */
     char *method;        /* GET, HEAD, POST, etc. */
    -int method_number;   /* M_GET, M_POST, etc. */
    -
    -

    +int method_number; /* M_GET, M_POST, etc. */